СЕКРЕТЫ кэша процессора: КАК CPU работает с памятью на примере Go Concurrency
Материалы из видео - https://t.me/igoroutine/73 Курсы по программированию - https://clck.ru/3Tawj6 В этом видео разбираем секреты кэша процессора и то, как CPU работает с памятью на примере Go Concurrency. Поговорим, зачем нужен кэш, почему обход матрицы по строкам может быть быстрее обхода по столбцам, как работают кэш-линии, адресация, уровни L1, L2, L3, inclusive и exclusive cache. Разберём политики замещения вроде LRU, LFU, FIFO и LIFO, а затем перейдём к самой интересной части — когерентности кэшей, протоколу MESI и тому, почему несколько ядер могут видеть разные значения в памяти. На практических DEMO покажу, как это проявляется в Go, как атомарные операции включают согласованность между ядрами, какой оверхед дают такие инструкции и почему false sharing может резко замедлить многопоточный код. Видео будет полезно Go-разработчикам, backend-инженерам и всем, кто хочет глубже понимать производительность, concurrency, memory model, cache contention и низкоуровневую работу CPU. Telegram: https://t.me/igoroutine VK: https://vk.com/igoroutine Instagram: https://instagram.com/igoroutine YouTube: https://www.youtube.com/@igoroutine Таймкоды: 00:00 - Введение 00:17 - Мотивация. Зачем нужен кэш? 00:48 - Использование кэша на практике (DEMO) 03:25 - Роль кэша в процессоре. Стратегии доступа к кэшу 06:50 - Кэш‑линии и их размер 07:35 - Кэш‑линии и их размер (DEMO) 08:48 - Адресация в кэш‑линиях 11:27 - Уровни кэша (L1, L2, L3). Размещение (inclusive, exclusive) 14:56 - Политики замещения (LRU, LFU, FIFO, LIFO) 17:17 - Когерентность кэша (DEMO) 21:05 - Когерентность кэшей 24:02 - Протоколы когерентности кэша (MESI) 25:57 - Многопоточные инструкции и согласованность 27:18 - Синхронный доступ в ассемблере (DEMO) 29:27 - Оверхед включения протокола когерентности (DEMO) 31:48 - Дополнительный материал 32:03 - Cache contention. False sharing (DEMO) 36:15 - Абстракция атомарных операций в Go 38:19 - Финал
Материалы из видео - https://t.me/igoroutine/73 Курсы по программированию - https://clck.ru/3Tawj6 В этом видео разбираем секреты кэша процессора и то, как CPU работает с памятью на примере Go Concurrency. Поговорим, зачем нужен кэш, почему обход матрицы по строкам может быть быстрее обхода по столбцам, как работают кэш-линии, адресация, уровни L1, L2, L3, inclusive и exclusive cache. Разберём политики замещения вроде LRU, LFU, FIFO и LIFO, а затем перейдём к самой интересной части — когерентности кэшей, протоколу MESI и тому, почему несколько ядер могут видеть разные значения в памяти. На практических DEMO покажу, как это проявляется в Go, как атомарные операции включают согласованность между ядрами, какой оверхед дают такие инструкции и почему false sharing может резко замедлить многопоточный код. Видео будет полезно Go-разработчикам, backend-инженерам и всем, кто хочет глубже понимать производительность, concurrency, memory model, cache contention и низкоуровневую работу CPU. Telegram: https://t.me/igoroutine VK: https://vk.com/igoroutine Instagram: https://instagram.com/igoroutine YouTube: https://www.youtube.com/@igoroutine Таймкоды: 00:00 - Введение 00:17 - Мотивация. Зачем нужен кэш? 00:48 - Использование кэша на практике (DEMO) 03:25 - Роль кэша в процессоре. Стратегии доступа к кэшу 06:50 - Кэш‑линии и их размер 07:35 - Кэш‑линии и их размер (DEMO) 08:48 - Адресация в кэш‑линиях 11:27 - Уровни кэша (L1, L2, L3). Размещение (inclusive, exclusive) 14:56 - Политики замещения (LRU, LFU, FIFO, LIFO) 17:17 - Когерентность кэша (DEMO) 21:05 - Когерентность кэшей 24:02 - Протоколы когерентности кэша (MESI) 25:57 - Многопоточные инструкции и согласованность 27:18 - Синхронный доступ в ассемблере (DEMO) 29:27 - Оверхед включения протокола когерентности (DEMO) 31:48 - Дополнительный материал 32:03 - Cache contention. False sharing (DEMO) 36:15 - Абстракция атомарных операций в Go 38:19 - Финал




