| 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 |
| Topic | Author | Date |
| 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 |



