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

3.2. Архитектура кэш-памяти

Архитектура КЭШ-памяти определяется тем, каким образом достаточно большая оперативная память отображается на сравнительно небольшой КЭШ.

Существует три разновидности отображения:

  1. КЭШ память с прямым отображением.

  2. Полностью ассоциативная КЭШ-память.

  3. Частично ассоциативная КЭШ-память.

3.2.1. Кэш память с прямым отображением

Самой простой организацией обладает КЭШ память с прямым отображением. В этом случае адрес памяти полностью определяет используемую строку КЭШ. Для КЭШ памяти с прямым отображением этот адрес разделяется на 3 части:

ТЕГ

Номер строки

Номер байта (смещение)

Младшая часть байта определяет порядковый номер байта в строке КЭШа и является смещением.

Среднее поле позволяет однозначно выбрать одну строку КЭШа, это поле «номер строки». Оставшиеся старшие разряды несут информацию о признаке, теге.

Пусть некоторый процессор использует 10-разрядный адрес. При этом размер КЭШа 8 строк, а длина строки 8 байт.

Пусть процессор хочет прочитать байт данных из ОЗУ по адресу

0010001100

Если значение тега строки КЭШа совпадает со значением тега из адреса, то происходит чтение байта информации из КЭШа. Такая ситуация квалифицируется как КЭШ-попадание.

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

Одновременно с чтением байта из ОЗУ происходит запись в КЭШ строки из ОЗУ, которая содержит нужный байт. Эта строка, прочитанная из ОЗУ, помещается на место той строки, к которой только что было неудачное обращение.

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

3.2.2. Полностью ассоциативная кэш память

В такой памяти любая строка из ОЗУ может занимать любую строку КЭШа, что позволяет полностью избавиться от недостатка, присущего КЭШ памяти с прямым отображением.

П олный адрес памяти делится на два поля. Младшие разряды это смещение в строке, а старшие – тег.

При обращении к такой КЭШ памяти происходит сравнение тега адреса с тегами всех строк КЭШа, причем это сравнение происходит за один такт. Если в результате сравнения тег адреса совпадет с тегом одной из строк, то это значит, что произошло КЭШ попадание, и нужный байт будет прочитан из выбранной строки по полю смещения. (В нашем случае оно равно 4). Если же тег адреса не совпал ни с одним тегом строк, то это – КЭШ промах и нужная строка в КЭШ памяти отсутствует. В этом случае процессор вынужден обращаться за информацией к ОЗУ.

В такой архитектуре решена проблема конфликта адресов, когда несколько строк компьютера стремятся занять одну и ту же строку КЭШа, поскольку здесь отсутствует жесткая привязка строк ОЗУ к строкам КЭШа.

Недостаток заключается в том, что сама КЭШ память получается сложной, поскольку тег из адреса должен сравниваться одновременно со всеми тегами КЭШа, то есть должна использоваться сложная и дорогая ассоциативная память. От этого недостатка свободна множественно-ассоциативная память.