CMPS 304 - Computer Architecture

Computer Architecture -  CMPS 304

Class Meeting: Thursday 13:00 - 15:00

Course Objectives

This course intends to teach students what is the fundamentals of computer architecture and organization, to develop the ability to perform programming in an assembly language, to know how RISC Instruction sets are designed, how single cycle CPU and cache memories, designed, and evaluated using simple performance equations.

Course Outcomes

After the completion of this course, the students will be able to:

    1. Recall instruction sets design principles, instruction formats, addressing modes and converting high-level language statements into assembly instructions.

    2. Recall how computers do arithmetic operations

    3. Recall how performance of programs is measured by different architecture designs in cache, CPU pipeline, and compiler.

    4. Recall the understanding and ability to determine the processor (datapath and control) functions, i.e., how instructions are executed on the datapath using the control circuits.

    5. Recall the pipeline design of CPUs and it enhances the execution of software

    6. Recall the basics of computer memory hierarchy (RAM, cache, registers …); how cache memories are designed and work

    7. Design and implement small programs using the MIPS assembly language using a MIPS simulator software such as SPIM.

Recommended Textbook

Computer Organization and Design 3rd edition, David Patterson and John Hennessy, Elsevier Inc. 2005.


    1. Computer Organization and Architecture, 8th or 9th edition, W. Stallings, Prentice Hall 2006.

Download course syllabus as PDF