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 (summer 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
Instructor: |
Leonard McMillan |
Office: |
SN311 |
email: |
mcmillan@unc.edu |
Office Hours: |
TR 10:00-11:00am
|
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
|