Кэш-память

Кэш-память

Xalion

Для быстрой работы процессора нужна быстрая память.
Оперативной памяти недостаточно, она медленная.

Решение проблемы – кэш-память. Это маленькая и быстрая память. Она расположена рядом с процессором, это ускоряет скорость передачи.

Кэш-память состоит из блоков фиксированного размера – кэш-строк по 32 или 64 байта. Процессор работает в 2-4 раза быстрее, чем кэш, из-за этого возникают простои в несколько циклов.
Что такое машинные циклы читать здесь.

Пример: задача из пяти команд. Четыре команды занимают 1 цикл, а команда вызова слова, 5 циклов. Из-за долгого вызова слова, скорость выполнения падает примерно в 2 раза.


Существует два вида кэш-памяти процессора: объединённая и разделённая.

Объединённая – команды и данные хранятся вместе, а вызываются последовательно. Она более простая в разработке, но менее эффективная.

Разделённая – команды и данные хранятся раздельно, а вызываются параллельно друг другу.


Современные процессоры используют разделённую архитектуру с тремя уровнями – L1, L2, L3 (L – level).
Назначение уровней рассмотрим позже.

Расположение уровней кэша

Разработчики используют разделённую, потому что компьютеры используют конвейерную архитектуру ISA. Работа в ISA с данными и командами должна быть параллельной.
Статья об ISA.


Процессорная память работает по принципу локальности – при последовательных обращениях к памяти некоторое время используется её небольшая область.

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

Например, умножение 8 на разные значения. Число 8 заносится в кэш и остается там, пока операция не закончится.


При проектировании процессора возникают проблемы, связанные с кэшом.

  1. Стоимость памяти.
    Цена кэша больше обыкновенной памяти, потому что она меньше и сложнее в устройстве. Поэтому, разработчики выбирают правильное соотношение размера памяти и цены всего процессора.
  2. Выбор количества строк.
    В зависимости от того с какими данными будет работать компьютер, память делят на строки.
    16 Кбайт возможно разделить на 4, 8, 16 строк:
    1024 кэш-строки по 16 байт.
    2048 кэш-строки по 8 байт.
    4096 кэш-строки по 4 байта.
  3. Выбор контроллера.
    Контроллер – устройство управления кэш-памятью, находится внутри процессора.
    Из-за сложного механизма работы и дорогой разработки, выбор не должен увеличивать финальную цену.



Следующей будет заметка о модулях памяти.

Report Page