Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!uunet!bu.edu!polygen!jerry From: jerry@polygen.uucp (Jerry Shekhel) Newsgroups: comp.sys.amiga.advocacy Subject: Re: The Amiga's Future Message-ID: <1146@stewart.UUCP> Date: 20 Jun 91 15:38:15 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> Reply-To: jerry@stewart.UUCP (Jerry Shekhel) Organization: Polygen Corporation, Waltham, MA Lines: 39 In article <59@ryptyde.UUCP> dant@ryptyde.UUCP (Daniel Tracy) writes: >Responding to the following: > >>It is true that it is theoretically possible to develop a 386-based OS that >>runs in the 386 equivalent of the 286's "large memory model". This OS would >>manage multiple 4GB code and data segments for each process. My question is, >>who needs this? Also, you'd have to start worrying about near and far pointers >>again! A near pointer would be a 32-bit offset, and a far pointer would be a >>48-bit segment/offset pair. Virtual memory space would be 64 terabytes. Wow. > >This is really interesting. I thought the 80x86 line had 4 segment registers, >and would thus have a segmented address space of 64GB, not TB? Also, someone >else posted that the 68020 and up could handle 64GB and that it had a >segmented memory mode as well? I had never heard this before. VERY >interesting! > Look at it this way -- the 80286 has 4 segment registers, just as you said, and each segment is no more than 64KB in length, but it can still physically address 16MB, and its maximum virtual address space is 1GB. The way this works is that each program has access to MULTIPLE code and data segments. There are special instructions for dealing with this. The "far CALL", for example, replaces the code segment register as well as the program counter. The compiler generates code to replace the data segment register in order to access "far data". The virtual address space of a process running on the 80286 consists of 16384 segments, each 64K in length, for a total of 1GB. On the 386, you have 16384 segments, each 4GB in length, for a total of 64TB. Incidentally, there are 6 segment registers on the 386 and up. FS and GS are the two new ones. -- +-------------------+----------------------+---------------------------------+ | 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 | +----------------------------------------------------------------------------+