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


ComputerOrganization.jpg

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


Leonard.png
Instructor: Leonard McMillan
Office: SN311
email: mcmillan@unc.edu
Office Hours: Wednesdays, 9:00-11:00am



wilkie.jpg
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




Site built using pyWeb version 1.10
© 2010 Leonard McMillan, Alex Jackson and UNC Computational Genetics