Course Review For the Midterm
CS 441 Lecture, Dr. Lawlor
Goodness, we've learned a lot this semester!
We've learned these languages:
- SPICE, for analog circuit simulation
- VHDL, for digital circuit simulation
- MIPS assembly, for hands-on pipelining and RISC machine code
- C++, and timing code to the nanosecond
You should be able to read and understand all these languages.
We've learned about lots of major concepts:
- Analog and digital signaling, scalability, noise, errors, and nonlinearity
- Binary number representation: bits, bytes, hex numbers and arithmetic
- Instruction encodings: fixed-size RISC vs variable-size CISC
- Pipelining, and how it affects the instruction set design (branch delay, forwarding)
- Out-of-order execution, and the limiting factor, data dependencies
- Register renaming to remove dependencies and speed up out-of-order execution
- Performance analysis, and what makes code run fast or slow
- Cache, and how it affects performance (fast if sequential access or small buffer; random access in big buffer is slow)
You should be able to answer the basic "why/where/how" questions about
all the project1 topics. ("Why do I care? Where is this
useful? How (generally) does it work?")
You're responsible for:
- Stuff in the homeworks
- Stuff in the lecture notes (both yours and mine!)
- Stuff said in class
Good luck!