Gå til innhold

4GB på 32bit XP - Tweaking?


Anbefalte innlegg

Har hørt en del forskjellige tilfeldige folk si at det er mulig å bruke 4GB på 32bit systemer, ved å gjøre noe. Er dette mulig, og ja jeg vet at folk sier at man trenger 64bit OS, men er det noen slags tweaking man kan gjøre?

 

De som vet dette kan for all del svare. De som bare gjetter kan la være.

 

Bare lurte på om det er noe i dette, eller om det bare er rykter.

Endret av Bruktbilen
Lenke til kommentar
Videoannonse
Annonse

Nei, grunnen er at Windows holder av endel minneadresser til forskjellig hardware og andre oppgaver, som man ikke kan bruke.

 

F.eks. ligger primærskjermkortet i området 0x000A0000 og utover, dette kan da ikke allokeres minne på.

 

Så selvom du teoretisk kunne fått windows til å si 4 GB, så ville ikke det være mulig å bruke alle 4GB allikevel.

Lenke til kommentar

Dess mer hardware du napper ut eller deaktiverer, jo flere minneadresser blir tilgjengelig i Windows. Eksempelvis tror jeg et skjermkort med 256 MB RAM tar minst 256M adresser, mens et skjermkort med bare 64 MB RAM bare tar minimum 64M adresser.

Så kanskje det blir bedre med ræva skjermkort, ingen lydkort, ingen USB, osv.

Lenke til kommentar

Fritz0r har nesten rett, i eldre Windows versjoner(NT 3.5 -> W2K), var mengden ram lik 2^(32-1) altså 2 GB, men med en boot switch kunne man få opp til 3 GB.

I Windows XP og oppover, er denne på som default.

 

RAM området er ikke egentlig RAM, det er I/O adresser til hardware, som må gjøres på denne måten.

Så når man skrive til f.eks. 0xA0000 så vil alt du sender bli overført via PCI bussen til hardware, i dette tilfellet skjermkortet.

 

Vanlige programmer har ikke tilgang til hardware, fordi Windows hindrer alt annet en drivere å gjøre det.

 

edit:

 

Oi! jeg tror jeg skal skrive litt mer utfyllende om hvordan dette fungerer.

 

Fra og med Intel 386 kan programmer kjøre i noe som kalles "protected mode"

Det protected mode gjør, er at alle programmer vil kjøre individuelt av hverandre, og ikke engang være klar over at andre programmer er i gang.

Fordelen med dette, er at alle programmer får 4 GB RAM tilgjengelig (- hardware IO porter)

Dette er i motsetning til noe som kalles real mode (unreal mode i 32-bit) hvor minneområdet blir lineart.

Det protected mode også gjør, er at man kan legge til noe som heter paging eller segmentering, hvor minndet blir delt opp i mange segments, eller pages, som igjen kan legges på en swapfil eller pagefil når det ikke er i bruk. Hvis derimot programmet skal ha tak i en bit som ikke ligger i RAM, så vil prosessoren avfyre et interrupt som kalles "page fault" og operativsystemet vil hente denne pagen eller segmentet fra disk, og legge det i RAM, før programmet kan fortsette.

 

Praktisk vil dette si at man kan ha rundt 3 GB fysisk RAM (hardware adresser trukket fra), men ubegrenset med virtuelt RAM, altså pagefile eller swapfile.

 

edit2: men programmer kan ikke allokere mer en 4 GB - hardware IO adresser : UAVHENGIG av hvor mye fysisk RAM som er installert på maskinen (alt som ikke får plass i RAM blir lagt i pagefilen)

Endret av GeirGrusom
Lenke til kommentar

Joda, men på toppen av hardware styringa ligger det en minnemodell, Windows bruker paging, Unix bruker segmentation.

 

På toppen av dette igjen, ligger det et slags filsystem (det er ikke et filsystem, men bare for sammenligning) som derfor gjør at operativsystemet støtter mindre en maks RAM som prosessoren kan addressere. I Windows Vista 64 ligger denne grensen på 128 GB hvis jeg ikke tar helt feil.

 

