Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ответы на вопросы_ABC.doc
Скачиваний:
11
Добавлен:
17.09.2019
Размер:
6.14 Mб
Скачать

5.2. Виды кэш-памяти

Рис. 5.2. Структура полностью ассоциативной кэш-памяти

В полностью ассоциативной кэш-памяти (FACM, Fully Associated Cache Memory), структура которой показана на рис. 5.2., каждая ячейка хранит данные, а в поле "тег" — полный физический адрес информации, копия ко­торой записана. При любых обменах физический адрес запрашиваемой ин­формации сравнивается с полями "тег" всех ячеек и при совпадении их в любой ячейке устанавливается сигнал Hit.

При чтении и значении сигнала Hit = 1 данные выдаются на шину данных, если же совпадений нет (Hit = 0), то при чтении из основной памяти дан­ные вместе с адресом помещаются в свободную или наиболее давно не ис­пользуемую ячейку кэш-памяти.

При записи данные вместе с адресом сначала, как правило, размещаются в кэш-памяти (в обнаруженную ячейку при Hit = 1 и свободную при Hit = 0). Копирование данных в основную память выполняется под управлением специального контроллера, когда нет обращений к памяти.

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

Сложность FACM заставляет искать иные структуры кэш-памяти, более экономичные по затратам аппаратных средств на их реализацию. К числу таких структур относятся кэш-память с прямым размещением и кэш-память с наборно-ассоциативной архитектурой (с ассоциацией по нескольким на­правлениям). Для конкретного рассмотрения этих структур укажем, что главными параметрами кэш-памяти являются размер строки (Cache Line) и их число (рис. 5.3.). Строка представляет собою некоторый набор слов. Ее емкость будем считать соответствующей странице основной памяти.

Рис. 5.3. Представление кэш-памяти в виде совокупности строк

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

а

б

в

Рис. 5.4. Пояснения к организации кэш-памяти с произвольной загрузкой (а), с прямым размещением (б) и наборно-ассоциативной архитектурой (в).

Иными словами, в этом случае старшие разряды адреса рассматриваются как тег, тогда как младшие используются для адресации в пределах строки.

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

Тег для кэш-памяти с прямым размещением сильно сокращается по разряд­ности. Обычно номер строки есть адрес страницы по модулю, равному це­лой степени двойки. На рис. 5.4., б это 128. Достоинство кэша с прямым размещением — экономичность по аппаратурным затратам. Недостаток — ограничения на расположение страниц в кэше, что может не позволить сформировать в нем оптимальный набор страниц, т. к. передача в кэш стра­ницы вызывает удаление из него другой, которая, может быть нужна для формирования оптимального набора страниц.

Промежуточным по сложности и эффективности вариантом между структу­рами FACM и с прямым размещением является кэш-память с ассоциацией по нескольким направлениям (наборно-ассоциативная). В этом варианте не­сколько строк кэша объединяются в наборы, а средние разряды адреса па­мяти определяют уже не одну строку, а набор (рис. 5.4., в). Кэш-память де­лится на наборы с небольшим числом строк, кратным двойке, т. е. 2, 4, 8 ... и т. д. (на рисунке это 2). Страницу основной памяти можно поместить только в тот набор, номер которого равен адресу страницы по модулю (в данном случае модуль равен 64). Место страницы в наборе может быть произвольным. Сравнение тегов со старшими разрядами адреса производит­ся только для строк, входящих в набор.

По числу строк в наборе кэш-памяти различают разнообразные структуры: двухвходовые, четырехвходовые и т. д.

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

Блок-схема наборно-ассоциативного кэша показана на рис. 5.4., в. По срав­нению с кэшем с прямым размещением кэш наборно-ассоциативного типа имеет несколько удлиненный тег (во взятом примере всего на один разряд). Возможность свободного размещения страниц в наборе позволяет сформи­ровать в кэше лучший состав страниц, так как имеется возможность выбрать ту или иную заменяемую страницу. В современных микропроцессорных систе­мах кэш первого уровня, обозначаемый L1 (от английского слова Level (внутрипроцессорный)), обычно имеет наборно-ассоциативную структуру, а кэш второго уровня L2 (внешний) — структуру с прямым размещением.

Ряд фирм выпускают микросхемы ассоциативной памяти. Например, одна из микросхем фирмы Cyrix имеет 4К строк, 15-разрядный теговый адрес и 16-разрядный выход. Для построения кэш-памяти используют чаще всего обычные SRAM в сочетании с кэш-контроллерами. В высокопроизводительном микропроцессоре Power 3 фирмы IBM исполь­зован кэш наборно-ассоциативного типа емкостью 32 Кбайта для команд и 64 Кбайта для данных на 128 направлений. Для связей с кэшем второго уровня L2 в системе Power 3 применена 256-разрядная шина. Емкость кэша L2 от 1 до 16 Мбайт.