Most people upgrade from 32-bit calculating to 64-bit computing to blow through the 4GB RAM limit, but howfar can you blow through that limit once you've entered into the realm of 64-bit computers?

Today's Question & Reply session comes to us courtesy of SuperUser—a subdivision of Stack Exchange, a customs-driven grouping of Q&A web sites. Paradigm past Petr Kratochvil.

The Question

SuperUser reader KingNestor is curious about how much RAM a 64-scrap figurer can hold:

I'thousand reading through my computer architecture book and I see that in an x86, 32bit CPU, the plan counter is 32 bit.

So, the number of bytes it can address is 2^32 bytes, or 4GB. And then information technology makes sense to me that near 32 bit machines limit the corporeality of ram to 4gb (ignoring PAE).

Am I right in bold that a 64bit machine could theoretically address 2^64 bytes, or 16exabytes of ram?!

Exabytes you say? At present, now, lets' not be greedy. We'd be happy to start with a terabyte or ii.

The Reply

The answers to KingNestor'south inquiry are an interesting blend of practical and theoretical considerations. Matt Ball jumps correct in with the theoretical answer:

Theoretically: 16.8 1000000 terabytes. In practise: your computer instance is a trivial too small to fit all that RAM.

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

Conrad Dean jumps in with a note nearly how entirely impractical it would be to max out the theoretical RAM limit using today'due south technology:

To supplement Matt Ball's answer, the current largest stick of RAM I can find on one particular online retailer is 32GB. It would take 32 of these to reach ane terabyte. At about a one-half inch per stick this brings us to a devoted 16 inches of infinite on your motherboard for a terabyte of commercial ram. To reach 16.8 meg terabytes would require a motherboard 4,242.42 miles. The distance from LA to NYC is about 2141 miles, so the motherboard would stretch across the land and back to accomodate that much RAM.

Conspicuously this is impractical.

How about we didn't put our RAM all in one row like on near motherboards, but instead placed them side-past-side. I want to say the average stick of ram is about six inches long, then if nosotros allow a half an inch for width, you lot can have a square unit of measurement of 12 sticks of ram in a half dozen inch square. Let'due south call this square a RAM-tile. A RAM-tile and so holds 384GB of RAM. To reach the required xvi.8 million terabytes in 384GB tiles would have 44.viii 1000000 tiles. Allow's be messy, and use foursquare root of that to conclude that this volition fit in a square of 6693 by 6694 tiles, or thirteen,386 by 13,388 feet, which is close enough to 2.5 anxiety squared, plenty to comprehend downtown Seattle in shadow, as if they didn't already take enough to mutter almost.

Finally, David Schwartz notes that even the theoretical limit gets bogged down past current CPU architecture:

Note that no existing x86 64-bit processor can actually do this. Their caches don't accept enough tag $.25, their address buses don't have enough width, so on. 46-bits (8TB) is the maximum for many modern x86 CPUs.


Take something to add to the caption? Audio off in the the comments. Want to read more answers from other tech-savvy Stack Exchange users? Check out the full discussion thread here.


The higher up commodity may contain affiliate links, which assist support How-To Geek.