独立的内存通道:对程序员来说意味着什么

时间:2013-05-28 13:34:21

标签: memory-management cpu intel internals processors

我阅读了英特尔至强处理器的Datasheet,并看到了以下内容:

  

集成内存控制器(IMC)支持四种DDR3协议   独立的64位存储器通道,每个通道有8位ECC(总共   72位)并且每个通道支持1到3个DIMM,具体取决于内存类型   安装。

我需要从程序员的角度来了解这究竟意味着什么。
关于此的文档似乎相当稀疏​​,我没有来自英特尔的人问;)

  1. 此内存控制器是否可以同时从非相邻内存区域执行4个数据加载(并从最多3个内​​存DIMM请求每个数据)?即4x64位,最多3个DIMM条带,例如:
    | X | _ | X | _ | X | _ | X |
    (X是加载数据,_一个任意大的卸载数据区域)

  2. 此IMC是否可以执行1次加载,从一个连续的内存区域加载最多1x256位。
    | X | X | X | X | _ | _ | _ | _ |

1 个答案:

答案 0 :(得分:2)

这似乎是特定于实现的,具体取决于编译器,操作系统和内存控制器。该标准位于:http://www.jedec.org/standards-documents/docs/jesd-79-3d。似乎如果您的控制器完全兼容,则可以设置特定位以指示交错或非交错模式。请参阅DDR3规格第24,25和143页,但即使在规格细节上也很清楚。

对于i7 / i5 / i3系列,特别是所有较新的Intel芯片,内存与第一个示例中的内存交错。对于这些较新的芯片,可能是支持它的编译器,是的,一个Asm / C / C ++级调用加载大到足以交错/条带化的东西会启动每个内存通道所需的独立硬件通道级负载量。

在维基百科上的多渠道内存页面的三通道部分中,有一小部分CPU执行此操作,可能不完整:http://en.wikipedia.org/wiki/Multi-channel_memory_architecture

相关问题