252-0028-00L Digital Design and Computer Architecture
|Semester||Spring Semester 2021|
|Lecturers||O. Mutlu, F. K. Gürkaynak|
|Periodicity||yearly recurring course|
|Language of instruction||English|
|Abstract||The class provides a first introduction to the design of digital circuits and computer architecture. It covers technical foundations of how a computing platform is designed from the bottom up. It introduces various execution paradigms, hardware description languages, and principles in digital design and computer architecture.|
|Objective||This class provides a first approach to Computer Architecture. The students learn the design of digital circuits in order to:|
- understand the basics,
- understand the principles (of design),
- understand the precedents (in computer architecture).
Based on such understanding, the students are expected to:
- learn how a modern computer works underneath, from the bottom up,
- evaluate tradeoffs of different designs and ideas,
- implement a principled design (a simple microprocessor),
- learn to systematically debug increasingly complex systems,
- hopefully be prepared to develop novel, out-of-the-box designs.
The focus is on basics, principles, precedents, and how to use them to create/implement good designs.
|Content||The class consists of the following major blocks of contents:|
- Major Current Issues in Computer Architecture: Principles, Mysteries, Motivational Case Studies and Examples
- Digital Logic Design: Combinational Logic, Sequential Logic, Hardware Description Languages, FPGAs, Timing and Verification.
- Basics of Computer Architecture: Von Neumann Model of Computing, Instruction Set Architecture, Assembly Programming, Microarchitecture, Microprogramming.
- Basics of Processor Design: Pipelining, Out-of-Order Execution, Branch Prediction.
- Execution Paradigms: Out-of-order Execution, Dataflow, Superscalar Execution, VLIW, SIMD Processors, GPUs, Systolic Arrays, Multithreading.
- Memory System: Memory Organization, Memory Technologies, Memory Hierarchy, Caches, Virtual Memory.
|Lecture notes||All the materials (including lecture slides) will be provided on the course website: |
The video recordings of the lectures are likely to be made available, but there may be delays associated with the posting of online videos.
|Literature||Patt and Patel's "Introduction to Computing Systems" and Harris and Harris's "Digital Design and Computer Architecture" are the official textbooks of the course.|
We will provide required and recommended readings in every lecture since the course is cutting-edge and there is no textbook that covers what the course covers. They will be mostly chapters of the two textbooks, and important articles that are essential for understanding the material.