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