Logged in as: guest Log in
Comp 411 - Computer Organization
Spring 2013

Announcements


  • May 3, 2013: The final exam will be held on May 6 from 8am-11am in SN 014. It will be the same format as previous tests-- multiple choice, open book, open notes, no computers or calculators. The test will have approximately 40 questions, approximately half of the questions will cover the material since the last quiz (pipeling, caches, virtual memory) and the other half will be comprehensive.  
  • May 3, 2013: I will be holding a Final Exam review session on Sunday, May 5 from 4pm-6pm in SN 014. 
  • Apr 25, 2013: Lab 10 is now posted.
  • Apr 23, 2013: You can now check your Lab grades on your setup page. 
  • Apr 17, 2013: Problem Set #6 is now posted.  
  • Apr 17, 2013: Quiz #2 will be returned during Friday's Lab (4/19) and Lab 9 is now posted.
  • Apr 7, 2013: Problem Set #5 is now posted. 
  • Mar 20, 2013: A partial version of Problem Set #4 is now posted. I will add one more problem soon.
  • Mar 20, 2013: Lab 7 is now posted. As usual do the prelab. 
  • Feb 26, 2013: Lab 5 is now posted. It has a longer than usual prelab, please complete it ahead of the lab's meeting time
  • Feb 26, 2013: Problem Set #3 is now complete.
  • Feb 23, 2013: A partial version of Problem Set #3 is now posted. I will add one more problem soon.
  • Feb 20, 2013: Lab 4 is now posted. Please do the prelab ahead of the lab's meeting time
  • Feb 19, 2013: There have been numerous reports of typos on problem set 2. Most of these are due to the browser attempting to intrepret C code as HTML. In any case, I believe I have fixed most of these problems. Send me an email if you have problems. 
  • Feb 8, 2013: The final version of problem set 2 is now posted. 
  • Feb 7, 2013: I have posted an incomplete version of problem set 2, so that you can begin working on it. Check back to see when the completed version is posted. You should be able to submit solutions for the currently posted questions without fear of losing them when the final version of the problem set is posted. 
  • Feb 3, 2013: The [Submit] button on the problem set page is now functional. You may submit and resubmit full or partial solutions up to the due date.  
  • Jan 23, 2013: The second lab has been posted. I fear it may be a little long, so make sure that you do the prelab and look over the entireity of lecture 4 before attending lab.
  • Jan 23, 2013: The first problem set is now online. You must first register on the Comp411 website to examine your personalized problem set.
  • Jan 15, 2013: The first lab is now online (Lab 1), please complete the prelab before class. Meanwhile, the first problem set has been delayed until next Wednesday.
  • Jan 13, 2013: If you followed the link to the first problem set, please ignore it. It was an old link to last spring's problems. Your problem set will be posted sometime on Wednesday.
  • The first lecture will be held on January 9, 2013.



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%)

Detailed Course Syllabus

Book, Course Information, and Prerequisites


ComputerOrganizationV5.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: T 2:00-4:00pm



hahmed.jpg
TA: Syed Mubarak Hassan Ahmed
Office: SN044
email: hahmed@cs.unc.edu
Office Hours: T 9-12 F 11:00am-12:00pm



chsun.jpg
TA: Chih-Hao Sun
Office: SN045
email: chsun@cs.unc.edu
Office Hours: M 1:00pm-5:00pm



Schedule


Date Lecture Topic Reading
Homework
W. January 9 Introductions (pdf)    
F. January 11 No Lab on Week 1
M. January 14 Information Theory (pdf)
 
W. January 16 Computers Behind the Curtain (pdf) Chapter 1  
F. January 18
Lab 1. The UNIX shell    
M. January 21
University Martin Luther King Holiday (no class)
W. January 23 A Simple Instruction Set (pdf)  Chapter 2.1-2.7 PS#1
F. January 25 Lab 2. Some Assembly Required    
M. January 28 A Simple Instruction Set (continued)    
W. January 30 Addressing Modes and C pointers (pdf) Chapter 2.10  
F. February 1
No Lab this Week
M. February 4 Stacks and Procedures (pdf)
   
W. February 6
Assemblers and Compilers (pdf)   PS#2 (#1 due)
F. February 8
Lab 3. Let it C    
M. February 11 Transistors and Logic (pdf)    
W. February 13 Gates and Combinational Logic (continued) Appendix C  
F. February 15 Quiz #1 Lectures 1-7  
M. February 18 Arithmetic Circuits (pdf)    
W. February 20 Multiplication (pdf)   PS#3 (#2 due)
F. February 22 Lab 4. Basic Arithmetic, I/O, and Control    
M. February 25 Floating Point (pdf)    
W. February 27 Circuits with Memory (pdf)    
F. March 1 Lab 5. Arrays, Pointers, and Structures    
M. March 4 Sequential Logic (pdf)    
W. March 6 Programmable Machines (cont)   PS#4 (#3 due)
F. March 8 Lab 6. Building Programs from Parts    
M. March 11 Spring Break
W. March 13
F. March 15
M. March 18 Catch-up    
W. March 20 Catch-up    
F. March 22 Lab 7. Debuggers    
M. March 25 Building a Computer (pdf)    
W. March 27 Building a Computer (cont)    
F. March 29 UNC Holiday (No Lab)
M. April 1 Computer Performance (pdf)    
W. April 3 Intro to Pipelining (pdf)   PS#5 (#4 due)
F. April 5 Lab 8. Function Pointers    
M. April 8 Intro to Pipelining (cont)    
W. April 10 Pipelining a CPU (pdf)    
F. April 12 Quiz #2 Lectures 8-14  
M. April 15 Pipelining Issues (pdf)    
W. April 17 Memory Hierarchy(pdf)    PS#6 (#5 due)
F. April 19 Lab 9. A Cache Simulator    
M. April 22 Caches (pdf)    
W. April 24 Virtual Memory (pdf)   PS#6 Due
F. April 26 Lab 10. A Final Adventure    
M. May 6 Final Exam (8am - 11am)    



Resources




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