8086 (was Re: more talking to the press.)

From: Hans Franke <Hans.Franke_at_mch20.sbs.de>
Date: Fri Nov 14 06:26:25 2003

Hey Eric,

now it get's fun :)

> > to me it's the way the memory is handled
> > that makes the 8086 the great CPU it is

> What, the 64K segments that alias on paragraph boundaries?
> Yecch! What a kludge! The PDP-11 had better memory management
> for a 64KB address space at least seven years earlier.

Excuse me? The PDP-11 is a classic example for an external
MMU, completely invisible to a user task. Nice if you just
want to run old Software that expects a 28K addres space.
But without expesive OS calls, and the MMUs equivalent of
bank switching, it just allows to access said 28K (well,
32K since the IO may have been not mapped in).

(And BTW, IBM had it before :)

Try to see the segment address as a handle given to a user
task as result of a mempry request to access the requested
memory. As a user task, I don't care where the memory is
located, I don't need the information - nor does any other
part of the operation system, except for memory management.

Now, still beeing a strict 16 Bit CPU, this little trick
allows a 16 Bit user process to access up to 65K of 65K
segments. How many memory realy was available and how it
was organized did not concern to a user programm. While
still beeing on a real mode CPU, the segments allowed it
to programm with all the advantages of a mature OS.

The only thing missing where page faults and boundry
checks. The 286 then added these features.

In fact, memory management on classic Macs was similar,
a user programm got an handle to the requested memory,
which it used to gain information where the memory is
located - this, while still beeing a real mode OS, MacOS
was able to reorganize/relocate memory. Usualy register
relative addressing was used then and the register did
hold the (thru the handle) aquirred block address.

Basicly that's nothing else than using software to do
exactly what the 8086 does in hardware.

The value of the segment has no meaning - why do people
always waste their time in calculateing 'real' addresses?
I don't care for that on a /370, nor on a PDP 11, so why
should I do so on my PC?

Gruss
H.
--
VCF Europa 5.0 am 01./02. Mai 2004 in Muenchen
http://www.vcfe.org/
Received on Fri Nov 14 2003 - 06:26:25 GMT

This archive was generated by hypermail 2.3.0 : Fri Oct 10 2014 - 23:36:19 BST