Microsoft KB Archive/69647

Conventional, System, Extended, and Expanded Memory Defined

PSS ID Number: Q69647 Article last modified on 01-24-1995

1.x 2.x 3.x 4.x 5.x 6.00

MS-DOS

= SUMMARY =

The following article describes four types of memory that are being used in PC/XT/ATs (including 80386 and 80486 computers). It also describes how memory is used by Microsoft Word, Works, Multiplan, and other Microsoft products. There are other types of memory not mentioned below.

Conventional Memory
Conventional memory is the standard memory from 0K (zero K) to 640K that MS-DOS and most applications are able to recognize. This memory is needed for files with COM (COMmand), EXE (EXEcutable), and BAT (BATch) extensions in order to run. These program files cannot run in any other type of memory under DOS (version 4.01 or earlier), but the COM and EXE files can use other types of memory for their purposes, depending on the type of processor used (as described in the following paragraphs).

System Memory
System memory is the upper 384K of addressable memory in the first megabyte (640K+384K) address range in any PC/AT computer. This address range is reserved for input/output functions fulfilled by device drivers that communicate between the software applications and a variety of devices including the video board, networks, hard drives, and others. The last section of 128K (sometimes more) just before the 1 megabyte (MB) boundary of the 8088/8086 processor is used for addressing the ROM BIOS. No device drivers can be installed in that area.

Extended/Expanded
Extended or expanded memory is used when more than 640K has been added to a computer via slots/sockets on the motherboard of the computer or through the use of an extended memory card.

Extended memory can be addressed by an 80286 (up to 16 MB), an 80386, or an 80486 processor computer (up to 4 gigabytes), but not by the 8088/8086, which needs special software to access it. Therefore, it is normally not available to regular DOS programs, but it is available to operating systems/environments such as OS/2 and Windows 3.00.

Most computers (including the 8086) and memory cards come with device drivers that can address (and therefore use) extended memory as a RAM drive or a print spooler in the DOS environment. Other drivers are available that can provide a disk cache function or that convert extended memory into expanded memory, if the required circuitry is present.

Expanded Memory
Expanded memory is a way to work around the 1 MB address limit of the 8088/8086 microprocessors to create more memory space for data files. Program files cannot run in this type of memory, but they can use larger data files that are using this memory. The size of the data files is then only limited by the amount of physical RAM installed, the limits of the Lotus-Intel-Microsoft (LIM) standard explained below, and the application software’s limits.

Any program that uses expanded memory has to be specifically written to do so. Many Microsoft products are written to comply with the LIM Expanded Memory Specification (EMS). In addition to application programs, many device drivers such as RAM drives, print spoolers, and disk caches can also use expanded memory for their memory needs.

Expanded memory is based on special hardware and software that map, switch, or rotate additional RAM outside of the 8088/8086 address space into the system memory address space in the form of four 16K “pages” or “page frames.” If the four pages are contiguous, they are called a “window,” which is required by LIM standard 3.2. LIM 4.0 can have four separate page frames. Once the expanded memory RAM is installed, a device driver is loaded to manage this expanded memory pool through the memory pages or window.

The LIM EMS lets up to 2048 different 16K blocks map to the same range of 8086 addresses (hence, you can have up to 32 MB of expanded memory).

The latest LIM standard is version 4.0. Works 2.00, Word 5.00, and Word 5.50 can work with LIM standards 3.2 or later. Word can use a maximum of 8 MB of expanded memory.

Works 2.00, Word 5.00, and Multiplan 4.00 were the first versions of these applications to use expanded memory.

To have expanded memory available that meets LIM EMS standards, you must do the following:


 * 1) Install extra RAM (usually on a memory board that has the required circuitry to support EMS).
 * 2) Invoke an expanded memory manager through the CONFIG.SYS file (for example: device=EMM.sys, device=EMM386.sys, etc.)
 * 3) Have at least four 16K “page” frames (4x16K=64K) of system memory available. LIM standard 3.2 requires these four page frames to be consecutive, creating a 64K “window,” while LIM standard 4.0 allows them to be at four different addresses.

KBCategory: kbother KBSubcategory: Additional reference words:

=
================================================================ Copyright Microsoft Corporation 1995.