处理器使用Intel QuickPath Interconnect(QPI)来访问内存吗?

Jin*_*Yao 5 memory cpu processor cpu-architecture

我已阅读英特尔®QuickPath互连简介.该文档未提及处理器使用QPI来访问内存.所以我认为处理器不通过QPI访问内存.

我的理解是否正确?

Bee*_*ope 8

是的, QPI是用来访问所有远程多插槽系统内存,以及产品的设计与与性能的目的是支持以合理的方式这样的访问(即,延迟和带宽没有太大比本地接入差很多).

基本上,大多数x86多插槽系统都是轻微的1 NUMA:每个DRAM组都连接到特定插槽的内存控制器:这个内存是该插槽的本地内存,而剩余的内存(连接到其他一些插槽)是远程记忆.对远程内存的所有访问都通过QPI链接进行,并且在许多系统2上完全占用了所有内存访问的一半以上.

因此,QPI旨在实现低延迟和高带宽,使这种访问仍然表现良好.此外,除了纯内存访问之外,QPI是通过其发生套接字之间的高速缓存一致性的链接,例如,通知另一个套接字无效,已经转换到共享状态的行等.


1也就是说,NUMA因子相当低,延迟和带宽通常小于2.

2例如,在启用NUMA交错模式和4个插槽的情况下,75%的访问权限是远程的.


Mar*_*oom 6

英特尔QuickPath互连(QPI)未连接至DRAM DIMM,因此不用于访问连接至CPU集成内存控制器(iMC)的内存。
在您链接的文件中,此图片存在

Intel Socket连接,QPI连接与内存线分开

这显示了处理器的连接,其中QPI信号与内存接口分开显示。

图片前的文本确认未使用QPI访问内存

处理器通常还具有一个或多个集成内存控制器。根据处理器支持的可伸缩性级别,它可能包括一个集成式纵横制路由器和一个以上的英特尔®QuickPath互连端口。

此外,如果查看典型的数据表,您会发现用于访问DIMMCPU引脚不是QPI所使用的。


但是,QPI用于访问非核心,即包含内存控制器的处理器部分。

QPI可从Wikipedia访问DRAM控制器 由Wikipedia上的QPI文章提供

QPI是一种快速的内部通用总线,除了可以访问CPU的内核以外,它还可以访问其他CPU的内核。通过此链接,可以使用QPI来访问uncore中可用的每个资源,包括远程CPU的iMC。

QPI定义了一个具有多个消息类别的协议,其中两个用于使用另一个CPU iMC读取内存。
该流使用类似于通常的网络堆栈的堆栈。

因此,到远程存储器的路径包括一个QPI段,但到本地存储器的路径却没有。

更新资料

对于Xeon E7 v3-18C CPU(专为多插槽系统设计),本地代理不会直接访问DIMMS,而是使用Intel SMI2链接来访问Intel C102 / C104可扩展内存缓冲区,而后者又会访问DIMMS。

SMI2链接比DDR3快,并且内存控制器实现了可靠性或与DIMMS交错。

具有SMI2链接的Xeon E7 v3 18C


最初,CPU使用FSB来访问北桥,该CPU 具有内存控制器,并通过DMI南桥(Intel术语中的ICH-IO控制器中枢)链接。

后来,FSB被QPI取代。

然后将内存控制器移入CPU(使用其自身的总线访问内存,并使用QPI与CPU进行通信)。

后来,北桥(Intel术语中的IOH-IO集线器)集成到CPU中,并用于访问PCH(现在替代了南桥),而PCIe用于访问快速设备(如外部图形控制器)。

最近,PCH也已集成到CPU中,现在仅公开PCIe,DIMM引脚,SATAexpress和任何其他常见的内部总线。


根据经验,处理器使用的总线是:

  • 到其他CPU -QPI
  • 到IOH -QPI(如果存在IOH)
  • 为了非核 - QPI
  • 到DIMM-作为DRAM技术(DDR3,DDR4,...)的引脚支持强制性规定。对于Xeon v2 +,英特尔使用快速SMI(2)链接连接到基于两种配置处理DIMM和通道的核外内存控制器(Intel C102 / 104)。
  • 到PCH -DMI
  • 到设备 -PCIe,SATAexpress,I2C等。