Intel 64 and IA-32 Architectures Software Developers Manual Volume 3A, System Programming Guide, Part 1

3-20 Vol. 3A
PROTECTED-MODE MEMORY MANAGEMENT
3.5.1 Segment Descriptor Tables
A segment descriptor table is an array of segment descriptors (see Figure 3-10). A
descriptor table is variable in length and can contain up to 8192 (2
13
) 8-byte descrip-
tors. There are two kinds of descriptor tables:
The global descriptor table (GDT)
The local descriptor tables (LDT)
Each system must have one GDT defined, which may be used for all programs and
tasks in the system. Optionally, one or more LDTs can be defined. For example, an
LDT can be defined for each separate task being run, or some or all tasks can share
the same LDT.
The GDT is not a segment itself; instead, it is a data structure in linear address space.
The base linear address and limit of the GDT must be loaded into the GDTR register
Figure 3-10. Global and Local Descriptor Tables
Segment
Selector
Global
Descriptor
T
First Descriptor in
GDT is Not Used
TI = 0
I
56
40
48
32
24
16
8
0
TI = 1
56
40
48
32
24
16
8
0
Table (GDT)
Local
Descriptor
Table (LDT)
Base Address
Limit
GDTR Register LDTR Register
Base Address
Seg. Sel.
Limit