АРХИТЕКТУРА КОМПЬЮТЕРА / УЧЕБНАЯ ПРЕЗЕНТАЦИЯ

Оперативная
память и кэш

Как процессор получает данные — от модуля ОЗУ до ближайшей ячейки кэша.

УстройствоХарактеристикиРазличия
CPUпроцессор
01 / КЭШбыстро · близко
02 / ОЗУбольше · дальше
03 / НАКОПИТЕЛЬхранит данные

ОТ БЛИЖАЙШЕЙ ПАМЯТИ К ПОСТОЯННОМУ ХРАНЕНИЮ

01 / ИЕРАРХИЯ ПАМЯТИОЗУ И КЭШ

Чем ближе память к процессору, тем быстрее доступ к данным

Данные проходят через несколько уровней. Быстрые уровни обычно меньше по объёму, поэтому система сочетает их с более вместительными.

01
Процессор

выполняет команды

02
Кэш

данные рядом с ядром

03
ОЗУ

рабочие данные программ

04
Накопитель

долгое хранение

↑Ближе к ядру

выше скорость доступа

↓Дальше от ядра

обычно больше ёмкость

Главная идея: кэш и ОЗУ работают вместе, чтобы процессор не ждал данные на каждом шаге.

02 / УСТРОЙСТВО ОЗУDRAM

ОЗУ хранит рабочие данные в ячейках DRAM

Операционная система и программы используют ОЗУ во время работы. Модуль содержит микросхемы, а каждая ячейка хранит один бит как электрический заряд.

Модуль памяти → микросхемы DRAM → массив ячеек

ОДНА ЯЧЕЙКА DRAM

Ттранзистор
Сконденсатор

Транзистор открывает доступ к ячейке. Заряд конденсатора кодирует бит и постепенно утекает.

Обновление
Контроллер периодически восстанавливает заряд ячеек.

Энергозависимость
После отключения питания содержимое ОЗУ теряется.

03 / ХАРАКТЕРИСТИКИ ОЗУЧТО СМОТРЕТЬ В СПЕЦИФИКАЦИИ

Производительность ОЗУ нельзя описать одной цифрой

Объём, скорость передачи и задержка отвечают на разные вопросы. Для совместимости важны поколение DDR и поддержка платформы.

01Объём

Сколько рабочих данных помещается одновременно.

02MT/s

Сколько миллионов передач данных выполняется за секунду.

03Тайминги

Сколько тактов занимают отдельные операции памяти.

04Каналы

Как контроллер обменивается данными с модулями.

DDR ≠ только частотаПропускная способность зависит от скорости передач и ширины канала; задержка — ещё и от таймингов.
04 / ПРИНЦИП КЭШАПОПАДАНИЕ И ПРОМАХ

Кэш сокращает ожидание часто нужных данных

Процессор сначала ищет данные в ближайшем кэше. Там хранятся копии части данных и инструкций, которые могут понадобиться снова.

CPUзапрос данных
КЭШпроверка адреса
ПОПАДАНИЕданные найдены · ответ быстрее
ПРОМАХпоиск продолжается ниже по иерархии, вплоть до ОЗУ

Эффект кэша зависит от того, насколько часто программа повторно обращается к тем же данным или соседним адресам.

05 / УРОВНИ КЭШАL1 · L2 · L3

L1, L2 и L3 меняют скорость на ёмкость

Если данных нет на одном уровне, процессор обращается к следующему. Устройство и объёмы уровней зависят от модели процессора.

L1Ближе всего к ядру

обычно самый быстрый и небольшой

L2Следующий уровень

обычно вместительнее L1

L3Последний общий рубеж

часто разделяется ядрами и больше L2

БЫСТРЕЕ / МЕНЬШЕМЕДЛЕННЕЕ / БОЛЬШЕ
06 / ПОЧЕМУ КЭШ ПОМОГАЕТЛОКАЛЬНОСТЬ ДАННЫХ

Повторные и соседние обращения дают кэшу преимущество

Кэш хранит данные блоками — строками. Когда программа читает элемент массива, рядом могут оказаться следующие элементы.

0A
1A
2A
3A
4B
5B
6B
7B
Одна строка кэшаСледующая строка

Временная локальность — недавно прочитанное может понадобиться снова.

Пространственная локальность — после одного адреса часто читают соседние.

Поэтому последовательный обход массива часто эффективнее случайного доступа.

07 / СРАВНЕНИЕОЗУ И КЭШ

Кэш дополняет ОЗУ, а не заменяет его

ПРИЗНАКОЗУКЭШ
Технологияобычно DRAMобычно SRAM
Расположениемодули у процессорана кристалле процессора
Ёмкостьзначительно большезначительно меньше
Доступадресуется программамиуправляется аппаратно

ОЗУ держит рабочий набор программ. Кэш ускоряет доступ к небольшой части этого набора.

08 / ВЫВОДЫГЛАВНОЕ ЗА 30 СЕКУНД

Скорость системы создаёт вся иерархия памяти

01ОЗУ хранит рабочие данные программ, пока есть питание.

02Кэш держит небольшие копии данных рядом с процессором.

03Попадание в кэш уменьшает ожидание; характеристики зависят от конкретного оборудования.

НАКОПИТЕЛЬ → ОЗУ → КЭШ → CPU

Источники: Intel — «Loop Optimizations Where Blocks Are Required»; Intel — «Cache Allocation Technology»; Crucial — «What Are Memory Timings?» и «Differences in Memory Speed and Data Rate».

Сделано на ХостAI