This is a bit "one megabyte should be enough for anyone", but...

A 64-bit flat address space allows up to 4.3ish billion times more space than a 32-bit address space. That's 17,179,869,184 GiB.

Obviously, the transition from 8 bits to 16 bits was pretty quick (I'm viewing things in a teen-during-the-80s way, ignoring all those mainframes and minis because they couldn't run a port of Elite). The transition from 16 bits to 32 bits took a bit longer, and 32 bits actually lasted quite a while.

Now we have 64 bits, would it be stupid to say "17,179,869,184 GiB should be enough for anyone"?

This is a programmers question because I really have the programming viewpoint in mind. Even if a computer some day has a seemingly infinite amount of working memory, that doesn't mean that applications will need to see a seemingly infinite flat address space.

Basically, can we programmers breath a sigh of relief and say "well, whatever integers or floats may do, at least I don't have to worry about my pointers growing any more?".

  • 11
    How much data does the LHC generate each day? Jun 15, 2011 at 9:51
  • 8
    8-bit processors actually had a 16-bit address space - hence the "quick transition" :-) Jun 15, 2011 at 11:04
  • 2
    To provide some context, a 128bit address space provides about as many addresses as there are stars in the observable universe or half of the atoms in our galaxy (to within a couple orders of magnitude). Jun 15, 2011 at 17:29
  • 5
    @Rein: In other words, not enough. How can we simulate a universe with not enough memory addresses for even half the atoms in just our own galaxy. amiright Jun 15, 2011 at 18:27
  • 7
    I think this can be answered quite easily; Star Trek Holodeck. Enough said.
    – Dunk
    Oct 24, 2011 at 21:37

19 Answers 19


I don't think we're going to have machines with more than 2^64 bytes of RAM in the foreseeable future, but that's not all that address space is useful for.

For some purposes, it's useful to map other things into the address space, files being an important example. So, is it reasonable to have more than 2^64 bytes of any sort of storage attached to a computer in the foreseeable future?

I'd have to say yes. There's got to be well over 2^64 bytes of storage out there, since that's only about 17 million people with terabyte hard disks. We've had multiple-petabyte databases around for a few years now, and 2^64 is only about 17 thousand petabytes.

