"People who are really serious about software should make their own hardware"
-- Alan Kay
Overview
In this course, we will cover how modern processors are designed to achieve high performance under which restrictions, and actually get hands-on experience with hardware design using a sequence of gently guided labs.
You will get to see your ideas actually improve performance on real metal!
We will use
RISC-V, a modern, real-world, and open-source ISA as our learnig tool.
This class will be taught mostly in-person, but
parts of it may be offered over live Zoom!
Lecturer: Sang-Woo Jun
Time:
- Lecture: Tuesdays and Thursdays, 2:00 PM - 3:20 PM (DBH 1300)
- Discussion: Mondays, 1:00 PM - 1:50 PM (DBH 1300)
Topics Covered
- Instruction sets and abstraction
- Computer Arithmetic
- Pipelining and Hazards
- Memory Hierarchy
- Introduction to modern topics
Announcements
Material
- 2023-04-04: Lecture 1 - Introduction [slides]
- 2023-04-04: Lecture 1.5: Moore's Law [slides]
- 2023-04-06: Lecture 2: HW-SW Interface [slides]
- The Digital Antiquarian, "Doing Windows" Series [link]: A fascinating history of how Microsoft Windows became what others couldn't, and how innovations in Intel 80386 helped made it happen.
- LGR, Installing MS-DOS on an AMD Ryzen Gaming PC [link]: Testament to the strict backwards-compatibility of x86!
- 2023-04-06: Lecture 3: RISC-V Assembly [slides]
- Swanson Technologies, The Art of Picking Intel Registers [link]: A bit more detail into how no x86 register is quite "general-purpose"
- 2023-04-13: Lecture 4: RISC-V assembly conventions, circuits recap [slides]
- evilmonkeyzdesignz: {Taking apart an AMD chip package} [link]
- Performance Matters: AVX-512 Mask Registers, Again [link]
- Alessandro Levi: Is This the Most Complex Machine in the World? [link]: Extreme ultraviolet (EUV) machine which tries to push the limits of moore's law
- 2023-04-20: Lecture 5: Pipelining the processor [slides]
- Programming the Altair 8800 computer [link]
- 2023-05-02: Lecture 6: Processor design hands-on [slides]
- 2023-05-11: Lecture 7: Caches [slides]
- 2023-05-16: Lecture 8: Operating system support [slides]
- 2023-05-23: Lecture 9: Virtual memory [slides]
- 2022-05-30: Lecture 10: Parallelism [slides]
- 2022-06-01: Lecture 11: SIMD [slides]
- 2022-06-06: Lecture 12: GPUs [slides]
Labs
- Processor design [link]
- Matrix multiplication [link]
Grading
- Three Labs: 60 %
- Final: 40 %
Book
This class does not have a mandatory book.
However, it may be helpful to consult
Computer Organization and Design RISC-V Edition: The Hardware Software Interface (by David A. Patterson and John L. Hennessy).
Interesting Materials