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

Кэш-память стр.249-261

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

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

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

На рис. 5.24 приведена структура системы с основной(ОП) и кэш-памятью. ОП состоит из 2n адресуемых слов, где каждое слово имеет уникальный n-разрядный адрес. При взаимодействии с кэшем эта память рассматривается как М блоков фиксированной длины по К слов в каждом (М = 2n/K). Кэш-память состоит из С блоков аналогичного размера (блоки в кэш-памяти принято называть строками),причем их число значительно меньше числа блоков в ОП (С ≪ М). При считывании слова из какого-либо блока ОП этот блок копируется в одну из строк кэша. Поскольку число блоков ОП больше числа строк, отдельная строка не может быть выделена постоянно одному и тому же блоку ОП. По этой причине каждой строке кэш-памяти соответствует тег (признак), содержащий сведения о том, копия какого блока ОП в данный момент хранится в данной строке. В качестве тега обычно используется часть адреса ОП.

На эффективность применения кэш-памяти в иерархической системе памяти

влияет целый ряд моментов. К наиболее существенным из них можно отнести:

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

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

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

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

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

• число уровней кэш-памяти.

Выбор емкости кэш-памяти — это всегда определенный компромисс. С одной сторо-

ны, кэш-память должна быть достаточно мала, чтобы ее стоимостные показатели были

близки к величине, характерной для ОП. С другой — она должна быть достаточно

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

мяти, определялось временем доступа к кэш-памяти. В пользу уменьшения размера

кэш-памяти имеется больше мотивировок. Так, чем вместительнее кэш-память, тем

больше логических схем должно участвовать в ее адресации. Как следствие, ИМС

кэш-памяти повышенной емкости работают медленнее по сравнению с микросхема-

ми меньшей емкости, даже если они выполнены по одной и той же технологии.

Реальная эффективность использования кэш-памяти зависит от характера ре-

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

ствительно оптимальной. Рисунок 5.25, а иллюстрирует зависимость вероятности

промахов от емкости кэш-памяти для трех программ А, В и С [195]. Несмотря на

очевидные различия, просматривается и общая тенденция: по мере увеличения

емкости кэш-памяти вероятность промахов сначала существенно снижается, но

при достижении определенного значения эффект сглаживается и становится не-

существенным. Установлено, что для большинства задач близкой к оптимальной

является кэш-память емкостью от 1 до 512 Кбайт.