Почему возникла необходимость в использовании КЭШ?
Динамическая ЗУ обладает на порядок меньше быстродействием. Основная ЗУ отстает от процессора. У статической ЗУ стоимость выше на порядок. Компромисс - в основную память вводится КЭШ память.
Суть: в операционную память добавляется блок КЭШ памяти. Обладает высоким быстродействием. С точки зрения процессора КЭШ не видна при обращении в ОП, но в ОП КЭШ присутствует. В КЭШ память отображается тем или иным способом ОП своими участками, и если поступает запрос от ЦП, то этот то этот запрос к ОП проходит сначала в КЭШ память, и если в ней запрашиваемое слово есть, то говорят о «попадании» процессора, а если слово отсутствует и обращается в основной массив ОП, то говорят о «промахе». Обращение к КЭШ требует меньшего времени чем к ОП. Основано на принципе локальности по обращению. Суть: если выполняемая команда из программы, то для выполнения программы требуется рядом текущая команда по адресу. Поэтому, если мы выбираем команду, а в ОП заносим команду рядом лежащую, то скорее всего буде попадание. Быстродействие увеличивается.
Архитектура КЭШ и ОП и их взаимосвязь
Рисунок 147. Архитектура КЭШ и ОП
Связь процессора с КЭШ осуществляется специальной системой данных, более многоразрядной чем системная шина.
Как преобразует ИС из ОП в КЭШ?
Рисунок 148. Связь ОП с КЭШ памятью
С<<M
Используется принцип локальности по обращению.
Память данных в ОП имеет 2n BC c номерами от 0 до (2n -1). Они разбиваются на блоки одинаковой длины. В каждом блоке собираются K ИС. Число таких блоков: M=2n/K.
У КЭШ памяти есть понятие строки, число которых С, которые имеют номера от 0 до (С-1). Длина каждой строки Кис. У каждой строки есть признак, который обозначается тэг.
Если выполняется команда из верхнего блока (0, 1 .. M-1), то все слова из этого блока размещаются в определенной строке КЭШ. Если работаем с каким-нибудь ИС, то рядом с ним есть другие ИС, необходимые для операции. Поэтому блоки ОП определенным образом размещаются в строках КЭШ.
Обычно признак строки (тэг) нужно сформировать. Используется часть адреса, который выставляет ЦП при запросе в ОП. Тэг берется оттуда.
Что влияет на эффективность такой архитектуры ОП с КЭШ?
1. Емкость КЭШ;
2. Размер строки КЭШ;
3. Способ отображения ОП на КЭШ память;
4. Алгоритм замещения информации в заполненной КЭШ памяти.
Если КЭШ заполнена, то нужно чем-то жертвовать (есть алгоритм);
5. Алгоритм согласования ОП с содержанием КЭШ;
6. Число уровней КЭШ:
a. КЭШ L1 (на кристалле процессора);
b. КЭШ L2 (на материнской плате с микросхемами ОП);
Кроме этого существует дисковая КЭШ и проектируется КЭШ L3.
Емкость КЭШ памяти.
Определение параметров ёмкости КЭШ с точки зрения:
1. Стоимости. Нужно выбирать КЭШ малой ёмкости, тогда и стоимость окажется не очень высокой.
2. Быстродействия. Если увеличить ёмкость, то следует применять микросхемы памяти повышенной ёмкости для КЭШ. Тогда чем более громоздкой будет ёмкость, тем медленней станет работать КЭШ.
Рисунок 149. Зависимость вероятности числа промахов от ёмкости КЭШ
Если увеличиваем ёмкость КЭШ памяти, то число промахов уменьшается. Оптимальное значение для ёмкости лежит в пределах от 1 до 512 кбайт.
Заметно, что имеет смысл сделать КЭШ двухступенчатой: первый уровень будет находиться в пределах кбайт, а второй – в пределах сотни кбайт.
Как влияет на эффективность длина строки?
Когда размещаем в строки К информационных слов, то туда помещаются и соседние ИС. Увеличивая ёмкость строки, К растет, значит вероятность промахов падает. Когда размер становится излишне большим, вероятность промахов увеличивается при увеличении строки. Если строки удлиняются, то при заданном объеме КЭШ их число падает, а если число строк С будет уменьшаться, то возникает необходимость замены содержимого строк, что приведет к замедлению работы.
Для длины строк имеется оптимальное значение в районе 4 – 8 ИС. Длина строки выбирается равной ширине ШД, соединяющих ЦП с КЭШ.
Способы отображения ОП на КЭШ память
Сущность отображения ОП на КЭШ – копирование блока ОП в строку КЭШ, одну из С строк. Если в запросе выставляется адрес интересующего нас ИС, то в рамках работы КЭШ памяти должна быть переадресация этого адреса из ОП в КЭШ память.
Требования:
1) Способ должен обеспечивать быструю проверку КЭШ памяти на наличие в ней необходимой копии блока ОП.
2) Обеспечивать быстрое преобразование адреса блока ОП в адрес строки КЭШ.
3) Все выполнения 2 предыдущих требований осуществлено экономными средствами.
Пример.
mОП=256 кИС
mКЭШ=2 кИС
Очевидно, что если mОП=256 кИС, то для адресации требуется 18 разрядов. ОП в этом случае разбивается на К блоков, где К=16.
Количество блоков: M=218/24=214
Значит, что из 18 разрядов адреса 4 младших разряда, которые определяют ИС в блоках, а оставшиеся 14 – адресуют блок.
Требуется 11 разрядов.
Как образовать адрес строки?
В строке 16 ИС, требуется 11 разрядов, из которых 4 младших разряда – для адресации внутри строки, а 7 – для адресации самой строки (адрес строки в КЭШ). Эти 7 оставшихся разрядов используются для образования тега (признака строки). Как они используются? Зависит от способа отображения ОП на КЭШ.
Способы отображения ОП на КЭШ разделяются на три группы:
1) прямой способ отображения;
2) полностью ассоциативный способ отображения;
3) комбинированный способ отображения (частично ассоциативный способ отображения).
Рассмотрим прямой способ отображения ОП на КЭШ память:
КЭШ память ОП
Рисунок 150. Прямой способ отображения ОП на КЭШ
В соответствии с числовыми параметрами адресация строк проводится с 7-разрядным адресным кодом, т.е. 27=128 строк (0..127). Отводится 7 разрядов на память тэгов, число которых равняется 128.
В чем же состоит суть прямого отображения?
j блок ОП отображается в i блоке КЭШ. Отображение идет по принципу i=j mod 128.
При отображении мы описываем блок на пересечении тэга и строки.
ЦП выставляет 4 младших разряда для адресации необходимого ИС в строке ОП или в строке КЭШ. Оставшиеся 14 разрядов разбиваются на номер строки и на номер тэга. С помощью этих координат можем задать тот блок ОП, с которым работаем и следовательно можем задать номер строки в КЭШ.
Достоинства и недостатки прямого способа отображения.
Недостатки: если работаем с двумя блоками ОП, расположенных на одной строке, придется перезаписывать информацию в КЭШ. Это замедляет вычислительный процесс.
Чтобы устранить недостаток прямого отображения, используется ассоциативное отображение ОП на КЭШ, при котором любой блок ОП может отображаться в любую строку КЭШ.