Buffered transfer of data blocks between memory and processors independent of the order of allocation of locations in the buffer
First Claim
Patent Images
1. A method for controlling data block transfers, comprising:
- maintaining a pool of available storage locations within a buffer;
allocating a storage location from the pool in response to a pending request for transfer of a data block, wherein allocating includes designating the allocated storage location to be in a first state that indicates that the allocated storage location is unavailable for subsequent allocation and contains invalid data;
transferring the data block into the allocated storage location, wherein transferring includes designating the allocated storage location to be in a second state that indicates that the allocated storage location is unavailable for subsequent allocation and contains valid data; and
retrieving the data block from the allocated storage location, wherein retrieving the data block is independent of an order in which other storage locations within the buffer are allocated.
12 Assignments
0 Petitions
Accused Products
Abstract
A data transfer system uses a data buffer and individual control of each storage location within the data buffer for improved control of data block transfers. The storage locations are assigned deallocate, active, or valid assignment bands to enable transfer control of the data blocks within the system. The deallocated storage locations are returned to an allocation pool for use as a future resource, where the active and valid assignment bands remain unavailable until deallocated. Error checking and depth control prohibit consecutive allocation or deallocation assignments as well as overflow.
-
Citations
17 Claims
-
1. A method for controlling data block transfers, comprising:
-
maintaining a pool of available storage locations within a buffer; allocating a storage location from the pool in response to a pending request for transfer of a data block, wherein allocating includes designating the allocated storage location to be in a first state that indicates that the allocated storage location is unavailable for subsequent allocation and contains invalid data; transferring the data block into the allocated storage location, wherein transferring includes designating the allocated storage location to be in a second state that indicates that the allocated storage location is unavailable for subsequent allocation and contains valid data; and retrieving the data block from the allocated storage location, wherein retrieving the data block is independent of an order in which other storage locations within the buffer are allocated. - View Dependent Claims (2, 3, 4)
-
-
5. A multiprocessor system, comprising:
-
a plurality of multiprocessors sharing a common system bus with access to a common memory pool; and a node controller coupled to each of the plurality of multiprocessors, wherein the node controller includes, a plurality of buffers coupled to receive data blocks and coupled to provide the data blocks independently of a position of the data blocks within the plurality of buffers; and a buffer tracker coupled to the plurality of buffers to control data block transfer according to assignment bands associated with the data blocks, wherein the buffer tracker includes, an allocation controller coupled to receive an allocation request for a storage location within the plurality of buffers and coupled to provide a first assignment band to the storage location in response to the allocation request; and a deallocation controller coupled to receive a deallocation request for the storage location within the plurality of buffers and coupled to provide a second assignment band to the storage location in response to the deallocation request. - View Dependent Claims (6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A method of maintaining an assignment band of a data block within a buffer to control access to the data block, the method comprising:
-
establishing a first assignment band for the data block in response to receiving an allocation request; establishing a second assignment band for the data block when data is written to the data block in accordance with a first data pointer; and establishing a third assignment band for the data block when data is read from the data block in accordance with a second data pointer. - View Dependent Claims (15, 16, 17)
-
Specification