Path: utzoo!attcan!utgpu!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!rutgers!bellcore!texbell!sugar!ficc!cliff From: cliff@ficc.uu.net (cliff click) Newsgroups: comp.arch Subject: Re: 386/486 Virtual Memory Question... Summary: 386 & Virtual Memory Message-ID: <4427@ficc.uu.net> Date: 7 Jun 89 12:48:31 GMT References: Organization: Ferranti International Controls Lines: 26 In article , hs0l+@andrew.cmu.edu (Hugh Brinkley Sprunt) writes: > > The 386 and 486 architectures claim a virtual address space size of > 2^46 bytes. The virtual address is formed from a 14 bit selector > and a 32 bit offset. > b) This scheme gives us 2^14 independent address spaces of 2^32 > bytes each. In other words, the virtual memory scheme > consists of as many as 2^14 segments of 2^32 bytes each. > > If (b) is the answer, how does the processor communicate the 14 bits of > selector information to the memory mapping hardware/software? The standard addressing hardware looks the selector up in a local (per process) or global selector table. In this table each selector has a base physical address, a size, and some privilege bits (r/w/x). This info is cached on-chip; when you load a new selector it all gets loaded. When you get an page fault or other interrupt the faulting selector is made available to the interrupt task (it's on the stack or something). Maybe some Intel guru should fill in the details... -- Cliff Click, Software Contractor at Large Business: uunet.uu.net!ficc!cliff, cliff@ficc.uu.net, +1 713 274 5368 (w). Disclaimer: lost in the vortices of nilspace... +1 713 568 3460 (h).