Path: utzoo!utgpu!news-server.csri.toronto.edu!bonnie.concordia.ca!uunet!zaphod.mps.ohio-state.edu!rpi!bu.edu!polygen!jerry From: jerry@polygen.uucp (Jerry Shekhel) Newsgroups: comp.sys.amiga.advocacy Subject: Re: The Amiga's Future Message-ID: <1153@stewart.UUCP> Date: 24 Jun 91 18:43:39 GMT References: <#g1H3+$o@cs.psu.edu> <12901@uwm.edu> <22308@cbmvax.commodore.com> <1991Jun11.134256.9465@cs.mcgill.ca> <1134@stewart.UUCP> <59@ryptyde.UUCP> <1146@stewart.UUCP> <89@ryptyde.UUCP> Reply-To: jerry@stewart.UUCP (Jerry Shekhel) Organization: Polygen Corporation, Waltham, MA Lines: 38 In article <89@ryptyde.UUCP> dant@ryptyde.UUCP (Daniel Tracy) writes: > >I understand that, on the 286, the segment registers (in 16-bit protected >mode) are used as pointers to a table of 24-bit addresses, and that's how >it addresses 16MB. However, I don't understand the underlying difference >between accessing physical memory and virtual memory. That is, why one >should be less limited than the other. Maybe I should take a class on >CPU design and not bug you guys about it. I also don't understand how >it can address 16384 segments if it only has 6 segment registers! >(each one-bit, right? Or is that where my mistake is?) > Each segment register contains a 13-bit index into a table of segment descriptors. Each segment descriptor is a data structure that contains the 24-bit base address, protection bits, an in-memory/swapped bit, a 16-bit segment length, and a couple of other things. Each task has access to a Local Descriptor Table which contains up to 8192 segment descriptors (task-isolated memory), and a Global Descriptor Table, which also contains up to 8192 segment descriptors (systemwide shared memory). That's how you get a virtual memory space of 16384 64K segments (1 GB). Remember that two segments can be mapped to the same 64K block within the 16MB of physically- addressable RAM, as long as only one is loaded into memory at a time and the rest are swapped to disk. So, a segment register is not one-bit; it's 16-bit. Each contains: -- a 13-bit offset into a descriptor table -- a bit indicating whether to use the Local or Global Descriptor Table -- two bits identifying the requested priviledge level -- +-------------------+----------------------+---------------------------------+ | JERRY J. SHEKHEL | POLYGEN CORPORATION | When I was young, I had to walk | | Drummers do it... | Waltham, MA USA | to school and back every day -- | | ... In rhythm! | (617) 890-2175 | 20 miles, uphill both ways. | +-------------------+----------------------+---------------------------------+ | ...! [ princeton mit-eddie bu sunne ] !polygen!jerry | | jerry@polygen.com | +----------------------------------------------------------------------------+