Logged in as: guest
Log in
|
Comp 411 - Computer Organization
Spring 2012
|
Announcements
- The solutions to problem set 6 are posted (4/29/2012)
- Solutions to problem set 4 and problem set 5 are now posted. (4/27/2012)
- During my office hours today a bug was pointed out on slide 17 of lecture 17. It has been fixed. You can download a pdf version of the new version by clicking on the 3/16 link or here. (4/25/2012)
- Solutions to problem set 2 and problem set 3 are now posted. (4/19/2012)
- Problem set #5 is now on-line, and the deadline has been extended (3/25/2012).
- Correction to problem set 3. In design #2 of Probem 4, the carry-in input of the adder whose A and B inputs are connected to X2 and Z2 respectively should be connected to Z2, not Z3.
- The solutions to problem set 1 are now posted. I apologize for the delay. (2/9/2012)
- I uploaded yet another version of Lecture 6. (2/6/2012)
- Problem set #2 has been posted and is due on Feburary 15. (2/1/2012)
- There has been a major bug-fix in the miniMIPS simulator. The previous buggy version leads to incorrect solutions for questions 3 and 4 of the first problem set, if you used the simulator to solve them. (1/30/2012)
- Due to forces beyond my control, I need to change my office hours to Wednesdays from 9-11am. By the way, David has set his office hours to Tuesdays 2-4pm. (1/25/2012)
- Problem set #1 is now posted and will be due on Feburary 1. (1/18/2012)
- I uploaded a new pdf of lecture 1 that has a more detailed description and examples of the error-correcting code that was discussed at the end of lecture. The animation is also broken into multiple slides so you can see what is going on. (1/11/12)
- The first lecture will be held on January 9, 2012.
Course Description
Comp 411, Computer Organization, explores the topic of how computers work, in terms of both software and hardware. It covers a wide range of topics including what a bit is, and why bits are the atoms in the universe of computation. We also discuss how information is represented and processed in hardware, and arrive to the conclusion that, to a computer, everything is data, including the instructions that underly software.
Comp 411 also covers the wide range of languages, and layers of translation, used for computation-- spanning from machine language to assembly language to high-level compiled and interpreted languages. We will also touch on the conventions that will enable us to constuct large programs, modular software systems, and even programs that manage the loading, execution, and creation of other programs.
We will then delve deeper into computer hardware to discover what means to be digital. We will explore how simple combinational logic can be made to perform math and manipulate bits and how logic with state can be made to perform a series of operations. This will culminate in the virtual construction of a simple, yet fully functional computer.
In the last third of the class we will discuss issues of performance. What the measures of MIPS and CPI mean, and how they con be improved. We will discuss simple techniques for increasing the rates which computer execute instructions including pipelining and parallelism. We will then address techniques for improving the apparent memory bandwidth of a computer and finally how to simulate more memory that we can actually afford,
Grading will be based on:
- 6 Problem sets with the lowest dropped (25%)
- 2 Quizzes (30%)
- 10 Labs with the lowest dropped (25%)
- Final Exam (20%)
Book, Course Information, and Prerequisites

Textbook: |
Computer Organization and Design Patterson and Hennessy 4th Edition.
|
Credit Hours: |
3 + 1 mandatory lab
|
Location: |
FB009 |
Time: |
MWF 2:00-3:15PM |
URL: |
http://www.csbio.unc.edu/mcmillan/Comp411S12
|
Prerequisite: |
COMP 410
|
Course Instructors
Instructor: |
Leonard McMillan |
Office: |
SN311 |
email: |
mcmillan@unc.edu |
Office Hours: |
Wednesdays, 9:00-11:00am
|
TA: |
David Wilkie |
Office: |
SN043 |
email: |
wilkie@cs.unc.edu |
Office Hours: |
Tuesdays, 2:00-4:00pm |
Schedule
Date |
Lecture Topic |
Reading
|
Homework |
M. January 9 |
Introduction & Information Theory (pdf) |
|
|
W. January 11 |
Representing Information (pdf) |
|
|
F. January 13 |
No Lab on Week 1 |
M. January 16 |
University Martin Luther King Holiday (no class) |
W. January 18 |
Computers Behind the Curtain (pdf) |
Chapter 1 |
PS#1 |
F. January 20
|
Lab 1. The UNIX shell |
|
|
M. January 23 |
A Simple Instruction Set (pdf) |
Chapter 2.1-2.7 |
|
W. January 25 |
A Simple Instruction Set (continued)
|
|
|
F. January 27 |
Lab 2. Some Assembly Required |
|
|
M. January 30 |
Addressing Modes and C pointers (pdf)
|
Chapter 2.10
|
|
W. February 1 |
Stacks and Procedures (pdf)
|
|
PS#2 (#1 due)
|
F. February 3 |
Lab 3. Let it C |
|
|
M. February 6 |
Assemblers and Compilers (pdf)
|
|
|
W. February 8 |
Transistors and Logic (pdf)
|
|
|
F. February 10
|
Quiz #1 |
|
|
M. February 13
|
Gates and Combinational Logic (continued)
|
|
|
W. February 15 |
Arithmetic Circuits (pdf) |
|
PS#3 (#2 due) |
F. February 17 |
Lab 4. Basic Arithmetic, I/O, and Control |
|
|
M. February 20 |
Multiplication (pdf) |
|
|
W. February 22 |
Floating Point (pdf) |
|
|
F. February 24 |
Lab 5. Arrays, Pointers, and Structures.
|
|
|
M. February 27 |
Circuits with Memory(pdf) |
|
|
W. February 29 |
Sequential Logic (pdf) |
|
PS#4 (#3 due)
|
F. March 2 |
Lab 6. Building Programs from Parts.
|
|
|
M. March 5 |
Spring Break (no class)
|
W. March 7 |
F. March 9 |
M. March 12 |
Programmable Machines |
|
|
W. March 14 |
Building a Computer (pdf) |
|
|
F. March 16 |
Lab 7. Recursion, Debugging, and Stack Dumps |
|
|
M. March 19 |
CPU Performance (pdf) |
|
(#4 due)
|
W. March 21 |
Basic Pipelining (pdf) |
|
PS #5
|
F. March 23 |
Quiz #2 |
|
|
M. March 26 |
Pipelining a CPU (pdf) |
|
|
W. March 28 |
Pipelining a CPU (continued) |
|
|
F. March 30 |
Lab 8. Function Pointers |
|
|
M. April 2 |
Pipeline Hazards and Fixes (pdf)
|
|
|
W. April 4 |
Memory Hierarchy (pdf) |
|
|
F. April 6 |
Holiday (no class) |
M. April 9 |
Caches (pdf) |
|
PS #6 (#5 due) |
W. April 11 |
Caches (continued) |
|
|
F. April 13 |
Lab 9. Cache Simulation |
|
|
M. April 16 |
Virtual Memory (pdf) |
|
|
W. April 18 |
Virtual Machines and the OS Kernel (pdf)
|
|
|
F. April 20 |
Lab 10. |
|
|
M. April 23 |
Multi-Core and Parallel Processing (pdf)
|
|
(#6 due) |
W. April 25 |
Final Words |
|
|
M. April 30 |
Final Exam, 12:00-3:00pm, Chapman 125
|
Resources
|