In
DOS memory management, extended memory refers to
memory above the first
megabyte
The megabyte is a multiple of the unit byte for digital information. Its recommended unit symbol is MB. The unit prefix ''mega'' is a multiplier of (106) in the International System of Units (SI). Therefore, one megabyte is one million bytes o ...
(2
20 bytes) of
address space
In computing, an address space defines a range of discrete addresses, each of which may correspond to a network host, peripheral device, disk sector, a memory cell or other logical or physical entity.
For software programs to save and retrieve st ...
in an
IBM PC
The IBM Personal Computer (model 5150, commonly known as the IBM PC) is the first microcomputer released in the IBM PC model line and the basis for the IBM PC compatible de facto standard. Released on August 12, 1981, it was created by a team ...
or compatible with an
80286 or later
processor. The term is mainly used under the
DOS and
Windows operating systems. DOS programs, running in
real mode
Real mode, also called real address mode, is an operating mode of all x86-compatible CPUs. The mode gets its name from the fact that addresses in real mode always correspond to real locations in memory. Real mode is characterized by a 20-bit seg ...
or
virtual x86 mode
In the 80386 microprocessor and later, virtual 8086 mode (also called virtual real mode, V86-mode, or VM86) allows the execution of real mode applications that are incapable of running directly in protected mode while the processor is running a ...
, cannot directly access this memory, but are able to do so through an
application programming interface
An application programming interface (API) is a way for two or more computer programs to communicate with each other. It is a type of software interface, offering a service to other pieces of software. A document or standard that describes how t ...
called the ''
Extended Memory Specification'' (XMS). This API is implemented by a
driver (such as
HIMEM.SYS) or the operating system, which takes care of
memory management and copying memory between
conventional and extended memory, by temporarily switching the processor into
protected mode
In computing, protected mode, also called protected virtual address mode, is an operational mode of x86-compatible central processing units (CPUs). It allows system software to use features such as virtual memory, paging and safe multi-tasking d ...
. In this context, the term "extended memory" may refer to either the whole of the extended memory or only the portion available through this API.
Extended memory can also be accessed directly by DOS programs running in protected mode using
VCPI or
DPMI, two (different and incompatible) methods of using protected mode under DOS.
Extended memory should not be confused with
expanded memory (EMS), an earlier method for expanding the IBM PC's memory capacity beyond 640 kB (655,360 bytes) using an
expansion card with
bank switched memory modules. Because of the available support for expanded memory in popular applications, device drivers were developed that emulated expanded memory using extended memory. Later two additional methods were developed allowing direct access to a small portion of extended memory from real mode. These memory areas are referred to as the
high memory area (HMA) and the
upper memory area (UMA; also referred to as upper memory blocks or UMBs).
Overview
On
x86-based PCs, extended memory is only available with an
Intel 80286 processor or higher. Only these chips can 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
Real mode, also called real address mode, is an operating mode of all x86-compatible CPUs. The mode gets its name from the fact that addresses in real mode always correspond to real locations in memory. Real mode is characterized by a 20-bit seg ...
(except for a small portion called the
high memory area). Only applications executing in
protected mode
In computing, protected mode, also called protected virtual address mode, is an operational mode of x86-compatible central processing units (CPUs). It allows system software to use features such as virtual memory, paging and safe multi-tasking d ...
can use extended memory directly. A supervising protected-mode
operating system such as
Microsoft Windows
Windows is a group of several proprietary graphical operating system families developed and marketed by Microsoft. Each family caters to a certain sector of the computing industry. For example, Windows NT for consumers, Windows Server for serv ...
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.
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 an
DOS program to access extended memory under a
multitasking environment.
''Extended Memory Specification'' (XMS)
The ''Extended Memory Specification'' (XMS) is the specification describing the use of
IBM PC
The IBM Personal Computer (model 5150, commonly known as the IBM PC) is the first microcomputer released in the IBM PC model line and the basis for the IBM PC compatible de facto standard. Released on August 12, 1981, it was created by a team ...
extended memory in
real mode
Real mode, also called real address mode, is an operating mode of all x86-compatible CPUs. The mode gets its name from the fact that addresses in real mode always correspond to real locations in memory. Real mode is characterized by a 20-bit seg ...
for storing data (but not for running executable code in it). Memory is made available by extended memory manager (XMM) software such as
HIMEM.SYS. The XMM functions are accessible through
software interrupt 2Fh function 4310h.
XMS version 2.0, released in July 1988, allowed for up to 64 MB of memory, with XMS version 3.0 this increased to 4 GB (2
32 bytes). To differentiate between the possibly different amount of memory that might be available to applications, depending on which version of the specification they were developed to, the latter may be referred to as super extended memory (SXMS).
The extended memory manager is also responsible for managing allocations in the
high memory area (HMA) and the
upper memory area (UMA; also referred to as upper memory blocks or UMBs). In practice the upper memory area will be provided by the
expanded memory manager (EMM), after which DOS will try to allocate them all and manage them itself.
See also
*
DOS memory management
*
Conventional memory
*
Expanded memory (EMS)
*
High memory area (HMA)
*
Upper memory area (UMA)
*
Global EMM Import Specification (GEMMIS)
*
Unreal mode
References
; Specifications
*
Microsoft,
Lotus
Lotus may refer to:
Plants
*Lotus (plant), various botanical taxa commonly known as lotus, particularly:
** ''Lotus'' (genus), a genus of terrestrial plants in the family Fabaceae
**Lotus flower, a symbolically important aquatic Asian plant also ...
,
Intel, and
AST Research (1988-07-19)
''eXtended Memory Specification (XMS), version 2.0''
* Microsoft, Lotus, Intel, and AST Research (January 1991)
''eXtended Memory Specification (XMS), version 3.0''
; Microsoft Knowledge Base
*
*
*
External links
Extended Memory (XMS) Specification
{{DEFAULTSORT:Extended Memory
X86 memory management
DOS memory management
Memory expansion