СКИПОДы конспект лекций (1127769), страница 6
Текст из файла (страница 6)
В много-уровневых кэшах элементами связки: "процессор - основнаяпамять" могут выступать сами кеши. Алгоритм кэширования состоит в следующем:1. По каждому запросу процессора происходит поиск требуемого данного в кэш памяти (места для записигенерируемого данного).2. Если данное (место) есть в кэше - кэш попадание (cache hit), то оно передается в процессор (изпроцессора).3.
Если нужного данного нет в кэше - кэш промах (cache miss), данное из основной памяти пересылается вкэш память, и передаются также процессору. При переполнении кэша (нет места для записи), из негоудаляются (модифицированные данные сохраняются в основной памяти) часть данных, обычно, наименеевостребованные.Традиционным кэшем является "процессорный" кэш или кэш первого уровня (первичный) или кэш (L1Cache), имеющийся на любом микропроцессоре.
Это буферная память объемом от 4 Кбайт до 16 Мбайт, вкоторой размещаются все данные, адресуемые процессором, и из которой данные поставляются процессору.Эта память значительно быстрее основной, но меньшего объема, поэтому механизм кэшированияобеспечивает обновление кэша, обычно, сохраняя в нем только наиболее часто употребляемые данные.Обмен между основной и кэш памятями производится квантами, объемами 4 - 128 байт - копируются"строки кэша" (cache line), содержащие адресуемое данное.Обычно, программный код кешируется через особый, I кэш память, отделенной от кэша данных D-кэша.Выборка данных из кэша (hit time) прозводится, обычно, за один такт синхронизации (оценки 1 - 4 такта),потери при кеш промахе оцениваются в 8 - 32 такта синхронизации, доля промахов (miss rate) - 1% -20%.
Поопределению, эффект кэширования основан на предположении о многократном использовании данных(Data reuse) из кэш памяти. Принято различать две формы многократного использования данных кэша:временное использование (temporal reuse). - пространственное использование (spatial reuse). Временноеиспользование означает, что некоторое данное, загруженные в кэш, может использоваться, по крайней мере,более двух раз. Пространственное использование кэша предполагает возможность использовать некоторый12пространственный набор данных - строки кэша.
Архитектура кэш памяти: полностью ассоциативная,частично ассоциативная и кэш память с прямым отображением.Для согласования содержимого кэш-памяти и оперативной памяти используют три метода записи: Сквозная запись (write through) - одновременно с кэш-памятью обновляется оперативная память. Буферизованная сквозная запись (buffered write through) - информация задерживается в кэш-буфереперед записью в оперативную память и переписывается в оперативную память в те циклы, когда ЦПк ней не обращается. Обратная запись (write back) - используется бит изменения в поле тега, и строка переписывается воперативную память только в том случае, если бит изменения равен 1.Как правило, все методы записи, кроме сквозной, позволяют для увеличения производительностиоткладывать и группировать операции записи в оперативную память.В структуре кэш-памяти выделяют два типа блоков данных: память отображения данных (собственно сами данные, дублированные из оперативной памяти); память тегов (признаки, указывающие на расположение кэшированных данных в оперативнойпамяти).Пространство памяти отображения данных в кэше разбивается на строки - блоки фиксированной длины(например, 32, 64 или 128 байт).
Каждая строка кэша может содержать непрерывный выровненный блокбайт из оперативной памяти. Какой именно блок оперативной памяти отображен на данную строку кэша,определяется тегом строки и алгоритмом отображения. По алгоритмам отображения оперативной памяти вкэш выделяют три типа кэш-памяти: полностью ассоциативный кэш; кэш прямого отображения; множественный ассоциативный кэш.15. Полностью ассоциативная кэш-память.http://www.intuit.ru/department/hardware/csorg/9/2.htmlДля полностью ассоциативного кэша характерно, что кэш-контроллер может поместить любой блокоперативной памяти в любую строку кэш-памяти (рис.). В этом случае физический адрес разбивается на двечасти: смещение в блоке (строке кэша) и номер блока. При помещении блока в кэш номер блока сохраняетсяв теге соответствующей строки.
Когда ЦП обращается к кэшу за необходимым блоком, кэш-промах будетобнаружен только после сравнения тегов всех строк с номером блока.Одно из основных достоинств данного способа отображения - хорошая утилизация оперативной памяти, т.к.нет ограничений на то, какой блок может быть отображен на ту или иную строку кэш-памяти. Кнедостаткам следует отнести сложную аппаратную реализацию этого способа, требующую большогоколичества схемотехники (в основном компараторов), что приводит к увеличению времени доступа ктакому кэшу и увеличению его стоимости.16. Кэш-память с прямым отображением.Альтернативный способ отображения оперативной памяти в кэш - это кэш прямого отображения (илиодновходовый ассоциативный кэш).
В этом случае адрес памяти (номер блока) однозначно определяетстроку кэша, в которую будет помещен данный блок. Физический адрес разбивается на три части: смещениев блоке (строке кэша), номер строки кэша и тег. Тот или иной блок будет всегда помещаться в строгоопределенную строку кэша, при необходимости заменяя собой хранящийся там другой блок. Когда ЦПобращается к кэшу за необходимым блоком, для определения удачного обращения или кэш-промахадостаточно проверить тег лишь одной строки.Очевидными преимуществами данного алгоритма являются простота и дешевизна реализации. Кнедостаткам следует отнести низкую эффективность такого кэша из-за вероятных частых перезагрузок13строк.
Например, при обращении к каждой 64-й ячейке памяти в системе на рис. 9.2 кэш-контроллер будетвынужден постоянно перегружать одну и ту же строку кэш-памяти, совершенно не задействовав остальные.Пример:Если объем ОЗУ – 4 Гбайт, тогда полный адрес - 32 бита можно представить в виде полей: 20 рр. – тэг (T), 7рр – номер строки таблиц кэша (S), 5 рр – номер байта в строке (N). Поиск запрошенного байта (T-S-N) вкэше с прямым распределением производится так:1. Из памяти данных и памяти тэгов кэша одновременно считываются S-ные строки.2. Если содержимое считанной строки памяти тэгов равно Т – кэш попадание, это значит, что считанная Sстрока памяти данных кэша содержит запрашиваемый байт и его номер в строке есть N.3. Если содержимое считанной строки памяти тэгов не равно Т – кэш промах, и тогда T-S строка ОЗУпереписывается в S строку памяти данных кэша, а Т записывается в S строку памяти тэгов.
Затем, см по п.1.17. Частично ассоциативная кэш-память.См. также Вопросы 15, 16. Компромиссным вариантом между первыми двумя алгоритмами являетсямножественный ассоциативный кэш или частично-ассоциативный кэш (рис.). При этом способе организациикэш-памяти строки объединяются в группы, в которые могут входить 2, 4, 8, и т.д. строк.
В соответствии сколичеством строк в таких группах различают 2-входовый, 4-входовый и т.п. ассоциативный кэш. Приобращении к памяти физический адрес разбивается на три части: смещение в блоке (строке кэша), номергруппы (набора) и тег. Блок памяти, адрес которого соответствует определенной группе, может бытьразмещен в любой строке этой группы, и в теге строки размещается соответствующее значение.
Очевидно,что в рамках выбранной группы соблюдается принцип ассоциативности. С другой стороны, тот или инойблок может попасть только в строго определенную группу, что перекликается с принципом организациикэша прямого отображения. Для того чтобы процессор смог идентифицировать кэш-промах, ему надо будетпроверить теги лишь одной группы (2/4/8/… строк).18. Дисциплина обновления кэш-памяти.Стратегии обновления данных в кэш смотрите в Вопросе 19. Далее рассматриваются стратегии обновленияданных в памяти по обновления данных процессором.WriteBackВ схеме обновления с обратной записью используется бит "изменения" в поле тэга. Этот битустанавливается, если блок был обновлен новыми данными и является более поздним, чем его оригинальнаякопия в основной памяти.
Перед тем как записать блок из основной памяти в кэш-память, контроллерпроверяет состояние этого бита. Если он установлен, то контроллер переписывает данный блок в основнуюпамять перед загрузкой новых данных в кэш-память (то есть только тогда, когда уже не нужны обновленныеданные в кэш и они замещаются).14Обратная запись быстрее сквозной, так как обычно число случаев, когда блок изменяется и должен бытьпереписан в основную память, меньше числа случаев, когда эти блоки считываются и перезаписываются.Однако обратная запись имеет несколько недостатков.