Comp411:  Computer Organization

Fall 2012
 
 
Subscribe to RSS Feed

Course News

 
Blog Summary Widget





Grading

Problem Sets:     25%

Quizzes:              15%

Exams:                35%

Lab:                     25%





Meeting Times

Class:  MW 1-2:15pm, FB009

Lab:  Fri 1-1:50pm, FB009





The Team




Prof. Montek Singh

Instructor

FB234 (Brooks)

montek@cs.unc.edu


Siddharth Padmanabhan

Teaching Assistant

SN045 (Sitterson)

siddartr@cs.unc.edu


Wenda Xu

Teaching Assistant

SN343 (Sitterson)

xuwd@cs.unc.edu





Office Hours

Please see the Google Calendar below right for the most up-to-date schedule.  Generally, office hours will be as follows:


Instructor

Mon 2:15-3:30pm,
Wed 2:15-3pm, and
Thu 3:30-4:30pm (all in FB234)


Siddharth

Tue 2:30-4pm (SN155), and
Thu 10:30am-12pm (SN045)


Wenda

Tue 2:30-4pm (SN155), and
Thu 10:30am-12pm (SN343)



However, these times may need to be adjusted sometimes.  Please see the Google Calendar for the latest information.

 

It is also highly recommended that you obtain a copy of the book below (“K&R”), or any other introductory text on C programming.

C Programming Language

Kernighan and Ritchie

2nd ed.[paperback], Apr 1988

ISBN 978-0131103627


 

Computer Organization and Design:  The Hardware/Software Interface

Patterson and Hennessy

4th ed., Revised Printing,

Nov 2011

ISBN 978-0123747501


 

PROJECT DEMOS (MIPS part)

Please pick an appointment slot for your demo.

Please enter your name against only one 5-min time slot. 
Please do not inadvertently overwrite other students’ entries! 
If all slots are taken before you sign up, please email me to let me know.




BULLETIN BOARD on PIAZZA

Post questions here and look for answers.


GRADES on SAKAI

Check all your scores here.

Histogram/Grade Trend (updated Dec 1)



HOMEWORK


Problem Set 1 (due Sep 19)

Problem Set 2 (due Oct 8)

Problem Set 3 (due Nov 5) [Solutions]

Problem Set 4 (due Nov 12) [Solutions]

Problem Set 5 (due Nov 30) [LAST ONE]


LABS


Lab 1:  UNIX Tutorial for Beginners (Aug 24)

  1. Lab Assignment #1

  2. Familiarize yourself with logging in onto the department’s server (classroom.cs.unc.edu), and transferring files between your computer and the server.  Windows users may use SecureCRT or SSH/SFTP Secure Shell (these tools may be downloaded for free from shareware.unc.edu).  Mac and Unix users should use the terminal/shell applications and ssh/sftp commands.

  3. Please go through this UNIX Tutorial and submit the program output by 1pm on Fri Aug 31 according to instructions provided in the lab writeup.

  4. Note:  For Part 7 of the tutorial, instead of downloading the code onto your computer and then transferring it to the classroom server, you could copy it from here: /home/montek/public_html/teaching/Comp411-Fall12/UnixTut/units-1.74.tar.gz using the cp command.

Lab 2:  Editing, Compiling and Running C Programs (Aug 31)

  1. Reading:  Please refer to the K&R book for basics of C (see left).  Alternatively, you can refer to this online C reference.

  2. Lab Assignment #2

  3. Please follow the exercises in this tutorial, and submit your work as specified in the assignment writeup.

Lab 3:  Arithmetic, I/O, and Conditionals and Loops in C (Sep 7)

  1. Important:  Read Chapters 1, 2, 3 and 7 of K&R (or relevant sections on arithmetic, input-output, if-else and for/while loops in another C reference).

  2. Lab Assignment #3

  3. Please follow all the exercises in this tutorial, and submit your work as specified in the assignment writeup.

Lab 4:  Arrays and Functions in C (Sep 14)

  1. Lab Assignment #4

  2. Please follow all the exercises in this tutorial, and submit your work as specified in the assignment writeup.

Lab 5:  More on Arrays and Pointers in C (Sep 21)

  1. Lab Assignment #5

  2. Please follow all the exercises in this tutorial, and submit your work as specified in the assignment writeup.

Lab 6:  Basic MIPS Assembly (Sep 28)

  1. Lab Assignment #6

  2. Please follow all the exercises in this tutorial, and submit your work as specified in the assignment writeup.

  3. Assembly files for Exercise 0:  Sum.asm, SumArray.asm, and Fibonacci1.asm

  4. Assembly starter file for Exercise 1:  ex1.asm

  5. NOTE:  It is highly recommended that for this lab you turn off support for pseudoinstructions and extended syntax in MARS (under Settings).  Doing so will help you get the most out of this assignment.

Lab 7:  More MIPS Assembly (Oct 5)

  1. Lab Assignment #7

  2. Please follow all the exercises in this tutorial, and submit your work as specified in the assignment writeup.

Lab 8:  String Processing and Recursion (Oct 12)

  1. Lab Assignment #8

  2. Please follow all the exercises in this tutorial, and submit your work as specified in the assignment writeup.  Work is due October 24.

Lab 9:  More Recursion (Oct 12)

  1. Lab Assignment #9

  2. Complete the exercises in this tutorial.  Work is due Wednesday, Oct 31.

Lab 10:  Extra Credit (Optional)

  1. Extra Credit Assignment

  2. C files:  bubble.c, bubble_generic.c

  3. Work is due Friday, November 9.

