CS 2630 (22C:060) Computer Organization
Spring 2016

Instructor

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]

Teaching Assistants

Thamer Alsulaiman, thamer-alsualiman@uiowa.edu, 201N MLH

Textbook

David Patterson and John Hennessy, Computer Organization & Design, 5th Edition Elsevier, 2013.

Course Outline

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.

Tests and assignments

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.

THE MARS SIMULATOR

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