[comp.sys.m68k] Comparing 68xxx's; & caveat emptor on little unix boxes

gnu@hoptoad.UUCP (01/31/87)

In article <1090@msudoc.UUCP>, conklin@msudoc.UUCP (Terry Conklin) writes:
> This is a junkie to junkie question. That is, somewhere out there there
> is a person who is -into- the 68xxx family, knows half the machines out
> using them, and knows translations.

That sounds like me...

>                  "What is the difference between the 68000,the 68010
> and the 68020? And throw in 68030 for good looks."

The 68000 came out first and is cheapest still (~$10 last time I looked).
It comes in a 64-pin package and has a 24-bit address bus and 16-bit data
bus.  It originally was spec'd for 4, 6, or 8MHz; the fastest one I ever saw
was 16MHz.  Most people run 8, 10, or 12.5 MHz ones these days.
The Sun-1 was a 68000 machine, as are early Apollos, the Mac, Atari ST,
and Amiga.

The 68008 is the same, but only has an 8-bit bus and 20-bit address bus,
using a 40-pin package, which is easier to fit on a circuit board.
The Sinclair QL is a 68008 machine.

The 68010 is a 68000 that can take page faults, and with a few other
minor changes.  That is, in mid-instruction, it can take a page fault,
save all its state on the supervisor's stack, and then later it can resume
in the middle of the instruction, right where it left off.  The 68000
could not do that; when it took a page fault, it threw away most of the 
information about what it was doing, including forgetting the address of
exactly which instruction it was working on.  The 68010 also has "loop
mode" which lets 2-instruction loops using the DBRA instruction run 
really fast -- block moves, compares, clears, simple searches, etc.
The 68010 still has a 16-bit data bus and 24-bit address bus.  The fastest
one I've seen was 12.5MHz, but there may be faster ones.  The Sun-2
and some medium-old Apollos use the 68010.  Various people have plugged
them into their Atari or Amiga for no particularly good reason, since it's
only about 5-10% faster than a 68000.

The 68012 is a version of the 68010 which has a 31-bit address bus,
packaged in a chip carrier (or pin grid array?).  It's actually the
same chip, but the package has more wires coming out.  The 68010
couldn't add more wires because it was designed to be plugged in
anywhere a 68000 goes.  This was a stopgap for people who wanted a
large virtual address space (>16 megs) but couldn't wait for the
68020.  I don't know any popular machine that uses them.

The 68020 has a 32-bit data bus, 32-bit address bus, and many other
features.  It runs at up to 25MHz and only takes 3 clocks to access
memory, rather than 4 clocks as in all the previous chips.  It has an
on-chip cache for instructions so it can run loops without ever doing
instruction fetches.  It has a bunch more instructions and new
addressing modes, designed to loosen some of the restrictions in the
68000 instruction set which compiler people were unhappy with.  It can
finally do 32x32 bit multiply and divide.  It has provisions for
generalized coprocessors, and Motorola makes floating point and MMU
chips that use this interface.  (Somebody oughta make a graphics chip
that uses it sometime...)  The Sun-3 and newer Apollos use the 68020,
and various companies make 68020 upgrades for Macs and Amigas.  So far
no mass market machines using the 68020 have appeared, probably because
the chip itself costs over $100.  The 68020 is 1.5 to 5 times as fast as
a 68000 depending on how fast you can make your memory scream.  Just plugging
it into a 68000 system via an adapter board will give the smaller speedup
(almost totally due to the instruction cache); surrounding it with a
data cache of fast static RAMs and a high speed main memory will give you
a serious machine several times as fast as a Vax 780.

The 68030 is a 68020 with both instruction and data caches, and an
on-chip MMU.  It's expected to be a good bit faster than the 68020 due
to the caches and the advancing state of chipmaking since the 68020 was
designed.  I've heard rumors that it will not be pin compatible with
the 68020, and that a few of the instructions that nobody uses (CALLM)
will be deleted -- but this is rumors.  Otherwise it's mostly a 68020.
It is not in production yet; it's supposed to be out sometime in 1987.

