处理器是否使用 Intel QuickPath Interconnect (QPI) 来访问内存?
Is Intel QuickPath Interconnect (QPI) used by processors to access memory?
我已阅读An Introduction to the Intel® QuickPath Interconnect。该文档没有提到处理器使用 QPI 来访问内存。所以我认为处理器不会通过QPI访问内存。
我的理解正确吗?
Intel QuickPath Interconnect (QPI) 未连接 DRAM DIMM,因此不用于访问连接到 CPU 集成内存控制器的内存(iMC).
在您 link 编辑的论文中出现了这张图片
这显示了处理器的连接,QPI 信号与内存接口分开显示。
图片前的文字确认 QPI 未用于访问内存
The processor
also typically has one or more integrated memory
controllers. Based on the level of scalability
supported in the processor, it may include an
integrated crossbar router and more than one
Intel® QuickPath Interconnect port.
此外,如果您查看典型的数据表,您会发现 不是 QPI 使用的数据表。
然而,QPI 用于访问非核心,即处理器中包含内存控制器的部分。
感谢维基百科上的 QPI 文章
QPI 是一种快速的内部通用总线,除了可以访问 CPU 的非核心外,它还可以访问其他 CPU 的非核心。
由于这个 link,uncore 中可用的每个资源都可以使用 QPI 访问,包括远程的 iMC CPU。
QPI 定义了一个包含多个消息的协议类,其中两个用于使用另一个CPU iMC 读取内存。
流程使用类似于通常网络堆栈的堆栈。
因此,到远程内存的路径包括一个 QPI 段,但到本地内存的路径不包括。
更新
对于 Xeon E7 v3-18C CPU(专为 multi-socket 系统设计),主代理不直接访问 DIMM,而是使用 Intel SMI2 link to access the Intel C102/C104 Scalable Memory Buffer 依次访问DIMM。
SMI2 link 比 DDR3 更快,内存控制器实现可靠性或与 DIMM 交错。
最初 CPU 使用 FSB to access the North bridge, this one had the memory controller and was linked to the South bridge (ICH - IO Controller Hub in Intel terminology) through DMI。
后来FSB被QPI取代了。
然后内存控制器被移入CPU(使用它自己的总线访问内存和QPI与CPU通信)。
后来,北桥(IOH - IO Hub in Intel terminology) was integrated into the CPU and was used to access the PCH (that now replaces the south bridge) and PCIe用于访问快速设备(如外部图形控制器)。
最近,PCH 也已集成到 CPU 中,现在仅公开 PCIe、DIMM 引脚、SATAexpress 和任何其他通用内部总线。
根据经验,处理器使用的总线是:
- 其他 CPUs - QPI
- 至 IOH - QPI(如果存在 IOH)
- 去核心 - QPI
- 至 DIMM - 作为 DRAM 技术(DDR3、DDR4、...)支持指令的引脚。对于至强 v2+,英特尔使用快速 SMI(2) link 连接到基于两种配置处理 DIMM 和通道的 off-core 内存控制器(英特尔 C102/104)。
- 至 PCH - DMI
- 到设备 - PCIe、SATAexpress、I2C 等。
是的, QPI 用于访问多路系统上的所有远程 内存,它的大部分设计和性能都是为了以合理的方式支持此类访问(即,延迟和带宽不 太 比本地访问差很多)。
基本上,大多数 x86 多路系统都是 lightly1 NUMA:每个 DRAM bank 都连接到一个内存控制器特定套接字:此内存然后是该套接字的本地内存,而剩余内存(附加到其他套接字)是远程内存。所有对 remote 内存的访问都超过了 QPI links,在许多系统上 2 这完全是所有内存访问的一半,并且更多
所以QPI被设计成低延迟和高带宽,让这样的访问仍然表现良好。此外,除了纯内存 access,QPI 是 link,套接字之间的缓存一致性通过它发生,例如,通知其他套接字无效,已转换为共享状态等
1 也就是说,NUMA 因子相当低,延迟和带宽通常小于 2。
2 例如,启用 NUMA 交错模式和 4 个套接字,75% 的访问是远程的。
我已阅读An Introduction to the Intel® QuickPath Interconnect。该文档没有提到处理器使用 QPI 来访问内存。所以我认为处理器不会通过QPI访问内存。
我的理解正确吗?
Intel QuickPath Interconnect (QPI) 未连接 DRAM DIMM,因此不用于访问连接到 CPU 集成内存控制器的内存(iMC).
在您 link 编辑的论文中出现了这张图片
这显示了处理器的连接,QPI 信号与内存接口分开显示。
图片前的文字确认 QPI 未用于访问内存
The processor also typically has one or more integrated memory controllers. Based on the level of scalability supported in the processor, it may include an integrated crossbar router and more than one Intel® QuickPath Interconnect port.
此外,如果您查看典型的数据表,您会发现
然而,QPI 用于访问非核心,即处理器中包含内存控制器的部分。
QPI 是一种快速的内部通用总线,除了可以访问 CPU 的非核心外,它还可以访问其他 CPU 的非核心。 由于这个 link,uncore 中可用的每个资源都可以使用 QPI 访问,包括远程的 iMC CPU。
QPI 定义了一个包含多个消息的协议类,其中两个用于使用另一个CPU iMC 读取内存。
流程使用类似于通常网络堆栈的堆栈。
因此,到远程内存的路径包括一个 QPI 段,但到本地内存的路径不包括。
更新
对于 Xeon E7 v3-18C CPU(专为 multi-socket 系统设计),主代理不直接访问 DIMM,而是使用 Intel SMI2 link to access the Intel C102/C104 Scalable Memory Buffer 依次访问DIMM。
SMI2 link 比 DDR3 更快,内存控制器实现可靠性或与 DIMM 交错。
最初 CPU 使用 FSB to access the North bridge, this one had the memory controller and was linked to the South bridge (ICH - IO Controller Hub in Intel terminology) through DMI。
后来FSB被QPI取代了。
然后内存控制器被移入CPU(使用它自己的总线访问内存和QPI与CPU通信)。
后来,北桥(IOH - IO Hub in Intel terminology) was integrated into the CPU and was used to access the PCH (that now replaces the south bridge) and PCIe用于访问快速设备(如外部图形控制器)。
最近,PCH 也已集成到 CPU 中,现在仅公开 PCIe、DIMM 引脚、SATAexpress 和任何其他通用内部总线。
根据经验,处理器使用的总线是:
- 其他 CPUs - QPI
- 至 IOH - QPI(如果存在 IOH)
- 去核心 - QPI
- 至 DIMM - 作为 DRAM 技术(DDR3、DDR4、...)支持指令的引脚。对于至强 v2+,英特尔使用快速 SMI(2) link 连接到基于两种配置处理 DIMM 和通道的 off-core 内存控制器(英特尔 C102/104)。
- 至 PCH - DMI
- 到设备 - PCIe、SATAexpress、I2C 等。
是的, QPI 用于访问多路系统上的所有远程 内存,它的大部分设计和性能都是为了以合理的方式支持此类访问(即,延迟和带宽不 太 比本地访问差很多)。
基本上,大多数 x86 多路系统都是 lightly1 NUMA:每个 DRAM bank 都连接到一个内存控制器特定套接字:此内存然后是该套接字的本地内存,而剩余内存(附加到其他套接字)是远程内存。所有对 remote 内存的访问都超过了 QPI links,在许多系统上 2 这完全是所有内存访问的一半,并且更多
所以QPI被设计成低延迟和高带宽,让这样的访问仍然表现良好。此外,除了纯内存 access,QPI 是 link,套接字之间的缓存一致性通过它发生,例如,通知其他套接字无效,已转换为共享状态等
1 也就是说,NUMA 因子相当低,延迟和带宽通常小于 2。
2 例如,启用 NUMA 交错模式和 4 个套接字,75% 的访问是远程的。