Fly-by XOR for generating parity for data gleaned from a bus
First Claim
1. A method including the steps ofreading at least one block of data from a stripe, said stripe including one storage block on each one of a plurality of mass storage devices, said step of reading including the step of transferring data from said block of data over a bus;
- andwhile performing said step of transferring said block of data over said bus, accumulating a result of an XOR operation without interfering with said step of transferring.
2 Assignments
0 Petitions
Accused Products
Abstract
The invention provides a method and system for performing XOR operations without consuming substantial computing resources. A specialized processor is coupled to the same bus as a set of disk drives; the specialized processor reviews data transfers to and from the disk drives and performs XOR operations on data transferred to and from the disk drives without requiring separate transfers. The specialized processor maintains an XOR accumulator which is used for XOR operations, which records the result of XOR operations, and which is read out upon command of the processor. The XOR accumulator includes one set of accumulator registers for each RAID stripe, for a selected set of RAID stripes. A memory (such as a contents-addressable memory) associates one set of accumulator registers with each selected RAID stripe.
222 Citations
11 Claims
-
1. A method including the steps of
reading at least one block of data from a stripe, said stripe including one storage block on each one of a plurality of mass storage devices, said step of reading including the step of transferring data from said block of data over a bus; - and
while performing said step of transferring said block of data over said bus, accumulating a result of an XOR operation without interfering with said step of transferring. - View Dependent Claims (2, 3, 4)
- and
-
5. In a system having a processor, a memory, a memory bus coupling said processor and said memory, a plurality of mass storage devices, and a secondary bus coupling said plurality of mass storage devices to said memory bus, a method including the steps of
initiating a DMA operation between at least one of said plurality of mass storage devices and a buffer location in said memory; -
monitoring said secondary bus for a plurality of addresses in said buffer location; copying data associated with said plurality of addresses into an XOR buffer without interfering with said DMA operation; and accumulating a result of an XOR operation for said data. - View Dependent Claims (6)
-
-
7. A system including
a processor, a memory bus coupled to said processor, and a memory coupled to said memory bus; -
a plurality of mass storage devices and a secondary bus coupling said plurality of mass storage devices to said memory bus, whereby said secondary bus is used for transferring data to and from one of said plurality of mass storage devices; and an element coupled to said secondary bus, said element including a means for copying data transferred to and from one of said plurality of mass storage devices without interfering with said operation of transferring, and including a means for accumulating a result of an XOR operation for said data. - View Dependent Claims (8, 9, 10)
-
-
11. In a system having a processor, a memory, a memory bus coupling said processor and said memory, a plurality of mass storage devices, and a secondary bus coupling said plurality of mass storage devices to said memory bus, a data structure including
a plurality of XOR accumulator buffers, each having a result of an XOR operation performed on data; - and
a table having a plurality of entries, each entry associating a portion of a memory address with one of said plurality of XOR accumulator buffers, said memory address being associated with said data.
- and
Specification