I think we're likely to have a use for a > 2^64 address space within the next few decades.

  • 4
    This makes me think of flat addressing to address any byte of storage available on the internet. I think I heard something about operating systems that provide a flat addressing of all storage on the system (no need to map files into memory - they're already there). Making an IP address into part of your memory address will certainly need more than 64 bits - IPv6 already needs 128 bits just for the address. There would be a huge amount of redundancy in the address space, but it could still make sense.
    – user8709
    Jun 15, 2011 at 23:25
  • 2
    Yes. It would simplify life if you mapped all your drives & files into the address space. An awful lot of code concerned with manipulating files on disk would be much simpler if you simply had a pointer to the whole file. A segment:offset architecture would be ideal for this sort of thing. Jun 16, 2011 at 3:12
  • This assumes that each byte of all mass storage devices would be directly addressable.
    – vartec
    Jun 16, 2011 at 11:56
  • 3
    @steve314: You're thinking of the single-level store concept, pioneered by the IBM S/38. Interesting stuff, but I think it'd be tough to integrate it with today's systems.
    – TMN
    Oct 24, 2011 at 12:38
  • 1
    @TMN: well, IBM i (a.k.a i5/OS, a.k.a OS/400) still uses it and is arguably still one of "today's systems". Jun 19, 2013 at 6:55

Unless computers start using some break-through technologies which do not exist yet even in laboratories, having more than 264 addressable space is just not physically possible with current silicon technology. The technology is hitting the physical limits. The speed (GHz) limit was hit already few years ago. The miniaturization limit is also very near. Currently most advanced technology in production is 20nm, in labs it's 4nm with transistors made of 7 atoms.

Just to put it in perspective how long it takes for new technology to be developed: current computers are based on transistors invented in 1925, and the current silicon technology dates back to 1954.

As for alternative technologies:

  • optical computing — could give boost in computing speed, but doesn't solve miniaturization problem for the storage;
  • quantum computing — to be used fully, will require completely new programming paradigm, so if pointers will be 64- or 128-bit is least of your worries. Also same physical limitations on miniaturization apply to this technology;
  • DNA computing — these are proof-of-concept toys, designed to solve one particular class of problems. Not feasible for real life use. To get computations which on normal PC would be done under one second, would take DNA-tank of a size of Pacific Ocean and few thousand years. As it's natural, biological process, there is no way to miniaturize or speed that up.
  • 4
    So basically, you're saying there will be no technological breakthroughs anymore? We'll be stuck with silicon technology forever. Radically new things like quantum computing or DNA computers will stay in research forever. Do you really believe that?
    – nikie
    Jun 15, 2011 at 11:01
  • 2
    @nikie: quantum computers are not magic. They still use atoms. They still are limited by physics. DNA computers? Are you serious??? It's totally useless beyond being proof of concept.
    – vartec
    Jun 15, 2011 at 11:06
  • 4
    @Thor: well, it isn't physically possible to put man on the Moon in 2011 either.
    – vartec
    Jun 15, 2011 at 11:21
  • 8
    Why -1? The summary has some very solid grounding. 2^64 is a very, very, very large number. It's not 2^32*2, it's a whole lot bigger, and 2^128 is pretty insane. It would take an awful lot of time just to do for(unsigned __int128 i=0; i<2^128; i++){}. With current technology there's not much use of 128 bit integers. Aside from maybe getting back to unprotected address space, because accidentally stepping on other applications memory in 128 bit address space would be pretty impossible to do, even if you were writing to random addresses randomly.
    – Coder
    Jun 15, 2011 at 11:38
  • 2
    @nikie: Quantum computers are irrelevant to this discussions, since using current memory models (which are the subject here) on quantum computers defeats their whole purpose. Oh, and yes, DNA computers will never be of actual use. It's like using cellular automata as a basis for an execution model.
    – back2dos
    Jun 15, 2011 at 13:25

The super computer Thorbjoern linked has about 2^47 B of physical memory.
Assuming Moore's Law holds for memory of super computers, it will become 2^64 B of physical memory in only 34 years. This is like "OMG, we will live to see that!!!!". Maybe. And indeed, it is fascinating. But just as irrelevant.

The question is, do I need 128 bit address space to use 2^65 B of physical memory?
The answer is NO. I need 128 bit address space to address 2^65 B of virtual memory from a single process.

That is a key point of your question, "Will real world applications ever need a 128-bit flat address space?". "Need", not absolutely, you can get by with less, make the address space mapped (not flat); but then you wouldn't have a "flat 128-bit address space".

As an example, suppose that you wanted to assign the atoms on Earth a physical memory address (for whatever reason, mostly for providing this simple example), start at zero and keep counting (get back to me when you are done). Now someone else desires to do the same thing on Kepler-10c (which is 568 ly away).

You wouldn't want an address clash so the other person allocates a high memory address in the flat memory space available, that allows you, them, and the next people to be directly addressed, without mapping the memory. If you won't be doing that or can get by without a one to one relationship between your memory and its address (you're willing to implement a sparse array) then you can get by with a measly 64 bit memory, or less.

Whenever someone proposes "X amount of Y will be enough" such a prediction often remains short-lived.

So the question is: How soon will we have single processes, that use 2^65 B of memory. I hope never.

The big problem of our time is that the processing power of a single CPU is limited. There's a limit in size defined by the size of atoms, and for a given size, there is a limit in the clock rate, given by the speed of light, the speed at which information about changes in magnetic fields is propagated in our universe.
And actually, the limit was reached a few years back and we have settled at clock rates below what they have previously been. CPU power will no longer scale up linearly. Performance is now enhanced through out of order execution, branch prediction, bigger caches, more op codes, vector operations and what not. There has been architectural optimization.
And an important idea is that of parallelization. The problem with parallelization is, it doesn't scale up. If you wrote slow code 20 years ago, it worked a lot faster 10 years ago. If you write slow code now, it won't get much faster in 10 years.

Processes that use 2^65 B of memory are a sign of utmost stupidity. This shows, that there has been no architectural optimization. To sensibly process this data, you'd need some 10 million cores, most of which would spend time waiting for some resource to become available, because those cores that actually acquired the resource are using physical memory over ethernet on a completely different machine. The key to dealing with big, complex problems is decomposing them into small, simple problems and not building ever bigger and ever more complex systems. You need horizontal partitioning, when dealing with sh*tloads of data.

But even assuming, this insanity should go on, rest assured 128 bit is enough:

  • Earth has about 8.87e+49 atoms, which is 2^166 atoms that we have.
  • Let's assume it costs 2^20 atoms to hold one bit. This includes also all the wiring and plastics and power that goes with it. You can't just throw transistors into a box and call it a computer. So 2^20 seems rather optimistic.
  • To use up 128 bit address space, we need 2^133 bits, so 2^152 atoms that we need. Assuming equal distribution of atoms on earth, Let's see how much crust we must take of to get them:

       q  := ratio of atoms needed to atoms present = 2^-14
       Vc := volume of the crust to be used
       Ve := volume of the earth
       re := the radius of the earth = 6.38e6
       tc := the required thickness of the crust
       k  := 0.75*pi
                                 Vc / Ve = q 
       (k*re^3 - k*(re-tc)^3) / (k*re^3) = q
                    1 - ((re-tc) / re)^3 = q        
                              (re-tc)/re = root3(1-q)
                                      tc = re * (1 - root3(1-q))
                                      tc = 6.38e6 * (1 - (1 - 2^-14)^(1/3))
                                      tc = 129.804073

    So you have 130 meters to take of on the whole surface (including the 80% covered in water, sand or ice). It's not gonna happen. Even assuming you can dig it up (lol) and all this matter is suitable to be processed into chips, where will you get the energy?

  • 8
    On the other hand you would need a very large computer to do the environmental impact assessment for strip mining the entire planet so perhaps it would justify itself (getting a bit Hitch Hikers here) Jun 15, 2011 at 16:31
  • 2
    One bit = 10^6 atoms. The whole Earth = 10^50 atoms. The whole universe = 10^80 atoms. Exponential notation is awesome! :-)
    – Konamiman
    Oct 24, 2011 at 11:47
  • 3
    The point is not to use up an entire 128-bit address space, but to use up a 64-bit address space. So at what point do we need one extra addressing bit beyond 64 bits? How much physical space (molecules) is needed for 2^65 bytes? Nov 13, 2015 at 23:55
  • 1
    So you're saying that a physical 128-bit memory architecture requires planetary-scale manufacturing capabilities?
    – Indolering
    Feb 22, 2016 at 4:32
  • Single atom transistors have been devised. How are you getting to the 2^20 (around one million) atoms per bit number? en.wikipedia.org/wiki/5_nanometer
    – JimmyJames
    Jun 3, 2016 at 21:42

Well, we could definitely use a large address space.

Imagine this:

  1. The address space is not limited to a single computer. Instead, an address uniquely identifies a memory cell in a universal address space. So you can have a pointer to a memory cell on any computer in the world. There will need to be some protocol to enable reading from remote memory, but that's an implementation detail. :-)

  2. The memory is Write Once, Read Many, i.e. you can only write data to a memory address once. For a mutable value, you'll have to allocate a new piece of memory every time it changes. We programmers have started seeing the pros of immutability and transactional memory, so a hardware design that doesn't even allow memory overwrites may not be such an impossible idea.

Combine these two ideas, and you'll need a huge address space.

  • 1
    And why would you need to address every byte of every computer in the world? (I'm assuming that you are not the NSA.) Nov 13, 2015 at 23:56
  • because we're going to build the world-spanning hivemind AI overlord to lead us to salvation of course!
    – sara
    Jun 4, 2016 at 7:09

The more capable computers become, the more complex problems they are requested to work with.

The largest supercomputer listed on top500.org is http://www.top500.org/system/10587 with around 220 Tb RAM and 180000 cores. In other words, that is what "real life applications" can work with on this platform.

Todays computers are as powerful as supercomputers 10-15 years ago (even though the computing power may be hidden in your graphics card).

So a factor 100 in memory in 10-15 years will mean that the 64 bit address space will be a limiting factor in about 100 years (since log (100 million)/log(100) is around 6) if the current trend holds.

  • note: math unverified, probably quite off.
    – user1249
    Jun 15, 2011 at 9:34
  • 17
    it's just like prediction from 1800's, that if traffic grows so much, whole cities will be covered by mountains of horse manure :-P
    – vartec
    Jun 15, 2011 at 9:56
  • 1
    220 GB is not that much these days. There are servers with 256 GB RAM. 180000 cores? Now that's something :). I'm only pointing this out because OP's main concern is RAM size. Jun 15, 2011 at 9:59
  • 1
    @vartec, just shows that blind extrapolation may not be valid. Same thing here.
    – user1249
    Jun 15, 2011 at 10:05
  • 7
    Tamás was right: In the link you provided, it states "229376 GB", which would be more like 220 TB. Also, assuming 4MB L2 cache per core, 180K cores already have 720 GB L2 cache ;)
    – back2dos
    Jun 15, 2011 at 10:22

This whole thread is quite funny to read, very strong opinion for and against...

Here something ..

I understand from the question that it was technology agnostic and not bound by time. Thus current development in silicon, quantum computers or the Infinite Monkey Peddling Abacus are in effect irrelevant.

Calculations and extrapolations are also quite funny, though the answer from back2dos works quite well to illustrate the sheer size of what this number represents. so let's work with that.

Put your mind in the future where man is no longer bound to the confine of it's little planet, a realistic means of transportation was developed to allow transportation over very large distances and the social structures (economic, political etc) have evolved to transcend generations. Pharaonic projects spanning have become common places. Let's focus on two aspects of this far fetched vision of the future yet, should one wishes to spend to time to explain every details I'm quite certain one could rationalize all of it through a series of plausible evolutions on current technologies. In other words a plausible, albeit unlikely future... anyhow...

The first project called Colossus in memory of that first electronic computer as it is the first planetary computer. The Colossus Brotherhood has indeed figured out a means to capture a small planetoid and transform it into a working computer. Recently discovered in the Kuyper belt that is perticularely rich in fusible isotopes making it energetically autonomous, they made the construction process completely autonomous with probes, robots etc making the computer system self repairing and self constructing. In this condition it would be conceivable that 2^64 address space being somewhat confining for this project as they wish to get a continuous address space to easily port applications already existing for another project also under-way.

The other project is more of a an experiment in networking than a physical system, yet, it quickly demonstrated that larger address space were needed. 540 years ago a young hacker was toying with the idea of creating a gigantic bot net. The internet had already expanded to include the nascent colonies around the solar system building on major advances made in fusion power. His ideas was basically to have little bots spread around the network but the payload was destined to provide a unified virtual machine where code would be written assuming it had all the power of all bots combined. Great efforts were put in the compiler and deployment attempting to optimize lags and sophisticated algorithms designed to take into account the inherent unreliability of the underlying medium. A language was specifically written to target this new "computer" that put major emphasis on concurrency. It took many years to discover this botnet since it never delivered any attacks, our hacker created instead an umbrella company and sell the computing power to the highest bidder. When he died he donated this botnet and all technologies to a foundation. At that point the botnet had already been running for 64 years and had already outgrew the 2^64 address space quite a while ago shattering the 1000 year old preconception that we would never require larger address space. Nowadays 2^128 is the norm and what will be used for Colossus but there is already plans to expand this to 2^256.

I could probably come up with more quasi plausible scenarios that illustrate that yes... it is quite possible, nay, almost certain, that one day we will require address space larger than this.

That said however I do not think I would loose sleep over this, if your application requires a certain address space to work correctly then most likely it will live in a VM that gives it all it needs...

Thus... short answer...

YES, Most likely


Why not deal with this when the problem comes... Personally I never make assumptions in my programs thus never get surprises.

  • 3
    I'm amused at the level of detail in your fictitious example. Are you writing a short story somewhere? Jun 15, 2011 at 18:10
  • The flip side of everything sharing one huge address space is that allocation may then involve communication latency between your dispersed nodes. That would be bad. I'm skeptical of the grandiose ideas of using a flat address space outside the scope of a single system image SMP machine. If you want to refer to memory on other nodes, a node:address "far pointer" works totally fine. (And yes you could maybe build hardware that was aware of this, so if node:address happened to be local it would be fast, OTOH with 128-bit virtual address space you could just use page faults.) Sep 21, 2021 at 15:24
  • Just like with current 64-bit systems (like x86-64 where virtual addresses must be correctly sign-extended from 48 or 57-bit), 128-bit addresses wouldn't have to support the full 128 bits in hardware, though. e.g. perhaps only 80 or 96 bits. Sep 21, 2021 at 15:26

Address locations have a logarithmic cost with respect to address width so we can consider upper bounds based on the parameters in question:

64-bit for particles of sand on earth = 7.5x10^18
128-bit for stars in observable universe = 10^24
256-bit for particles in earth = 10^50
512-bit for particles in observable universe = 10^82
1024-bit for cubic plank lengths in observable universe = 4.65×10^185

  • The sparsity introduced for hashing, security, and indexing

6.6106...×10^122-bit for possible particle configurations in observable universe = 10^(10^122)

We could assume the possible configurations as the upper bound for the largest physically possible constructible memory address.

  • To compute the width needed for n addresses, type this into wolfram alpha: 2^ceil(log2(log2(n))) Sep 28, 2017 at 20:49
  • 1
    You're right that it may be useful to have highly redundant address spaces where most addresses don't refer to anything at all, as in your hashing etc point, but I think someone even suggested encoding URLs into machine virtual addresses (not just a hashes of them), so really, there's no upper bound on how wasteful/redundant some future virtual addressing scheme potentially be. Not that encoding data into addresses (as opposed to looking it up in potentially protected tables when necessary) sounds like a good idea, of course.
    – user8709
    Sep 29, 2017 at 12:21

It's address space. Let's say we change the C standard so that realloc isn't allowed to change the pointer used. I can allocate 2^33 memory blocks today (would require 192GB of RAM on my Mac, 8 billion times 8 byte pointer and 16 byte allocated space, so I can't do this right now, but I could buy a Mac that can do it without taking out a new mortgage).

