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

Автор работы: Пользователь скрыл имя, 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 Кб (Скачать файл)

Мы будем рассматривать  объёмы на процессоре высокого уровня производительности Intel Core i7-3770K. Данный процессор оснащен 4х32 Кб кэш-памяти первого уровня 4 x 32 КБ = 128 Кб. (на каждое ядро по 32 КБ)

2. Кэш второго  уровня (L2) – второй уровень более масштабный, нежели первый, но в результате, обладает меньшими «скоростными характеристиками». Соответственно, служит буфером между уровнем L1 и L3. Если обратиться снова к нашему примеру Core i7-3770 K, то здесь объём кэш-памяти L2 составляет 4х256 Кб = 1 Мб.

 

3. Кэш третьего  уровня (L3) – третий уровень, опять же, более медленный, нежели два предыдущих. Но всё равно он гораздо быстрее, нежели оперативная память. Объём кэша L3 в i7-3770K составляет 8 Мбайт. Если два предыдущих уровня разделяются на каждое ядро, то данный уровень является общим для всего процессора. Показатель довольно солидный, но не заоблачный. Так как, к примеру, у процессоров Extreme-серии по типу i7-3960X, он равен 15Мб, а у некоторых новых процессоров Xeon, более 20.

Процессор Pentium III компании Intel имеет кэш-память первого уровня емкостью 32 Кбайт на микросхеме процессора и либо кэш-память второго уровня емкостью 256 Кбайт на микросхеме, либо кэш-память второго уровня емкостью 512 Кбайт, не интегрированную с процессором.

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

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

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

Кэш-память для серверов даже более  важна, чем для настольных ПК, поскольку  серверы поддерживают между процессором  и памятью весьма высокий уровень  трафика, генерируемого клиентскими  транзакциями. В 1991 году Intel превратила ПК на базе процессора 80486 с тактовой частотой 50 МГц в сервер, добавив на процессорную плату кэш с тактовой частотой 50 МГц. Хотя шина, связывающая процессор и память, работала с частотой всего 25 МГц, такая кэш-память позволила многие программы во время работы полностью размещать в процессоре 486 с тактовой частотой 50 МГц.

Иерархическая организация памяти помогает компенсировать разрыв между  скоростями процессоров, ежегодно увеличивающимися примерно на 50% в год, и скоростями доступа к DRAM, которые растут лишь на 5%. Как считает Джон Шен, профессор Университета Карнеги-Меллона, по мере усиления этого диссонанса производители аппаратного обеспечения добавят третий, а возможно и четвертый уровень кэш-памяти.

Действительно, уже в этом году Intel намерена представить кэш-память третьего уровня в своих 64-разрядных процессорах Itanium. Кэш емкостью 2 или 4 Мбайт будет связан с процессором специальной шиной, тактовая частота которой совпадает с частотой процессора.

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

Больше - не всегда лучше

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

Один из способов обойти эти трудности  — передача логики управления кэш-памятью  от аппаратного обеспечения к  программному.

«Компилятор потенциально в состоянии  анализировать поведение программы  и генерировать команды по переносу данных между уровнями памяти», —  отметил Шен.

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

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

Формула для  среднего времени доступа к памяти в системах с кэш-памятью выглядит следующим образом:

Среднее время доступа = Время обращения  при попадании + Доля промахов x Потери при промахе

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

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

Первичная причина увеличения объема встроенного  кэша может заключаться в том, что кэш-память в современных процессорах работает на той же скорости, что и сам процессор. Частота процессора в этом случае никак не меньше 3200 MГц. Больший объем кэша позволяет процессору держать большие части кода готовыми к выполнению. Такая архитектура процессоров сфокусирована на уменьшении задержек, связанных с простоем процессора в ожидании данных. Современные программы, в том числе игровые, используют большие части кода, который необходимо извлекать из системной памяти по первому требованию процессора. Уменьшение промежутков времени, уходящих на передачу данных от памяти к процессору, - это надежный метод увеличения производительности приложений, требующих интенсивного взаимодействия с памятью. Кэш L3 имеет немного более высокое время ожидания, чем L 1 и 2, это вполне естественно. Хоть он и медленнее, но все-таки он значительно более быстрый, чем обычная память. Не все приложения выигрывают от увеличения объема или скорости кэш-памяти. Это сильно зависит от природы приложения.

Если большой  объем встроенного кэша - это хорошо, тогда что же удерживало Intel и AMD от этой стратегии ранее? Простым ответом является высокая себестоимость такого решения. Резервирование пространства для кэша очень дорого. Стандартный3.2GHz Northwood содержит 55миллионов транзисторов. Добавляя 2048 КБ кэша L3, Intel идет на увеличение количества транзисторов до 167 миллионов. Простой математический расчет покажет нам, что EE - один из самых дорогих процессоров.

                                                    Выводы.

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

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

  1. Э.Танненбаум,Современные операционные системы, СПб: Питер, 2002. - 1024 с.
  2. Р.Столлинз Операционные системы. М.: Вильямз, 2002. – 600 с.
  3. http://ru.wikipedia.org/wiki/%D0%9A%D1%8D%D1%88
  4. http://on-line-teaching.com/IBM-computer/27_cash.html

 

 


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