Подтвердить что ты не робот

Обратная запись против сквозного кэширования?

Мое понимание заключается в том, что основное различие между этими двумя методами заключается в том, что данные метода "write-through" записываются в основную память через кеш немедленно, тогда как в "обратной записи" данные записываются в "последнее время" ".

Нам еще нужно дождаться памяти в "последнем времени". Какая польза от "записи"?

4b9b3361

Ответ 1

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

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

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

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

Ответ 2

Давайте посмотрим на это с помощью примера. Предположим, у нас есть кэш с прямым отображением и используется политика обратной записи. Таким образом, у нас есть правильный бит, грязный бит, тег и поле данных в строке кэша. Предположим, у нас есть операция: запись A (где A отображается в первой строке кэша).

Что происходит, так это то, что данные (A) от процессора записываются в первую строку кэша. Действительный бит и бит тега установлены. Грязный бит установлен в 1.

Грязный бит просто указывает на то, была ли когда-либо записана строка кэша с момента ее последней загрузки в кэш!

Теперь предположим, что выполняется другая операция: чтение E (где E также отображается на первую строку кэша)

Поскольку у нас есть кэш прямого отображения, первая строка может быть просто заменена блоком E, который будет извлечен из памяти. Но так как блок, последний записанный в строку (блок A), еще не записан в память (обозначен грязным битом), то контроллер кэша сначала выдаст запись в память для передачи блока A в память, затем он заменит строку с блоком E, выдав операцию чтения в память. грязный бит теперь установлен в 0.

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

Политика записи - прямо противоположное. В соответствии с этим в памяти всегда будут обновляться данные. То есть, если записан блок кеша, память также будет записана соответствующим образом. (не использовать грязные биты)

Ответ 3

Может быть, эта статья поможет вам ссылку здесь

Сквозная запись: запись выполняется синхронно как в кеш, так и в резервное хранилище.

Обратная запись (или обратная запись): запись выполняется только в кэш. Модифицированный блок кэша записывается обратно в хранилище непосредственно перед его заменой.

Сквозная запись. Когда данные обновляются, они записываются как в кэш, так и во внутреннее хранилище. Этот режим прост в эксплуатации, но медленен при записи данных, поскольку данные должны записываться как в кэш, так и в хранилище.

Обратная запись: при обновлении данных они записываются только в кэш. Измененные данные записываются в внутреннее хранилище только тогда, когда данные удаляются из кэша. Этот режим имеет высокую скорость записи данных, но данные будут потеряны в случае сбоя питания до того, как обновленные данные будут записаны в хранилище.

Ответ 4

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

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

Обратная запись: Информация записывается в блок в кеше. Модифицированный блок кэша записывается в память только при его замене (по сути, отложенная запись). Специальный бит для каждого блока кэша, "грязный" бит, указывает, был ли изменен блок кэша в кэше. Если грязный бит не установлен, блок кэша является "чистым" и промах записи не должен записывать блок в память.

Преимущество состоит в том, что запись может происходить со скоростью кэша, и если запись в пределах одного и того же блока требуется только одна запись в основную память (при замене предыдущего блока). Недостатки заключаются в том, что этот протокол сложнее реализовать, основная память может быть несовместима (не синхронизирована) с кешем, а чтения, которые приводят к замене, могут вызывать записи "грязных" блоков в основную память.

Политики для пропуска записи подробно описаны в моей первой ссылке.

Эти протоколы не учитывают случаи с несколькими процессорами и несколькими кэшами, как это принято в современных процессорах. Для этого требуются более сложные механизмы согласования кэша. Кэши сквозной записи имеют более простые протоколы, поскольку запись в кеш немедленно отражается в памяти.

Хорошие ресурсы:

Ответ 5

Обратная запись является более сложной и требует сложного протокола согласования кэша (MOESI), но оно того стоит, поскольку делает систему быстрой и эффективной.

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