Полностью ассоциативный кэш
Кэш с полностью ассоциативным отображением позволяет преодолеть недостаток прямого, разрешая загрузку любой строки ОП в любую строку кэш-памяти. Логика управления выделяет в адресе ОП два поля: поле тега и поле слова. Поле тега совпадает с адресом блока ОП. Для проверки наличия копии блока в кэш-памяти, логика управления кэш должна одновременно проверить теги всех строк на совпадение с полем тега адреса. Ассоциативное отображение обеспечивает гибкость при выборе строки для вновь записываемого блока. Принципиальный недостаток этого способа – в необходимости использования дорогой ассоциативной памяти. Особенностью такой организации является то, что любая строка с любой страницы может отображаться на любом свободном месте в Кэш. Поиск данных производится параллельно во всех блоках кэш. При операции записи или считывания контроллер кэш проверяет нет ли записи в кэш и фиксирует частоту обращения к каждому блоку кэш. Такая реализация требует больших аппаратных затрат. Для персональных компьютеров этот способ реализации кэш слишком дорог. Применяется при небольших размерах Кэш памяти. Контроллер кэш-памяти выделяет в адресе ОП два поля: поле тегов и поле слова. Поле тега совпадает с адресом блока ОП. Для проверки наличия копии блока ОП в кэш-памяти логика управления контроллера кэш должна одновременно сравнить теги всех строк кэш на совпадение с полем тега адреса. Это обеспечивается использованием ассоциативной памяти для хранения тегов кэш. Ассоциативное отображение обеспечивает гибкость при выборе строки кэш-памяти для размещения блока ОП, но требует использования дорогостоящей ассоциативной памяти, поэтому применяется только для построения первичных кэш. При полностью ассоциативном доступе адрес складывается только из тэга и смещения, что требует больших аппаратных затрат. Как и в предыдущем случае, выборка происходит, если совпадает тэг. Достоинство – ассоциативное отображение обеспечивает гибкость при выборе строки во время записи. Рассмотрим пример: Полностью ассоциативный Кэш емкостью (объемом) 64 Кбайт для ОП емкостью 1 Мбайт с длиной строки 32 байта. Строка нулевая имеет адреса: от 00000 h до 0001F h Строка первая имеет адреса: от 00020 h до 0003F h Строка вторая имеет адреса: от 00040 h до 0005F h - - - - - - - - - - - - - -- - - -- - - - - - - - - - - - - -- - - - - -- - - - - - - -- - - Предпоследняя строка имеет адреса: от FFFC0 h до FFFDF h Последняя строка имеет адреса: от FFFE0 h до FFFFF h Решение:ОП емкостью 1 Мбайт можно адресовать с помощью 20 адресов (1 Мбайт=1024*1024=1048576=220). Аоп =log2 1048576 Для адресации строки 32 Кбайт требуется 5 адресов (32 кбайта=32*1024=32768=25). Т. о. из 20-ти адресов ОП младшие пять байт отводятся под номер байта в строке (смещение), а остальные старшие под Tag –номер строки. Например, при чтении ячейки ОП 0004А h информация всей строки с адресами (00040 h -0005F h) ОП будет помещена в любую свободную строку Кэш. Пример выполнения задания: Полностью ассоциативный Кэш емкостью 128 Кбайт для ОП емкостью 2 Мбайта с длиной строки 64 байт. Емкость Кэш = 128 кбайт=128*1024=131072=217; Емкость строки =64 байт=26; Емкость ОП = 2 Мбайт=2*1024*1024=2097152=221; Количество разрядов адреса отводимых под строку равно 6 (64=26) (log264) Определить: - сколько строк будет иметь Кэш-память? - сколько разрядов имеет регистр адреса ОП? - сколько бит отводится под Тег? - при обращении к ячейке ОП с адресом 1АВAСС h какой Тег будет сопровождать эту информацию, какой байт (смещение) будет выбран из строки? Ответы: - количество строк Кэш: N=емкость Кэш/ емкость строки = 217/26=211=2048; - количество разрядов адреса ОП - 21 бит; - под тег отводится: Nбит адреса ОП – Nбит адреса строки=21-6=15 бит - в двоичном коде адрес 1АВAСС h выглядит так: 1 1010 1011 1010 1100 1100 – это адрес ОП; шесть младших бит соответствуют номеру байта в строке = 0С16=1210; Остальные 15 бит соответствуют номеру строки (Тэг) = 6АЕВ16=2737110. Наборно – ассоциативный Кэш. Наборно-ассоциативный тип отображения – это один из возможных компромиссов, сочетающий достоинства прямого и ассоциативного способов. Кэш-память (и тегов и данных) разбивается на некоторое количество наборов (set). Зависимость между наборами и блоками ОП такая же жесткая, как и при прямом отображении. А вот размещение блоков по строкам модуля произвольное и для поиска нужной строки в пределах модуля используется ассоциативный принцип. Этот способ отображения наиболее широко распространен в современных микропроцессорах. Данный тип отображения применяется во всех современных ЭВМ и состоит в том, что вся ОП разбивается на секторы, состоящие из фиксированного числа последовательных блоков. Кэш-память также разбивается на секторы, содержащие такое же количество строк. Расположение блоков в секторе ОП и секторе кэша полностью совпадает. Отображение сектора на кэш-память осуществляется ассоциативно, т.е. любой сектор из ОП может быть помещен в любой сектор кэша. Таким образом, в процессе работы АЛУ обращается в поисках очередной команды к ОП, в результате чего, в кэш загружается(в случае отсутствия там блока, содержащего эту команду), целый сектор информации из ОП, причем по принципу локальности, за счет этого достигается значительное увеличение быстродействия системы. Кэш с множественно-ассоциативным отображением может применяться для построения как первичных, так и вторичных кэш
Достоинства: - запись быстрая; Недостатки: - считывание медленное (требуется перебор Кэш каталогов).
|