В чем разница между буфером удаления и буфером слияния хранилища на процессоре ARM?

Я использую процессор Cortex A9 с двумя кешами L1: один для данных, а другой для инструкций. Политика кеширования может быть либо «обратной», либо «сквозной». Часть Технического справочного руководства Cortex-A9 «7.1. О системе памяти L1» говорится, что кэш данных L1 имеет:

  • один 32-байтовый буфер вытеснения
  • 4-битный 64-битный буфер хранилища слияния

Я не понимаю разницы между этими двумя буферами. По моему мнению :

  • "буфер выселения" используется для хранения грязных вытесненных строк перед их записью в ОЗУ.
  • "буфер слияния хранилища" используется для хранения данных перед их записью в ОЗУ.

Я предполагаю, что «буфер вытеснения» используется только с политикой обратной записи, в то время как «буфер слияния хранилища» используется только с политикой сквозной записи, но я не уверен в этой гипотезе.

Спасибо и извините за мой базовый английский.


person Antoine    schedule 13.05.2014    source источник
comment
Я рекомендую этот хороший ответ с классными комментариями stackoverflow.com/a/11130239/1163019   -  person auselen    schedule 13.05.2014


Ответы (2)


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

Согласно буферу записи Википедии, кэш сквозной записи не нужен буфер выселения. буфер хранилища слияния на самом деле не является функцией кеширования и может рассматриваться как совершенно другой объект. Но это связано с оптимизацией доступа к памяти (как кеш) и находится в том же функциональном блоке.

person artless noise    schedule 14.05.2014

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

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

person lucvoo    schedule 12.04.2016