Maker Pro
Maker Pro

scatter gather DMA

T

Tim Smith

Jan 1, 1970
0
I can't imagine a modern multi-tasking OS without virtual memory. In
Windows, every application is written to be loaded at the same fixed
address. If you didn't have virtual memory, everything would have to be
relocated when loading, in order to fit into whatever memory was
available. Windows programs are already ridiculously

Actually, it's address mapping that lets everything be loaded at the same
address. You can have that without having virtual memory.
 
T

Tim Smith

Jan 1, 1970
0
I sure wish iNtel had come up with something other than the 8086/8088 for
16 bits, though. Didn't Zilog have a 16-bit version of the Z80? I suppose
it makes sense that IBM went with iNtel - the upside down bytes in
Motorola probably frightened the IBM guys. ;-)

The real tragedy is the 80286. Consider protected mode. In protected mode,
instead of loading a segment value into CS, DS, SS, or ES, you loaded a
selector, which looked like this:

+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| INDEX | PROT | G |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+

(I may have PROT and G switched). INDEX is an index into either the local
descriptor table or the global descriptor table. PROT is some protection
information. G tells whether INDEX refers to the local descriptor table or
global descriptor table.

Suppose instead they had made one simple change, and arranged the bits in a
selector like this:

+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| PROT | G | INDEX |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+

What a difference that would have made to software! If the OS then set up
the process address space as a set of non-overlapping 65536 byte segments,
mapped via consecutive LDT entries, the process could treat a
selector/offset pair as a simple 32-bit pointer with 3 magic-bits at the
top. Pointer arithmetic would work. There would be no special case every
64K.

Basically, it would be like a paged architecture with a 64K page size, with
the oddity that the pages do not need to be aligned on page boundaries in
physical memory (an oddity that would only be of concern to the OS).
 
J

John Larkin

Jan 1, 1970
0
So you think being able to run more programs faster in less RAM with less
disk I/O is the second worst thing that happened to computing?


Yes, I believe I said that.

John
 
Top