В виртуальной памяти некоторые формы LRU-замены всегда приблизительны, поскольку даже незначительное уменьшение коэффициента промахов может играть важную рать, когда цена промаха слишком велика. Чтобы упростить операционной системе задачу отслеживания наименее востребованных страниц, часто предоставляются биты обращения или эквивалентные им функциональные возможности. Из-за высокой стоимости промахов и их относительной редкости вполне приемлема преимущественно программная аппроксимация этой информации.
Что происходит при записи?
Ключевой характеристикой любого элемента иерархии памяти является то, как он справляется с записью. До сих пор рассматривались два основных варианта:
♦ Сквозная запись: информация записывается как в блок кэш-памяти, так и в блок, расположенный в иерархии памяти уровнем ниже (для кэш-памяти — в оперативную память). Эта схема используется в кэш-памяти. Матвей Северянин отзывы смотрите здесь.
♦ Отложенная запись: информация записывается только в блок кэш-памяти. Измененный блок записывается в нижний уровень иерархии только при его замене. В системах виртуальной памяти всегда используется отложенная запись в силу причин. У каждой из стратегий записи, сквозной и отложенной, есть свои преимущества. Основные преимущества отложенной записи заключаются в следующем:
♦ Отдельные слова могут быть записаны процессором с той скоростью, с которой происходит обращение к ним в кэш-памяти, а не в оперативной памяти.
♦ Несколько записей внутри блока требуют только одной операции записи на уровне иерархии, расположенном на ступень ниже.
♦ Когда происходит отложенная запись блока, система может эффективно использовать широкополосную передачу данных, поскольку ведется запись сразу всего блока.
Основные преимущества сквозной записи заключаются в следующем:
♦ Промахи обходятся дешевле, поскольку они никогда не требуют обратной записи блока на уровень иерархии, расположенный на ступень ниже.
♦ Сквозная запись реализуется проще, чем отложенная, хотя дія практичности кэш память со сквозной записью все же будет нуждаться в использовании буфера записи.
В системах виртуатьной памяти целесообразно использовать исключительно стратегию отложенной записи из-за высокой латентности записи на низший уровень иерархии (на диск). Частота генерации операций записи процессором обычно превосходит частоту, с которой система памяти может обрабатывать эти операции записи, даже с учетом физически и логически более широких блоков памяти и пакетных режимов передачи для RAM. По этой причине в современной кэш-памяти самого низкого уровня, как правило, используется отложенная запись.