Muistipäivitys: Riittääkö RAM?

Artikkelin kirjoittaja: Panu Roivas | 1 kommentti

32 bittiä: pullonkaulat, ja kikka kolmoset



Virheitä, tarinoita ja täyttä satuilua

Tehdään kerralla selväksi, 32-bittiset (x86) versiot Windows XP, Vista ja 7 –käyttöjärjestelmistä eivät pysty käsittelemään yli 4 gigatavua RAMia. PAE-moodit, rekisterimuokkaukset ja erilaiset käynnistysasetukset eivät tuo toivottua tulosta. Itse asiassa nämä saattavat aiheuttaa epävakautta ja kaatumisia.

Tiedämme, että 32-bittinen sovellus voi osoittaa maksimissaan 2 gigatavua muistia, ja 32-bittinen Windows voi käyttää vain 3,25 gigatavua (tai vähemmän jos yli 4 gigatavua muistia on asennettu). Windows Vista ja 7 näyttävät täydet 4 gigatavua järjestelmän tiedoissa, mutta “puuttuva” RAM on varattu järjestelmän toimesta laitteille, jotka eivät välttämättä ole yhteensopivia 64-bittisten järjestelmien kanssa. Myös näytönohjain käyttää osaa muistista, mutta sen koko ei ole sama kuin näytönohjaimessa oleva muistimäärä. Tämä on yksi väärinkäsitys jonka haluamme korjata.
Kaikissa näytönohjaimissa on yksinkertainen muistinhallintayksikkö nimeltä GMP (graphics memory table), tai GART (graphics address remapping table) vanhoilla AGP-liitännän korteilla. Näitä käytetään yhdistämään laitteistomuistin sivuja näytönohjaimen osoiteavaruuteen. Tällä tapaa RAM-muisti on näytönohjaimen saatavilla jatkuvasti. Vastaavasti videomuistin on oltava järjestelmän osoitettavissa.

Tämän muistinkartoitusprosessin käyttämä RAM-määrä riippuu näytönohjaimen muistikapasiteetistä, jonka täytyy olla melkein identtinen vapaaseen RAM-muistiin verrattuna. Kuitenkin vaadittu määrä on hieman pienempi kuin näytönohjaimen muistin määrä. Näytönohjaimelle varattu muistimäärä riippuu myös laitteiston muistipuskurin koosta, sillä näytönohjain käyttää sitä erillisenä ruutupuskurina grafiikan piirrossa.

Yleinen väärinkäsitys johon foorumeilla törmää on se, että koko näytönohjaimen muisti peilataan laitteistomuistiin, mutta tämä ei pidä paikkaansa.



Swap-tiedostotemppu: Kun RAM ei riitä

Termi “swap-tiedosto” (tai page file, sivuutustiedosto) viittaa tiedostoon kiintolevyllä, jota järjestelmä käyttää jos se tarvitsee suuremman osoitusavaruuden kuin mitä fyysisessä RAM-muistissa on tarjolla. Swap-tiedostot estävät ylivuotoja ja muistipuutoksia. Käyttöjärjestelmä hoitaa muistia niin, että aktiivisten prosessien tarvitsema data tallennetaan aina nopeampaan RAM-muistiin.

Muistikriittisissä tilanteissa on olemassa riski, että kaikki data ei mahdu yhtä aikaa laitteistomuistiin. Laitteisto käyttää seuraavaa kiertotietä: osoitettava laitteistomuisti laajennetaan ja yli menevä data ohjataan swap-tiedostoon. Käytännössä se on siis kiintolevytilaa, joka tukee toimii laitteistomuistina. RAM ja swap-tiedosto yhdessä muodostavat virtuaalimuistin, joka kertoo käytettävissä olevan muistin kokonaismäärän.

Windows on tarpeeksi fiksu tallentamaan datan joutokäynnillä olevista sovelluksista swap-tiedostoon, jotta aktiiviset prosessit voivat hyödyntää RAMia. Haittapuoli tälle ratkaisulle on melko itsestäänselvä. Mekaanisen kiintolevyn nopeus on vain murto-osa RAM-muistiin verrattuna. SSD-levyt (Solid State Drive) ovat astetta parempia, mutta ongelma on yhä olemassa. Jatkuvat swap-operaatiot ovat myrkkyä SSD-levyille ja mahdollisesti hidastavat sen nopeutta.

Kuitenkin käyttämällä swap-tiedostoa voimme laajentaa virtuaalimuistin kokoa yli 8 gigatavuun 32-bittisellä Windowsilla. Tämä vain uhraa nopeutta, sillä “mekaaninen” RAM on toivottoman hidasta.



Yksinkertainen ratkaisu

Entä jos olisikin mahdollista käyttää fyysistä RAM-muistia kiintolevn tapaan ja näin ylittää maaginen 4 gigatavun raja? Voit tehdä tämän luomalla niin kutsutun RAM-levyn laitteistomuistista ja tallentamalla swap-tiedoston sille. Laitteisto tulkitsee RAM-levyn normaaliksi kiintolevyksi, eikä huomaa fyysistä eroa. Tällä tapaa jos sinulla on 16 gigatavua RAMia asennettuna, voit lisätä 12 gigatavua 4 gigatavuun tunnistettua laitteistomuistia.

Vaikka tama virtuaalimuisti pohjautuu muistimoduuleihin, se on hitaampaa kuin suoraan saatavilla oleva RAM 64-bittisissä laitteistoissa, sillä data pitää kopioida swap-tiedostosta RAM-muistiin ennen kuin sitä voidaan käyttää. Tämä on joskus hyvä kompromissi, sillä se on selvästi nopeampaa kuin swap-tiedoston pitäminen kiintolevyllä. Ottaaksesi tämän kikan käyttöön sinun tarvitsee hankkia sopiva RAM-levyohjelmisto. Seuraavalla parilla sivulla näytämme kuinka tällä tavalla voidaan boostata 32-bittistä Windowsia.

kommentti 1

wulzzie

Mitä jos tilanne olisi tämä:

Läppäri, jossa on 32bit windows 7 home premium, 4gb ramia ja 1gb näytönohjaimen muistia. Olisiko mahdollista hyödyntää kaikki sekä näytönohjaimen että ramin muisti täysin tuolla mainitulla tekniikalla?

kiitos etukäteen

Kommentoi artikkelia