I worked through the first 3 parts of this course online in 2025. We implemented an 8086 emulator, a modern CPU profiler, and a repetition tester and used these to explore modern CPU architecture.
Implemented a bare-bones 8086 emulator in C. Implemented all required data-sturctures from scratch.
Source: https://github.com/variousauthors/computer_enhance/tree/main/perfaware/part1/src
Implemented a profiler to measure execution time in nested and recursive function calls.
Source: https://github.com/variousauthors/computer_enhance/tree/main/perfaware/part2/src
Used and extended the profiler from part 2 to investigate performance penalties from cache misses, page faults, etc... Delved into instruction-level parallelism, scheduling and the "RAT".
Source: https://github.com/variousauthors/computer_enhance/tree/main/perfaware/part3/src