Answers:
有多个交织因素。
首先,您将永远无法组装具有2 64字节(16 exibytes)物理RAM的系统。
其次,仅因为体系结构使用64位指针,并不意味着实际使用了这些指针的所有位。值得注意的是,当前的x86-64 CPU(又名AMD64和Intel当前的64位芯片)实际上使用48位地址线(AMD64)和42位地址线(Intel)(请参阅http://en.wikipedia.org/wiki / X86_64#Virtual_address_space_details),理论上允许256 TB的物理RAM。
其次,主板在物理和逻辑上都可以支持多少RAM上有自己的限制。从物理上讲,RAM只能有那么多插槽。至于“逻辑”限制,我不完全理解为什么x86-64(存储控制器早已迁移到CPU本身)仍然如此。大概是在地址线上切掉一些角,以节省设计和制造成本。
第三,操作系统可能会对其内部有效限制多少内存。在某种程度上,这实际上是为了防止需要过大的数据结构来跟踪实际上不存在的内存的使用情况。最后我检查了一下,Linux在x86-64上允许每个进程128TB的虚拟地址空间,并且理论上可以支持64TB的物理RAM。
第四,某些操作系统(例如Windows)会人为地限制可以使用多少RAM,作为一种策略,如果用户想要更多RAM,则可以升级到更昂贵的版本(Windows 7 Starter限制为2GB,Home Basic限制为8,Home Premium到16,专业版及更高版本为192GB,并且Windows Server版本具有更高的限制)。
如果使用MS Windows,则最大内存受操作系统限制。
对于Windows 7,最大值为:
Windows Server 2008的范围从入门级的8GB到行首的2TB。
有关完整列表,请参见http://msdn.microsoft.com/zh-cn/library/aa366778%28VS.85%29.aspx。
这些限制主要是出于营销原因。通过限制便宜的版本,它们使高端版本(相对)更具吸引力。
我认为最近的Linux构建可以在大约32TB的RAM上工作,尽管并非所有的硬件都可以支持。
一台64位计算机应能够寻址多达2 64个可寻址单元(在过去的几十年中设计的体系结构中,可寻址单元始终是字节,即八位字节)。如果将“千兆字节”定义为2 30个可寻址单位,那么可以,2 34 GB是表示相同计数的另一种方法。
哪些Google搜索产生了这些荒谬的微小结果?也许您找到的页面是关于您可以在某种型号的价格便宜的盒子中购买的RAM数量的信息-您绝对可以拥有更多的RAM(当然都是可寻址的),即使是在价格不算很高的盒子中。
操作系统绝对可以并且确实限制了可寻址内存的数量(例如,它们可以通过限制页表的大小来做到这一点,也许限制到可以通过重新编译或以其他方式重新配置OS来设置的可配置最大值),这很难更具体,而不关注某些特定的操作系统组)。
您可以拥有任意数量的RAM,但是这完全取决于您所运行的操作系统和应用程序-如其他人所述。
如果您正在运行占用大量CPU的应用程序,而该应用程序也需要占用其他硬件(例如硬盘)的资源,那么最好在完全独立的计算机中认真考虑使用第二个CPU。例如,在单独的计算机上运行数据库应用程序和电子邮件服务器。
拥有多少内存无关紧要-在当今市场上,整个系统将陷入停顿。单CPU根本无法按您期望的方式处理多任务。
对于一台具有大量内存的计算机,如果您在同一系统上运行多个应用程序,则更好但又不那么出色-无论安装了多少内存。这就是为什么大公司不仅使用64位体系结构来寻址更多内存,而且还要通过两台或更多台服务器平衡整个负载的原因。
如果您真的很在意性能,那么绝对可以使用64位,但也可以考虑使用第二台服务器进行负载平衡。
我一直在走-配置一台具有最大RAM的计算机。但是,当运行多个应用程序时,它仍然像狗一样运行。那是因为CPU本身无法处理它。
我的建议是节省您的内存,购买第二台服务器,然后对两者进行负载平衡。它要简单得多,一旦您掌握了它,就可以在需要更多处理能力和速度时轻松扩展。
同样,一台64位体系结构的计算机可以处理32位软件,但是对于32位计算机,您只能使用32位或更少的应用程序-包括操作系统。
由于整个市场在硬件和软件方面都将朝着64位发展,因此我建议您长期使用64位,但是,请不要忘记将全部压缩到一台具有大量存储负载的计算机上的想法,因为您会失望的。
如果您不确定什么是“负载平衡”,则可以使用它。
我认为这可能需要超过一个EB的费用。
看一下这个32位处理器可以占用2 32 B = 4 GB,但是最多只能占用3 GB“因为对于反向地址它们是1 GB”
这意味着64位处理器可以占用2 64 B = 16 EB,但是我无法锁定反向使用的地址。因此我们可以说64位处理器占用了超过1 EB。并且此规范不取决于PC使用的操作系统或型号。
以Intel或AMD CPU为例,物理内存和虚拟内存都有一些限制。其他人谈到了硬件引脚分配和主板限制,但也有内部限制。
MMU中的终端页表条目包含52个有效位的物理地址,并且理论上可以映射多达4096 TB的物理RAM。
MMU实现了一个4级页面表,其顶层由512×512 GB条目组成。因此虚拟内存限制为256 TB。
据我所知,所有64位操作系统都实现了DMAP(直接映射),这非常方便。但是,由于虚拟内存限制为256 TB,因此DMAP的大小也受到限制。通常,为用户模式保留128 TB,为内核保留128 TB。在内核的128 TB中,最多可为DMAP保留一半。由于DMAP的有用性,操作系统通常会将物理内存限制为DMAP可以处理的范围。
因此,大多数(全部?)用于Intel / AMD的64位操作系统所支持的物理内存被限制在64 TB左右,普通内核虚拟内存留给了64 TB,用户虚拟内存留给了128 TB。
-
在CPU内部,CPU缓存对其存储的物理地址位的数量也有限制,因为每个附加地址位占用了缓存标签的更多晶体管。DRAM控制器引脚的限制不一定是硬道理,因为存储器也可以通过DMI链接进行寻址。
不同的CPU体系结构(例如ARM,PowerPC等)将具有不同的限制。