Организация кэш-памяти на основе ассоциативной выборки

Системы адресации кэш-памяти

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

Здесь встает проблема адресации ячеек строк данных в кэш-памяти. Адресация строк данных в кэш-памяти должна допускать нахождение данных по адресам двойных слов (тегов) в оперативной памяти.

В настоящее время широко известны три схемы адресации, удовлетворяющие этому требованию. Это системы адресации на основе:

· аппаратной ассоциативной выборки,

· адресации с прямым отображением адресов,

· множественно-ассоциативной выборки.

В ядро кэш-памяти входят:

· ассоциативная память тегов со схемами параллельного сравнения входного слова (адреса данных в оперативной памяти) с тегами,

· схемы обнаружения кэш-промаха,

· регистры хранения строк данных,

· регистр команд обращения процессора к оперативной памяти,

· дешифратор адреса двойного слова в строке кэш-памяти,

· входные/выходные усилители и вентильные схемы.

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

· фиксируется кэш-промах,

· производится обращение к оперативной памяти,

· читается и записывается в схемы хранения строк данных вся строчка (8 байт), по любому свободному адресу, а адрес строки – в соответствующую ячейку поисковой части ассоциативной памяти,

· запрашиваемые данные (слово или двойное слово) пересылаются в процессор,

· дополнительная информация (например, биты присутствия, модификации операцией записи и т.д.).

Повторное обращение к данным из этой же строчки производится уже без обращения к оперативной памяти.

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

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