Hovedhukommelsesområde

Hovedhukommelsesområdet ( Main memory , eng.  Konventionel hukommelse ) optager de første 640 KB RAM i IBM PC-kompatible computere . Dette område indlæser interrupt-vektortabellen (optager 1 KB), nogle data fra BIOS (f.eks. tastaturbufferen), forskellige 16-bit DOS -programmer . For dem er 640 KB en barriere.

Barriere 640 Kbytes

For IBM PC-kompatible computere var 1 MB grænsen for hukommelse, som processoren kunne adressere. Intel 8088 CPU'en har 20 adresselinjer og kan få adgang til op til 2 20 = 1 MB hukommelse. Den første megabyte var opdelt i 16 områder på hver 64 KB. De første ti områder var reserveret til brug af brugerprogrammer (mens styresystemet selv kunne få adgang til hele megabyte hukommelse) og blev kaldt hovedhukommelse . De resterende 6 områder med en volumen på 384 KB ( Upper Memory Area , UMA, Upper Memory ) var reserveret til systembehov og yderligere enheder. Tidlige computere husede BIOS og dens udvidelser, videoadapterhukommelse og enhedsdrivere. I eksisterende implementeringer af IBM PC'en blev en del af den øvre hukommelse brugt til CGA / EGA , resten forblev ubrugt. I begyndelsen af ​​1980'erne var 640 KB hukommelse tilstrækkeligt til den gennemsnitlige brugers behov, men behovet for RAM til nye applikationer voksede hurtigere, hvilket førte til behovet for at bruge reserveområderne i den øvre hukommelse på forskellige måder, der gik uden om forbud mod applikationsprogrammer i at få adgang til den øvre hukommelse. Som et resultat førte dette til, at 1 MB tilgængelig hukommelse viste sig at være reserverede "huller", som blev brugt af forskellige hardwareenheder. At fjerne sådanne "huller" var teknisk vanskeligt at implementere og ville ikke blive understøttet af eksisterende versioner af DOS og applikationsprogrammer. Senere blev der udviklet en universel metode, der giver adgang til øvre hukommelsesblokke ( Upper memory blocks, UMB ).

For at sikre bagudkompatibilitet med eksisterende applikationer blev grænsen på 640 KB bibeholdt i efterfølgende implementeringer af IBM PC- standarden , selv efter at Intel 8086/8088-arkitekturen blev erstattet af den mere moderne Intel 80286 , som allerede gjorde det muligt at adressere 16 MB hukommelse i beskyttet tilstand . Denne begrænsning var forårsaget af det faktum, at 80286-processoren kunne arbejde både i den nye beskyttede og i den gamle real-tilstand , hvilket sikrer kompatibilitet med den gamle arkitektur: i real-tilstand er det umuligt at adressere hukommelse med en bitbredde højere end 20 bits (eller 2 20 = 1 MB). Efterfølgende processorer, der var kompatible med IBM PC-arkitekturen, fortsatte med at implementere denne kompatibilitet. Selv på moderne computere er der stadig et reserveret hukommelsesområde mellem 640 og 1024 KB hukommelse [1] [2] , selvom det for de fleste moderne operativsystemer er usynligt, da de får adgang til RAM gennem virtuel hukommelse , hvilket skjuler den reelle allokering bag det hukommelse og er ikke afhængig af den [3] .

Hovedhukommelsesbrug

640 KB-barrieren er kun relevant for 16-bit programmer, der kører under DOS. Driften af ​​32-bit og 64-bit operativsystemer ( Microsoft Windows 4.x , NT , GNU / Linux osv.) er praktisk talt ikke påvirket af 640 KB-barrieren.

Noter

  1. White Paper: A Tour beyond BIOS Memory Map Design i UEFI BIOS (link ikke tilgængeligt) . Intel Corporation (februar 2015). Hentet 3. december 2018. Arkiveret fra originalen 30. september 2015. 
  2. Mark, Russinovich; David A., Salomon; Alex, Ionescu. Windows internt. — 6. — Microsoft Presse, 2012. - T. Del 2. - S. 322. . - "Bemærk hullet i hukommelsesadresseområdet fra side 9F000 til side 100000 ...".
  3. ↑ Programmering af applikationer til Microsoft Windows  . — S. 435ff..

Se også

Litteratur