Intel
®
81341 and 81342 I/O Processors
December 2007
Developer’s Manual
Order Number: 315037-002US
497
Application DMA Unit—Intel
®
81341 and 81342
5.7.4
Dual XOR Operation
describes the Dual XOR algorithm implementation. The Dual XOR operation
generates new versions of the Horizontal and Diagonal parity check data blocks when a
single block write occurs to a data storage subsystem that is protected by two-
dimensional XOR RAID6. In this illustrative example, there are four blocks of source
data to be XOR-ed. The intermediate results are kept by the XOR store queue in the
ADMA before being written back to local memory. The source data is located at
addresses 0 A000 0400H, 0 A000 0800H, 0 A000 0C00H and 0 A000 1000H
respectively.
All data transfers needed for this operation are controlled by chain descriptors located
in local memory. The Application DMA as a master on the internal bus through its’
dedicated DDR SDRAM MCU port initiates a data transfer. The algorithm is implemented
such that as data is read from local memory, the boolean unit executes the XOR
operation on incoming data.
Figure 63. The Bit-wise Dual XOR Algorithm
0 A000 0400H
Block 1
MSB
LSB
0 A000 0800H
0 A000 0C00H
0 A000 1000H
bitwise-XOR
(64-bit wide)
bitwise-XOR
(64-bit wide)
bitwise-XOR
(64-bit wide)
1K byte
byte 1
byte 8
1024 bytes
bytes 1-8
1024 bytes
bytes 1-8
1024 bytes
bytes 1-8
bytes 1-8
1024 bytes
Block 2
Horizontal
Diagonal
...
...
...
SAR2 (H-Source) = 0 A000 0C00H
ADAR (H-Destination) = 0 B000 0400H
SAR3 (D-Source) = 0 A000 1000H
SAR1 = 0 A000 0800H
SAR0 = 0 A000 0400H
ABCR = 0000 0400H
ADCR = 0002 001FH
Control Register Values
0 B000 0400H
128-Deep
Store Queues
Local Memory
byte 8
byte 1
...
...
...
Source
Source
Diagonal Result
Horizontal Result
0 B000 0800H
SAR4 (D-Destination) = 0 B000 0800H
B6230-01
Note: All of the Source Data Streams are required to be in Local Memory for the Dual XOR operation to
operate properly. The ADMA does not support Source Data streams for Dual XOR operations that are
located in Host Memory or the Internal Bus. However, the ADMA does provide for the Parity stripes to
be written to the Host Memory or the Internal Bus.