Legal Information
PC Knowledge Base - Types of Memory

Good Knowledge Is Good2Use

Conventional Memory

Intel 8086 systems can address 1 MB of memory. (Later systems can address more, in other modes.) On PC and PS/2 systems, this is divided into the conventional memory area and the upper memory area (UMA).

The conventional memory area is the 0K-640K section of "normal" memory. This area of memory is used by MS-DOS and normal application software.
The UMA is the 640K-1 MB section of memory that normally contains video adapter buffers, network card buffers, and other buffers and work areas for peripherals and the ROM BIOS. It is also normally used on EMS systems to store the expanded memory page frame. This area of memory is normally used by the ROM BIOS and peripherals, such as the expanded memory manager.

Extended Memory

The extended memory area is an area of memory that is available only on 80286 and 80386 systems. This memory begins at 1 MB. On 80286 systems, the upper limit is 16 MB; on 80386 systems, the upper limit is 4 gigabytes. This memory is only addressable while in protected mode. It is normally used by systems software (RAMDrive, SMARTDrive, VDISK, EMM386.SYS, XMAEM.SYS, and HIMEM.SYS).

Built-in memory (BIM) is a form of memory that exists on Compaq and some other 80386 OEM systems. These systems have 1 MB of conventional memory on their motherboard, and this extra 384K of "built-in memory" is mapped to the top of extended memory, because the UMA already occupies the upper 384K of conventional memory. This area of memory is normally used by systems software. HIMEM.SYS uses this memory and includes it in its extended memory blocks, if it is available.
Other OEM systems also have 384K of otherwise unused memory on their motherboard. A common place for this memory to be mapped into is the first section of extended memory.

EMS Memory

An expanded memory board is a separate board that contains EMS memory of up to 32 MB, which can be addressed on any Intel 80x86 system by paging 16K portions of memory into the expanded memory page frame, located in the UMA.
The expanded memory page frame, normally located in the UMA, is a collection of 16K physical pages from which an application program accesses expanded memory. These page frames are memory frames paged in from the expanded memory board. This area of memory is controlled exclusively by the expanded memory manager (such as EMM386.SYS), which is in turn called by systems software (such as Buffers/X, Fastopen/X, SMARTDrive, RAMDrive, VDISK, MSCDEX, and Windows) and applications software (such as Excel and the Programmer's Library).

Alternatively, 80386 systems can use 80386-specific features to emulate EMS memory by paging 16K portions of memory into the expanded memory page frame, as always located in the UMA. EMM386, QEMM, and 386MAX are examples of this software.

XMA Memory

An IBM expanded memory adapter (XMA) is a separate board that contains IBM (or compatible) XMA memory, which can be addressed as either expanded memory or extended memory, with the appropriate software drivers.

XMS Memory

XMS memory is the collection of the UMA and the extended memory area, and is controlled by an extended memory manager (XMM) such as HIMEM.SYS. The extended memory area is only available on 80286 and 80386 systems. The extended memory area is broken up into two logical areas by the XMM: the high memory area (HMA) and extended memory blocks. Thus, XMS memory consists of the UMA, the HMA, and the extended memory area.

The HMA is 64K of memory located at the beginning of the extended memory area. It exists only on 80286 and 80386 systems with extended memory. This area only exists in a controlled, easily accessible manner when HIMEM.SYS or another XMS driver is installed. This area of memory is controlled exclusively by the extended memory manager (such as HIMEM.SYS), which is in turn called by systems software (such as Windows) and applications software.

Upper memory blocks (UMBs) are blocks of memory that are available on some 80286 and 80386 systems, and are located in the UMA. The number, size, and location of these blocks vary widely, depending upon the types of hardware adapter cards installed in the machine. The XMS specification creates these abstract data types. (HIMEM.SYS does not implement UMBs; in MS-DOS 5.0 and later, EMM386.EXE does.)

Extended memory blocks (EMBs) are blocks of extended memory. The XMS specification creates these abstract data types. This area can only be used for data storage (that is, they cannot be used to store code). EMBs exist to allow systems and applications software to allocate extended memory, which is otherwise very difficult to address and manipulate in a controlled manner.

The above applies to:



Search Knowledge Base Feedback
If you like our web site refer a friend.
Your friends name.
Your friends email address.
Your Name
Your Email Address


© Copyright 1998-1999 GOOD2USE