Выбор рационального количества уровней и объема кэш-памяти

Автор работы: Пользователь скрыл имя, 18 Июня 2013 в 20:12, контрольная работа

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

Явная необходимость в кэш-памяти при проектировании массовых ЦП проявилась в начале 1990-х гг., когда тактовые частоты ЦП значительно превысили частоты системных шин, и, в частности, шины памяти. В настоящее время частоты серверных ЦП достигают почти 4 ГГц, а оперативной памяти, массово применяемой в серверах, - только 400 МГц (200 МГц с удвоением благодаря передаче по обоим фронтам сигнала). В этой ситуации при прямом обращении к памяти функциональные устройства ЦП значительную часть времени простаивают, ожидая доставки данных. В какой-то мере проблемы быстродействия оперативной памяти могут быть решены увеличением разрядности шины памяти, но даже в серверах младшего уровня нередко встречается 8-16 гнезд для модулей памяти, поэтому такое решение усложняет дизайн системной платы

Содержание

Введение: причины внедрения кэш-памяти. - 3
Что такое кэш-память? - 3
Иерархия запоминающих устройств. - 4
Кэширование данных. - 5
Уровни кэш памяти процесса. - 18
Увеличение производительности кэш-памяти. - 20
Зачем увеличивать кэш? - 21
Выводы. - 21
Список использованных материалов. - 23

Вложенные файлы: 1 файл

Документ Microsoft Office Word (3).docx

— 734.50 Кб (Скачать файл)

 

 

 

 

 

Контрольная работа по ВССиТ на тему: Выбор рационального количества уровней и объема кэш-памяти.           

 

 

 

 

 

 

 

 

 

 

 

 

 выполнила  студентка

группы  зкм-101

Тимижева С.М.

 

План.

Введение: причины внедрения кэш-памяти. - 3

Что такое кэш-память? - 3

Иерархия запоминающих устройств. - 4

Кэширование данных. - 5

Уровни кэш памяти процесса. - 18

Увеличение производительности кэш-памяти. - 20

Зачем увеличивать кэш? - 21

Выводы. - 21

Список использованных материалов. - 23

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Причины внедрения кэш-памяти.

Явная необходимость  в кэш-памяти при проектировании массовых ЦП проявилась в начале 1990-х гг., когда тактовые частоты ЦП значительно превысили частоты системных шин, и, в частности, шины памяти. В настоящее время частоты серверных ЦП достигают почти 4 ГГц, а оперативной памяти, массово применяемой в серверах, - только 400 МГц (200 МГц с удвоением благодаря передаче по обоим фронтам сигнала). В этой ситуации при прямом обращении к памяти функциональные устройства ЦП значительную часть времени простаивают, ожидая доставки данных. В какой-то мере проблемы быстродействия оперативной памяти могут быть решены увеличением разрядности шины памяти, но даже в серверах младшего уровня нередко встречается 8-16 гнезд для модулей памяти, поэтому такое решение усложняет дизайн системной платы. Проложить же 256- или даже 512-бит шину к расположенной внутри кристалла ЦП кэш-памяти сравнительно несложно. Таким образом, эффективной альтернативы кэш-памяти в современных высокопроизводительных системах не существует.

                                          Что такое кэш-память?

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

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

Компьютеры хранят данные в аналогичной иерархии. Когда приложение начинает работать, данные и команды переносятся с медленного жесткого диска в оперативную память произвольного доступа (Dynamic Random Access Memory — DRAM), откуда процессор может быстро их получить. Оперативная память выполняет роль кэша для жесткого диска.

 

                            

                               Иерархия запоминающих устройств.

 

Память вычислительной машины представляет собой иерархию запоминающих устройств (ЗУ), отличающихся средним  временем доступа к данным, объемом  и стоимостью хранения одного бита (рис. 5.24). Фундаментом этой пирамиды запоминающих устройств служит внешняя память, как правило, представляемая жестким диском. Она имеет большой объем (десятки и сотни гигабайт), но скорость доступа к данным является невысокой. Время доступа к диску измеряется миллисекундами.

На следующем уровне располагается  более быстродействующая (время  доступаравно примерно 10-20 наносекундам) и менее объемная (от десятков мегабайт до нескольких гигабайт) оперативная память, реализуемая на относительно медленной динамической памяти DRAM.

