cs281: Computer Systems
|
||||||||||||||||||||||||
Announcements
- Welcome to cs281 Computer Systems!
- Sign up on the piazza site for this course: piazza link.
- I will be available in the classroom on Sunday 6:45pm to 8:00pm for exam review session. Dr. Bressoud will hold a review session on Tuesday night from 7:00 to 8:30.
Schedule
Week | Monday | Tuesday | Wednesday | Friday |
Week 0 (8/25) | no class | no class | no class | Introduction, Data Types |
Week 1 (9/1) | Data Types (Binary & Hex) Read Preface, Chpt1, Chpt 2 through 2.1.4 |
Lab 1: Breadboard Basics, Arduino Introduction | Representing Negative Ints Read Chpt 2.2-2.3 |
Bit Ops & Boolean Functions |
Week 2 (9/8) | More Boolean, Datalab Overview Read Rest of Chapter 2 |
Lab2: Combinational Logic, Multiplexors, Adders Lab02MuxAdd.pdf Prelab 2 due at start of class. |
Architecture Overview, Logisim Intro | Karnaugh Maps Begin X86 Architecture Read Chpt 3.0-3.4 |
Week 3 (9/15) | ISA, First Assembly Code | Lab3: K-Maps and Analog lab3 prelab due |
Registers and Addressing Modes | alulab start. |
Week 4 (9/22) | FirstTrace.pdf practice.s |
Lab4: Sensors and Actuators | Stack Commands | Sequential Circuits and Finite State Machines |
Week 5 (9/29) | Stack Conventions Read Chpt 3.5, 3.7 alulab due bomblab out | .
Lab 5 prelab5 |
Control Structures Read Chpt 3.6 |
|
Week 6 (10/6) | More Control and Jump Tables | .Exam Retake | Procedures and Stack Frame Conventions | Array Indexing, Linked Lists Read Chpt 3.8 - 3.13 |
Week 7 (10/13) | Buffer Overflow Problems
Bomblab Due ALU Lab Resubmissions Due buflab out. |
Lab 6 ServoMotors Lab 6 prelab due. |
Y86 ISA Read Chpt 4.1 |
Fall Break |
Week 8 (10/20) | Y86 Example Program | Lab07 Ant Brain Controller. | Y86 Instruction Cycle Y86 Hardware Stages |
Pipelines Read Chpt 4.3-4.6 buflab due. |
Week 9 (10/27) | Example Y86 Programs | Lab 7 Continued | Midterm Exam 2 Midterm 2 Review Sheet |
DataPath Lab Explanation |
Week 10 (11/3) | DataPath Lab Workshop | Lab08 Stepper Motors and Interrupts | Cache Discussion Pt1 Skim 6.1, Read 6.2, 6.3 DataPath lab due. Control Path Lab Out Y86 Linked List Assignment Due | Cache Discussion Pt2 Read 6.4-5 |
Week 11 (11/10) | Control Path Lab Due. cachelab out. Cache PT3. types, performance. |
Working Day for cachelab | Exception Control Flow, Overview | Exception Control Flow, Processes + Signals Read 8.1-8.3 |
Week 12 (11/17) | Exception Control Flow, pt3 Read 8.4-8.5 cachelab : Due shlab.pdf out. |
Project Discussion | Pipelines finish | Pipelines finish Project Proposal< |
Thanksgiving (11/24) | Why did the turkey | cause an exception? | He really fowled up | his stack pointer! |
Week 13 (12/1) | Floating Point Formats Read 2.4 |
Project Group Work | Floating Point Formats | Multiplication |
Week 14 (12/8) | Multiplication, Booths Algorithm shlab.pdf due. |
Project Discussion | Project Demonstrations + Report |
Examples and Downloads
- syllabus.
- IC Documentation
- datatypes.c illustrates datatype sizes and capacities.
- byteorder.c illustrates endianness of machine, some fancy pointer work.
- overflow.c illustrates signed arithmetic overflow.
- FirstTrace.pdf an exercise in tracing a simple, data-moving assembley program.
- practice.s a simple assembley program.
- Stack Practice handout.
- stack.s simple stack shell program.
- Midterm1Topics.txt: a list of topics we discussed for consideration in planning for Midterm Exam 1.
- StackSub.txt a simple example of stack frame conventions.
- Notes on caller and callee saving conventions in subroutines and stacks.
- loopsum.s exercise for the notes above.
- fib_main.c Use this to write two assembly routines: fib_i.s and fib_r.s: both should compute the fibonacci number, one iteratively and one recursively.
- buffer.c Example of buffer overflow problem/attack.
- SimulatorInstall.pdf Instructions on how to install the Y86 Simulator.
- sim.tar The Y86 Simulator Package.
- Midterm 2 Review Sheet .
- Y86Practice.pdf sample programming sheet.
- add2.ys example Y86 program that calls subroutine to add 2 numbers.
- addsum.ys example Y86 program that adds 1+2+...+n.
- Y86 Linked List Assignment .
- listfind.ys .
- students.c illustrating malloc, free, strok, etc for c programs.
- students.txt data file for above program.
- process.c : small program that uses fork() to spawn a process.
- process2.c : fork() multiple processes, wait() to reap zombie children.
- catch1.c : catching and responding to signals.
- child1.c : a primitive reaper.
- child2.c : a better reaper, still with issues.
- Midterm Exam 3 review topics.
- Floating Point Table handout.
Project/Programming Labs
- datalab. Due Sept 17.
- datalab-handout.tar. Download this file for your datalab.
- alulab. The lab handout. Due Sept 29.
- alu.circ. The circ file you need to complete the lab.
- bomblab.pdf. The bomb lab handout. Due in waves.
- buflab: buffer lab. Due Friday, Oct 24.
- cpulab1.tar: Data Path Lab. Due November 5. Submit a printed version of your (pdf/latex) chart at the START of class.
- Control Path Lab : Due November 10. Submit via email:
- A clear report with the required design documentation. (electronic pdf)
- A full y86 *.ys program that you used for testing (.ys file)
- Your Y86Control.circ file
- Here are the test files I used for Y86 Control Path Lab:
- cpulab2.tar : Due November 10.
- cachelab : Due November 17.
- cachelab-handout.tar .
- shlab.pdf : due Dec 8.
- shlab-handout.tar .
Hardware/Tuesday Labs
- LabWriteUpInstructions.pdf: Suggestions for formatting your lab reports.
- Lab01Intro.pdf: The first Tuesday lab.
- Lab2Prelab-CombinationalIntro.pdf: Exercises to be completed prior to the Tuesday lab. Due before class on Tuesday, September 9. Please LaTex your answers. To be completed individually.
- Lab02MuxAdd.pdf: Tuesday lab report due Friday, Sept 12.
- lab3prelab-kmap.pdf: Lab3 prelab work. Due at the start of class on Tuesday, September 16.
- lab3 K-Maps and Analog Arduino Inputs. Lap report due at start of class on Friday, September 19.
- lab4 Sensors and Actuators: Buzzer and Sonic Sonar Device. Lab report due at the start of class on Friday, September 26.
- Lab4 Report An example report illustrating the "stand alone" nature of a lab report.
- prelab5 Prelab for Lab5.
- Lab 5 Finite State Machines, Sequence Detector.
- Lab 6: prelab.
- Lab 6: Servo Motor Control and Photoresistors.
- Lab07 Ant Brain Controller.
- ant.tar: Files needed for ant controller lab.
- MazeDriver.circ: An updated MazeDriver.circ file with collisions and a map/compass.
- Lab08: Stepper Motors and Interrupts.
- SteppperMotor.h
- StepperMotor.cpp
- Final Lab Project .