对于X86多路服务器不了解的人或许会有这样的一个问题,我在两路服务器上使用单CPU,可以选择一条内存,也可以选择两条或者三条甚至更多,但是对于两个CPU的服务器,可能大家会有一些疑问,插一条内存可以支持两路CPU吗?确切这是不行的,至少是对于目前的Intel X86服务器上。
早期的X86服务器在主板上集成了内存控制器,由于控制器是集成在主板上的,所以在RAM插槽上可以集成多个控制器分配给不同CPU,如果一颗CPU下挂的内存使用满了,可以调用第二颗CPU的下对应的内存,其实这个过程当中是通过第二颗CPU计算出调用内存的数量,将内存最后供给第一颗CPU。 我们会有猜想,如果第二颗cpu想调用第一颗CPU的内存,而第二颗内存当时没有对应的内存,可以吗?这个我也产生了疑问,由于对早期服务器知识缺乏,故本人也无法解释,不过依据推断肯定是不行的,因为现在的技术都没有达到这种地步,之前肯定也是不行的。
最后得出的结论为:一颗CPU至少需要一条内存;两颗CPU的内存需要分别对应各自的CPU,每CPU至少需要一条内存插入到相互对应的CPU内存插槽上,故至少需要两条内存。
现今的CPU技术发展的很快,INTEL的至强处理器已经将内存控制器都集成到自家CPU当中,CPU与CPU之间通过QPI高速总线进行互通访问,速度比之前的南桥内存控制器访问大大加快。下面附上联想RD330服务器对应的CPU内存使用图: