[comp.sys.amiga.advocacy] 88000 in the Amiga

peter@sugar.hackercorp.com (Peter da Silva) (05/14/91)

In article <y=9H+ep2@cs.psu.edu> melling@cs.psu.edu (Michael D Mellinger) writes:
> Every company will be able to buy these chips, but how many will be
> able to build a computer with them and not lose their current software
> base?  Is the Amiga OS written in C?

A lot of it, yep.

I've been thinking about how you would use something like an 88000 in an Amiga.
It'd make a killer coprocessor at first. Run the Exec on the 88000 as well as
the 68000, so that C programs could be compiled for the 88000 and still work.
The only really hairy parts would be Forbid() and Disable()... the synch
primitives. I think that at first these primitives will have to stall both
CPUs, or it'd be too hard to port stuff to the 88000 side.

Make it an 88000 and you don't have to worry about endianism. What about
alignment... what's the 88000's alignment requirements.

You'd probably want to give the 88000 its own memory, so when you called
AllocMem it'd allocate memory local to the CPU by choice. Amiga programs are
all written to be preempted at any point, so data structure locking won't
be a problem. Most calls on the 88000 would just pass parameters to the 68000
and stall, so system stuff wouldn't be sped up that much, but you could
recompile Sculpt or whatever and kick butt.

It'd terminate the wars over assembler versus high level, damn fast.

I think a dual-CPU 68000/88000 would be quite a workable machine. And best of
all, all current Amigas would be upgradable!
-- 
Peter da Silva.   `-_-'
<peter@sugar.hackercorp.com>.

torrie@cs.stanford.edu (Evan Torrie) (05/14/91)

peter@sugar.hackercorp.com (Peter da Silva) writes:

>I've been thinking about how you would use something like an 88000 in an Amiga.
>It'd make a killer coprocessor at first. Run the Exec on the 88000 as well as
>the 68000, so that C programs could be compiled for the 88000 and still work.
>The only really hairy parts would be Forbid() and Disable()... the synch
>primitives. I think that at first these primitives will have to stall both
>CPUs, or it'd be too hard to port stuff to the 88000 side.

>Make it an 88000 and you don't have to worry about endianism. What about
>alignment... what's the 88000's alignment requirements.

  From the 88100 User's Manual:

"All instructions and data words are aligned on word (modulo 4)
address boundaries, precluding the need for the two lowest order
address lines and misaligned accesses"

-- 
------------------------------------------------------------------------------
Evan Torrie.  Stanford University, Class of 199?       torrie@cs.stanford.edu   
"Lay me place and bake me pie, I'm starving for me gravy... Leave my shoes
and door unlocked, I might just slip away - hey - just for the day."

fsset@bach.lerc.nasa.gov (Scott E. Townsend) (05/14/91)

In article <1991May14.145528.23369@neon.Stanford.EDU> torrie@cs.stanford.edu (Evan Torrie) writes:
>peter@sugar.hackercorp.com (Peter da Silva) writes:
>
>>I've been thinking about how you would use something like an 88000 in an Amiga.
>>It'd make a killer coprocessor at first. Run the Exec on the 88000 as well as
>>the 68000, so that C programs could be compiled for the 88000 and still work.
>>The only really hairy parts would be Forbid() and Disable()... the synch
>>primitives. I think that at first these primitives will have to stall both
>>CPUs, or it'd be too hard to port stuff to the 88000 side.
>
>>Make it an 88000 and you don't have to worry about endianism. What about
>>alignment... what's the 88000's alignment requirements.
>
>  From the 88100 User's Manual:
>
>"All instructions and data words are aligned on word (modulo 4)
>address boundaries, precluding the need for the two lowest order
>address lines and misaligned accesses"
>
>-- 
>------------------------------------------------------------------------------
>Evan Torrie.  Stanford University, Class of 199?       torrie@cs.stanford.edu   
>"Lay me place and bake me pie, I'm starving for me gravy... Leave my shoes
>and door unlocked, I might just slip away - hey - just for the day."

Sorry, but only part of the truth.  Doublewords have to be on doubleword
boundaries.  (Not saying Moto is wrong, just that the above excerpt isn't
the complete story)

Doublewords are used for double-precisioni FP _AND_ saves/restores during
function entry/exit (at least on the compiler I use)  So you _have_ to keep
the stack doubleword aligned or you get a misaligned access exception.

-- 
------------------------------------------------------------------------
Scott Townsend               |   Mail Stop: 5-11
NASA Lewis Research Center   |   Email: fsset@bach.lerc.nasa.gov
Cleveland, Ohio  44135       |