Материал: А. Д. Чередов, А. Н. Мальчуков

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам




ОЗУ
группа


а


b


с


d

5 е



Массив тегов
b a b b b c b d


Шифратор совпадений/ несовпадений

0 1 0 0

01 2

0

V2


V3


Массив данных




V4






4

5



Мультиплексор / демультиплексор
01

V2 Данные

считывания/записи
Рис. 4.6. Структура кэш-памяти с частично ассоциативным распределением
      1. 1   ...   60   61   62   63   64   65   66   67   ...   76

Методы обновления строк основной памяти и кэша


В табл. 5.1 приведены условия сохранения и обновления информа- ции в ячейках кэш-памяти и основной памяти.

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

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

Таблица 4.1 Условия сохранения и обновления информации


Режим работы

Наличие копии ячейки ОП

в кэш-памяти

Информация

В ячейке

кэш-памяти

В ячейке

основной памяти

Чтение

Копия есть. Копии нет

Не изменяется.

Обновляется (создается копия)

Не изменяется. Не изменяется

Сквозная

запись

Копия есть.

Копии нет

Обновляется.

Не изменяется

Обновляется.

Обновляется

Обратная запись

Копия есть. Копии нет

Обновляется. Создается копия.

Обновляется

Не изменяется. Не изменяется



Сквозная запись


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

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

Обратная запись


По методу обратной записи, если адрес объектов, по которым есть запрос обновления, существует в кэш-памяти, то обновляется только кэш-память, а основная память не обновляется. Если адреса объекта об- новления нет в кэш-памяти, то в неё из основной памяти пересылается строка, содержащая этот адрес, после чего обновляется только кэш- память. По методу обратной записи, в случае замены строк, удаляемую строку необходимо также пересылать в основную память. У этого мето- да существуют две разновидности: метод SWB (простая обратная за- пись), по которому удаляемая строка возвращается в основную память, и метод FWB (флаговая обратная запись), по которому в основную па- мять записывается только обновлённая строка кэш-памяти. В последнем случае каждая область строки в кэш-памяти снабжается однобитовым флагом, который показывает, было или нет обновление строки, храня- щейся в кэш-памяти. Метод FWB обладает достаточной эффективно- стью, однако более эффективным считается метод FPWB (флаговая ре- гистровая обратная запись), в котором, благодаря размещению буфера между кэш-памятью и основной памятью, предотвращается конфликт между удалением и выборкой строк.

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


Способ определения строки, удаляемой из кэш-памяти, называется стратегией замещения. Для замещения строк кэш-памяти существует несколько методов:

    • замещение строки, к которой наиболее длительное время не было обращения (метод LRU);

    • замещение строки, загруженной в кэш-память первой (метод FIFO);

    • произвольное замещение.

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

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

      1. Многоуровневая организация кэша


Предельно достижимая ёмкость кэш-памяти ограничена не только её ценой, но и электромагнитной интерференцией, налагающей жёсткие ограничения на максимально возможное количество адресных линий, а значит – на непосредственно адресуемый объём памяти. В принципе, можно прибегнуть к мультиплексированию выводов или последова-
Источник: https://files.student-it.ru/previewfile/151041