[comp.sys.nsc.32k] software compatability

ken@gatech.edu (Ken Seefried iii) (03/22/89)

What are the problems involved in moving software up in the 32000
chain (i.e. moving stuff compiled on a 32016 or 32032 to the 32332 and
32532).

I know there are stack frame problems when moving from the 68000 to
the 68020, does such a thing exsist on the 32000s?

Are the 32082, the 32382 and the 32532 MMUs compatable?

Oh...to clarify, I'm primarily interested in binary compatability.

	...ken seefried iii
	   ken@gatech.edu

levy@nsc.nsc.com (Jonathan Levy) (03/23/89)

In article <18216@gatech.edu> ken@gatech.edu (Ken Seefried iii) writes:
>What are the problems involved in moving software up in the 32000
>chain (i.e. moving stuff compiled on a 32016 or 32032 to the 32332 and
>32532).
>
>I know there are stack frame problems when moving from the 68000 to
>the 68020, does such a thing exsist on the 32000s?
>
>Are the 32082, the 32382 and the 32532 MMUs compatable?
>
>Oh...to clarify, I'm primarily interested in binary compatability.

Any user code written for the 32016 will run unmodified on any 32000
member. The only differences are in some supervisor code, and these
are:

1. The 32382 MMU has a different page table orginization (4K pages
   rather than 512 byte pages), and the registers are a little
   different. This means that the MMU stuff will have to be slightly
   modified when moving from a 32016 / 32032 based virtual memory system
   to a 32332/32532 system. The 32382 is FULLY compatible to the internal
   532 MMU.

2. Debug features are different in 32082, 32382, 32532.

3. One new instruction was added to the 32532 for cache management. This
   is the CINV instruction which is used to invalidate the caches
   (partially ae fully).

To summarize, all application s/w which was compiled for any one processor
in the family will run on any other processor. The optimizing compiler
from NSC ( CTP ) does have switches for the different processors, but
these are needed only to squeeze some 5% or so additional performance based on 
peep-hole optimizations for each processor.

I hope this answers the questions.

Jonathan Levy

jojo@astroatc.UUCP (Jon Wesener) (04/03/89)

In article <18216@gatech.edu> ken@gatech.edu (Ken Seefried iii) writes:
>What are the problems involved in moving software up in the 32000
>chain (i.e. moving stuff compiled on a 32016 or 32032 to the 32332 and
>32532).

	There's only a few priviliged instructions that differ between the
processors.  The config register gains a few bits and the 532 has a
cache invalidate instruction.  There's also a few new traps to worry
about.  Moving software across the cpu's is no problem, though.  We run 
the same binaries for our software on the 32016, 32332 and 32532.  We
do ignore the stranger side of the 32000 architecture however, like
the cxp instruction and mod tables...

>I know there are stack frame problems when moving from the 68000 to
>the 68020, does such a thing exsist on the 32000s?

Nope, this is not a problem on the 32000s.  

>Are the 32082, the 32382 and the 32532 MMUs compatable?

There are 2 mmu's I've seen running with the 32000's, the 32082 and
the 32382.  The 1st has a page size of 512 bytes while the latter
is 4k.  This causes the pte structure to be different, of course, and
they also have somewhat different register sets.  This hasn't caused
a problem for us, though.

>Oh...to clarify, I'm primarily interested in binary compatability.

Like I said, we have no problems doing it.  

>	...ken seefried iii
>	   ken@gatech.edu

--jojo
-- 
... {seismo | harvard } ! {uwvax | cs.wisc.edu} ! astroatc!jojo
"Its Frank's world, the rest of us just live in it." -- Bongwater