快速通道互联
快速通道互联[1][2](英语:Intel QuickPath Interconnect,缩写:QPI)[3][4],是一种由英特尔开发并使用的点对点处理器互联架构,用来实现CPU之间的互联。英特尔在2008年开始用QPI取代以往用于至强、安腾处理器的前端总线(FSB)。初期,英特尔给这种连接架构的名称是“公共系统界面”(Common System Interface ,CSI)[5][6],它的早期设计形态亦被称为Yet Another Protocol(YAP)和YAP+。
英特尔在发布Sandy Bridge-EP核心(Romley平台)后,也顺势公布首代QPI的改进版QPI 1.1版本。[7]Intel于2017年发布的SkyLake-SP Xeon中,用UPI(UltraPath Interconnect)取代QPI。
背景
编辑尽管多数时候被称作“总线”,但是QPI是一种点对点互联结构。它被设计成与超微半导体自2003年使用的超传输(HyperTransport)总线竞争。[8][9] 英特尔在它下属的麻省微处理器研究中心(Massachusetts Microprocessor Design Center,MMDC)开发设计QPI,由以前曾在DEC Alpha的开发团队的成员进行。这个原先来自DEC的开发团队此前曾在康柏电脑和惠普工作,后来被英特尔挖角。而关于QPI的研究早在2004年就开始了。[10]
QPI的首次实现是英特尔自家的Nehalem微架构。在2008年11月发售的桌面型平台处理器Core i7-900系列和X58晶片组上、在2009年3月发布伺服器平台的Xeon X5500系列处理器。后来,2010年2月发布的Itanium 2处理器(核心代号“Tukwila”),也使用了QPI。[11]
实现
编辑QPI通常作为一个系统架构的组成部分,英特尔称之为“快速通道架构”(QuickPath architecture),这个架构的实现英特尔又称之为“快速通道技术”(QuickPath technology)。[12]在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位组)有效资料的资料数据包的发送。[13]
尽管最初QPI仅实现四象限链接,但QPI的规格容许其它实现。每个象限可以独立使用。在高可靠度伺服器上,一个QPI链接可以在降阶模式中运作。如果20+1信号中一个或多个链路失效,接口将剩余的链路以10+1或最低5+1信号来继续运作,如果时钟失效,甚至会为资料信号重新分配时钟。[13]
最初实现四象限链路的是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)[14][15][16][17][18]:p.3而这些系列的处理器,北桥已经移到处理器内部作为“Uncore”(或称“片上北桥”)的一部分,和处理器核心直接连接,无需再以前端总线界面连接,处理器的外部链接通过片上北桥/Uncore使用较慢的DMI(2.5GT/s至5.0GT/s的吞吐量)或PCI-e总线接口,用来连接南桥/PCH或其它形式的外部装置。[19]Nehalem/Westmere微架构上,Uncore/片上北桥与处理器核心尚用QPI连接,而Sandy Bridge微架构以后的桌面型平台以及移动平台之处理器上则采用基于QPI派生的环形总线链路连接,同时也保证缓存一致性。[18]:p.10
时脉规格
编辑QPI的运作时脉有2.4GHz、2.93GHz、3.2GHz或4.0GHz(4.0GHz用于企业级的Sandy Bridge-E/EP核心的处理器上)。每个特定链路的时脉取决于链路终端的组件之性能以及印刷电路板上信号路径的信号特征,亦即可根据所连接组件的资料吞吐量需求自行调整时脉,提高资源利用效率。[20]最初,非极致版本的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)[21]
- 3.2 GHz
- × 2 bits/Hz (双倍资料发送速率)
- × 20 (QPI连接宽度)
- × (64/80) (资料位元数/资料数据包位元数)
- × 2 (各向发送和接收作业同步进行)
- ÷ 8 (每字节位元数)
- = 25.6 GB/s
或:
- 6.4 GT/s
- × 2 Byte (每次传输的有效资料,64位/4次/8位一个字节=2字节每次)
- × 2 (各项发送和接收作业同时进行)
- = 25.6 GB/s
如此类推,2.4GHz或4.8GT/s、4.0GHz或8.0GT/s、2.93GHz或5.86GT/s的也可以计算出带宽。
协议层
编辑QPI的协议定义了五层结构,分为物理层、链路层、路由层、传输层以及协议层。[3]但是,在一些仅两节点的点对点QPI配置配置上,像是Core i7-900系列和Xeon双处理器平台(DP)系列的处理器,不需要传输层,路由层是最小最简单的两节点配置。
- 物理层:物理层包含实际接线、差分发送器和接收器、加上发送和接收的物理层单元的最低级逻辑。所谓的物理层单元是20位元的数据包分块。当20个通道全部可用时,物理层利用1个单一时钟信号边沿在20个通道上传输20位元的数据包分块,如果遇到失效/传输失败的情况时,QPI会重新配置,仅使用10个甚至只有5个通道来传输数据包分块。注意,除了资料信号以外,会有一个时钟信号从发送器发送到接收器上(这需要占用一个额外的引脚来简化时钟恢复过程)。
- 链路层:链路层负责发送和接收80位的数据包。每个数据包发送至物理层上是作为4个20位元的数据包分块的形式。每个数据包包括一个8位的CRC(循环冗余校验),由链路层发送器生成,72位元是数据包所承载的资料。如果链路层检测到一个CRC错误,发送器通过一对链路中的返回链路发回一个数据包通知发送器重发数据包。为防止接收器的缓冲器溢出,链路层还通过赊账/借记的方案来实现资料流量控制。链路层支持六种不同类型的消息,来允许更高的协议层识别数据包中主要用于保持缓存一致性非资料部分并将之拆分以掠过。在实现一些复杂的快速通道架构上,链路层可被配置成为不同类别的资料流保持资料流分离和流量控制。但是,在单处理器和双处理器平台上实现的快速通道架构,这方面的实现需要仍不明确。
- 路由层:路由层发送一个包含一个8位报头和64位资料承载的72位元单元。报头包括资料目的地和消息类型。当路由层接收到一个单元,它会检查它的路由表以确定单元是否到达目的地。如果单元已到达目的地的话,就将之传递至更高的协议层上。如果仍未到达目的地,单元将被发送到正确的向外传输QPI。在只有单一QPI架构的装置上,路由层是最小的。在更复杂的实现示例上,路由层的路由表会更为复杂、而且被定制成动态更新以避免失效的QPI链接。
- 发送层:仅有两节点的连接中,发送层并不是必须的,而且亦不会出现在这些装置上,像是Core i7。发送层可跨越QPI网络发送和接收资料,这个QPI网络由其它多个装置上的数个节点以QPI连接组成,这些装置也可能并没有直接连接(举个例子,资料可能会由一个已被插断的装置上经过),发送层会校验资料的完整性,如果资料不完整,它会要求上一个节点重新发送资料。
- 协议层:协议层发送和接收代表装置的数据包。一个典型的数据包是一个存储器缓存行。协议层也通过发送和接收缓存一致性消息的方式参与到缓存一致性的维持。
参见
编辑资料来源
编辑- ^ 英特尔. 英特尔® 快速通道互联简介. 英特尔. [2013-10-10]. (原始内容存档于2020-10-22).
- ^ 英特尔. 英特尔® 快速通道互联架构. 英特尔. [2013-10-10]. (原始内容存档于2013-10-17).
- ^ 3.0 3.1 An Introduction to the Intel QuickPath Interconnect (PDF). Intel Corporation. January 30, 2009 [June 14, 2011]. (原始内容存档 (PDF)于2011-04-16).
- ^ DailyTech report (页面存档备份,存于互联网档案馆), retrieved August 21, 2007
- ^ Eva Glass. Intel CSI name revealed: Slow, slow, quick quick slow. The Inquirer. May 16, 2007 [September 13, 2013]. (原始内容存档于2012-06-10).
- ^ QPI总线是什么. pconline.com.cn. [2013-10-10]. (原始内容存档于2019-11-13).
- ^ David Kanter. Intel's Quick Path Evolved. Realworldtech.com. 2011-07-20 [2014-01-21]. (原始内容存档于2021-01-21).
- ^ Gabriel Torres. Everything You Need to Know About The QuickPath Interconnect (QPI). Hardware Secrets. August 25, 2008 [September 13, 2013]. (原始内容存档于2014年10月27日).
- ^ Charlie Demerjian. Intel Intel gets knickers in a twist over Tanglewood. The Inquirer. December 13, 2005 [September 13, 2013]. (原始内容存档于2010-09-03).
- ^ Eva Glass. Intel's Whitefield takes four core IA-32 shape. The Inquirer. December 12, 2004 [September 13, 2013]. (原始内容存档于2009-05-24).
- ^ David Kanter. Intel’s Tukwila Confirmed to be Quad Core. Real World Tech. May 5, 2006 [September 13, 2013]. (原始内容存档于2012年5月10日).
- ^ Intel Demonstrates Industry's First 32nm Chip and Next-Generation Nehalem Microprocessor Architecture. [2007-12-31]. (原始内容存档于2008-01-02).
- ^ 13.0 13.1 David Kanter. The Common System Interface: Intel's Future Interconnect. Real World Tech. August 28, 2007 [September 13, 2013]. (原始内容存档于2007年9月27日).
- ^ 集显U会限制超频么?酷睿i3-530超频实测. zol.com.cn. [2014-08-07]. (原始内容存档于2012-03-20).
- ^ Chris Angelini. QPI, Integrated Memory, PCI Express, And LGA 1156 - Intel Core i5 And Core i7: Intel’s Mainstream Magnum Opus. Tomshardware.com. 2009-09-07 [2014-01-21]. (原始内容存档于2012-02-23).
- ^ Published on 25th January 2010 by Richard Swinburne. Feature - Intel GMA HD Graphics Performance. bit-tech.net. 2010-01-25 [2014-01-21]. (原始内容存档于2017-05-21).
- ^ Intel Clarkdale 32nm CPU-and-GPU chip benchmarked (again) - CPU - Feature. HEXUS.net. 2009-09-25 [2014-01-21]. (原始内容存档于2020-08-08).
- ^ 18.0 18.1 Oded Lempel. 2nd Generation Intel Core Processor Family: Intel Core i7, i5 and i3 (PDF). hotchips.org. 2013-07-28 [2014-01-21]. (原始内容 (PDF)存档于2020-07-29).
- ^ Lily Looi, Stephan Jourdan, Transitioning the Intel® Next Generation Microarchitectures (Nehalem and Westmere) into the Mainstream (页面存档备份,存于互联网档案馆), Hot Chips 21, August 24, 2009
- ^ CPU : 什么是QPI总线 (页面存档备份,存于互联网档案馆)-zol.com.cn
- ^ GT/s MHz?——解密QPI的来龙去脉 (页面存档备份,存于互联网档案馆) - enet.com.cn
外部链接
编辑- First Look at Nehalem Microarchitecture
- Ars Technica's What You Need To Know About Nehalem (页面存档备份,存于互联网档案馆)
- An Introduction to the Intel QuickPath Interconnect (页面存档备份,存于互联网档案馆)