Иерархическая структура кэш-памяти
Возможности согласования полосы пропускания в рассмотренной одноуровневой схеме кэш-памяти ограничены. Увеличение размера строки кэш-памяти более 8-кратной размерности операнда не дает ожидаемого повышения информационного потока, так как значительно возрастает вероятность передачи управления на новые участки программ, с потерей неиспользованных данных кэш-строки. Проблема согласования плотности потоков информации при больших отношениях быстродействии процессора и оперативной памяти решается многоуровневой системой кэш-памяти с расширениями строк при обращениях к блокам кэш-памяти на более высоких уровнях.
При этом, часть уровней кэш-памяти интегрируется в микросхему процессора, а более дальние уровни размещаются на материнской плате.
При этом кэш-память первого уровня может работать на частоте процессора, второго уровня – с потерей от четырех до девяти тактов процессора, а третьего уровня, расположенная на материнской плате, с потерей значительного большего числа тактов, зависящей от тактовой частоты материнской платы.
Средства управления кэш-памятью
Первые схемы кэш-памяти были прозрачными для программного обеспечения, т.е. были программно неуправляемы. Впоследствии, в системах команд ЭВМ, особенно в многопроцессорных системах, появился ряд команд управления (настройки) кэш-памяти. Это команды управления, например команды предвыборки данных во внешних ступенях кэш-памяти, или команды блокирования и перенастройки алгоритмов работы кэш памяти первого уровня.
Рассмотрим основные возможности управления функционированием кэш-памяти на примере МП i486.
Процессор i486 имеет встроенную в микросхему внутреннюю множественно-ассоциативную кэш-память для хранения 8Кбайт команд и данных. Предусмотрено использование и внешней кэш-памяти.
Работа внутренней и внешней кэш-памяти прозрачна для прикладного программного обеспечения, но знание их поведения может быть полезным с точки зрения оптимизации быстродействия программного обеспечения.
Кэш-память доступна во всех режимах работы: реальном режиме, защищенном режиме и виртуальном режиме 8086.
Размер кэш-строки в процессоре i486 равен четырем двойным словам (8 байт). Допускается кэширование со сквозной записью и с обратной записью. При кэшировании со сквозной записью обновляется кэш-память и внешняя память. Кэширование с обратной записью обновляет только кэш-память, внешняя память обновляется только при выполнении операции обратной записи. Операции обратной записи запускаются при необходимости отменить распределение строк кэш-памяти, например, при кэш-промахах.
Программное обеспечение управляет режимом работы кэш-памяти. Кэширование может быть разрешено или запрещено. В последнем случае кэш-память может работать как внутренняя сверхоперативная память при существовании достоверных строк кэш-памяти, или кэширование может быть запрещено полностью при установке управляющих бит CD и NW в единичное состояние и очищенных (нераспределенных) ячейках хранения данных.
Возможно, использование кэш-памяти для хранения данных о состоянии процессора при распределенных ячейках и установке бит CD и NWв нулевое состояние.
При запрещении работы кэш-памяти следует принимать меры предосторожности. Когда CD установлен в 1, процессор i486 не будет выполнять чтение данных из внешней памяти, если в кэш-памяти еще находятся копии. При бите NW, установленном в 1, процессор i486 не будет выполнять запись во внешнюю память, если данные находятся в кэш-памяти. Это означает, что в кэш-памяти процессора i486 могут храниться данные о состоянии или данные, критичные к времени доступа.
При запрещении работы кэш-памяти следует выполнять ее очистку.
Можно заморозить данные в кэш-памяти, загрузив ее при помощи тестовых регистров и установив CD и NW. Это позволяет гарантировать кэш-попадания для кодов и данных, критичных к времени доступа.
Режимы, устанавливаемые при помощи битов CD и NW, приведены в табл. 11.
Таблица 11. Режимы работы кэш-памяти
CD | NW | Описание |
Кэширование запрещено, но достоверные строки кэш-памяти продолжают "отзываться". Для полного запрещения кэш-памяти нужно войти в данный режим и выполнить очистку кэш-памяти. Для использования кэш-памяти в качестве внутренней сверхоперативной памяти, она предварительно загружается достоверными строками, специально выбранными для этого операциями с памятью или при помощи тестовых регистров. В этом режиме запись в достоверные строки кэш-памяти обновляет кэш, но не влияет на содержимое главной памяти. | ||
Новые строки кэш-памяти не распределяются, но достоверные строки продолжают "отзываться". | ||
Неверная установка. Генерируется исключение общей защиты с кодом ошибки, равным нулю. | ||
Кэширование разрешено |
Вопросы для самопроверки:
1. Причины использования многоуровневых структур кэш-памяти.
2. Кэширование с обратной записью.
3. Кэширование с прямой записью.
4. Работа кэш-памяти в качестве внутренней сверхоперативной памяти процессора.
5. Полное запрещение кэширования.
6. Режим использования кэш-памяти для хранения данных о состоянии процессора.
7. Замораживание данных в кэш-памяти для обеспечения гарантийного кэш-попадания для кодов и данных, критичных к времени доступа
Неделя 17.Лекция 17. Обзор лекционного материала выносимого на экзамен.
Дата добавления: 2015-08-14; просмотров: 589;