Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Архив1 / doc92 / Кулешов.doc
Скачиваний:
23
Добавлен:
03.08.2013
Размер:
387.07 Кб
Скачать

4.2 Способ отображения оперативной памяти на кэш-память

Сущность отображения блока основной памяти на кэш-память состоит в копиро­вании этого блока в какую-то строку кэш-памяти, после чего все обращения к бло­ку в ОП должны переадресовываться на соответствующую строку кэш-памяти.

Как уже было сказано выше, основная память имеет максимальную емкостью 4 Г слов, а кэш-памяти – 128 К слов. Для адресации каждого слова основной памяти используется 32-разрядный адрес (232 = 4Г). ОП разбивается на блоки по 4. При такой организации 32-разрядный адрес можно условно разделить на две части: младшие 2 разряда определяют адрес слова в пределах блока, а старшие 30 номер одного из 10243 блоков. Эти старшие 30 разрядов в дальнейшем будем называть адресом блока основной памяти. В свою очередь, для адресации любого слова в кэш-памяти требуется 17-разрядный адрес (217 = 128К). Кэш-память разбита на строки такого же размера, что и в ОП, то есть содержит 32 = 215 строк. 17-разрядный адрес слова в кэш-памяти также можно представить состоящим из двух частей: адреса слова в строке (2 младших разряда) и адреса строки кэш-памяти (15 старших разрядов).

Поскольку ЦП всегда обращается к ОП (кэш-память для ЦП невидима) и формирует для этого 32-разрядный адрес, необходим механизм преобразования такого адреса в 17-разрядный адрес слова в кэше. Так как расположение слов в блоке ОП и строке кэш-памяти идентично, для доступа к конкретному слову в блоке ОП в строке кэш-памяти можно использовать младшие 2 разряда 32-разрядного адреса. Следовательно, остается лишь задача преобразования 30-разрядного адре­са блока основной памяти в 15-разрядный адрес строки кэша.

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

При прямом отображении адрес строки i кэш-памяти, на которую может быть ото­бражен блок j из ОП, однозначно определяется выражением: i=j mod т, где т — общее число строк в кэш-памяти. В нашем примере i =j mod 32768. Иными словами, на строку кэша с номером i отображается каждый 32768-й блок ОП. Это поясняется рис. 8, где основная па­мять условно представлена в виде двухмерного массива блоков, в котором количе­ство рядов равно числу строк в кэш-памяти, а в каждом ряду последовательно перечислены блоки, переадресуемые на одну и ту же строку кэш-памяти.

Рис. 8. Организация кэш-памяти с прямым отображением

При реализации такого отображения 30-разрядный адрес блока основной памяти условно разбивается на два поля. Логика кэш-памяти интерпретирует эти 30 бит как 15-разрядный тег и 15-разрядное поле строки. Поле строки указывает на одну из 32768 = 215 строк кэш-памяти, а именно на ту, куда может быть отображен блок с заданным адресом. В свою очередь, поле тега определяет, какой именно из списка блоков, закрепленных за данной строкой кэша, будет отображен. Когда блок фактически заносится в память данных кэша, в память тегов кэш-памяти необхо­димо записать тег этого блока, чтобы отличить его от других блоков, которые мо­гут быть загружены в ту же строку кэша. Тегом служат семь старших разрядов адреса блока.

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

Соседние файлы в папке doc92