快速通道互联

快速通道互联（英语：Intel QuickPath Interconnect，缩写：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（UltraPath Interconnect）取代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派生的环形总线链路连接，同时也保证缓存一致性。