This course presents the architecture of microprocessor-based systems, from the internals of the processors themselves to the main peripherals that surround them, and makes a complete computing machine, capable of running operating systems like GNU/Linux, Android, Windows, iOS...
Teaching and Learning Methods: Lectures, teamwork, lab. sessions, mini-conferences by industrials.
Course Policies: Attendance to the lab. sessions and the mini-conferences are mandatory.
Book: PATTERSON D. A., HENNESSY J. L. Computer organization and design: the hardware software interface. Morgan Kaufmann, 2013, 800p.
Basic knowledge in software programming (data types, control structures...)
- Types of microprocessors, from the simplest to the most powerful, and their instruction sets
- Interactions between hardware and software, caches and memory, peripherals, mandatory hardware support for operating systems...
- Labs allowing to observe a processor in action during the execution of software applications and to understand how it interacts with its environment.
- Mini-conferences given by industrials, presenting the latest generations of processors and the challenges related to their design and verification.
- https://perso.telecom-paristech.fr/pacalet/CompArch/
Learning outcomes:
- Understand the relationships between software concepts (functionality, performance, parallelism, security...) and the underlying hardware machines (processors, peripherals...).
- Discover the most important techniques used by processor and/or computer vendors to improve the performance of their products (pipe-lining, caches, branch prediction...) and the problems they pose (pipeline hazards, cache coherence...).
- Understand the hardware support to operating systems (processor modes, Memory Management Units, timers, interrupts, atomic
- operations...)
- Become familiar with the classical trade-offs between performance, cost and complexity in computer systems
Nb hours: 42.00, at least 4 Lab sessions (10.5 hours) and 2 mini-conferences (3 hours)
Evaluation: Final exam (50%), lab reports (25%), contributions to the course material with texts, presentations, videos, exercises, labs… (25%)