►Внутренний кэш 32-разрядного МП является общим при обращении как к командам, так и к данным. Обращение ведется по физическим адресам.
● Кэш-память обычно реализуется в виде ассоциативного ЗУ, в котором для каждой строки сохраняются дополнительные сведения, называемые тегом, или признаком, в качестве которого выступает адресный код или его часть. Когда в АЗУ подается адрес, с ним одновременно сравниваются все теги.
● Внутренняя кэш-память в МП i486реализует сквозную запись.
● Начиная с МП Pentium используется сквознаяили обратная запись. Внутренняя кэш-память МП i486 имеет емкость 8 Кбайт и организована в виде 4-канальной ассоциативной памяти. Это означает, что данные из какой-либо строки ОЗУ могут храниться в любой из 4 строк кэш-памяти.
► Во внешней КП применяется любой способ записи или их комбинация.
Кэш-память состоит из следующих блоков (рис. 3):
1) блока данных,
2) блока тегов,
3) блока достоверности и
4) блока LRU(least recently used) – наиболее давно не использовавшийся.
● Блок данных содержит 8 Кбайт данных и команд. Он разделен на 4 массива (направления), каждый из которых состоит из 128 строк.
Рис. 3. Структура внутренней кэш-памяти МП i486
Строка содержит данные из 16 последовательных адресов памяти начиная с адреса, кратного 16. Индекс массивов блока данных, состоящий из 7 бит, соответствует 4 строкам кэш, по одной из каждого массива. Четыре строки кэш с одним и тем же индексом называются множеством.
● В блоке тегов имеется один тег длиной 21 бит для каждой строки данных в кэш. Блок тегов также разделен на 4 массива по 128 тегов. Тег содержит старшие 21 бит физического адреса данных, находящихся в соответствую-щей строке кэш.
● В блоке достоверности и LRU содержится по одному 7-ми разрядному значению для каждого из 128 множеств строк КП: ▪ 3 бита (B0…B2), управляющие механизмом LRU и ▪ 4 бита достоверности (V0…V3) по одному на каждую строку множества. Биты достоверности показывают, содержит ли строка достоверные (V = 1) или недостоверные (V = 0) данные. При программной очистке кэш и аппаратном сбросе МП все V сбрасываются в 0.
■ Адресация кэш-памяти осуществляется путем разделения старших 28 бит физ. адреса на 2 части.
● Младшие 7 бит (разряды 10…4 физ. адреса) образуют поле индекса и определяют множество, в котором могут хранить- ся данные.
● Старшие 21 бит (разряды 31…11 физ. адреса) служат полем тега и применяются для определения того, находится ли информация с данным физ. адресом в какой-либо строке выбранного множества.
Поиск в кэш информации с заданным физ. адресом выполняется так:
1. Физ. адрес, по которому происходит обращение, разбивается на 3 поля: Тег,Индекс,№байта. 7 разрядов А10…А4 определяют одно из 128 множеств.
2. В выбранном множестве содержатся 4 строки с информацией. Чтобы определить, присутствует ли нуж-ная информация в одной из строк этого множества, проводится сравнение старших 21 бита физ. адреса (поле Тег) с тегами строк выбранного множества.
Сравнение проводится только для достоверных строк, то есть тех, у которых в блоке достоверности установлен бит достоверности V = 1.
3. Если для одной из строк ее тег и разряды А31…А11 физ. адреса совпали, то произошлокэш-попадание и информация есть в кэш-памяти.
4. Считывается найденная строка из 16 байт. Искомый байт в ней определяется 4 младшими разрядами физического адреса (А3…А0).
5. Если на этапе 3 совпадения не произошло или все строки множества недостоверны, это кэш-промах. Тогда по сформированному МП физ.адресу выполняется обращение к ОП. Из ОЗУ извлекается нужная информация, и содержащая ее строка записывается в свободную строку выбранного множе-ства. Старшие 21 бит физ. адреса записываются в поле тега этой строки.
6. Если все строки в выбранном множестве достоверны, то замещается строка, к которой дольше всего не было обращений (LRU). Этот механизм действует точно так же, как и при вытеснении строк из буфера ассоциативной трансляции TLB.
● Режим работы кэш-памяти определяется программно установкой разрядов CD (запрет кэширования) и NW (запрет сквозной записи) в регистре CR0.
Кэширование –
◊ можно разрешить (это состояние после инициализации при сбросе),
◊ можно запретить при наличии достоверных строк (в этом режиме кэш действует как быстрое внутреннее ОЗУ) или, наконец, кэширование