Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Глава 6. Организация кэш-памяти.doc
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
350 Кб
Скачать
☆

6.7. Дисциплины записи в кэш-память

При выполнении команд «Запись содержимого регистра в оперативную память» используются следующие дисциплины записи:

немедленная (сквозная) запись (write through). При «удачном» попадании в кэш-память первого уровня иерархии - информация записывается в два места: в блок кэш-памяти первого уровня иерархии и в блоки памяти всех более низких уровней иерархии подсистемы памяти (в том числе и в оперативную память). При «неудачном» попадании в кэш-память первого уровня иерархии - информация записывается только в оперативную память.

Обратная (отложенная) запись (запись с обратным копированием - write back). При «удачном» попадании в кэш-память первого уровня иерархии информация записывается только в блок кэш-памяти первого уровня иерархии.

Модифицированный блок кэш-памяти i-го уровня иерархии записывается в блок кэш-памяти (i+1)-го уровня иерархии, только когда он замещается. Для сокращения частоты копирования блоков при замещении обычно с каждым блоком кэш-памяти связывается так называемый признак модификации (dirty bit). Этот признак состояния показывает, был ли модифицирован блок, находящийся в кэш-памяти. Если он не модифицировался, то обратное копирование отменяется, поскольку более низкий уровень содержит ту же самую информацию, что и более верхний уровень иерархии кэш-памяти. При «неудачном» попадании в кэш-память первого уровня иерархии выполняются действия аналогичные «промаху» при чтении: читается необходимый блок из памяти более низкого уровня иерархии и выполняется запись данных в этот блок.

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

Дисциплина «сквозная» запись проще для реализации, чем запись с обратным копированием. Она имеет также преимущество в том, что оперативная память имеет наиболее свежую копию данных. Это важно в мультипроцессорных системах, а также для организации ввода/вывода.

Когда процессор ожидает завершения записи при выполнении «сквозной» записи, то говорят, что он приостанавливается для записи (write stall). Общий прием минимизации остановов по записи связан с использованием буфера записи (write buffer), который позволяет ядру процессора продолжить выполнение команд во время обновления содержимого оперативной памяти. Следует отметить, что остановы по записи могут возникать и при наличии буфера записи.

6.8. Реализация кэш-памяти в современных процессорах

Кэш-память первого уровня. Эта память, как правило, разделена на кэш-память для хранения данных и кэш-память для хранения команд. Каждая кэш-память имеет объем в десятки К байт (32К, 64К байт). Размер блока, пересылаемого в кэш-память первого уровня из кэш-памяти второго уровня зависит от модели процессора. В современных процессорах для персональных компьютеров это 64 байта. Как правило, используется множественно-ассоциативный с n каналами принцип организации с различным числом секторов (2, 4, 8).

Кэш-память второго уровня является общей для данных и команд и имеет объем в сотни и тысячи К байт (например, в производительных процессорах фирмы Intel 256К байт). Поиск в кэш-памяти второго уровня выполняется в случае, когда фиксируется промах в кэш-памяти первого уровня. В кэш-памяти второго уровня может использоваться как сквозная, так и обратная запись. Размер блока, пересылаемого в кэш-память второго уровня из кэш-памяти третьего уровня, также может изменяться в широких пределах, например, 64, 128 байт. Используется множественно-ассоциативный с n каналами принцип организации с различным числом секторов (4, 8).

Кэш-память третьего уровня является общей для данных и команд и имеет объем в несколько М байт. Поиск в кэш-памяти третьего уровня выполняется в случае, когда констатируется промах в кэш-памяти второго уровня. Может использоваться как сквозная, так и обратная запись. Используется множественно-ассоциативный с n каналами принцип организации с различным числом секторов (8, 16).

Каждый новый уровень кэш-памяти имеет:

объем - не менее чем в 8-10 раз больше чем предыдущий уровень;

в 3-4 раза ниже быстродействие;

более широкие линии связи для получения информации с более низких уровней иерархии памяти.

По соответствию информации кэш-памяти уровней могут быть:

информация в кэш-памяти более высокого уровня является подмножеством кэш-памяти более низкого уровня;

информация в кэш-памяти более высокого уровня не является подмножеством кэш-памяти более низкого уровня.

В настоящее время в большинстве компьютеров реализуется первый тип организации многоуровневой кэш-памяти. Второй тип организации многоуровневой кэш-памяти использовался в процессорах фирмы AMD.