# What's the memory cap for 64-bit systems

You know how on 32-bit systems it can only use like 3gb of RAM? How much is that cap for 64-bit systems?

-

## migrated from stackoverflow.comFeb 12 '10 at 20:22

This question came from our site for professional and enthusiast programmers.

Which OS? And are you asking about hardware or swap space? Are you asking about the OS limit on the size of a process? Or the OS limit on the sum of the sizes of all running processes? What are you asking? – S.Lott Feb 12 '10 at 20:08
A huge amount, you won't be needing that much anytime soon. – Georg Schölly Feb 12 '10 at 20:09
– jball Feb 12 '10 at 20:11
More info for the lazy: episteme.arstechnica.com/eve/forums/a/tpc/f/77909774/m/… – jball Feb 12 '10 at 20:14

Theoretically, it's 2^64 = 18446744073709551616 bytes = 16777216 TB.

But physically, some hardware in your computer is designed only for memory sizes that will be common in next few years.

Most 64-bit microprocessors on the market today have an artificial limit on the amount of memory they can address, considerably lower than what might be expected from 64 bits. For example, the AMD64 architecture currently has a 52 bit limit on physical memory and only supports a 48-bit virtual address space.

-

I heard the full address space avaliable to x64 systems is around 16 exabytes. But there is software & hardware limit. Your motherboard specs will list the max RAM it supports.

-

192GB in higher-end Windows 7 systems, but at low as 2 in some cases :)

http://msdn.microsoft.com/en-us/library/aa366778(VS.85).aspx

-

The current versions of Windows can only (?) use 16 (edit:oops 8 -- off by one on counting address bits) terabytes of RAM. If memory serves, the current CPUs can address up to 64 TB of RAM (48 address bits, NOT 64).

-

roughly 2^64 bits. :) I can't remember why windows can't access all 4GB, but there are logical addressing tricks you can employ (though not recommended from what I hear) to get closer to the theoretical limit.

-
The reason is that the hardware requires roughly 700MB of address space. The largest chunk of that is usually the video buffer for your graphic card. – Eric J. Feb 12 '10 at 20:11
``````2 ^ 32 = 4gb
2 ^ 64 = 18446744100000000000 = 16 exabytes
``````

(nb google rounded and I don't feel like finding something with > 8 digit)

-