Write buffer
This article needs additional citations for verification. (June 2019) |
A write buffer is a type of
A variation of
Use of a write buffer in this manner frees the cache to service read requests while the write is taking place. It is especially useful for very slow main memory in that subsequent reads are able to proceed without waiting for long main memory latency. When the write buffer is full (i.e. all buffer entries are occupied), subsequent writes still have to wait until slots are freed. Subsequent reads could be served from the write buffer. To further mitigate this stall, one optimization called write buffer merge may be implemented. Write buffer merge combines writes that have consecutive destination addresses into one buffer entry. Otherwise, they would occupy separate entries which increases the chance of pipeline stall.
A victim buffer is a type of write buffer that stores dirty evicted lines in
The store buffer was invented by IBM during Project ACS between 1964 and 1968,[3] but it was first implemented in commercial products in the 1990s.
Notes
- Write-throughcaches don't need write the evicted cache lines as they are written to main memory when the cache is written.
References
- ^ Owens, Scott, Susmit Sarkar, and Peter Sewell. "A better x86 memory model: x86-TSO." Theorem Proving in Higher Order Logics. Springer Berlin Heidelberg, 2009. 391-407.
- ^ Oberhauser, Jonas. "A Simpler Reduction Theorem for x86-TSO." Verified Software: Theories, Tools, and Experiments. Springer International Publishing, 2015. 142-164
- ISBN 978-1-4503-1049-9.