Основы ЭВМ
Теория: Иерархия памяти
Системному администратору приходит задача: проверить логи всех серверов за последние три месяца. Он открывает первую виртуальную машину, ждёт, пока загрузится лог — прошло несколько секунд. Дальше вторая машина, третья… через час он понимает, что устал просто ждать, а работа стоит на месте.
Почему так медленно? Потому что данные, к которым он обращается, хранятся далеко, на «диске» или даже в «архиве», а процессор ждёт, пока информация придёт. Если бы нужные данные были под рукой, процессор справился за считанные минуты.
Представьте, что память компьютера — это место, где вы храните свои контакты, информацию и воспоминания. Разные уровни памяти — это разные способы хранения: от самого быстрого и дорогого до самого медленного и дешёвого.
Сверху пирамиды находятся регистры. Это маленькая часть памяти прямо внутри процессора. Там хранятся самые важные вещи, к которым нужно мгновенно обращаться. В нашей жизни это как память человека: номер мамы, код от домофона, лучший маршрут до работы. Доступ мгновенный, но объём очень маленький. Скорость ~1 наносекунда.
Следующий уровень — кэш процессора. Это как «избранное» в телефоне: десяток контактов, с которыми вы чаще всего общаетесь. Доступ почти мгновенный, чуть медленнее, чем регистры. Скорость ~3–10 нс. Кэш хранит данные, к которым процессор обращается чаще всего, чтобы не тратить время на медленную память.
Дальше идёт оперативная память (RAM) — вся телефонная книга. Сотни и тысячи номеров. Доступ медленнее, чем кэш, но объём больше, поэтому туда помещается всё, что активно используется. Скорость ~100 нс.
Если нужных данных нет в RAM, процессору приходится обращаться к диску — как будто искать запись не в памяти, а в старой бумажной книжке. Там можно хранить терабайты информации, но доступ к ней гораздо медленнее. SSD отвечает за 0,1–1 миллисекунду, HDD — за 10–20 миллисекунд.
Внизу пирамиды — лента и архивные носители. Это старые чердачные коробки с тысячами контактов и документов. Доступ медленный, поиск долгий, зато стоимость хранения минимальна. Скорость 100–1000 мс.
Главное правило иерархии памяти: чем быстрее доступ, тем меньше объём и выше стоимость; чем медленнее доступ, тем больше объём и дешевле хранение.
Чтобы маленькое «избранное» эффективно помогало, работает принцип локальности.
- Временная локальность: если вы несколько раз за день звоните маме, номер уже наготове в голове или в избранном.
- Пространственная локальность: если вы открыли телефонную книгу и нашли один контакт, велика вероятность, что вам скоро понадобятся и рядом стоящие номера.
Если данные используются хаотично — как звонки случайным людям из разных городов — кэш почти не помогает, процессор ждёт медленную память, и система тормозит.
Одно из правил иерархии памяти: чем быстрее доступ, тем меньше объём и выше стоимость; чем медленнее доступ, тем больше объём и дешевле хранение.
Под стоимостью здесь понимают не только деньги, но и цену в широком смысле — то есть, сколько ресурсов нужно, чтобы этот тип памяти использовать.
Быстрая память требует больше места и больше энергии:
- На кристалле процессора каждый миллиметр стоит дорого, и чем больше встроенного кэша, тем больше сам чип, тем труднее его производить и охлаждать. Поэтому быстрые уровни памяти делают маленькими — десятки или сотни килобайт.
- Чем выше скорость, тем больше потребление энергии. Быстрая память должна реагировать за наносекунды, поэтому работает на высоких частотах и постоянно потребляет ток, что увеличивает нагрев и снижает энергоэффективность.
Из-за этого объём быстрой памяти ограничен: её делают немного, но максимально быстрой, а медленную — дешёвой и вместительной.
Правильная организация данных и использование принципа локальности — ключ к эффективной работе любой системы. Если игнорировать эти правила, даже самый мощный компьютер будет тормозить.

