摘要 |
A disk controller includes memory that is accessible by both a microprocessor and hardware parity logic. Parity-related operations are identified by scenario, and parity coefficient subsets are stored in a memory table for each different parity-related calculation scenario. To perform a particular parity-related operation, the microprocessor determines the operation's scenario and identifies the corresponding coefficient subset. The hardware parity logic is then instructed to perform the appropriate parity computation, using the identified coefficient subset. Parity segments are calculated by a parity segment calculation module that is embodied as an application specific integrated circuit (ASIC). The ASIC includes one or more local result buffers for holding intermediate computation results, one or more mathematical operator components configured to receive data strips, which are portions of larger data stripes, coefficients associated with the data strips, and operates on them to provide intermediate computation results that can be written to the local result buffers Upon completing the parity processing of a strip, the results are then stored in an external memory (e.g., RAM). Upon completing the processing of all of the strips in a stripe, the final parity results are written to applicable sections of a stripe-based disk array.
|