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

时间:2017-01-09 07:51:41

标签: memory cpu cpu-architecture processor

我看过An Introduction to the Intel® QuickPath Interconnect。该文档未提及处理器使用QPI来访问内存。所以我认为处理器不通过QPI访问内存。

我的理解是否正确?

2 个答案:

答案 0 :(得分:7)

是的, QPI用于访问多插槽系统上的所有远程内存,其大部分设计和性能旨在以合理的方式支持此类访问(即,延迟和带宽不是比本地访问更差)。

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

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

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

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

答案 1 :(得分:5)

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

Intel Socket connection, with QPI connections separated from memory lines

显示处理器的连接,QPI信号与存储器接口分开描绘。

图片前面的文字确认QPI未用于访问内存

  

处理器   通常还具有一个或多个集成存储器   控制器。基于可伸缩性的级别   在处理器中支持,它可能包括一个   集成的crossbar路由器和多个   英特尔®QuickPath互连端口。

此外,如果您查看典型数据表,您会发现CPU pins for accessing the DIMMs不是QPI使用的数据表。

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

QPI to access the DRAM controller, from Wikipedia 由维基百科上的QPI文章提供

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

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

因此,远程内存的路径包括QPI段,但本地内存的路径不包括。

<强>更新

对于Xeon E7 v3-18C CPU(专为多插槽系统设计),Home代理不会直接访问DIMMS,而是使用Intel SMI2链接访问Intel C102/C104 Scalable Memory Buffer访问DIMMS。

SMI2链路比DDR3更快,内存控制器实现可靠性或与DIMM交错。

Xeon E7 v3 18C with SMI2 links

最初,CPU使用FSB访问North bridge,此版本具有内存控制器,并通过{South bridge(英特尔术语中的ICH - IO Controller Hub)链接到DMI {3}}。

后来FSB被QPI取代。

然后将内存控制器移入CPU(使用自己的总线访问内存和QPI与CPU通信)。

稍后,北桥(英特尔术语中的IOH - IO Hub)已集成到CPU中,用于访问PCH(现在替换南桥)并使用PCIe访问快速设备(如外部图形控制器)。

最近PCH已经集成到CPU中,现在只暴露PCIe,DIMM引脚,SATAexpress和任何其他常见的内部总线。

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

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