Способы организации кэш-памяти Общие сведения
В
функциональном
отношении
кэш-память
рассматривается
как
буферное
ЗУ,
размещённое
между
основной
(оперативной)
памятью
и процессором.
Основное
назначение
кэш-памяти
– кратковременное
хранение и выдача активной информации процессору, что сокращает
число обращений к основной памяти, скорость работы которой меньше,
чем
кэш-памяти.
За единицу
информации
при
обмене
между
основной
памятью
и кэш-памятью принята строка (линейка), причём под строкой понима-
ется набор слов, выбираемый из оперативной памяти при одном к ней
обращении. Хранимая в оперативной памяти информация представляет-
ся, таким образом, совокупностью строк с последовательными адреса-
ми. В любой момент времени строки в кэш-памяти представляют собой
копии строк из некоторого их набора в ОП, однако расположены они
необязательно в
такой же
последовательности,
как
в
ОП.
Построение
кэш-памяти
может
осуществляться
по
различным
принципам, которые будут рассмотрены ниже. Но общим для всех спо-
собов построения кэш-памяти является использование так называемых
адресных тегов.
Адресный тег – это расширенный адрес, который объ-
единяет адреса всех слов, принадлежащих данной строке. Он указывает,
какую
строку
в
ОП представляет
данная строка в
кэш-памяти.
-
Типовая структура кэш-памяти
Рассмотрим типовую структуру кэш-памяти (рис. 4.3), включаю-
щую основные блоки, которые обеспечивают её взаимодействие с ОП и центральным процессором.
Строки, составленные из информационных слов, и связанные с ни- ми адресные теги хранятся в накопителе, который является основой кэш-памяти, остальные блоки относятся к кэш-контроллеру. Адрес тре- буемого слова, поступающий от центрального процессора (ЦП), вводит- ся в блок обработки адресов, в котором реализуются принятые в данной кэш-памяти принципы использования адресов при организации их сравнения с адресными тегами. Само сравнение производится в блоке сравнения адресов (БСА), который конструктивно совмещается с нако- пителем, если кэш-память строится по схеме ассоциативной памяти. Назначение БСА состоит в выявлении попадания или промаха при об- работке запросов от центрального процессора. Если имеет место кэш-
попадание (совпадение теговой части адреса, поступающего от цен- трального процессора, с адресным тегом одной из ячеек кэш-памяти), то в режиме чтения информации соответствующая строка из кэш-памяти переписывается в регистр строк. С помощью селектора из неё выделяет- ся искомое слово, которое и направляется в центральный процессор.
В случае промаха с помощью блока формирования запросов осу- ществляется инициализация выборки из ОП необходимой строки.
Адресация ОП при этом производится в соответствии с информаци- ей, поступившей от центрального процессора. Выбираемая из памяти строка вместе со своим адресным тегом помещается в накопитель и ре- гистр строк, а затем искомое слово передается в центральный процессор.
В режиме записи информации в память адрес обрабатывается так-
же, как и при чтении. Само же слово информации из ЦП проходит через
демультиплексор и заносится в регистр строк. Далее, в зависимости от
выбранного способа записи оно может загрузиться в накопитель строк
кэш-памяти
и в
ОП
или только
в
кэш-память.
Для высвобождения места в кэш-памяти с целью записи выбирае-
мой из ОП строки одна из строк удаляется. Определение удаляемой
строки производится посредством блока замены строк, в котором хра-
нится
информация,
необходимая
для
реализации
принятой
стратегии
обновления
находящихся в
накопителе
строк.
-
1 ... 57 58 59 60 61 62 63 64 ... 76
Способы размещения данных в кэш-памяти
Существует
три
основных
способа
размещения
данных
в
кэш-
памяти: прямое распределение (отображение), полностью ассоциатив-
ное распределение и частично ассоциативное распределение. Ниже по-
дробно описан каждый способ размещения и его механизм преобразо-
вания адресов. Для того чтобы конкретизировать описание, положим,
что кэш-память может содержать 128 строк, размер строки – 16 слов, а
основная память может содержать 16384 строк. Для адресации основной
памяти
используется 18
бит.
Из них старшие 14 показывают адрес строки, а младшие 4 бит
– ад-
рес слова внутри этой строки. При одном обращении к памяти выбира-
ется одна строка; 128 строк кэш-памяти указываются 7-разрядными ад-
ресами.
169
Основная ОП
Адресация ОП
ЦП
Блок замены строк
Адрес
от
ЦП
Слово
к
ЦП
Кэш-память
Рис.
4.3.
Типовая
структура
кэш-памяти
Прямое распределение
При прямом распределении
место
хранения
строк
в кэш-памяти
однозначно определяется по адресу строки (рис. 4.4). Адрес строки под- разделяется на тег (старшие 7 бит) и индекс (младшие 7 бит).
Для того чтобы поместить в кэш-память строку из основной памяти с адресом bn, выбирается область внутри кэш-памяти с адресом bm, ко- торый равен 7 младшим битам адреса строки bn. Преобразование из bn в bm сводится только к выборке младших 7 бит адреса строки. По адресу bm в кэш-памяти может быть помещена любая из 128 строк основной памяти, имеющих адрес, 7 младших битов которого равны адресу bm. Для того чтобы определить, какая именно строка хранится в данное время в кэш-памяти, используется память ёмкостью 7 бит × 128 слов, в которую помещается по соответствующему адресу в качестве тега 7 старших битов адреса строки, хранящейся в данное время по адресу bmкэш-памяти. Это специальная память, называемая теговой памятью. Память, в которой хранятся строки, помещенные в кэш, называются памятью данных. В качестве адреса теговой памяти используются младшие 7 битов адреса строки.
При выполнении операции чтения (записи данных) из теговой па- мяти считывается тег. Параллельно этому осуществляется доступ к па- мяти данных с помощью 11 младших битов адреса основной памяти (используется 7 разрядов индекса и 4 разряда адреса слова внутри стро- ки). Если считанный из теговой памяти тег и старшие 7 бит адреса ос- новной памяти совпадают, то это означает, что данная строка существу- ет в памяти данных, т.е. осуществляется кэш-попадание. В этом случае при чтении в процессор передается содержимое выбранной ячейки кэш- памяти, а при записи – в выбранную ячейку кэш-памяти загружается новая строка данных.
Если выбранный тег отличается от старших 7 бит (кэш-промах), то из основной памяти считывается соответствующая строка, а из кэш- памяти удаляется строка, определяемая 7-ю младшими разрядами адре-