Alla datorer har ett grafikkort oavsett hur mycket RAM de har, eller hur. En bekant till mig köpte en ny dator med 4 GB RAM och Windows XP. Han ringde mig ca ett år sedan och frågade varför hans dator rapporterar mindre fysiskt RAM än 4 GB.
Om man följer den analogi som Dan tar upp i sin artikel, så innebär det att hans 512 MB grafikkort "äter upp" ½ GB RAM; dvs det blir 3,5 GB kvar. Jag kommer inte ihåg exakt, men det var ungefär vad han hade kvar. Jag har senare fått höra (utan att ha verifierat detta själv) att man "alltid" förlorar ca ½ gig även om grafikminnet skulle vara mindre. Och att den exakta mängden varierar något mellan olika moderkort.
Man bör förstå skillnaden mellan virtuella och fysiska minnesadresser i det här sammanhanget. När Microsoft designade 32-bits Windows så bestämdes att olika typer av resurser reserveras bestämda VIRTUELLA adresser inom 0 till 4 gig. Detta gäller helt oberoende av mängden fysiskt minne i datorn. Virtuella minnesadresser konverteras till fysiska (verkliga) adresser via Windows virtuella minneshanterare, alternativt pekar den på "tecken" i en eventuell swapfil.
När Windows startar så reserveras minnesresurser enligt BIOS på moderkort, grafikkort, ev. separat kontrollerkort, osv. Windows kan omdirigera vissa resurser samtidigt som den analyserar och laddar drivrutiner enligt Windows registerfil, men när allt är klart så ligger datat inom bestämda virtuella adressblock beroende på sin datatyp, och i det fysiska minnet uppfylls minnet från lägsta lediga minnesadress uppåt och från högsta minnesadress nedåt. Dvs allt ledigt minne bildar ett enhetligt tomt minnesblock emellan dessa. Programmen arbetar alltid med virtuella minnesadresser och den virtuella minneshanteraren sköter konvertering av dessa till "verkliga" minnesadresser.
Mig veterligen använder inga grafikkort med eget RAM detta "minnesfönster" överhuvudtaget. DOS reserverade ett minnesblock i området mellan 640kB och 1GB som ett grafikfönster (det var bara några kB stort eftersom man arbetade med 16 färger i CGA-grafik). Nya grafikstandarder behövde mycket mera minne så förmodligen löste man problemet i 32-bitars Windows genom denna "nödlösning". Samtidigt bibehöll man kompatibiliteten med befintliga moderkort, drivrutiner och grafiklösningar som saknade eget RAM.
I ett 64-bits operativsystem är det virtuella minnet fullständigt gigantiskt så man flyttar helt enkelt motsvarande virtuella adresser långt utanför det fysiska minnesadresserna. Jag känner inte till den exakta anledningen varför man inte kan återföra detta "outnyttjade minnesfönster" tillbaka i ett 32-bits Windows, men det har säkert sina förklaringar. Kanske det tom skulle vara möjligt men ingen bryr sig eftersom alla kommer ändå så småningom byta till 64-bits operativsystem.
Jag hoppas att detta klargör mera än förvirrar denna gång.
Hare/PeSi