Кэш память

Опубликовано в Архитектуры процессоров (истоки)

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

В универсальных компьютерах, основная память которых имела емкость порядка 132 — 512 Мбайт, обычно использовалась кэш память емкостью 64—512 Кбайт. То есть емкость кэш памяти составляла порядка 1/1000—1/500 емкости основной памяти, а быстродействие в 5 — 10 раз выше быстродействия основной памяти.

Кэш память

Кэш память

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

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

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

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

Кэш память

Кэш память

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

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

0