Courses  A+ OS Types of Memory Design Samples

The CPU chips used to build the PC largely determined the types of memory in PCs. The early PCs were based upon Intel 8088 and 8086 CPU chips that could address only 1,024 K (1 MB) of RAM because the address bus of the 8086 only had 20 wires (220 = 1 MB). This led to the famous Bill Gates quote stating that 640 K of RAM would be all the memory anyone would ever need in a PC. The remaining 384 K of RAM was the reserved memory; in fact it had several uses. The system ROM, display text swapping, and display ROM were assigned to that memory area.

DOS memory management began to change with the introduction of the IBM PC AT using the Intel 80286 chip. The address bus of the 80286 has 24 wires and could therefore address 2024 = 16 MB of memory instead of 1 MB RAM access. Therefore, this chip was capable of addressing RAM beyond the 1,024 K range. To preserve backwards compatibility with the older DOS PC systems, the original memory layout continued to be used. The 80286 chip operated in real mode and in protected mode. Real mode emulated the 8088 chip, while protected mode permitted utilizing up to 16 MB of random access memory. This 16 MB limit was imposed on DOS and Windows software until the introduction of Windows 95.

Windows 95 took advantage of the next CPU chip technology produced by Intel. This is the 80386 chip technology, which is basically used by all 80386, 80486, and Pentium CPU chips today. These chips can address 4GB of RAM. Although no PCs are built with this much RAM, the addressing capability is used with virtual memory so that applications developers can utilize a very large flat address space when building their windows 95/98/NT programs.

Memory management concerns have evolved from the early days of DOS where the major objective was to provide as much of the basic 640 K of RAM as possible for PC application programs. With Windows today this is less of a concern. The more important issue from a PC support perspective is ensuring that there are no hardware memory conflicts within the PC. This translates into careful configuration of the upper memory block area within the PC.

There are five basic areas of PC memory: 

  1. Conventional memory is the lower 640 K DOS. Conventional memory is accessed by 8086 and 8088 chips directly and by 80286, 80386, 80486, and Pentium chips operating in real mode. In DOS-based PC systems, all the work activity was performed using conventional memory. This memory area started from address 0 K to 640 K or, in hexadecimal notation, from address 0000 to address 0A00. In real mode, Intel chips work with this memory in 64K chunks. There are 10 chunks, or memory segments, making up the 640 K of conventional memory. Almost all DOS programs operated exclusively in this area
  2. Extended memory is provided by any 286, 386, 486, and Pentium CPU chips in PCs having physically over 1 million characters (1,024 K) of memory or 1 MB installed. Extended memory is thus any memory installed over 1 MB, so if you have 64 MB of RAM, it has 63 MB of extended memory.
  3. HIMEM, created by an addressing anomaly in the Intel chips, is the first 64 K of extended memory space that is above the 1,024 K (1 MB) boundary. HIMEM can be accessed in real operating mode. HIMEM is a special type of extended memory. It is accessed using a driver program in real operating mode. This driver program permits placing DOS components in HIMEM, as well as managing all extended memory.
  4. Upper memory blocks are blocks of memory in the reserved memory area not used for the display memory swapping area, ROMs, the expanded memory page swapping area, or LAN buffer areas. Upper memory blocks are blocks of memory in the reserved memory area not used for the display memory swapping area, ROMs, the expanded memory page swapping area, or PC expansion card or LAN card buffer areas. Upper memory blocks in the reserved memory area are accessible using DOS's EMM386 program in real operating mode. Pragmatically, there is about 96 K of RAM available into which memory-resident and hardware driver programs may fit. The remainder of the upper memory blocks (UMBs) are used by ROMs, display buffers, etc
  5. Expanded memory can be in any PC, provided the PC has hardware and software drivers that support expanded memory. Old 8088 CPU chip PCs with special expanded memory board and driver software could access more than 640 K of memory by making use of the reserved memory area where blocks of memory assigned to specific drivers were unused. In 386 and above, a PC's expanded memory is created from extended memory using only special software.

The diagram illustrates the PC memory areas. On the left-hand side of the diagram, the first megabyte of memory and the HIMEM area are shown. Hexadecimal addresses for each of the significant memory areas are listed on the right-hand side of the memory areas. The equivalent K addresses are shown on the left-hand side of the diagram. Hence, the HIMEM area is from 1,024 K to 1,088 K. This corresponds to the hexadecimal addresses of 0 FF FF and 1 0F FF. The left box covers conventional memory, the reserved memory area (or upper memory area), and the HIMEM area. The extended (XMS) and expanded (EMS) memory areas appear at the side of the first megabyte of memory to help illustrate EMS swapping. The diagram illustrates a maximum memory of 16 MB, which is equivalent to 16,383 K.

Back to Top