🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: comp.sys.transputer
1 messages
1 total messages Started by Victor Todd Norman Thu, 09 May 1991 22:06
crcword
#1648
Author: Victor Todd Norman
Date: Thu, 09 May 1991 22:06
30 lines
1623 bytes
I am attempting to implement a communications protocol using
transputers, and I think it it necessary to use some kind of error
detection in each packet.  My first choice is to use a 16-bit
checksum (ala UDP or TCP), but since transputers don't like 16-bit
quantities (and especially since a shift right by 16 bits takes 18
cycles), I turned to the transputer's "crcword" instruction.  So, I
need to provide a "generator" word (page 69, Compiler Writers' Guide).

Another book I have states that IEEE 802 uses CRC-32, which defines
the generator polynomial as:

1 + X + X^2 + X^4 + X^5 + X^7 + X^8 + X^10 + X^11 + X^12 + X^16 + X^22
+ X^23 + X^26 + X^32.

This is confusing to me, because this polynomial seems to be of order
33; i.e., if I were to set a bit in the generator word for each term
in the above polynomial, I would need a 33 bit word, not a 32 bit
word.  I must be very confused...  Does anyone out there understand
this stuff?

Or, alternatively, can anyone suggest a way to implement a 16-bit
checksum (or a 32-bit checksum) efficiently (i.e., without 16 shifts
per word)?

Or, do you think doing the 16 shifts will be faster than using the
crcword instruction?

Thanks.

Vic Norman
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads