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:

23232.850812 bits/sec7.14Mhz Z80
3224065.573770 bits/sec33Mhz 80486
14368438.356164 bits/secSparc10 with reordering of the bytes
19163751.522533 bits/secSparc10
132038961.823374 bits/sec200Mhz 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 Tiger hash for MSX

The sources are included.