Intel
®
81341 and 81342 I/O Processors
December 2007
Developer’s Manual
Order Number: 315037-002US
499
Application DMA Unit—Intel
®
81341 and 81342
The Dual XOR algorithm and methodology followed once a chain descriptor has been
configured is detailed below:
1. The Application DMA as a master on the bus initiates data transfer from the
address pointed at by the First Source Address Register (SAR0
21
). The total
number of bytes to Dual-XOR-transfer is specified by the Byte Count (BC) field in
the chain descriptor.
a. This is designated as the first block of data in the current Dual XOR operation, and the
data is transferred directly to the XOR store queue. The number of bytes transferred to the
XOR store queue is 1 KByte.
Note:
When the Byte Count Register contains a value greater than the buffer size, the ADMA
completes the Dual-XOR-transfer operation on the first buffer of data obtained from
each Source Register (SAR0, SAR1, Horizontal Source Data (SAR2), Diagonal Source
Data (SAR3)), then proceeds with the next buffer of data. This process is repeated until
the BCR contains a zero value.
2. The Application DMA transfers the first eight bytes of data from the address pointed
at by the Second Source Address Register (SAR1).
3. The XOR unit performs the bit-wise XOR algorithm on the input operands. The input
operands are the first eight bytes of data read from SAR0 (bytes 1-8) which are
stored in the queue and the first eight bytes of data just read from SAR1 (bytes 1-
8).
4. The XOR-ed result is transferred to the XOR store queue and stored in the first
eight bytes (bytes 1-8) overwriting previously stored data.
5. The Application DMA transfers the next eight bytes of data (bytes 9-16) from
address pointed at by the Second Source Address Register (SAR1).
6. The XOR unit performs the bit-wise XOR algorithm on the input operands. The input
operands are the next eight bytes of data read from SAR0 (bytes 9-16 stored in the
queue) and the eight bytes of data read from SAR1 in Step-5.
7. Step-5 and Step-6 (Data transfer & XOR) are repeated until all data pointed at by
SAR1 is XOR-ed with the corresponding data pointed at by SAR0. The XOR store
queue now contains a buffer full of XOR-ed data, the source addresses for which
were specified in SAR0 and SAR1.
8. Steps 2-7 are repeated for the Horizontal Source. However, the XOR results are
written to the Destination store queue rather than being written back to the XOR
store queue as in steps 2-7.
9. The data in the Destination store queue is then written to memory at the address
pointed to by the Horizontal Destination Address (DLADR/DUADR).
10. Steps 2-7 are repeated for the Diagonal Source. However, the XOR results are
written to the Destination store queue rather than being written back to the XOR
store queue as in steps 2-7.
11. The data in the Destination store queue is then written to memory at the address
pointed to by the Diagonal Destination Address (SAR4).
12. Once Steps 1-11 are completed, the Dual XOR operation is complete for the first
full buffer of the current chain descriptor.
13. The Byte Count is decremented by one full buffer as the Diagonal Parity result in
the Destination store queue is written to memory.
14. Repeat steps 1-13 until the byte count has decremented to zero.
21.SAR0…SAR3 represent the upper/lower address register pair associated with that source (e.g.,
SAR0 corresponds to the SLAR0/SUAR0 register pair)