Write combining (WC) is a
computer bus technique for allowing
data
In the pursuit of knowledge, data (; ) is a collection of discrete Value_(semiotics), values that convey information, describing quantity, qualitative property, quality, fact, statistics, other basic units of meaning, or simply sequences of sy ...
to be combined and temporarily stored in a
buffer
Buffer may refer to:
Science
* Buffer gas, an inert or nonflammable gas
* Buffer solution, a solution used to prevent changes in pH
* Buffering agent, the weak acid or base in a buffer solution
* Lysis buffer, in cell biology
* Metal ion buffer
* ...
the write combine buffer (WCB) to be released together later in
burst mode instead of writing (immediately) as single
bit
The bit is the most basic unit of information in computing and digital communications. The name is a portmanteau of binary digit. The bit represents a logical state with one of two possible values. These values are most commonly represente ...
s or small chunks.
Technique
Write combining cannot be used for general memory access (data or code regions) due to the
weak ordering
In mathematics, especially order theory, a weak ordering is a mathematical formalization of the intuitive notion of a ranking of a set, some of whose members may be tied with each other. Weak orders are a generalization of totally ordered ...
. Write-combining does not guarantee that the combination of writes and reads is done in the expected order. For example, a
write
/
read
/
write
combination to a specific address would lead to the write combining order of
read
/
write
/
write
which can lead to obtaining wrong values with the first read (which potentially relies on the write before).
In order to avoid the problem of read/write order described above, the
write buffer can be treated as a
fully associative cache
Cache, caching, or caché may refer to:
Places United States
* Cache, Idaho, an unincorporated community
* Cache, Illinois, an unincorporated community
* Cache, Oklahoma, a city in Comanche County
* Cache, Utah, Cache County, Utah
* Cache County ...
and added into the
memory hierarchy of the device in which it is implemented.
Adding complexity slows down the
memory hierarchy so this technique is often only used for memory which does not need
strong ordering (always correct) like the
frame buffer
A framebuffer (frame buffer, or sometimes framestore) is a portion of random-access memory (RAM) containing a bitmap that drives a video display. It is a memory buffer containing data representing all the pixels in a complete video frame. Mode ...
s of
video cards
A graphics card (also called a video card, display card, graphics adapter, VGA card/VGA, video adapter, display adapter, or mistakenly GPU) is an expansion card which generates a feed of output images to a display device, such as a computer mo ...
.
See also
*
Framebuffer
A framebuffer (frame buffer, or sometimes framestore) is a portion of random-access memory (RAM) containing a bitmap that drives a video display. It is a memory buffer containing data representing all the pixels in a complete video frame. Mode ...
(FB), and when linear: LFB
*
Memory type range register
Memory type range registers (MTRRs) are a set of processor supplementary capability control registers that provide system software with control of how accesses to memory ranges by the CPU are cached. It uses a set of programmable model-specifi ...
s (MTRR) – the older x86 cache control mechanism
*
Page attribute table
The page attribute table (PAT) is a processor supplementary capability extension to the page table format of certain x86 and x86-64 microprocessors. Like memory type range registers (MTRRs), they allow for fine-grained control over how areas of ...
(PAT) – x86 page table extension that allows fine-grained cache control, including write combining
*
Page table
A page table is the data structure used by a virtual memory system in a computer operating system to store the mapping between virtual addresses and physical addresses. Virtual addresses are used by the program executed by the accessing proces ...
*
Uncacheable speculative write combining (USWC)
*
Video Graphics Array
Video Graphics Array (VGA) is a video display controller and accompanying de facto graphics standard, first introduced with the IBM PS/2 line of computers in 1987, which became ubiquitous in the PC industry within three years. The term can n ...
(VGA), and Banked (BVGA) Frame Buffer
References
{{Reflist
External links
6x86opt, ctppro, CTU, DirectNT, FastVid, fstorion, K6Speed, MTRRLFBE, S3 Speed Up & Write Allocate Monitorenable
LFB
The London Fire Brigade (LFB) is the Fire department, fire and rescue service for London, the capital of the United Kingdom. It was formed by the Metropolitan Fire Brigade Act 1865, under the leadership of superintendent Eyre Massey Shaw. It ha ...
and BVGA Write Combining on Intel Pentium Pro/2/3/4 and AMD K6
CPUs in Windows 9x, Windows NTx, DOS, OS/2 and Linux
MTRRLFBEenable LFB and BVGA Write Combining on Intel Pentium Pro/2/3/4 CPUs in Windows 9x and DOS
CTU(Internet Archive cached copy) enable LFB and Banked VGA Write Combining on AMD K6 CPUs in Windows 9x and DOS
Computer buses
Computer memory