[mod.computers.68k] 68020 high address byte useage

jcm@ORNL-MSR.ARPA (James A. Mullens) (08/06/86)

In article <947@hoptoad.UUCP> John Gilmore writes:
>In article <259@cci632.UUCP>, rb@cci632.UUCP (Rex Ballard) writes:
>>                                                             ...did you
>> fix the perverse usage of the high address bits so that a 68010 or 68020
>> could be used in place of the 68000?
>
>This is a red herring.  First, a 68010 has the same address space as a
>68000.  Second, a 68020 just feeds those bits out on pins; if you have
>less than 16 megs of stuff to address, you're free to ignore the pins.

Please pardon my breaking in here, but I couldn't resist the
possibility of learning something about the 68020 by asking a
question...

My 60820 manual says that virtual memory can be implemented by
handling the bus error resulting from trying to read a non-physical
address.  (A bus error is signalled, causing the bus error handler to
be called, which must eventually result in a page being swapped into
RAM from secondary storage).  The 68020 manual claims that this
technique can also be used for the 68010 and the 68012, but doesn't
mention the 68000.  My 68000 manual simply says that a bus error is
not likely to be a recoverable error.

So I guess that even a machine with as much as 16 meg might still want
to use the high address byte to implement virtual memory.

A different sort of problem might occur if the hardware is something
like the Macintosh.  The 2 highest address lines (22 and 23) select
ROM and (something else).  2 bits of addressing are sacrificed,
cutting the RAM address space down from 16 meg to 4 meg, for the sake
of 128K ROM and some other hardware function (perhaps I/O).  Perhaps
future 68020 designers will make the same design decision, using
address lines in the high byte.  In any case, it seems reasonable to
move any ROM, video RAM, and memory-mapped I/O to the highest end of
addressable memory, out of the way of user program RAM.  My poor old
Sage II is a 68000 machine will only provides for 512K RAM on the
motherboard, but ROM starts at FE0000 and I/O ports start at FFC000.

It's easy enough to demonstrate on particular machines that the high
byte of a 32-bit address is ignored.  But is it possible, I suppose,
that it would be a problem on an Atari/Amiga/Macintosh which was
outfitted with a 68020 if the hardware implementors decided to use
the 32-bit address space to hide extra ROM, I/O ports, or to
implement virtual memory.

Enough musings...   Any comments?

jim mullens / oak ridge national laboratory