Иерархия памяти современных компьютеров. Классификация ЗУ. Кэш-память. Программируемые логические интегральные схемы. Программируемые логические матрицы, страница 5

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

1.  С помощью разрядов 5-17 адреса выбирается строка кэш-памяти. На выходы накопителя кэш-памяти поступают код Tag, биты V и данные D.

Таблица 3.1

Режим работы

Наличие копии ячейки динамического ОЗУ в кэш-памяти

Информация

В ячейке кэш-памяти

В ячейке динамического ОЗУ

Чтение

Копия есть

Не изменяется

Не изменяется

Копии нет

Обновляется

(создается копия)

Не изменяется

Запись

Копия есть

Обновляется

Обновляется

Копии нет

Не изменяется

Обновляется

2.  С помощью 8-ми разрядного компаратора сравниваются старшие разряды адреса поступившие из процессора и код Tag. Если совпадение не зарегистрировано, то это означает, что в кэше нет копии затребованной ячейки динамической памяти. Если произошло совпадение на выходе компаратора вырабатывается сигнал Hit=1.

3.  Если Hit=1, то процессор получает требуемые данные. Разряд М кэш-памяти устанавливается в 0 или 1. Этот разряд отражает очередность обращения и по нему можно определить, какая информация более новая. На этом операция чтения завершается.

4.  Если Hit=0, то разряд М остается без изменения, осуществляется выбор из динамической памяти. Считанное из динамического ОЗУ слово, должно быть записано в кэш-память. Адрес ячейки известен – он определяется разрядами 5-17 кода, установленного процессором в адресной шине. Одновременно с данными в кэш-память записывается код Tag.

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

Второй недостаток можно устранить, используя отложенную запись. В этом случае разряд М несет информацию о том, соответствует ли копия оригиналу. Если М=0, то копия совпадает с оригиналом слова данных, хранимым в основной памяти. Если М=1, то в ячейку кэш-памяти производилась запись по инициативе процессора, а оригинал не востребован.

Возможные режимы работы системы отображены в таблице 3.2.

В первом режиме процессор выполняет чтение информации из некоторой ячейки памяти. В соответствие с младшими разрядами адреса, установленного процессором, из кэш-памяти считывается слово данных D, код Tag и признаки V=1 и М=1. Компаратор не регистрирует совпадения старших разрядов адреса с кодом Tag. Процессор временно приостанавливается сигналом отсутствия данных Hit=0. Перед обновлением ячейки кэш-памяти необходимо сохранить обновленную копию (М=1). Поэтому старое содержимое кэш-памяти пересылается в соответствующую ячейку основной памяти. Адрес ячейки оригинала формируется из кода Tag и младших разрядов адреса выбранной ячейки памяти. После коррекции оригинала из основной памяти считывается слово данных в соответствии с адресом. Это слово записывается в ячейку кэш-памяти с соответствующим новой копии кодом Tag и признаками М=0 и V=1. слово данных передается в процессор и подтверждается сигналом готовности данных Hit=1, получив который процессор принимает слово и продолжает работу.

Второй режим отличается от первого тем, что старая копия совпадает с оригиналом и ее можно уничтожить при создании новой копии.