Memorie RAM

Odată cu ieftinirea memoriei RAM, tot mai mulți utilizatori instalează module adiționale de memorie, pe lângă minimul tipic generalizat de 2-3 GB furnizat cu PC-urile moderne. Este normal, de vreme ce limitele permise de sistemele de operare client au crescut de la o versiune la alta. Cu toate acestea, foarte des utilizatorii se întreabă unde merge diferența de RAM care apare între cantitatea instalată și cea utilizabilă.

Recapitulare – limite pentru memoria RAM în funcție de versiunile Windows

Versiunile pe 64 de biți ale Windows Vista Home Premium, Windows 7 Home Premium suportă până la 16 GB, iar Windows Vista Business, Enterprise și Ultimate până la 128 GB, în vreme ce în Windows 7 x64 limita pentru Professional, Enterprise și Ultimate a fost crescută la 192 GB. Iar pentru Windows 8 stăm și mai bine – versiunea Windows 8 – 128 GB, iar Professional și Enterprise câte 512 GB RAM. Sloturi și module să avem, și plăci de bază compatibile.

Înapoi în lumea reală. De ce nu pot folosi toată memoria RAM instalată ?

Din nefericire, foarte mulți utilizatori se mai află încă în stadiul Windows XP 32-bit sau Vista, Windows 7 și chiar Windows 8 32 bit. Chiar dacă oficial toate aceste sisteme de operare folosesc maxim 4GB de RAM, în realitate Windows va afișa doar o cantitate între 3GB și 3.5GB ca ”available for use” (disponibil pentru utilizare), iar de acolo maxim 2 GB pot fi alocați de exemplu pentru o aplicație ”flamândă” de resurse. În spatele acestor două bariere sunt două mecanisme care le stabilesc. Pentru că am primit recent mai multe e-mail-uri legate de aceste probleme, am decis să ofer informații suplimentare despre aceste limitări, în încercarea de a mai reduce din deruta (normală) a utilizatorilor care se confruntă cu aceste situații.

Unde s-a dus restul din memorie RAM ?

Înainte de orice, teoria. Sistemele de operare pe 32 de biți precum Windows XP Home, Professional, Vista, Windows 7 și Windows 8 folosesc un sistem de memorie bazat pe un maxim de 4GB adresabili (2 la puterea 32 este 4.2 miliarde, sau 4GB).

Din acest spațiu de memorie, BIOS-ul alocă anumite adrese pentru dispozitive și preiferice I/O, pentru ca driverele să poată controla dispozitivul hardware accesând pentru citire și scriere locații specifice din memorie ca și cum ar fi RAM normal – dar de fapt acele instrucțiuni accesează direct hardware-ul.

Trebuie spus aici că în Windows accesul software direct la hardware sau la kernel, nucleul sistemului de operare este foarte bine restricționat, din motive de stabilitate a sistemului de operare.

Această alocare/mapare a memoriei este un standard hardware care permite dezvoltatorilor să scrie software care comunică mai bine cu dispozitivele hardware și este folosită în mai toate PC-urile, inclusiv în cele cu procesoare Intel, AMD sau VIA, așa că limitările legate de bariera de 4GB pe 32 de biți vor afecta chiar și cele mai noi sisteme Mac, Windows sau Linux.

Pe un PC, cele mai multe mapări hardware sunt făcute spre limita superioară a adreselor celor 4GB RAM , așa că dacă vom instala 3GB sau mai puțin RAM, vom putea folosi aproape toate adresele RAM (implicit aproape toată cantitatea) pentru a rula Windows și programele instalate, așa cum am făcut dintotdeauna.

Dacă instalăm 4GB RAM, adresele utilizate de device-urile hardware intră în conflict cu alte adrese superioare. Astfel, în vreme ce BIOS-ul afișează toți cei 4GB de RAM, Windows poate raporta o cantitate mult mai mică drept available for system use (disponibil pentru utilizare pe sistem). Dispozitivele hardware care ”consumă” RAM-ul diferență până la valoarea totală includ toate chipseturile de pe placa de bază, plăcile video, alte plăci instalate, etc.

Adresele alocate perifericelor hardware pot fi vizualizate în Device Manager selectând afișarea ”Resources by type” din meniul View. În același timp sistemul de operare însuși preia anumite adrese pentru utilizare proprie. Să nu uităm că și kernelul trebuie gestionat.

RAM-in-Device-Manager.png

După instalarea a 4GB RAM, cifra finală referitoare la cantitatea RAM disponibilă raportată de sistemul de operare poate fi oriunde între 3 și 3,6GB. Situația limită cu 3GB disponibili din 4 este aceea a unui PC cu foarte multe periferice și plăci de extensie instalate.

Noile metode de mapare pentru memoria RAM

Termenul folosit mai sus (mapare) vine de la o caracteristică a unor plăci de bază cu BIOS-uri moderne, care au opțiunea ‘memory remapping‘.

download.png

Fără a complica prea mult lucrurile cu detalii tehnice, ce face această opțiune este să ofere o posiblitate de a mapa/aloca o parte din RAM-ul consumat de hardware undeva peste 4GB, unde nu mai apar conflicte cu nici un fel de adrese ale unor device-uri I/O, ceea ce face ca RAM-ul astfel ”eliberat” să fie adăugat la cel disponibil pentru Windows și aplicații.

