[comp.sys.m68k] binary compatibility on high-end unix systems

murphy@hao.UUCP (04/30/87)

Having recently spent a weekend getting undump to work on an
Integrated Solutions 68020 machine, I would agree that binary
compatibility is not yet a viable possibility for the high-performance
unix machines around. The reason being IS decided to change the format of their
executable files from the Berkeley Vax format. Not unreasonable,
but annoying.

I have two questions regarding MMU's :

1) Why have so many 68020 OEM's gone to their own MMU's instead of using
the Motorola unit, and is it possible that the 68030 might end-up
being ignored for the same reasons (though the applications
are likely to be different) ?

2) Regarding binary compatibility, how does an MMU effect things at all ?
On cpu's with linear addressing, such as the 68020, compilers can, and
do, designate specifc areas for various purposes, (i.e. executable,
data sections etc.) without any regard to real physical memory capability.
It is surely up to the LOADER to take the binary and put it where the
MMU can find it when needed. So long as the executable file has the same format,
only the loader need be MMU, and therefore, device dependent which would hardly
come as a surprise.  What part am I missing ?

Graham Murphy
High Altitude Observatory
National Center for Atmospheric Research

UUCP: {hplabs, seismo, nbires, noao}!hao!murphy
CSNET: murphy@ncar.csnet  ARPA: murphy%ncar@CSNET-RELAY.ARPA
INTERNET: murphy@hao.ucar.edu
NOT-NET: P.O. Box 3000, Boulder, CO 80307-3000.   (303) 497-1514.
-- 
(And occasionally: murphy_g@summer.su.oz)

mash@mips.UUCP (04/30/87)

In article <611@hao.UCAR.EDU> murphy@hao.UUCP (Graham Murphy) writes:
>..., I would agree that binary
>compatibility is not yet a viable possibility for the high-performance
>unix machines around....

>I have two questions regarding MMU's :

>1) Why have so many 68020 OEM's gone to their own MMU's instead of using
>the Motorola unit, and is it possible that the 68030 might end-up
>being ignored for the same reasons (though the applications
>are likely to be different) ?
Why:
	1) When people started (with 68000/68010), there weren't
	Moto MMUs available in a timely fashion.
	2) Even when there were, they've often been slower than the
	designs people could make with fast SRAM-based designs.  People
	doing small VME boards often included the MMUs, for space reasons.
	Most workstation vendors [who generally use large boards] and
	people making larger supermicro multi-user systems [who also tend
	to use large boards] have used SRAM-based designs.
Will people ignore the 68030?
	Probably not. On a cursory examination, the MMU in it looks flexible
	enough to accomadate different environments, although with just
	22 entries in the on-chip TLB, system designers should be careful with
	choice of page size and how they use it, lest they get low hit rates
	in some environments.  OK combinations would appear to exist.
	People who used SRAMs and page tables that looked a lot different
	will have to redo that work, and this will eitehr be a lot of work, or
	no big deal.
	At the "low" end, people should have a fairly strong motivation
	to switch to the 68030, simply because it finally has an MMU that
	doesn't cost you wait states, and because it lets you build a faster
	"cheap" system.  This probably won't be true at the higher end,
	at least in some designs, until the clock rate gets above 20MHz.
	More specifically, on cursory examination:
	a) The faster non-cached implementations of 68020s tend to
	use SRAM-based MMUs, with good memory systems, running at
	16.7MHz, to yield about 2Mips [integer performance],
	[where VAX/11780 4.3BSD = 1].
	Example: Sun3/160.
	b) For easiest comparison, the Sun3/260 is usually rated
	at 4 Mips [accurately, I believe], running at 25MHz,
	using SRAM-based MMUs, 64K write-back virtual cache
	[so the translations can be done in parallel], and typically
	good Sun memory systems.  [Some other vendors use different
	designs, with big physical caches, Moto MMUs, etc; I don't
	have enough data to really know how fast these are; maybe
	someone else can post.]  THere's a good paper coming up in the June
	USENIX by the Sun folks on the issues of putting UNIX on virtual-cached
	systems.
	c) It would appear that the fastest "natural" non-cached 68030 design
	would yield up to 3 Mips [this is a gross guess, not something
	I've got simulatiosn for], with most of the improvement coming
	from the reduced bus-cycles.  It is not yet to be clear if or
	the on-chip D-cache actually gains performance or loses it.
	[Small D-caches often have low hit-rates.  If they're too low,
	you can actually lose performance.  Small I-caches do work OK.]
	d) At the high end, with heavily-cached systems, it would appear
	that a 20MHz 68030 wouldn't be significantly faster than a
	25MHz 68020 [in the Sun-style design, anyway].  Presumably, it will
	help people using physical caches, by avoiding wait states.
	This says that you'd expect:
	20MHz: still about 4 Mips.
	25MHz: about 5 Mips [this speed is not announced, but one can guess...]

	If I had to predict, I'd guess that a lot of vendors will be pushing
	very hard on the non-cached designs to get faster "cheap" systems,
	while playing wait-and-see at the higher end, particularly if they've
	invested a lot of effort in all-out 68020 designs.
>2) Regarding binary compatibility, how does an MMU effect things at all ?
>On cpu's with linear addressing, such as the 68020, compilers can, and
>do, designate specifc areas for various purposes, (i.e. executable,
>data sections etc.) without any regard to real physical memory capability.
>It is surely up to the LOADER to take the binary and put it where the
>MMU can find it when needed. So long as the executable file has the same format,
>only the loader need be MMU, and therefore, device dependent which would hardly
>come as a surprise.  What part am I missing ?

There are the following MMU-related variables:
	a) Page size [I've seen at least 1K, 4K, 8K, and I assume there must
	be somebody who did 2K].
	b) Where is the origin of the user program?
		- 0 is possible
		- (pagesize) or higher is possible, for those who didn't
		want 0 in the address space [to catch null derefs]
		- SIZE is possible, where SIZE is >= the size of the maximum
		kernel, if the the kernel is part of the address space seen
		by the user, and if the kernel was put at the bottom.
A good analysis of the issues may be found in "Memory Management Units and the
UNIX Kernel", Clara S. Lai, Chris Peer Johnson, Proc. 1985 USENIX Summer Conf,
June 11-14, 1985, pp. 361-370. [UNISOFT folks: a lot of experience porting
to different MMU designs].  Thus, even porting the same UNIX variant to
different machines yields different executables, mainly for MMU differences.
-- 
-john mashey	DISCLAIMER: <generic disclaimer, I speak for me only, etc>
UUCP: 	{decvax,ucbvax,ihnp4}!decwrl!mips!mash, DDD:  	408-720-1700, x253
USPS: 	MIPS Computer Systems, 930 E. Arques, Sunnyvale, CA 94086