Author_Institution :
Bellcore, Morristown, NJ, USA
Abstract :
Software implementations of error detection codes are considered to be slow compared to other parts of the communication system. This is especially true for powerful error detection codes such as CRC. However, we have found that powerful error detection codes can run surprisingly fast in software. We discuss techniques for, and measure the performance of, fast software implementation of the cyclic redundancy check (CRC), weighted sum codes (WSC), one´s-complement checksum, Fletcher (1982) checksum, CXOR checksum, and block parity code. Instruction count alone does not determine the fastest error detection code. Our results show the computer memory hierarchy also affects performance. Although our experiments were performed on a Sun SPARCstation LX, many of the techniques and conclusions will apply to other processors and error detection codes. Given the performance of various error detection codes, a protocol designer can choose a code with the desired speed and error detection power that is appropriate for his network and application
Keywords :
Boolean functions; block codes; computational complexity; cryptography; cyclic codes; error detection codes; software engineering; telecommunication computing; CRC; CXOR checksum; Fletcher checksum; Sun SPARCstation LX; block parity code; communication system; computation time; computer memory hierarchy; error detection codes; fast software implementation; instruction count; one´s-complement checksum; performance measurement; processors; protocol design; weighted sum codes; wireless communication; Computer errors; Computer networks; Cyclic redundancy check; Cyclic redundancy check codes; Error analysis; Protection; Protocols; Software measurement; Sun; Wireless networks;