Sukumar Ghosh, 201P Maclean Hall, 319-335-0738, ghosh@@cs.uiowa.edu
Class meeting time: 2:30P - 3:45P TTh 118 Macbride Hall (not Maclean)
Semester hours: 3
Office hours: 11:00-12:00 PM TTh
Jonathan Hall, B20J Maclean Hall, 319-335-3650, jonathan-hall@uiowa.edu
Office hours: 12:40-2:10 PM Tuesdays and Thursdays.
David Patterson and John Hennessy, Computer Organization & Design, 3rd Edition Elsevier, 1998.
We will take a top-down approach towards understanding computer organization. We will begin with how high-level language programs are translated into assembly language programs, and how the translated version is interpreted by a basic digital computer. Subsequently, we will discuss how to design the basic building blocks of a digital computer from simpler hardware components.
The software component of the course will introduce assembly language programming of the MIPS processor. It will describes instructions for control-flow, load and store, arithmetic and logical operations, stack handling, various addressing modes and their utility. The hardware components will include logic gates, combinatorial circuits, sequential circuits, ALU design, control unit, memory peripheral interfacing, pipelining, RISC vs. CISC, performance issues. For the purpose of illustration, we will use examples from the MIPS processor.
There will be 6 homeworks, and two examinations. The homeworks will account for 30% of the final grade, and the tests will be worth 70% of the final grade. The tests will be scheduled as follows:
Midterm Exam: March 4, 2008, Tuesday, (in class)
Final Exam: May 16, 2008, Friday, 118 MH, 7:30-9:30 AM
Letter grades will be assigned roughly as follows:
A+ = 95-100 B+ = 80-84 C+ = 65-69 D+ = 50-54 F = 0-39 A = 90-94 B = 75-79 C = 60-64 D = 45-49 A- = 85-89 B- = 70-74 C- = 55-59 D- = 40-44
The instructor reserves the right to make minor modifications in the grading scale.
Homework
Homework 1
Homework 2
Homework 3
Sample solution to Exam 1 questions
Homework 4
Homework 5
Here is a note on SPIM procedure call prepared by Jonathan Hall
Homework 6
Lecture Notes
1-22-08
1-24-08
1-29-08
1-31-08
2-5-08
2-7-08
2-12-08
2-14-08
2-19-08
2-21-08
2-26-08
Review for Exam 1 on 2-28-08
3-6-08
3-11-08
3-13-08
3-25-08
3-27-08
4-1-08
4-3-08
4-8-08
4-10-08
4-15-08
4-17-08
4-22-08
4-24-08
4-29-08
5-1-08
5-6-08
Review of Exam 2 on 5-8-08
MIPS handout (prepared by Aravind Mereddi)
Download and Installation
1. (Windows Users). You can download from here and save on your PC. Unzip this file and run setup.exe
2. (Linux Users). Download this file . However, note that this is already installed on all Linux machines of the CS department, so you don’t have to do anything. Both Spim and its X-window version Xspim have been installed.
Resources
1. Appendix A of your textbook contains detailed description of the assembly language.
2. One copy of a paperback: MIPS Assembly language Programming by Robert Britton (Prentice hall 2004) will be available on reserve in the Math Library. This is a useful resource for understanding, as well as using the MIPS Simulator.
A test file is available here . This program computes the sum 1+2+3+…+N. test the simulator, you can use this file, or write your own program.
Important Reminders
1. The assembly language program should be stored as a text file (.txt) and not as a word file.
2. Always leave a blank line at the end of your text file.
3. Be familiar with the assembler directives. Do not forget to leave a blank
like at the end of the (.text) section, otherwise the program will not run.
4. Know the pseudo-instructions. They will simplify your life. Try to use the system calls whenever required.