So what this benchmark does is it tests several aspects of the CPU in test, such as internal calculation speed, floating point performance, responsiveness (how long it takes to execute one instruction), memory transfer speed, interrupt handling speed, and then your basic instructions per second test. The benchmark takes all those scores and shows you then seperately, and then averages them to give you your overall performance rating.

There are two major drawbacks of this benchmark, the biggest one being that since it's testing the CPU itself, it is very hardware specific. You'll have to compile the same code for each CPU, and even more for each different machine the CPU is running on. So if you have binaries for say a ZX Spectrum, you can't use those binaries on other Z80 based machines that aren't similar to the Spectrum.

The second drawback is that the benchmark requires some special hardware/software to run. First it needs a programmable timer or system clock to track time with. Then it will also need an interrupt source for interrupt testing. Then it will need some way to do floating point calculations, either through software or through an FPU. This isn't so much as so it can do the floating point test, but it needs floating point to calculate scores. And finally it needs a terminal output so it can display results.

Some benefits though include being able to see what a certain CPU/machine performs well at, and what it doesn't do well with. You can also see how certain hardware add-ons boost your system's performance, for example see how well adding a DMA engine boosts memory transfer speed. And you can see which software packages perform better, by telling the benchmark to use certain functions to use the tests with. And one other thing is that the benchmark doesn't need an operating system to run, in fact it's best not to have one running for best accuracy.

Now why am I doing this? Because I want a way to easily figure out if a certain processor is good for a certain function, and what would be the specific requirements for a CPU to run something, like what would the memory score need to be for a CPU to be able to decode MP3s quickly. And I could do tests like how much of a performance impact does disabling caches do.