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

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
08/05/07 00:38
Read: times


 
#142775 - I did benchmarks as such on AVR
Responding to: ???'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?            01/01/70 00:00      
   simple            01/01/70 00:00      
      RE: simple            01/01/70 00:00      
         I said it\'s simple            01/01/70 00:00      
            Thank you            01/01/70 00:00      
            Protocols            01/01/70 00:00      
               examples            01/01/70 00:00      
   Runtime Computed Table??            01/01/70 00:00      
      RE: Runtime...?            01/01/70 00:00      
      table is not necessary            01/01/70 00:00      
         Benchmark            01/01/70 00:00      
            I did benchmarks as such on AVR            01/01/70 00:00      
               Similar findings            01/01/70 00:00      
                  no beavers that I've tended to!!            01/01/70 00:00      
               not bitwise....            01/01/70 00:00      
            Better is a strong word            01/01/70 00:00      
               Also comment about SMBus PEC Code...            01/01/70 00:00      
   The Table            01/01/70 00:00      
   The Nibble Table for Poly 107            01/01/70 00:00      
   The formula            01/01/70 00:00      
   Have you seen this?            01/01/70 00:00      
      Now I have            01/01/70 00:00      
      Yes, that is a Key Document!            01/01/70 00:00      

Back to Subject List