[comp.sys.m68k] 020 vs 030 Summary

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.