CS241: Computer Organization
Spring 2002


     Prof. Janice T. Searleman
     375 Science Center, 268-2377,

Office Hours:

If you cannot come during these scheduled office hours, feel free to contact me to set up an appointment.

Course Objectives:

An introduction to computer organization with a focus on assembly language programming. Topics include the functional organization of computer hardware; data representation, and computer arithmetic; instruction sets, addressing modes and low-level I/O. The MIPS assembly language and C will be used. This course serves as a foundation for courses on operating systems, compilers, networks, and computer architecture.

Textbook & Software:

Computer Organization & Design: The Hardware/Software Interface, Second Edition, by David A. Patterson and John L. Hennessy, Morgan Kaufmann Publishers, 1998, ISBN 1-55860-428-6.

SPIM Simulator. Also available by anonymous ftp from ftp.cs.wisc.edu in the file pub/spim/spim.tar.Z

Grading Policy:

2 Midterm Exams 30%
Final Exam 35%
Programming Projects & Homework 35%

Tentative dates for the exams are: February 27 and April 3.

You are responsible for all material discussed in class and in the reading assignments. Attendance is particularly important, and class participation is encouraged. The written homework and programming assignments are expected to be individual efforts unless otherwise notified. You are encouraged to learn from each other and to help each other understand concepts, but be ethical -- do not copy or edit a program which isn't yours or allow another student to write or debug your program for you.

Assignments are due at the beginning of class on the given due date. Late programs will be accepted up to one week late, but there will be a 15% reduction in grade.

After one week, a grade of zero will be recorded for the assignment. You are strongly urged to see the instructor before any problems arise.


Introduction to computer architecture; levels of abstraction
Performance Issues
MIPS Assembly Language: add, load, store
Instruction formats; Conditionals
Immediate operands; Jump tables
Procedure call/return
Assembling, linking & loading
Review of C: pointers, arrays & strings
Computer Representations: Char & Int
Two's Complement; arithmetic; overflow
Logical Operations
Multiplication & Division
Floating Point; Special numbers; Rounding
I/O; Bus Technologies; Polling & Interrupts: DMA
Disk: performance; RAID
Memory Layout; Cache: Direct-mapped Cache,
Associative Cache, & Multilevel Cache
Introduction to Virtual Memory: Paging
Processor: Datapath & Control