And I can realloc any of these pointers to hold 2^33 bytes. Not many at the same time though :-) If realloc doesn't allow moving pointers, and 2^33 bytes are allowed, the original pointers must be 2^33 bytes apart, meaning 2^66 bytes of memory are needed.


Well, I think that for a few years to come you can probably breath a sigh of relief. If you look at the speed of innovation in hardware, it can be observed that over the last few years no significant breakthroughs have happened. CPUs with 2.x GHz frequencies have been around for a while now and any increase in processing power nowadays comes from packing more cores on the chip. Drive capacity is still going up, but not at the same rates as 10 years ago.

I think that our current technology is approaching the limits of physics.

What does that mean for the future? I think that in order to get new quantum leaps in information processing, entirely new technologies will have to be utilised. These technologies will likely use "software", albeit possibly in a context quite alien to what it is today. And who knows what address space requirements they have or can provide? Or whether address space is even a meaningful concept in that technology?

So don't retire on this just yet.

  • cpu speed is a somewhat different concept than memory size.
    – user1249
    Jun 15, 2011 at 10:08
  • I'm not sure you can draw the conclusion that because processor speeds haven't gone up much in the last few years has anything to do with approaching the limits of physics. It is a fact that multicore CPUs have been all the rage over the last few years and it could be that the CPU manufacturers are investing their money on how to best utilize all those processors together rather than spending their money on clocking improvements. Even the big companies have a limit on their R&D dollars. Drive capacity is still going up pretty fast IMO. Just saw a 3 TB drive for $140.
    – Dunk
    Oct 24, 2011 at 21:35

