Nội dung
Danh sách bài học
- 01~10 phút
Module 2 — Cache & memory hierarchy: tổng quan
Vì sao RAM nhanh nhưng CPU vẫn phải chờ, và cache giải quyết điều đó thế nào. Module dạy memory hierarchy, locality, code cache-friendly, AoS vs SoA và false sharing.
- 02~17 phút
Vì sao có cache — và những con số độ trễ nên nhớ
CPU nhanh hơn RAM hàng trăm lần, nên có nhiều lớp bộ nhớ: thanh ghi, L1/L2/L3, RAM, SSD, mạng. Bài học thang độ trễ để ước lượng hiệu năng và biết bottleneck nằm đâu.
- 03~18 phút
Cache line và locality — vì sao truy cập gần nhau lại nhanh
Cache lấy dữ liệu theo khối 64 byte (cache line), không theo từng byte. Hiểu cache line và locality giải thích vì sao duyệt tuần tự nhanh hơn ngẫu nhiên nhiều lần.
- 04~17 phút
Viết code cache-friendly — locality thành kỹ năng
Bốn kỹ thuật tăng locality: duyệt theo thứ tự bộ nhớ, loop blocking, gói dữ liệu nóng, tránh pointer chasing — cùng big-O nhưng nhanh hơn nhiều nhờ ít cache miss.
- 05~18 phút
AoS vs SoA — bố cục dữ liệu theo cache
Array of structs (AoS) hay struct of arrays (SoA): cùng dữ liệu, hai bố cục bộ nhớ. Khi vòng lặp chỉ dùng vài field, SoA giảm cache miss mạnh. Cách chọn và đo trước-sau.
- 06~16 phút
False sharing — khi hai luồng vô tình tranh một cache line
Hai luồng ghi vào hai biến khác nhau nhưng cùng một cache line vẫn làm chậm nhau, vì cache coherence buộc đồng bộ cả line. Cách phát hiện và sửa bằng padding.
- 07~12 phút
Module 2 — Tổng kết & cheat sheet
Recap cache & memory hierarchy: thang độ trễ, cache line, locality, AoS vs SoA, false sharing. Cheat sheet một trang, glossary, pitfall, self-assessment.