227-0013-00L  Computer Engineering

SemesterSpring Semester 2022
LecturersK. Razavi
Periodicityyearly recurring course
Language of instructionEnglish

AbstractThe course provides knowledge on the inner working of computer systems by introducing basic concepts in the design of microprocessors and operating systems
ObjectiveBy the end of the course, the students should be able to analyze and think critically about the design and implementation of computer systems at the hardware and software boundary.
ContentOn the hardware side, the course will show how microprocessors implement control and data paths before introducing microarchitectural optimizations such as pipelining, speculation and caching. On the software side, the course will show how to program a microprocessor before introducing fundamental concepts in the design of operating systems such as on physical and virtual memory management, process management and scheduling.

The lectures are complemented by theoretical exercises and six practical assignments that cover the core concepts of the course and allow students to gain a deeper understanding of the topics.
Literature1) D.A. Patterson, J.L. Hennessy: Computer Organization and Design RISC-V Edition: The Hardware Software Interface (2nd Edition), ISBN-13:

2) R.H. Arpaci-Dusseau, A.C. Arpaci-Dusseau: Operating Systems: Three Easy Pieces, https://pages.cs.wisc.edu/~remzi/OSTEP
Prerequisites / NoticeProgramming skills in systems languages such as C or C++, knowledge of digital design.