快速通道互联(英语:Intel QuickPath Interconnect,
缩写:QPI),是一种由英特尔开发并使用的点对点处理器互联架构,用来实现芯片之间的互联。英特尔在2008年开始用QPI取代以往用于
至强、
安腾、桌面型平台以及大部分行动型平台的处理器的
前端总线(
FSB)。至Intel Core i系列CPU后,QPI也被逐步应用于个人计算机上。初期,英特尔给这种连接架构的名称是“公共系统界面”(Common System Interface ,CSI),它的早期设计形态亦被称为Yet Another Protocol(YAP)和YAP+。
简介介绍
快速通道互联(英语:IntelQuickPathInterconnect,
缩写:QPI),是一种由英特尔开发并使用的点对点处理器互联架构,用来实现芯片之间的互联。英特尔在2008年开始用QPI取代以往用于
至强、
安腾、桌面型平台以及大部分行动型平台的处理器的
前端总线(
FSB)。至Intel Core i系列CPU后,QPI也被逐步应用于个人计算机上。初期,英特尔给这种连接架构的名称是“公共系统界面”(Common System Interface,CSI),它的早期设计形态亦被称为Yet Another Protocol(YAP)和YAP+。
英特尔在发布Sandy Bridge-EP核心(Romley平台)后,也顺势公布首代QPI的改进版QPI 1.1版本。Intel于2017年发布的SkyLake-SP Xeon中,用UPI(UltraPathInterconnect)取代QPI。
背景
尽管多数时候被称作“总线”,但是QPI是一种
点对点互联结构。它被设计成与超微半导体自2003年使用的超传输(
HyperTransport)总线竞争。英特尔在它下属的麻省微处理器研究中心(Massachusetts Microprocessor Design Center,MMDC)开发设计QPI,由以前曾在
DEC Alpha的开发团队的成员进行。这个原先来自
DEC的开发团队此前曾在
康柏计算机和
惠普工作,后来被英特尔挖角。而关于QPI的研究早在2004年就开始了。
QPI的首次实现是英特尔自家的Nehalem微架构。在2008年11月发售的桌面型平台处理器Core i7-900系列和X58芯片组上、在2009年3月发布服务器平台的Xeon X5500系列处理器。后来,2010年2月发布的Itanium 2处理器(核心代号“Tukwila”),也使用了QPI。
实现
QPI通常作为一个系统架构的组成部分,英特尔称之为“快速通道架构”(QuickPath architecture),这个架构的实现英特尔又称之为“快速通道技术”(QuickPath technology)。在QPI最简单的布置形态——单处理器
主板上,QPI可用来将像是
北桥芯片、
南桥芯片的IO Hub和处理器点对点连接,像是早期Core i7-900系列与X58芯片组之间的连接。在一些更复杂的架构的例子中,多个QPI链接可将一个以上的处理器或一个以上的IO Hub甚至主板网上上的路由集线器点对点连接起来,允许各个组件通过这个网上来与另一个组件进行通信。和
HyperTransport总线类似,搭载快速互联架构的处理器亦需要内置存储器控制器,支持非均匀访问架构。
每个QPI包括有两个20连线的点对点数据通道,每个通道一个发送方向,而每一方向还配备单独的时钟信号对(发送TX,接收RX),与数据信号一起形成共42个信号,如此一来达成全双工运作。每个时钟信号采用差动信号的形式发送,因此QPI的信号线共84条。20条连线被划分为四等份,每份5条连线。QPI中基本数据发送单元是80位大小的QPI数据包,每两个时钟周期完成一次一个QPI数据包的发送,在这两个时钟周期内,一个QPI数据包是分为四次发送,每次发送20比特,即一个时钟周期内发送两次。每个80位的QPI数据包内有8位用于错误纠正,8位是“链路层报头”,剩下的64位才是包含的真实有效的数据。QPI的带宽的计算上,建议计算每两个时钟周期每方向发送的有效数据量,由于QPI是双向发送的,因此每方向在两个时钟周期内都会有包含64位(8位组)有效数据的数据包的发送。
尽管最初QPI仅实现四象限链接,但QPI的规格容许其它实现。每个象限可以独立使用。在高可靠度服务器上,一个QPI链接可以在降阶模式中运作。如果20+1信号中一个或多个链路失效,接口将剩余的链路以10+1或最低5+1信号来继续运作,如果
时钟失效,甚至会为数据信号重新分配时钟。
最初实现四象限链路的是Nehalem架构的4核心处理器,使用完整的四象限链接QPI接口达成25.6GB/s的带宽,提供两倍于英特尔自家的X48芯片组上使用的1600MHz FSB的理论带宽。
尽管最早Core i7-900系列全面使用QPI,但其它Nehalem架构至桌面型处理器和行动型处理器,像是
Core i3、
Core i5以及其它Core i7系列(Lynnfield核心、Clarksfield核心以及其后续核心型号)的处理器,这些处理器因无需参与到
多处理器系统上(从市场取向上也没有必要加入该特性),因此任何外部访问方式上都没有使用QPI,尽管这些处理器内部仍然使用QPI,用以连接处理器内的“Uncore”(“Uncore”指的是处理器芯片的一部分,包含存储器控制器、
PCI-E控制器、以及内置
GPU,乃至整个北桥),这种设计可见于基于Westmere微架构的Clarkdale核心及Arrandale核心型号上(即首代Core i3、i5)而这些系列的处理器,
北桥已经移到处理器内部作为“Uncore”(或称“片上北桥”)的一部分,和处理器核心直接连接,无需再以前端总线界面连接,处理器的外部链接通过片上北桥/Uncore使用较慢的DMI(2.5GT/s至5.0GT/s的吞吐量)或
PCI-e总线接口,用来连接
南桥/
PCH或其它形式的外部设备。Nehalem/Westmere微架构上,Uncore/片上北桥与处理器核心尚用QPI连接,而Sandy Bridge微架构以后的桌面型平台以及移动平台之处理器上则采用基于QPI派生的环形总线链路连接,同时也保证
缓存一致性。
时钟频率规格
QPI的运作时钟频率有2.4GHz、2.93GHz、3.2GHz或4.0GHz(4.0GHz用于企业级的Sandy Bridge-E/EP核心的处理器上)。每个特定链路的时钟频率取决于链路终端的组件之性能以及
印刷电路板上信号路径的信号特征,亦即可根据所连接组件的数据吞吐量需求自行调整时钟频率,提高资源利用效率。最初,非极致版本的Core i7-900系列的处理器出厂默认的QPI时钟频率被限定在2.4GHz。由于采用了双倍数据率技术(DDR),比特的发送在
时钟脉冲信号的
上升沿和
下降沿都进行,因此,数据发送的实际时钟频率是时钟时钟频率的两倍。
英特尔以80位的QPI数据包封装的64位实际有效数据的发送量计数,来描述数据吞吐量和带宽。然而,由于单向发送和单向接收链路对是同步进行的,亦即
全双工作业,英特尔后来将结果数字改为原来的两倍。因此,英特尔描述中,一个运作于3.2GHz时钟频率速率的20通道的QPI链接对(发送和接收)拥有6.4GT/s的数据发送速率,25.6GB/s的
带宽,而同样通道数的QPI运作于2.4GHz时数据发送速率是4.8GT/s,带宽19.2GB/s。更通常地,根据这个定义,一个两端链接的20通道QPI每时钟周期发送8位组,每方向4位组。
带宽计算:(以运作于3.2GHz时钟频率速率下,吞吐量6.4GT/s)
或:
如此类推,2.4GHz或4.8GT/s、4.0GHz或8.0GT/s、2.93GHz或5.86GT/s的也可以计算出带宽。
协议层
QPI的协议定义了五层结构,分为物理层、链路层、
路由层、传输层以及协议层。但是,在一些仅两节点的点对点QPI配置配置上,像是Core i7-900系列和Xeon双处理器平台(DP)系列的处理器,不需要传输层,路由层是最小最简单的两节点配置。
参见