Кэш-память построена на триггерах, которые, в свою очередь, состоят из транзисторов. Группа транзисторов занимает гораздо больше места, нежели те же самые конденсаторы, из которых  состоит оперативная память. Это тянет за собой множество трудностей в производстве, а также ограничения в объёмах. Именно поэтому кэш память является очень дорогой памятью, при этом обладая ничтожными объёмами. Но из такой структуры, вытекает главное преимущество такой памяти – скорость. Так как триггеры не нуждаются в регенерации, а время задержки вентиля, на которых они собраны, невелико, то время переключения триггера из одного состояния в другое происходит очень быстро. Это и позволяет кэш-памяти работать на таких же частотах, что и современные процессоры.

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

 

 Все перечисленные  характеристики ЗУ быстро изменяются  по мере совершенствования вычислительной  аппаратуры. В данном случае важны  не абсолютные значения времени  доступа или объема памяти, а  их соотношение для разных типов запоминающих устройств.

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

Рис. 5.24. Иерархия запоминающих устройств

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

Кэш-память, или просто кэш (cache), — это способ совместного функционирования двух типов запоминающих устройств, отличающихся временем доступа и стоимостью хранения данных, который за счет динамического копирования в «быстрое» ЗУ наиболее часто используемой информации из «медленного» ЗУ позволяет, с одной стороны, уменьшить среднее время доступа к данным, а с другой стороны, экономить более дорогую быстродействующую память.

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

Кэш-памятью, или кэшем, часто называют не только способ организации работы двух типов запоминающих устройств, но и одно из устройств — «быстрое» ЗУ.

Оно стоит дороже и, как  правило, имеет сравнительно небольшой  объем. «Медленное» ЗУ далее будем  называть основной памятью, противопоставляя ее вспомогательной кэш-памяти.

                                          Кэширование данных.

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

Принцип действия кэш-памяти

Рассмотрим одну из возможных  схем кэширования (рис. 5.25). Содержимое кэш-памяти представляет собой совокупность записей обо всех загруженных  в нее элементах данных из основной памяти. Каждая запись об элементе данных включает в себя:

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

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

  • если данные обнаруживаются в кэш-памяти, то есть произошло кэш-попадание (cache-hit), они считываются из нее и результат передается источнику запроса;
  • если нужные данные отсутствуют в кэш-памяти, то есть произошел кэш-промах (cache-miss), они считываются из основной памяти, передаются источнику запроса и одновременно с этим копируются в кэш-память.

Рис. 5.25. Схема функционирования кэш-памяти

Интуитивно понятно, что  эффективность кэширования зависит  от вероятности попадания в кэш. Покажем это путем нахождения зависимости среднего времени доступа  к основной памяти от вероятности  кэш-попаданий. Пусть имеется основное запоминающее устройство со средним  временем доступа к данным tl и кэш-память, имеющая время доступа t2, очевидно, что t2<tl. Пусть t — среднее время доступа к данным в системе с кэш-памятью, ар — вероятность кэш-попадания. По формуле полной вероятности имеем:

t - t1(d - р) + t2p - (t-t1)p + t1

Среднее время доступа  к данным в системе с кэш-памятью  линейно зависит от вероятности  попадания в кэш и изменяется от среднего времени доступа в  основное запоминающее устройство t1 при  р=0 до среднего времени доступа непосредственно в кэш-память t2 при р=1. Отсюда видно, что использование кэш-памяти имеет смысл только при высокой вероятности кэш-попадания.

Вероятность обнаружения  данных в кэше зависит от разных факторов, таких, например, как объем кэша, объем кэшируемой памяти, алгоритм замещения данных в кэше, особенности выполняемой программы, время ее работы, уровень мультипрограммирования и других особенностей вычислительного процесса. Тем не менее в большинстве реализаций кэш-памяти процент кэш-попаданий оказывается весьма высоким — свыше 90 %. Такое высокое значение вероятности нахождения данных в кэш-памяти объясняется наличием у данных объективных свойств: пространственной и временной локальности.

  • Временная локальность. Если произошло обращение по некоторому адресу, то следующее обращение по тому же адресу с большой вероятностью произойдет в ближайшее время.
  • Пространственная локальность. Если произошло обращение по некоторому адресу, то с высокой степенью вероятности в ближайшее время произойдет обращение к соседним адресам.

Именно основываясь на свойстве временной локальности, данные, только что считанные из основной памяти, размещают в запоминающем устройстве быстрого доступа, предполагая, что скоро они опять понадобятся. Вначале работы системы, когда кэш-память еще пуста, почти каждый запрос к  основной памяти выполняется «по  полной программе»: просмотр кэша, констатация промаха, чтение данных из основной памяти, передача результата источнику запроса и копирование данных в кэш. Затем, по мере заполнения кэша, в полном соответствии со свойством временной локальности возрастает вероятность обращения к данным, которые уже были использованы на предыдущем этапе работы системы, то есть к данным, которые содержатся в кэше и могут быть считаны значительно быстрее, чем из основной памяти.

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

Проблема согласования данных

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

Информация о работе Выбор рационального количества уровней и объема кэш-памяти