Path: utzoo!attcan!uunet!olivea!apple!well!feustel From: feustel@well.sf.ca.us (David Alan Feustel) Newsgroups: comp.arch Subject: True 46 Bit Addressing with 586? Keywords: Intel 586 Message-ID: <21691@well.sf.ca.us> Date: 16 Nov 90 23:38:27 GMT Distribution: comp Organization: DAFCO - An OS/2 Oasis Lines: 37 The 386 and 486 are advertised as having 46 bit addressing and 4 gigabyte segment length capability. This overstates their capabilities slightly, since the mapping of all segments into the single 32 bit virtual address space implemented in the 386 and 486 imposes the restriction that the sum of the length of the code, data and stack segments must be less than or equal to 4 gigabytes (ignoring the degenerate case of all descriptors pointing to the same memory). True 46 bit memory addressing can be easily designed into the Intel 586 chip. This would permit the simultaneous access by the 586 of multiple 4 gigabyte segments, a capability not currently possessed by the 386 or 486. 46 bit addressing could be implemented by making the use of the base address of a descriptor dependent upon the state of bit 21 of dword 2 (currently available) in the segment descriptor. If that bit is 0 then the 586 works just like a 486; if that bit is one and paging is enabled, then the descriptor base address is used instead of the value of CR3 as the page directory base register for this memory reference. This paging algorithm effectively allows each segment to have its own page table. It also permits segment lengths to change without requiring the relocation of other segments, since no other segments would be sharing this segment's 32 bit address space. A further enhancement to increase performance would be to add a register holding the appropriate CR3 register value to the invisible register set associated with each of the 6 segment registers. Shall we take a vote? -- Dave Feustel, 1930 Curdes Ave, Fort Wayne, IN 46805-2710 (219)-482-9631 EMAIL: feustel@well.sf.ca.us {ucbvax,apple,hplabs,pacbell}!well!feustel BIX: feustel COMPUSERV: 72730,566 MCIMAIL: dfeustel