Patent ID: 8468278

Claim:
A method comprising: write-combining an outbound write transaction intended for transfer of associated data from system memory to an input/output (I/O) device by storing the associated data within a write-combinable buffer, the write-combinable buffer assigned to a range of addresses within a memory address space that is mapped to the I/O device in a memory-mapped Input/Output (MMIO) fashion, the range of addresses being a write-combinable range of addresses that include a set of one or more write-combining windows, each representing a contiguous address space within the range of addresses, and wherein each of the set of write-combining windows is established by a first write operation that falls within the range of addresses that is aligned on cache line boundaries, wherein said write-combinable buffer is a component integrated in a memory controller; detecting a doorbell register flush request for the I/O device within the memory address space mapped to the I/O device, wherein, the I/O device's device driver software directs the flushing of the write-combinable buffer by initiating the flush request; identifying the buffer based on the flush request's location within the memory address space mapped to the I/O device; and flushing the data contents of the buffer to the I/O.