Материал: А. Д. Чередов, А. Н. Мальчуков

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Способы организации кэш-памяти Общие сведения


В функциональном отношении кэш-память рассматривается как

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

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

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

      1. Типовая структура кэш-памяти


Рассмотрим типовую структуру кэш-памяти (рис. 4.3), включаю-
щую основные блоки, которые обеспечивают её взаимодействие с ОП и центральным процессором.

Строки, составленные из информационных слов, и связанные с ни- ми адресные теги хранятся в накопителе, который является основой кэш-памяти, остальные блоки относятся к кэш-контроллеру. Адрес тре- буемого слова, поступающий от центрального процессора (ЦП), вводит- ся в блок обработки адресов, в котором реализуются принятые в данной кэш-памяти принципы использования адресов при организации их сравнения с адресными тегами. Само сравнение производится в блоке сравнения адресов (БСА), который конструктивно совмещается с нако- пителем, если кэш-память строится по схеме ассоциативной памяти. Назначение БСА состоит в выявлении попадания или промаха при об- работке запросов от центрального процессора. Если имеет место кэш-

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

В случае промаха с помощью блока формирования запросов осу- ществляется инициализация выборки из ОП необходимой строки.

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

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

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

      1. 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-ю младшими разрядами адре-
Источник: https://files.student-it.ru/previewfile/151041