Оперативная и кэш-память: зачем нужны уровни памяти
💻 Информатика · 8 класс
Зачем компьютеру несколько видов памяти
Память компьютера хранит программы и данные. Но одна-единственная память не может быть одновременно очень быстрой, большой и дешёвой. Поэтому в компьютере память устроена уровнями: чем ближе память к процессору, тем она быстрее, но меньше по объёму.
Оперативная память
Оперативная память (сокращённо ОЗУ — оперативное запоминающее устройство) хранит данные и программы, пока компьютер включён. Она энергозависима: при выключении питания всё, что в ней было, исчезает. Поэтому документы сохраняют на диск.
Оперативную память называют ещё внутренней памятью, потому что без неё процессор не может работать: именно из неё он берёт команды и данные. Чем больше объём оперативной памяти, тем больше программ можно держать запущенными одновременно.
Кэш-память
Кэш — это маленькая, но очень быстрая память внутри процессора или рядом с ним. В неё помещаются те данные, которые процессор использует чаще всего. Если нужное значение уже есть в кэше, процессору не приходится ждать обращения к более медленной оперативной памяти. Кэш как бы стоит между процессором и оперативной памятью и берёт на себя самые частые запросы.
Кэш бывает нескольких уровней. Самый маленький и быстрый уровень расположен прямо внутри процессора, уровень побольше — рядом с ним. Чем дальше уровень от ядра процессора, тем он медленнее, но вместительнее.
Правило. Чем выше скорость памяти, тем дороже она стоит и тем меньше её объём. Поэтому быстрой памяти ставят мало, а медленной — много.
Сравнение уровней памяти
| Вид памяти | Скорость | Объём | Энергозависимость |
|---|---|---|---|
| Регистры процессора | Наивысшая | Очень малый | Да |
| Кэш-память | Очень высокая | Малый | Да |
| Оперативная память | Высокая | Большой | Да |
| Жёсткий диск | Низкая | Очень большой | Нет |
Как это работает на примере
Пусть программа в цикле много раз обращается к одному числу. При первом обращении число копируется из оперативной памяти в кэш, а дальше берётся уже оттуда.
1) нужно число X
2) есть ли X в кэше? нет → читаем из ОЗУ, кладём в кэш
3) следующий раз: X уже в кэше → берём быстро
Такое попадание в кэш называют кэш-попаданием, а отсутствие нужных данных — промахом. Чем чаще случаются попадания, тем быстрее работает программа. Именно поэтому циклы, которые много раз обращаются к одним и тем же данным, выполняются особенно быстро.
Частая ошибка. Путают оперативную память и жёсткий диск. ОЗУ — временная и быстрая, диск — постоянный и медленный. Несохранённый документ хранится только в ОЗУ и пропадёт при выключении, поэтому работу важно вовремя сохранять на диск.
Кратко о главном
- Память устроена уровнями: быстрая и маленькая ближе к процессору.
- ОЗУ хранит данные, пока есть питание, и теряет их при выключении.
- Кэш — маленькая сверхбыстрая память для часто используемых данных.
- Быстрая память дороже, поэтому её мало; медленной много.
- При повторных обращениях кэш ускоряет работу за счёт кэш-попаданий.