Принцип построения кеш-памяти.

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

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

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

Исходя из принципа временной локальности информация в кеш храниться на протяжении небольших интервалов времени, а принцип пространственной локальности говорит о том что в кеш памяти целесообразно размещать несколько соседних ячеек (то есть блоками лучше хранить) Есть статистика что линейные участки микрокоманд не превышают 3-5 команд (без условного перехода) Соответственно нет смысла хранить в кеше данные по объему превышающие по объему данные необходимые для выполнения 3-5ти команд. Как правило блоки информации в кеше состоят из 2-4 слов. При обращении процессора к памяти сначала проверяется наличие необходимых данных в кеш памяти, если их нет, то эти данные переписываются из ОЗУ в кеш.

По способу копирования из ОЗУ в кеш:

1 Кеш память с прямым отображением

2 полностью ассоциативная кеш память

3 множественная ассоциативная кеш память

 

1ая наиболее проста в реализации

 

В данном случае адресное пространство определяется 32мя разрядами, то есть 4 Гб памяти ОЗУ. То есть емкость ОЗУ мы разбиваем на 64К равных частей, потому что 64 Кбайта. Блок данных размером 4 байт записывается в одну 32ух разрядную строку кеш памяти. Кеш памяти отводится по одной строке под каждый из этих блоков. Сама кеш память состоит из 2ух частей память данных и память призраков. В памяти призраков хранятся старшые 16 разрядов от. При считывание процессором данных из памяти происходит обращение кеш памяти и сравнение старших 16 разрядов с призраком, если эти величины совпадают, то в кеш памяти находятя необходимые. Если нет, то происходит перезагрузка кеш памяти.

Достоинство такого типа кеш памяти явл высокое быстродействие. По скольку выполняется всего одного сравнение призрака со старшим разрядом памяти.

Недостаток - Одна строка под один блок - мы не можим записать в строку любой блок.

Для устранения этого недостатка используют кеш память 2 типа (полностью ассоциативная)

В данном случае данные из любого блока ОЗУ могут быть помещены в любую строку кеш памяти. Недостаток – увеличивается время обработки запросов изза необходимости многократного сравнения 32ух разрядных адресов и признаков.

 

Третий способ организации кеш памяти:

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

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

2) Способ обратной записи – данные в ОЗУ записываются только если содержимое кеш памяти изменилось.