- Wpływ mikroarchitektury na model spójności pamięci
- Load-Store OoO (§5.3, Memory Data Flow Techniques)
- model spójności pamięci w systemach SMP
- protokoły spójności cache (MOESI, …)
- jak zaimplementować instrukcje atomowe?
- co robią bariery pamięciowe?
- Algorytmy i struktury danych bez blokad
- wsparcie atomic w C11 i C++11
- implementacja compare-and-swap, test-and-set
- problem ABA
- implementacja load-linked i store-conditional
- definicje lock-free / wait-free / obstruction-free
- listy, kolejki, stosy, …
- Sprzętowe wsparcie do profilowania programów
- liczniki sprzętowe
- korzystanie z narzędzia perf
- biblioteka google-benchmark
- zaprogramowanie micro-benchmarków
- Front-end współczesnych procesorów
- dekodowanie mikrorozkazów w architekturze Intel x86-64
- j.w. ale dla POWER8
- przedstawienie narzędzia Intel Architecture Code Analyzer
- Omówienie mikroarchitektury procesora POWER8 / POWER9