Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЭВМ семинары 2006.doc
Скачиваний:
61
Добавлен:
20.05.2014
Размер:
1.86 Mб
Скачать

Структура кэш-памяти в процессореi486.

Кэш-память процессораi486 представляет собой четырех направленную ассоциативную по множеству память. Это означает, что блок данных из конкретной ячейки основной памяти может хранится в любой из четырех ячеек кэш-памяти. Ассоциация по четырем направлениям является компромиссом между скоростью кэш-памяти с прямым отображением и высоким коэффициентом попаданий полностью ассоциативной кэш-памяти. Иными словами, реализованная вi486 кэш-память обеспечивает быстрый поиск данных и высокий процент попаданий. Рассмотрим структуру кэш-памяти.

Кэш-память состоит из трех блоков: блок данных, блок тэгов и блок достоверности.

Блок данных:Состоит из четырех массивов (направлений), каждый из которых состоит из 128 строк. (cashline). Четыре строки образуют множество. Каждая строка содержит данные из 16 последовательных адресуемых байтов данных памяти, начиная с адреса кратного 16. Индекс массива бло5ка данных, состоящий из 7 бит, соответствует 4 строкам кэша, по одной из каждого массива. Четыре строки кэша с одним и тем же индексом называются множеством. Таким образом, объем кэш-памяти равен 8 Кбайт, т.е. 16 байт*4*128=8192 б =8 Кбайт.

Блок тэгов:128 строк тэгов, каждый тэг состоит из 21 бита, и тоже 4 массива.

Блок достоверности: содержится по одному 7-ми битному значению для

каждого из множеств кэш-памяти.

  • 4 бита отмечают достоверны или не достоверны соответствующие строки.

  • 3 бита LRUотслеживают использование (чтение / запись) данных во множестве.

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

Алгоритм псевдоLru.

Когда в цикле считывания обнаруживается промах, в кэш необходимо передать информацию из ОП (строку), при этом приходится выбирать из 4-х строк множества. Если есть бит недостоверности, то нет проблем. А если все строки достоверны (1111), то выбирается строка с привлечением LRU.

3 бита LRUизменяются при каждом попадании и заполнении, следующим образом: если последнее обращение во множестве было к строкеL0 иL1, то битB0=1, а если кL2 иL3, то битB0=0, и т.д. (см. рисунок).

Увеличение производительности кэш памяти.

Основной параметр, характеризующий производительность кэш-памяти называется среднее время доступа.

Среднее время доступа = время обращения при попадании + доля промахов * потери при промахе.

Очевидны методы оптимизации функционирования кэша:

Сокращение доли промахов:

  • увеличение размера блока;

  • повышение степени ассоциативности;

  • 2-х уровневый кэш;

  • предварительная выборка под управлением компилятора.

Сокращение потерь при промахе:

  • установка приоритетов промахов по чтению над записью;

  • использование подблоков;

  • пересылка требуемого слова первым;

  • кэш второго уровня.

Время обращения при попадании:

  • простые кэши малого размера;

  • обход преобразований адресов во время индексации кэш памяти;

  • конвейеризация операции записи для быстрого попадания.