Введение

Буфер записи — это тип буфера данных, который может использоваться для хранения данных, записываемых из кэша в основную память или в следующий уровень кэша в иерархии памяти, для повышения производительности и снижения задержки. Он используется в определенных архитектурах кэша процессоров, таких как Intel x86 и AMD64. В многоядерных системах буферы записи нарушают последовательную согласованность. Некоторые программные дисциплины, такие как обеспечение отсутствия гонок данных в C11, достаточны для восстановления последовательного представления памяти. Вариацией кэширования с записью является буферизированная запись. Использование буфера записи таким образом позволяет кэшу обслуживать запросы на чтение во время выполнения записи. Это особенно полезно для очень медленной основной памяти, поскольку последующие чтения могут выполняться без ожидания длительной задержки основной памяти. Когда буфер записи заполнен (то есть все ячейки буфера заняты), последующие записи должны ждать освобождения ячеек. Последующие чтения могут обслуживаться из буфера записи. Для дальнейшего снижения этой задержки может быть реализована оптимизация, называемая объединением буфера записи. Объединение буфера записи объединяет записи с последовательными адресами назначения в одну ячейку буфера. В противном случае они заняли бы отдельные ячейки, что увеличивает вероятность остановки конвейера. Буфер вытеснения — это тип буфера записи, который хранит "грязные" вытесненные строки в кэшах с обратной записью, чтобы они были записаны обратно в основную память. Помимо снижения остановки конвейера, не дожидаясь записи "грязных" строк, как это делает простой буфер записи, буфер вытеснения также может служить временным резервным хранилищем, когда последующие обращения к кэшу демонстрируют локальность, запрашивая те недавно вытесненные строки, которые все еще находятся в буфере вытеснения. Буфер хранения (store buffer) был изобретен IBM в рамках проекта ACS в период с 1964 по 1968 год, но впервые был реализован в коммерческих продуктах в 1990-х годах.