Collection
zero Useful+1
zero

Extended Memory Specification

Accessed by applications specifically designed to expand memory
Xms extended memory specification (EMS). It can only be accessed by applications specifically designed to expand memory. At present, most professional commercial software packages support expanding memory, so it has become a de facto industrial standard. Some commonly used software supporting expanding memory are: Framework, Excel, Paradox, Symphony, etc.
Chinese name
Extended Memory Specification
Foreign name
xms extended memory specification
Abbreviation
EMS

development

Announce
edit
In 1983, IBM announced the adoption of PC/AT with Intel 80286 processor. such microprocessor It can operate in two ways. The first is the real address mode. This is the way DOS uses. It allows direct access to IBM memory. The other way is protection. This way can directly access 16MB memory. [1]
primary PC The memory limit imposed by the hardware constraints that appear in. It also exists in PC/AT and other new 80386 PCs. Therefore, the only way to overcome the 640kDOS barrier is to use an expansion memory card.
After Intel, Lotus and Microsoft announced the EMS specification, AST and some other manufacturers released another specification called the improved extended memory specification (EEMS). EEMS is a superset of LIM-EMS, which supports all EMS functions except some additional optional functions. Most EMS programs can also run on EMS and EEMS memory cards. However, a few software, including Concurrent DOS of Quarterdeck, Desq view and Digital Research, use the additional functions of EEMS.
In August 1987, LIM announced a new version of EMS V4.0. This version has made great improvements from the original 3.2 version in two aspects. The first is that it can support 32MB of expanded memory, instead of 8MB of the previous version.
The second is that version 3.2 only allows data to reside in the extended memory, while version 4.0 allows both data and programs to run in the extended memory. V3.2 programs run normally in V4.0, but new programs, such as Microsoft and Excel and the third version of Lotus 1-2-3, can only be used in V4.0.
Many manufacturers provide users of existing extended memory cards with new extended memory management drivers for free, so that they can use EMSV4.0. AST and its supporters immediately said that they would abandon EEMS and support the new LIM-EMS4.0 version. So now the whole PC industry has reached a consensus. Future software and Hardware development Industry standard EMS4.0 will be supported.

Basic expanded memory management

Announce
edit
Before the emergence of XMS, there have been many management methods for expanding memory. Finally, they all focus on two methods: VDISK method and Int 15H method. [2]
VDISK.SYS is a common installable RAMdisk device driver. IBM has provided this driver since PC-DOS3.0. From the beginning, VDISK can use regular memory or expanded memory to create a keyboard. Recent versions can also use extended memory to create virtual disks. Because PC-DOS provides the source code of VDISK, many companies use this method to implement their own RAMdisks.
After the VDISK is loaded, it occupies more than 1M of expanded memory, and stores the information about the amount of expanded memory occupied in two places. One is the data structure on the conventional memory, which can be accessed with Int 19H; The other is the data structure on the boundary of 1M expanded memory. If another VDISK wants to create another RAMdisk, you must first view the two data structures to get the available expanded memory, and update the contents of the two data structures according to the amount of newly occupied expanded memory.
It is relatively simple to use Int 15H method to manage expanded memory. First, call the Int 15H function to get the size of the currently available expanded memory, and then rewrite the Int 15H function so that every time this function is called in the future, the currently available expanded memory will be returned, in which the expanded memory being used by this program will be removed. Throw and call the original Int 15H for other functions of Int 15H. In this way, if a program occupies an expanded memory, it seems that the occupied expanded memory does not exist for subsequent programs, thus achieving the purpose of expanded memory management.

Extended Memory Specification

Announce
edit
The VDISK method and Int 15H method mentioned above have three serious defects in managing expanded memory: [2]
1. It is not possible to manage programs that read and write expanded memory in protected mode and ignore other used expanded memory.
2. These two methods are not dynamic management. Both of them allocate expanded memory in the first in and last out mode. Once a program stops out of order, the expanded memory used by it can only be reused after all the expanded memory is released by the programs behind it.
3. MS-DOS does not participate in expanded memory management, so when the program is interrupted unexpectedly, it cannot clean up the expanded memory resources used by the program.
In 1988, a more advanced extended memory management method XMS was proposed. XMS defines a software interface on the 80286/386/486 computer, so that program programs can use expanded memory and some memory that MS-DOS cannot manage in a cooperative and hardware independent manner.
XMS implements the following three types of memory management:
1. Memory between 640K-1024K;
2. 1024K-1088K memory;
3. Memory above 1088K;
XMS also provides hardware independent control of CPU address line A20.

shortcoming

Announce
edit
The disadvantage of expanding memory is that it runs slowly. Although there is so much memory, you have to use a paging box to replace it back and forth. Later, after the appearance of the 386 CPU, the expanded memory card was no longer used. Instead, the DOS could access more than 1MB of memory by adding the address bus of the CPU (changing to 32-bit). Plug more than 1MB of memory into the memory slot. The memory of more than 1MB inserted in the memory slot is called extended memory, which is represented by XMS. The capacity of the extended memory depends on the number of RAM installed in the memory slot. The management program of the extended memory in DOS is himem, sys. Considering that the software that needs to expand memory may run on 386 or more machines, DOS provides the emm386.exe memory management program, which can simulate the extended memory into an extended file. [3]

Difference between expanded memory and expanded memory

Announce
edit
The difference between extended memory and extended memory is: [3]
1. The installation position is different. The expanded memory is inserted in the expansion slot of the motherboard, and the expanded memory is inserted in the memory slot;
2. Different models exist. The expanded memory is only available on 8088 or 8086 computers, and on computers above 80836, the expanded memory is no longer used but used;
3. The running speed is different. The use of expanded memory requires page frames, that is, page changing technology, while expanded memory does not. Therefore, the operation speed of the expanded memory (or the expanded memory simulated by the expanded memory) is slower than that of the expanded memory;
4. The symbols are different. In the memory, the expanded memory is represented by EMS, and the expanded memory is represented by XMS;
5. The management procedure is different. The expanded memory management program is stored on the expanded memory card and provided by the expanded memory manufacturer, while the expanded memory management program is provided by DOS.