Udvidet hukommelse
Expanded memory eller Expanded Memory Specification ( EMS ) var en metode til at levere ekstra sidehukommelse til MS-DOS- programmer . Den blev udviklet omkring 1984 .
Disse programmer, som kørte på den originale IBM PC , og dens efterfølgere som IBM XT og IBM AT , var typisk applikationer som regneark og databaser , der krævede en stor mængde hukommelse for at fungere korrekt.
IBM PC'en og IBM XT havde en real-mode hukommelsesarkitektur , som kun tillod programmer at bruge 1 mebibyte adresseplads, hvoraf kun op til 640 KiB var tilgængelig som normal RAM til applikationer. Resten mellem 640 KiB og 1 MiB var reserveret til eksterne enheder, hvilket fremhæver hukommelsen til videokort. IBM AT, med sin Intel 80286 mikroprocessor , understøttede en beskyttet tilstand, som tillod den at adressere op til 16 MiB, men denne computer brugte også MS-DOS, et operativsystem, der ikke brugte udvidet hukommelse (over mebibyte) direkte.
Ideen bag den udvidede hukommelse var at bruge, også til programhukommelse, en del af de resterende 384 KiB, der normalt er dedikeret til periferiudstyr. For potentielt at bruge meget mere hukommelse end det tilladte 384 KiB adresserum, blev der udtænkt et hukommelsesbankskifteskema, hvor kun udvalgte dele af den ekstra hukommelse ville være tilgængelige ad gangen. Oprindeligt var et enkelt vindue på 64 KiB hukommelse muligt, senere var dette mere fleksibelt. Ansøgninger skulle skrives på en bestemt måde for at få adgang til den udvidede hukommelse.
Forskellige implementeringer
Udvidelseskort
Denne indsættelse af et hukommelsesvindue i adresseområdet for eksterne enheder kunne oprindeligt kun opnås gennem specifikke udvidelseskort, der var sat i computerens ISA - udvidelsesbus . Nogle berømte udvidede hukommelseskort fra 1980'erne var AST Research 's RAMPage , IBM PS/2 80286 Memory Expansion Option , AT&T Expanded Memory Adapter og Intel Above Board . I betragtning af prisen på RAM på op til flere hundrede dollars per megabyte i den periode, og kvaliteten og omdømmet af de ovennævnte mærker, var et udvidet hukommelseskort meget dyrt.
Bundkort
Senere implementerede nogle Intel 80286 - baserede computerbundkort et udvidet hukommelsesskema, der ikke krævede tilføjelseskort. Typisk bestemte softwareswitche, hvor meget hukommelse der skulle bruges som udvidet hukommelse, og hvor meget der skulle bruges som udvidet hukommelse.
Indbygget hukommelseshåndtering i processoren
Begyndende i 1987 modellerede de indbyggede hukommelsesstyringsfunktioner i Intel 80386 -processoren løst adresserummet, når man kørte real-mode software, hvilket gjorde hardwareløsninger unødvendige. Udvidet hukommelse kunne simuleres blot ved hjælp af software.
DPMI
En mere effektiv måde at få adgang til adresserum ud over 640 KB på 80286 og senere processorer var ved at bruge DOS Protected Mode Interface ( DPMI ). DOS-forlængere var drivere , der tillod applikationer at køre i beskyttet tilstand . I stedet for at forsøge at få adgang til mere hukommelse via hukommelsesskiftemekanismer, skiftede driverne processoren til beskyttet tilstand, når applikationsprogrammet kørte, og tilbage til rigtig tilstand, når de fik adgang til MS-DOS-tjenester. Dette gjorde det muligt for programmer at få direkte adgang til al hukommelse, der var konfigureret som udvidet hukommelse.
Brugen af udvidet hukommelse af applikationer faldt i begyndelsen af 1990'erne , da DOS Extenders blev mere udbredt.
Softwareemulering
Det første udvidede hukommelsesstyringsprogram (ved emulering) var sandsynligvis Compaq Expanded Memory Manager ( CEMM ), tilgængelig i november 1987 med Compaqs DOS 3.31 . En populær kommerciel løsning med gode funktioner var Quarterdecks QEMM . [ 1 ] En konkurrent var Qualitas 386MAX . Funktionaliteten blev senere indarbejdet i MS-DOS 4.01 fra 1989 og DR-DOS 5.0 fra 1990, som EMM386 .
Udvidet hukommelsesstyringssoftware tilbød yderligere, men nært beslægtet funktionalitet. De kunne især oprette Upper Memory Areas (UMA'er) eller almindelige hukommelsesområder ( Upper Memory Blocks , UMB'er) i de ubrugte dele af de øverste 384 KB (mellem 640 KB og 1 MB) af adresserummet i real-mode og leverede værktøjer at indlæse små programmer, typisk TSR'er ( Terminate and Stay Resident ) ved hjælp af kommandoerne ("loadhi" eller "loadhigh").
Samspillet mellem udvidet hukommelse, udvidet hukommelsesemulering og DOS Extenders endte med at blive reguleret af XMS- , VCPI- og DPMI- specifikationerne .
Visse emuleringsprogrammer, i daglig tale kendt som LIMulators, stolede slet ikke på 80386'erens bundkort eller funktioner. I stedet reserverede de 64 KB basis-RAM til vinduet med udvidet hukommelse, hvor de kopierede data til og fra udvidet hukommelse eller harddisken, når applikationsprogrammer anmodede om sideændringer. Dette var nemt at implementere programmatisk, men ydeevnen var dårlig. Denne teknik blev tilbudt af Above Softwares AboveDisk og af forskellige shareware -programmer .
Detaljer
Et udvidet hukommelseskort var en perifer hardware, det havde brug for enhedsdriversoftware , som eksporterede dets tjenester. Denne enhedsdriver blev kaldt "Expanded Memory Manager" . Hans navn var variabelt; de tidligere nævnte kort brugte henholdsvis remm.sys (AST), ps2emm.sys (IBM), aemm.sys (AT&T) og emm.sys (Intel). Senere blev udtrykket forbundet med software-only-løsninger, der krævede 80386-processoren, for eksempel Quarterdeck 's QEMM (se nedenfor).
Udvidet hukommelse var en fællesbetegnelse for nogle inkompatible teknologivarianter. Den udvidede hukommelsesspecifikation ( EMS ) blev udviklet i fællesskab af Lotus , Intel og Microsoft , så denne specifikation blev nogle gange omtalt som "LIM EMS". EEMS, en konkurrerende udvidet hukommelseshåndteringsstandard, blev udviklet af AST Research , Quadram og Ashton-Tate . Denne standard tillod også, at nogle af eller alle de nederste 640 KB hukommelse blev ommappet, så hele programmer kunne skiftes ind og ud af den ekstra RAM. De to standarder blev til sidst kombineret som LIM EMS 4.0.
Programmering
En blok på 64 KiB, siderammen blev reserveret i øvre hukommelsesområde eller i konventionel hukommelse . Selve siderammen bestod af fire 16 KiB EMS-sider, som hver kunne indstilles uafhængigt til at "pege" på en del af udvidet hukommelse under programkontrol. Det var dyrt at ændre den såkaldte mapping af siderammen , så dataene skulle organiseres derefter. Senere versioner af LIM EMS-specifikationen håndhæver ikke længere brugen af en sideramme , men denne blev sjældent brugt.
Det var besværligt at bruge udvidet hukommelse, og opgaven var frygtet og hadet af alle pc-programmører. Det var dog en måde at bruge mere hukommelse på, og for hukommelsesintensiv software var det bedre at bruge det på en smertefuld måde end slet ikke at bruge det. En konstant designudfordring var at bestemme, hvilke data der skulle lagres i de brugervenlige lave 640 KB hukommelse, og hvilke data der skulle lagres i udvidet hukommelse med dets iboende håndteringsomkostninger.
Før standardiseringen pålagt af LIM EMS, kom hvert hukommelseskort med sin egen driver og forskellige applikationsprogrammeringsgrænseflader . Efter LIM EMS ændrede Microsoft lidt sin implementering i DOS 3.31, så hukommelsen blev justeret på ordgrænser i stedet for bytegrænser som bestemt af den originale specifikation, hvilket medførte, at nogle applikationer ikke fungerede korrekt. I praksis skulle brugerne ændre deres computerindstillinger for at bruge LIM EMS eller Microsoft EMS afhængigt af hvilket program de ønskede at bruge.
Referencer
- ↑ QEMM: Quarterdeck Expanded Memory Manager .
- En komplet diskussion af EMS og programmeringseksempler kan findes i ["PC-systemprogrammering for udviklere", 1989, ISBN 1-55755-035-2 (kun bog) og ISBN 1-55755-036-0 ( bog og diskette )] .
- Understanding EMS 4.0 af Lloyd Borrett, Technical Cornucopia, januar-februar 1989
Denne artikel (eller en tidligere version) er oprindeligt baseret på materiale i Free On-line Dictionary of Computing , brugt med tilladelse . Opdater det efter eget skøn.
Se også
- område med høj hukommelse
- øvre hukommelsesområde
- DOS Protected Mode Interface
- Udvidet hukommelsesspecifikation
- konventionel hukommelse
- udvidet hukommelse
- uvirkelig tilstand
- hukommelsessøgning
Eksterne links
- DOS Protected Mode Interface
- DOS Protected Mode Services
- Virtuel kontrolprogramgrænseflade