En 64-bit prosessor kan addressere 2^64 Byte = 18 446 744 073 709 551 616 Byte = 16*10^9 MiB = 16 EiB som er et vanvittig stort tall.

 

edit: Leste bedre igjennom hva Fritz0r mente, og det er ikke riktig.

 

Stor forskjell på fysisk RAM og virtuelt minne

 

Man kan si det sånn at Windows har et visst minne område, i 32-bit er dette fra 0x00000000 til 0xFFFFFFFF

Dette minneområdet har endel ressurser som det bruker, noe vil bli lagt som minne, annet vil bli sendt til hardware.

Minne delen består i 2 deler, RAM og Pagefile. Man kan ikke vite om minnet man skal ha tak i ligger på pagefile eller ikke, men dersom det ligger på pagefile det legges i maskinens RAM før det kan brukes, og da blir det kalt et pagefault interrupt.

Sjekk Task Manager, velg kolonner og legg til page faults, så vil du se hvor ofte dette skjer. Dersom du skrur av pagefilen vil de sannsynligvis alltid stå på null, jeg vet ikke om Windows omorganiserer RAM, for da kunne det også hende at pagefault blir kalt.

en page er som regel på 4KB sånn sirkus, husker ikke helt.

 

Men av teorien her, så kan man se fort at hardware data vil ikke på noe tidspunkt hverken ligge i RAM, eller på pagefilen, med mindre dette er et buffer.

Buffer er veldig vanlig, fordi det er kjappere å legge ting i RAM og deretter bruke DMA controlleren til å kopiere dataene til hardware. DMA (Direct Memory Access) er en brikke som er laget for å kunne kopiere data fra minne til hardware uten å involvere prosessoren, det er dette som gjør at man kan se på en DivX film på en PC, uten den måtte prosessoren kopiert alt sammen selv, og da ville man ikke hatt mye CPU igjen.

 

Det er alt for mye å forklare her, så jeg tror jeg stopper der.

Endret av GeirGrusom
Lenke til kommentar

Fritz0r blander inn skjermkort og sier at Windows reserverer RAM på hovedkortet til bruk som skjermminne. Og at denne mengden alltid er nøyaktig halvparten av minnet på skjermkortet.

Jeg ser ikke logikken, og har aldri sett eller hørt noe liknende.

 

Med integrert skjermkort reserveres ofte noe av RAM'en på hovedkortet til skjerm-bruk, men det er ikke Windows som styrer dette, og mengden kan i tillegg justeres.

Lenke til kommentar

Vista gjør i alle fall dette. leste det i en KB artikkel da vi etteforsket et 4 GB problem med en kundes problem med Precision og XP64, endte med at vi måtte annbefalle kunden og oppgradere til Vista 64, pga noe bug med drivere til XP64 og akkurat denne PC-en, men jeg er 100% sikker på at vi fant artikkler som støtter det jeg sier om skjermkort minne/addresering, dvs at ved 4 GB bruk på 32bit OS, så vil windows også allokere halvparten av skjermkort minnes størrelse i rammen til rendring.

 

Dette var en Microsoft artikkel, den hadde ikke noe med om det var intergrert eller PCIe skjermkort.

Endret av Fritz0r
Lenke til kommentar
Vista gjør i alle fall dette. leste det i en KB artikkel da vi etteforsket et 4 GB problem med en kundes problem med Precision og XP64, endte med at vi måtte annbefalle kunden og oppgradere til Vista 64, pga noe bug med drivere til XP64 og akkurat denne PC-en, men jeg er 100% sikker på at vi fant artikkler som  støtter det jeg sier om skjermkort minne/addresering, dvs at ved 4 GB bruk på 32bit OS, så vil windows også allokere halvparten av skjermkort minnes størrelse i rammen til rendring.

 

Dette var en Microsoft artikkel, den hadde ikke noe med om det var intergrert eller PCIe skjermkort.

