Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Memory Nehalem内存体系结构地址映射_Memory_Memory Address_Nehalem - Fatal编程技术网

Memory Nehalem内存体系结构地址映射

Memory Nehalem内存体系结构地址映射,memory,memory-address,nehalem,Memory,Memory Address,Nehalem,给定一个具有12GB内存(6x2GB)的2处理器Nehalem Xeon服务器,内存地址如何映射到物理内存模块上 我可以想象,在具有3个相同内存模块的单处理器Nehalem上,地址空间将在模块上分条,以提供更好的内存带宽。但条纹的尺寸是多少?第二个处理器(+内存)是如何改变这种情况的?英特尔对此并不十分清楚,您必须深入研究他们的核心技术文档,以了解所有细节。这是我的理解。每个处理器都有一个集成内存控制器。一些Nehalem具有三通道控制器,一些具有双通道控制器。每个内存模块都分配给其中一个处理器

给定一个具有12GB内存(6x2GB)的2处理器Nehalem Xeon服务器,内存地址如何映射到物理内存模块上


我可以想象,在具有3个相同内存模块的单处理器Nehalem上,地址空间将在模块上分条,以提供更好的内存带宽。但条纹的尺寸是多少?第二个处理器(+内存)是如何改变这种情况的?

英特尔对此并不十分清楚,您必须深入研究他们的核心技术文档,以了解所有细节。这是我的理解。每个处理器都有一个集成内存控制器。一些Nehalem具有三通道控制器,一些具有双通道控制器。每个内存模块都分配给其中一个处理器。三通道意味着访问在三组模块之间交错,双通道=两组

特定的交织模式在某种程度上是可配置的,但是,考虑到它们的设计,几乎不可避免地最终会出现64到256字节的条纹


如果其中一个处理器希望访问连接到其他处理器IMC的内存,则访问将通过两个处理器进行,并导致额外的延迟。

堆栈溢出是正确的问题吗?有更好的地方吗?你知道两个处理器的地址空间是不是交错的吗?也就是说,第一个处理器(在这种情况下,它有一个三通道内存控制器,因此有三个内存模块)控制地址空间的前半部分,第二个处理器控制其余部分,还是地址空间以某种方式交错?这应该取决于BIOS和/或操作系统。请阅读NUMA。我对NUMA有一些了解,但我希望了解一些有关Intel实现的细节。