CS 433
CS 433 - Computer System Organization
Fall 2024
Title | Rubric | Section | CRN | Type | Hours | Times | Days | Location | Instructor |
---|---|---|---|---|---|---|---|---|---|
Computer System Organization | CS433 | CSP | 79901 | PKG | 3 | 1230 - 1345 | T | Saugata Ghose | |
Computer System Organization | CS433 | CSP | 79901 | PKG | 3 | 1230 - 1345 | R | ARR Illini Center | Saugata Ghose |
Computer System Organization | CS433 | MCS | 36076 | PKG | 4 | 1230 - 1345 | T | Saugata Ghose | |
Computer System Organization | CS433 | MCS | 36076 | PKG | 4 | 1230 - 1345 | R | ARR Illini Center | Saugata Ghose |
Computer System Organization | CS433 | T3 | 36069 | LCD | 3 | 1230 - 1345 | T R | 1000 Lincoln Hall | Saugata Ghose |
Computer System Organization | CS433 | T4 | 43363 | LCD | 4 | 1230 - 1345 | T R | 1000 Lincoln Hall | Saugata Ghose |
Computer System Organization | CSE422 | CSP | 79902 | PKG | 3 | 1230 - 1345 | T | Saugata Ghose | |
Computer System Organization | CSE422 | CSP | 79902 | PKG | 3 | 1230 - 1345 | R | ARR Illini Center | Saugata Ghose |
Computer System Organization | CSE422 | MCS | 36086 | PKG | 4 | 1230 - 1345 | R | ARR Illini Center | Saugata Ghose |
Computer System Organization | CSE422 | MCS | 36086 | PKG | 4 | 1230 - 1345 | T | Saugata Ghose | |
Computer System Organization | CSE422 | T3 | 36083 | LCD | 3 | 1230 - 1345 | T R | 1000 Lincoln Hall | Saugata Ghose |
Computer System Organization | CSE422 | T4 | 43364 | LCD | 4 | 1230 - 1345 | T R | 1000 Lincoln Hall | Saugata Ghose |
See full schedule from Course Explorer
Official Description
Course Director
Text(s)
Computer Architecture: A Quantitative Approach, 6th Ed, by John L. Hennessy and David A. Patterson
Learning Goals
Understand design principles and methods used in contemporary processors and memory systems and apply them to new designs. (1), (2)
Evaluate the performance of a modern computer (1), (2)
Determine sources of potential performance bottlenecks in a processor design and determine techniques to address them. (1), (2)
Reason about sources of low memory system performance for a workload and determine techniques to address them (1), (2)
Evaluate tradeoffs between hardware and software techniques to achieve a performance goal (1), (2), (6)
Understand requirements for a correct parallel program and methods for supporting them in hardware. (1), (2), (6)
Topic List
Fundamental concepts related to performance, power, reliability, cost vs. price
Basic pipeline structure: some review from pre-requisite, multicyle functional units, static branch prediction, handling interrupts
Instruction-level parallelism: hardware techniques (e.g., dynamic scheduling, superscalar, dynamic branch prediction, handling precise interrupts)
Instruction-level parallelism: software-driven techniques (e.g., loop unrolling, trace scheduling, predication, memory access reordering)
Advanced concepts in cache design (e.g., prefetching, lockup-free caches, multilevel caches)
Main memory and virtual memory
Multiprocessors/multicore: parallelism models
Cache coherence: snoopy and directory solutions
Synchronization
Memory consistency models
Data parallel architectures
Assessment and Revisions
Revisions in last 6 years | Approximately when revision was done | Reason for revision | Data or documentation available? |
Removed details on instruction set architectures | 2008 | Much of this material was covered in 232 and instruction sets are no longer considered the key determinant of performance. The course still includes a summary of the main aspects of instruction sets. | Discussion with 232 instructor and industry trends. |
Removed basics of I/O, networks | Around 2009 | I/O basics were covered in 232 and networks overlapped significantly with operating systems. Removing this material enabled more detail of core architecture topics. | |
Introduced power and reliability as design constraints | 2008 | Reflects increased importance of power/reliability in industry practice | The importance of power and reliability is well documented in research and industry literature. |
Added multithreading/hyperthreading | Introduced around 2010, but more details added around 2012 | This technique was being increasingly implemented in commercial processors. | Industry literature documents this trend. |
Graduate students do a project requiring researching and presenting the design of a contemporary processor - undergraduate students are required to attend these presentations. These projects used to involve a single component of a processor. Now students are required to present the entire architecture (the core, memory hierarchy, and multicore aspects). This provides all students with a unified picture of how material learned in class is applied in practice. The processors covered change with new product releases. | 2009 | This was based on student feedback. They expressed they would like to see how a full system operates. | |
Removing the material described above enabled more details and class interaction on material covered, with changing emphasis depending on industry practice (e.g., more current emphasis on multicore). | Ongoing. |
Required, Elective, or Selected Elective
Selected Elective.