In This Article
What is Upper Memory Area?
In computer architecture, the Upper Memory Area refers to the region between the conventional memory space and the High Memory Area which is usually set aside for the video memory and other peripherals.
From a technical point of view, the Upper Memory Area signifies the space in the memory architecture between 640 KB and 1024 KB (1 MB). This specific region is typically broken and made up of Upper Memory Blocks (UMBs).
- Upper Memory Area is the space in the memory of the legacy computer systems ranging from 640 KB and 1 MB.
- This specific area is typically available for user applications, video memory and other peripherals.
- This area is usually made up of Upper Memory Blocks.
- The users can access this area by using a specific kind of memory manager.
Understanding Upper Memory Area
The Upper Memory Area is a specific portion in the memory architecture represented as (0xA0000–0xFFFFF).
The area was used initially by the system devices such as the video display. However, in a Windows 9x computer, this area is used for specific purposes such as:
- To mirror expanded memory
- To load the drivers
When you use the Upper Memory Area for either of the two purposes or both, you will have to load and use specific drivers such as EMM386.exe and HIMEM.SYS.
This is because the high memory typically attempts to get access to the Upper Memory Area.
However, in the IBM architecture, the uppermost 384 KB of the 1024 KB address space reserved for use by different devices and peripherals, such as:
- The BIOS ROM
- The video BIOS
- The option ROMs
- The video RAM
- The memory-mapped I/O
- The RAM on peripherals
It was also used by the ROM BASIC, but the device is now obsolete.
Even after being used by so many peripherals, most of the 384 KB area was left unused. This added to the difficulty to the memory restriction of 640 KB even more.
Therefore, novel ways were used to fill up the empty spaces within the Random Access Memory (RAM). These specific areas were later referred to as the Upper Memory Blocks (UMBs).
Usually, in a DOS-based system, the memory is divided into five major areas, such as:
- Conventional memory ranging from 0 KB to 640 KB
- Upper Memory Area ranging from 640 KB to 1024 KB
- High Memory Area ranging from 1024 KB to 1088 KB
- Extended Memory Area ranging beyond 1088 KB and up to 16 MB
- Expanded Memory Area ranging typically over and above 16 MB and up to 4 GB
The Upper Memory Area is made up of Upper Memory Blocks (UMBs) and it can be accessed by using a special memory manager such as EMM386.exe.
Typically, in the earlier days when DOS was prevalent and systems had limited memory, users used to run larger applications that consumed almost the entire 640 KB area.
Different memory managers were available and used then to load and organize the Terminate-and-Stay-Resident (TSR) programs and drivers in the empty Upper Memory Area. EMM386 is one such software that was used extensively in Windows 3.0 and DOS 5.
The Upper Memory Area can be implemented in different ways in different systems. For example:
- In the virtual 8086 mode, the UMBs are created and used as such areas by mapping extended memory into the upper memory area.
- It can also be used as a shadow RAM on several modern systems by using the memory set aside for expansion card ROM.
- Different chipsets also set aside an area up to 384 KB of RAM to use as the Upper Memory Area.
- On IBM XT systems, additional memory can be added to the motherboard to make it look like and be used as the Upper Memory Area by means of a custom address decoder called Programmable Read-Only Memory (PROM).
The Upper Memory Area contains different peripherals at different locations such as:
- The Enhanced Graphics Adapter (EGA) and Video Graphics Array (VGA) graphics are stored within 640 KB and 704 KB.
- The Monochrome Display Adapter (MDA) is within 704 KB and 720 KB.
- The area between 720 KB and 736 KB is kept free.
- The Color Graphics Adapter (CGA) graphics and CGA, EGA, and VGA text are stored within 736 KB and 752 KB.
- The area between 752 KB and 768 KB is free.
- The EGA and VGA Basic Input Output System (BIOS) are stored in 768 KB and 800 KB.
- Different spaces between 800 KB and 960 KB are reserved for drivers and Expanded Memory Specification (EMS) page frames.
- The space between 896 KB and 1024 KB is used to store Personal System/2 or PS/2 systems and VGA BIOS.
- The PC system BIOS is stored between 960 KB and 1024 KB.
The relevance and need for the Upper Memory Area increased with the gain in popularity of Windows 3.0. It helps in removing the 640 KB barrier.
However, the use of this specific area is different from the Upper Memory Blocks and needs specific memory managers to ensure that the addressable memory is left intact.