Fast diagonal interleaved parity (DIP) calculator
First Claim
1. A programmable device configured to calculate a diagonal interleaved parity word for a packet formed from a sequence of data words and ending in a control word, wherein the programmable device is configured to sequentially process the packet a predetermined number of words at a time, the programmable device comprising:
- a plurality of programmable blocks, one or more of the programmable blocks being configured to implement a set of XOR calculation chains, the one or more programmable blocks being configured such that the XOR calculation chains have the same length regardless of the number of data words in the packet.
5 Assignments
0 Petitions
Accused Products
Abstract
A method of calculating a diagonal interleaved parity word for groups of words sampled from a bus is provided, wherein a predetermined number of words are included in each sampling cycle. The bus carries successive data words that are followed by a control word. At each sampling cycle, diagonal XOR calculations chains are propagated through the words that were sampled. However, if a sampling cycle includes the control word, the words following the control word are assigned to logical zero values. The diagonal XOR calculation chains may then be terminated after processing the words in this sampling cycle to derive an intermediate diagonal parity word. The intermediate diagonal parity word may then be adjusted according to the number of words that were assigned logical zero values to calculate the diagonal interleaved parity word.
-
Citations
16 Claims
-
1. A programmable device configured to calculate a diagonal interleaved parity word for a packet formed from a sequence of data words and ending in a control word, wherein the programmable device is configured to sequentially process the packet a predetermined number of words at a time, the programmable device comprising:
a plurality of programmable blocks, one or more of the programmable blocks being configured to implement a set of XOR calculation chains, the one or more programmable blocks being configured such that the XOR calculation chains have the same length regardless of the number of data words in the packet. - View Dependent Claims (2, 3, 4, 5, 6)
-
7. A method of calculating a diagonal interleaved parity (DIP) word from a packet formed from a succession of data words ordered from a first data word to a last data word, the packet ending in a control word, the method comprising:
-
successively sampling a predetermined number of ordered words from the packet, wherein the first sample starts at the first data word; for each successive sample of words, determining whether the control word is included in the sample; if the control word is not included in the sample of words, propagating a set of diagonal XOR calculation chains through the sample; and if the control word is included in the sample of words, assigning the words following the control word in the sample to logical zeroes and then propagating the set of diagonal XOR calculation chains through the sample of words to provide an intermediate DIP parity word. - View Dependent Claims (8, 9, 10, 11, 12, 13, 14, 15, 16)
-
Specification