Yes, there will be. (Games? Artificial Intelligence-related stuff?)

A more appropriate question might be whether it will count to the typical programmer, though. Think of how Ruby automatically converts numbers from FixNum to BigNum and back when needed. I'd be surprised if other languages (at least the dynamic ones) don't do the same eventually.

  • 1
    oh yeah. hell yeah. i wanna play a game that is sooo cool it has to use 128 bit arithmetic !!!!!!!!!
    – Chani
    Jun 15, 2011 at 12:29
  • 1
    Duke Nukem Forever Rev 2.0? Or Madden Football 2025? Jun 15, 2011 at 14:20

Storing this amount of information is one thing and doing something useful with it is another. From my point of view I see no need for this storage unless we have the processing power to utilize it. Perhaps caching huge databases is one thing but for numerical processing I think we need processors first.


Will applications ever need that much memory? Quite possible. Applications like weather forecasts, physical simulations in general or cryptography will probably always benefit from more memory and more processing power. And who knows what the killer-app in 50-100 years will be? Holographic displays? Rainbow tables for every possible 100-character password?

Is it physically possible to represent that much memory? Definitely possible. For example, a 100-qubit quantum computer can represent the same number of states as a classical 2^100 bit computer. Way more than the 2^67 bits of address space we have now. (I know, a 100-qubit quantum computer sounds like science-fiction. I'm not convinced it will ever be possible to build one. But on the other hand, the same could probably be said about any technology that will be used 50 or 100 years from now.)

But I seriously doubt that "flat address spaces" will be the main worry by then. Maybe we'll be developing quantum algorithms by then, where the concept of an "address space" doesn't make much sense. Even if computers stay "classical" we'll probably have to deal with a scary number of processing units with non-uniform memory attached to them.

  • "100-qubit quantum computer can represent the same number of states as a classical 2^100 bit computer." That's not really how qubits work. A 100-qubit computer can represent the same number of states as a 100-bit computer. The difference is that the 100-qubit computer can represent the superposition of all of those states at one moment. The other thing about qubits is that when you go to read them, you'll get only get one answer and it will be completely random.
    – JimmyJames
    Jun 3, 2016 at 21:33
  • @JimmyJames: Exactly. So if you want to represent the same information a 100-qubit quantum computer has at a singe moment of time in a classical computer (e.g. to simulate it), you'd need way more than 100 bits. That's what I said. (Or meant, anyway.)
    – nikie
    Jun 4, 2016 at 5:57
  • Again, that's not how it works. A 2-bit register can represent 4 values. A 2-qubit register can represent 4 values. They both are able to represent the same range of values. The qubit register can represent all 4 at the same time. That's the difference.
    – JimmyJames
    Jun 6, 2016 at 13:45
  • @JimmyJames: That's like saying a 2bit "classical" register can represent 2 values, but at the same time. Think about it this way: If you wanted to simulate a quantum computer in a classical computer, how many bits would you need to store the full state of the 2-qubit quantum computer at any time t?
    – nikie
    Jun 6, 2016 at 15:19
  • I get it but I but what you are missing is that you can't retrieve a specific value from the qubits. That is, given a qubit in superposition, when it is read, you will get either 1 or 0 but you can't retrieve both values because of decoherence: en.wikipedia.org/wiki/Quantum_decoherence
    – JimmyJames
    Jun 6, 2016 at 16:05

What would happen if every memory location had a globally unique address?

  • Network protocols could become a whole lot simpler.
  • Distributed objects would be interesting -- all objects could exist in the same memory space.
  • Maybe we'd switch to "write once" memories and include time as part of the address structure. You could read objects that existed in the past.
  • All secondary storage would be directly addressable. Goodbye FILE, fopen(), etc.
  • You could be arrested for writing to a bad pointer and hosing somebody else's machine.
  • Students would have to have to be screened before taking their first CS class: very few people can withstand the Total Perspective Vortex.

Just “thinking out loud” here, but it just occurred to me that one could do interesting semantic things with the remaining 64 bits on a, let’s say, 128 bit computer. Cf. the way IP works.

I am sure people could come up with fun uses for something like this. :) Anybody know what the PS3 uses its 128 bit addresses for? Surely you wouldn’t waste all that extra memory (and I am talking about just the memory for the actual addresses, not what those addresses point to). Addresses as data. You could even encode a branch in the address itself... i.e., 0x[ifAddress][elseAddress] Multi-core systems might benefit from this type of segmentation too. And... And...


