
ЭВУ 2 семестр / Презентации ЭВУ в пдф / Кэширование 2
.pdf
Кэш прямого отображения
ПРИНЦИП
В начале каждого обращения к кэшируемой памяти контроллер первым делом считывает ячейку каталога с соответствующим индексом, сравнивает биты адреса тега со старшими
битами адреса памяти и анализирует признак
действительности.
Этот анализ выполняется в специальном цикле слежения, который иногда называют циклом запроса. Если в результате анализа выясняется, что требуемого блока нет в кэше,
генерируется цикл обращения к основной памяти
-кэш-промах.
Вслучае попадания запрос обслуживается кэш-памятью.
•Физический факультет, ЭВУ и системы, 7 семестр,2013 Доцент Моховиков А..Ю. Physics Faculty, Electronic Devices & Systems, 7th semester,2013 Dr. Mokhovikov

Кэш прямого отображения
ПРИНЦИП
В случае промаха после считывания основной памяти приемником информации новые данные помещаются в строку кэша при условии, что она чистая, а в ее тег помещаются старшие биты
адреса и устанавливается признак
действительности данных. Независимо от объема затребованных данных в кэш из основной памяти строка переписывается вся целиком.
Если контроллер кэша реализует упреждающее считывание, то в последующие
свободные циклы шины обновляется также
следующая строка, при условии, что она была чистой.
Чтение "про запас" позволяет при необходимости осуществлять пакетный цикл чтения из кэша через границу строки.
•Физический факультет, ЭВУ и системы, 7 семестр,2013 Доцент Моховиков А..Ю. Physics Faculty, Electronic Devices & Systems, 7th semester,2013 Dr. Mokhovikov

Кэш прямого отображения
Рассмотрим на примере несекторированного кэша объемом 256 Кбайт с размером строки 32 байта и объемом кэшируемой основной памяти
64 Мбайт.
Кэшируемая основная память условно разбивается
на страницы (в данном случае по 256 Кбайт), размер которых совпадает с размером кэшпамяти(256 Кбайт).
Кэш-память делится на строки :
(256 Кбайт/32 байт = 8к строк).
Архитектура прямого отображения подразумевает, что каждая строка кэша может отображать из любой страницы кэшируемой памяти только соответствующую ей строку (на рис. они находятся на одном горизонтальном уровне).
•Физический факультет, ЭВУ и системы, 7 семестр,2013 Доцент Моховиков А..Ю. Physics Faculty, Electronic Devices & Systems, 7th semester,2013 Dr. Mokhovikov

Кэш прямого отображения
Поскольку объем основной памяти больше объема кэша, на каждую строку кэша может претендовать множество блоков памяти с одинаковой младшей частью адреса (смещение внутри страницы). Одна строка в определенный момент может, естественно, содержать копию только одного из этих блоков.
Номер (адрес) строки в кэш-памяти - это Index.
Тег несет информацию о том, какой именно
блок занимает данную строку (т.е. старшая
часть адреса или номер страницы).
Память тегов должна иметь количество ячеек, равное количеству строк кэша, а ее разрядность должна быть достаточной, чтобы вместить старшие биты адреса кэшируемой памяти, не попавшие на шину адреса кэшпамяти.
Кроме адресной части тега, с каждой строкой кэша связаны биты признаков
действительности и модифицированности данных.
•Физический факультет, ЭВУ и системы, 7 семестр,2013 Доцент Моховиков А..Ю. Physics Faculty, Electronic Devices & Systems, 7th semester,2013 Dr. Mokhovikov

Кэш прямого отображения
Такой кэш имеет самую простую аппаратную реализацию и применяется в Cache L2.
Однако ему присущ серьезный недостаток:
Если в процессе выполнения программы процессору поочередно будут требоваться блоки памяти, смещенные относительно друг друга на величину, кратную размеру страницы (на рисунке эти блоки расположены на одной горизонтали в разных страницах), то кэш будет "буксовать" - работать интенсивно, но вхолостую.
Очередное обращение будет замещать данные, считанные в предыдущем и
необходимые в последующем обращении, т.е. будет иметь место сплошная череда
кэш-промахов.
•Физический факультет, ЭВУ и системы, 7 семестр,2013 Доцент Моховиков А..Ю. Physics Faculty, Electronic Devices & Systems, 7th semester,2013 Dr. Mokhovikov

