Method and apparatus for implementing PCI DMA speculative prefetching in a message passing queue oriented bus system
First Claim
1. Apparatus for performing speculative prefetching for a PCI DMA read request in a PCI—
- InfiniBand bridge system, the apparatus comprising;
an update mechanism responsive to data returning from an initial InfiniBand RDMA request issued to satisfy the PCI DMA read request for computing a next address from the read address of the initial InfiniBand RDMA request; and
a repeat mechanism that generates a new RDMA read request using the next address to perform a speculative prefetch.
0 Assignments
0 Petitions
Accused Products
Abstract
Speculative prefetching during DMA reads in a message-passing, queue-oriented bus system is controlled by creating a special data structure, called a “DMA scoreboard”, for each work queue entry associated with a DMA read. The DMA scoreboard tracks the completion of DMA writes and reads by monitoring acknowledgements received from DMA writes and data tags received from DMA read responses. The DMA scoreboard also contains a section that indicates the current PCI address, and size and number of prefetches to be performed. After a DMA read has completed, the PCI current address is incremented to obtain a new PCI address for the first prefetch request. A new work queue entry is then created from the information in the DMA scoreboard to perform the prefetch. If the amount of data to be fetched exceeds the maximum amount of data that can be retrieved by a single read request, when the read request has been completed, the address stored in the DMA scoreboard is again incremented to create another address and another work queue entry is created. Operation continues in this manner until the number of prefetches specified in the DMA scoreboard have been performed.
113 Citations
40 Claims
-
1. Apparatus for performing speculative prefetching for a PCI DMA read request in a PCI—
- InfiniBand bridge system, the apparatus comprising;
an update mechanism responsive to data returning from an initial InfiniBand RDMA request issued to satisfy the PCI DMA read request for computing a next address from the read address of the initial InfiniBand RDMA request; and
a repeat mechanism that generates a new RDMA read request using the next address to perform a speculative prefetch. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
- InfiniBand bridge system, the apparatus comprising;
-
13. A method for performing speculative prefetching for a PCI DMA read request in a PCI—
- InfiniBand bridge system, the method comprising;
(a) in response to data returning from an initial InfiniBand RDMA request issued to satisfy the PCI DMA read request, computing a next address from the read address of the initial InfiniBand RDMA request; and
(b) generating a new RDMA read request using the next address to perform a speculative prefetch. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24)
- InfiniBand bridge system, the method comprising;
-
25. Apparatus for performing speculative prefetching for a PCI DMA read request in a PCI—
- InfiniBand bridge system, the apparatus comprising;
means responsive to data returning from an initial InfiniBand RDMA request issued to satisfy the PCI DMA read request for computing a next address from the read address of the initial InfiniBand RDMA request; and
means for generating a new RDMA read request using the next address to perform a speculative prefetch. - View Dependent Claims (26, 27, 28, 29, 30)
- InfiniBand bridge system, the apparatus comprising;
-
31. A method for performing DMA read speculative prefetches in a message-passing, queue-oriented bus system having a memory and a DMA mechanism that generates a DMA read request to retrieve data, via the bus system, from the memory and receives a response for each DMA read request, the method comprising:
-
(a) using a DMA scoreboard data structure to store information concerning a current DMA request, the information including the current read address and a data tag identifying the current request;
(b) updating the DMA scoreboard data structure when a response is received that corresponds to the stored data tag; and
(c) generating a new DMA read request using the information in the updated DMA scoreboard data structure. - View Dependent Claims (32, 33, 34, 35, 36, 37, 38, 39, 40)
-
Specification