Lines Matching refs:of

4 and the whole thing (message+CRC) is a multiple of the given
8 is used by a lot of hardware implementations, and is why so many
9 protocols put the end-of-frame flag after the CRC.
23 Note that a CRC is computed over a string of *bits*, so you have
24 to decide on the endianness of the bits within each byte. To get
32 Each step of the division you take one more digit (bit) of the dividend
34 appropriate multiple of the divisor to subtract to being the remainder
36 and to make the XOR cancel, it's just a copy of bit 32 of the remainder.
39 throw the quotient bit away, but subtract the appropriate multiple of
49 Notice how, to get at bit 32 of the shifted remainder, we look
50 at bit 31 of the remainder *before* shifting it.
54 32 bits later. Thus, the first 32 cycles of this are pretty boring.
57 end of every message,
77 The most significant coefficient of the remainder polynomial is stored
78 in the least significant bit of the binary "remainder" variable.
79 The other details of endianness have been hidden in CRCPOLY (which must
102 If the input is a multiple of 32 bits, you can even XOR in a 32-bit
106 bulk of a message byte-at-a-time and adding bit-at-a-time processing
109 To reduce the number of conditional branches, software commonly uses
111 "Computation of Cyclic Redundancy Checks via Table Look-Up", Comm. ACM
114 Here, rather than just shifting one bit of the remainder to decide
117 and the correct multiple of the polynomial to subtract is found using
120 (The table entries are simply the CRC-32 of the given one-byte messages.)
127 more importantly, too much of the L1 cache.
133 This does not change the number of table lookups, but does increase
135 must be completed before the index of the next can be computed.
150 Each step, 32 bits of data is fetched, XORed with the CRC, and the result
152 leaves the low-order bits of the intermediate remainder zero, the
153 final CRC is simply the XOR of the 4 table look-ups.
155 But this still enforces sequential execution: a second group of table
159 To make maximum use of the processor, "slicing by 8" performs 8 look-ups
161 with 64 bits of input data. What is important to note is that 4 of
162 those 8 bytes are simply copies of the input data; they do not depend
167 be kept busy and make full use of its L1 cache.
172 of a polynomial produces a larger multiple of that polynomial. Thus,
175 appending it. This makes the remainder of the message+crc come out not
176 as zero, but some fixed non-zero value. (The CRC of the inversion
180 similar solution is used. Instead of starting the CRC computation with
181 a remainder of 0, an initial remainder of all ones is used. As long as