Is there any reason to go above the 64 bit architecture? (18,446,744,073,709,551,615 bytes of addressable memory)

Using the IEEE 1541-2002 standard concerning the use of prefixes for binary multiples of units of measurement related to digital electronics and computing, we see that:

1 Byte = 8 Bits, 1 Kilobyte = 1024 Bytes, 1 Megabyte = 1024 KB, 1 Gigabyte = 1024 MB, 1 Terabyte = 1024 GB, 1 Petabyte = 1024 TB, 1 Exabyte = 1024 PB

And so on for Zettabyte, Yottabyte, Xenottabyte, Shilentnobyte, Domegemegrottebyte, Icosebyte, and Monoicosebyte.

Total Earth drive storage is estimated to be about 2,500 Exabytes as of 2016.

A 64 bit register can access 15 Exabytes of memory directly. A 128 bit register can directly access 3.40282367 × 10^35 Zettabytes. Or 295,147,905,247,928,000 Monoicosebytes.

So we can see that a 128 bit register would be in a good position to access all the Earths memory, everything ever sent on the internet, every word ever spoken or written, every movie, and so much more, for quite some time to come.

So the answer is yes, pending a framework that can point to any digital thing that has ever been or will ever be.


The best estimate I can find for the number of neurons in an average human brain is around 86 billion. We can't directly compare RAM to neurons in general but in a neural network you sort of can. It takes up a number of addresses to represent the state of neuron or a synapse. So I'll throw out a wild-ass-guess and say we're look at something like a trillion addresses to create a neural network that's would be comparable to a human brain. So if that can be done, I don't see why it wouldn't go much much further than that. The kinds of problems that such a network might be able to contemplate would be beyond our abilities to comprehend as well as why they would need to be so big in order to do so.


