КЭШ память МП и способы организации

Автор: Пользователь скрыл имя, 11 Ноября 2010 в 14:03, реферат

Краткое описание

Кэш-память, состоящая из “m” слов, сохраняет копии не менее, чем “m”-слов из всех слов основной памяти. Если копия, к адресу которой был выполнен доступ ЦП, существует в кэш-памяти, то считывание завершается уже при доступе
к кэш-памяти. Отметим, что использование кэш-памяти основывается на принципах пространственной и временной локальности. В случае пространственной локальности основная память разбивается на блоки с фиксированным числом слов и обмен данными между основной памятью и кэш-памятью выполняется блоками. При доступе к некоторому адресу центральный процессор должен сначала определить содержит ли кэш-память копию блока с указанным адресом, и если имеется, то определить, с какого адреса кэш-памяти начинается этот блок. Эту информацию ЦП получает с помощью механизма преобразования адресов.

Оглавление

•Кэш-память
•Введение
•Причины внедрения кэш-памяти
•Что такое кэш-память?
•Внутренний кэш
•Смешанная и разделенная кэш-память
•Статическая и динамическая память
•TLB как разновидность кэш-памяти
•Организация кэш-памяти
•Стратегия размещения
•Отображение секторов ОП в кэш-памяти
•Иерархическая модель кэш-памяти
•Ассоциативность кэш-памяти
•Размер строки и тега кэш-памяти
•Типы подключения кэш-памяти
•Сегментирование кэш-памяти и быстродействие жестких дисков
•Увеличение производительности кэш-памяти
•Зачем увеличивать кэш?
•Выводы

Файлы: 1 файл

Реферат на тему КЭШ-памят.doc

