ECE 429/629 Organization of Computers
Fall 2009

 This course introduces the principles of advanced computer architecture. Students are expected to enter this class with a basic understanding of computer architecture, along with assembly language. Building upon these fundamentals, the students will learn advanced architectural techniques for making computers run orders of magnitude faster than would be possible from technological improvements alone.



Date   Topic Readings
1 8/20 Th Introduction 1.1-1.2, 1.4-1.7
2 8/25 T Architecture decisions 1.3, B.1-B.7
3 8/27 Th Measuring performance 1.8-1.9
4 9/1 T MIPS design B.9; COD 3.1-3.8
5 9/3 Th MIPS instructions B.9; COD 3.1-3.8
6 9/8 T Translating C into MIPS COD 3.1-3.8
7 9/10 Th Constructing an ALU COD 4.5
8 9/15 T Building a single-cycle CPU COD 5.1-5.4
9 9/17 Th Building a multi-cycle CPU COD 5.4
10 9/22 T Multi-cycle control COD 5.4-5.6
11 9/24 Th Multi-cycle control COD 5.4-5.6
12 9/29 T Pipelining A.1, A.3; COD 6.1-6.2
13 10/1 Th Pipelined datapath A.3; COD 6.2
14 10/6 T exam #1  
15 10/8 Th Pipelined control A.3; COD 6.3
16 10/13 T break  
17 10/15 Th Data hazards 2.1, A.2; COD 6.4-6.5
18 10/20 T Control hazards 2.1, A.2; COD 6.6
19 10/22 Th Exceptions A.4; COD 6.7
20 10/27 T Floating point A.5; COD 4.8
21 10/29 Th Branch prediction 2.2-2.3, B.8
22 11/3 T Scoreboarding 2.4, A.7
23 11/5 Th exam #2  
24 11/10 T Tomasulo's algorithm 2.4-2.5
25 11/12 Th Speculation 2.6
26 11/17 T Multiple-issue processors 2.7-2.8
27 11/19 Th Memory hierarchy 5.1, C.1-C.2; COD 7.1-7.5
28 11/24 T Caches 5.2-5.3, C.3
29 11/26 Th break  
30 12/1 T Thread-level parallelism 4.1-4.2
31 12/9 W Final exam  

Note: COD refers to David A. Patterson and John L. Hennessy, Computer organization and design : the hardware/software interface, Morgan Kaufmann Publishers, 1998. (on reserve at the library: QA76.9.C643 H46)


Homeworks should be turned in as hardcopies (typed or written) and are due at the beginning of class.

Programming assignments are due at 11:59pm on the due date.  (An 8-hour grace period is automatically extended, so that no points will be deducted for anything submitted before 8:00am the next morning.)  Your code must compile and run on either Visual C++ 6.0 SP6 or Visual Studio 2008.  To turn in your assignment, send an email to (and cc the instructor and grader) with the subject line "ECE429-1,#n" (without quotes but with the # sign), where 'n' is the assignment number.  You may leave the body of the email blank.  Attach a zip file containing a readme.txt file (listing the names of the files in your project and the name of the O/S on which it was tested, along with any other information that is needed to run your code), and all of the files needed to compile your project (such as *.h, *.c, *.cpp, *.rc, *.dsp, *.dsw; do not include temporary files such as *.ncb, *.opt, *.plg, *.aps, or the res, Debug, or Release directories).  You must send this email from your Clemson account, because the assign server is not smart enough to know who you are if you use another account.  (E.g., do not use  Be sure that this file is actually attached to the email rather than being automatically included in the body of the email (Eudora, for example, has been known include files inline, but this behavior can be turned off).  Also,


Misc resources

Coding resources

Resources for current students (restricted access, not open to the public)

Outside links:


Instructor: Stan Birchfield, 207-A Riggs Hall, 656-5912, email: stb at clemson
Grader: Vidya Murali, 015 Riggs Hall, vmurali at clemson
Lectures: 9:30 - 10:45 TTh, 223 Riggs Hall