227-0003-10L  Digital Design and Computer Architecture

SemesterSpring Semester 2024
LecturersF. K. Gürkaynak, S. Sadrosadati
Periodicityyearly recurring course
Language of instructionEnglish


AbstractThe 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.
Learning objectiveThis 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.
ContentThe 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, Decoupled Access/Execute, SIMD Processors, GPUs, Systolic Arrays, Multithreading.
- Memory System: Memory Organization, Memory Technologies, Memory Hierarchy, Caches, Prefetching, Virtual Memory.
Lecture notesAll the materials (including lecture slides) will be provided on the course website:
http://safari.ethz.ch/ddca/
The video recordings of the lectures are likely to be made available, but there may be delays associated with the posting of online videos.
LiteraturePatt 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.
CompetenciesCompetencies
Subject-specific CompetenciesConcepts and Theoriesassessed
Techniques and Technologiesassessed
Method-specific CompetenciesAnalytical Competenciesassessed
Problem-solvingassessed
Project Managementfostered
Social CompetenciesCommunicationassessed
Cooperation and Teamworkfostered
Personal CompetenciesCreative Thinkingfostered
Critical Thinkingassessed
Self-awareness and Self-reflection assessed
Self-direction and Self-management assessed