ICS 233 - Fall 2007
Computer Architecture and Assembly Language


Muhamed F. Mudawar


Office: Building 22, Room 328, Phone: 4642

Office Hours: SMW 10 am - 12 noon

Syllabus | Lectures | Assignments | Spring 2007


Final Exam: Wednesday, January 23, 7:30 AM, Building 22, Room 119

Check your grades on WebCT

Extra Lecture: Saturday, January 5, at 7 PM

Quiz 5: Monday, January 7 (Single-Cycle Processor Implementation)

Exam II: Saturday, December 8, 7 PM, Building 24, Room 174

Quiz 4: Wednesday, December 5 (Performance and Metrics)

Quiz 3: Monday, November 26 (Integer Multiplication/Division, Floating-Point)

Project I: Postponed till Saturday, December 1

Exam I: Saturday, November 3, at 7 PM, Building 24, Room 125

Quiz 2: Monday, October 29 (MIPS ISA and Assembly Language)

MIPS Assembly Project is posted on WebCT on Monday October 1st

Quiz 1: Wednesday, September 26 (Computer Abstractions and Technology)

No change in office hours during the holy month of Ramadan


Walid Alzu'bi

Email: zwalidk@gmail.com

Questions related to assignments and grading should be directed to the teaching assistant


David A. Patterson and John L. Hennessy, Computer Organization & Design, The Hardware/Software Interface, Third Edition, Morgan Kaufmann Publishers, 2005. ISBN: 1-55860-604-1.

Robert L. Britton, MIPS Assembly Language Programming, Pearson Prentice Hall, 2004.

Course Objectives

Towards the end of this course, students should be able to:

Describe the instruction set architecture of a MIPS processor

Analyze, write, and test MIPS assembly language programs

Describe the organization/operation of integer and floating-point arithmetic units

Design the datapath and control of a single-cycle processor

Design the datapath and control of a pipelined processor and handle hazards

Describe the organization/operation of memory and caches

Analyze the performance of processors and caches

Academic Honesty

View important information on academic honesty

Exam Schedule

Exam 1: Saturday, November 3, 7:00 PM, Building 24, Room 125

Exam 2: Saturday, December 8, 7:00 PM, Building 24, Room 174

Final Exam: Wednesday, January 23, 7:30 AM, Building 22, Room 119


Lab: 20%

Quizzes: 10%

Projects: 20%

Midterm Exam I: 15%

Midterm Exam II: 15%

Final Exam: 20%

Software Tools used in Projects

MARS Simulator: runs MIPS-32 assembly language programs

MARS homepage

PCSpim simulator: runs MIPS-32 assembly language programs

Appendix A in Patterson and Hennessy Book

Logisim Simulator: educational tool for designing and simulating CPUs

Logisim homepage


MIPS32 Architecture for Programmers, Volume I: Introduction to the MIPS32 Architecture, MIPS Technologies Inc, Revision 2.50, July 2005.

MIPS32 Architecture for Programmers, Volume II: The MIPS32 Instruction Set, MIPS Technologies Inc, Revision 2.50, July 2005.

MIPS32 Architecture for Programmers, Volume III: The MIPS32 Privileged Resource Architecture, MIPS Technologies Inc, Revision 2.50, July 2005.


Course Topics



Course Topics



Introduction to computer architecture, ISA versus organization, high-level, assembly, and machine languages, components of a computer system, abstraction, technology improvements, chip manufacturing process.

Chapter 1


Instruction set design, RISC design principles, MIPS registers, instruction formats, arithmetic instructions, immediate operands, bit manipulation, load and store instructions, byte ordering, addressing modes, flow control instructions, pseudo-instructions,  MIPS register conventions.

Sections 2.1 – 2.9

Sections 2.13, 2.15 – 2.18

Sections 3.2 – 3.3


MIPS assembly language programming, tools, program template, directives, text, data, and stack segments, defining data, arrays, and strings, array indexing and traversal, translating expressions, if-else statements, loops, indirect jump, console input and output

Appendix A


Runtime stack and its applications, defining procedures, procedure calls and return address, nested procedure calls, passing arguments in registers and on the stack, stack frames, value and reference parameters, saving and restoring registers, local variables on the stack


6 , 7

Review of data representation, binary and hexadecimal addition and subtraction, carry and overflow, characters and the ASCII table. Integer multiplication, integer division, floating point representation, IEEE 754 standard, normalized and de-normalized numbers, zero, infinity, NaN, FP comparison, FP addition, FP multiplication, rounding and accurate arithmetic, FP instructions in MIPS.

Sections 3.2 – 3.3

Sections 3.4 – 3.6

Sections 3.8 – 3.9


CPU performance and metrics, CPI, performance equation, MIPS as a metric, Amdahl’s law, benchmarks and performance of recent Intel processors.

Chapter 4

9 , 10

Designing a processor, register transfer logic, datapath components, clocking methodology, single-cycle datapath, main control signals, ALU control, single-cycle delay, multi-cycle instruction execution, multi-cycle implementation, CPI in a multi-cycle CPU.

Sections 5.1 – 5.5


Pipelining versus serial execution, MIPS 5-stage pipeline, pipelined datapath, pipelined control, pipeline performance.

Sections 6.1 – 6.3


Pipeline hazards, structural hazards, data hazards, stalling pipeline, forwarding, load delay, compiler scheduling, hazard detection, stall and forwarding unit, control hazards, branch delay, dynamic branch prediction, branch target and prediction buffer.  

Sections 6.4 – 6.6

13 , 14

Cache memory design, locality of reference, memory hierarchy, DRAM and SRAM, direct-mapped, fully-associative, and set-associative caches, handling cache miss, write policy, write buffer, replacement policy, cache performance, CPI with memory stall cycles, AMAT, two-level caches and their performance, main memory organization and performance.

Sections 7.1 – 7.3

Sections 7.5 – 7.6


  Last Updated: Saturday September 01, 2012, by Dr. Muhamed Mudawar