9521158[/snapback]

 

 

Noe jeg har lagret i min…. WindowsMemoryThema… folder. (har ikke linken, men det burde ikke være vanskelig å finne)

 

CAUSE

This behavior is the expected result of certain hardware and software factors.

 

Various devices in a typical computer require memory-mapped access.

This is known as memory-mapped I/O (MMIO). For the MMIO space to be available to 32-bit operating systems,

the MMIO space must reside within the first 4 GB of address space.

 

For example, if you have a video card that has 256 MB of onboard memory,

that memory must be mapped within the first 4 GB of address space.

If 4 GB of system memory is already installed, part of that address space must be reserved by the graphics memory mapping.

Graphics memory mapping overwrites a part of the system memory.

These conditions reduce the total amount of system memory that is available to the operating system.

 

The reduction in available system memory depends on the devices that are installed in the computer.

However, to avoid potential driver compatibility issues, the 32-bit versions of Windows Vista limit the total available memory to 3.12 GB.

See the "More information" section for information about potential driver compatibility issues.

 

If a computer has many installed devices, the available memory may be reduced to 3 GB or less.

However, the maximum memory available in 32-bit versions of Windows Vista is typically 3.12 GB.

 

WORKAROUND

For Windows Vista to use all 4 GB of memory on a computer that has 4 GB of memory installed, the computer must meet the following requirements:

• The chipset must support at least 8 GB of address space. Chipsets that have this capability include the following:

• Intel 975X

• Intel P965

• Intel 955X on Socket 775

• Chipsets that support AMD processors that use socket F, socket 940, socket 939, or socket AM2.

These chipsets include any AMD socket and CPU combination in which the memory controller resides in the CPU.

 

• The CPU must support the x64 instruction set. The AMD64 CPU and the Intel EM64T CPU support this instruction set.

• The BIOS must support the memory remapping feature.

The memory remapping feature allows for the segment of system memory that was previously overwritten by

the Peripheral Component Interconnect (PCI) configuration space to be remapped above the 4 GB address line.

This feature must be enabled in the BIOS configuration utility on the computer.

View your computer product documentation for instructions that explain how to enable this feature.

Many consumer-oriented computers may not support the memory remapping feature.

No standard terminology is used in documentation or in BIOS configuration utilities for this feature.

Therefore, you may have to read the descriptions of the various BIOS configuration settings that are available

to determine whether any of the settings enable the memory remapping feature.

• An x64 (64-bit) version of Windows Vista must be used.

 

Note When the physical RAM that is installed on a computer equals the address space that is supported by the chipset,

the total system memory that is available to the operating system is always less than the physical RAM that is installed.

For example, consider a computer that has an Intel 975X chipset that supports 8 GB of address space.

If you install 8 GB of RAM, the system memory that is available to the operating system will be reduced by the PCI configuration requirements.

In this scenario, PCI configuration requirements reduce the memory that is available to the operating system

by an amount that is between approximately 200 MB and approximately 1 GB. The reduction depends on the configuration.

Endret av wiberos
Lenke til kommentar

Det der er nøyaktig det samme som jeg skrev i den første posten min i denne tråden. Altså at et skjermkort med 256 MB RAM opptar minst 256M adresser, mens et skjermkort med 64 MB RAM opptar minst 64M adresser. Hvis du da har 4 GB RAM i hovedkortet, ville du kunnet hatt henholdsvis 4096-265=3840 MB og 4096-64=4032 MB tilgjengelig hvis det ikke hadde vært andre komponenter som også opptok masse adresser.

 

Hvis det var dette Fritz0r prøvde å forklare, så er ikke dette en noe som bare skjer med Windows. Det skjer med alle 32-bit-systemer, og løsningen i den quoten er å skaffe 64-bit hardware og 64-bit OS.

Jeg tror nemlig at Fritz0r snakket om noe annet. Bl.a. står det ingenting om halvparten av grafikkminnet i den quoten.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...