Sure, I see no reason why that amount of space wouldn't be required in the future. If you consider game development, there is no limit to how realistic or complex a game can be made, right? (Detail of the graphics/number of polygons used and algorithms defining objects interaction and behaviour)?

Who knows, in 10 years time we might be playing 10TB games with min requirements of 12GB ram and an 8 core processor. :P

  • There's no limit to detail. But there is a limit to silicon. Jun 15, 2011 at 16:49

20 years ago, there were 2 billion less people on the planet and most computer systems had addressable memory that could be measured in kilobytes. Today, the population of the world increases at the same rate and the number of computer users increases exponentially every year.

It is true that very few systems need a full 64 byte address space. Some systems store terabytes of information every day, however. This has been possible due to the increase of computer users and internet speeds. We can already support 10 GB/s internet speeds after only 23 years after HTTP was invented. At this rate I think it would be foolish to not expect 1 TB/s or higher internet speeds in 50 years. When we can all move data this fast, there will be more data to be stored while more people will exist to store this data and it is almost inevitable that there will need to be another widespread transition into a 128 bit system, and eventually 256 and 512 bit.

  • You're correct in all regards, however you missed my point. The computing industry is less than 100 years old and if it continues to grow as it has for the past few decades it would be not only be foolish to assume that we have hit our limit at this point in time but it is ignorant of the demands of the future. Address space is not the only reason why we would need a 64 bit architecture. Instruction sets may grow so large and that pointers 128 bits wide is more efficient and preferred. Another benefit is the CPU registry space that switch to a higher bit architecture provides. May 6, 2013 at 19:18
  • I don't know why I wrote all those comments - just a bad mood is my best excuse. The downvote isn't mine, though.
    – user8709
    May 6, 2013 at 20:01

yes apps dont fill up every byte of virtual space. address space layout randomization would get the biggest benefit.