Вопрос 20: Типы отображения адресов в кэш

1. С прямым отображением адресов

Для размещения в кэш-памяти данных блока b в место m используется часть разрядов адреса блока i. Т.к. мы не можем осуществлять полностью ассоциативное сравнение, то часть разрядов адреса блока разбивают на 2 части, где первая часть будет ячейка ассоциативной памяти, где хранится место требуемого блока (i – индекс) и вторая часть t – тег, определяющий отличие одного блока от другого при его хранении в одном и том же месте. d – смещение внутри блока. Преобразование адреса блока в место М сводится к выборке разрядов i из адреса.Индекс и смещение внутри блока суммируются и являются адресом блока в памяти данных. Разряды адреса фактически являются номером ячейки, где хранится тег того блока, который находится в кэш-памяти. Из памяти тегов, которая имеет обычную линейную организацию, выбирается значение, называемое тегом, хранящимся в кэш-памяти. Этот тег поступает в устройство сравнения, которое проверяет, равен ли этот тег тегу, хранящемуся в этом блоке. Если они совпадают, то кэш-попадание, иначе кэш-промах.

прямое

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

2. С множественно-ассоциативным отображением адресов

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

множественно-ассоциативное

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

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

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

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

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

Недостатки:

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

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

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

3. С полностью ассоциативным отображением адресов

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

полностью ассоциативно

При полностью ассоциативном размещении блоков в кэш-памяти допускается размещение каждого блока b из ОП в любом месте m кэш-памяти.

Механизм преобразования адресов должен быстро дать ответ, существует ли копия блока b в кэш-памяти, и, если существует, то в каком месте m она находится.

Исходя из этого рассмотрим структуру полностью ассоциативной кэш-памяти.

А – это адрес, состоящий из двух частей: номера блока и смещения, требуемых данных внутри этого блока. Часть адреса b передается в ассоциативную память тегов. Блок поступает и на выходе этой памяти имеется схема опознавания действительного или недействительного номера места. Число ячеек в памяти тегов равно числу мест в кэш-памяти с линейной организации, но эта кэш-память возвращает номер места, где хранится нужный блок.

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

В ассоциативной памяти тегов фактически существует две части: первая часть, которая подвергается ассоциативному сравнению, то есть предъявили входные данные b, а она отвечает путем одновременного сравнивания всех тегов ячеек, есть ли ячейка, которая ассоциирована с этим номером блоком или нет. Для последовательного сравнивания нет времени (10нс). Получается, сколько ячеек, столько компараторов адреса. Вся ассоциативная память строится по принципу распараллеливания в пространстве.

results matching ""

    No results matching ""