Из Википедии, свободной энциклопедии
Перейти к навигации Перейти к поиску

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

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

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

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

Магазин буфер был изобретен IBM в ходе проекта ОКС в период между 1964 и 1968, [3] , но она была впервые реализована в коммерческих продуктах , в 1990 - х годах.

Заметки [ править ]

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


  1. ^ Оуэнс, Скотт, Susmit Саркар, и Питер Сьюэлл. «Лучшая модель памяти x86: x86-TSO». Доказательство теорем в логиках высокого порядка. Springer Berlin Heidelberg, 2009. 391-407.
  2. Оберхаузер, Йонас. «Более простая теорема сокращения для x86-TSO». Проверенное программное обеспечение: теории, инструменты и эксперименты. Springer International Publishing, 2015. 142–164.
  3. ^ https://dl.acm.org/ft_gateway.cfm?id=1283945&type=pdf