3 Better addressed (:D) the need and meaning of a 128-bit flat address space, provided example (hypothetical) use case. edited Mar 30 at 15:53 Rob 22611 gold badge33 silver badges99 bronze badges 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. 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.   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. Post Made Community Wiki by roger occurred Jun 19 '13 at 6:49 2 deleted 1 characters in body edited Jun 15 '11 at 17:04 back2dos 28.4k33 gold badges6767 silver badges111111 bronze badges 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: ``````let q := rationratio 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 thus 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? 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: ``````let q := ration 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 thus 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? 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: ``````let 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 thus 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? 1 answered Jun 15 '11 at 12:45 back2dos 28.4k33 gold badges6767 silver badges111111 bronze badges 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. 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: ``````let q := ration 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 thus 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?