|
| MIPS billig HASH/checksum algoritme Fra : Christian Madsen |
Dato : 30-03-04 16:46 |
|
Kære grupper,
I forbindelse med et projekt, har jeg brug for en MIPS billig algoritme
til at generere checksum/HASH over 8-64kb hvor minimum 16 bit nøgle er
påkrævet, men gerne 32 bit. Følgende krav gælder:
* Følsom overfor ombytning af bytes/words
* Min. 16 bit nøgle, men gerne 32
Indtil videre har jeg fundet en meget billig
implementation af CRC-16:
http://www.lawrencechitty.uklinux.net/wizardwiki/index.php?fast%20CRC
(c source nederst på siden), der kompilerer til 29 instruktioner på
arm7, men det er ca. 8 gange for lang tid. En simpel XOR checksum er ikke
god nok, da den ikke er overfølsom for ombytning af bytes.
Er der nogen, der har gode ideer/links til løsninger på problemet?
På forhånd tak,
Christian
| |
Anders J. Munch (30-03-2004)
| Kommentar Fra : Anders J. Munch |
Dato : 30-03-04 18:31 |
|
"Christian Madsen" <chr_madsen@doktormadsen.dk> skrev:
> Kære grupper,
>
> I forbindelse med et projekt, har jeg brug for en MIPS billig algoritme
> til at generere checksum/HASH over 8-64kb hvor minimum 16 bit nøgle er
> påkrævet, men gerne 32 bit. Følgende krav gælder:
>
> * Følsom overfor ombytning af bytes/words
> * Min. 16 bit nøgle, men gerne 32
Adler-32 er svaret på dine bønner.
For den sølle pris af en passende kreditering af forfatterne kan du
rippe Mark Adlers and Jean-loup Gaillys uhyggeligt effektive
implementation fra zlib.
mvh. Anders
| |
Christian Madsen (31-03-2004)
| Kommentar Fra : Christian Madsen |
Dato : 31-03-04 16:32 |
|
Anders, tak.
Har prøvet implementationen fra RFC1950 - den kørte gennem 64kb på 5ms.
på en ARM7@52MHz.
Jeg vil prøve Mark Adlers and Jean-loup Gaillys uhyggeligt effektive
implementation fra zlib og se om det gi'r noget.
Mvh,
Christian
On Tue, 30 Mar 2004 19:31:05 +0200, Anders J. Munch wrote:
> "Christian Madsen" <chr_madsen@doktormadsen.dk> skrev:
>> Kære grupper,
>>
>> I forbindelse med et projekt, har jeg brug for en MIPS billig algoritme
>> til at generere checksum/HASH over 8-64kb hvor minimum 16 bit nøgle er
>> påkrævet, men gerne 32 bit. Følgende krav gælder:
>>
>> * Følsom overfor ombytning af bytes/words
>> * Min. 16 bit nøgle, men gerne 32
>
> Adler-32 er svaret på dine bønner.
>
> For den sølle pris af en passende kreditering af forfatterne kan du
> rippe Mark Adlers and Jean-loup Gaillys uhyggeligt effektive
> implementation fra zlib.
>
> mvh. Anders
| |
Ivar (02-04-2004)
| Kommentar Fra : Ivar |
Dato : 02-04-04 23:20 |
|
Christian Madsen skrev:
> der kompilerer til 29 instruktioner på
> arm7, men det er ca. 8 gange for lang tid.
Brug tabelopslag!
Her er en billig CRC-rutine (igen nederst på siden)
http://www.modicon.com/techpubs/crc7.html
Den bruger 0xA001 som polynomium.
Du kommer dog ikke ned på 4 instruktioner. Hvis du ikke har
mere regnekraft til rådighed, må du klare dig med en simpel
32-bit sum eller ligende.
Ivar Magnusson
| |
Stig Johansen (03-04-2004)
| Kommentar Fra : Stig Johansen |
Dato : 03-04-04 09:02 |
|
Christian Madsen wrote:
> Er der nogen, der har gode ideer/links til løsninger på problemet?
Nu er det godt nok 100 år siden, jeg har kodet på det niveau, men derfor kan
det godt være, jeg kan bidrage med ideer.
Nu skriver du 'ideer/løsning på problemet', men hvad er problemet?
Er det kontrol af serialiseret datainput?
Er det kontrol af en ind/udgående datapakke?
Har du mulighed for at 'løfte sløret' over hvad du har gang i?
--
Med venlig hilsen
Stig Johansen
| |
|
|