Оглавление Понятие кэш-памяти-----------------------------------------------------------------------------------3 Уровни кэша---------------------------------------------------------------------------------------3 Кэш-память микропроцессоров PentiumIII------------------------------------------------------4 Устройство кэш-памяти и стратегии кэширования--------------------------------------------5 Заключение---------------------------------------------------------------------------------------11 Список литературы---------------------------------------------------------------------------------12 Понятие кэш-памяти Кэш (англ. cache, от фр. cacher — прятать; произносится [kæʃ] — кэш) — промежуточный буфер с быстрым доступом, содержащий информацию, которая может быть запрошена с наибольшей вероятностью. Доступ к данным в кэше идёт быстрее, чем выборка исходных данных из оперативной (ОЗУ) или более медленной внешней (жёсткий диск или твердотельный накопитель) памяти, за счёт чего уменьшается среднее время доступа и увеличивается общая производительность компьютерной системы. Кэш микропроцессора — Кэш, используемый микропроцессором для уменьшения среднего времени доступа к компьютерной памяти. Является одним из верхних уровней иерархии памяти. Кэш использует небольшую, но очень быструю память SRAM, которая хранит копию часто используемых данных из основной памяти. Если большая часть запросов в память будет обрабатываться кэшем, средняя задержка обращения к памяти будет приближаться к задержкам работы кэша. Когда процессору нужно обратиться в память для чтения или записи ячейки, он сначала проверяет, доступна ли копия требуемых данных в кэше. В случае успеха проверки процессор сразу может произвести операцию работы с памятью, используя кэш. В противном случае процессору пришлось бы ожидать прохождения запроса в основную память, которая является в несколько раз более медленной. Большинство современных микропроцессоров для бытовых компьютеров и серверов имеют как минимум три независимых кэша: кэш инструкций для ускорения загрузки машинного кода микропроцессора, кэш данных для ускорения чтения и записи данных, и буфер ассоциативной трансляции (TLB) для ускорения трансляции виртуальных (математических) адресов в физические, как для инструкций, так и для данных. Уровни кэша Кэш центрального процессора разделён на несколько уровней. В универсальном процессоре в настоящее время число уровней может достигать 3. Кэш-память PentiumIII имеет два уровня. Самой быстрой памятью является кэш первого уровня — 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. Если да, то ситуация называется "кэш-попаданием". Случай, когда нужные данные находятся в основной памяти, называется "кэш-промахом". В первом случае кэш-контроллер читает данные из быстрой кэш-памяти и направляет их процессору. Это обычно происходит без ожидания, т.е. с максимальной скоростью шины. Запрос на чтение перехватывается кэш-памятью, и основная память о нем не знает. В случае кэш-промаха кэш-контроллер должен вначале прочитать данные из основной памяти; таким образом, запрос на чтение переадресуется в основную память. Поскольку это обычно занимает больше времени, то требуется определенное число циклов ожидания; кэш-контроллер сбрасывает сигнал готовности (или другой соответствующий сигнал), и процессор поэтому вставляет циклы ожидания. Одновременно с этим обращается к памяти и кэш-контроллер. Внутренняя организация большинства моделей кэш-памяти такова, что в том случае, когда происходит запрос на чтение информации, которой нет в кэш-памяти, из основной памяти в SRAM читаются не только непосредственно запрашиваемые байты данных, но и вся кэш-строка. Эта операция известна как заполнение кэш-строки. Перед тем, как записать в кэш-память новые данные, нужно, чтобы содержащиеся в ней результаты предыдущих операций были сохранены в основной памяти. Кэш-контроллер достаточно разумен для того, чтобы выполнить циклы чтения и записи данных в основную память независимо друг от друга. Байты данных, запрашиваемые процессором, немедленно, т.е. до завершения полной обработки всей кэш-строки, передаются ему кэш-контроллером. Кэш-строки обычно составляют 16 или 32 байта, поскольку, как уже говорилось ранее, данные и команды формируются в виде блоков; поэтому очень вероятно, что следующий запрос обратится к информации, содержащейся в той же кэш-строке. Это увеличивает скорость доступа. Кроме того, большинство кэш-контроллеров реализует так называемый пакетный режим, посредством которого считывается целиком блок данных, в котором содержится больше байт, чем позволяет ширина шины (поэтому для чтения блока данных требуется несколько циклов шины). Пакетный режим почти удваивает скорость передачи данных шиной, поэтому целая кэш-строка читается значительно быстрее, чем отдельное значение. Таким образом, организация кэш-памяти в виде кэш-строк увеличивает быстродействие системы. В случае, когда процессор записывает данные, кэш-контроллер определяет, находятся ли данные в кэш-памяти SRAM. Если да, то данные из процессора записываются в кэш. Существует три различных стратегии, определяющие дальнейшие действия кэш-контроллера: сквозная запись, отложенная запись (известная также как обратное копирование) и запись с размещением. Первые две стратегии относятся к случаю кэш-попадания, последняя - к ситуации кэш-промаха. Наиболее простым методом является сквозная запись, которая реализована в большинстве моделей кэш-памяти. Операция записи, инициированная процессором, всегда приводит к передаче данных в основную память, даже в случае кэш-попадания; все операции записи проходят через основную память. Это, естественно, касается также записи и обновления соответствующих ячеек кэш-памяти. Сквозная запись имеет тот недостаток, что все операции записи должны производиться также и с основной, более медленной памятью. Если не принять дополнительных мер, то это в принципе может привести к отключению кэш-памяти в режиме записи, результатом чего явится неоправданно большое время доступа при записи. По этой причине модели кэш-памяти со сквозной записью используют быстрые буферы записи, позволяющие буферизовать операции доступа на запись. Однако это возможно только до тех пор, пока буфер не заполнится. Следовательно, многократные запросы на запись неизбежно приводят к состоянию ожидания. С другой стороны, в мультипроцессорных системах стратегия сквозной записи автоматически обеспечивает согласованность содержимого основной памяти, поскольку все данные обновляются через основную память. Согласованность содержимого кэш-памяти, однако, в мультипроцессорных системах не гарантируется. Например, один из процессоров может переписать содержимое основной памяти, а кэш-память другого процессора может ничего об этом не знать. Только цикл просмотра может восстановить согласованность данных. Кэш с отложенной записью концентрирует все операции записи и обновляет только содержимое элемента кэш-памяти, не затрагивая содержимого основной памяти. Только по определенной команде измененное содержимое кэш-строки записывается в основную память, обновляя содержащуюся в ней информацию. В компьютерах Pentium это может быть выполнено программным путем, например, посредством команды WBIND (записать и аннулировать данные кэш-памяти), путем выдачи аппаратного сигнала FLUSH, при безусловной замене одной кэш-строки другой в случае отсутствия запрашиваемых данных в кэш-памяти, а также при выполнении внутреннего или внешнего цикла просмотра. Недостатком кэш-памяти с отложенной записью является то, что смена строк кэш-памяти занимает больше времени, поскольку до того, как новые данные могут быть записаны в кэш, прежнее содержимое кэш-памяти должно быть записано в основную память. Этот недостаток, однако, более чем компенсируется тем, что предшествующие запросы на запись не проходят через медленную общую память.
Рефераты по информатикеОглавление Понятие кэш-памяти-----------------------------------------------------------------------------------3 Уровни
Оценок: 613 (Средняя 5 из 5)
Наверняка у вас есть товары или услуги, продажа которых приносит вам максимальную прибыль. Для быстрого старта в сети вам необходимо создание посадочной страницы (одностраничного сайта), на которой будет размещена информация о маржинальных товарах/услугах интернет магазина. За 8 лет опыта разработки конверсионных страниц мы выработали оптимальную структуру, которая позволит привлекать через landing page больше продаж. На такую структуру «одевается» ваш контент — фирменный стиль, тексты, фотографии, уникальные торговые предложения, после чего страница выходит в свет. Разработка лендинга и запуск в сети — до 7 рабочих дней. Стоит отметить, что в разработку самой посадочной страницы входит и написание копирайтером продающих текстов для вашего бизнеса, чтобы каждый посетитель страницы захотел совершить покупку именно у вас. Результат: качественно разработаная продающая посадочная страница, которая готова приносить вам новых клиентов.