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

Announcements


  • December 9, 2017: The final exam is now on-line. It is open-notes and open-internet. It must be taken at one of the prearranged examination rooms. Good luck!
  • December 4, 2017: In problem set #5, there were several small typos regarding the size of the immediate fields of the ARM7 ldr and str instructions. These errors are now fixed. If they impacted any answer that you submitted, please reconsider your answer.
  • November 30, 2017: The final lab, Lab 9, is now online.
  • November 29, 2017: Midterm #2 is online and can be accessed from this link. You can submit and resubmit solutions until 10:20am. This exam is open notes and open internet. However, you cannot use the internet as a means for communicating to any person about answers. Finally, this test must be taken in Sitterson 014, or in some other a prearranged and monitored location.
  • November 28, 2017: The first question on Problem Set 5 is fair game for tomorrow's midterm. Make sure you look at it and the relevant slides
  • November 28, 2017: I apologize, but I am too sick to hold a midterm study session tonight. 
  • November 24, 2017: Problem Set #5 is online and is due on 12/06.
  • November 16, 2017: Lab 8 is now online.
  • November 13, 2017: Bhavya will not have his office hours on Wednesday, 11/15.
  • November 9, 2017: Problem Set #4 is online and is due on 11/22.
  • November 9, 2017: Lab 7 is now on-line. Go ahead and do the pre-lab
  • November 2, 2017: Lab 6 is now on-line. Go ahead and do the pre-lab.
  • October 30, 2017: Bhavya will not be holding his office hours for today (Monday).
  • October 26, 2017: Lab 5 is now on-line. Go ahead and start the pre-lab.
  • October 25, 2017: Problem Set #3 is now online and is due on 11/8. Get started soon. I think it is easier than the previous problem set.
  • October 18, 2017: I fixed bugs on Slides 10 and 11 of Lecture17.
  • October 13, 2017: Midterm #1 is online and can be accessed from this link. You can submit and resubmit solutions until 10:20am. Your browser will keep track of past solutions you have already submitted.
  • October 12, 2017: I am sorry for the late notice, but tomorrow, rather than receiving your midterm via an email message, I will instead provide a link from this web site.
  • October 5, 2017: Lab4 is now on-line. Do the prelab before tomorrow's class meeting.
  • September 30,2017: Problem Set #2 is now available on-line. Please get started as soon as possible. 
  • September 29,2017: I am extending the due date of Lab 3 until 11:00am on 9/30.
  • September 29, 2017: I have modified the miniARM assembler so that you do not have to decide whether to use the MOV or MVN to construct specific immediate constants. The assembler uses whichever is appropriate. If you specify an immediate value that cannot be encoded with either MOV or MVN, the assembler reports an error.
  • September 28, 2017: Lab3 is now on-line. Do the prelab before tomorrow's class meeting.
  • September 21, 2017: I am sorry for the late notice, but tomorrow's lab will involve a significant "hands-on demo", rather than a pre-lab. It will be posted on-line just before the start of class.
  • September 18, 2017: Bhavya's office hours for Wednesday, 9/20, will be held in the lower Sitterson lobby (right outside where class is held) from 5pm-7pm.
  • September 14, 2017: There will be no lab held on Friday 9/15. Instead I will hold a short lecture to complete our discussion of addressing modes and branching.
  • September 13, 2017: For PROBLEM SETS: Please note that you are allowed to make as many submissions as you wish and the 'Submit' button saves all of your preivous work and it will reappear whenever you resume working on the problem set. 
  • September 7, 2017: Lab 2 is now on-line. You should do the before prelab ahead of time.
  • September 5, 2017: Problem Set #1 is now available on-line. You can submit partial solutions, and your submitted answers will be retained and shown in your answer sheet when you return later.
  • September 4, 2017: Do not attempt to execute the "sudo" command on "comp411.cs.unc.edu". Doing so is a serious honor code violation, and we are logging all attempts, as some of you are already aware.
  • August 31, 2017: Lab 1 is now on-line. It includes a prelab, which you should attempt before coming to class on Friday 9/1. You can also start on the lab if you wish. You ae allowed to submit a partial set of checkoffs. However, all checkoffs must be submitted before 11:00am on 9/1.
  • August 23, 2017: 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 5 Problem sets with the lowest dropped (25%)
  • 2 In-class exams (32%)
  • 10 9 Labs with the lowest dropped (18%)
  • 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: M, W - 9am-10:15am, Friday lab - 9am-11am
URL: http://csbio.unc.edu/mcmillan/index.py?run=Courses.Comp411F17
Prerequisite: COMP 401 and COMP 283





Course Instructors


Leonard.png
Instructor: Leonard McMillan
Office: SN316
email: mcmillan@unc.edu
Office Hours: M 2-4pm
Bhavya.png
Teaching Assistant: Bhavya Vyas
Office: SN312
email: bdvyas@cs.unc.edu
Office Hours: M 1pm-3pm, W 11am-1pm
Yubo.png
Teaching Assistant: Yubo Luo
Office: SN313
email: yubo@cs.unc.edu
Office Hours: T,Th 2pm-4pm

Schedule



Midterm will be open notes & open Internet. However, this time it must be taken in SN014 or another pre-arranged and monitored location.

Date Topic Homework
August 23 Introduction (slides)  
August 25 Information Please (slides)  
August 28 More Binary Representations (slides)  
August 30 Behind the Curtains (slides)  
September 1 Lab #1. The UNIX shell  
September 4 No Class (Labor Day)
September 6 Concocting an Instruction Set (slides) Problem Set #1
September 8 Lab #2. Editing and Compiling C in Linux  
September 11 Read the Instructions  
September 13 Addressing Modes and Branches  
September 15 No Lab, Continue Addressing Modes and Branches  
September 18 Assembling the Last Few Bits  
September 20 Stacks and Procedures  
September 22 Meet the miniARM simulator  
September 25 Compilers and Interpreters  
September 27 Assemblers and Linkers Problem Set #2
September 29 Lab #3: Some Assembly Required  
October 2 Low-level code optimizations  
October 4 Physical Bits: Transistors and Logic  
October 6 Lab #4: Let it "C"  
October 9 Gates and Combinational Logic  
October 11 Gates and Combinational Logic (cont) PSet #2 due
October 13 Midterm #1: Covers to Lecture 12, PSets #1 and #2, and Labs 1-4
October 16 Arithmetic Circuits (slide 9 has been fixed)  
October 18 Shifting and Logic Units  
October 20 No Class (Fall Break)
October 23 Multiplication  
October 25 Structured Logic and Memory Problem Set #3
October 27 Lab #5: Arrays, Pointers, and Structures  
October 30 Synchronous Logic  
November 1 FSMs and Turing Machines  
November 3 Lab #6: A Program in Many Parts  
November 6 Building a Computer  
November 8 Building a Computer (cont) Problem Set #4
November 10 Lab #7: Recursion, Debugging, and Stack Dumps  
November 13 Computer Performance  
November 15 Pipelining  
November 17 Lab #8: Function Pointers  
November 20 Pipelining a CPU  
November 22 No Class (Thanksgiving Break) Problem Set #5
November 24 No Class (Thanksgiving Break)
November 27 Memory Caches  
November 29 Midterm #2: Covers to Lectures 13-23, PSets #3 and #4, and Labs 4-7. Open notes & open Internet. However, this time it must be taken in SN014, or another prearranged and monitored location.
December 1 Lab #9: Final Lab  
December 4 Virtual Memory  
December 6 Course Review  
December 9 Final Exam: In SN014 from 8am-11am. Open notes & open Internet. Must be taken in SN014, or another prearranged and monitored location.

 

Resources




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