8086.ru2. Организация памяти ЭВМ2.3 КЭШ - память → 2.3.1 Полностью ассоциативное распределение

2.3.1 Полностью ассоциативное распределение

ОП разбивается на строки по 8 слов в каждой (рисунок 2.3). Разрядность физического адреса слова (ФА) составляет 16 бит, следовательно, адрес строки определяется 13-ю старшими битами ФА, которые однозначно идентифицируют любую строку, хранимую в ОП. В кэш-памяти может быть размещено 512:8=64 строки.

Для хранения идентификатора строк, находящихся в кэш-памяти, используют специальную память, называемую теговой памятью, а для хранения непосредственно данных (строк) используется СОЗУ данных. То есть каждому адресу строки в теговой памяти соответствует 8 слов (строка) в СОЗУ данных. Таким образом, для определения местоположения строки (в кэш-памяти или в ОП) необходимо сравнить содержимое всех ячеек теговой памяти с 13-ю старшими разрядами ФА (тегом ФА) и если будет обнаружено совпадение, то значит строка располагается в быстродействующей кэш-памяти и операнд считывается из или записывается в СОЗУ данных кэш-памяти. Для получения адреса строки СОЗУ данных [b] в памяти тегов необходимо выполнить его формирование (адрес указан в скобках) или в дополнительном поле теговой памяти хранить этот адрес. Бит достоверности данных d=1 указывает на принадлежность строки кэш-памяти, а нулевое значение означает, что данная ячейка свободна (в ней размещаются недостоверные данные, принадлежащие, например, другой программе). Если в памяти тегов хотя бы один бит d=0, то при обнаружении несовпадения тегов при сравнении процедура обновления ОП не выполняется, а затребованная строка из ОП перемещается в кэш-память для дальнейшего использования.

Кэш-память строится на основе двух блоков памяти: первый выполняет функции теговой памяти для хранения номера строки ОП, находящейся в данный момент времени в СОЗУ данных. Таким образом, емкость теговой памяти составляет 64 13-разрядных слов, а кэш-данных - 64 строки по 8 n-разрядных слов или 64 х 8 = 512 слов.

Память тегов строится на основе ассоциативного ЗУ (АЗУ), в котором старшие 13 бит ФА (поле а) строки используются в качестве адреса теговой памяти, которые параллельно сравниваются с содержимым всех ячеек памяти тегов. Если хотя бы один тег совпал, то это означает, что строка, содержащая текущий адрес i, находится в СОЗУ данных. В качестве старших разрядов адреса СОЗУ данных выступают 6 разрядов, считываемых из соответствующего поля [b] памяти тегов, к которым присоединяются три младших разряда ФА (поле [c]) и осуществляется обращение к СОЗУ данных по чтению или записи (рисунок 2.4).

Если ни один тег не совпадает со значением поля [a] RgФА (А∉Teg), то выполняется процедура обновления строки из кэш-памяти в ОП и замещения кэш-памяти согласно принятой стратегии. Данный метод допускает размещение каждой строки [bn] ОП на месте любой строки [bc] кэш-памяти, так как в качестве ассоциативного признака для поиска строки используется 13-разрядный тег, однозначно определяющий любую и только одну строку ОП.

Достоинства:

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

Недостатки:

  1. Высокая стоимость из-за сложности реализации АЗУ.
  2. Малая емкость БИС тегов из-за высокой плотности монтажа на кристалле, большая потребляемая мощность и число выводов БИС АЗУ.
  3. Для обращения к кэш-памяти требуется два такта и для чтения, и для записи (такт чтения памяти тегов и такт чтения или записи в СОЗУ данных), так как памяти работать параллельно не могут.
  4. Высокая стоимость и ограничения по емкости АЗУ (8-64 ячеек) делают этот метод практически неосуществимым.

При отсутствии запрашиваемой строки в кэш-памяти необходимо выполнить процедуры обновления ОП и замещения кэш-памяти. Время выполнения этих процедур в существенной степени зависит от принятых стратегий обновления ОП и замещения кэш-памяти, которые будут рассмотрены ниже, а также от принципов организации доступа к ОП и СОЗУ данных и структуры магистрали данных системного интерфейса.

На рисунках 2.4-2.6 приведены варианты подключения кэш-памяти и ОП в зависимости от принципов организации памяти (расслоения обращений) и структуры магистрали данных системного интерфейса. Рассмотрим четыре варианта:

  • ОП и СОЗУ данных без расслоения обращений;
  • ОП с расслоением обращений на ширину выборки строки, СОЗУ данных без расслоения обращений;
  • ОП и СОЗУ данных с расслоением обращений на ширину выборки строки.
  • ОП с расслоением обращений на ширину выборки строки, СОЗУ данных с расслоением обращений и двусторонним доступом.

Первый вариант схемы включения представлен на рисунке 2.4. Процедура обновления ОП требует 8 обращений к СОЗУ данных и 8 обращений для записи строки в ОП, т.е. потребуется 8 х Tозу+ 8 х tсозу дан. и столько же обращений для замещения строки кэш-памяти.

Второй вариант (рисунок 2.5) требует наличия на выходах ОП RgDO с выходами с z-состоянием или мультиплексора на 8 входов, а на входах соответственно демультиплексора и регистра RgDI. Тогда процедура обновления ОП потребует 8 x tсозу для чтения строки из СОЗУ данных и записи в RgDI через DMS и одного обращения Tозу к ОП для записи строки и столько же обращений для замещения строки кэш-памяти.

При третьем варианте организации ОП и СОЗУ данных потребуется 8 х n-разрядная MD, что приводит к нарушению стандарта системного интерфейса (разрядность системной магистрали данных должна быть n-разрядной). Поэтому этот вариант является неприемлемым и не рассматривается.

Четвертый вариант организации магистралей, ОП и СОЗУ данных представлен на рисунке 2.6.

Схема включает двухпортовое СОЗУ данных, где порт А связан через МD с процессором и RgDIO. MD имеет разрядность n бит (т.е. без расслоения обращений), а порт В выполнен с расслоением обращений на ширину строки и связан с входами/выходами ОП через 8 х n-разрядную внутреннюю магистраль данных для обмена строками за одно обращение к ОП и СОЗУ данных. MD и BMD связаны между собой через контроллер шины (КШ) для выполнении сквозной записи данных в кэш-память и ОП и загрузки в ОП программ и данных из ВЗУ. КШ представляет собой схему мультиплексора/демультиплексора, управляемого контроллером кэш-памяти и ЦУУ. Процедура замещения строки выполняется за одно обращение к ОП и одно обращение к кэш-памяти. Однако этот метод необходимо рассматривать только для перспективных разработок, когда ОП конструктивно будет размещаться на одной плате (ТЭЗе) с ЦП или между ОП и внутренней кэш-памятью подключается внешняя быстродействующая кэш-память большой емкости. Иначе надежность работы системы резко снижается, а реализация внешней дополнительной 128-разрядной шины данных не дает существенного выигрыша в быстродействии, так как при вероятности попадания в кэш-память 90% выигрыш составит 0,1 х 7 тактов = 0.7 такта на команду для рассматриваемого примера. Использование дополнительной шины данных оправдано только в мультипроцессорных системах при подключении к этой шине внешней кэш-памяти большой емкости для обеспечения независимого доступа к внешней кэш-памяти со стороны нескольких процессоров по приоритету с арбитражем шины.