— 216.00 Кб (Скачать)

    Управление  заполнением кэша возможно и на аппаратном и на программном уровнях. Процессор  позволяет кэшировать любую область  физической памяти. Внешние схемы могут запрещать процессору кэшировать определенные области памяти установкой высокого уровня сигнала KEN# во время циклов доступа к этим областям памяти. Этот сигнал управляет только возможностью заполнения строк кэша из адресованной области памяти. Программно можно управлять кэшируемостью каждой страницы памяти – запрещать единичным значением бита PCD (Page Cache Disable) в таблице или каталоге страниц. Для процессоров с WB-кэшем бит PWT (Page Write Through) позволяет постранично управлять и алгоритмом записи. Общее программное управление кэшированием осуществляется посредством бит управляющего регистра CR0:CD (Cache Disable) и NW (No Write Through). Возможны следующие сочетания бит регистра:

  • CD=1, NW=1 – если после установки такого значения выполнить очистку кэша, кэш будет полностью отключен. Если же перед установкой этого сочетания бит кэша был заполнен, а очистка не производилась, кэш превращается в “замороженную” область статической памяти;
  • CD=1, CW=0 – заполнение кэша запрещено, но сквозная запись разрешена. Эффект аналогичен временному переводу сигнала KEN# в высокое (пассивное) состояние. Этот режим может использоваться для временного отключения кэша, после которого возможно его включение без очистки;
  • CD=0, NW=1 – запрещенная комбинация (вызывает отказ общей защиты);
  • CD=0, NW=0 – нормальный режим работы со сквозной записью.

    Для полного запрета кэша необходимо установить CD=1 и NW=1, после чего выполнить очистку (Flush). Без очистки кэш будет обслуживать запросы в случае попаданий.

    Процессоры 486 и старше имеют выходные сигналы  PCD и PWT, управляющие работой вторичного (внешнего) кэша (они же управляют и внутренним кэшем). В циклах обращения к памяти, когда страничные преобразования не используются (например, при обращении к таблице каталогов страниц), источником сигналов являются биты PCD и PWT регистра CR3, при обращении к каталогу страниц – биты PCD и PWT из дескриптора соответствующего вхождения каталога, при обращении к самим данным – биты PCD и PWT из дескриптора страницы. Кроме того, оба этих сигнала могут принудительно устанавливаться общими битами управления кэшированием CD и NW регистра CRO.

    Режим обратной записи может разрешаться  только аппаратно сигналом WB/WT#, вырабатываемым внешними схемами.

    В пространстве памяти РС имеются области, для которых кэширование принципиально недопустимо (например, разделяемая память адаптеров) или непригодна политика обратной записи. Кроме того, кэширование иногда полезно отключать при выполнении однократно исполняемых участков программы (например, инициализации) с тем,  чтобы из кэша не вытиснялись более часто используемые фрагменты. Напомним, что запретить можно только заполнение строк, а обращение к памяти, уже представленной действительными строками кэша, все равно будет обслуживаться из кэша. Для полного запрета работы кэша строки должны быть аннулированы.

    Программно  при включенном режиме страничного  преобразования кэшированием управляют  биты атрибутов страниц (на уровне таблицы  страниц и их каталога), биты PCD и PWT регистра CR3, и, наконец, глобально кэшированием управляют биты CD и NW регистра CR0.

    Аппаратно (сигналом KEN#) внешние схемы могут управлять кэшированием (разрешать заполнение строк) для каждого конкретного адреса обращения к физической памяти.

   Смешанная и разделенная кэш-память.

 

   Внутренняя  кэш-память использовалась ранее как  для инструкций(команд), так и  для данных. Такая память называлась смешанной, а ее архитектура –  Принстонской, в которой в единой кэш-памяти, в соответствии с классическими  принципами фон Неймана, хранились и команды и данные.

   Сравнительно  недавно стало обычным разделять  кэш-память на две – отдельно для  инструкций и отдельно для данных.

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

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

   Так,например, в процессоре Intel® 486 DX2 применялась смешанная кэш-память,

   В  Intel® Pentium®  и в AMD Athlon™ с их суперскалярной организацией – раздельная. Более того, в этих процессорах помимо кэш-памяти инструкций и кэш-памяти данных используется также и адресная кэш-память. Этот вид кэша используется в устройствах управления памятью, в том числе для преобразования виртуальных адресов в физические.

Благодаря использованию  нанотехнологий, для снижения потребляемой мощности, увеличения быстродействия ЭВМ( что достигается сокращением  времени обмена данными между  процессором и кэш-памятью) существует возможность, а более того имеются реальные примеры того, что кэш-память реализуют в одном кристале с процессором. Такая внутренняя кэш-память реализуется по технологии статического ОЗУ и является наиболее быстродействующей. Объем ее обычно составляет 64-128 Кбайт, причем дальнейшее увеличение ее объема приводит обычно к снижению быстродействия из-за усложнения схем управления и дешифрации адреса.

     Альтернативой, широко применяемой  в настоящее время, является  вторая (внешняя) кэш-память большего  объема, расположенная между внутренней кэш-памятью и ОП. В этой двухуровневой системе кэш-памяти, внутренней памяти отводится роль первого уровня  L1, а внешней - второго L2. емкость L2 обычно на порядок и более выше, чем L1, а быстродействие и стоимость ниже. Память второго уровня также строится обычно как статическое ОЗУ. Емкость ее может составлять от 256 Кбайт до 1 Мбайта и технически реализуется как в виде отдельной микросхемы, однако может размещаться и на одном кристалле с процессором.                                                                           

     Самые современные процессоры  от крупнейших производителей  оснащаются сегодня кэш-памятью  емкостью у Intel  Pentium 4 на ядре Northwood - 512 Кбайт кэш-памяти L2, а процессоры Prescott будут выпускаться по 0,09-микронной технологии и получат кэш-память второго уровня удвоенного объема, который составит 1 Мбайт. Intel продолжает широко рекламировать свой "экстремальный" игровой процессор Pentium 4 Extreme Edition на основе модифицированного серверного ядра Gallatin с тактовой частотой 3,40 ГГц и кэш-памятью третьего уровня объемом 2 Мбайта.  Она дополняет стандартный нортвудовский кэш L2 512 Кбайт и тоже работает на частоте ядра процессора (правда, с большей раза в два латентностью). Таким образом, в сумме новый Pentium 4 Extreme Edition имеет кэш-память объемом 2,5 Мбайт.                                                                              

   Дополнительная  кэш-память третьего уровня ведет начало от серверных процессоров Xeon MP на 0,13-микронном ядре Gallatin и не имеет ничего общего с грядущим 90-нанометровым Prescott, однако этот кристалл (ядро) все же немного переработали с целью поддержки системной шины 800 МГц, уменьшения энергопотребления и др. и упаковали в стандартный корпус от текущих Pentium 4.                                                                                               В свою очередь AMD Athlon 64 и AMD Opteron работающие на более высокой частоте 2200 МГц, производятся по 0,13-микронной технологии (SOI) и содержат 105,9 млн. транзисторов и отличаются от предшествующих Athlon XP новым ядром с 64-битными возможностями вычислений (наряду с улучшенными 32-битными на базе прежнего ядра Athlon XP), кэш-памятью второго уровня объемом 1 Мбайт (причем кэш у Атлонов инклюзивный, то есть полный объем с учетом 128 Кбайт L1 составляет 1152 Кбайт).

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

   Потенциальная экономия за счет применения L2 зависит от вероятности попаданий как в L1, так и L2. Однако, опыт  Intel и AMD показывает, что использование кэш-памяти второго уровня существенно улучшает производительность. Именно поэтому во всех проанонсированых производителями новейших версиях процессоров применяется двухуровневая и даже трехуровневая организация кэш-памяти.  

Статическая и динамическая память. 

     В каждом современном ЦП предусмотрено  некоторое количество статической  памяти, работающей на частоте ядра. Именно статической, поскольку использование  динамической памяти в этих целях представляется крайне нерациональным.

     Одна  ячейка статической памяти состоит  из шести транзисторов и двух резисторов (для техпроцессов с проектными нормами  до 0,5 мкм могли быть использованы только четыре транзистора на одну ячейку, с дополнительным слоем поликремния и с более жесткими ограничениями по максимальной тактовой частоте), в то время как аналогичная структура динамической памяти состоит из одного транзистора и одного конденсатора.

     Быстродействие  статической памяти намного выше (емкость, используемая в динамической памяти, имеет определенную скорость зарядки до требуемого уровня, определяющую "частотный потолок"), но из-за большего количества составляющих элементов она существенно дороже в производстве и отличается более высоким энергопотреблением. Битовое значение ячейки статической памяти характеризуется состоянием затворов транзисторов, а динамической - уровнем заряда конденсатора. Так как конденсаторы имеют свойство с течением времени разряжаться, то для поддержания их состояния требуется регулярная перезарядка (для современных микросхем динамической памяти - приблизительно 15 раз в секунду). Кроме того, при операции чтения из ячейки динамической памяти конденсатор разряжается, т. е. ячейка утрачивает свой первоначальный заряд, а следовательно должна быть перезаряжена.

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

TLB как разновидность кэш-памяти. 

     Почти все современные ЦП обладают TLB (Translation Look-aside Buffers, вспомогательные буфера преобразования). Своим существованием они обязаны тому факту, что ЦП в работе используют преимущественно виртуальные адреса оперативной памяти, в то время как контроллеры оперативной и кэш-памяти работают преимущественно с реальными адресами. Для того чтобы не вычислять при каждом обращении к памяти реальный адрес из виртуального, в ЦП присутствуют таблицы соответствия виртуальных адресов страниц памяти реальным. Как правило, их объем невелик (от единиц до сотен записей), но этого вполне достаточно, поскольку часто запрашиваемые данные или команды обычно хорошо локализуются в пределах страницы памяти размером 4 или 8 Кбайт.

     Что же происходит, если запрашиваемого реального  адреса какой-либо страницы не находится  в TLB?

     A-box ЦП отрабатывает специальный вызов (exception trap), на который ОС должна адекватно отреагировать, т. е. произвести поиск нужной страницы в своих таблицах подсистемы виртуальной памяти. Если в процессе поиска окажется, что указанная страница находится в файле или разделе подкачки, то она должна незамедлительно быть оттуда считана в оперативную память. В итоге А-box ЦП получит реальный адрес нужной страницы памяти и процесс пойдет своим путем.

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

Организация кэш-памяти. 

     Концепция кэш-памяти возникла раньше чем архитектура  IBM/360, и сегодня кэш-память имеется практически в любом классе компьютеров, а в некоторых компьютерах - во множественном числе.  

 

Рис. 2. Типовые значения ключевых параметров для кэш-памяти рабочих станций и серверов 

     Все термины, которые были определены раньше могут быть использованы и для  кэш-памяти, хотя слово "строка" (line) часто употребляется вместо слова "блок" (block).

     На  рисунке 2 представлен типичный набор параметров, который используется для описания кэш-памяти.  

Информация о работе КЭШ память МП и способы организации