Hemsida » hur » Vad är den maximala mängden RAM som du kan teoretiskt sätta i en 64-bitars dator?

    Vad är den maximala mängden RAM som du kan teoretiskt sätta i en 64-bitars dator?

    De flesta människor uppgraderar från 32-bitars databehandling till 64-bitars databehandling för att blåsa igenom 4GB RAM-gränsen, men hur långt kan du blåsa igenom den gränsen när du har kommit in i riken på 64-bitars datorer?

    Dagens Question & Answer-session kommer till oss med tillstånd av SuperUser-en indelning av Stack Exchange, en community-driven gruppering av Q & A-webbplatser. Bild av Petr Kratochvil.

    Frågan

    SuperUser-läsare KingNestor är nyfiken på hur mycket RAM en 64-bitars dator kan hålla:

    Jag läser igenom min datorarkitekturbok och jag ser att i en x86 32bit CPU är programräknaren 32 bitars.

    Så, antalet byte som den kan adressera är 2 ^ 32 byte eller 4 GB. Så det är vettigt för mig att de flesta 32 bitars maskiner begränsar mängden ram till 4GB (ignorerar PAE).

    Anger jag att en 64-bitars maskin skulle teoretiskt kunna adressera 2 ^ 64 byte eller 16 exabyte av ram?!

    Exabytes du säger? Nu, nu, låt oss inte vara giriga. Vi skulle gärna börja med en terabyte eller två.

    Svaret

    Svaren på KingNestors förfrågan är en intressant blandning av praktiska och teoretiska överväganden. Matt Ball hoppar precis in i det teoretiska svaret:

    Teoretiskt: 16,8 miljoner terabyte. I praktiken: din datorväska är lite för liten för att passa all den RAM.

    http://en.wikipedia.org/wiki/64-bit#Limitations_of_practical_processors

    Conrad Dean hoppar in med en anteckning om hur helt opraktiskt det skulle vara att maximera den teoretiska RAM-gränsen med dagens teknik:

    För att komplettera Matt Balls svar kan den nuvarande största pinnen av RAM som jag hittar på en viss online-återförsäljare vara 32 GB. Det skulle ta 32 av dessa att nå 1 terabyte. På ungefär en halv tum per pinne får vi oss till ett hängivet 16 tums utrymme på moderkortet för en terabyte av kommersiell ram. Att nå 16,8 miljoner terabyte skulle kräva ett moderkort 4,242.42 miles. Avståndet från LA till NYC är cirka 2141 miles, så moderkortet skulle sträcka sig över landet och tillbaka för att passa så mycket RAM.

    Det är uppenbart att detta är opraktiskt.

    Vad sägs om att vi inte sätta vårt RAM-minne i en rad som på de flesta moderkort, utan placerade dem i stället sida vid sida. Jag vill säga att den genomsnittliga pinnen av ram är ungefär sex inches lång, så om vi tillåter en halv tum i bredd, kan du ha en fyrkantig enhet med 12 pinnar ram i en 6 tums kvadrat. Låt oss kalla den här rutan en RAM-kakel. En RAM-kakel rymmer sedan 384 GB RAM. För att nå de 16,8 miljoner terabyte som skulle behövas i 384 GB skulle kakel ta 44,8 miljoner plattor. Låt oss vara rörigt och använd kvadratroten av det för att dra slutsatsen att detta kommer att passa i en kvadrat på 6693 med 6694 kakel, eller 13 386 med 13 388 fot, som är tillräckligt nära 2,5 fot kvadratisk, tillräckligt för att täcka downtown Seattle i skugga, som om de hade inte tillräckligt med att klaga på.

    Slutligen konstaterar David Schwartz att även den teoretiska gränsen blir försvagad av nuvarande CPU-arkitektur:

    Observera att ingen existerande x86 64-bitars processor verkligen kan göra detta. Deras caches har inte tillräckligt med tagbitar, deras adressbussar har inte tillräckligt med bredd och så vidare. 46 bitar (8TB) är maximalt för många moderna x86-processorer.


    Har du något att lägga till förklaringen? Ljud av i kommentarerna. Vill du läsa mer svar från andra tech-savvy Stack Exchange-användare? Kolla in hela diskussionsgängan här.