Bryan Parkoff wrote: > Try to compare 68000 and 8088 memory. Do 68000 have flat memory from > $0000:0000 to $FFFF:FFFF that it does not use segment? The segment:offset notation is only meaningful for an 8088 processor. The 8088 has a 16-bit segment and 16-bit offset. The physical memory address is determined by multiplying the segment by 16 and adding the offset. For example, $0001:$0000 is physical memory location $00010. The same physical memory location can be addressed as $0000:$0010. The 8088's total address space is 1 MB. The 68000 has a perfectly flat memory model, using 24-bit addresses (16 MB). All pointers are 32 bits, but the high order 8 bits are ignored by the hardware. (They are signficant for the 68020 and later family members.) The 68000 has no concept of segments. The 65816 is similar to the 68000 in that it can directly address 16 MB as flat memory, but it also imposes a bank structure with 64KB banks (affecting only some addressing modes), and only has 16-bit pointer registers, which complicates the addressing of data structures larger than 64 KB. > 8088 is different that it does not provide us flat memory from $00000 to > $FFFFF. It can be very confusing since we have to use segment in order to > select flat memory. The segment can only limit up to 64K. Why can't it > have flat memory? Because that is how it was designed. > If we want to use 256KB, we will have to use four segments. Using > 65816/68000 do not require segment so it allows to use 256KB. It is much > flexible than 8088. I'd agree with that. The segmented architecture does have some advantages, but I prefer a flat memory model. > Both 65816/68000 do not have protected memory, but 80286 does. To be fair, you should be comparing the 80286 with the 68020 (which has a 32-bit address space and can support protected memory if you add a 65551 PMMU) or an 68030 (which has the PMMU built in). The 80286 is still limited to a 16-bit offset from the selector (in native mode), but the selector can now address 16 MB instead of a mere 1 MB. You need to get to the 80386 before the x86 architecture gets an effectively flat memory model which is able to easily deal with data structures larger than 64 KB. The 65816 has no support for protected memory, but could it potentially be implemented through the use of the ABORT signal and external support hardware. (This wouldn't be feasible in the Apple IIgs, due to backward compatibility with 8 bit Apple II models.) > If we need protected memory, do we have to implement software to > manage/protect memory? In a processor which has protected memory support, the operating system is usually responsible for managing it. -- David Empson dempson@actrix.gen.nz