Revision as of 13:24, 29 October 2007 edit217.87.99.127 (talk)No edit summary← Previous edit | Revision as of 13:52, 29 October 2007 edit undoFnagaton (talk | contribs)3,957 edits MOSNUM Don't change types.Next edit → | ||
Line 1: | Line 1: | ||
{{expert-subject|Computing}} | {{expert-subject|Computing}} | ||
'''Expanded memory''' was a system of ] introduced around |
'''Expanded memory''' was a system of ] introduced around 1984 that provided more memory to byte-hungry, business-oriented ] programs. These were typically ]s and ]s running on the original ], and on its successors like the ] and ]. IBM PC and IBM XT had ] memory architecture, which only allowed programs to use 1 megabyte of address space, of which only up to 640 ] was available for normal ram (the remainder from 640 KB to 1 ] being reserved for peripherals, most notably the screen memory in the display adapter). The IBM AT, with its ] supported ], but this computer also used MS-DOS, a real mode ] that did not use ] directly. | ||
The idea behind ''expanded memory'' was to use part of the remaining 384 |
The idea behind ''expanded memory'' was to use part of the remaining 384 KB, normally dedicated to communication with peripherals, for program memory as well. In order to fit potentially much more memory than the 384 KB of free address space would allow, a '']'' scheme was devised, where only selected portions of the additional memory would be accessible at the same time. Originally, a single 64 KB ''window'' of memory was possible; later this was made more flexible. Applications had to be written in a specific way in order to access expanded memory. | ||
==Different implementations== | ==Different implementations== | ||
Line 14: | Line 14: | ||
=== Software emulation === | === Software emulation === | ||
Beginning in |
Beginning in 1987, the built-in memory management features of ] processor freely modeled the address space when running legacy real mode software, making hardware solutions unnecessary. Expanded memory could be simulated in software. | ||
The first software expanded memory ''management'' (emulation) program was probably ], available in November 1987 with Compaq DOS 3.31. A popular and well-featured commercial solution was Quarterdeck's ]. A contender was Qualitas' ]. Functionality was later incorporated into MS-DOS 4.01 in |
The first software expanded memory ''management'' (emulation) program was probably ], available in November 1987 with Compaq DOS 3.31. A popular and well-featured commercial solution was Quarterdeck's ]. A contender was Qualitas' ]. Functionality was later incorporated into MS-DOS 4.01 in 1989 and into ] 5.0 in ], as ]. | ||
Software expanded memory manager in general offered additional, but closely related functionality. Notably, they could create ordinary memory areas (]s) in unused parts of the high 384 |
Software expanded memory manager in general offered additional, but closely related functionality. Notably, they could create ordinary memory areas (]s) in unused parts of the high 384 KB of real mode address space and provided tools for loading small programs, typically ]s inside ("loadhi" or "loadhigh"). | ||
Interaction between ], expanded memory emulation and DOS extenders ended up being regulated by the XMS, VCPI and ] specifications. | Interaction between ], expanded memory emulation and DOS extenders ended up being regulated by the XMS, VCPI and ] specifications. | ||
Certain emulation programs, colloquially known as LIMulators, did not rely on motherboard or 80386 features at all. Instead, they reserved 64 |
Certain emulation programs, colloquially known as LIMulators, did not rely on motherboard or 80386 features at all. Instead, they reserved 64 KB of the base RAM for the expanded memory window, where they copied data to and from either extended memory or the hard disk when application programs requested page switches. This was programmatically easy to implement, but performance was low. This technique was offered by AboveDisk from Above Software and by several ] programs. | ||
== Details == | == Details == | ||
Line 28: | Line 28: | ||
An expanded memory board, being a hardware peripheral, needed a software ], which exported its services. Such a device driver was called "expanded memory manager". Its name was variable; the previously mentioned boards used remm.sys (AST), ps2emm.sys (IBM), aemm.sys (AT&T) and emm.sys (Intel) respectively. Later, the expression became associated with software-only solutions requiring the 80386 processor, for example Quarterdeck's QEMM (see below). | An expanded memory board, being a hardware peripheral, needed a software ], which exported its services. Such a device driver was called "expanded memory manager". Its name was variable; the previously mentioned boards used remm.sys (AST), ps2emm.sys (IBM), aemm.sys (AT&T) and emm.sys (Intel) respectively. Later, the expression became associated with software-only solutions requiring the 80386 processor, for example Quarterdeck's QEMM (see below). | ||
Expanded memory was a common term for several incompatible technology variants. The '''Expanded Memory Specification''' (EMS) was developed jointly by ], ], and ], so this specification was sometimes referred to as "LIM EMS". EEMS, a competing expanded memory management standard, was developed by ], ] and ]. It allowed to also remap some or all of the lower 640 |
Expanded memory was a common term for several incompatible technology variants. The '''Expanded Memory Specification''' (EMS) was developed jointly by ], ], and ], so this specification was sometimes referred to as "LIM EMS". EEMS, a competing expanded memory management standard, was developed by ], ] and ]. It allowed to also remap some or all of the lower 640 kB of memory, so that entire programs could be switched in and out of the extra RAM. The two standards were eventually combined as LIM EMS 4.0. | ||
== See also == | == See also == |
Revision as of 13:52, 29 October 2007
This article needs attention from an expert in Computing. Please add a reason or a talk parameter to this template to explain the issue with the article. WikiProject Computing may be able to help recruit an expert. |
Expanded memory was a system of bank switching introduced around 1984 that provided more memory to byte-hungry, business-oriented MS-DOS programs. These were typically spreadsheets and databases running on the original IBM PC, and on its successors like the IBM XT and IBM AT. IBM PC and IBM XT had real mode memory architecture, which only allowed programs to use 1 megabyte of address space, of which only up to 640 KB was available for normal ram (the remainder from 640 KB to 1 megabyte being reserved for peripherals, most notably the screen memory in the display adapter). The IBM AT, with its Intel 80286 supported protected mode, but this computer also used MS-DOS, a real mode operating system that did not use extended memory directly.
The idea behind expanded memory was to use part of the remaining 384 KB, normally dedicated to communication with peripherals, for program memory as well. In order to fit potentially much more memory than the 384 KB of free address space would allow, a banking scheme was devised, where only selected portions of the additional memory would be accessible at the same time. Originally, a single 64 KB window of memory was possible; later this was made more flexible. Applications had to be written in a specific way in order to access expanded memory.
Different implementations
Expansion boards
This insertion of a memory window into the peripheral address space could originally be accomplished only through specific expansion boards, plugged into the ISA expansion bus of the computer. Famous 1980s expanded memory boards were AST RAMpage, IBM PS/2 80286 Memory Expansion Option, AT&T Expanded Memory Adapter and the Intel Above Board. Given the price of RAM during the period, up to several hundred dollars per megabyte, and the quality and reputation of the above brand names, an expanded memory board was very expensive.
Motherboards
Later, some motherboards of Intel 80286-based computers implemented an expanded memory scheme that did not require add-on boards. Typically, software switches determined how much memory should be used as expanded memory and how much should be used as extended memory.
Software emulation
Beginning in 1987, the built-in memory management features of Intel 80386 processor freely modeled the address space when running legacy real mode software, making hardware solutions unnecessary. Expanded memory could be simulated in software.
The first software expanded memory management (emulation) program was probably CEMM, available in November 1987 with Compaq DOS 3.31. A popular and well-featured commercial solution was Quarterdeck's QEMM. A contender was Qualitas' 386MAX. Functionality was later incorporated into MS-DOS 4.01 in 1989 and into DR-DOS 5.0 in 1990, as EMM386.
Software expanded memory manager in general offered additional, but closely related functionality. Notably, they could create ordinary memory areas (Upper Memory Blocks) in unused parts of the high 384 KB of real mode address space and provided tools for loading small programs, typically TSRs inside ("loadhi" or "loadhigh").
Interaction between extended memory, expanded memory emulation and DOS extenders ended up being regulated by the XMS, VCPI and DPMI specifications.
Certain emulation programs, colloquially known as LIMulators, did not rely on motherboard or 80386 features at all. Instead, they reserved 64 KB of the base RAM for the expanded memory window, where they copied data to and from either extended memory or the hard disk when application programs requested page switches. This was programmatically easy to implement, but performance was low. This technique was offered by AboveDisk from Above Software and by several shareware programs.
Details
An expanded memory board, being a hardware peripheral, needed a software device driver, which exported its services. Such a device driver was called "expanded memory manager". Its name was variable; the previously mentioned boards used remm.sys (AST), ps2emm.sys (IBM), aemm.sys (AT&T) and emm.sys (Intel) respectively. Later, the expression became associated with software-only solutions requiring the 80386 processor, for example Quarterdeck's QEMM (see below).
Expanded memory was a common term for several incompatible technology variants. The Expanded Memory Specification (EMS) was developed jointly by Lotus, Intel, and Microsoft, so this specification was sometimes referred to as "LIM EMS". EEMS, a competing expanded memory management standard, was developed by AST Research, Quadram and Ashton-Tate. It allowed to also remap some or all of the lower 640 kB of memory, so that entire programs could be switched in and out of the extra RAM. The two standards were eventually combined as LIM EMS 4.0.
See also
- Unreal mode
- Conventional memory
- Upper Memory Area (UMA)
- High Memory Area (HMA)
- Extended memory (XMS)
References
- Lotus, Intel, Microsoft (October 1987). Expanded Memory Specification. Version 4.0.
- A complete discussion of EMS and programming examples can be found in .
- Understanding EMS 4.0 by Lloyd Borrett, Technical Cornucopia, January–February 1989
This article is based on material taken from the Free On-line Dictionary of Computing prior to 1 November 2008 and incorporated under the "relicensing" terms of the GFDL, version 1.3 or later.
Categories: