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

我的理解是否正确?

===============>>#1 票数:7 已采纳

是的,QPI是用来访问多插槽系统的所有远程内存,并且其大部分的设计和性能的目的是支持以合理的方式这样的访问(即,延迟和带宽比本地访问没有太多糟糕)。

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

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


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

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

===============>>#2 票数:5

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

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

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

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

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

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


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

从维基百科访问DRAM控制器的QPI 由维基百科上的QPI文章提供

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

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

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

更新

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

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

Xeon E7 v3 18C带有SMI2链接


最初,CPU使用FSB访问北桥 ,这个有内存控制器,并通过DMI链接到南桥 (英特尔术语中的ICH-IO控制器中枢 )。

后来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,......)的引脚支持强制要求。 对于Xeon v2 +,英特尔使用快速SMI(2)链接连接到核心内存控制器(英特尔C102 / 104),可根据两种配置处理DIMM和通道。
  • 致PCH - DMI
  • 设备 - PCIe,SATAexpress,I2C等。

  ask by Jingguo Yao translate from so

未解决问题?本站智能推荐:

1回复

当代处理器与纯冯·诺依曼架构有何不同?

因此,我从来没有真正了解过冯·诺依曼(von Neumann)的体系结构,并且因为在我上CPU课期间不在学校,所以开始对其进行修改。 由于我的老师不会回复电子邮件,因此无法真正获得帮助。 我已经了解了冯·诺依曼架构,现在我需要知道该架构与现代处理器的不同之处。 我知道当代处理器有时
3回复

为什么超标量处理器的非超标量部分的性能受到影响?

在Wikipedia的CPU文章的ILP部分的倒数第二段中: 在一部分CPU是超标量而另一部分不是CPU的情况下, 未分配的部分由于调度停顿而遭受性能损失 。 英特尔P5奔腾具有两个超标量ALU,每个时钟周期可以接受一条指令,但FPU不能在每个时钟周期接受一条指令。 因此,P5是整
2回复

4位CPU如何处理无限数据并从内存中调用该数据?

考虑一个只有4个晶体管的处理器。 一次只能代表一个半字节。 我们需要处理由32位组成的数据(更正:我从此处删除了“无限字节”)。 如何保存? 以便我们输入第二个半字节,依此类推...。以及如何调用保存的数据? 并解释当我们将二进制表示为八进制或十进制时,该表示形式是哪个cpu单位?
1回复

单个处理器的每个内核能否具有不同的频率?

我正在阅读有关一家出售比特币采矿硬件的公司的博客文章。 他们的专长是使用ASIC来实现尽可能高的(能源)效率。 我有几个与比特币采矿没有特别关系的问题。 任何人都可以回答! 是否有可能/切实可行地制造一个由多个内核组成的处理器,其中每个内核具有不同的频率(或者通常具有不同的制造工
7回复

为什么在大多数处理器中,L1高速缓存的大小小于L2高速缓存的大小?

为什么在大多数处理器中,L1高速缓存的大小小于L2高速缓存的大小?
2回复

内存地址通常以位为单位

我对很多术语感到困惑,我的讲师谈到了诸如word , byte addressing和memory location等术语。 我的印象是,对于32-bit processor ,它可以处理高达2^32 bits ,即4.29 X 10^9 bits (NOT BYTES) 。 我现在
2回复

字长是否==每次访问在内存和CPU之间传输的位数?

我对“字长”的概念感到困惑。 我知道在32位计算机中,内存地址具有32位。 每个内存访问将32位(4字节)传输到CPU。 在64位计算机中,该地址具有64位。 但这是否意味着内存访问单元也是64位? 在这个答案中 ,作者说“字:处理器处理数据的自然大小(寄存器大小)”。 但是,它
2回复

经典的RISC管道-“内存访问”阶段实际上是做什么的?

参考维基百科文章: http://en.wikipedia.org/wiki/Classic_RISC_pipeline 我有点不确定“内存访问”阶段的实际作用。 如果“执行”实际上执行了执行,那么执行执行后检索内存地址有什么目的(这是维基百科文章所建议的)?
3回复

CPU速度是否受从内存中获取指令的速度限制?

学习汇编时,我意识到我应该将频繁访问的数据放在寄存器而不是内存中,因为内存要慢得多。 问题是,由于首先从内存中取出指令,CPU如何比内存运行得更快? CPU通常会花很多时间等待内存中的指令吗? 编辑 :要运行程序,我们需要将其编译为包含机器代码的文件。 然后我们将该文件加载到内存
1回复

为什么原子RMW指令的加载部分无法将较早的存储传递到TSO(x86)内存一致性模型中的无关位置?

众所周知,由于使用了写缓冲区,x86体系结构没有实现顺序一致性内存模型,因此可以进行存储->加载重新排序(可以提交更高的负载,而较早的存储仍驻留在写缓冲区中,等待提交给L1缓存)。 在“内存一致性和一致性入门”中,我们可以了解有关Total Store Order(TSO)内存一致性