Korkea muistialue

High Memory Area , HMA - lisämuistin  ensimmäinen osa , jonka kapasiteetti on 65520 tavua (64 kilotavua miinus 16 tavua) osoitteilla 100000 16 - 10FFEF 16 (välittömästi ylemmän muistialueen jälkeen ), saatavilla reaalitilassa ylempien segmenttien kautta osoiteavaruudesta. Ominaisuus 80286 -prosessoreista ja sitä uudemmista prosessoreista ja niihin rakennetuista IBM PC/AT -yhteensopivista tietokoneista [1] .

Kuvaus

Muistin osoitus 8086- ja 8088-prosessoreissa on segmentoitu : täysi (lineaarinen) muistiosoite annetaan 16-bittisen segmentin ("kappaleen") numerolla ja 16-bittisellä poikkeuksella tässä segmentissä (molemmat luvut kirjoitetaan yleensä heksadesimaalimuodossa ) ja se lasketaan kaavalla

(segmentti) × 16 + (offset).

(Tässä tapauksessa sama osoite voidaan saada eri segmentti/offset-pareista - esimerkiksi täydellinen osoite 1000 16 on saatavilla muodossa 0000:1000 ja 0100:0000 ja 0060:0A00).

Segmenttiosoitteen avulla on saatavilla lineaarisia osoitteita 0 (0000:0000) - 10FFEF 16 (FFFF:FFFF, 1088 KB). 808x-suorittimien osoiteväylä on kuitenkin 20-bittinen ja se voi osoittaa vain 220 tavua (1024 KB tai 1 MB) muistia, eli aluetta, jonka osoitteet ovat välillä 0 - FFFFF 16 (0000:0000 - FFFF:000F). Osoitteet 100000 16 - 10FFEF 16 (FFFF:0010 - FFFF:FFFF) ovat 21-bittisiä, joten niitä käytettäessä tapahtuu ylivuoto , 21. bitti katoaa ja esimerkiksi osoite 100000 16 (FFFF:0010) osoittaa samaan , missä ja osoitteeseen 0 (0000:0000).

80286-prosessorissa osoiteväylä on 24-bittinen (osoitteellinen 2 24 = 16 Mt muistia), joten ne eivät vuoda yli.

IBM PC / AT -tietokoneet on rakennettu 80286-prosessorille, mutta yhteensopivuussyistä IBM PC :n ja IBM PC / XT :n kanssa, rakennettu 808x-prosessoreihin, niihin lisättiin logiikkaelementti ( portti ), joka katkaisi 21. osoitejohdon (A20). ) ohjauspiirin muistista. Tätä loogista elementtiä ( Gate A20 ( eng.  A20 line )) ohjataan näppäimistöohjaimella ( Intel 8042 -siru ) ja se on oletusarvoisesti käytössä.

Äskettäin on kehitetty ajuriohjelmia , ns. A20-käsittelijä , jotka hallitsevat dynaamisesti osoitteita ja sallivat reaalitilassa toimivien sovellusten käyttää 1024-1088 kt:n muistialuetta.

MS-DOS

HMA:ta käytettiin ensimmäisen kerran Windows 2.1 :ssä vuonna 1988 ja A20-käsittelijätoiminnon suoritti siellä HIMEM.SYS -ohjain .

Vuonna 1991 julkaistiin MS-DOS 5.0, joka pystyi lataamaan ytimensä HMA:han ja vapauttamaan siten 46 kt päämuistia sovelluksille. Myös myöhemmät MS-DOS-versiot tukevat tätä ominaisuutta. HIMEM.SYS-ohjain sisältyi MS-DOS:iin.

Jotta DOS voi ladata ytimensä HMA:han, sinun on lisättävä seuraavat rivit CONFIG.SYS -tiedostoon:

laite=HIMEM.SYS dos = korkea

Myös muut sovellukset voivat käyttää HMA:ta DOS-toimintojen avulla tai suoraan HIMEM.SYS-toimintojen kautta, vaikka DOS-ytimen siirtämisen jälkeen HMA:lle ei siellä juuri jää vapaata tilaa.

Nimien hämmennys

Englanti sana .  ylempi käännetään yleensä venäjäksi "yläksi" ("sijaitsee ylhäällä" [2] ), mutta sana korkea voidaan kääntää myös "yläksi" (tai "korkeaksi" - "sijaitsee ylhäällä" [3] ) . Tähän liittyy monia törmäyksiä, kun käännetään nimiä Upper Memory Area (Upper Memory Block) ja High Memory Area.

Tämän seurauksena alkuperäisiä englanninkielisiä kirjoitusasuja UMB ja HMA käytetään edelleen venäjänkielisessä kirjallisuudessa (lyhenne UMA ei käytännössä juurtunut).

Lisäksi devicehighja -komennot loadhigh, huolimatta nimessä olevasta sanasta high, lataavat ohjelmia UMB:hen, eivät HMA:han. DOS käyttää HMA:ta vain ytimen lataamiseen (jos käytetään komentoa dos=hightai dos=high,umb).

Katso myös

Muistiinpanot

  1. Hook M. IBM PC -laitteisto. Tietosanakirja. - 2. painos - Pietari. : Peter, 2003. - S. 62. - 928 s. — ISBN 5-318-00047-9 .
  2. ylempi  (pääsemätön linkki) (ei käytettävissä linkki 14.6.2016  alkaen [2333 päivää]) Yandex.dictionariesissa
  3. korkea  (linkki ei saatavilla)  (linkki ei ole käytettävissä 14.6.2016 alkaen [2333 päivää]) Yandex.dictionariesissa