Will real world applications ever need a 128-bit flat address space

future-proofpointersportability

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?".

Best Answer

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.