Internship, PhD, job proposals…

This course presents the architecture of microprocessor-based systems, from the internals of the processors themselves to the main peripherals, that altogether make a complete computing machine, capable of running operating systems like GNU/Linux, Android, Windows, iOS…

The focus is on the interactions between software and hardware: thanks to lectures, exercises and laboratory sessions students understand what happens between the source code of a software application and its execution on a real hardware computer system, between software concepts and the hardware components that implement them in the end.

Another important aspect is the relationships between performance, safety and security. The course presents various techniques used by computer system designers to improve the performance of their machines, and the impact of these techniques in terms of safety (functional correctness) and security (sensitivity to various types of attacks).

Learning outcomes:

Teaching and learning methods: lectures, exercises, laboratory sessions, homework.

Course policies: attendance to the laboratory sessions is mandatory.

Requirements: basic knowledge of software programming (data types, control structures, algorithms…).

Attending the lectures is not mandatory but highly recommended: the recommended book is not a real textbook and the provided material does not contain the entirety of what is discussed in the classroom.

Attendance to the lab sessions is mandatory, the lab reports account for 25% of the overall mark. It is perfectly possible, and even recommended, to work in cooperation with others but lab reports must be personal works. Identical reports will be considered as void.

A two hours final exam accounts for 75% of the final grade. The exam is closed book, closed notes, except one A4-sized, double sided, cheat sheet. Connected devices (laptops, smart phones, tablets…) are strictly forbidden. Example past exams:

All labs are distributed and managed using git and GitLab. Recommendations for the lab sessions:

  1. If you never used the EURECOM GitLab instance, first visit it and log in using your EURECOM credentials (LDAP). This will activate your GitLab account.
  2. Visit the ca project and request access (top right of web page, "More actions" menu).
  3. As soon as you will be granted access you will receive a confirmation email. Visit the ca project again, read the home page and follow the instructions.
  4. All lab instructions are given for a GNU/Linux environment (Debian, Ubuntu…) If you work on your personal computer under another Operating System you will have to adapt the instructions.

You read one of these books? Or another that is not in the list and should? Please drop me note and give me some feedback.

The most relevant parts of the Computer Organization and Design - RISC-V Edition - The Hardware Software Interface book for this course (do not forget the corresponding exercises at the end of each chapter) are:

Plus, optionally: