Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КЭШ.doc
Скачиваний:
3
Добавлен:
19.07.2019
Размер:
124.42 Кб
Скачать

4

КЭШ – ПАМЯТЬ

КЭШ – ПАМЯТЬ

В качестве элементной базы основной памяти (ОП) в большинстве ВМ служат микросхемы динамических ОЗУ. Они на порядок уступают по быстродействию ЦП. Процессор вынужден простаивать несколько тактовых периодов, пока информация из ИМС памяти не установится на шине данных ВМ.

Если ОП выполнить на быстрых микросхемах статической памяти, стоимость ЗУ возрастает весьма существенно.

Экономически приемлемое решение этой проблемы было предложено М.Уилксом в 1965 году в процессе разработки ВМ Atlas. Заключается оно в использовании двухуровневой памяти. Между ЦП и ОП размещается небольшая, но быстродействующая буферная память. В процессе работы такой системы в буферную память копируются те участки ОП, к которым производится обращение со стороны процессора.

В общепринятой терминологии – производится отображение участков ОП на буферную память.

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

Уилкс назвал буферную память подчиненной (slave memory). Позже распространение получил термин кэш-память (cache – тайник, убежище, англ.). Такая память скрыта от программиста, т.е. он не может ее адресовать. Впервые кэш-системы появились в машинах модели 85 семейства IBM 360.

Кэш-память используется следующим образом:

Когда ЦП пытается прочитать слово из основной памяти, сначала осуществляется поиск копии этого слова в кэш-памяти. Если такая копия существует, обращение к ОП не производится, в ЦП передается слово из кэш-памяти (успешное обращение – попадание (hit)). Если слова в кэш нет (неуспешное обращение – промах (miss))? Требуемое слово передается в ЦП из ОП, но одновременно из ОП в кэш пересылается блок данных, содержащий это слово. Пример:

Адрес памяти

Данные

Номер строки

Тег

Строка

0

0

1

Блок(К слов)

1

2

2

3

С-1

Длина строки (К слов)

Кэш - память

Блок

2n-1

Д лина слова

Основная память

Рис. 1. Структура системы с основной и кэш-памятью.

На рис.1 приведена структура систем с основной и кэш-памятью.

Основная память (ОП):

  • состоит из 2n адресуемых слов.

  • каждое слово имеет уникальный адрес

  • при взаимодействии с кэш-памятью эта память рассматривается как М блоков фиксированной длины по К слов в каждом (М = 2n/К).

Кэш-память:

  • состоит из С блоков; блок в кэш-памяти принято называть строкой;

  • по объему содержащейся информации блок ОП и строка КЭШа равны.

  • число строк значительно меньше числа блоков (C<<М), поэтому отдельная строка не может быть выделена постоянно одному и тому же блоку;

  • каждой строке соответствует тег – содержит сведения о том, копия какого блока ОП в данный момент хранится в данной строке;

  • в качестве тега обычно используется часть адреса ОП.

На эффективность применения кэш в иерархической системе памяти влияет целый ряд моментов. К наиболее существенным можно отнести:

  • емкость кэш-памяти.

  • размер строки.

  • способ отображения ОП на кэш-память;

  • алгоритм замещения информации в заполненной кэш-памяти;

  • алгоритм согласования содержимого ОП и кэш-памяти;

  • число уровней кэш.

Емкость кэш-памяти

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

чем вместительнее кэш, тем больше логических схем должно участвовать в ее адресации;

ИМС повышенной емкости работают медленнее по сравнению с ИМС меньшей емкости, даже если они выполнены по одной технологии.

Реальная емкость КЭШ зависит от характера решаемых задач. Невозможно заранее определить какая ее емкость будет действительно оптимальной. Установлено, что для большинства задач близкой к оптимальной является кэш-память емкостью от 1 до 512 Кбайт.

Размер строки

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

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

по мере увеличения размера строки каждое дополнительное слово оказывается дальше от запрошенного; поэтому такое дополнительное слово менее вероятно понадобится в ближайшее время.

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

Способы отображения оперативной памяти на кэш-память

Сущность отображения блока ОП на кэш-память состоит в копировании этого блока в какую-то строку кэш-памяти, после чего все обращения к нему в ОП должны переадресовываться на соответствующую строку кэш-памяти.

Удачным может быть признан лишь такой способ отображения, который одновременно отвечает трем требованиям:

  1. обеспечивает быструю проверку кэш-памяти на наличие в ней копии блока основной памяти;

  2. обеспечивает быстрое преобразование адреса блока ОП в адрес строки кэш;

  3. реализует достижение первых двух требований наиболее экономными средствами.

Для облегчения понимания комплекса вопросов, возникающих при выборе способа отображения ОП на кэш-память, будем рассматривать систему, состоящую из ОП емкостью 256К слов, и кэш-памяти емкостью 2К слова.

Для адресации каждого слова основной памяти необходим 18-разрядный адрес(218 = 256К).

218 = 262144 слов

Основная память разбивается на блоки по 16 слов в каждом, следовательно, ее удобно рассматривать как линейную последовательность из 16384 блоков.

Блок = 16 словам

262144 слов : 16 слов = 16384 блоков (= 214).

При такой организации 18-разрядный адрес можно условно разделить на две части:

младшие 4 разряда определяют адрес слова в пределах блока;

старшие 14 определяют номер одного из 16384 блоков - адрес блока основной памяти.

Применительно к кэш-памяти вместо слова «блок» принято использовать термин «строка»».

Для адресации любого слова в кэш-памяти требуется 11-разрядный адрес (211 = 2К = 2048 слов).

Кэш-память разбита на строки такого же размера, что и блоки в основной памяти, т.е. слов

2048 слов : 16 слов = 128 строк (= 27).

11-разрядный адрес слова в кэш-памяти также можно представить состоящим из двух частей:

4 младших разряда - адреса слова в строке;

7 старших разрядов - адреса строки кэш-памяти.

Центральный процессор всегда обращается к основной памяти (кэш-память для ЦП невидима) и формирует для этого 18-разрядный адрес. Необходим механизм преобразования такого адреса в 11-разрядный адрес слова в кэш.

Расположение слов в блоке основной памяти и строке кэш-памяти идентично. Для доступа к конкретному слову в блоке основной памяти или в строке кэш-памяти можно использовать младшие 4 разряда 18-разрядного адреса.

Следовательно, остается лишь задача преобразования 14-разрядного адреса блока основной памяти в 7-разрядный адрес строки кэш.

Известные варианты отображения основной памяти на кэш можно свести к трем видам:

прямому;

полностью ассоциативному;

частично - ассоциативному (имеет две модификации — множественно-ассоциативное отображение и отображение секторов).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]