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!

[ The PC Guide | Systems and Components Reference Guide | System Memory | Logical Memory Layout ]

Memory Layout Overview

The system memory in the PC, despite the fact that it is often referred to as a single number ("my PC has 32 MB of memory") is in fact broken into several different areas. Even though every PC user today probably wishes it wasn't this way. :^) This design is the legacy of system limitations built into the earliest versions of the IBM PC and the versions of DOS that ran on them.

While it's easy--and fun! :^)--to damn those responsible for the PC's current warped way of organizing its memory, it's more realistic to remember the circumstances that led to this happening. In 1981, when the IBM PC was first released, 1 MB was a lot of memory. The most popular home computers at that time were probably the Apple ][ and the Commodore 64, both of which didn't go above 64 KB of memory. I remember at the time using a large minicomputer at school that had just 8 KB of memory! Memory was also very expensive. In short, the computer world was just a totally different animal then from what it is now. And hindsight, as they say, is 20-20.

As a result of the design decisions made in the earliest PCs, memory is broken into the following four basic pieces (with some of the pieces being divided further):

  • Conventional Memory: The first 640 KB of system memory is the (in)famous conventional memory that every PC user has over time grown to know and hate. This is the area that is available for use by standard DOS programs, along with many drivers, memory-resident programs, and most anything else that has to run under standard DOS. It is found at addresses 00000h to 9FFFFh.
  • Upper Memory Area (UMA): This is the upper 384 KB of the first megabyte of system memory (immediately above conventional memory). It is reserved for use by system devices and for special uses such as ROM shadowing and drivers. It uses addresses A0000h to FFFFFh.
  • High Memory Area (HMA): This is the first 64 KB (less 16 bytes) of the second megabyte of system memory. Technically this is the first 64 KB of extended memory, but it can be accessed when the processor is in real mode, which makes it different from the rest of extended memory. It is usually used for DOS, to allow more conventional memory to be preserved. It occupies addresses 100000h to 10FFEFh.
  • Extended Memory: This is all the memory above the high memory area until the end of system memory. It is used for programs and data when using an operating system running in protected mode, such as any version of Windows. Extended memory is found from address 10FFF0h to the last address of system memory. (Technically, the high memory area is part of extended memory, it all depends on how you are looking at things).

Next: Conventional Memory

Home  -  Search  -  Topics  -  Up

The PC Guide (http://www.PCGuide.com)
Site Version: 2.2.0 - Version Date: April 17, 2001
Copyright 1997-2004 Charles M. Kozierok. All Rights Reserved.

Not responsible for any loss resulting from the use of this site.
Please read the Site Guide before using this material.
Custom Search