[unix-pc.general] 68020/68881 Anyone?

jan@bagend.UUCP (Jan Isley) (10/27/89)

Now, wouldn't that be great?  An 020/881 in our unix-pcs.  If only ...

Yea, I know, we have talked about it before, but let us do it again.

I have a friend who designs 020/030/88000/etc... co processor boards.
The board in my Mac Plus has an 020/881 with room for 4 MB of 32 bit
memory and runs at *least* 10% faster than a Mac II at the same clock
speed.  Actually, my board can run at 25 MHz, but that is not the point.

The point is, he has designed about 20 different variations of this
board.  The variations go something like 020, 030, 88000, with or without
math chip, w/wo on board memory, w/wo on board memory management, with
or without a mac style SCSI port, etc...

He has done one for a VME 68000 UNIX system that has only a 68020/68881,
just take out the 68000, plug his board in, and it works.  The whole thing
is only about 1/2 inch high and about the size of a playing card.

No, I have not tried this yet.  But, I am getting one.  Who knows, maybe
it will work.  If it does not work, *and* there is a potential to sell a
bunch of boards, he is willing to spend a little time looking at it.  His
usuall fee *starts* at $20,000.  There is no doubt that he can get it to
work if there is a problem at first.  The only real problem would be that
he does this for a living and is not a bit interested in doing charity
work for our little unix machines.  Fact is he hates unix, says he does
not like sharing his computer with an operating system.

Of course, if there were enough people *really* interested in this, 
interested enough to actually spend money, remember this motorola silicon
is not cheap, he might be persuaded to debug it without his usual really
big non-recurring engineering fee.  I just check a couple of adds in Byte.
Single quantity prices for an 020/881 pair run $250 to $300 for 16 MHz.

I am neither a software or hardware gooroo, can't even spell it, but some
preliminary questions come to mind for the gurus out there:

  Are there any *known* reasons why an 020/881 would present a problem 
  hardware wise?  I think this would be the easy part?

  Any 020/881 fatal code in the software?

The other really obvious question is, would you buy one?  for how much?

-- 
jan@bagend  {..gatech..}!bagend!jan  (404)434-1335 voice@home

motteler@umbc3.UMBC.EDU (Howard E. Motteler) (10/30/89)

In article <13@bagend.UUCP> jan@bagend.UUCP (Jan Isley) writes:
[ discussion about adding a 6820/68881 daughter board ]
>I am neither a software or hardware gooroo, can't even spell it, but some
>preliminary questions come to mind for the gurus out there:
>
>  Are there any *known* reasons why an 020/881 would present a problem 
>  hardware wise?  I think this would be the easy part?
>
>  Any 020/881 fatal code in the software?
>
>The other really obvious question is, would you buy one?  for how much?
>
>-- 
>jan@bagend  {..gatech..}!bagend!jan  (404)434-1335 voice@home

Well, the obvious software difficulty is that the 68881 reg's don't
get saved in a context switch.  But I would find even being
restricted to a single floating point process quite usefull.
The other obvious difficulty is generating code for it!

I don't know about other hardware/software difficulties, but I would 
definitely want to buy one if it worked at all.

Howard Motteler

ps: Jan, do your or Discovery know anything about ethernet cards for
this box?  Anbody got one they want to sell?
-- 
Howard E. Motteler       |  Dept. of Computer Science
motteler@umbc3.umbc.edu  |  UMBC, Catonsville, MD 21228

botton@laidbak.i88.isc.com (Brian D. Botton) (10/30/89)

In article <13@bagend.UUCP> jan@bagend.UUCP (Jan Isley) writes:
>No, I have not tried this yet.  But, I am getting one.  Who knows, maybe
>it will work.  If it does not work, *and* there is a potential to sell a

  Please let us know either way.

>preliminary questions come to mind for the gurus out there:
>
>  Are there any *known* reasons why an 020/881 would present a problem 
>  hardware wise?  I think this would be the easy part?
>
>  Any 020/881 fatal code in the software?

  I have given this a little bit of thought, after all, if I was going to
make a daughter board for access to video ram why, not include the 020/881
combination?  From a hardware stand point, there is no reason this cannot
be done.  It might take a little work to get it to fit, but as Jan stated,
this kind of thing has been done before.  The problem is the kernel.  On
the surface, there are two problems:

1.	I have not verified this, but the exception stack is probably
	different between an 010 and an 020.  It is different between
	the 030, 010 and 000.  The kernel would have to know how to
	deal with the slight differences.  I think this would be fairly
	easy if you had source.

