Sukumar Ghosh, 201P Maclean Hall, 319-335-0738, sukumar-ghosh@uiowa.edu
Class meeting time: 11:00AM - 12:15PM TTh, 140 SH (3 sh)
Office hours: 1:30-3:00 PM TTh
[DEO: Professor Alberto Segre]
Thamer Alsulaiman, thamer-alsualiman@uiowa.edu, 201N MLH
David Patterson and John Hennessy, Computer Organization & Design, 5th Edition Elsevier, 2013.
This course 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 describe 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, multicore processors, and performance issues. For the purpose of illustration, we will use examples from the MIPS processor.
There will be 6 home assignments, two quizzes and two examinations. Each home assignment is worth 5% of the final grade, and each quiz is worth 10% of the final grade. The tests are worth 50% (midterm 30% and final 20%) of the final grade. The tests and the quizzes will be scheduled as follows:
Quiz 1: February 16 (in class, first 30 minutes)
Quiz 2: April 12 (in class, first 30 minutes)
Midterm Exam: Monday, March 1, 2016 (6:30-8:00PM, room TBA)
Final Exam: TBA
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.
Download the MARS simulator from here
MIPS Assembly Language Handout
A MARS Tutorial
Lecture Notes
January 19-22, 2016 Introduction to Computer Organization and Assembly Language Programming To review Binary Number Systems, read this tutorial. Also read about hexadecimal numbers here |
January 25-29, 2016 MIPS Assembly language instructions |
February 1-5, 2016 Jump, conditional branch and subroutine call instructions Read Chapter 2 |
February 8-12, 2016 Assembler, Loader, Linker, Exception Handling Read Chapter 2 |
February 15-26, 2016 Logic Design Read Appendix B |
March 7-12, 2016 Arithmetic Operations, Floating Point Arithmetic Read Chapter 3 |
March 21-25, 2016 Memory Read Chapter 5 |
March 28-April 8, 2016 Cache Memory Read Chapter 5 |
April 11-April 15, 2016 Processor Design Read Chapter 4 |
April 11-April 22, 2016 Processor Design Read Chapter 4 |
April 26-May 06, 2016 Virtual Memory Read Chapter 5 |