> I was under the impression that the 68010 had some degree of an on-board
> MMU. However, I also here that the 68xxx family MMU is external, and
> thus represents a partial bottleneck in backtracking compared to the
> Intel 80x86 (x for a bad word) family which, albeit rudely, DOES give
> one control over 64k segements. 

No 68000 family processor contains an MMU except the 68030.  For all the rest,
you have to add one externally.  Motorola's MMUs have ranged from brain
damaged to mediocre, so this was more of a blessing than a curse, since
you could design and build your own MMU to do the job right.  What the 68010
has over the 68000 is that, if your MMU says "this page isn't here", the
68010 can restart the program once the page comes in; the 68000 had
no way to resume after a fault, so you couldn't do paging, only swapping.
The 68030's MMU is the mediocre one that they build for the 68020; it
does slow Vax-style page table lookup in main memory and has more features
and options than you ever cared to read about.

The Intel 8086, 8088, and 80186 do not have an MMU.  In fact, they don't
even have user versus supervisor mode, so any user program can trash the
whole system.  The 80286 has an MMU and user/supervisor modes, but most
286's run in "8086 emulation" with those turned off so they can run MSDOS.
The 286 can't do instruction restart, so it doesn't support paging, just
swapping, like a 68000.  The 80386 supports instruction restart and has
a built in MMU, so in that sense it is like a 68030.  It can do paging.

I'm not sure what a "bottleneck in backtracking" means.

> The ultimate reason for this query is because, after seeing the OS-9,
> AmigaDOS (Also multitasking, since it slows _multiple_ programs to a
> crawl,) Micro-C shell and other assorted 'multitasking' setups,
> I have come to the conclusion that, well, simply put, 
> Unix wont run on it, reasonably.

Was this sentence supposed to make sense?

>                                                   Recently, I was
> offered a chance at a 68010 system (2 meg of RAM) w/Unix; is this a baby
> Sun in a box? Or a Sinclair on steroids?

A bunch of little manufacturers have put out little 68000 or 68010
boxes and then quietly closed their doors.  See if it runs Unisoft Unix
-- most of these companies didn't have much software staff, so they had
Unisoft do the port (120 ports and counting!) and shipped the software
without supporting it.  You'll probably get to do your own bug fixes --
without source.  Check if the manufacturer is still in business, make
up a reasonable sounding technical question about Unix (e.g. how do I
reconfigure my kernel to handle this new disk drive I'm trying to add
to the system), and phone them to ask it.  See if there is anyone there
who can answer it.  Caveat emptor, and if the price is right, there is
a reason...
-- 
John Gilmore  {sun,ptsfa,lll-crg,ihnp4}!hoptoad!gnu   gnu@ingres.berkeley.edu
Love your country but never trust its government.
		     -- from a hand-painted road sign in central Pennsylvania

jkg@gitpyr.gatech.EDU (Jim Greenlee) (02/01/87)

In article <1701@hoptoad.uucp> gnu@hoptoad.uucp (John Gilmore) writes:
>The 68008 is the same, but only has an 8-bit bus and 20-bit address bus,
>using a 40-pin package, which is easier to fit on a circuit board.
>The Sinclair QL is a 68008 machine.

A minor point....

The 68008 comes in either a 48-pin DIP or a 52-pin LCC. The 48-pin package 
has 20 address lines (1 Meg. address space), and the 52-pin version has 22 
address lines (4 Meg. address space). The other 2 pins on the 52-pin part
are BGACK* and separate IPL0* and IPL2* (the 48-pin part combines IPL0* and
IPL2* into one pin - only interrupt levels 0, 2, 5, and 7 are detectable).
The programmer's model is identical between the 68000 and 68008.

						Jim Greenlee
-- 
The Shadow...!{akgua,allegra,amd,hplabs,ihnp4,seismo,ut-ngp}!gatech!gitpyr!jkg

Jryy, abj lbh'ir tbar naq qbar vg! Whfg unq gb xrrc svqqyvat jvgu vg hagvy lbh
oebxr vg, qvqa'g lbh?!