Patent ID: 8645623
Filing Date: 2014-02-04
Classification: G06F

Abstract:
1. A method for performing a RAID operation on a data storage system including one or more data pipes, wherein the one or more data pipes are enabled to facilitate user data transfers on the data storage system, comprising: (a) fetching a RAID descriptor pointing to a first entry of a linked list of RAID SGL entries, the RAID descriptor being associated with the linked list of RAID SGL entries; each one of the RAID SGL entries pointing to an address array of a local memory, each one of the RAID SGL entries having a next entry pointer pointing to a next entry in the linked list; (b) fetching the first entry of the linked list from the local memory, such first entry having an array pointer to an array of source addresses and a destination pointer; (c) fetching the array pointer to the address array from the local memory, such address array having a plurality of the source addresses, each one of the source addresses being associated with a corresponding one of a plurality of blocks of user data, the source addresses corresponding to one of a plurality of data pools stored in the local memory, each one of the RAID SGL entries having a next entry pointer to a next entry in the linked list of RAID SGL entries from a first slot of the local memory; (d) fetching each of the blocks of user data sequentially from the local memory; (e) configuring a first of the one or more data pipes to process each of the blocks of user data using an XOR operation; (f) processing, via the first of the one or more data pipes, each of the blocks of user data, wherein the first of the one or more data pipes accumulates the user data into a buffer; and (g) storing the accumulated data from the buffer into the local memory at a location pointed to by the destination pointer.