CS4200/5200: Computer Architecture, Spring 2012
This web page was translated to Serbo-Croatian language by Anja Skrba from Webhostinggeeks.com.
This web page was translated to Punjabi language by Bydiscountcodes Team.
This web page was translated to Vietnamese language by Laura Himmer from CouponoBox.
Course Description
Computer architecture is the science and art of
selecting and interconnecting hardware components to create a computer that
meets functional, performance and cost goals. In this course, you will learn how
to completely design a correct single processor computer, including processor
datapath, processor control, pipelining optimization,
instruction-level parallelism and multi-core, memory/cache systems,
and I/O. You are going to see that no magic is required to design a
computer. You will learn how to quantitatively measure and evaluate the
performance of designs.
This course serves you two ways. First, for those who will continue in
computer architecture, it lays foundation of detailed experience necessary to
take more advanced courses. Second, for those students not continuing in
computer architecture, it gives an in-depth understanding of the inner-workings
of modern computers, their evolution, and trade-offs present at the
hardware/software boundary. It also solidifies an intuition about why hardware
is as it is.
Announcement
What is new?
- Apr 23: There is no class on Wed, Apr 25. The next class will be on Apr 30.
- Apr 18: the homework assignment on Memory Hierarchy is available; due class time of Apr 30 (Monday).
Refer it to Memory.
- Apr 18: Reminder: project is due with a demo in class time of May 2 (Wed); Refer to HTML for details. You should make sure the simulator working at your laptop.
- Mar 30: the homework assignment on Pipelining is available; due class time of Apr 9 (Monday). It is at Pipeline.
- March 19: The results of the midterm were released in today's class. If you missed today's class, come to my office to pick up your midterm result. There are also some graded homework assignments for pickup from my office (I released in the classroom but not picked up). Please do so as soon.
- Feb 22: the homework assignment on Datapath is available; due class time of Feb 29. Refer it to Datapath.
- Feb 22: Note that the reading assignment I due is extended to March 5, Monday, class time.
- Feb 13: the homework on ISA is available; due Feb 20 class time (Mond); Refer it to ISA.
- Feb 1: the homework on Performance Evaluation is available; due class time of Feb 8 (Wed). Refer it to Performance Evaluation. Please put it in an envelope/folder for turn-in.
- Jan 3: the textbook, syllabus, lecture notes information are available.
Reading and Project Assignments
- Reading Assignment 1: Reading-1, due Feb 29's class time.
- Project: HTML;
due Wednesday, May 2, class time (Demo may be expected in Lab or your own laptops).
Required Backgrounds
- Prerequisite: CS2160 "Computer Organization and Assembly Language
Programming" or equivalents.
- Knowledge of a high-level language (C/C++, Java or c# is an ok alternative) and data structures.
- Understanding of assembly language programming (MIPS, and/or IBM PC):
opcodes, operands, etc.
- If you want to take the class without the prerequisite, you have to get
permission from the instructor.
Textbook
- Required: J.L. Hennessey and D.A. Patterson, "Computer Architecture: A
Quantitative Approach", Morgan Kaufman, 5th edition (2011).
The text may be complemented by some additional reading assignments.
- Reference (and required): D.A. Patterson and J.L. Hennessey, "Computer Organization and
Design: The Hardware/Software Interface", Morgan Kaufman, the 4th edition (2008).
I hope CS2160 instructors have told you that the book is needed for CS4200/5200.
Some materials covered are in the reference book, but the lecture notes and slides are self-containing.
Course Objectives and Tentative Schedules
- Introduction of Computer Architecture (1-2 lecture)
- Quantitative Measure of Design Performance (3 lectures)
- MIPS Instruction Set Architectures (1 lecture)
- Instruction Set Principles and Examples(2 lectures)
- Process Design: Data Path and Control Unit (2-3 lectures)
- Pipelining Datapath and Control (2-3 lectures)
- Pipelining Hazards (2-3 lectures)
- Instruction-level Parallelism (2 lectures)
- Memory Subsystems: Caches (6 lectures)
- Memory Subsystems: Virtual Memory(1-2 lectures)
- Input/Output subsystems: Interfacing I/O to CPU (2-3 lectures)
- Server Virtualization and Datacenters (1~2 lectures)
Exam Schedules
- Midterm scheduled: 4:30pm -- 5:45pm, Wed, March 7, 2012; in classroom; No Make-Up exam.
- Final Exam (FIRM): 4:30pm -- 7:00pm, Wed, May 9, 2012; in classroom; No Make-Up exam.
- All exams are close-book and close-notes. However, you are allowed to
carry one double-side help sheet of 8.5 by 11 in.
- Example in PDF
only tells you what is the basic format and style of exams, nothing related to contents.
- The best way to prepare for exams is to re-do lecture examples and homework assignments, review the textbook according to the lecture notes, and of course attend all lectures.
- If you schedule another exam that overlaps with these exams, you need to
make arrangements with the other instructor to take that exam at another time.
- In case of any change, it will be announced in the class and on the course Web
site 1-2 weeks before the change.
Grading Scale
Percentage |
Grade |
[90, 100] |
A |
[87, 90) |
A- |
[84, 87) |
B+ |
[80, 84) |
B |
[75, 80) |
C+ |
[70, 75) |
C |
[65, 70) |
D+ |
[60, 64) |
D |
Below 60 |
F |
Borderline cases will be resolved by student participation in class providing
intelligent questions, informative comments, and constructive criticisms.
Grading Percentage
Undergraduate (CS4200) |
Graduate (CS5200) |
In-class disc. & attendance: 4% |
In-class disc. & attendance: 4% |
Homework: 20% |
Homework: 20% |
Project and Readings: 20% |
Project and Readings: 20% |
Midterm: 20% |
Midterm: 20% |
Final Exam: 36% |
Final Exam: 36% |
All exams will be graded by the instrutor himself.
The attendance policy is as follows: There will be some attendance sheet
circulated at random times in the semester. Each student is allowed one
absence during the semester for whatever reason. For each extra absence, the
attendance percentage is reduced proportionally. Exceptions to this policy will
be made only in extreme cases, due to circumstances beyond your control and
which were unforeseen at the beginning of the semester (such as illness). You
need to provide convincing evidence, such as letters from your doctors in case
of illness. If you are aware of classes you will need to miss because of
business/field trips, or athletic events, please discuss to the instructor in
the beginning of the semester. If you arrive too late or leave early, you may be
marked absent for that class.
There will be one three-week project using C/C++. For CS5200 attendants, you must do the
project individually. CS4200 attendants should do the project in teams; the teammates might be designated
by the instructor (based on random selection) before the project is released.
The project is to explore some small extension to a concept we study
in class, or to validate the experimental data in some paper. More details about
the project will be available as the semester progresses.
Course Policy
- The last day to drop without special permission from your dean: March 30, 2012
- If you have a disability for which you are requesting an accommodation,
you are encouraged to contact the Disability Services Office within the first
week of classes. The Disability Services Office is located in Main Hall #105.
(Phone # is 255-3354)
- Students are required to attend all lectures. Missing lectures are
extremely risky since the teaching pace is fast and the course is heavy!
- Homework, reading, and project assignments are important part of the course and are to
be completed individually. Assignments should be due in class on the due date
in hard-copy. No email submission.
- Late homework, reading, and project submission: loses 30% of its value per day, except
under extreme non-academic circumstances, such as illness. In such cases, you
have to provide sufficient and convincing proof, i.e., documents from the
doctors.
- For FAIRNESS, no make-up examinations, except under extreme non-academic
circumstances, such as illness. In such cases, you have to provide sufficient
and convincing proof, i.e., documents from the doctors.
- Adherence to the University's Code of Ethics will be strictly
monitored and enforced. This will be applicable to assignments, projects and
examinations.
- Academic Integrity violations, such as plagiarism, cheating on an exam
etc., will result in a series of actions and penalties including the student
failing the class.
- Any work submitted for a grade must include the following statement and be
signed and dated. If this is missing or not signed and dated, the work will be
returned ungraded.
- I have neither given nor received unauthorized assistance on this work.
- Signed:
- Date:
Links to Computer Architectures and Information Assurance related websites
- Web link of "Computer
Architecture"
- Web link of "Computer
Organization and Design: The Hardware/Software Interface"
- Web link of "Computer Architecture:
A Quantitative Approach"
- Web link of the Systems Performance
Evaluation Committee
- Web link of the Transaction Processing Council
- Web link of National Security Agency
- Web link of NIST, Computer Security Division, Computer Security Resource Center
- Web link of Common Criteria for Information Technology Security Evaluation
- Web link of U.S. Department of Homeland Security
- Web link of ITU (International Telecommunication Union
- Web link of Internet Society (ISOC)
- Web link of The Internet Engineering Task Force (IETF)
- Web link of Internet Architecture Board (IAB)
- Web link of International Organization for Standardization (ISO)
- Web link of IEEE Computer Society
- Web link of Association for Computing Machinery (ACM)
- Web link of USENIX: The Advanced Computing Systems Association