Z80 Tiger hash
Tiger hash implementation for the Z80
In a momentary lapse of reason I decided to implement a Tiger hash algorithm on the MSX. So, this is what you see before you. The tiger hash is a hash algorithm designed for 64-bit systems, but it is supposed to scale down fairly well. The resulting key is 192 bits wide (24 bytes).
The algorithm runs at a rate of 23232.850812 bits/sec on a 7MHz Z80 with minimum interrupts. This means about 11 seconds for 32 kB of data. I optimized it fairly well, unrolling loops and effective coding, but I guess there are still some optimizations to be found. However, I don't think there are any that will have a major impact on the performance.
Compare speeds:
| Performance | System | 
|---|---|
| 23232.850812 bits/sec | 7.14Mhz Z80 | 
| 3224065.573770 bits/sec | 33Mhz 80486 | 
| 14368438.356164 bits/sec | Sparc10 with reordering of the bytes | 
| 19163751.522533 bits/sec | Sparc10 | 
| 132038961.823374 bits/sec | 200Mhz Alpha | 
Note that the Z80 is an 8-bit CPU, the Alpha is a 64-bit CPU, and the others are 32-bit.
For more details, visit the Tiger homepage.
Download
The sources are included.
Grauw
