Устройство кэш-памяти и стратегии кэширования

Автор работы: Пользователь скрыл имя, 23 Февраля 2011 в 10:54, реферат

Описание работы

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

Содержание работы

Понятие кэш-памяти-----------------------------------------------------------------------------------3

Уровни кэша---------------------------------------------------------------------------------------3
Кэш-память микропроцессоров Pentium III------------------------------------------------------4

Устройство кэш-памяти и стратегии кэширования--------------------------------------------5

Заключение---------------------------------------------------------------------------------------11

Список литературы---------------------------------------------------------------------------------12

Файлы: 1 файл

КЭШмэмори).docx

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

         Оглавление

         Понятие кэш-памяти-----------------------------------------------------------------------------------3

         Уровни кэша---------------------------------------------------------------------------------------3

         Кэш-память микропроцессоров Pentium III------------------------------------------------------4

         Устройство кэш-памяти и стратегии кэширования--------------------------------------------5

         Заключение---------------------------------------------------------------------------------------11

         Список литературы---------------------------------------------------------------------------------12 
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     

         Понятие кэш-памяти

         Кэш  (англ. cache, от фр. cacher — прятать; произносится [kæʃ] — кэш) — промежуточный буфер с быстрым доступом, содержащий информацию, которая может быть запрошена с наибольшей вероятностью. Доступ к данным в кэше идёт быстрее, чем выборка исходных данных из оперативной (ОЗУ) или более медленной внешней (жёсткий диск или твердотельный накопитель) памяти, за счёт чего уменьшается среднее время доступа и увеличивается общая производительность компьютерной системы.

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

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

         Большинство современных  микропроцессоров для бытовых компьютеров  и серверов имеют как минимум  три независимых кэша: кэш инструкций для ускорения загрузки машинного кода микропроцессора, кэш данных для ускорения чтения и записи данных, и буфер ассоциативной трансляции (TLB) для ускорения трансляции виртуальных (математических) адресов в физические, как для инструкций, так и для данных.

         Уровни  кэша

         Кэш центрального процессора разделён на несколько уровней. В  универсальном процессоре в настоящее время число уровней может достигать 3. Кэш-память Pentium III имеет два уровня.

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

          По сути, она  является неотъемлемой частью  процессора, поскольку расположена  на одном с ним кристалле  и входит в состав функциональных  блоков. Большинство процессоров без L1 кэша не могут функционировать. L1 кэш работает на частоте процессора, и, в общем случае, обращение к нему может производиться каждый такт. Зачастую является возможным выполнять несколько операций чтения/записи одновременно. Латентность доступа обычно равна 2−4 тактам ядра. Объём обычно невелик — не более 128 Кбайт.

         Вторым по быстродействию является L2-cache — кэш второго уровня. Хотя эта память чуть помедленнее, зато больше. Обычно он расположен на кристалле, как и L1. Объём L2 кэша от 128 Кбайт до 1−12 Мбайт. В современных многоядерных процессорах кэш второго уровня, находясь на том же кристалле, является памятью раздельного пользования — при общем объёме кэша в nM Мбайт на каждое ядро приходится по nM/nC Мбайта, где nC количество ядер процессора. Обычно латентность L2 кэша, расположенного на кристалле ядра, составляет от 8 до 20 тактов ядра.

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

         Инклюзивная архитектура  предполагает дублирование информации кэша верхнего уровня в нижнем (предпочитает фирма Intel).

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

         В неэксклюзивной кэши могут вести себя как угодно.

         Одна из фундаментальных  характеристик кэш-памяти — уровень ассоциативности — отображает её логическую сегментацию. Дело в том, что последовательный перебор всех строк кэша в поисках необходимых данных потребовал бы десятков тактов и свёл бы на нет весь выигрыш от использования встроенной в ЦП памяти. Поэтому ячейки ОЗУ жёстко привязываются к строкам кэш-памяти (в каждой строке могут быть данные из фиксированного набора адресов), что значительно сокращает время поиска. С каждой ячейкой ОЗУ может быть связано более одной строки кэш-памяти: например, n-канальная ассоциативность обозначает, что информация по некоторому адресу оперативной памяти может храниться в n местах кэш-памяти.

         При одинаковом объеме кэша схема с большей ассоциативностью будет наименее быстрой, но наиболее эффективной 

        Кэш-память микропроцессоров Pentium III

         Процессор Intel Pentium III - процессор архитектуры P6, включает в себя: динамическое исполнение команд, системную шину с множественными транзакциями и технологию Intel MMX™ для обработки данных мультимедиа. Технология изготовления с разрешающей способностью 0.25 микрон позволяет разместить на кристалле более 9.5 миллионов транзисторов. Процессор содержит 32 Kб неблокируемой кэш-памяти первого уровня (16Кб/16Кб) и унифицированную неблокируемую кэш-память второго уровня емкостью 512 Кб, функционирующую на вдвое меньшей частоте, чем ядро. Процессор Intel® Pentium®III поддерживает кэширование памяти с объемом адресного пространства 4 Гб, и позволяет создавать масштабируемые системы с двумя процессорами и физической памятью объемом до 64 Гб.

      Katmai

         Кэш второго уровня объёмом 512 Кб работает на половине частоты ядра и выполнен в виде двух микросхем BSRAM (производства Toshiba и NEC), расположенных друг над другом справа от кристалла процессора. В качестве tag-RAM используется микросхема Intel 82459AD, расположенная на обратной стороне процессорной платы под микросхемами кэш-памяти.

         Coppermine

         Процессоры на ядре Coppermine выпускались по 180 нм технологии, имели интегрированную кэш-память второго уровня, работающую на частоте ядра. Кроме того, кэш-память имеет 256-битную шину (в отличие от процессоров на ядре Katmai, имевших 64-битную шину кэш-памяти), что значительно повышает её быстродействие. За счёт интегрированной кэш-памяти число транзисторов возросло до 28,1 млн

         Процессоры Pentium III 733 МГц на ядре Coppermine c уменьшенной до 128 Кб кэш-памятью второго уровня использовались компанией Microsoft в приставке Xbox. В отличие от процессоров Celeron на ядре Coppermine-128, также имеющих 128 Кб кэша, данные процессоры имеют 8-канальный ассоциативный кэш второго уровня (Celeron имеет 4-канальный ассоциативный кэш)

         Tualatin

         Процессоры Pentium III-S на ядре Tualatin  имели 512 Кб кэш-памяти второго уровня и предназначались для высокопроизводительных рабочих станций и серверов. В процессорах Pentium III на ядре Tualatin 256 Кб кэш-памяти были аппаратно отключены. Частота системной шины составляла 133 МГц для обеих модификаций. 

      Устройство  кэш-памяти и стратегии  кэширования

         Кэш-память является результатом попыток соединить  достоинства быстрых SRAM и дешевых DRAM для создания максимально эффективной  системы памяти. Принцип кэширования поясняется на рисунке 1.

         

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

         сквозная или отложенная запись.

           Рисунок 1. Принцип кэширования. 

         Кэш-блок располагается  между CPU и основной памятью; он состоит  из кэш-контроллера и кэш-памяти SRAM. Они могут быть встроены в  кристалл процессора (кэш-память, встроенная в кристалл), а могут существовать и в виде отдельного элемента.

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

          На рисунке 2 изображены основная и кэш память. Каждая строка — группа ячеек памяти содержит данные, организованные в кэш-линии. Размер каждой кэш-линии может различаться в разных процессорах, но для большинства x86-процессоров он составляет 64 байта. Размер кэш-линии обычно больше размера данных, к которому возможен доступ из одной машинной команды (типичные размеры от 1 до 16 байт). Каждая группа данных в памяти размером в 1 кэш-линию имеет порядковый номер. Для основной памяти этот номер является адресом памяти с отброшенными младшими битами. В кэше каждой кэш-линии дополнительно ставится в соответствие тег, который является адресом продублированных в этой кэш-линии данных в основной памяти. 

         Рисунок 2. Диаграмма кэша памяти ЦПУ 

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

         Однако в нашем  случае между процессором и адресом  основной памяти находится кэш-контроллер. Он определяет, находятся ли нужные данные в кэш-памяти SRAM. Если да, то ситуация называется "кэш-попаданием". Случай, когда нужные данные находятся в  основной памяти, называется "кэш-промахом". В первом случае кэш-контроллер читает данные из быстрой кэш-памяти и направляет их процессору. Это обычно происходит без ожидания, т.е. с максимальной скоростью шины. Запрос на чтение перехватывается кэш-памятью, и основная память о нем не знает.

Информация о работе Устройство кэш-памяти и стратегии кэширования