Кэш-память
XalionДля быстрой работы процессора нужна быстрая память.
Оперативной памяти недостаточно, она медленная.
Решение проблемы – кэш-память. Это маленькая и быстрая память. Она расположена рядом с процессором, это ускоряет скорость передачи.
Кэш-память состоит из блоков фиксированного размера – кэш-строк по 32 или 64 байта. Процессор работает в 2-4 раза быстрее, чем кэш, из-за этого возникают простои в несколько циклов.
Что такое машинные циклы читать здесь.
Пример: задача из пяти команд. Четыре команды занимают 1 цикл, а команда вызова слова, 5 циклов. Из-за долгого вызова слова, скорость выполнения падает примерно в 2 раза.
Существует два вида кэш-памяти процессора: объединённая и разделённая.
Объединённая – команды и данные хранятся вместе, а вызываются последовательно. Она более простая в разработке, но менее эффективная.
Разделённая – команды и данные хранятся раздельно, а вызываются параллельно друг другу.
Современные процессоры используют разделённую архитектуру с тремя уровнями – L1, L2, L3 (L – level).
Назначение уровней рассмотрим позже.
![](/file/a6df116c3ddc8c6463d04.png)
Разработчики используют разделённую, потому что компьютеры используют конвейерную архитектуру ISA. Работа в ISA с данными и командами должна быть параллельной.
Статья об ISA.
Процессорная память работает по принципу локальности – при последовательных обращениях к памяти некоторое время используется её небольшая область.
Принцип локальности в том, что когда слово загружается из памяти, то загружается вся строка, в которой записано слово, чтобы при следующем запросе нужные слова уже были в кэш-памяти.
Например, умножение 8 на разные значения. Число 8 заносится в кэш и остается там, пока операция не закончится.
При проектировании процессора возникают проблемы, связанные с кэшом.
- Стоимость памяти.
Цена кэша больше обыкновенной памяти, потому что она меньше и сложнее в устройстве. Поэтому, разработчики выбирают правильное соотношение размера памяти и цены всего процессора. - Выбор количества строк.
В зависимости от того с какими данными будет работать компьютер, память делят на строки.
16 Кбайт возможно разделить на 4, 8, 16 строк:
1024 кэш-строки по 16 байт.
2048 кэш-строки по 8 байт.
4096 кэш-строки по 4 байта. - Выбор контроллера.
Контроллер – устройство управления кэш-памятью, находится внутри процессора.
Из-за сложного механизма работы и дорогой разработки, выбор не должен увеличивать финальную цену.
Следующей будет заметка о модулях памяти.