Помощничек
Главная | Обратная связь


Археология
Архитектура
Астрономия
Аудит
Биология
Ботаника
Бухгалтерский учёт
Войное дело
Генетика
География
Геология
Дизайн
Искусство
История
Кино
Кулинария
Культура
Литература
Математика
Медицина
Металлургия
Мифология
Музыка
Психология
Религия
Спорт
Строительство
Техника
Транспорт
Туризм
Усадьба
Физика
Фотография
Химия
Экология
Электричество
Электроника
Энергетика

КЭШ прямого отображения



Принцип работы КЭШ прямого отображения проиллюстрирован на рисунке 7.12.

Рисунок 7.12- Структура КЭШ прямого отображения

В таблице 7.2 приведено разбиение полного адреса ячейки DRAM на поля.

Таблица 7.2- Распределение полного адреса ячейки DRAM

Разряды адреса ячейки памяти
Tag Index  
25... 18 17… 5 4… 0
Номер страницы (блока) ОП Номер строки в блоке ОП Выбор байта в строке  

 

Рассмотрим принцип работы КЭШ прямого отображения на примере КЭШ объёмом 256 Кбайт с размером строки 32 байта (4 x 8 байт) и объёмом кэшируемой основной памяти 64 Мбайт. Кэшируемая основная память при этом условно разбивается на блоки, размер которых равен размеру КЭШ – памяти. Для рассматриваемого случая количество блоков равно: 64 Мбайт/ 256 Кбайт = 256. В свою очередь КЭШ- память делится на строки, длина которых равна количеству байт, передаваемых процессором в одном пакетном цикле (пакете) (4 x 4 байт =16 для процессора INTEL 486 и 4 x 8 байт = 32 байта для Pentium - процессоров). При размере КЭШ в 256 Кбайт число строк КЭШ для Pentium будет равно 256 Кбайт / 32 байт = 8 К .

В КЭШ прямого отображения средняя часть адреса (Index), по которому производится обращение, однозначно определяет строку КЭШ, в которой может находиться отображение соответствующей строки блока DRAM. На запись в каждую строку КЭШа могут претендовать только одноимённые строки всех блоков основной памяти (откуда и название данного типа КЭШ), но конкретная строка КЭШа в некоторый момент времени может содержать копию только одной строки некоторого блока ОП. Номер блока основной памяти, строка которого отображается в КЭШ, или старшая часть адреса (А18…А25 для КЭШ и ОП рассматриваемых размеров) оперативной памяти называется тегом (Tag) и хранится в дополнительной памяти тегов (Tag SRAM). Младшие пять разрядов адреса (для пакета в 32 байта) определяют номер байта в строке КЭШ памяти и для работы КЭШ памяти несущественны, т.к. минимальной единицей кэширования является строка.

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

Кроме адресной части Tag с каждой строкой связаны биты признака действительности строки (V-Valid) и модифицированности данных (М-Mod).

В начале каждого обращения к кэшируемой памяти контроллер ККП считывает содержимое ячейки Tag с заданным индексом и сравнивает его со старшими битами D18…D25, адреса строки DRAM, подлежащей чтению. Сравнение осуществляется цифровым компаратором, входящим в состав КЭШ- контроллера. Если результат сравнения отрицателен (случай КЭШ- промаха), то вырабатывается цикл чтения основной памяти и считанные с нее данные вводятся в процессор, помещаются в соответствующую строку КЭШ, в Tag строки записывается старшая часть адреса, а бит V - достоверности, устанавливается в 1. В случае попадания в КЭШ при значении бита достоверности равным 1 данные берутся из КЭШ- памяти и обращение к DRAM не производится.

В начале цикла записи работа подсистемы памяти (КЭШ+DRAM) не отличается от цикла чтения. В случае промаха запись осуществляется сразу в строку DRAM, в случае попадания - в строку КЭШ (без изменения содержимого Tag соответствующей строки) и с установкой в 1 бита модифицируемости M строки КЭШ. Однако при этом нарушается согласованность (когерентность) данных в КЭШ и DRAM, что может привести к сбою работы всей системы и ККП должен выровнять содержимое КЭШ и DRAM до следующего обращения к этой строке DRAM. Поведение ККП в этом случае определяется его политикой записи.

Существуют два основных алгоритма записи данных из КЭШ - памяти в основную: сквозная запись WT (Write Through) и обратная (отложенная) запись WB (Write Back).

Алгоритм WT предусматривает выполнение каждой операции записи сразу и в КЭШ память и в DRAM. При этом каждая операция записи равносильна записи в DRAM и использование КЭШ- памяти не даёт никакого выигрыша при операциях записи (бит М в этом случае в составе КЭШ не используется).

При алгоритме WB запись со стороны процессора осуществляется только в строку КЭШ, при этом бит М устанавливается в 1, т. е. соответствующая строка в КЭШ отмечается как модифицированная или грязная, т. е. требующей записи в основную память. После копирования в DRAM строка становится чистой и бит М снова устанавливается в 0.

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

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

Для устранения такой возможности адрес изменяемой строки DRAM при захвате шины другим ведущим передаётся в КЭШ второго (L2) и первого (L1) уровней. При этом процессор, находящийся в состоянии захвата его шины отслеживает адреса изменённых строк DRAM и в результате устанавливает биты их достоверности V в ноль.

 

 




Поиск по сайту:

©2015-2020 studopedya.ru Все права принадлежат авторам размещенных материалов.