C952 Computer Architecture

Welcome to C952, Computer Architecture! This course is an interactive survey of Computer Architecture based on Patterson and Hennessy's widely used text Computer Organization and Design (referred to as COD in my books). The textbook has a lot of great and exciting information. But while the textbook is both deep and broad, the assessment is just broad. In general, students have found the exam more accessible than the textbook (take a look at the course chatter). The objective assessment assesses an introductory depth of the content. As such, students should focus on understanding the significant concepts in context with a focus on optimization.

Passing the objective assessment

The preassessment has been a good prediction of how well students perform on the objective assessment. Consider taking it before reading the material. As you then will be able to gauge the knowledge level targeted by the assessment. Here are some other tips:

  • Vocabulary is critical. Know all the words that show up on the preassessment -incorrect choices included. You don't need to memorize everything; you'll need to be able to recall things in context. Here's a collection of C952 terms to know.

  • Treat the assembly code like pseudocode. Don't worry about the differences between LEG and ARM. Know ADD, SUB, branching, and how it relates to higher-level code.

  • Ace the computational problems. Students have repeatedly told me that CPU time problems are similar in difficulty and scope to those on the preassessment. So let's cash in on this. Knowing all those formulas is unnecessary. Here are some C952 practice problems and C952 practice problems -solutions (see the associated webinars below).


Here is a recommended study path built from our collective discussions with students:

  • Chapters 3 and 4 - focus on the basic concepts. These chapters go far beyond what is needed for the assessment. Understand the following: basics of binary numbers (you can skip binary floating-points), load/store for registers, digital logic like AND/OR/NOT, shifting, branching, add, and subtract. Video series: assembly instructions to datapaths (this is for MIPS, but it is similar to ARM/LEG)

  • Chapter 5.1-5.2 Pipelining and parallelism are the main focus. Relevant pipelining questions can be found in the computational worksheets and webinars. Understand data and control hazards. The rest of the chapter can be skimmed.

  • Chapter 6 - 6.6 and 6.7. Understand the basics of virtual memory (6.7) and virtual machines (6.6). Understand why caching is done and the basics of how it works, technologies (6.2), and commonly used RAID configs (6.11) —Video series: Virtual memory.

  • Chapter 7 - 7.2 and 7.3, The rest of the chapter can be skimmed. Understand the advantages of using vector operations.