Email: Password: Remember Me | Create Account (Free)

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
Michael Karas
08/04/07 19:38
Read: 755 times
Beaverton Or
USA


 
#142775 - I did benchmarks as such on AVR
Responding to: John Myers's previous message
I did the comparison on an AVR implementation with a CRC-16 with the 1021 poly. This was about 4 years ago so I do not recall the exact details but as close as I can remember the nibble is about 2.5 times faster than the bit serial mode. The byte table mode is about 1.5 times faster than the nibble mode.

On some processors the table lookup is more inefficient than on others (when the table is a constant array in the code space). This is particularly true on Harvard architecture processors such as AVRs and 8051s where data access to code space is cumbersome with the instructions provided.

I found it essential to have the speed gain that the nibble mode offered me over the bit serial method because we were using it to check the code FLASH CRC each time the system powered up. This power-up check was a customer requirement but the real time nature of the embedded application needed less than 400 msec reset to code start. When using the bit-serial-code, which I had originally inherited when I took over a project, the startup time was hovering around 950 msec.

Computational requirements for a CRC-8 are less than a 16-bit CRC algorithm so embedded developers can take that into account if they can drive the selection of the algorithm in use. Do note however that the error coverage of an 8-bit code is much lower than a 16-bit code. This is of particular concern when the payload that is being CRC'ed gets longer and longer in number of bytes. Of course many times there is no choice to be made if the CRC method is selected by the other end of the interface to your MCU.

Michael Karas




List of 23 messages in thread
TopicAuthorDate
How to create a crc table?      John Myers      08/04/07 02:33      
   simple      Jan Waclawek      08/04/07 08:10      
      RE: simple      John Myers      08/04/07 15:34      
         I said it\'s simple      Jan Waclawek      08/04/07 17:33      
            Thank you      John Myers      08/04/07 18:27      
            Protocols      Andy Neil      08/06/07 07:48      
               examples      Jan Waclawek      08/06/07 08:05      
   Runtime Computed Table??      Michael Karas      08/04/07 09:14      
      RE: Runtime...?      John Myers      08/04/07 16:02      
      table is not necessary      Jan Waclawek      08/04/07 17:41      
         Benchmark      John Myers      08/04/07 18:16      
            I did benchmarks as such on AVR      Michael Karas      08/04/07 19:38      
               Similar findings      Russell Bull      08/04/07 21:05      
                  no beavers that I've tended to!!      Michael Karas      08/04/07 22:50      
               not bitwise....      Jan Waclawek      08/05/07 02:45      
            Better is a strong word      Neil Kurzman      08/05/07 21:19      
               Also comment about SMBus PEC Code...      Michael Karas      08/05/07 21:30      
   The Table      Neil Kurzman      08/06/07 11:19      
   The Nibble Table for Poly 107      Neil Kurzman      08/06/07 11:20      
   The formula      Neil Kurzman      08/06/07 11:22      
   Have you seen this?      Richard Erlacher      08/06/07 18:42      
      Now I have      Neil Kurzman      08/06/07 21:26      
      Yes, that is a Key Document!      Andy Neil      08/07/07 02:45      

Back to Subject List