Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Вопросы Экзамен АрхЭВМ.docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
2.08 Mб
Скачать

22.Кэширование. Прямое и ассоциативное отображение

Простейшим способом сопоставления адресов блоков в кэше и в памяти является прямое отображение. При использовании этой технологии блок j основной памя­ти отображается на блок j по модулю 128 кэша, как показано на рис. 8.4. Таким образом, когда загружается один из блоков основной памяти, начинающихся по адресам 0,128,256 и т. д., он записывается в блок кэша 0. Блоки 1,129, 257 и т. д. записываются в блок кэша 1 и т. д. Поскольку на каждый блок кэша отображается более одного блока основной памяти, то даже при не до конца заполненном кэше может возникнуть состязание за некоторую позицию. Например, команды про­граммы, начавшиеся в блоке 1, после перехода могут продолжиться в блоке 129. В результате выполнения программы оба эти блока должны быть скопированы в блок 1 кэша. Конфликт разрешается просто: старый блок заменяется новым.

Таким образом, местоположение блока в кэше определяется на основе его адре­са в памяти. Адрес в памяти может быть разделен на три поля (рис. 8.4). Четыре младших разряда задают одно из 16 слов блока. Когда в кэш записывается новый блок, 7-разрядное поле номера блока данного кэша определяет его местоположе­ние. Пять старших разрядов задают адрес блока в памяти. При записи блока в кэш они указываются в специальном поле тега (дескрипторе). Такое поле имеет­ся в кэше для каждого из его блоков — оно определяет, какому из 32 блоков памя­ти, отображаемых на данный блок кэша, соответствует хранящаяся здесь инфор­мация. Во время выполнения программы процессор генерирует адреса, в каждом из которых 7-разрядное поле номера блока кэша указывает на конкретный блок в нем. Тег этого блока сравнивается со старшими 5 разрядами адреса, и если они совпадают, значит, данное слово уже находится в кэше. В противном случае блок, содержащий данное слово, нужно извлечь из основной памяти и поместить в кэш. Технология прямого отображения очень проста, но ей недостает гибкости.

Ассоциативное отображение

На рис. 8.5показана схема гораздо более гибкого метода отображения, согласно которому блок основной памяти можно помещать в любой блок кэша. При этом для идентификации хранящегося в кэше блока памяти необходимо иметь уже не 5, а 12 бит. При выполнении программы теговые биты сгенерированного процес­сором адреса по очереди сравниваются с теговыми битами каждого блока кэша. Если совпадение найдено, значит, содержащий данное слово блок уже присутст­вует в кэше. Такая технология называетсяассоциативным отображением.Она предоставляет полную свободу выбора местоположения блока в кэше, благодаря чему пространство кэша может использоваться более эффективно. Новые блоки заменяют уже хранящиеся в кэше только в том случае, если кэш заполнен, причем для этой цели необходим алгоритм выбора удаляемого блока. Подобных алгорит­мов, как станет ясно из раздела 8.3.2, довольно много. Стоимость ассоциативного кэша выше, чем кэша с прямым отображением, поскольку в нем выполняется просмотр всех 128 тегов блоков. Поиск блока в кэше называетсяассоциативным поиском.Для того чтобы он выполнялся достаточно быстро, теги должны про­сматриваться параллельно.