Кэш прямого отображения
Увеличение размера кэша при сохранении архитектуры прямого отображения даст не очень существенный эффект, поскольку разные задачи будут претендовать на одни и те же строки кэша.
Объем кэшируемой памяти (Mcached) при архитектуре прямого отображения
определяется объемом кэш-памяти (Vcache) и разрядностью памяти тегов (N):
Mcached = Vcache ˟ 2N.
В нашем примере:
Mcached = 256 Кбайт ˟ 28 = 64 Мбайт.
•Физический факультет, ЭВУ и системы, 7 семестр,2013 Доцент Моховиков А..Ю. Physics Faculty, Electronic Devices & Systems, 7th semester,2013 Dr. Mokhovikov

Наборно-ассоциативный кэш
Наборно-ассоциативная архитектура кэша позволяет каждому блоку кэшируемой памяти претендовать на одну из нескольких строк кэша, объединенных в набор (set). Можно считать, что в этой архитектуре есть несколько параллельно и согласованно работающих каналов прямого отображения, где контроллеру кэша приходится принимать решение о том, в какую из строк набора помещать очередной
блок данных.
В простейшем случае каждый блок памяти может помещаться в одну из двух строк (Two Way SetAssociative Cache – двухканальный наборно-ассоциативный кэш).
Такой кэш должен содержать два банка памяти тегов.
Номер набора (индекс), в котором может отображаться затребованный блок данных, однозначно определяется средней частью адреса (как номер строки в кэше прямого отображения). Строка набора,
отображающая требуемый блок, определяется сравнением тегов (как и в ассоциативном кэше), параллельно выполняемым для всех каналов кэша.
•Физический факультет, ЭВУ и системы, 7 семестр,2013 Доцент Моховиков А..Ю. Physics Faculty, Electronic Devices & Systems, 7th semester,2013 Dr. Mokhovikov

Наборно-ассоциативный кэш
Поэтому полностью ассоциативный кэш используется редко и только на уровне L1.
Как обычно, более приемлемым техническим решением оказывается сочетание механизма прямого отображения и ассоциативного поиска.
Именно так и организован наборноассоциативный кэш, двухканальный (two ways) вариант которого показан на рисунке.
Как видно, этот кэш, по сути, представляет собой сдвоенный кэш прямого отображения.
Каждый банк кэш-памяти в паре со связанным с ним одним блоком тэговой памяти работает по схеме кэша прямого отображения.
Однако наличие двух банков позволяет размещать в двухканальной наборноассоциативной кэш памяти сразу две строки, расположенные одинаково по отношению к границам двух различных страниц кэшируемой памяти.
•Физический факультет, ЭВУ и системы, 7 семестр,2013 Доцент Моховиков А..Ю. Physics Faculty, Electronic Devices & Systems, 7th semester,2013 Dr. Mokhovikov

Наборно-ассоциативный кэш
Например, на рис. в строках банков кэш-памяти, имеющих индекс 1, размещены строки с этим же индексом из 17-й и 255-й страниц кэшируемой памяти.
При обращении к памяти поиск нужной строки в кэше выполняется точно так же, как и в кэшпамяти прямого отображения, только этот поиск производится сразу для двух банков (точнее, в двух блоках тэговой памяти).
Собственно в этом и заключается все, что можно отнести к термину “ассоциативный” в названии этого типа памяти.
Однако это различие оказывается достаточным, чтобы заметно повысить вероятность нахождения в кэше нужной информации и производительность памяти в целом.
•Физический факультет, ЭВУ и системы, 7 семестр,2013 Доцент Моховиков А..Ю. Physics Faculty, Electronic Devices & Systems, 7th semester,2013 Dr. Mokhovikov

Наборно-ассоциативный кэш
Есть еще один блок – “флаги обращения”, который отсутствовал в кэш-памяти прямого отображения.
Этот блок используется для решения второй из задач управления кэш-памятью: определением той строки, которую приходится удалять при необходимости ввода в кэш новой строки и отсутствии в нем свободного места.
В кэш-памяти прямого отображения такую задачу решать не приходилось, т.к место для размещения любой строки определялось однозначно и при вводе новой строки удалялась информация, которая ранее на этом месте располагалась.
•Физический факультет, ЭВУ и системы, 7 семестр,2013 Доцент Моховиков А..Ю. Physics Faculty, Electronic Devices & Systems, 7th semester,2013 Dr. Mokhovikov