Learn about the technologies behind the Internet with The TCP/IP Guide!|
NOTE: Using robot software to mass-download the site degrades the server and is prohibited. See here for more.
Find The PC Guide helpful? Please consider a donation to The PC Guide Tip Jar. Visa/MC/Paypal accepted.
|View over 750 of my fine art photos any time for free at DesktopScenes.com!|
Extended Memory (XMS)
All of the memory above the first megabyte is called extended memory. This name comes from the fact that this memory was added as an extension to the base 1 MB that represented the limits of memory addressability of the original PC's processor, the Intel 8088.
With the exception of the first 65,520 bytes, extended memory is not accessible to a PC when running in real mode. This means that under normal DOS operation, extended memory is not available at all; protected mode must be used to access extended memory. The section on processor modes explains this in more detail. The first 64 KB or so of extended memory is the so-called high memory area (HMA) and is accessible in real mode due to the residual effects of a bug in the original Intel 80286, as described here.
Note: Extended memory is
different from expanded memory (EMS), which uses bank
switching and a page frame in the upper memory area to access memory over 1 MB.
There are two ways that extended memory is normally used. A true, full protected mode operating system like Windows NT, can access extended memory directly. However, operating systems or applications that run in real mode, including DOS programs that need access to extended memory, Windows 3.x, and also Windows 95, must coordinate their access to extended memory through the use of an extended memory manager.
The most commonly used manager is HIMEM.SYS, which sets up extended memory according to the extended memory specification (XMS). XMS is the standard that PC programs use for accessing extended memory. (HIMEM.SYS is also used to enable access to the high memory area, which is part of extended memory). In practical terms, extended memory is usually referred to as XMS and vice-versa, even though technically XMS is really a protocol for using extended memory.
Finally, on some systems, especially low-end ones, the extended memory is actually shared between the system and the video card. This is called unified memory architecture and is done as a cost-cutting measure, because it allows the video card to not need its own dedicated video memory. On systems that use this system, part of the extended memory will not be available for use by programs. Fortunately, this low-performance design is falling out of favor. See here for more.