Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие 700363.doc
Скачиваний:
16
Добавлен:
01.05.2022
Размер:
3.69 Mб
Скачать

3.7 Процессорный кэш

Процессорный кэш – это быстродействующее запоминающее устройство, в составе процессора, используемое для ускорения доступа АЛУ процессора к наиболее активно используемым данным. Объем процессорного кэша обычно в тысячи раз меньше, чем объем ОЗУ, в то время как его быстродействие, как минимум, на порядок выше.

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

Отображение участков озу на процессорный кэш

Согласно общим принципам кэширования, на процессорный кэш должны отображаться участки ОЗУ, которые в данный момент используются наиболее интенсивно. Для этого содержимое этих участков ОЗУ копируется в кэш, и при обращениях процессора к памяти используется копия данных из кэша, без обращения к ОЗУ.

Существует несколько способов отображения ОЗУ на процессорный кэш, рассмотрим их более подробно.

Случайное отображение участков озу в процессорный кэш

Упрощенная структура процессорного кэша, основанного на случайном отображении, показана на рис. 50.

Рис.50. Процессорный кэш со случайным отображением

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

Так как одна и та же область ОЗУ может отображаться на произвольную запись кэша, такой способ отображения получил название случайное отображение.

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

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

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

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

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