De fleste opgraderer fra 32-bit computing til 64-bit computing for at blæse gennem 4 GB RAM-grænsen, men hvordan langt kan du blæse gennem denne grænse, når du først er kommet ind i 64-bit computere?
Dagens spørgsmål og svar-session kommer til os med tilladelse fra SuperUser - en underinddeling af Stack Exchange, en community-driven gruppe af Q&A websteder. Billede af Petr Kratochvil .
Spørgsmålet
SuperUser-læser KingNestor er nysgerrig efter, hvor meget RAM en 64-bit computer kan rumme:
Jeg læser igennem min computerarkitekturbog, og jeg ser, at i en x86, 32bit CPU er programtælleren 32 bit.
Så antallet af bytes, det kan adressere, er 2 ^ 32 byte eller 4 GB. Så det giver mening for mig, at de fleste 32-bit maskiner begrænser mængden af RAM til 4 GB (ignorerer PAE).
Har jeg ret i at antage, at en 64bit-maskine teoretisk kunne adressere 2 ^ 64 bytes eller 16 exabyte af ram ?!
Exabytes siger du? Lad os nu ikke være grådige. Vi vil gerne starte med en terabyte eller to.
Svaret
Svarene på KingNestors forespørgsel er en interessant blanding af praktiske og teoretiske overvejelser. Matt Ball springer lige ind med det teoretiske svar:
Teoretisk set: 16,8 millioner terabyte. I praksis: din computerkasse er lidt for lille til at passe til alt det RAM.
http://en.wikipedia.org/wiki/64-bit#Limitations_of_practical_processors
Conrad Dean springer ind med en note om, hvor helt upraktisk det ville være at maksimere den teoretiske RAM-grænse ved hjælp af nutidens teknologi:
For at supplere Matt Balls svar er den nuværende største RAM-RAM, jeg kan finde på en bestemt onlineforhandler, 32 GB. Det ville tage 32 af disse at nå 1 terabyte. Omkring en halv tomme pr. Pind bringer os os til en afsat 16 tommer plads på dit bundkort til en terabyte kommerciel ram. For at nå 16,8 millioner terabyte ville det kræve et bundkort 4.242,42 miles. Afstanden fra LA til NYC er cirka 2141 miles, så bundkortet strækker sig over hele landet og tilbage for at rumme så meget RAM.
Det er klart, at dette er upraktisk.
Hvad med at vi ikke satte vores RAM i en række som på de fleste bundkort, men i stedet placerede dem side om side. Jeg vil sige, at den gennemsnitlige pind af vædder er cirka seks inches lang, så hvis vi tillader en halv tomme for bredden, kan du have en kvadratisk enhed på 12 pinde ram på en 6 tommer firkant. Lad os kalde denne firkant en RAM-flise. En RAM-flise rummer derefter 384 GB RAM. At nå de krævede 16,8 millioner terabyte i 384 GB fliser ville tage 44,8 millioner fliser. Lad os være rodet og bruge kvadratroden af det til at konkludere, at dette vil passe i en firkant på 6693 x 6694 fliser eller 13 386 ved 13 388 fod, hvilket er tæt nok 2,5 fod i kvadrat, nok til at dække downtown Seattle i skygge, som om de havde ikke allerede nok at klage over.
Endelig bemærker David Schwartz, at selv den teoretiske grænse sætter sig fast i den nuværende CPU-arkitektur:
Bemærk, at ingen eksisterende x86 64-bit processor faktisk kan gøre dette. Deres cacher har ikke nok tagbits, deres adressebusser har ikke nok bredde osv. 46-bit (8TB) er det maksimale for mange moderne x86-CPU'er.
Har du noget at tilføje til forklaringen? Lyder i kommentarerne. Vil du læse flere svar fra andre teknisk kyndige Stack Exchange-brugere? Tjek den fulde diskussionstråd her .