Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LABA4.doc
Скачиваний:
8
Добавлен:
04.04.2013
Размер:
468.48 Кб
Скачать

Организация кэш-памяти

Несмотря на то, что процессы обращаются только к адресам оперативной памяти, в действительности они должны работать с кэш-памятью. Таким образом, во время выполнения процесса адреса оперативной памяти необходимо преобразовывать в адреса кэш-памяти, причем это нужно делать быстро, ибо в противном случае производительность вычислительной машины будет снижаться до неприемлемых уровней и тем самым практически сведутся на нет те преимущества, которые и призвана обеспечить прежде всего концепция кэш-памяти. Для установления соответствия между адресами оперативной и кэш памяти разработаны различные способы. Так, механизмы динамического преобразования адресов (DAT) обеспечивают преобразование адресов оперативной памяти в адреса кэш-памяти во время выполнения процесса. Все подобные системы обладают общим свойством: смежные адреса кэш-памяти не обязательно будут смежными в оперативной памяти, это свойство называют "искусственной смежностью".

Поблочное отображение

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

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

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

Номер блока р

Смещение d

Адрес оперативной памяти, v=(p, d)

Рис.2 Формат адреса оперативной памяти в системе поблочного отображения.

Бит-признак присутствия блока

г s р

Адрес оперативной памяти (если блока в кэш-памяти нет)

Номер блока кэш-памяти (если блок находится в кэш-памяти)

Адреса в системе поблочного отображения являются двухкомпонентными ("двумерными "). Адрес оперативной памяти в этой системе - это упорядоченная пара (р, d), где р - номер блока в оперативной памяти, a d- смещение в рамках блока р, где размещается адресуемый элемент.

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

v=(p, d). Механизм отображения страниц, ищет номер блока р в таблице отображения блоков и определяет, что этот блок находится в блоке кэш-памяти р'. Адрес кэш-памяти формируется затем путем конкатенации р' и d.

г=0, если блока в кэш-памяти нет

г=1, если блок находится в кэш-памяти

Рис.3 Строка таблицы отображения блоков.

Поскольку обычно не все блоки процесса находятся в кэш-памяти одновременно, таблица отображения блоков должна указывать, есть ли адресуемый блок в кэш-памяти, и если есть, то где именно, а если нет, то в каком месте оперативной памяти его можно найти. На рис.3 показана типичная строка таблицы отображения блоков. Бит-признак присутствия блока r устанавливается в 0, если данного блока в кэш-памяти нет, и в 1, если эта страница есть в кэш-памяти. Если блока нет, то s - его адрес в оперативной памяти. Если блок есть в кэш-памяти, то р' - номер блока кэш-памяти. Отметим, что р' это не действительный адрес кэш-памяти. Адрес кэш-памяти а, с которого начинается блок р' (если размер страницы равняется р), определяется произведением а^(р)(р') если страничные кадры имеют номера 0, 1,2 и т. д.).

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

Ассоциативная память

Номер блока ОП Номер блока КП

Рис.4 Преобразование адреса блока при чисто ассоциативном отображении.

Существует несколько способов динамического преобразования адресов страниц:

1. Преобразование адресов прямым отображением.

2. Преобразование адресов ассоциативным отображением.

3. Преобразование адресов комбинированным ассоциативно-прямым отображением.

Рассмотрим ассоциативное отображение, поскольку, остальные методы не входят в тему данной лабораторной работы.

Соседние файлы в предмете Организация ЭВМ