Загрузка...

Ассоциативная по множеству кэш-память


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

Расслоение ОП по КП

Рис. 1.47. Расслоение ОП по КП

Структура кэш-памяти

Рис. 1. 48. Структура кэш-памяти

Структура ассоциативной по множеству кэш-памяти

Рис. 1. 49. Структура ассоциативной по множеству кэш-памяти

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

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

2. Если все места заняты, выбирается замещаемое место путем анализа тегов, содержащее бит обращения (модификации) и формирует номер места, которое можно использовать для размещения нового блока, предварительно сохранив хранящийся, если установлен бит модификации в теге.

Допустим контроллер обнаружил кэш-промах, т.е. сработала эта схема и обнаружила, что нет требуемого блока в кэш-памяти, но вся кэш-память свободна или занята, и имеются некие свободные места в той группе, которая предназначена для хранения этого блока. Для выбора свободных мест шифратор должен выдавать не только сигнал о том, что блока нет, но и сигнал, определяющий свободно место или занято. Если свободных мест нет, то в этом случае можно использовать в памяти тегов дополнительные теги, т.е. хранить там не только теги мест, но еще и специальные флаги: W – в это место произведена запись, F – частота обращения к блоку (контроллер должен с некой периодичностью сбрасывать этот флаг в 0), B.

Шифратор дополнительно решает выбор свободного места в кэш-памяти. Для этого может использоваться специальный бит в теговой памяти В – место занято. Если все места заняты и установлен бит записи W, шифратор реализует стратегию замещения. Для этого используются такие биты, как W — место модифицировано и F – к месту было обращение процессора. Биты F контроллером периодически сбрасываются в 0.

Недостатки:

1. Эта организация самая сложная, но она реально используется.

2. Требуется большой объем памяти тегов.

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

Загрузка...