Насколько я понимаю, основное различие между этими двумя методами заключается в том, что в методе со сквозной записью данные записываются в основную память через кеш немедленно, а в режиме с обратной записью данные записываются «позже».
Нам все еще нужно дождаться памяти «в последний раз», так что в чем преимущество «сквозной записи»?
caching
cpu-architecture
cpu-cache
Нафтали
источник
источник
write back
лучшую производительность?write back
имеет лучшую производительность, потому что запись в основную память намного медленнее, чем запись в кеш процессора, и данные могут быть короткими во время (средства могут снова измениться раньше, и нет необходимости помещать старую версию в память). Это сложно, но более изощренно, большая часть памяти в современных процессорах использует эту политику.Ответы:
Преимущество сквозной записи в основную память состоит в том, что она упрощает конструкцию компьютерной системы. При сквозной записи в основной памяти всегда есть актуальная копия строки. Поэтому, когда чтение завершено, основная память всегда может ответить запрошенными данными.
Если используется обратная запись, иногда актуальные данные находятся в кэше процессора, а иногда - в основной памяти. Если данные находятся в кэше процессора, то этот процессор должен остановить ответ основной памяти на запрос чтения, поскольку в основной памяти может быть устаревшая копия данных. Это сложнее, чем сквозная запись.
Кроме того, сквозная запись может упростить протокол согласованности кэша, поскольку ему не требуется состояние Modify . Состояние Modify записывает, что кэш должен записать строку кэша, прежде чем он сделает строку недействительной или исключит ее. При сквозной записи строка кэша всегда может быть признана недействительной без обратной записи, поскольку в памяти уже есть актуальная копия строки.
Еще одна вещь - в программном обеспечении с архитектурой обратной записи, которое записывает в отображенные в память регистры ввода-вывода, необходимо предпринимать дополнительные шаги, чтобы обеспечить немедленную отправку записей из кеша. В противном случае записи не будут видны за пределами ядра до тех пор, пока строка не будет прочитана другим процессором или строка не будет удалена.
источник
Давайте посмотрим на это на примере. Предположим, у нас есть кэш с прямым отображением и используется политика обратной записи. Итак, у нас есть действительный бит, грязный бит, тег и поле данных в строке кеша. Предположим, у нас есть операция: записать A (где A отображается в первую строку кеша).
Что происходит, так это то, что данные (A) от процессора записываются в первую строку кеша. Установлены действительные биты и биты тегов. Грязный бит установлен в 1.
Грязный бит просто указывает, была ли когда-либо записана строка кеша с момента последнего внесения в кеш!
Теперь предположим, что выполняется другая операция: чтение E (где E также отображается в первую строку кеша)
Поскольку у нас есть кэш с прямым отображением, первую строку можно просто заменить блоком E, который будет извлечен из памяти. Но поскольку последний записанный в строку блок (блок A) еще не записан в память (обозначенный грязным битом), контроллер кеша сначала выполнит обратную запись в память, чтобы передать блок A в память, а затем он заменит строку блоком E, выполнив операцию чтения в память. грязный бит теперь установлен в 0.
Таким образом, политика обратной записи не гарантирует, что блок будет таким же в памяти и связанной с ним строке кэша. Однако всякий раз, когда строка собирается заменить, сначала выполняется обратная запись.
Политика сквозной записи прямо противоположна. Согласно этому, в памяти всегда будут актуальные данные. То есть, если записывается блок кеша, соответственно будет записана и память. (без грязных битов)
источник
возможно, эта статья поможет вам разместить ссылку здесь
Сквозная запись: запись выполняется синхронно как в кэш, так и в резервное хранилище.
Обратная запись (или отложенная запись): запись выполняется только в кэш. Измененный блок кэша записывается обратно в хранилище непосредственно перед заменой.
Сквозная запись: когда данные обновляются, они записываются как в кеш, так и во внутреннее хранилище. Этот режим прост в эксплуатации, но он медленен при записи данных, поскольку данные должны записываться как в кэш, так и в хранилище.
Обратная запись: при обновлении данных они записываются только в кеш. Измененные данные записываются во внутреннее хранилище только при удалении данных из кеша. Этот режим имеет высокую скорость записи данных, но данные будут потеряны, если произойдет сбой питания до того, как обновленные данные будут записаны в хранилище.
источник
Обратная и сквозная запись описывают политики, когда происходит попадание записи , то есть когда в кэше есть запрошенная информация. В этих примерах мы предполагаем, что один процессор выполняет запись в основную память с помощью кеша.
Сквозная запись: информация записывается в кэш и память, и запись завершается, когда оба завершаются. Это имеет то преимущество, что его проще реализовать, и основная память всегда согласована (синхронизирована) с кешем (для однопроцессорного случая - если какое-то другое устройство изменяет основную память, тогда этой политики недостаточно), и промах при чтении никогда не приводит к записи в основную память. Очевидным недостатком является то, что каждое попадание записи должно производить две записи, одна из которых обращается к более медленной основной памяти.
Обратная запись: информация записывается в блок кеша. Измененный блок кэша записывается в память только при его замене (по сути, отложенная запись ). Специальный бит для каждого блока кэша, грязный бит , отмечает, был ли блок кеш-памяти изменен, находясь в кэше. Если грязный бит не установлен, блок кэша является «чистым», и промах при записи не должен записывать блок в память.
Преимущество состоит в том, что запись может происходить со скоростью кеша, и если запись выполняется в одном блоке, требуется только одна запись в основную память (при замене предыдущего блока). Недостатки заключаются в том, что этот протокол сложнее реализовать, основная память может быть несовместима (не синхронизирована) с кешем, а операции чтения, приводящие к замене, могут вызвать запись грязных блоков в основную память.
Правила пропуска записи подробно описаны в моей первой ссылке.
Эти протоколы не заботятся о случаях с несколькими процессорами и несколькими кешами, как это обычно бывает в современных процессорах. Для этого требуются более сложные механизмы согласованности кэша . Кеши со сквозной записью имеют более простые протоколы, поскольку запись в кэш немедленно отражается в памяти.
Хорошие ресурсы:
источник
Обратная запись является более сложной задачей и требует сложного протокола согласования кэширования (MOESI), но оно того стоит, поскольку делает систему быстрой и эффективной.
Единственное преимущество сквозной записи заключается в том, что она делает реализацию чрезвычайно простой и не требует сложного протокола согласованности кэша.
источник