background image

Vol. 3A 2-7

SYSTEM ARCHITECTURE OVERVIEW

Most systems restrict access to system registers (other than the EFLAGS register) by application programs. 
Systems can be designed, however, where all programs and procedures run at the most privileged level (privilege 
level 0). In such a case, application programs would be allowed to modify the system registers.

2.1.6.1  

System Registers in IA-32e Mode

In IA-32e mode, the four system-descriptor-table registers (GDTR, IDTR, LDTR, and TR) are expanded in hardware 
to hold 64-bit base addresses. EFLAGS becomes the 64-bit RFLAGS register. CR0–CR4 are expanded to 64 bits. 
CR8 becomes available. CR8 provides read-write access to the task priority register (TPR) so that the operating 
system can control the priority classes of external interrupts. 
In 64-bit mode, debug registers DR0–DR7 are 64 bits. In compatibility mode, address-matching in DR0–DR3 is 
also done at 64-bit granularity.
On systems that support IA-32e mode, the extended feature enable register (IA32_EFER) is available. This model-
specific register controls activation of IA-32e mode and other IA-32e mode operations. In addition, there are 
several model-specific registers that govern IA-32e mode instructions:

IA32_KERNEL_GS_BASE — Used by SWAPGS instruction.

IA32_LSTAR — Used by SYSCALL instruction.

IA32_FMASK — Used by SYSCALL instruction.

IA32_STAR — Used by SYSCALL and SYSRET instruction.

2.1.7 Other 

System 

Resources

Besides the system registers and data structures described in the previous sections, system architecture provides 
the following additional resources:

Operating system instructions (see also: Section 2.8, “System Instruction Summary”).

Performance-monitoring counters (not shown in Figure 2-1).

Internal caches and buffers (not shown in Figure 2-1).

Performance-monitoring counters are event counters that can be programmed to count processor events such as 
the number of instructions decoded, the number of interrupts received, or the number of cache loads. See also: 
Chapter 19, “Performance Monitoring Events.”
The processor provides several internal caches and buffers. The caches are used to store both data and instruc-
tions. The buffers are used to store things like decoded addresses to system and application segments and write 
operations waiting to be performed. See also: Chapter 11, “Memory Cache Control.”

2.2 

MODES OF OPERATION

The IA-32 architecture supports three operating modes and one quasi-operating mode: 

Protected mode — This is the native operating mode of the processor. It provides a rich set of architectural 
features, flexibility, high performance and backward compatibility to existing software base.

Real-address mode — This operating mode provides the programming environment of the Intel 8086 
processor, with a few extensions (such as the ability to switch to protected or system management mode).

System management mode (SMM) — SMM is a standard architectural feature in all IA-32 processors, 
beginning with the Intel386 SL processor. This mode provides an operating system or executive with a 
transparent mechanism for implementing power management and OEM differentiation features. SMM is 
entered through activation of an external system interrupt pin (SMI#), which generates a system management 
interrupt (SMI). In SMM, the processor switches to a separate address space while saving the context of the 
currently running program or task. SMM-specific code may then be executed transparently. Upon returning 
from SMM, the processor is placed back into its state prior to the SMI.

Virtual-8086 mode — In protected mode, the processor supports a quasi-operating mode known as virtual-
8086 mode. This mode allows the processor execute 8086 software in a protected, multitasking environment.