Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Цилькер Б.Я., Орлов С.А. Организация ЭВМ и систем

.pdf
Скачиваний:
2028
Добавлен:
02.05.2014
Размер:
22.66 Mб
Скачать

Кэш-память 2 5 7

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

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

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

Вто же время биты достоверности остальных строк этого сектора сбрасываются

в0. Далее, по мере копирования других блоков этого сектора, их биты достоверно­ сти устанавливаются в единицу.

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

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

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

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

циативных способах отображения требуется какой-либо алгоритм замещения (выбора удаляемой из кэш-памяти строки).

2 6 0 Глава 5. Память

У рассматриваемого метода есть разновидность — метод флаговой обратной записи. Когда в какой-то строке кэша производится изменение, устанавливается связанный с этой строкой бит изменения (флажок). При замещении строка из кэш­ памяти переписывается в ОП только тогда, когда ее флажок установлен в 1. Ясно, что эффективность флаговой обратной записи несколько выше. Такой метод ис­ пользуется в микропроцессорах класса i486 и Pentium фирмы Cyrix.

В среднем обратная запись на 10% эффективнее сквозной записи, но для ее реа­ лизации требуются и повышенные аппаратные затраты. С другой стороны, прак­ тика показывает, что операции записи составляют небольшую долю от общего ко­ личества обращений к памяти. Так, в [194] приводится число 16%. Другие авторы оценивают долю операций записи величинами в диапазоне от 5 до 34%. Таким обра­ зом, различие по быстродействию между рассмотренными методами невелико.

Теперь рассмотрим ситуацию, когда в основную память из устройства ввода, минуя процессор, заносится новая информация и неверной становится копия, хра­ нящаяся в кэш-памяти. Предотвратить подобную несогласованность позволя­ ют два приема. В первом случае система строится так, чтобы ввод любой информа­ ции в ОП автоматически сопровождался соответствующими изменениями в кэш-памяти. Для второго подхода «прямой» доступ к основной памяти допускает­ ся только через кэш-память.

Смешанная и разделенная кэш-память

Когда в микропроцессорах впервые стали применять внутреннюю кэш-память, ее обычно использовали как для команд, так и для данных; Такую кэш-память При­ нято называть смешанной, а соответствующую архитектуру - Принстонской (Prin­ ceton architecture), по названию университета, где разрабатывались ВМ с единой памятью для команд и данных, то есть соответствующие классической архитекту­ ре фон-Неймана. Сравнительно недавно стало обычным разделять кэш-память на две — отдельно для команд и отдельно для данных. Подобная архитектура полу­ чила название Гарвардской (Harvard architecture), поскольку именно в Гарвард­ ском университете был создан компьютер «Марк-1» (1950 год), имевший раздель­ ные ЗУ для команд и данных.

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

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

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