在PCIe接口上实现快速通路互连协议的利记博彩app

文档序号:7885215阅读:443来源:国知局
专利名称:在PCIe接口上实现快速通路互连协议的利记博彩app
技术领域
本发明领域总地涉及计算机系统接口,更具体地但不排他地涉及在PCIe接口上实现 Intel Quickpath Interconnect (快速通路互连)_协议。背景信息计算机系统常见地采用一个或多个互连以利于系统组件之间(例如处理器和存储器之间)的通信。互连和/或扩充接口也可用于支持内建和附加设备,例如10(输入/输出)设备和扩充卡等。在个人计算机引入后的许多年里,主要形式的互连是并行总线。并行总线结构用于内部数据传输和扩充总线两者,例如ISA(工业标准架构)、MCA(微通道架构)、EISA(扩展的工业标准架构)以及VESA局部总线。在1990年代早期英特尔公司引入了 PCI (外围组件互连)计算机总线。PCI在较早期总线技术上的改进不仅在于提高了总线速度,还在于使用共享地址和数据线引入自动配置和基于事务的数据传输。随着时间推移,计算机处理器时钟速率以比并行总线时钟速率更快的步伐增加。结果,计算机工作负荷经常受互连瓶颈而不是处理器速度限制。尽管并行总线支持每循环大数据量(例如在PC1-X下32位或甚至64位)的传递,它们的时钟速率受定时失真因素限制,由此导致对最大总线速率的实际限制。为了克服这个问题,研发出高速串行互连。早期串行互连的例子包括串行ATA、USB (通用串行总线)、火线和RapidIO。另一广泛使用的标准串行互连是PCI Express,也称PCIe,它是在PCIel.0标准下在2004年引入的。PCIe被设计成代替旧的PCI和PC1-X标准,同时提供旧有系统支持。PCIe利用点对点串行链路,而不是共享的并行总线架构。每个链路使用一个或多个快线(lane)支持两个PCIe端口之间的点对点通信信道,其中每个快线包括双向串行链路。快线使用纵横开关架构物理地路由,所述纵横开关架构同时支持多个设备之间的通信。因其固有优势,PCIe在今日的个人计算机中已取代PCI成为最盛行的互连。PCIe是由PC1-SIG (特殊兴趣小组)管理的工业标准。因此,PCIe片可从许多ASIC和硅卖方获得。最近,英特尔引入了快速通路互连 (QPI)。QPI —开始被实现为点对点处理器互连,它取代使用高性能处理器(例如Intel Xeon _和Itanium 处理器)的平台上的前端总线。QPI是可升级的,并且在具有采用共享存储器资源的多个处理器的系统中尤其占优势。QPI事务使用多层协议架构利用基于分组的传输。其特征之一是支持一致性事务(例如存储器一致性),PCIe则不支持这个。因此,将例如事务一致性的QPI特征和功能扩展至利用PCIe接口的系统将是有利的。


