Spring 2015

Computer Organization and Design, Patterson and Hennessy, 4th edition

The objective of this course is to give you a basic understanding of the components of computer hardware and how they interact. Design decisions for any component of a computer are based on a variety of issues: circuitry constraints, efficiency, effects on other components. We will examine all of these issues as we follow the construction of a simple computer which implements the MIPS assembly languaguage.

- learn to program using MIPS assembly language.
- learn the computers represent and manipulate numeric values.
- learn how the CPU, memory and I/O is implement and how they communicate with one another.
- learn the basics of pipeline architecture.
- learn how parallelism is implemented in both hardware and software.

- students will be able write MIPS assembly language programs to solve simple to moderately difficult problems.
- students will be able to translate bit strings into the corresponding number/character/maching instruction and recognize which is appropriate.
- students will be able to modify and enhance exisisting CPU, memory and I/O implementations, both non-pipelined and pipelined.
- students will demonstrate knowledge of the interworkings of the pipelined CPU, memory and I/O through the implementation of a CPU simulator.

- Homework 1. Due Jan. 23
- Homework 2. Due Feb. 4
- Homework 3. Due Feb. 11
- Homework 4. Due Mar. 6
- Homework 5. Due Mar. 20
- Homework 6. Due Apr. 15
- Homework 7. Due Apr. 20
- Homework 8. Due May 1