Logged in as: guest Log in
Comp 411 - Computer Organization
Fall 2015

Announcements


  • December 5, 2015: The Final is now online. The exam begins at 12:00pm and the lasts until 3:00pm. Please wait until the beginning of the exam period to follow the link.
  • December 1, 2015: All labs (except for submissions made outside of regular deadlines) should now be graded. If you have any questions, please email Sebastian.
  • December 1, 2015: A Final Exam study session will be held on 12/2 from 5:30pm-7:00pm in SN014. 
  • November 24, 2015: The second midterm has been graded. I will be holding a a study session for Problem Set #6 on 11/30 from 5:30-8:30pm.
  • November 19, 2015: Lab 10 is posted and will be held in our usual location. It is due at 4:00 pm on November 20th.
  • The second midterm exam is now online and accessible here. The exam begins at 2pm and lasts until 3:15pm. Please wait until the start of class before following the link.
  • November 17, 2015: Problem set 4 is now graded. Contact Sebastian if you have grading questions.
  • November 12, 2015: Labs 1-8 and problem sets 1-3 are now graded. As always, contact Sebastian if you have any questions about the grading.
  • November 12, 2015:  The final problem set, Problem Set #6, is now posted; it is due after the Thanksgiving break on the last day of class, 12/1.
  • November 11, 2015: There are two hidden rows in the ALU function table from lecture 16 slide 8, due to the powerpoint animation that I used (an empty red box). They should read:
    Sub Bool Shft Math OP
    1 X0 1 1 0
    1 X1 1 1 1
  • November 10, 2015: Prof. McMillan will be holding a homework study session for Problem Set 5 tomorrow night (11/11/2015) from 5:30-9:00pm. There is no lab this week! Instead, on 11/13 we will have a study session for the 2nd Midterm, which will be given on November 17.
  • November 4, 2015: Lab 9 is posted and will be held in Chapman 125 rather than SN014, due to a scheduling conflict.
  • October 29, 2015: Lab 8 is posted and due by 4:00 pm on 10/30/2015.
  • October 29, 2015: Problem Set #5 has now been posted. Notice that it will be due on Thursday 11/12. Also, Prof. McMillan will be holding a homework study session on Monday, 11/2, from 5:30pm-9:30pm in the lower lobby of Sitterson. You should attempt Problem set #4 before attending.
  • October 22, 2015: Labs 1-6 and problem sets 1-2 are now graded. As always, please contact Sebastian if you have any concerns about your grades.
  • October 22, 2015: Lab 7 is posted and due by 4:00 pm on 10/23/2015.
  • October 18, 2015: Prof. McMillan will be holding a homework study session on Monday, 10/19, from 5:30pm-9:30pm in the lower lobby of Sitterson. You should attempt problem set #3 before attending.
  • October 13, 2015: The first midterm exam is now online and accessible here. The exam begins at 2pm and lasts until 3:15pm. Please wait until the start of class before following the link. I do maintain a log of everyone who has tried to get an early peek (so far... dmitri, alancat, kewhitle, mscruser, jhj3, gibsonb, mwassel, tbrum96, ... ). Any further attempts will be considered a violation of the UNC honor code.
  • October 8, 2015: The due date for Problem Set #3 has been moved to 10/20. Problem Set #4 will still be issued on 10/13 and due on 10/27.
  • October 6, 2015: No lab this week! Instead, on 10/9 we will have a study session for the 1st Midterm, which will be given on October 13.
  • October 1, 2015: Lab 6 is posted and due by 4:00 pm on 10/2/2015.
  • October 1, 2015: Lab 5 is now graded.
  • September 29, 2015: Problem Set 1 and Lab 4 have been graded. If you have questions about the grading, please contact Sebastian.
  • September 24, 2015: Lab 5 is posted and due by 4:00 pm on 9/25/2015.
  • September 24, 2015: Prof. McMillan will be holding a homework study session on Monday, 9/28, from 5:30pm-9:30pm in the lower lobby of Sitterson. You should attempt the problem set before attending.
  • September 22, 2015: Grades for Labs 1, 2, and 3 are in. You should be able to access them from the Setup tab after logging in.
  • September 17, 2015: Lab 4 is posted and due by 4:00 pm on 9/18/2015.
  • September 11, 2015: Prof. McMillan will be holding extended office hours and help session on Monday, 9/14, from 5pm-9pm in the lower lobby of Sitterson. You should attempt problem set 1 before attending, else it may be too late by that point.
  • September 10, 2015: Lab 3 is posted and due by 4:00 pm on 9/11/2015.
  • September 3, 2015: Lab 2 is posted and due by 4:00 pm on 9/4/2015.
  • September 1, 2015: Problem Set #1 is now online and due before midnight on 9/15/2015.
  • August 28, 2015: Lab 1 is posted and due today at 4:00pm.
  • August 18, 2015: The first class meeting in SN014 (Frownsummer is over).

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 can 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 In-class exams (30%)
  • 10 Labs with the lowest dropped (20%)
  • Final Exam (25%)

