DMA controller and coherency-tracking unit for efficient data transfers between coherent and non-coherent memory spaces
AssigneeIntel Corporation
InventorAndrew V. Anderson
Life of this patent
Estimating the term…
Abstract
In a computer system, an agent, a DMA controller and a memory controller are provided, each in communication with a bus. The DMA controller and the memory controller also can communicate with each other via a second communication path. The computer system may include a memory provided in communication with the memory controller having a coherent memory space and a non-coherent memory space. The DMA controller transfers a portion of data from the coherent memory space with a portion of data from the non-coherent memory space with a single transaction on the external bus.
Claims16
A computer system, comprising:
- a memory having coherent and non-coherent memory spaces;
- a plurality of agents provided in communication via a bus that transfer data among one other via transactions on the bus, wherein:
- one of the agents is a memory controller that bridges the memory and the bus, and
- another of the agents is a DMA controller adapted to execute data transfers in the memory;
- and
- a coherency-tracking unit that identifies read requests on the bus that are directed to the addresses of page transfers in progress and generates invalidate commands on the bus when the page transfer completes.
A method of maintaining data coherency during a data transfer operation, comprising:
- identifying a range of addresses subject to the data transfer operation,
- during the data transfer operation:
- monitoring a bus for read requests that are not part of the data transfer operation, and
- if any of the monitored read requests implicate an address within the range of addresses, marking the address as stale,
- after the data transfer operation, for each stale address, generating an invalidate instruction identifying the stale address.
A method of maintaining data coherency during a data transfer operation, comprising:
- identifying a range of addresses subject to the data transfer operation,
- during the data transfer operation:
- monitoring a bus for a first read request of data pursuant to the data transfer operation,
- marking an address associated with the read request as pending,
- monitoring the bus for read requests that are not part of the data transfer operation,
- if any of the monitored read requests implicate an address that has been marked as pending, marking the address as stale,
- when the data transfer associated with the first read request concludes, clearing the pending status of the address associated with the first read request,
- after the data transfer operation, for each stale address, generating an invalidate instruction identifying the stale address.
A coherency tracking system, comprising:
- a DMA controller,
- a memory controller, in communication with the DMA controller via a system bus and via a secondary communication path, and
- a coherency tracking unit provided in communication with the system bus and the secondary communication path.
A coherency tracking system, comprising:
- a DMA controller,
- a memory controller, coupled to the DMA controller by a system bus and by a secondary communication path, and
- a coherency tracking unit coupled to the system bus and the secondary communication path.
A computer system, comprising:
- a memory organized into coherent and non-coherent memory spaces;
- a plurality of agents coupled to a bus operative according to a predetermined bus protocol, wherein:
- one of the agents is a memory controller that bridges between the memory and the bus, and
- another of the agents is a DMA controller adapted to execute data transfers in the memory, to identify read requests on the bus that are directed to addresses of page transfers in progress and, responsive to an identified read request, to generate an invalidate command on the bus when the page transfer completes.
A coherency tracking system, comprising:
- a DMA controller,
- a memory controller, coupled to the DMA controller via a system bus and via a secondary communication path, and
- a coherency tracking unit coupled to communication with the system bus and the secondary communication path.
Dependencies are inferred from the claim text.