|
Instructor |
Prof. Milos Prvulovic |
Office: Klaus 2406 |
|
TA |
Minjang Kim (minjang at cc dot gatech dot edu) |
Office hours: Tuesdays 11-noon and Thursdays noon-1pm (Commons in front of Klaus 2405, close to 2406 ) |
|
TA |
Sunjae Park (sunjae.park at gatech dot edu) |
Office hours: Mondays 1-2 and Wednesdays 10-11 (Commons in front of Klaus 2405, close to 2406 ) |
|
Lecture |
Tuesdays/Thursdays 3-4:30 in Klaus 1447 |
|
|
Textbook |
Computer Architecture: A Quantitative Approach, 4th Edition by John Hennessy and David Patterson. There will also be a number of papers assigned as required reading for the class. |
|
|
Description |
This course is a graduate-level (CS6290) course on advanced computer architecture. |
|
|
Prerequisites |
You should be familiar with computer organization at the level of CS2200. |
|
|
Assignments |
4 homeworks, 1 large project. All assignments are due at the beginning of the class on the due date. No late assignments will be accepted. |
|
|
Collaboration |
Collaboration on the project in groups of two is allowed and encouraged. If you work on the project in a group, turn in one project report with names of both collaborators. You are also encouraged to discuss course material with others and form study groups for exams. Any other collaboration is not allowed. For example, helping a friend understand what is being asked for in an assignment is OK (text of problems and project requirements is course material). Looking at another group's code, giving others hints for solving a homework problem, working together to solve a homework problem, etc. is not OK. If you are not sure if something is allowed or not, ask the instructor! Not knowing what the rules are is not a valid excuse for not following those rules. |
|
|
Project |
The project will require running architectural simulators. The simulator is a relatively large piece of software (tens of thousands of lines of C and C++ code). The project requires non-trivial changes to parts of the simulator. To get any credit for a project, you will need simulation results. Plan your time so that you can modify the simulator, debug it, run the simulations, and write up the report before the due time of the project. |
|
|
Grading |
20% homework (based on best 3 scores from HW1 through HW4) 30% project 25% midterm 25% final | |
The midterm exam is scheduled for Thursday, October 4th, in-class. The material covered is everything up to and including Pentium Pro and Pentium 4. For practice, a midterm test (PDF) and its complete solution (PDF)from a prior semester is provided here. Note, however, that the material taught (and the textbook) for CS 6290 has been updated, so old tests do not provide an exact topic-for-topic match for this semester's tests.
Homework 1 (PDF) was due at start of class Tuesday 9/11/2007. Here's the solution.
Homework 2 (PDF) was due at start of class Tuesday 9/25/2007. Here's the solution.
Homework 3 (PDF) is due at start of class Thursday 10/25/2007. You will need the following files to complete this homework: sesc-20071002.tar.bz2, crafty.mipseb, and test.in.
Homework 4 (PDF) is due at start of class Tuesday 12/04/2007. This is a "wildcard" homework. Your total homework grade will be based on your top three homeworks. So you don't have to do HW4 if you are happy with how you have done the other three. Of course, it is still useful to do HW4, because it is good practice for the final exam.
Here's a solution for HW4. Note that I tried to provide a good explanation for everything, not just to solve the problem. I also tried to do this quickly so it can be posted as soon as possible to help you prepare for the exam. As a result, there might be a mistake or omission. These will be corrected when we grade HW4, but if I waited until I double-checked things the final exam would be too close for you to get any benefit from looking at these solutions.
The report for the CS 6290 project (PDF) is due at start of class Thursday 12/06/2007. You will need the following files to complete the project: sesc-20071016.tar.bz2, water-sp.mipseb, random.in, and input. If you save the "input" file as "input.txt", make sure you adjust the simualtion command line to reflect that change.
| Material Covered | Lecture Date(s) | Slides |
| Intro, Trends in Computer Architecture | 08/21 | PDF, PowerPoint |
| Performance, Metrics, Benchmarks, and Amdahl's Law | 08/23 | PDF, PowerPoint |
| ILP, Dependences, and Register Renaming | 08/28, 08/30 | PDF, PowerPoint |
| Dynamic Scheduling (Tomasulo's Algorithm) | 08/30 | PDF, PowerPoint |
| Reorder Buffer and Instruction Commit | 09/04 | PDF, PowerPoint |
| Branch Prediction and Advanced Instruction Delivery | 09/06, 09/11 | PDF, PowerPoint |
| Speculative Execution, Misprediction Recovery, and Load/Store Handling | 09/13 | PDF, PowerPoint |
| In-order superscalars and static exploitation of ILP | 09/18, 09/20 | PDF, PowerPoint |
| Pentium Pro and Pentium 4 | 09/20, 09/25 | PDF, PowerPoint |
| Caches | 10/02, 10/11 | PDF, PowerPoint |
| Memory | 10/16, 10/18 | PDF, PowerPoint |
| Multiprocessors | 10/23, 10/25 | PDF, PowerPoint |
| Synchronization | 11/1 | PDF, PowerPoint |
| Interconnect & Many-core processors | 11/8, 11/13 | PDF, PowerPoint |
| Storage | 11/15 | PDF, PowerPoint |