All reading assignments, except the Background Material listed for the first assignment, are in the text for the course, Computer Organization and Design, Third Edition by D. Patterson and J. Hennessy (Morgan Kaufmann, 2005; ISBN: 1-55860-604-1). The third edition is quite different from earlier ones, so be sure to get the right one.

The first printing of the book has quite a few typographical and other errors (“errata”). Some of these might have been corrected in successive printings. The companion web site for the book has an “official” errata list, but I suggest you also use my list of errata for the book. Go through the errata lists and write in all the needed changes in your copy of the book before you start studying.


Topic Reading Assignments
Review of Assembly Language and Combinational Logic CS-343 Background Material (PDF)
Textbook:
  • Chapters 1 and 2
  •  Appendix B, Sections B.1 through B.6
Sequential Logic Appendix B, Sections B.7 through B.13
ALU Design and Implementation Chapter 3, Sections 3.1 through 3.6
First Exam See “A Note About Exams” below.
Processor Performance Chapter 4.
Datapath and Control Chapter 5.
Pipelining Chapter 6, Sections 6.1 through 6.6.
Second Exam See “A Note About Exams” below.
Memory Hierarchy Chapter 7, Sections 7.1 through 7.5.
Storage and I/O Chapter 8, Sections 8.1, 8.2, and 8.4 through 8.6.
Final Exam See “A Note About Exams” below.

A Note About Exams

There is an archive of many previous exams given in this course. I provide this archive for two reasons: (1) Some people have copies of old exams anyway, so it seems only fair for everyone in the class to have the same material available to them. (2) Seeing old exams gives you some idea of what kinds of questions I ask on exams. That is, you can see my personal “exam style.”

A Note of Caution: Do not try to use the past exams as a study guide for this semester’s exams. If you look over the old exams you will see that I do not ask the same questions each time. The fact is, I don’t cover the same material each semester, I don’t assign the same projects each semester, and I don’t even use the same text book each semester. So trying to learn the answers to past exam questions is a very poor strategy for preparing for this semester’s exams. A much better strategy is to study the reading assignments carefully, write a lot of code, and make sure you understand what you are doing in this semester’s assignments. For these reasons, I do not provide the answers to past exams.
Every term some students ignore this advice, and the consequences are generally quite grim!