Hardware Reference
In-Depth Information
that allowed them to be looked up quickly. Although MULTICS is gone now, it
had a very long run, from 1965 to Oct. 30, 2000, when the last MULTICS system
was shut down. Few other operating systems have lasted 35 years. Futhermore, its
spirit lives on because the virtual memory of every Intel CPU since the 386 has
been closely modeled on it. History and other aspects of MULTICS are described
at www.multicians.org .
Descriptor
Page frame
Segment
number
Page
number
Descriptor
segment
Word
Page
table
Offset
Page
6-Bit page
number
10-Bit offset
within the page
18-Bit segment
number
Two-part MULTICS address
Figure 6-11. Conversion of a two-part MULTICS address into a main memory ad-
dress.
6.1.8 Virtual Memory on the Core i7
The Core i7 has a sophisticated virtual memory system that supports demand
paging, pure segmentation, and segmentation with paging. The heart of the Core
i7 virtual memory consists of two tables: the LDT ( Local Descriptor Table ) and
the GDT ( Global Descriptor Table ). Each program has its own LDT, but a single
GDT is shared by all the programs on the computer. The LDT describes segments
local to each program, including its code, data, stack, and so on, whereas the GDT
describes system segments, including the operating system itself.
As we described in Chap. 5, to access a segment, a Core i7 program first loads
a selector for that segment into one of the segment registers. During execution, CS
holds the selector for the code segment, DS holds the selector for the data segment,
and so on. Each selector is a 16-bit number, as shown in Fig. 6-12.
One of the selector bits tells whether the segment is local or global (i.e., wheth-
er it is held in the LDT or GDT). Thirteen other bits specify the LDT or GDT
entry number, so these tables are each restricted to holding 8 KB (2 13 ) descriptors
 
 
Search WWH ::




Custom Search