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 lectures and labs is optional 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.
Requirements: basic knowledge of software programming (data types, control structures, algorithms…).
All labs are distributed and managed using git and GitLab. Recommendations for the lab sessions:
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:
Below Your Program
Under the Covers
Performance
Instructions: Language of the Computer
Arithmetic for Computers
The processor
Large and Fast: Exploiting Memory Hierarchy
Plus, optionally:
Historical Perspective and Further Readingof Chapters 1, 2 and 3
A C Sort Example to Put it All Together
Floating Point
Warning: the most recent Java archive of the RARS tool is bogus. If you want to install RARS on your personal computer, use the previous version (V1.7): https://github.com/rarsm/rars/releases/download/v1.7/rars-1.7.jar.