Detailed Course Syllabus

Book, Course Information, and Prerequisites


Textbook:

I will be using no book this semester. We will be depending on my notes and online materials.

Credit Hours: 3 + 1 mandatory lab
Location: SN014
Time: Tues-Thurs 2:00-3:15PM
URL: http://www.csbio.unc.edu/mcmillan/Comp411F15
Prerequisite: COMP 401 and COMP 283





Course Instructors


Leonard.png
Instructor: Leonard McMillan
Office: SN311
email: mcmillan@unc.edu
Office Hours: TR 10:00-11:00am
Sigmon.png
Teaching Assistant: Sebastian Sigmon
Office: SN280
email: sigmonse@cs.unc.edu
Office Hours: W 1:00-4:00pm

Schedule


Date Lecture Topic Homework
August 18 Introductions  
August 20 Information Theory  
August 21 No Lab on Week 1
August 25 Behind the Curtain  
August 27 Instruction Set Architectures  
August 28 Lab 1. The UNIX shell  
September 1 Instruction Set Architectures (cont) PSet1 (Due 9/15)
September 3 Addressing Modes and Other ISAs  
September 4 Lab 2. Some Assembly Required.  
September 8 Compilers and Interpreters  
September 10 Assemblers and Linkers  
September 11 Lab 3. Let it 'C'  
September 15 Stacks and Procedures PSet2 (Due 9/29)
September 17 A Last Bit of Assembly factorial
September 18 Lab 4. Editing and Compiling C  
September 22 Transistors and Logic  
September 24 Gates and Combinational Logic  
September 25 Lab 5. Arrays, Pointers, and Structs  
September 29 Arithmetic Circuits PSet3 (Due 10/13 10/20)
October 1 Multiplication  
October 2 Lab 6. Building Programs from Parts  
October 6 Floating Point  
October 8 Memory  
October 9 Study Session for Midterm #1  
October 13 Midterm #1: Covers up to the lecture of 9/17, PSets 1 and 2, and Labs 1-5.
October 15 No Class (Fall break)
October 16 No Lab (Fall break)
October 20 Synchronous Logic PSet4 (Due 11/3)
October 22 FSMs and Turing Machines  
October 23 Lab 7. Recursion, Debugging, and Stack Dumps  
October 27 Building a Computer  
October 29 Computer Performance PSet5 (Due 11/12) 
October 30 Lab 8. Function Pointers  
November 3 Introduction to Pipelining
November 5 Pipelining a CPU  
November 6 Lab 9. One Last "C" Adventure  
November 10 Pipelining Issues  
November 12 Memory Hierarchy PSet6 (Due 12/1)
November 13 Study Session for Midterm #2  
November 17 Midterm #2: Covers the lectures from 9/22 to 10/27, PSets 3, 4, and 5, and Labs 6-9.
November 19 Caches  
November 20 Lab 10. Cache Simulations  
November 24 Virtual Memory  
November 26 No Class (Thanksgiving break)
December 1 Virtual CPUs and OS Kernels  
December 5 Final Exam: (Note: on Saturday!) 12:00pm-3:00pm

Resources




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