This message is from the T13 list server.
On Thu, Mar 25, 2004 at 06:46:37PM -0700, Jim Castleberry wrote: >> One computes a 32-bit CRC. >> Random data has a probability of 1 in 2^32 to be accepted. >> >> In a stream where most blocks are accepted only few errors >> occur. So the question is whether a low weight word can be >> divisible by the CRC polynomial. >> I think the polynomial is 040460216667 (0x104c11db7) of weight 15. >> It will detect all single-bit errors. >> It will detect all double bit errors in blocks of less than 2^32-1 bits. >> It will detect any stuck data pin in blocks of less than 2^32 - 33 bits. >> It will detect all burst errors of length at most 32. >> But it will not detect multiples of itself, the smallest nonzero multiple >> having 33 bits. > The UDMA CRC is 16 bits, not 32. Yes, you are right. The above is for serial while the subject line says UDMA. I think UDMA uses a much weaker CRC with polynomial 0x11021 of weight 4. It has even weight, so will detect all errors of odd weight, in particular all single-bit errors. It will detect all double bit errors in blocks of less than 32768 bits. It will detect any stuck data pin in blocks of less than 32752 bits. It will detect all burst errors of length at most 16. But it will not detect multiples of itself, the smallest nonzero multiple having 17 bits, 4 nonzero.
