Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
мпс с 1 по 294.doc
Скачиваний:
13
Добавлен:
16.04.2019
Размер:
6.2 Mб
Скачать

3.1.4. Обновление информации в кэш-памяти

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

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

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

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

В этот момент времени МП закончил запись «Новых данных 1». Кэш-контроллер поме­стил в буфер данные для записи и обновления кэш-памяти. Процессор считал «Старые данные 2». Возникло кэш-попадание. В то время, когда «Старые данные 2» находятся на пути к МП. «Новые данные 1» будут переписаны в ОП вместо «Старых данных 1».

Обратная запись. В схеме обновления с обратной записью используется специаль­ный бит «Изменения» в поле тега. Этот бит устанавливается, если в блок были записаны новые данные, и он является более «поздним», чем его оригинал в ОП.

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

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

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