processor extensions are activated, allowing the processor to operate in one of two sub-modes of LMA.
These are the 64-bit mode and the compatibility mode.
64-bit mode: In 64-bit mode, the processor supports 64-bit virtual addresses, a 64-bit instruction
pointer, 64-bit general-purpose registers, and eight additional general-purpose registers, for a total of
16 general-purpose registers.
Compatibility mode: Compatibility mode allows the operating system to implement binary
compatibility with existing 32-bit x86 applications. These legacy applications can run without
recompilation. This coexistence of 32-bit legacy applications and 64-bit applications is implemented
with a compatibility thunk layer.
The thunk layer is a library provided by the operating system. The library resides in a 32-bit process created
by the 64-bit operating system to run 32-bit applications. A 32-bit application, transparent to the user, is
dynamically linked to the thunk layer and implements 32-bit system calls. The thunk layer translates system
call parameters, calls the 64-bit kernel, and translates results returned by the kernel appropriately and
transparently for a 32-bit application.
For detailed information about the x86-64 architecture, refer to the AMD Opteron technical documentation at
http://www.amd.com/us-en/Processors/TechnicalResources/0,,30_182_739_7044,00.html.
USB (except keyboard and mouse), PCMCIA, and IEEE 1394 (Firewire) devices are not supported in the
evaluated configuration.
16
Figure 3-2: AMD x86-64 architecture in compatibility mode