schmitz@fas.ri.cmu.edu (Donald Schmitz) (06/12/89)
As promised, here is the summary of '020 vs '030 performance responses. Amazingly, none of the of the responses contradicted one another, and the information in all of them was fairly similar. I have extracted the clearest portions of the various responses for the summary. Thanks to everyone who responded. Capsule summary: The '030 on chip MMU should not impose any penalty, however the '030 is much more demanding on the memory system than an '020 - simply upgrading the CPU does not buy much, upgrading the memory too can yield a big win - a lot depends on whether code can utilize the on-chip caches. Most '020 code should run on the '030, although optimization constraints are different, so an '020 compiler may not be ideal for developing '030 code. Excerpts from responses: (> indicates my original text) ___________ >Can anyone give a brief summary of the performance and software visible >differences of the '020 and '030? In particular, I have heard rumors that >due to the '030 on chip MMU, memory accesses are slower than an '020 with no >MMU (I would think the MMU could just be disabled). The MMU is interleaved into the pipeline - for 0 wait states. They translate a cycle earlier than other processors are able to, because it's built in. As well, the 68030 runs a minimum 2 cycle bus while the 68020 ran 3 cycles all the way. In other words, you can design a 68030 system to be worse than a 68020 system -- just a matter of not designing your memory subsystem as well as you could. Also SYNC and CACHE FILL enable you to get such wonderfull speeds such as 4 long words into the processor in 5 cycles. ... With the MMU on, you'll certainly run faster than an '020 + MMU in most systems. About the only real obvious performance hit is that the '030 MMU has a smaller ATC than the 68851; 22 entries vs. 64. >Also, is software binary compatible? Binary compatible. The MMU initializes itself as transparent, the MMU instructions are a subset of the 68851 MMU for the 68020. ... Generally, you can't tell the difference between the 68020 and the 68030 unless you check some supervisor registers. ... there are some '020 instructions that you *can't* use, since they're not on the '030; the "call module" instruction is one (Does anyone actually use the module instructions? What exactly are they good for? - Don). ... It's apparently also true that a number of '020 instructions go faster on the '030, so if you're absolutely chasing the best performance you can get, you might do things a tad differently on one than on the other, but the code would work fine on both. >Finally, assuming the same clock speed and memory system, what sort of speed >difference should we see between the two? We have heard estimates of 15% to >100% speedups in the '030, why the big disparity? (different benchmarks?). Probably different memory system. Most folks, especially those who just popped '030s into existing '020 system, didn't take full advantage of the '030. But if you're redesigning a system with an '030 in mind, to replace an '020+'851, you can go roughly twice as fast at the same clock speed. Most real life systems end up somewhere in the middle. __________ --
jla@wheaties.ai.mit.edu (Joseph Arceneaux) (06/20/89)
There are also some incompatiblities in the format of the page table descriptors.