227-0013-00L Computer Engineering
Semester | Spring Semester 2022 |
Lecturers | K. Razavi |
Periodicity | yearly recurring course |
Language of instruction | English |
Abstract | The course provides knowledge on the inner working of computer systems by introducing basic concepts in the design of microprocessors and operating systems |
Objective | By 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. |
Content | On 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. |
Literature | 1) D.A. Patterson, J.L. Hennessy: Computer Organization and Design RISC-V Edition: The Hardware Software Interface (2nd Edition), ISBN-13: 978-0128203316 2) R.H. Arpaci-Dusseau, A.C. Arpaci-Dusseau: Operating Systems: Three Easy Pieces, https://pages.cs.wisc.edu/~remzi/OSTEP |
Prerequisites / Notice | Programming skills in systems languages such as C or C++, knowledge of digital design. |