Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курс_ЛЕКЦИЙ_АРХ_2012.doc
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
1.17 Mб
Скачать

3.5 Организация кэш-памяти

3.5.1 Кэш-память в структуре компьютера

Основная задача кэш-памяти - согласование работы быстрого процессора и медленной.

К эш-память исполняет роль буфера между основной памятью и процессором (рис. 3.5) i. Р и с.

Системная шина

3.5. Кэш-память в компьютере

Использование кэш-па­мяти базируется на «принципе локальности ссылок», который был рассмотрен ранее.

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

Кэш разбивается на строки по 16 или 32 байта, соответствующие одному стандартному пакетному циклу обращения к динамической памяти.

Обмен информацией между ОП и кэш-памятью осуще­ствляется строками, даже если необходимо передать только один байт.

Процессор, выполняя команду, запрашивает операнд по некото­рому адресу в адресном пространстве. Кэш-контроллер проверяет, есть ли в кэше строка данных, соответствующая запрашиваемому ад­ресу.

На такие же строки условно разделяются и страницы основной памяти.

В случае наличия искомой строки ситуация называется кэш-по­падание.

Если нужной строки в кэш-памяти нет, то происходит кэш-промах, и кэш-контроллер инициирует обращение к основной памяти ОП для переписи из нее нужной строки в кэш-память.

В связи с этим возникает проблема замены какой-либо строки в кэше на новую строку из ОП. Для этого используют специальные дисциплины замещения строк.

Таким образом, функциями кэш-контроллера являются:

  1. хранение информации об адресах строк данных, находящихся в кэш-памяти;

  2. хранение предыстории обращений к строкам в кэш-памяти;

  3. замещение строк в кэш-памяти в случаях кэш-промахов;

  4. контроль системной шины для выявления обращений к ОП со стороны других устройств.

3.5.2 Типы кэш-памяти

Предположим, что основная память ОП имеет емкость M = 2N строк,

где N - число двоичных разрядов адреса.

Емкость кэш-памяти равна т, при этом n = log2m - число разрядов, необходимых для адре­сации m строк кэш-памяти. Проблема в том, что M >> т и N > n.

Физический адрес, выработанный процессором и имеющий дли­ну N, делится на три поля:

а) индекс S - адресует подмножество строк в кэш-памяти;

б) адрес b байта в строке;

в) тег T - остальная часть физического адреса, T =N- S- b, служа­щая ассоциативным признаком при поиске в кэш-памяти.

Пусть кэш-память разбита на 2S непересекающихся подмножеств строк.

Тогда число строк в одном подмножестве равно 2n - S.

Это чис­ло определяет количество входов или каналов кэш-памяти.

В современных вычислительных системах используются три типа организации кэш-памяти.

  1. Полностью ассоциативная кэш-память.

В этом случае S =0 - имеем одно подмножество, совпадающее со всей кэш-памятью и 2n- S = 2n - число строк в подмножестве равно ем­кости кэша.

  1. Кэш с прямым отображением.

Имеем S = n, то есть 2n подмножеств и число строк в одном под­множестве равно 2n- S = 20 = 1.

  1. Множественно-ассоциативная кэш-память.

В этом случае 1 < S < n -1.

При S = 1 имеем два подмножества в кэше по 2n-1 строк в каж­дом. При S = n -1 имеем 2n-1 подмножеств по две строки в каждом (двухвходовая кэш-память). Аналогично при S = n- 2 имеем 2n-2 под­множеств по 4 строки в каждом (четырехвходовая кэш-память).

Рассмотрим организацию каждого типа кэш-памяти.