On
x86-based PCs, extended memory is only available with an
Intel 80286 processor or higher, such as the
IBM PC AT. Only these chips can directly address more than 1 megabyte of
RAM. The earlier
8086/
8088 processors can make use of more than 1 MB of RAM if one employs
special hardware to make selectable parts of it appear at addresses below 1 MB. On a 286 or better PC equipped with more than 640 kB of RAM, the additional memory would generally be re-mapped above the 1 MB boundary, since the IBM PC architecture reserves addresses between 640 kB and 1 MB for system ROM and peripherals. Extended memory is not accessible in
real mode (except for a small portion called the
high memory area). Only applications executing in
protected mode can use extended memory directly. A supervising protected-mode
operating system such as
Microsoft Windows manages application programs' access to memory. The processor makes this memory available through the
Global Descriptor Table (GDT) and one or more
Local Descriptor Tables (LDTs). The memory is "protected" in the sense that memory segments assigned a local descriptor cannot be accessed by another program because that program uses a different LDT, and memory segments assigned a global descriptor can have their access rights restricted, causing a processor
exception (e.g., a
general protection fault or GPF) on violation. This prevents programs running in protected mode from interfering with each other's memory. Extended memory went unused at first because no software ran in the 80286's protected mode. By contrast, the industry quickly adopted 1985's
expanded memory standard, which works with all PCs regardless of processor. A protected-mode operating system such as Microsoft Windows can also run real-mode programs and provide expanded memory to them. The
DOS Protected Mode Interface (DPMI) is Microsoft's prescribed method for a
DOS program to access extended memory under a
multitasking environment. ==
Extended Memory Specification (XMS) ==