background image

2-6 Vol. 3A

SYSTEM ARCHITECTURE OVERVIEW

2.1.5 Memory 

Management

System architecture supports either direct physical addressing of memory or virtual memory (through paging). 
When physical addressing is used, a linear address is treated as a physical address. When paging is used: all code, 
data, stack, and system segments (including the GDT and IDT) can be paged with only the most recently accessed 
pages being held in physical memory.
The location of pages (sometimes called page frames) in physical memory is contained in the paging structures. 
These structures reside in physical memory (see Figure 2-1 for the case of 32-bit paging). 
The base physical address of the paging-structure hierarchy is contained in control register CR3. The entries in the 
paging structures determine the physical address of the base of a page frame, access rights and memory manage-
ment information. 
To use this paging mechanism, a linear address is broken into parts. The parts provide separate offsets into the 
paging structures and the page frame. A system can have a single hierarchy of paging structures or several. For 
example, each task can have its own hierarchy.

2.1.5.1  

Memory Management in IA-32e Mode 

In IA-32e mode, physical memory pages are managed by a set of system data structures. In compatibility mode 
and 64-bit mode, four levels of system data structures are used. These include: 

The page map level 4 (PML4) — An entry in a PML4 table contains the physical address of the base of a page 
directory pointer table, access rights, and memory management information. The base physical address of the 
PML4 is stored in CR3.

A set of page directory pointer tables — An entry in a page directory pointer table contains the physical 
address of the base of a page directory table, access rights, and memory management information.

Sets of page directories — An entry in a page directory table contains the physical address of the base of a 
page table, access rights, and memory management information.

Sets of page tables — An entry in a page table contains the physical address of a page frame, access rights, 
and memory management information.

2.1.6 System 

Registers

To assist in initializing the processor and controlling system operations, the system architecture provides system 
flags in the EFLAGS register and several system registers:

The system flags and IOPL field in the EFLAGS register control task and mode switching, interrupt handling, 
instruction tracing, and access rights. See also: Section 2.3, “System Flags and Fields in the EFLAGS Register.”

The control registers (CR0, CR2, CR3, and CR4) contain a variety of flags and data fields for controlling system-
level operations. Other flags in these registers are used to indicate support for specific processor capabilities 
within the operating system or executive. See also: Section 2.5, “Control Registers” and Section 2.6, “Extended 
Control Registers (Including XCR0).”

The debug registers (not shown in Figure 2-1) allow the setting of breakpoints for use in debugging programs 
and systems software. See also: Chapter 17, “Debug, Branch Profile, TSC, and Resource Monitoring Features.”

The GDTR, LDTR, and IDTR registers contain the linear addresses and sizes (limits) of their respective tables. 
See also: Section 2.4, “Memory-Management Registers.”

The task register contains the linear address and size of the TSS for the current task. See also: Section 2.4, 
“Memory-Management Registers.”

Model-specific registers (not shown in Figure 2-1).

The model-specific registers (MSRs) are a group of registers available primarily to operating-system or executive 
procedures (that is, code running at privilege level 0). These registers control items such as the debug extensions, 
the performance-monitoring counters, the machine- check architecture, and the memory type ranges (MTRRs). 
The number and function of these registers varies among different members of the Intel 64 and IA-32 processor 
families. See also: Section 9.4, “Model-Specific Registers (MSRs),” and Chapter 35, “Model-Specific Registers 
(MSRs).”