Method and apparatus for employing commit-signals and prefetching to maintain inter-reference ordering in a high-performance I/O processor
First Claim
1. An I/O processor (IOP) for delivering I/O performance while maintaining inter-reference ordering among memory reference operations issued by an I/O device to a shared memory multiprocessor system, the IOP comprising:
- an I/O cache having a plurality of cache entries for storing data relating to the memory reference operations issued by the I/O device; and
a retire controller coupled to the I/O cache and configured to one of (i) retrieve data from an entry of the cache and provide the retrieved data to the I/O device and (ii) update the entry with data provided by the I/O device, the retire controller imposing inter-reference ordering among the memory reference operations including operations issued to the system for data not present in the cache, the inter-reference ordering based on receipt of a commit signal for each operation issued to the system, the commit signal generated by an ordering point of the system and transmitted to the IOP in response to total ordering of each issued operation at the ordering point, wherein the commit signal for a memory reference operation indicates the apparent completion of the operation rather than actual completion of the operation.
5 Assignments
0 Petitions
Accused Products
Abstract
An improved I/O processor (IOP) delivers high I/O performance while maintaining inter-reference ordering among memory reference operations issued by an I/O device as specified by a consistency model in a shared memory multiprocessor system. The IOP comprises a retire controller which imposes inter-reference ordering among the operations based on receipt of a commit signal for each operation, wherein the commit signal for a memory reference operation indicates the apparent completion of the operation rather than actual completion of the operation. In addition, the IOP comprises a prefetch controller coupled to an I/O cache for prefetching data into cache without any ordering constraints (or out-of-order). The ordered retirement functions of the IOP are separated from its prefetching operations, which enables the latter operations to be performed in an arbitrary manner so as to improve the overall performance of the system.
109 Citations
18 Claims
-
1. An I/O processor (IOP) for delivering I/O performance while maintaining inter-reference ordering among memory reference operations issued by an I/O device to a shared memory multiprocessor system, the IOP comprising:
-
an I/O cache having a plurality of cache entries for storing data relating to the memory reference operations issued by the I/O device; and a retire controller coupled to the I/O cache and configured to one of (i) retrieve data from an entry of the cache and provide the retrieved data to the I/O device and (ii) update the entry with data provided by the I/O device, the retire controller imposing inter-reference ordering among the memory reference operations including operations issued to the system for data not present in the cache, the inter-reference ordering based on receipt of a commit signal for each operation issued to the system, the commit signal generated by an ordering point of the system and transmitted to the IOP in response to total ordering of each issued operation at the ordering point, wherein the commit signal for a memory reference operation indicates the apparent completion of the operation rather than actual completion of the operation. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. A method for delivering input/output (I/O) performance while maintaining inter-reference ordering among memory reference operations issued by an I/O device to an I/O processor (IOP) for data in a shared memory multiprocessor system, the method comprising the steps of:
-
issuing a first memory reference operation from the I/O device to a prefetch controller of the IOP; transferring the first memory reference operation to the system as a prefetch operation for data requested by the first memory reference operation in response to the requested data not being present in a cache of the IOP; loading the first memory reference operation into a retire queue of the IOP; issuing a second memory reference operation from the I/O device to the prefetch controller of the IOP and loading the second memory reference operation into the retire queue behind the first memory reference operation; in response to the first memory reference operation propagating to a head of the retire queue, determining whether the requested data is present in the cache; if the requested data is not present in the cache, keeping the first memory reference operation at the head of the queue until the requested data is provided to the cache; if the requested data is present in the cache, delaying retirement of the second memory reference operation until a commit signal corresponding to the prefetch operation has been returned to the cache, the commit signal generated by an ordering point of the system and transmitted to the cache in response to total ordering of the prefetch operation at the ordering point, thereby maintaining inter-reference ordering among the operations issued by the I/O device. - View Dependent Claims (16, 17, 18)
-
Specification