Labs 11 and 12:  Your Own Mini-Project

  1. Project Assignment

  2. Propose your topic no later than Wed, Nov 7, 1pm.  Please submit your proposal using Sakai; see under “Assignments” in the left toolbar.

  3. Complete C part and demo by Fri, Nov 16 during lab, or earlier.

  4. Complete MIPS part and demo by Fri, Nov 30 during lab, or earlier.




LECTURES


Lecture 1:  Introduction (Aug 22)

  1. Reading:  Ch. 1

Lecture 2:  Information Encoding - 1 (Aug 27)

  1. Reading:  Ch. 2.2-2.3

Lecture 3:  Information Encoding - 2 (Aug 29-Sep 5)

  1. Reading:  Ch. 2.4

Lecture 4:  Instruction Sets - 1 (Sep 10)

  1. Reading:  Ch. 2.1-2.7

Lecture 5:  Instruction Sets - 2 (Sep 12)

  1. Reading:  Ch. 2.1-2.7

  2. Study Carefully:  Inside front flap of textbook (“Green Card”)

Lecture 6:  Addressing Modes (Sep 19)

  1. Reading:  Ch. 2.3, 2.10, 2.14

Lecture 7:  Assembly and Simulator (Sep 26)

  1. Reading:  Ch. 2.10, Appendix B.1-B.5

  2. Sum example (Sum.asm)

  3. Sum Array example (SumArray.asm)

  4. Fibonacci example (Fibonacci1.asm)

  5. Another Fibonacci example (Fibonacci2.asm)

Quiz #1 (Fri, Sep 28, in lab)

  1. Material covered:  Lectures 1-5 (and associated readings), Labs 1-4, and Problem Set 1

  2. 15 minutes in duration, multiple-choice / short-answer questions

  3. Open-book, open-notes, calculator allowed

  4. No computer/internet access, except for accessing class website, lecture slides and textbook CD supplement

Lecture 8:  Procedures and Stacks (Oct 1-3)

  1. Reading:  Ch. 2.8, Appendix B.6

Lecture 9:  Assembly and Compilation (in lab on Oct 12)

  1. Reading:  Ch. 2.12-2.14

Lecture 10:  Transistors and Logic - 1 (Oct 10)

  1. Reading:  Appendix C.1-C.3

Quiz #2 (Mon, Oct 15, in class)

  1. Material covered:  Lectures 4-10 (and associated readings), Labs 4-7, and Problem Set 2.  Note:  Lecture 10 will be only lightly represented on the quiz.

  2. 15 minutes in duration, multiple-choice and short-answer questions

  3. Open-book, open-notes, calculator allowed

  4. No computer/internet access, except for accessing class website, lecture slides and textbook CD supplement

  5. Quiz #2 Solutions

Lecture 11:  Transistors and Logic - 2 (Oct 17)

  1. Reading:  Appendix C.1-C.3

EXAM #1 (Oct 24, in class)

  1. Material covered:  Lectures 1-11 (and associated readings), Labs 1-8, and Problem Sets 1-2.

  2. 75 minutes in duration, multiple-choice and short-answer questions

  3. Open-book, open-notes, calculator allowed

  4. No internet access, except for accessing class website

  5. Laptop allowed for accessing CD supplement

  6. No use of MIPS/MARS simulators

  7. Exam 1 Sample Questions

  8. Solutions to Sample Questions

Lecture 12:  Arithmetic and Logic Circuits (Oct 29)

  1. Reading:  Ch. 3.1-3.2, Appendix C.5

  2. Skim:  Appendix C.6

Lecture 13:  Multiplication, Division and Floating-Point Numbers (Nov 5)

  1. Reading:  Ch. 3.3-3.5

  2. Skim:  Ch. 3.6-3.8

Lecture 14:  Performance (Nov 7)

  1. Reading:  Ch. 1.4

Quiz #3 (Mon, Nov 12, in class)

  1. Material covered:  Lectures 10-14 (Lecture 14 up until Slide #21 only), associated readings, and Problem Sets 3-4.

  2. 20 minutes in duration, multiple-choice and short-answer questions

  3. As usual, open-book, open-notes, calculator allowed

Lecture 15:  Memories and State Machines (Nov 12-14)

  1. Reading:  Appendix C.7-C.12

Exam #2 (Nov 19)

  1. Material covered:  Lectures 10-15; all associated readings; Problem Sets 3-4.

  2. 75 minutes in duration, multiple-choice and short-answer questions

  3. Open-book, open-notes, calculator allowed

  4. No internet access, except for accessing class website

  5. Laptop allowed for accessing CD supplement

  6. No use of MIPS/MARS simulators

  7. Exam 2 Sample Questions


Lecture 16:  Let’s Build a Computer! (Nov 26)

  1. Reading:  Ch. 4.1-4.4

Lecture 17:  Memory Hierarchy and Caches (Nov 28)

  1. Reading:  Ch. 5.1-5.4


Quiz #4 (online on Sakai, due by Fri Nov 30 end of day)

  1. Material covered:  Lectures 15-16 (and associated readings).

  2. Multiple-choice and short-answer questions

  3. As usual, open-book, open-notes, calculator allowed

  4. Quiz will be released on Sakai Wed Nov 28 at 2pm; due Fri Nov 30 by midnight.  You will have 1 hour to complete the quiz once you start it.

  5. Direct link to quiz (quiz will be available starting 2pm on Wed)



Lecture 18:  Pipelining, and Wrap Up! (Dec 5)

  1. Reading:  Ch. 4.5-4.6, 4.7-4.8


END -- No more classes, homework, labs or exams!

 

MIPS Assembler and Simulator (MARS)


Official website

Download Java version

Online Help

Tutorial