Qualitas logo
Divider

Overview of Memory Management

Contents

  1. Memory and the PC
  2. 8088 CPU
  3. Low/High DOS
  4. Expanded Memory
  5. Bank Switching
  6. The PC/AT and Beyond
  7. Extended Memory
  8. 286 and 386 modes
  9. 386 Abilities

Memory and the PC

In the early days of personal computers, most machines could access only 64 KB of memory. This limitation was a feature of early CPU chips. It was not a problem since the software programs of the day were not very complex and 64 KB was plenty of room for a small spreadsheet or a simple game of computer chess.

8088 CPU

The first IBM PC changed everything. It featured a more sophisticated CPU - the Intel 8088 - that could address one megabyte of memory. (Early PCs did not contain this much memory.) With much more space to work in, programmers developed new software packages that could do remarkable things. Users quickly discovered a problem. Not only is the 8088 CPU limited to addressing one megabyte of memory, but the design of the original PC reserved some of those addresses, making them unavailable. This limitation comes from the need to dedicate some areas of memory for uses other than application programs. The PC uses some memory to communicate with hardware devices like the disk drives and video display.

Low/High DOS

The designers of the IBM PC divided memory into two parts: a 640 KB portion and a 384 KB portion. Since the 640 KB division starts at address zero, we call it low DOS memory. The upper 384 KB is the high DOS memory area. Most of low DOS memory is available for application programs like spreadsheets and word processors. DOS itself uses some of this 640 KB. Background programs take space, too. These useful programs are known as memory resident software or terminate-and-stay-resident programs. Device drivers also reside in low memory. A device driver is a program that controls a specific piece of hardware; a mouse, for example. The high DOS memory area has several uses. Keep in mind that this area does not usually contain physical RAM. A system ROM usually occupies the last 64 KB. This ROM contains the Basic Input/Output System (BIOS). The BIOS contains firmware that runs when you turn the power on or reset the system. It also provides access to various hardware devices. Input/output devices also use the high DOS area. These devices are add-in cards such as video boards and network interface boards. After allowing for the various device drivers, the BIOS, and other requirements, you may have only half of the original megabyte left. Since many software applications take 512 KB to operate efficiently, it's easy to see why users feel restricted.

Expanded Memory

The computer industry developed several methods for going beyond the one megabyte limit. The most successful of these methods is still with us. It's known as the LIM/EMS standard, named after the three companies that invented it: Lotus, Intel, and Microsoft. EMS stands for Expanded Memory Specification, referring to a method of making more memory accessible from within the first megabyte. With the right hardware and software, it's possible to add as much as 32 megabytes of expanded memory to any PC. This memory can hold large spreadsheets, text files, and other data. The problem is getting DOS and the 8088 CPU to recognize the presence of expanded memory. An EMS memory board contains hardware dedicated to this task. The EMS hardware makes memory outside the first megabyte appear within that megabyte. EMS reserves an area in the first megabyte as a window (or EMS page frame) for expanded memory. When a program requests a piece of expanded memory, the EMS hardware makes that memory visible in the window.

Bank Switching

Although the EMS technique doesn't actually copy blocks of data back and forth between different areas of memory, that is the effect. Here is a diagram illustrating the EMS bank switching technique: Like everything else about computer memory, the EMS technique has its advantages and disadvantages. The advantage is access to more memory. Any PC from the earliest 8088-based machines to the newest 80486 computers can use EMS to access memory beyond one megabyte. One disadvantage is that earlier solutions required expensive hardware. EMS support was only available by adding an EMS memory board to your system. An 80386 (or compatible) machine doesn't require special hardware to provide EMS services to application programs. 386MAX can act as a memory manager and make memory beyond one megabyte available as EMS memory. This feature is just one aspect of 386MAX; there are many others.

The PC/AT and Beyond

The Intel chips that followed the 8088 did not share the one megabyte limit. The 80286 (or just 286) is the engine inside the PC/AT. It can access 16 MB of memory. The most powerful Intel CPU chips to date, the 80386 (386) and 80486 (486), can access four gigabytes of RAM. A gigabyte is 1024 megabytes.

Extended Memory

The extra memory beyond the first megabyte is known as extended memory. The primary difference between EMS and extended memory is that EMS memory will work with any Intel processor including the 8088. Extended memory is only available for computers based on the 286 and later chips. Then there is the question of usefulness. Until recently, few DOS programs used extended memory. This situation is changing, though, as more programs support extended memory through XMS (the eXtended Memory Standard). XMS allows programs to share extended memory.

Qualitas MAX provides full XMS support. Furthermore, standards like VCPI (Virtual Control Program Interface) and DPMI (DOS Protected Mode Interface) make even better use of extended memory. Since XMS, VCPI, and DPMI work with extended memory, they require a 286 chip or a more recent CPU. What's more, support for these standards requires a particular operating mode in the CPU.

286 and 386 modes

In real mode these processors behave like an 8088 complete with the one megabyte address limit. Real mode allows PC users with 286 or 386 machines to run existing 8088 and DOS-based applications. In protected mode, however, these processors access memory beyond one megabyte and perform other advanced functions. As a result of the need to run 8088-based software, most of the world's 386, 486, and Pentium machines do not work at their full potential. Instead, they behave like faster versions of the original PC. Fortunately, there are ways to access the power of the advanced CPUs and stay with DOS. Qualitas MAX unlocks many of the features of today's latest chips.

386 Abilities

The 386 and its successors have capabilities far beyond those of the 286. The 386 is much better at switching back and forth between real mode and protected mode. It can move easily between DOS programs and the more advanced, protected mode software that uses memory beyond one megabyte. The 386 has another feature. It can switch or map addresses in memory. This process is very much like the EMS technique described in the last section. The main difference is that the 386 CPU doesn't need any additional hardware to perform a mapping operation. It is the mapping ability of the 386 CPU that makes regions in the high DOS area available to Qualitas MAX and your programs. Qualitas MAX fills in these previously empty regions with RAM. Qualitas MAX can then use this memory to store memory resident software. The effect of memory mapping and software relocation is dramatic. By moving programs and drivers out of the 640 KB area, a user can reclaim many kilobytes for applications and data. Qualitas MAX uses all the techniques we've discussed to give you the most possible memory. It oversees mode switching, memory remapping, and management of EMS and other forms of additional RAM.

[Products] [Orders] [Technical Support] [Registration] [Downloads]

Home Page About Qualitas  Return to Home Page

© Qualitas, Inc. 1987-2008, 5012 Kearneysville Pike, P.O. Box 3299, Shepherdstown, WV 25443-3299
Qualitas is a registered trademark and Qualitas MAX 8, Qualitas C.Y.A., Q.E.D., and RAMexam are trademarks of Qualitas, Inc.
All other product names are trademarks of their respective owners.

Comments or suggestions? Send them to .