Internship, PhD, job proposals...

This course provides an overview of the architecture of microprocessor-based systems. The main studied topics are: the types of microprocessors, from the simplest to the most powerful, their instruction sets, the interactions between hardware and software, the peripherals (memories, interconnects, inputs-outputs, graphics engines,...), the interfaces between peripherals and microprocessors, how the peripherals are seen and used by the different software layers... The lectures are complemented by lab sessions to illustrate the interactions between hardware and software (processor simulators, debugging, step by step execution...).

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

The lab sessions are mandatory, the reports and the produced source code account for 30% of the overall mark. It is perfectly possible, and even recommended, to work in cooperation with others but lab reports and source codes are 100% personal works. Identical reports or source codes will be considered as void.

A two hours written exam with documents accounts for the remaining 70%. The questions and problems correspond to all labs and lectures that have been given. Connected devices (laptops, smart phones, tablets...) are not allowed. Example past exams:

Recommendations for the lab sessions

All labs are distributed and managed using git and GitLab.

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: