АРХИТЕКТУРА КОМПЬЮТЕРА / УЧЕБНАЯ ПРЕЗЕНТАЦИЯ
Оперативная
память и кэш
Как процессор получает данные — от модуля ОЗУ до ближайшей ячейки кэша.
ОТ БЛИЖАЙШЕЙ ПАМЯТИ К ПОСТОЯННОМУ ХРАНЕНИЮ
Чем ближе память к процессору, тем быстрее доступ к данным
Данные проходят через несколько уровней. Быстрые уровни обычно меньше по объёму, поэтому система сочетает их с более вместительными.
выполняет команды
данные рядом с ядром
рабочие данные программ
долгое хранение
выше скорость доступа
обычно больше ёмкость
Главная идея: кэш и ОЗУ работают вместе, чтобы процессор не ждал данные на каждом шаге.
ОЗУ хранит рабочие данные в ячейках DRAM
Операционная система и программы используют ОЗУ во время работы. Модуль содержит микросхемы, а каждая ячейка хранит один бит как электрический заряд.
Модуль памяти → микросхемы DRAM → массив ячеек
ОДНА ЯЧЕЙКА DRAM
Транзистор открывает доступ к ячейке. Заряд конденсатора кодирует бит и постепенно утекает.
Обновление
Контроллер периодически восстанавливает заряд ячеек.
Энергозависимость
После отключения питания содержимое ОЗУ теряется.
Производительность ОЗУ нельзя описать одной цифрой
Объём, скорость передачи и задержка отвечают на разные вопросы. Для совместимости важны поколение DDR и поддержка платформы.
Сколько рабочих данных помещается одновременно.
Сколько миллионов передач данных выполняется за секунду.
Сколько тактов занимают отдельные операции памяти.
Как контроллер обменивается данными с модулями.
Кэш сокращает ожидание часто нужных данных
Процессор сначала ищет данные в ближайшем кэше. Там хранятся копии части данных и инструкций, которые могут понадобиться снова.
Эффект кэша зависит от того, насколько часто программа повторно обращается к тем же данным или соседним адресам.
L1, L2 и L3 меняют скорость на ёмкость
Если данных нет на одном уровне, процессор обращается к следующему. Устройство и объёмы уровней зависят от модели процессора.
обычно самый быстрый и небольшой
обычно вместительнее L1
часто разделяется ядрами и больше L2
Повторные и соседние обращения дают кэшу преимущество
Кэш хранит данные блоками — строками. Когда программа читает элемент массива, рядом могут оказаться следующие элементы.
Временная локальность — недавно прочитанное может понадобиться снова.
Пространственная локальность — после одного адреса часто читают соседние.
Поэтому последовательный обход массива часто эффективнее случайного доступа.
Кэш дополняет ОЗУ, а не заменяет его
ОЗУ держит рабочий набор программ. Кэш ускоряет доступ к небольшой части этого набора.
Скорость системы создаёт вся иерархия памяти
01ОЗУ хранит рабочие данные программ, пока есть питание.
02Кэш держит небольшие копии данных рядом с процессором.
03Попадание в кэш уменьшает ожидание; характеристики зависят от конкретного оборудования.
Источники: Intel — «Loop Optimizations Where Blocks Are Required»; Intel — «Cache Allocation Technology»; Crucial — «What Are Memory Timings?» и «Differences in Memory Speed and Data Rate».