当结合附图参照下面的详细描述,本发明前述方面和许多伴随的优势将变得更为易懂并更容易理解,在附图中,相同的附图标记在各个图中表示相同的部件,除非另有规定:图1示出QPI协议栈的层;图2是示出QPI链路的结构的示意图3示出PCIe协议栈的层;图4是示出PCIexl6链路结构的示意图;图5是示出PCIex8链路结构的示意图;图6是示出PCIex4链路结构的示意图;图7示出由在PCIe接口上实现QPI协议的一个实施例采用的协议层;图8示出当工作在利用20个快线的全宽度模式时根据QPI流控制单元(flit)的数据位的映射;图9示出根据一个实施例80位QPI流控制单元的位在PCIe xl6接口上的映射;图10示出根据一个实施例80位QPI流控制单元的位在PCIe x8接口上的映射;图11示出根据一个实施例80位QPI流控制单元的位在PCIe x4接口上的映射;图12示出根据一个实施例QPI位在使用128b/130b编码的PCIe xl6接口上的映射;图13示出根据一个实施例用于将QPI链路层实现在PCIe物理层接口的信号;图14是示出根据一个实施例用于将QPI链路层实现在PCIe物理层接口的逻辑和物理块的方框图;图15示出根据一个实施例两个80位QPI流控制单元在PCIe xl6接口上的映射;图16是示出根据一个实施例配置成在PCIe接口上实现QPI协议的刀片服务器的一对刀片的示意图;图17是示出使用图16的刀片服务器根据QPI协议支持本地监听(home snoop)的发消息操作的消息流程图;以及图18是示出使用图16的刀片服务器根据QPI协议支持源监听(source snoop)的发消息操作的消息流程图。
具体实施例方式本文描述了在PCIe接口上实现QPI协议的方法和装置的实施例。在以下描述中,陈述许多具体细节以提供对本发明的实施例的透彻理解。然而,相关领域内技术人员将理解本发明可省去一个或多个特定细节而实现,或通过其它方法、组件、材料等实现。在其它例子中,公知的结构、材料或操作不被示出或详细说明以避免对本发明某些方面产生混淆。贯穿本说明书,对“一个实施例”或“一实施例”的引用意味着结合该实施例描述的特定特征、结构或特性被包括在本发明的至少一个实施例中。因此,在本说明书通篇的多个位置中的短语“在一个实施例中”或“在一实施例中”的出现不一定全部指向同一实施例。而且,具体特征、结构、或特性可以任何合适的方式在一个或多个实施例中组合。怏谏通路互连总览QPI事务是藉由在多层协议上传输的分组消息来促成的。如图1所示,这些层包括物理层、链路层、传输层和协议层。在物理层,数据以20位phit (物理单元)交换。在链路层,phit被聚集成80位的flit (流控制单元)。在协议层,使用基于分组的传输在代理之间传递消息。物理层定义互连的物理结构并负责应对在两代理之间特定链路上的信号的运作细节。该层管理信号线上的数据传输,包括电平、定时方面以及涉及在并行快线两侧发送和接收信息的每个位的逻辑结果。如图2所示,每个互连链路的物理连通性由20个差分信号对加上差分前进时钟来构成。每个端口支持由两个单向链路构成的一链路对,以完成两组件之间的连接。这同时支持两个方向上的话务。具有QPI端口的组件使用一对单向点对点链路通信,这对链路被定义为链路对,如图2所示。每个端口包括发送(Tx)链路接口和接收(Rx)链路接口。对于所示例子,组件A具有连接至组件B Rx端口的Tx端口。一个单向链路从组件A向组件B发送,而另一链路从组件B向组件A发送。“发送”链路和“接收”链路是对于特定QPI代理而定义的。组件A发送链路将数据从组件A Tx端口发送至组件B Rx端口。该相同的组件A发送链路是端口 B接收链路。协议栈向上的第二层是链路层,它负责可靠数据传输和流控制。链路层也提供将物理信道虚拟化成多个虚拟信道和消息类。在物理层初始化和训练结束后,其逻辑子块在链路层指引下工作,该链路层负责流控制。从该链路工作点向前,逻辑子块以流控制单元粒度(80位)与链路层通信并以物理单元粒度(20位)横跨链路地传输流控制单元。流控制单元由整数个物理单元构成,其中物理单元被定义为在一个单元间隔(UI)上传输的位数。例如,全宽度QPI链路使用四个物理单元发送和接收一完整的流控制单元。每个流控制单元包括72位的负载和8位CRC。路由层负责确保消息被送至其正确的目的地,并提供通过互连结构引导分组的构架。如果从链路层递交的消息去往另一设备中的代理,则路由层将其提交给正确的链路以在该链路上发送。去往该本地设备上的代理的所有消息被向上传递给协议层。协议层发挥多种功能。它使用回写协议管理接口的高速缓存一致性。它也具有用于管理非一致性发消息的一组规则。消息是使用分组在协议层上的代理之间传递的。协议层管理跨多个链路的消息传递,这牵涉到多个设备中的多个代理。跨分布式高速缓存和存储器控制器的系统高速缓存一致性是通过参与一致性存储器空间事务的分布式代理维持的,它受由协议层定义的规则作用。QPI —致性协议既支持本地监听行为又支持源监听行为,如下文中进一步详细描述的那样。PCI Express 的简介和QPI —样,PCIe支持点对点互连,该点对点互连使用由用于发送和接收中的每一个的一个或多个快线构成的串行链路。PCIe链路具有至少一个快线——每个快线代表一组差分信号对(一个对用于传输,一个对用于接收)。为了缩放带宽,链路可集合多个快线,这由xN表示,其中N可以是所支持的链路宽度中的任何一个。例如,在PCIe3.0规范上,PCIe链路包括对xl、x2、x4、x8、xl2、xl6和x32快线宽度的操作。在硬件初始化过程中,在快线宽度与链路每端的两个代理的工作频率的协商之后建立每个PCI Express链路。如图3所示,PCI Express使用分层的协议,包括物理层、数据链路层和事务层。物理层进一步包括逻辑子块和电气子块。PCI Express使用分组在各组件之间传达信息。分组被形成在事务层和数据链路层中以将信息从发送组件携带至接收组件。随着发送的分组流过其它层,它们被扩充以具有在那些层处理分组所需的附加信息。在接收侧,逆过程发生并且分组从其物理层表现转变为数据链路层表现,并最终(对于事务层分组)转变为可由接收设备的事务层处理的形式。图3示出事务层分组信息通过各个层的概念流。尽管QPI PHY和PCIe PHY之间具有某些相似,但也存在区别。这些区别的其中一些是链路配置和数据编码。图4示出PCIe xl6链路的物理连通性。如通过“xl6”标识的那样,该链路采用16个快线,每个快线包括一差分信号对。与其采用独立的时钟信号,PCIe下的时钟数据却是被嵌入到数据传输中并经由链路末端点处的物理层恢复。具有支持xl6链路的电路的PCIe互连也可被配置成两个x8链路。另外,响应于检测到错误,xl6链路的宽度可自动地减小至x8链路,或甚至减小至x4链路。图5示出采用快线0-7的PCIe x8链路的一个例子,而图6示出采用快线0_3的PCIe x4链路的一个例子。PCIe h的 QPI根据本发明的某些方面,披露了在PCIe接口上实现QPI协议的技术。如图7所示,QPI协议的协议层、路由层和链路层被实现在PCIe物理层(PHY)上,这里对PCIe逻辑PHY作了一些修改以支持QPI链路层接口。这允许在PCIe接口(和相应的硬件电路)上使用QPI而不需要对电气架构作任何修改。结果,可使用已有的PCIe设计(包括已有的PCI片)实现QPI。PCIe上的QPI实现支持链路分叉和链路降级,还有快线逆反。在一个实施例中,X16链路可分叉成两个独立的X8链路。另外,存在错误时Χ16链路可降级成Χ8或Χ4链路。降级的x8可以是物理快线O……7或8……15,而降级的x4可以是物理快线O……3、4……
7、8……11、12……15。x8链路可或者在快线O……3或者在4……7降级成x4的。在降级模式下,快线可以是逆反的。在一个实施例中,当针对QPI协议配置时,PCIe PHY根据遵循PCIe3.0的物理层,该物理层使用128b/130b编码而没有物理层组帧(例如STP、END)。PCIe上的QPI链路可工作在遵循PCIe的速率(例如8GT/s)以`及其它能由链路两端的设备支持的速率下。QPI协议栈保持其链路层,包括流控制单元、分组格式、CRC和重试机制。如前所述,在链路层的转移单元是80位流控制单元。因此,为了维持在PCIe PHY上使用QPI链路层,执行传输的数据位格式的映射。当使用QPI链路的全宽度时,80位流控制单元由四个20位物理单元构成,这些物理单元依次在四个UI上被接收。这示出于图8,其中标注为CO……C7的数据对应于8个CRC位,而标注为IO……171的数据对应于负载数据的72个位(信息位)。另外,CRC和负载数据被图示为编组成若干个8位字节。在各实施例中,80位流控制单元数据从4个20位物理单元被重新映射到xl6、x8和x4PCIe链路上。例如,在一个实施例中,在使用4个Π的20位物理单元中的80位流控制单元数据从20个快线被重映射到使用5个Π的PCIe xl6PHY的PCIe的16个快线上。这示出于图9,图9示出在每个Π期间传递的数据位以及根据图7的最初80位流控制单元的8位字节的编组。在图10的实施例中,80位流控制单元数据被映射到使用10个UI的PCIe x8配置的8个快线上。在图11的实施例中,80位流控制单元数据被映射到使用20个UI的PCIe x4配置的4个快线上。在前面的实施例中,选择CRC位和信息位的位置以确保脉冲串长度错误被检测至IJ。下面的错误检测特性被确保:(i)随机的单倍、双倍和三倍位错误,( )长度达到8的脉冲串错误以及(iii)对于xl6链路的线错误检测。在一个实施例中,当传输QPI流控制单元时采用相同的QPI CRC多项式。由于该链路是xl6(或x8或x4)PCIe链路,因此位的布局与QPI不同。用于CRC计算的QPI流控制单元级多项式可表示如下:
I71x79+I70x78+I69x77++10x8+C7x7+C0x°在初始化后,在一个实施例中当发送QPI流控制单元时,PXIe PHY工作在128b/130b编码之下,128b/130b编码具有如PCIe3.0规范定义的相同扰码规则和块对准规贝丨J。在初始化期间,PXIe PHY将从8b/10b编码开始,8b/10b编码在2.5GT/s数据率下以进行最初链路训练,并在发送任何QPI流控制单元前通过速度改变操作切换至128b/130b编码。图12中示出根据一个实施例的128/130b编码的一个例子。在128/130b编码中,携带QPI流控制单元的数据块略为不同于PCIe数据块。与同步报头一直为IOb的PCIe数据块不同,QPI数据块分别在奇数和偶数快线中使用Olb和IOb的同步报头位,如图12所示。QPI数据流开始于第一 QPI数据块并在接收到除SKP有序集以外的有序集时或者在由接收机检测到组帧错误时结束。如果同步报头位在奇数和偶数快线中分别为Olb和IOb,则块是QPI数据块,并且它也遵从另一 QPI数据块或仅具有逻辑IDL或有效的有序集的PCIe数据块。对于QPI数据流,没有其它任何一种PCIe3.0发射机组帧规则需要被遵守。由于每个流控制单元是80位,具有QPI流控制单元的数据块不携带128b/130b编码的任一组帧令牌。组帧逻辑由于其固定的大小可望勾画出流控制单元边界。流控制单元可跨骑在两数据块之间,如图12所示。如前所述,在PCIe上的QPI协议下,QPI协议的上层保持相同。这些层的最低层是QPI链路层。因此,利用QPI链路层和PCIe物理层之间的接口。用于促成这种接口的信号的一个实施例示出于图13。16位-20位转换当使用工作在正常全宽度模式的PCIxl6链路时,来自16个快线的数据被映射到20位的物理单元。PCIe逻辑物理层每个时钟对xl6链路传递8UI价值的数据(8x16=128)。QPI链路层工作在8UI时钟,但在2流控制单元(160b)接口之上。每个流控制单元具有其本身的流控制单元有效信号(即它可能在一个时钟上传输单个流控制单元)。X16至x20转换逻辑本质上是128b-160b转换。在一个实施例中,流控制单元被尽可能快地传递至QPI链路层(即在传递流控制单元前不等待累加160b)。该逻辑部分也提供在PCIe物理层的8UI时钟和PCIe数据链路层的16W时钟之间进行转换的接口。图14示出一方框图,该方框图示出用于执行这种转换的接口的一个实施例。图15示出根据一个实施例在160b和128b之间的位映射。左侧的数据位方框示出通过PCIe逻辑物理层(128b接口)传递的8UI时钟域(PCIe)的数据。它示出40M时钟周期(时间向下递增;408nx5n/流控制单元)。右侧的数据位方框示出对于QPI链路层对各个流控制单元的映射。实线表示流控制单元边界,而虚线表示Sn时钟边界。除了将QPI流控制单元映射到PCIe xl6、x8和x4链路外,该理念可延伸至使用本文公开的类似原理到PCIe x2和xl链路的映射。通常,利用较高宽度的链路是优选的,因为这减少了每个事务的循环次数(并因此减少了等待时间),但也可利用较窄宽度的链路。还要注意,传统PCIe链路(即利用PCIe协议的PCIe链路)和在其上实现QPI链路的PCIe链路两者可存在于同一系统中。PCIe链路不需要具有相同的宽度,或利用相同的时钟速率(即速度)。此外,在同一系统中,在PCIe上的QPI链路可采用不同的链路宽度和时钟速率。
在PCIe上维持高速缓存一致性的示例性实现QPI的固有特征之一是支持一致性内存事务。这是经由与存储器事务相关的相应消息实现的,这些消息由QPI协议的高层处理。如由QPI协议层定义的那样,使用分组将消息传达至可应用代理。下面的消息类由QPI协议利用。
权利要求
1.一种方法,包括: 在具有共享存储器资源并包括可访问所述共享存储器资源的多个设备的计算机系统中实现高速缓存一致性协议,所述多个设备包括具有本地高速缓存的至少一个处理器,其中所述计算机系统包括外围组件互连快速(PCIe)接口电路,在所述PCIe接口电路上允许通过使用所述高速缓存一致性协议来实现一致性存储器事务。
2.如权利要求1所述的方法,其特征在于,所述高速缓存一致性协议是快速通路互连(QPI)协议,所述方法还包括使用在所述PCIe接口电路上传送的QPI消息来实现一致性存储器事务。
3.如权利要求2所述的方法,其特征在于,还包括: 将QPI flit(流控制单元)映射到工作在采用16个快线的全宽度下的PCIe xl6接口。
4.如权利要求2所述的方法,其特征在于,还包括: 将QPI flit (流控制单元)映射到采用8个快线或工作在采用4个快线的四分之一宽度下的PCIe xl6接口上。
5.如权利要求2所述的方法,其特征在于,还包括: 将QPI flit (流控制单元)映射到采用8个快线的PCIe x8接口上。
6.如权利要求2所述的方法,其特征在于,还包括: 将QPI flit(流控制单元)映射到工作在采用4个快线的半宽度下的PCIe x8接口。
7.如权利要求2所述的方法,其特征在于,还包括在PCIe物理层采用128b/130b编码。
8.如权利要求2所述的方法,其特征在于,还包括在PCIe物理层上实现QPI链路层、路由层和协议层。
9.如权利要求1所述的方法,其特征在于,所述系统利用经由所述PCIe接口电路通信地耦合的多个处理器,其中每个处理器通信地耦合至至少一个共享存储器资源并包括本地高速缓存,此外每个处理器被允许访问与另一处理器通信耦合的存储器资源并同时保持存储器一致性。
10.一种方法,包括: 在外围组件互连快速(PCIe)接口电路上实现快速通路互连(QPI)协议。
11.如权利要求10所述的方法,其特征在于,所述QPI协议是通过将QPIflit(流控制单元)映射到16个快线上在利用所述16个快线的PCIe xl6接口上实现的。
12.如权利要求10所述的方法,其特征在于,所述QPI协议是通过将QPIflit (流控制单元)映射到8个快线上在利用所述8个快线的PCIe xl6接口上实现的。
13.如权利要求10所述的方法,其特征在于,所述QPI协议是通过将QPIflit (流控制单元)映射到4个快线上在利用所述4个快线的PCIe xl6或PCIe x8接口之一上实现的。
14.如权利要求10所述的方法,其特征在于,还包括在所述PCIe接口的物理层采用128b/130b 编码。
15.—种系统,包括: 多个处理器,所述多个处理器中的每一个具有本地高速缓存并可操作地耦合至具有针对所述系统的一部分共享存储器的相应存储器存储;以及 可操作地耦合至少两个处理器的外围组件互连快速(PCIe)接口电路, 其中所述至少两个处理器被配置成使用在PCIe接口电路上传送的相应QPI消息实现快速通路互连(QPI)协议以支持所述系统中的一致性存储器事务。
16.如权利要求15所述的系统,其特征在于,所述系统包括具有多个刀片的刀片服务器,所述刀片包括被配置成经由相应的底板或边缘连接器通信地耦合刀片组件的PCIe接口电路。
17.如权利要求15所述的系统,其特征在于,所述处理器被配置成与经由使用在PCIe接口电路上传送的QPI消息执行一致性存储器事务相结合地实现本地监听和源监听中的至少一个。
18.如权利要求15所述的系统,其特征在于,在其上传送QPI消息的PCIe接口电路包括PCIe xl6接口、PCIe x8或PCIe x4接口中的至少一个。
19.如权利要求15所述的系统,其特征在于,在其上传送QPI消息的PCIe接口电路包括从PCIe xl6链路、PCIe x8和PCIe x4链路构成的组中选取的两个或更多个PCIe链路。
20.如权利要求15所述的系统,其特征在于,在其上QPI发消息的PCIe接口电路利用至少两个独立的PCIe链路,所述PCIe链路利用不同链路宽度或不同时钟速率中的至少一个。
全文摘要
用于在PCIe接口上实现英特尔快速通路互连(QPI)的方法和装置。QPI协议的高层通过使用在相应PCIe x16、x8和x4快线配置上的QPI数据位映射在PCIe接口的物理层上实现。利用QPI链路层-PCIe物理层接口以从下层的PCIe物理层(和相应的PCIe接口电路)中提取QPI链路层、路由层和协议层,这允许在PCIe硬件上利用QPI协议消息。因此,可在PCIe接口电路上实现QPI功能,例如对一致性存储器事务的支持。
文档编号H04L29/06GK103119908SQ201180045925
公开日2013年5月22日 申请日期2011年9月23日 优先权日2010年9月24日
发明者R·J·萨弗兰克, D·达斯莎玛, G·N·斯里尼瓦萨 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1