Методы обновления строк основной памяти и кэша
В табл. 5.1 приведены условия сохранения и обновления информа-
ции
в
ячейках
кэш-памяти
и основной
памяти.
Если процессор намерен получить информацию из некоторой ячей-
ки
основной
памяти,
а
копия
содержимого
этой ячейки уже
имеется
в кэш-памяти (первая строка табл. 4.1), то вместо оригинала считывает-
ся копия. Информация в кэш-памяти и основной памяти не изменяется.
Если копии нет, то производится обращение к основной памяти. Полу-
ченная
информация
пересылается
в
процессор
и
попутно
запоминается
в кэш-памяти. Чтение информации в отсутствие копии отражено во вто-
рой
строке
таблицы.
Информация в
основной
памяти
не
изменяется.
При записи существует несколько методов обновления старой ин-
формации. Эти методы называются
стратегией обновления строк ос- новной памяти. Если результат обновления строк кэш-памяти не воз-
вращается в основную память, то содержимое основной памяти стано-
вится неадекватным вычислительному процессу. Чтобы избежать этого,
предусмотрены методы обновления основной памяти, которые можно
разделить на две большие группы: метод сквозной записи и метод об-
ратной
записи.
Таблица 4.1 Условия
сохранения
и обновления
информации
Режим работы
| Наличие копии ячейки ОП
в кэш-памяти
| Информация
|
В ячейке
кэш-памяти
| В ячейке
основной памяти
|
Чтение
| Копия есть. Копии нет
| Не изменяется.
Обновляется (создается копия)
| Не изменяется. Не изменяется
|
Сквозная
запись
| Копия есть.
Копии нет
| Обновляется.
Не изменяется
| Обновляется.
Обновляется
|
Обратная запись
| Копия есть. Копии нет
| Обновляется. Создается копия.
Обновляется
| Не изменяется. Не изменяется
|
записью. В случае кэша с обратной записью допускается выполнение
длинных последовательностей быстрых операций записи из процессора,
поскольку нет необходимости немедленно направлять эти данные в ос-
новную
память.
-
Методы замещения строк кэш-памяти
Способ определения строки, удаляемой из кэш-памяти, называется
стратегией замещения. Для замещения строк кэш-памяти существует
несколько методов:
-
замещение строки, к которой наиболее длительное время не было обращения (метод LRU);
-
замещение строки, загруженной в кэш-память первой (метод FIFO);
-
произвольное замещение.
Реализация этих методов упрощается в указанной последователь-
ности, но наибольшим эффектом обладает метод замещения наиболее
давнего
по
использованию
объекта (строки).
Для реализации этого метода необходимо манипулировать строка-
ми, которые являются объектами
замещения, с помощью LRU-стека.
При каждой загрузке в этот стек помещается строка, в результате чего
при замене используется строка, хранящаяся в наиболее глубокой пози-
ции стека, и эта строка удаляется из стека. При доступе к строке, кото-
рая уже содержится в LRU-стеке, эта строка удаляется из стека и заново
загружается в него. Стек типа LRU устроен таким образом, что чем
дольше к строке не было доступа, тем в более глубокой позиции она
располагается. Реализация стека типа LRU, позволяющего с высокой
скоростью выполнять такую операцию, усложняется по мере увеличе-
ния
числа
строк.
-
Многоуровневая организация кэша
Предельно достижимая ёмкость кэш-памяти ограничена не только
её ценой, но и электромагнитной интерференцией, налагающей жёсткие
ограничения
на
максимально
возможное
количество
адресных
линий,
а значит – на непосредственно адресуемый объём памяти. В принципе,
можно
прибегнуть
к
мультиплексированию
выводов
или
последова-