"The MC68EC060 offers superscalar integer performance of over 110 MIPS at 75 MHz".
Ok, that is true. Here is another true statement:
"The MC68EC060 offers superscalar integer performance of over 3 MIPS at 75 MHz".
Branch prediction isn't free when it takes the branch.
Maybe you are mixing up the 040 or something.
On the 060 a correctly predicted branch is free when it takes the branch.
Another way of saying it is:
Correctly predicted taken branches take 0 cycles to execute.
Another way of saying it is:
Branch-folding.
Another way of saying it is:
Awesome!
You can't get over 160mips at 80mhz
Yes you can get 240 MIPS at 80Mhz. It doesn't require black magic or sacrificing virgins or carving pumpkins or anything.
and to even achieve that your code would have to fit into the 8k of cache,
That is not hard
at all. 8K is a huge amount of code for a single loop. This isn't an Intel or PPC processor.
All Amiga MIPS testers I have ever seen, even the fake ones, fit into less than 256 bytes or 0.25k.
not do any moves from or to memory,
Of course you can do moves to
and/or from memory. The 060 has this magical box called "
The L1 Cache" which caches all reads and writes for spectacular performance. L1 Cache is massively more powerful than L2 or L3 caches which I guess is what is confusing you.
MIPS tests do not test memory speed anyway so it does not even matter. All a MIPS test does is measure CPU speed. Use a memory tester to measure memory speed.
it would have to perfectly predict every branch
That is not hard to do in a timing test loop.
I have looked at the code for various timing tests on the Amiga that were written long before 060 existed and all their branches end up as correctly predicted as taken. In other words the 060 came out later and did all their branches at 0 cycles per branch.
& your code would have to be very specialised to utilise both execution units on every instruction.
All MIPS tests are "very specialised" to start out with so this statement doesn't mean a whole lot.
I mean you can write code
ON PURPOSE not to dual-execute as that so-called Amiga MIPS tester proggy does.
Or you can use your brain and write code that
does dual-execute.
If a MIPS-tester can't dual-execute then it isn't testing your CPU. Your 2nd core could be completely broken and you would never know, because that pretend fake MIPS tester wasn't actually testing the 2nd core.