Буфер записи - Write buffer

А буфер записи это тип буфер данных используется в некоторых Кэш процессора архитектуры, такие как Intel x86 и AMD64.[1] В многоядерных системах буферы записи уничтожают последовательная последовательность. Некоторые программные дисциплины, например C11's свобода гонок данных,[2] достаточно, чтобы восстановить последовательно непротиворечивое представление о памяти.

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

Использование буфера записи таким образом освобождает кеш для обслуживания запросов чтения во время записи. Это особенно полезно для очень медленной основной памяти, так как последующие чтения могут выполняться, не дожидаясь долгой задержки основной памяти. Когда буфер записи заполнен (т. Е. Все записи буфера заняты), последующие записи все еще должны ждать, пока не будут освобождены слоты. Последующие чтения могут обслуживаться из буфера записи. Для дальнейшего смягчения этого срыва может быть реализована одна оптимизация, называемая объединением буферов записи. Слияние буфера записи комбинирует пишет которые имеют последовательные адреса назначения в одну запись буфера. В противном случае они будут занимать отдельные записи, что увеличивает вероятность остановки конвейера.

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

Примечания

  1. ^ Сквозная запись кэшам не нужно записывать вытесненные строки кеша, поскольку они записываются в основную память при записи кеша.


  1. ^ Оуэнс, Скотт, Сусмит Саркар и Питер Сьюэлл. «Лучшая модель памяти x86: x86-TSO». Доказательство теорем в логиках высокого порядка. Springer Berlin Heidelberg, 2009. 391-407.
  2. ^ Оберхаузер, Йонас. «Более простая теорема сокращения для x86-TSO». Проверенное программное обеспечение: теории, инструменты и эксперименты. Springer International Publishing, 2015. 142–164.