Различают КЭШ память: полностью ассоциативную, частично-ассоциативную и
с прямым отображением.
В полностью ассоциативной кэш-памяти(см. рисунок 2.17) каждая ячейка па-мяти ЯП хранит данные, а в поле Тег находится полный физический адрес единицы данных, копия которой записана в ЯП.
Во время обменов записываемый физический адрес сравнивается с полем Тег всех ячеек. Если выявляется совпадение с адресом любой ячейки, то компаратор вы-даёт сигнал Hit. При чтении, когда значение сигнала Hit = 1, данные выдаются на
ШД. Если совпадений нет, (Hit = 0), то при чтении из ОП данные вместе с адресом размещаются в свободной или давно не используемой ячейке КЭШ-памяти.
Рисунок 2.13 – Структура полностью ассоциативного КЭШа
Строки КЭШа загружаются адресами и данными при операциях чтения из ОП. Данные без копии в КЭШе записываются только в ОП. Данные, имеющие копии в КЭШе, записываются в КЭШе сквозным или обратным способом.
При сквозной записи данные одновременно загружаются в копию КЭШа и в ОП, но затрачивается сравнительно большое время на запись в динамическую ОП, что снижает быстродействие всей памяти.
При обратной записиданные записываются вначале в свою копию и помечают-ся признаком модификации. После освобождения системной шины КЭШ-контрол-
лер переписывает модифицированную строку в ОП. Обратный способ сложнее сквозного, но более эффективен.
При обоих способах записи КЭШ-контроллер обеспечивает когерентность, то есть согласованность данных в КЭШе и в ОП.
Полностью ассоциативная КЭШ-память обеспечивает наибольшую функцио-нальную гибкость, однако она является очень сложным устройством.
В КЭШ-памяти с прямым отображениемразмещением(см. рисунок 2.18) ОП условно разбивается, например, на 512 страниц. Размер каждой страницы совпадает с размером КЭШ-памяти. Данные в КЕШе хранятся в строках, в каждой из которых обычно по 32 байта. Если КЕШ-память имеет 256 строк, то её объём составляет 256×32 = 8 Кбайт, а объём ОП должен составлять 512×8 = 4 Мбайт. В строках КЭШа могут храниться данные любой страницы ОП.
Адрес от процессора делится на три части: младшие разряды (смещение) опре-деляют положение младшего байта 32-разрядного слова; средние разряды задают номер строки. Вместе номера строки и байта в ней называются индексом. Инфор-мация о номере страницы ОП, данные из которой занимают соответствующую строку в КЭШе, называется тегом.
Рисунок 2.14 – Организация кэш-памяти с прямым размещением
Адрес от процессора делится на три части: младшие разряды (смещение) опре-деляют положение младшего байта 32-разрядного слова; средние разряды задают номер строки. Вместе номера строки и байта в ней называются индексом. Инфор-мация о номере страницы ОП, данные из которой занимают соответствующую строку в КЭШе, называется тегом. Каждый тег занимает ЯП, которая связана со своей строкой. Совокупность этих ЯП образует память тегов. Разрядность ячеек тега должна быть достаточной для записи номера страницы ОП. При 256 страницах длина ячейки тега должна составлять 8 бит.
При обращении к ОП вначале считывается строка КЭШа с заданным индексом, а затем сравниваются значения тегов данной строки и заданного в адресе от процессо-ра. При КЭШ-попадании сигнал Hit = 1 и слово данных мультиплексируются из вы-бранной строки и пересылаются в процессор. При КЭШ-промахе Hit = 0 и данные выбираются из ОП; при этом по указанному адресу загружается вся строка КЭШа (пакетный обмен).
КЭШ с прямым размещением имеет простую схему, малую разрядность тега,
однако и существенный недостаток – не допускается размещение в КЭШе строк с одинаковыми индексами, но с разными тегами, что приводит непрерывной очереди КЭШ-промахов. Этот недостаток устраняется в наборно-ассоциативном КЭШе.
В наборно-ассоциативной структуре(см. рисунок 2.19)КЭШ-память делится на наборы с небольшим числом строк, кратным числу 2. Средние разряды адреса от процессора определяют не одну строку, а весь набор.
Каждая строка в наборе обслуживается собственным блоком КЕШ-памяти, тегом, компаратором и буфером данных. Это подобно параллельной и согласованной рабо-те нескольких каналов прямого замещения. Контроллер КЕШ-памяти принимает ре-шение о том, в какой из строк набора размещается очередной пакет данных.
В простом случае каждый пакет данных из ОП может загружаться в одну из двух строк в наборе двухвходового КЕШа, который содержит два блока КЕШ-памяти: А – для чётных строк и В – для нечётных строк.
Страницу данных из ОП можно поместить только в тот набор, номер которого совпадает с номером адреса страницы по модулю, например, 64 или 128, Место страницы в наборе – произвольное.
Одновременно считываются и сравниваются чётные и нечётные строки (слова из них). Считывание данных идёт от того блока, где имеется совпадение тега и тегового адреса от процессора. При отсутствии совпадений выполняется обращение к ОП и замещение строки в одном из блоков КЕШа.