Максимов Н.В., Партыка Т.Л., Попов И.И. Архитектура ЭВМ и вычислительных систем (2005) (1186253), страница 58
Текст из файла (страница 58)
Для того чтобы иерархия памяти былаэкономически эффективной, память должна иметь высокие эксплуатационные характеристики. Это означает, что технические параметры запоминающих устройств на разных уровнях иерархиидолжны существенно различаться. Невозможно достигнуть большихразличий по эксплуатационным характеристикам и стоимости малой и большой памяти, если и та и другая выполнены по одной технологии и имеют близкие по значению времена доступа.Кэш-памятьКэш-память или cache memory представляет собой буферноеработающее со скоростью, обеспечивающей функционированиебез режимов ожидания (рис. 3.34).Необходимость в создании кэш-памяти возникла потому,появились процессоры очень большого быстродействия.
МеждуЗУ,ЦПчтотем3.5. Системы памятиКэш-память,встро еннаяВ ПрО1дессорСчитываниеСчитываниеСквознаязапись293Внешняякэш-памятьСквознаязаписьОбратная записьОперативнаяпамятьtРис. 3.34. Структура кэш-памятидля выполнения сложных прикладных процессов нужна большаяпамять. Использование же большой сверхскоростной памяти невыгодно. Поэтому между ОЗУ и процессором стали устанавливатьменьший по размерам высокоскоростной буфер, названный кэш-память. Более того, последнюю разделили на встроенную в процессор(L1) и внешнюю (L2).
Встроенная кэш-память по сравнению свнешней имеет более высокое быстродействие и, естественно, стоимость. Поэтому первая меньше второй по емкости.В кэш-память записывается часть команд и данных, содержащихся в оперативной памяти. При этом нередко используются двекэш-памяти, одна из которых хранит команды, а другая — данные.Методика выбора команд и данных, которые передаются из оперативной памяти в кэш-память, определяет скорость обработки данных, ибо может оказаться, что в некоторые моменты времени вкэш-памяти нет нужных команд или данных.
В этих случаях процессор переходит в режим ожидания, а из оперативной памяти вкэш-память передается необходимая информация.После окончания процесса обработки полученные данныедолжны быть записаны в память. Проще всего использовать сквозную запись для передачи этих данных в оперативную память. Нопри этом оказывается, что во время этой передачи процессор находится в режиме ожидания. Чтобы избежать этого, все чаще применяют так называемую прямую обратную запись.Применение кэширования особенно эффективно, когда доступк данным осуществляется преимущественно в последовательном порядке.
Тогда после первого запроса на чтение данных, расположенных в медленной (кэшируемой) памяти, можно заранее выполнитьчтение следующих блоков данных в кэш-память для того, чтобы приследующем запросе на чтение данных почти мгновенно выдать ихиз кэш-памяти. Такой прием называется упреждающим чтением.В системах с кэш-памятью быстрая и небольшая память, известная как буфер, или кэш, имеющая почти такое же быстродействие,как и регистры, расположена между процессором и основной памятью. Такой кэш согласует скорости процессора и основной памяти.294Глава 3. Вычислительные системыЭтот буфер совершенно незаметен, недоступен пользователям и неможет быть непосредственно адресован.
Однако использованиекэша создает иллюзию, что большая основная память работает соскоростью процессора.Иерархия памяти обычно состоит из многих уровней, но в каждый момент времени мы имеем дело только с двумя близлежащимиуровнями. Минимальная единица информации, которая может либоприсутствовать, либо отсутствовать в двухуровневой иерархии, называется блоком или строкой. Размер блока обычно фиксирован, аобъем памяти кратен размеру блока.Успешное или неуспешное обращение к более высокому уровню называется соответственно попаданием (hit) или промахом (miss).Попадание — есть обращение к объекту в памяти, который найденна более высоком уровне, в то время как промах означает, что он ненайден на этом уровне.
Доля попаданий (hit rate) — доля обращенийк данным, найденных на более высоком уровне. Доля промахов (missrate) — это доля обращений к данным, которые не найдены на более высоком уровне. Частота попаданий и промахов является важной характеристикой. Время обращения при попадании (hit time) естьвремя обращения к более высокому уровню иерархии, котороевключает в себя, в частности, и время, необходимое для определения того, является ли обращение попаданием или промахом. Потери на промах (miss penalty) есть время для замещения блока в болеевысоком уровне на блок из более низкого уровня плюс время дляпересылки этого блока в требуемое устройство (обычно в процессор).
Потери на промах далее включают в себя два компонента: время доступа (access time) — время обращения к первому слову блокапри промахе и время пересылки (transfer time) — дополнительное время для пересылки оставшихся слов блока. Время доступа связано сзадержкой памяти более низкого уровня, в то время как время пересылки связано с полосой пропускания канала между устройствамипамяти двух смежных уровней.Основные характеристики современных моделей кэш-памятисведены в табл. 3.3.В системе с кэш-памятью требуется идентификатор, или «признаковая память», для того, чтобы определить, какие части информации основной памяти были скопированы в кэш-память.
В зависимости от организации обмена эти части могут быть словами, блоками или страницами. Специальная память, содержащая именачастей или адреса, обычно называется признаковой памятью, илисправочником, и является ассоциативной.2953.5. Системы памятиТаблица 3.3. Основные характеристики современных моделей кэш-памятиХарактеристикаТипичное значениеРазмер блока (строки)4- 128 байтВремя попадания (hit time)1 -4 такта синхронизации (обычно 1 такт)Потери при промахе (miss penalty)8-32 такта синхронизацииВремя доступа (access time)6-10 тактов синхронизацииВремя пересылки (transfer time)2-22 такта синхронизацииДоля промахов (miss rate)1-20%Размер кэш-памяти4 Кбайт -16 МбайтВ буферной памяти должна быть логическая схема, определяющая порядок удаления слов или блоков из кэша при необходимости записи в него новой информации из основной памяти.
Такаялогическая схема называется приоритетным списком обновленияданных.Для синхронизации различных действий, например обращенияв признаковую память, выборки и перемещения данных, в системукэш-памяти вводится устройство управления.Стратегии управления памятьюПри построении систем с иерархической памятью ставится цельполучения максимальной производительности подсистемы памятипри ее минимальной стоимости. Эффективность той или иной системы кэш-памяти зависит от стратегии управлений памятью. Стратегия управления памятью подразумевает ответ на такие вопросы:выбор метода отображения основной памяти в кэше; алгоритм взаимодействия между медленной основной и быстрой кэш-памятью;выбор стратегии замещения информации в кэше.Существует три основных способа размещения блоков (строк) вкэш-памяти.
По способу размещения блоков основной памяти вкэше различают кэш-память с прямым отображением (direct-mappedcache), частично ассоциативную кэш-память (или множественно ассоциативную кэш-память, set-associative cache) и полностью ассоциативную кэш-память (fully associative cache).Кэш-память называется памятью с прямым отображением, есликаждый блок основной памяти имеет только одно фиксированноеместо, на котором он может появиться в кэш-памяти. Это наиболее простая организация кэш-памяти. Все блоки основной памяти,IT296Глава 3. Вычислительные системыимеющие одинаковые младшие разряды в своем адресе, попадаютв один блок кэш-памяти. При таком подходе справедливо соотношение:Адрес блока кэш-памяти == (Адрес блока основной памяти) mod (Число блоков в кэш-памяти).Кэш-память называется полностью ассоциативной, если некоторый блок основной памяти может располагаться на любом местекэш-памяти.
Кэш-память называется частично ассоциативной, еслинекоторый блок основной памяти может располагаться на ограниченном множестве мест.В современных процессорах, как правило, используется либокэш-память с прямым отображением, либо двух- (четырех-) канальная множественно-ассоциативная кэш-память.Стратегии замещения информации в кэше определяет блок,подлежащий замещению при возникновении промаха. Простотапри использовании кэша с прямым отображением заключается втом, что аппаратные решения здесь наиболее простые: легко реализуется сама аппаратура, легко происходит замещение данных. Призамещении просто нечего выбирать — на попадание проверяетсятолько один блок и только этот блок может быть замещен. Приполностью ассоциативной или множественно-ассоциативной организации кэш-памяти имеются несколько блоков, из которых надовыбрать кандидата в случае промаха.