Extended Memory Specification

The Extended Memory Specification (short: XMS) is a standard that defines how programs under the operating system MS -DOS ( and compatible ) to the main memory beyond the 1- megabyte boundary ( the so-called extended memory, also called the "Extended Memory " translated) can access.

Development

The MS-DOS operating system was designed for the real mode, an operation mode of the x86-compatible microprocessor, in which the main memory is accessed as in the 8086 processor. In this operating mode, only the first mebibyte the main memory to be addressed. From this limitation in 80386 Unreal mode can get around.

When the first PC -ATs were delivered by IBM, they were provided with the 80286 processor, which could appeal to more main memory. So even PCs came with the time on the market, which were equipped with more than 1 MB of memory. In the meantime, were the 640K that were available under DOS application programs, already become too small for many purposes. Access to the extended memory was difficult, however, because the processor had to be switched to protected mode for this. From the BIOS, although a function (via the software interrupt 15hex ) was offered, could not be copied to the storage areas in the extended memory, but the deal was so complicated and risky. Also, there was no access control, if multiple programs trying to access the memory.

Therefore, it was in 1988 by the company Lotus Development Corp.. , Intel Corp.. , Microsoft Corp.. and AST Research Inc. developed a specification that should control access to the extended memory.

XMS 3.0 " Super Extended Memory"

The XMS defined in Version 1 and 2 XMS functions used 16 -bit values ​​to specify block size ( in kilobytes ), which was enough to appeal to a maximum of 64 MB. In 1991, the XMS 3.0 was released, which made access to more than 64 MiB main memory possible. This was also called the super extended memory. The functions used 32 -bit registers, which were available only from the 386 processor, which is not a problem because, in general, only a maximum of 16 MiB main memory was addressed to 286 processors.

Access method

To access the extended memory XMS after a special driver, the extended memory manager ( XMM ) is responsible. About this application programs themselves, but also other device drivers, memory areas in the extended memory can reserve, release data from conventional memory into it and copy back again later, and the memory after use. Under MS- DOS name of this driver HIMEM.SYS and must be loaded at boot time. Among other MS- DOS - compatible operating system, this driver is called partially different and sometimes also with an expanded memory manager (such as emm386.exe ), the EMS provides links.

About the software interrupt 2Fhex the entry point for the service routine of the XMM can be determined via the XMM offering his services.

Access to storage areas in the XMS is done via so-called handles, which returns the XMM during allocate a memory block. To copy blocks of memory between XMS and the conventional memory, the special XMS handle is 000016 used to specify memory addresses in conventional memory. The XMS handles were a scarce resource, since the XMM had to hold for each handle administrative data available. Were usually made from 32 handles that number could be set higher depending on XM to 256.

Problems

Since it must be temporarily changed for copying data between the DOS memory and extended memory in Protected Mode, the access to this memory is relatively slow. Especially on 80286 CPUs, as they require for switching back to real mode a processor reset, which takes too long time. Also, the principle no meaningful way Herkopieren of data between different storage areas XMS slows appreciably.

From I386 the extended memory can alternatively also be used to so-called expanded memory (EMS, see: Expanded Memory Specification) provide. Since programmatically the use of EMS memory is easier than that of XMS memory, were DOS programs, the EMS memory used frequently. Many storage-hungry applications (eg games) but were able to work with both memory upgrade.

314857
de