Revised: August, 2018
Introduction to computer arithmetic, processor organization and design, micro-programming
and control unit design, memory organization, I/O organization.
Corequisite and Notes
Student Learning Objectives
By the end of the course the students will be able to:
- Explain the workings of modern computer systems, in particular the classic five-stage
- Explain the trade-offs present at the hardware-software interface.
- Explain the design process of a hardware system.
David A Patterson. and John L. Hennessy, Computer Organization Design: The Hardware/Software Interface, Fifth Edition, Morgan Kaufmann, 2014.
Grading procedures and factors influencing course grade are left to the discretion
of individual instructors, subject to general university policy.
Attendance policy is left to the discretion of individual instructors, subject to
general university policy.
System Performance, throughput, response time, Cycles Per Instruction (CPI), clock
rate, clock period.
- Assembly Language using MIPS
MIPS assembly language basics, representing instructions and data in memory, endianness,
instruction layout, flow of control, branching, looping, switch/case, procedures,
- Number Representation and Computer Arithmetic
Number representation including one's compliment, two's compliment, floating point;
addition, subtraction, multiplication and division; signed/unsigned, sign extension.
- Processor Datapath and Control
In depth discussion of datapath implementation; single cycle implementation and multiple
cycle pipelined implementation, for a small subset of the MIPS processor; pipeline
hazards; control signals, exception handling.
- Memory Hierarchy
Cache design; cache performance.