Abstract:
A method and system for processing data are disclosed. A processor, in response to executing a software program, may write an entry in a work queue. The entry may include an operation, and a location of data stored in an input buffer, and a location in an output buffer to write processed data. The processor may also generate a notification that at least one entry in the work queue is ready to be processed. The data transformation unit may assign the entry to a data transformation circuit, and retrieve the data from the input buffer using the location. The data transformation unit may also perform to the operation on the retrieved data to generate updated data, generate a completion message in response to completion of the operation, and store the updated data in an output buffer. An interface unit may relay transactions between the processor and the data transformation unit.
Abstract:
Implementations described and claimed herein provide systems and method for prefetching data. In one implementation, whether a read request for a first data block is part of a sequential access stream is determined. A first trigger for a subsequent data block in the sequential access stream is recorded. A first set of data blocks is prefetched. The first set of data blocks is defined by a first prefetch window associated with the first trigger. A second trigger is recorded for a second subsequent data block in the sequential access stream. A second set of data blocks is prefetched. The second set of data blocks is defined by a second prefetch window associated with the first trigger. A size of the prefetch windows may be dynamically adjusted based on resource contention with the prefetching.
Abstract:
A method and system for processing data are disclosed. A processor, in response to executing a software program, may write an entry in a work queue. The entry may include an operation, and a location of data stored in an input buffer, and a location in an output buffer to write processed data. The processor may also generate a notification that at least one entry in the work queue is ready to be processed. The data transformation unit may assign the entry to a data transformation circuit, and retrieve the data from the input buffer using the location. The data transformation unit may also perform to the operation on the retrieved data to generate updated data, generate a completion message in response to completion of the operation, and store the updated data in an output buffer. An interface unit may relay transactions between the processor and the data transformation unit.
Abstract:
Implementations described and claimed herein provide a coordination of interdependent asynchronous reads. In one implementation, an input/output request for a target data block stored on a block device at a virtual address is received. A highest level indirect block from which the target data block depends in a hierarchical data structure pointing to the virtual address of the target data block is identified. The highest level indirect block is uncached. A context item is recorded to an input/output structure for the highest level indirect block. The context item indicates that an ultimate objective of a read request for the highest level indirect block is to retrieve the target data block. The input/output request is asynchronously reissued for the target data block upon receipt of the read request for the highest level indirect block.
Abstract:
Implementations described and claimed herein provide systems and method for prefetching data. In one implementation, whether a read request for a first data block is part of a sequential access stream is determined. A first trigger for a subsequent data block in the sequential access stream is recorded. A first set of data blocks is prefetched. The first set of data blocks is defined by a first prefetch window associated with the first trigger. A second trigger is recorded for a second subsequent data block in the sequential access stream. A second set of data blocks is prefetched. The second set of data blocks is defined by a second prefetch window associated with the first trigger. A size of the prefetch windows may be dynamically adjusted based on resource contention with the prefetching.
Abstract:
Implementations described and claimed herein provide a coordination of interdependent asynchronous reads. In one implementation, an input/output request for a target data block stored on a block device at a virtual address is received. A highest level indirect block from which the target data block depends in a hierarchical data structure pointing to the virtual address of the target data block is identified. The highest level indirect block is uncached. A context item is recorded to an input/output structure for the highest level indirect block. The context item indicates that an ultimate objective of a read request for the highest level indirect block is to retrieve the target data block. The input/output request is asynchronously reissued for the target data block upon receipt of the read request for the highest level indirect block.