Remapping.png

Pentru cei interesați de toate detaliile tehnice, atașez acest whitepaper de la Intel, numit Intel Chipset 4 GB System Memory Support, unde găsim explicațiile necesare.

BIOS-ul meu are sau nu are opțiunea ?

Unii producători de plăci de bază oferă în BIOS opțiunea de memory remapping, iar activarea acesteia a putea face ca Windows să ”vadă” ca utilizabilă o cantitate mai mare de RAM din cei 4 instalați.

Alți producători implementează caracteristica, dar nu oferă posibilitatea de a controla activarea/dezactivarea acesteia. Dar cel mai frecevent, plăcile de bază mainstream (ieftine), care sunt dominante pe piață nu oferă această caracteristică și atunci nu se poate ”recupera” acea diferență de memorie, bazându-se pe faptul că într-o lume economic normală, utilizatorii nu așteaptă performanțe mari de la device-uri ieftine.

Mai rău, producătorii care se zgârcesc la hardware fac sisteme atât de proaste, încât memoria RAM scade uneori dramatic simultan cu instalarea de plăci de extensie adiționale și nu se poate face nimic pentru a ”recupera” această cantitate de RAM. Este imposibil de publicat o listă cu device-uri care oferă opțiunea aceasta, de aceea singura metodă recomandabilă este aceea de a accesa BIOS-ul sistemului și de a căuta opțiunea în cauză.

Dacă ea nu este prezentă, căutați informații despre versiunile mai noi ale BIOS-ului de pe sistemul dv. si faceți upgrade doar dacă știți sigur că va funcționa. Personal nu recomand efectuarea de upgrade-uri BIOS dacă nu sunteți siguri că știți foarte bine ce faceți. De aceea îmi avertizez adesea prietenii glumind foarte serios : nu vreți să vă transformați PC-ul sau laptopul într-o cărămidă.

Concluzia este că orice cantitate RAM ați instala pe un PC, cantitatea totală este raportată de BIOS. Dacă instalați peste 3 GB RAM, WIndows XP, Vista, Windows 7 și Windows 8 pe 32 biți vor afișa întotdeauna ca disponibilă o cantitate mai mică de RAM decât totalul instalat. Parcă pentru a întări confuzia, de exemplu, Windows Vista Service Pack 1 raportează cantitatea totală instalată de RAM, exact ca BIOS-ul.

Microsoft spune ușor eliptic în acest KB http://support.microsoft.com/kb/929605 că ”pentru a  evita potențiale probleme de compatibilitate a driverelor, versiunile pe 32 de biți ale sistemului de operare Windows Vista limitează memoria disponibilă totală la 3.12 GB”.

Bariera de 3GB

Aceasta este o problemă cu totul diferită de cea de mai sus, dar am ales să o tratez tot aici pentru a ușura înțelegerea imaginii de ansamblu asupra memoriei RAM și a modalității de alocare a acesteia pe un PC.

Dacă anterior am vorbit despre adrese fizice din memorie și despre repartizarea acestora, acum vom încerca să înțelegem alocarea software a memoriei, așa cum este ea gestionată de sistemul de operare Windows.

În mod implicit, Windows alocă primii 2GB din 4GB spațiu adrese virtuale pentru aplicații, sau, altfel spus, pentru tot ce rulează în ”User Mode” (regiunea User Mode) și rezervă cealaltă jumătate pentru kernelul (nucleul) sistemului de operare (Kernel Mode).

Sistemul de gestionare a memoriei din Windows virtualizează apoi memoria, în așa fel încât fiecare aplicație este ”păcălită” că are până la 2GB RAM la dispoziție, indiferent de cât RAM fizic există în realitate. Îndată ce o aplicație rămâne fără RAM-ul necesar, datele sunt stocate pe hard disc, în fișierul page (swap), ceea ce conduce la scăderea eprformanței pentru că nici măcar un SSD nu poate fi la fel de rapid precum memoria RAM.

În plus, Windows mai și izolează aplicațiile unele față de altele pentru stabilitate, astfel încât dacă o aplicație are probleme să nu afecteze și alte aplicații . Dacă rulăm mai multe programe simultan, acest sistem de alocare funcționează corect mai tot timpul, dar atunci când toate resursele PC-ului sunt devotate unei aplicații care cere foarte mult de la sistem (jocuri, Photoshop, programe de editare video, encodere/decodere video, etc.), PC-ul se va mișca mai greu.

Adăugând un switch ‘/3GB’ în fișierul C:\boot.ini din Windows XP, PC-ul poate fi forțat să aloce până la 3 GB pentru programe, lasând doar 1 GB pentru Kernel mode-ul Windows, dar nu este recomandabil din aceleași motive de stabilitate globală a sistemului.

Nu voi prezenta pe acest site un tutorial pentru activarea acestui switch, pentru că nu mai recomand de mult utilizarea Windows XP. Chiar și cu acest switch adăugat, nu toate aplicațiile vor beneficia de RAM suplimentar,  ci doar acelea care au fost compilate cu flagul LAA (Large Address Aware) activat. Ceea ce recomand este utilizarea sistemelor de operare moderne pe 64 de biți, respectiv Windows 10 pe 64 de biți. Va urma.

Back To Top
Search