2.	When there is a context switch you need to save the reigesters in
	the 68881, unless you want to run under the assumptiont that only
	one process can use the 68881 at a time, and that might not even
	work correctly all the time.  Again, this would be easy to fix if
	you had source.

  Personally, I'de love to have the 020/881, and I was even contemplating
reverse engineering part of the kernel to make it work, but it is far down
on my list of things to do.  Also, if it can be done, I won't charge $20k
to do it, ;-).

  At one time I saw a Unix-PC catalog that listed a floating point accelerator.
Does anyone know what this was?  The C compiler does have options for a 68881.
When I tried it I got a message saying I needed the 020 binary for ccom.  Does
this mean the FPA was on the verg of release or just that the compiler is
universial in nature?

Brian
-- 
     ...     ___	  _________
   _][_n_n___i_i ________ I       I		Brian D. Botton
  (____________I_I______I_I_______I		laidbak!botton  or
  /ooOOOO OOOOoo  oo oooo  oo   oo		laidbak!bilbo!brian

jcm@mtunb.ATT.COM (was-John McMillan) (10/30/89)

In article <13@bagend.UUCP> jan@bagend.UUCP (Jan Isley) writes:
[ discussion about adding a 6820/68881 daughter board ]
>I am neither a software or hardware gooroo, can't even spell it, but some
>preliminary questions come to mind for the gurus out there:
>
>  Are there any *known* reasons why an 020/881 would present a problem 
>  hardware wise?  I think this would be the easy part?
>
>  Any 020/881 fatal code in the software?

1) I believe the 68020 interrupts generate a longer/different
	restart vector.  (Since poltergeists have taken my manual
	I cannot confirm this.)  The likely result of this is the
	BOOT ROMS, kernel and diagnostics won't work without
	re-writing.

2) I "have been told" that the 68020 control timings (address assertion,
	etc.) are radically altered, and many of us know how narrow
	the 3B1's tolerances are.  Wouldn't it would be awkward to
	guarantee the reliability of any such mod'.

3) The ain't much room in the inn.  Where wouldja hang the mess?

4) Those who interfaced a 68881 w/in AT&T were NOT impressed with
	the gains.  The overhead of managing the chip reduced its
	floating point advantages.

john mcmillan	-- att!mtunb!jcm

jmm@eci386.uucp (John Macdonald) (10/31/89)

In article <13@bagend.UUCP> jan@bagend.UUCP (Jan Isley) writes:
>Now, wouldn't that be great?  An 020/881 in our unix-pcs.  If only ...

  [...]

>I am neither a software or hardware gooroo, can't even spell it, but some
>preliminary questions come to mind for the gurus out there:

>  Are there any *known* reasons why an 020/881 would present a problem 
>  hardware wise?  I think this would be the easy part?

>  Any 020/881 fatal code in the software?

There are a couple of major problems.  The 68020 uses a different format
for exception stack frames, so there would need to be significant changes
in the kernel to handle this.  The floating-point registers would have to
be saved as part of the process state.  There are some difficult interactions
for handling intra-instruction traps - if a signal comes along at the wrong
time, you can't just fudge the stack frame, but have to use a trace trap to
continue to a proper instruction boundary before allowing the signal to be
processed.  Existing programs/compilers might not be able to take advantage
of the 68881 (I have never looked to see whether the current setup implements
floating point as a subroutine library invoked by the compiler, or whether it
generates floating point instructions and simulates them in the kernel; if the
former, then adding a 68881 will only help if you rewrite the library and
relink the programs, if the latter, then the existing code should run without
change (except the saving FP regs as mentioned above).

Using a 68030 instead would have the same set of problems.  In addition, to
*use* the internal mmu of the 68030 would add a lot of changes to the kernel;
it would probably be necessary to just run the 68030 with the mmu disabled
and use the existing memory management hardware (whatever it is) of the Unix-PC.

>The other really obvious question is, would you buy one?  for how much?

>-- 
>jan@bagend  {..gatech..}!bagend!jan  (404)434-1335 voice@home

I would love to have the 3b1 run faster, but it sounds like a lot of work
to get running well.  (I have done a port of System III from a 68000 to a
68020 before, although there were more differences that had to be accomodated
in the other conversion than would be required for the 3b1.  In that
conversion, it was a different processor board that was being used, a different
mmu mechanism, and a different byte-order for accessing things on the bus.)
-- 
"Software and cathedrals are much the same -          | John Macdonald
first we build them, then we pray" (Sam Redwine)      |   jmm@eci386