611:
allocate movable windows to expanded storage within their own address space. There was also a "data mover" feature which could be invoked to move data between main memory (central storage) and expanded storage; later, an "Asynchronous Data Mover
Facility" (ADMF) was introduced, which enabled applications to request data to be moved between the two in the background, while they performed other processing. By the mid-1990s, expanded storage had ceased to be a physically separate memory, and had become merely a logical division within the system memory enforced by firmware; but it was not until the November 2016 release of z/VM 6.4 that IBM finally removed all support for expanded storage from its mainframe operating systems.
158:
346:
33:
617:(AWE) is a conceptually similar feature in Microsoft Windows, used to enable 32-bit applications to access more memory than the 2–4GB that can fit in a 32-bit address space. Although still supported by current versions of Windows, its use has been superseded by 64-bit applications, which can access >4GB of memory directly.
525:
Certain emulation programs, colloquially known as LIMulators, did not rely on motherboard or 80386 features at all. Instead, they reserved 64 KiB 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
292:
In turn, EMS 3.2 was improved upon by a group of three other companies: AST Research, Quadram and Ashton-Tate, which created their own
Enhanced EMS (EEMS) standard. EEMS allowed any 16 KiB region in lower RAM to be mapped to expanded memory, as long as it was not associated with interrupts or
265:
cooperated to develop the EMS standard (aka LIM EMS). The first publicly available version of EMS, version 3.0 allowed access of up to 4 MiB of expanded memory. This was increased to 8 MiB with version 3.2 of the specification. The final version of EMS, version 4.0 increased the maximum
610:
was a feature on IBM mainframes providing additional memory outside of the main system memory, first introduced with the IBM 3090 high-end mainframe series in 1985. Expanded storage could not be directly addressed by applications; an MVS feature known as "window services" enabled applications to
122:("AQA"); it could map any area of the lower 1 MiB. EEMS ultimately was incorporated in LIM EMS 4.0, which supported up to 32 MiB of expanded memory and provided some support for DOS multitasking as well. IBM, however, created its own expanded-memory standard called
293:
dedicated I/O memory such as network or video cards. Thus, entire programs could be switched in and out of the extra RAM. EEMS also added support for two sets of mapping registers. These features were used by early DOS multitasker software such as
284:
The first public version of the EMS standard, called EMS 3.0 was released in 1985; EMS 3.0, however, saw almost no hardware implementations before being superseded by EMS 3.2. EMS 3.2 used a 64 KiB region in the upper 384 KiB
421:. 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
328:. The expanded memory hardware interface used by XMA boards is, however, incompatible with EMS, but a XMA2EMS.SYS driver provided EMS emulation for XMA boards. XMA boards were first introduced for the 1986 (revamped) models of the
102:". LIM EMS had several versions. The first widely implemented version was EMS 3.2, which supported up to 8 MiB of expanded memory and uses parts of the address space normally dedicated to communication with peripherals (
323:
IBM developed their own memory standard called
Expanded Memory Adapter (XMA); the IBM DOS driver for it was XMAEM.SYS. Unlike EMS, the IBM expansion boards could be addressed both using an expanded memory model and as
245:
A first attempt to use a bank switching technique was made by Tall Tree
Systems with their JRAM boards, but these did not catch on. (Tall Tree Systems later made EMS-based boards using the same JRAM brand.)
304:. The caveat was, however, that the standard did not specify how many register sets a board should have, so there was great variability between hardware implementations in this respect.
372:. Given the price of RAM during the period, up to several hundred dollars per MiB, and the quality and reputation of the above brand names, an expanded memory board was very expensive.
234:
scheme was devised, where only selected parts of the additional memory would be accessible at any given time. Originally, a single 64 KiB (2 bytes) window of memory, called a
914:
526:
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
457:
processor freely modeled the address space when running legacy real-mode software, making hardware solutions unnecessary. Expanded memory could be simulated in software.
735:
300:
A new feature added in LIM EMS 4.0 was that EMS boards could have multiple sets of page-mapping registers (up to 64 sets). This allowed a primitive form of DOS
353:
This insertion of a memory window into the peripheral address space could originally be accomplished only through specific expansion boards, plugged into the
311:
67h. Programs using EMS must first establish the presence of an installed expanded memory manager (EMM) by checking for a device driver with the device name
553:(2) of RAM – 4096 times the addressable space of the original 8086. DOS itself did not directly support protected mode, but Microsoft eventually developed
842:
269:
Microsoft thought that bank switching was an inelegant and temporary, but necessary stopgap measure. Slamming his fist on the table during an interview
603:
Other platforms have implemented the same basic concept – additional memory outside of the main address space – but in technically incompatible ways:
307:
The
Expanded Memory Specification (EMS) is the specification describing the use of expanded memory. EMS functions are accessible through software
181:(MiB, or 2 bytes) of memory. It inherited this limit from the 20-bit external address bus (and overall memory addressing architecture) of the
491:
Software expanded-memory managers in general offered additional, but closely related functionality. Notably, they allowed using parts of the
500:
1047:
511:
1066:
937:"Effective utilization of IBM 3090 large virtual storage in the numerically intensive computations of ab initio molecular orbitals"
1019:
670:
1095:
1090:
354:
242:
between conventional memory and expanded memory could be adjusted to access different locations within the expanded memory.
238:, was used; later this was made more flexible. Programs had to be written in a specific way to access expanded memory. The
681:
614:
595:
supported protected mode "out of the box". These and similar developments rendered
Expanded Memory an obsolete concept.
554:
533:
It is also possible to emulate EMS by using XMS memory on 286 CPUs using 3rd party utilities like EMM286 (.SYS driver).
515:
902:
519:
866:
687:
426:
1100:
838:
781:
731:
161:
A section of the lower 1 MiB address space provides a "window" into several megabytes of
Expanded Memory
676:
563:
37:
659:
642:
301:
53:
391:-based computers implemented an expanded memory scheme that did not require add-on boards, notably the
289:
area) divided into four 16 KiB pages, which could be used to map portions of the expanded memory.
78:
is an umbrella term for several incompatible technology variants. The most widely used variant was the
472:. A popular and well-featured commercial solution was Quarterdeck's QEMM. A contender was Qualitas'
637:
362:
69:
469:
369:
297:. Released in 1987, the LIM EMS 4.0 specification incorporated practically all features of EEMS.
157:
277:! … But we're going to do it". The companies planned to launch the standard at the Spring 1985
1043:
956:
906:
828:
721:
664:
492:
434:
146:
45:
802:
771:
17:
948:
892:
717:
653:
607:
133:
in the late 1980s through the mid-1990s, but its use declined as users switched from DOS to
647:
507:
401:
325:
216:
200:, and the remaining 384 KiB of memory space was reserved for uses such as the system
227:
applications could run in it) meant that the market was still open for another solution.
1058:
1007:
620:
546:
254:
231:
220:
134:
87:
61:
345:
110:, an expanded-memory management standard competing with LIM EMS 3.x, was developed by
1084:
1003:
756:
414:
1036:
624:
558:
510:, expanded-memory emulation and DOS extenders ended up being regulated by the XMS,
392:
358:
286:
111:
103:
129:
The use of expanded memory became common with games and business programs such as
974:
266:
amount of expanded memory to 32 MiB and supported additional functionality.
833:
776:
726:
542:
477:
454:
422:
388:
381:
130:
119:
936:
584:
580:
481:
270:
235:
182:
166:
41:
32:
960:
910:
1015:
897:
870:
527:
395:. Typically, software switches determined how much memory should be used as
308:
281:, with many expansion-card and software companies announcing their support.
262:
208:
174:
95:
550:
413:
An expanded-memory board, being a hardware peripheral, needed a software
294:
186:
178:
142:
952:
874:
357:
expansion bus of the computer. Famous 1980s expanded memory boards were
572:
384:
329:
223:. The scarcity of software compatible with protected mode (no standard
115:
592:
568:
485:
473:
442:
438:
278:
274:
170:
196:
bytes) of address space for read-write program memory (RAM), called
1011:
576:
366:
344:
258:
212:
156:
138:
91:
31:
495:(UMA) (the upper 384 KiB of real-mode address space) called
588:
499:(UMBs) and provided tools for loading small programs, typically
465:
430:
201:
417:, which exported its services. Such a device driver was called
623:
creates the illusion of available memory using, for instance,
453:
Beginning in 1986, the built-in memory management features of
224:
65:
204:, video memory, and memory on expansion peripheral boards.
98:, so that this specification was sometimes referred to as "
545:
supported 24 bits of address space (16 MiB) in
541:
Expanded Memory usage declined in the 1990s. The IBM AT
185:. The designers of the PC allocated the lower 640
549:, and the 386 supported 32-bit addresses, or 4
215:
chip that could address up to 16 MiB of RAM as
867:"A General Tutorial on the Various Forms of Memory"
468:, available in September 1986 as a utility for the
1035:
361:RAMpage, IBM PS/2 80286 Memory Expansion Option,
27:System of bank switching in DOS memory management
712:
710:
708:
706:
704:
575:. In the early 1990s new operating systems like
1057:Borrett, Lloyd Robert (January–February 1989).
571:to run in protected mode while still using the
273:said of expanded memory, "It's garbage! It's a
561:were published based on it. DOS programs like
935:Sakaki, M.; Samukawa, H.; Honjou, N. (1988).
759:(Broschure). Tall Tree Systems. October 1983.
8:
886:
884:
476:. Functionality was later incorporated into
349:Emulex Persyst 4 MiB ISA memory board
106:) to map portions of the expanded memory.
700:
861:
859:
757:"Tall Tree Systems Product Datasheet"
7:
1038:PC System Programming for Developers
501:terminate-and-stay-resident programs
829:"EMS 4.0: The Standard That Wasn't"
460:The first software expanded-memory
445:in MS-DOS, PC DOS and DR-DOS.
250:Expanded Memory Specification (EMS)
64:that provided additional memory to
893:"3270 Demand Not Expected To Rise"
230:To make more memory accessible, a
86:), which was developed jointly by
25:
512:Virtual Control Program Interface
503:inside ("LOADHI" or "LOADHIGH").
365:Expanded Memory Adapter and the
1069:from the original on 2020-02-08
1022:from the original on 2020-02-08
1004:"Expanded Memory Specification"
917:from the original on 2020-02-08
845:from the original on 2020-02-08
803:"The Most Memorable Tech Flops"
738:from the original on 2020-02-08
671:Global EMM Import Specification
399:and how much should be used as
211:, introduced in 1984, used the
809:. January 2008. pp. 88–89
1:
891:Welch, Marc J. (1986-04-14).
827:Rosch, Winn L. (1989-12-12).
770:Machrone, Bill (1985-05-14).
319:Expanded Memory Adapter (XMA)
80:Expanded Memory Specification
68:programs beyond the limit of
18:Expanded Memory Specification
1018:. October 1987. 300275-005.
901:. Vol. 8, no. 15.
837:. Vol. 8, no. 21.
780:. Vol. 4, no. 10.
730:. Vol. 8, no. 21.
682:Address Windowing Extensions
615:Address Windowing Extensions
516:DOS Protected Mode Interface
903:InfoWorld Media Group, Inc.
772:"Memory Scheme Breaks 640K"
520:DOS Protected Mode Services
1117:
975:"IBM: Configuring Storage"
688:Physical Address Extension
137:operating systems such as
1034:Tischer, Michael (1989).
839:Ziff Davis Publishing Co.
782:Ziff Davis Publishing Co.
732:Ziff Davis Publishing Co.
567:could use extenders like
219:, it could only do so in
40:are bank-switched in the
464:(emulation) program was
36:Several expanded-memory
1059:"Understanding EMS 4.0"
677:x86 memory segmentation
522:(DPMS) specifications.
425:processor, for example
419:expanded-memory manager
350:
162:
49:
1096:DOS memory management
1091:X86 memory management
660:Overlay (programming)
643:DOS memory management
348:
160:
54:DOS memory management
35:
1063:Technical Cornucopia
722:"A Slot Full of RAM"
506:Interaction between
376:Motherboard chipsets
953:10.1147/sj.274.0528
941:IBM Systems Journal
638:Conventional memory
497:upper memory blocks
198:conventional memory
70:conventional memory
841:pp. 174–175.
470:Compaq Deskpro 386
449:Software emulation
351:
177:could address one
163:
50:
718:Mendelson, Edward
665:Upper memory area
493:upper memory area
480:in 1989 and into
255:Lotus Development
169:processor of the
147:Microsoft Windows
46:upper memory area
16:(Redirected from
1108:
1101:Memory expansion
1077:
1075:
1074:
1053:
1041:
1030:
1028:
1027:
990:
989:
987:
986:
971:
965:
964:
932:
926:
925:
923:
922:
888:
879:
878:
873:. Archived from
863:
854:
853:
851:
850:
824:
818:
817:
815:
814:
799:
793:
792:
790:
789:
767:
761:
760:
753:
747:
746:
744:
743:
714:
654:High memory area
608:Expanded storage
599:Similar concepts
341:Expansion boards
207:Even though the
195:
194:
72:(640 KiB).
21:
1116:
1115:
1111:
1110:
1109:
1107:
1106:
1105:
1081:
1080:
1072:
1070:
1056:
1050:
1033:
1025:
1023:
1006:. Version 4.0.
1002:
999:
997:Further reading
994:
993:
984:
982:
973:
972:
968:
934:
933:
929:
920:
918:
890:
889:
882:
865:
864:
857:
848:
846:
826:
825:
821:
812:
810:
801:
800:
796:
787:
785:
769:
768:
764:
755:
754:
750:
741:
739:
734:pp. 169–.
716:
715:
702:
697:
648:Extended memory
634:
601:
539:
508:extended memory
482:DR DOS 5.0
451:
441:or the default
411:
402:extended memory
397:expanded memory
378:
343:
338:
336:Implementations
326:extended memory
321:
252:
217:extended memory
192:
190:
155:
76:Expanded memory
60:is a system of
58:expanded memory
28:
23:
22:
15:
12:
11:
5:
1114:
1112:
1104:
1103:
1098:
1093:
1083:
1082:
1079:
1078:
1054:
1048:
1031:
998:
995:
992:
991:
979:www.vm.ibm.com
966:
947:(4): 528–540.
927:
880:
877:on 2012-10-22.
855:
819:
794:
762:
748:
720:(1989-12-12).
699:
698:
696:
693:
692:
691:
685:
679:
674:
668:
662:
657:
651:
645:
640:
633:
630:
629:
628:
621:Virtual memory
618:
612:
600:
597:
557:, and several
547:protected mode
538:
535:
450:
447:
410:
409:Device drivers
407:
377:
374:
342:
339:
337:
334:
320:
317:
251:
248:
232:bank switching
221:protected mode
154:
151:
135:protected-mode
88:Lotus Software
62:bank switching
44:, part of the
26:
24:
14:
13:
10:
9:
6:
4:
3:
2:
1113:
1102:
1099:
1097:
1094:
1092:
1089:
1088:
1086:
1068:
1064:
1060:
1055:
1051:
1049:1-55755-036-0
1045:
1040:
1039:
1032:
1021:
1017:
1013:
1009:
1005:
1001:
1000:
996:
980:
976:
970:
967:
962:
958:
954:
950:
946:
942:
938:
931:
928:
916:
912:
908:
904:
900:
899:
894:
887:
885:
881:
876:
872:
868:
862:
860:
856:
844:
840:
836:
835:
830:
823:
820:
808:
804:
798:
795:
783:
779:
778:
773:
766:
763:
758:
752:
749:
737:
733:
729:
728:
723:
719:
713:
711:
709:
707:
705:
701:
694:
689:
686:
683:
680:
678:
675:
672:
669:
666:
663:
661:
658:
655:
652:
649:
646:
644:
641:
639:
636:
635:
631:
626:
622:
619:
616:
613:
609:
606:
605:
604:
598:
596:
594:
590:
586:
582:
578:
574:
570:
566:
565:
560:
559:DOS extenders
556:
552:
548:
544:
536:
534:
531:
529:
523:
521:
517:
513:
509:
504:
502:
498:
494:
489:
487:
483:
479:
475:
471:
467:
463:
458:
456:
448:
446:
444:
440:
436:
432:
428:
424:
420:
416:
415:device driver
408:
406:
404:
403:
398:
394:
390:
386:
383:
375:
373:
371:
368:
364:
360:
356:
347:
340:
335:
333:
331:
327:
318:
316:
314:
310:
305:
303:
298:
296:
290:
288:
282:
280:
276:
272:
267:
264:
260:
256:
249:
247:
243:
241:
237:
233:
228:
226:
222:
218:
214:
210:
205:
203:
199:
188:
184:
180:
176:
172:
168:
159:
152:
150:
148:
144:
140:
136:
132:
127:
125:
121:
117:
113:
109:
105:
101:
97:
93:
89:
85:
81:
77:
73:
71:
67:
63:
59:
55:
47:
43:
39:
34:
30:
19:
1071:. Retrieved
1062:
1037:
1024:. Retrieved
983:. Retrieved
981:. 2006-08-29
978:
969:
944:
940:
930:
919:. Retrieved
896:
875:the original
847:. Retrieved
832:
822:
811:. Retrieved
806:
797:
786:. Retrieved
775:
765:
751:
740:. Retrieved
725:
625:disk storage
602:
562:
540:
532:
524:
505:
496:
490:
484:in 1990, as
461:
459:
452:
418:
412:
400:
396:
393:NEAT chipset
380:Later, some
379:
352:
322:
312:
306:
302:multitasking
299:
291:
287:upper memory
283:
268:
253:
244:
239:
229:
206:
197:
164:
128:
123:
112:AST Research
107:
104:upper memory
99:
83:
79:
75:
74:
57:
51:
29:
905:p. 5.
834:PC Magazine
807:PC Magazine
777:PC Magazine
727:PC Magazine
543:Intel 80286
518:(DPMI) and
478:MS-DOS 4.01
455:Intel 80386
427:Quarterdeck
423:Intel 80386
389:Intel 80286
382:motherboard
370:Above Board
131:Lotus 1-2-3
120:Ashton-Tate
1085:Categories
1073:2020-02-08
1042:. Abacus.
1026:2020-02-08
985:2023-05-03
921:2020-02-08
849:2020-02-08
813:2020-09-05
788:2013-10-28
784:p. 33
742:2020-02-08
695:References
585:Windows NT
581:Windows 9x
530:programs.
462:management
271:Bill Gates
236:page frame
183:Intel 8086
153:Background
42:page frame
1016:Microsoft
961:0018-8670
911:0199-6649
898:InfoWorld
871:Microsoft
551:gigabytes
528:shareware
309:interrupt
263:Microsoft
209:IBM PC AT
175:IBM PC/XT
96:Microsoft
1067:Archived
1020:Archived
915:Archived
843:Archived
736:Archived
673:(GEMMIS)
632:See also
514:(VCPI),
435:Qualitas
385:chipsets
363:AT&T
313:EMMXXXX0
295:DESQview
179:megabyte
143:IBM OS/2
573:DOS API
537:Decline
330:3270 PC
116:Quadram
100:LIM EMS
1046:
959:
909:
593:BSD/OS
591:, and
569:DOS/4G
486:EMM386
443:EMM386
279:COMDEX
275:kludge
261:, and
240:window
171:IBM PC
145:, and
94:, and
1012:Intel
1008:Lotus
690:(PAE)
684:(AWE)
667:(UMA)
656:(HMA)
650:(XMS)
577:Linux
367:Intel
259:Intel
213:80286
139:Linux
92:Intel
38:pages
1044:ISBN
957:ISSN
907:ISSN
589:OS/2
564:Doom
555:DPMI
466:CEMM
431:QEMM
202:BIOS
173:and
167:8088
165:The
118:and
108:EEMS
949:doi
474:386
439:386
429:'s
387:of
359:AST
355:ISA
225:DOS
193:360
191:655
187:KiB
124:XMA
84:EMS
66:DOS
52:In
1087::
1065:.
1061:.
1014:,
1010:,
977:.
955:.
945:27
943:.
939:.
913:.
895:.
883:^
869:.
858:^
831:.
805:.
774:.
724:.
703:^
587:,
583:,
579:,
488:.
437:'
433:,
405:.
332:.
315:.
257:,
149:.
141:,
126:.
114:,
90:,
56:,
1076:.
1052:.
1029:.
988:.
963:.
951::
924:.
852:.
816:.
791:.
745:.
627:.
285:(
189:(
82:(
48:.
20:)
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.