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

2.3.2 Прямое распределение

С целью уменьшения аппаратурных затрат для представления адреса строки (тега) разобьем формат ФА на 3 части: 3-разрядное поле [c] указывает на адрес слова в строке, разряды [а.b] - на адрес строки в ОП. Тогда структуру ОП можно представить в виде матрицы [а x b] (рисунок 2.7).

Тогда 6-разрядное поле [b] (индекс) указывает на множество строк (128), отстоящих друг от друга с шагом кратным 64 (например, для RgФА[b=4] это строки с номерами 4, 68, 132, 196,..., 8132), а 7-разрядное поле [а=2] можно использовать в качестве тега для выбора одной строки из этого ряда (строка 132). Такое разбиение позволяет сократить разрядность тега с 13 до 7 разрядов. Таким образом, поиск строки осуществляется в два этапа: поле [b] напрямую указывает (адресует) группу строк, а по тегу (старшим разрядам адреса) определяется принадлежность запрашиваемой строки кэш-памяти. Кэш-память с прямым распределением строится на основе двух блоков СОЗУ с произвольным доступом на основе обычных БИС ЗУ статического типа с произвольным доступом (рисунок 2.8): первый блок выполняет функции теговой памяти для хранения старших разрядов номера строки ОП, находящейся в данный момент времени в СОЗУ данных кэш-памяти. Таким образом, емкость теговой памяти составляет 64 7-разрядных слов, а СОЗУ данных - 64 строки по 8 n-разрядных слов.

Следующие младшие 6 бит адреса (поле b) строки используются в качестве адреса теговой памяти и СОЗУ данных, указывающие на одну группу из 128 строк ряда, хранимых в ОП. Из теговой памяти считывается тег (номер столбца ОП) и сравнивается с 7-ью старшими разрядами адреса. Если они совпадают, то это означает, что строка, содержащая текущий адрес i, находится в СОЗУ данных. Параллельно считыванию тега осуществляется чтение данных из СОЗУ данных по адресу, образованному 9-ью младшими разрядами адреса i (поля [b.c]), и если A∈Teg, то данные выдаются (записываются) из/в СОЗУ данных на MD в/из RgDIO.

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

Таким образом, если А∈Teg, то при чтении время доступа к кэш-памяти составляет один такт, а время такта равно: tкэш = (max tтеg = (τтеg + τсх.ср. + τ&), tсозу дан. = (τсозу дан. + τrgdio)).

При записи: tкэш = (2 × max (τтеg , τсозу дан.)) (или два такта).

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

  1. Простота реализации на основе двух СОЗУ с произвольным доступом.
  2. Достаточно высокое быстродействие, т.к. блоки памяти тегов и СОЗУ данных работают параллельно при чтении.
  3. Память тегов и данных может быть достаточно большой емкости, т.к. кроме обычных БИС памяти необходима одна схема сравнения.

Недостаток: большая вероятность промахов при обращении к кэш-памяти или вероятность частого замещения строк кэш-памяти, т.к. место хранения строки в кэш-памяти однозначно определяется номером индекса строки (группы строк) (например, при частом обращении к строкам кратным 64: 63, 127, 191, 255,..., 8191 каждый раз требуется процедура обновления ОП и замещения кэш-памяти). Принципы организации доступов к памяти с расслоением обращений и использование системного интерфейса на ширину выборки применимы к любому механизму преобразования адресов, так как данные методы являются универсальными и в дальнейшем не рассматриваются.