Sukumar Ghosh, 201P Maclean Hall, 319-335-0738, sukumar-ghosh@@uiowa.edu
Class meeting time: 11:00AM - 12:15PM W128 CB
Semester hours: 3
Office hours: 2:00-3:30 PM TTh
[DEO: Professor Alberto Segre]
Thamer AlSulaiman, thamer-alsualiman@uiowa.edu,201N MLH, Office hours: 2:00-3:30 MW
Rahil Sharma, rahil-sharma@uiowa.edu, 101C MLH, Office hours: 12:45-2:00 MW
David Patterson and John Hennessy, Computer Organization & Design, 4th Edition Elsevier, 2008.
To buy the textbook from the publisher at a discounted price, follow this link
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 performance issues. For the purpose of illustration, we will use examples from the MIPS processor.
There will be 6 homeworks, two quizzes and two examinations. The homeworks will account for 30% of the final grade. Each homework and quiz is worth 5% of the final grade, and the tests are worth 60% (midterm 25% and final 35%) of the final grade. The tests will be scheduled as follows:
Midterm Exam: Tuesday, October 8, 2013 (in class)
Final Exam: To be announced
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 Assigned Sep 10, due Sep 17
Homework 2 Assigned Sep 24, due Oct 1
Homework 3 Assigned Oct 15, due Oct 22
Homework 4 Assigned Oct 29, due Nov 5
Homework 5 Assigned Nov 12, due Nov 19
Homework 6 Assigned Nov 21, due Dec 5
Information about downloading and different versions
MIPS Assembly Language Handout
A SPIM Tutorial
Sample Assembly Language Program
Lecture Notes
August 27, 2013 Lecture 1. Introduction to Computer Organization To review Binary Number Systems, read this tutorial. Also read about hexadecimal numbers here |
August 29, 2013 Start reading Chapter 2 of your textbook. Lecture 2. Introduction to Assembly Language Programming |
September 3, 2013 Lecture 3. Assembly Language Programming |
September 5, 2013 Lecture 4. Assembly Language Programming |
September 10, 2013 Lecture 5. Dealing with branches |
September 12, 2013 Lecture 6. Procedure call |
September 17, 2013 Lecture 7. Nested and recursive procedure call |
September 19, 2013 Lecture 8. Assembler, RISC vs CISC |
September 24, 2013 Lecture 9. Exception Handling in MIPS |
September 26, 2013 Lecture 10. Introduction to Digital Logic |
October 1, 2013 Lecture 11. The Building Blocks of Digital Circuits |
October 3, 2013 Lecture 12. The Building Blocks of Digital Circuits (continued) |
October 10, 2013 Lecture 13. 1-bit Arithmetic Logic Unit |
October 15, 2013 Read Chapter 3, Section 3.5 Lecture 14. Dealing with Floating Point Numbers Here is an excellent article on IEEE Floating Point Arithmetic |
October 17, 2013 Lecture 15. Flip-flops, registers, counters |
October 22, 2013 Lecture 16. Multiplicaiton and Division |
October 24, 2013 Lecture 17. Register file, Memory |
October 29, 2013 Lecture 18. RAM and ROM Read the handout "The Basics of Logic Design" posted on ICON |
October 31, 2013 Lecture 19. Cache memory |
November 5, 2013 Lecture 20. Cache Memory (continued) |
November 7, 2013 Lecture 21. Processor design |
November 12, 2013 Lecture 22. Introduction to Multicore Architecture: thanks to MIT Open Courseware Video Lectures |
November 14, 2013 Lecture 23. Review |
November 19, 2013 Lecture 24. Processor design (continued) |
November 21, 2013 Lecture 25. Processor design (continued) |
December 3, 2013 Lecture 26. Pipelining |
December 5, 2013 Lecture 27. Virtual Memory |
December 12, 2013 Lecture 28. Virtual Memory (continued) Pentium Architecture |