具有PCI快速增强的系统和方法与流程

文档序号:17975885发布日期:2019-06-21 23:47阅读:239来源:国知局
具有PCI快速增强的系统和方法与流程

本公开涉及计算系统,且具体地(而非排他地)涉及点对点互连。



背景技术:

半导体处理和逻辑设计方面的进展已允许可存在于集成电路器件上的逻辑数量的增加。因此,计算机系统配置已经从系统中的单个或多个集成电路发展到各个集成电路上存在的多个核、多个硬件线程和多个逻辑处理器、以及此类处理器内集成的其它接口。处理器或集成电路典型地包括单个物理处理器管芯,其中处理器管芯可包括任意数量的核、硬件线程、逻辑处理器、接口、存储器、控制器中枢等等。

由于将更多处理功率装配在更小封装中的能力越来越强,更小的计算设备越来越受欢迎。智能手机、平板、超薄笔记本以及其它用户设备已指数地增长。然而,这些更小的设备依赖于服务器进行超出形状因数的数据存储和复杂处理。作为结果,高性能计算市场(即服务器空间)的需求也已经增加。例如,在现代服务器中,典型地不仅存在具有多个核的单个处理器,而且存在多个物理处理器(也称为多个插槽),以用于增加计算能力。但由于处理能力随着计算系统中的设备的数量增长,插槽与其它设备之间的通信变得更关键。

实际上,互连已经从主要处理电通信的更传统的多分支总线增长为便于快速通信的充分发展的互连架构。不幸的是,随着未来处理器在甚至更高速率下消耗的需求,对现有互连架构的能力寄予了相应的需求。

附图说明

图1示出包括互连架构的计算系统的实施例。

图2示出包括分层栈的互连架构的实施例。

图3示出将在互连架构内产生或接收的请求或分组的实施例。

图4示出用于互连架构的发射机和接收机对的实施例。

图5示出示例两个连接器互连信道的实施例。

图6是包括通孔的互连结构的横截面的简化框图。

图7是采用通孔桩的反钻的互连的横截面的表示。

图8是表示包括通道错误状态寄存器的能力结构的框图。

图9是示出多通道互连上的数据流的简化图。

图10示出示例分帧令牌码元的表示。

图11是包括示例skip(SKP)有序集的数据流的简化图。

图12是可被报告至错误寄存器的通道错误的的简化框图。

图13A-13D是示出用于报告链路的通道错误的示例技术的流程图。

图14示出包括多核处理器的计算系统的框图的实施例。

图15示出包括多核处理器的计算系统的框图的另一实施例。

图16示出处理器的框图的实施例。

图17示出包括处理器的计算系统的框图的另一实施例。

图18示出包括多个处理器的计算系统的块的实施例。

图19示出被实现为芯片上系统(SoC)的示例系统。

各个附图中的相似附图标记表示相似元件。

具体实施方式

在以下描述中,阐明了众多具体细节,如具体类型的处理器和系统配置的示例、具体硬件结构、具体架构和微架构细节、具体寄存器配置、具体指令类型、具体系统组件、具体测量/高度、具体处理器流水线级和操作等,以提供对本发明的透彻理解。然而,对本领域普通技术人员显而易见的是,不一定要采用这些具体细节来实施本发明。在其它实例中,未详细描述公知的组件或方法,诸如具体或替代的处理器架构、用于所描述算法的具体逻辑电路/代码、具体固件代码、具体互连操作、具体逻辑配置、具体制造技术和材料、具体编译器实现、代码中算法的具体表达、具体掉电和功率限制技术/逻辑、以及计算机系统的其它具体操作细节,以避免不必要地模糊本发明。

尽管参考特定集成电路中(诸如计算平台或微处理器中)的节能和能效描述了以下实施例,但是其它实施例适用于其它类型的集成电路和逻辑器件。可将本文中所描述的多个实施例的类似技术和教导应用于也可受益于更佳的能效和节能的其他类型的电路或半导体器件。例如,所公开的实施例不限于台式计算机系统或超极本TM。并且也可用于其他设备,诸如,手持式设备、平板、其他薄笔记本、片上系统(SOC)设备以及嵌入式应用。手持式设备的一些示例包括蜂窝电话、因特网协议设备、数码相机、个人数字助理(PDA)、手持式PC。嵌入式应用典型地包括微控制器、数字信号处理器(DSP)、芯片上系统、网络计算机(NetPC)、机顶盒、网络集线器、广域网(WAN)交换机、或可执行以下教导的功能和操作的任何其他系统。此外,此处所描述的设备、方法,以及系统也不仅限于物理计算设备,但是,也可以涉及对于节能和效率的软件优化。如将在以下描述中容易变得明显地,本申请中描述的方法、装置和系统的实施例(不论是参考硬件、固件、软件还是其组合)对于与性能考虑相平衡的“绿色技术”未来是关键的。

随着计算系统的进步,本文的各组件可变得更加复杂。结果,用于在这些组件之间进行耦合和通信的互连架构也增加了复杂性以确保满足带宽要求来用于最优组件操作。此外,不同的市场细分要求互连架构的不同方面来适合该市场的需求。例如,服务器需要较高的性能,而移动生态系统有时能够牺牲整体性能来换取功率节省。然而,大多数结构的单一目的是使用最大功率节省来提供最高可能性能。在下文中,讨论了多个互连,它们将潜在地从在此描述的本公开的各方面中获益。

一种互连结构架构包括外围部件互连(PCI)快速(Express)(PCIe)架构。PCIe的主要目标是使得来自不同供应商的各组件和器件能够在开放架构中互操作,横跨多个市场细分;客户机(台式机和移动)、服务器(标准和企业),以及嵌入式和通信设备。PCI快速是针对各种各样的将来计算和通信平台定义的高性能、通用I/O互连。一些PCI属性,如其使用模型、加载-存储架构、以及软件接口,已通过其各版本得到维持,而先前的并行总线实现已被高度可伸缩、完全串行的接口所替换。PCI快速的更新近版本利用点对点互连、基于交换机的技术、以及分组化协议的进步,来产生新的性能水平和特征。功率管理、服务质量(QoS)、热插拔/热切换支持、数据完整性、以及出错处理是PCI快速所支持的高级特征中的一些。

参考图1,示出了包括互连一组组件的点对点链路的结构的实施例。系统100包括耦合到控制器中枢115的处理器105和系统存储器110。处理器105包括任何处理元件,如微处理器、主处理器、嵌入式处理器、协处理器、或其他处理器。处理器105通过前侧总线(FSB)106耦合到控制器中枢115。在一个实施例中,如下所述,FSB 106是串行点对点互连。在另一实施例中,链路106包括兼容不同的互连标准的串行、差分互连架构。

系统存储器110包括任何存储器设备,如随机存取存储器(RAM)、非易失性(NV)存储器、或可由系统100中的器件访问的其他存储器。系统存储器110通过存储器接口116耦合到控制器中枢115。存储器接口的示例包括双数据率(DDR)存储器接口、双通道DDR存储器接口、以及动态RAM(DRAM)存储器接口。

在一个实施例中,控制器中枢115是外围部件互连快速(PCIe或PCIE)互连分层结构中的根中枢、根联合体、或根控制器。控制器中枢115的示例包括芯片组、存储器控制器中枢(MCH)、北桥、互连控制器中枢(ICH)、南桥、以及根控制器/中枢。通常,术语芯片组指的是两个物理上分开的控制器中枢,即耦合到互连控制器中枢(ICH)的存储器控制器中枢(MCH)。注意,当前系统通常包括与处理器105集成在一起的MCH,而控制器115用于按下述类似的方式与I/O设备通信。在一些实施例中,通过根联合体115来可任选地支持对等路由。

在此,控制器中枢115通过串行链路119耦合到交换机/桥接器120。输入/输出模块117和121(也可被称为接口/端口117和121)包括/实现用于提供控制器中枢115与交换机120之间的通信的分层协议栈。在一个实施例中,多个设备能够被耦合到交换机120。

交换机/桥接器120将来自设备125的分组/消息上行地路由(即沿分层结构向上朝根联合体)、下行地向控制器中枢115路由(即,沿分层结构向下远离根控制器),从处理器105或系统存储器110向设备125路由。在一个实施例中,交换机120被称为多个虚拟PCI到PCI桥接设备的逻辑组装件。设备125包括要耦合到电子系统的任何内部或外部设备或组件,如I/O设备、网络接口控制器(NIC)、插卡、音频处理器、网络处理器、硬盘驱动器、存储设备、CD/DVD ROM、监视器、打印机、鼠标、键盘、路由器、便携式存储设备、火线设备、通用串行总线(USB)设备、扫描仪、以及其他输入/输出设备。通常,在PCIe常用语中,诸如设备,被称为端点。虽然并未具体示出,但设备125可包括用于支持传统或其他版本PCI设备的PCIe到PCI/PCI-X桥接器。PCIe中的端点设备通常被分类成传统、PCIe、或根联合体集成端点。

图形加速器130也通过串行链路132耦合到控制器中枢115。在一个实施例中,图形加速器130耦合到MCH,MCH耦合到ICH。交换机120以及相应的I/O设备125随后耦合到ICH。I/O模块131和118也用于实现分层协议栈,以用于在图形加速器130与控制器中枢115之间通信。类似于以上的MCH讨论,图形控制器或图形加速器130本身可集成在处理器105中。

转向图2,示出了分层协议栈的实施例。分层协议栈200包括任何形式的分层通信栈,如快速路径互连(QPI)栈、PCIe栈、下一代高性能计算互连栈、或其他分层栈。虽然紧接着以下参考图1-4的讨论与PCIe栈有关,但相同的概念可应用于其它互连栈。在一个示例中,协议栈200是包括事务层205、链路层210、以及物理层220的PCIe协议栈。接口,诸如图1中的接口117、118、121、122、126、以及331,可被表示为通信协议栈200。表示为通信协议栈也可被称为实现/包括协议栈的模块或接口。

PCI快速(PCI Express)使用分组在各组件之间传达信息。分组被形成在事务层205和数据链路层210中以将信息从发送组件携带至接收组件。随着发送的分组流过其它层,它们被扩充以具有在那些层处理分组所必需的附加信息。在接收侧,逆过程发生并且分组从其物理层220表示转变为数据链路层210表示,并最终(对于事务层分组)转变为可由接收设备的事务层205处理的形式。

事务层

在一个实施例中,事务层205用于提供设备的处理核与互连架构(如数据链路层210和物理层220)之间的接口。就此,事务层205的主要责任是对分组(即,事务层分组,或即TLP)的组装和分解。事务层205通常管理TLP的基于信用的流控制。PCIe实现拆分事务,即请求和响应由时间分开的事务,从而允许链路在目标设备收集响应的数据时携带其他话务。

另外,PCIe利用基于信用的流控制。在这一方案中,设备在事务层205中广告各接收缓冲区中的每一个的初始信用量。在该链路的相对端的外部设备,如图1中的控制器中枢115,对每一TLP所消耗的信用的数量进行计数。如果事务没有超出信用限制,则该事务可被传送。在接收到响应后,信用量恢复。信用方案的优点是信用返回的等待时间不影响性能,假定没有遇到信用限制的话。

在一个实施例中,四个事务地址空间包括配置地址空间、存储器地址空间、输入/输出地址空间、以及消息地址空间。存储器空间事务包括向存储器映射的位置/从存储器映射的位置转移数据的读请求和写请求中的一个或超过一个。在一个实施例中,存储器空间事务能够使用两个不同的地址格式,例如短地址格式(如32位地址)或长地址格式(如64位地址)。配置空间事务被用于访问PCIe设备的配置空间。到配置空间的事务包括读请求和写请求。消息空间事务(或即,简单地,消息)被定义为支持PCIe代理之间的带内通信。

因此,在一个实施例中,事务层205组装分组头部/净荷206。当前分组头部/净荷的格式可在PCIe规范网站处的PCIe规范中找到。

快速参考图3,示出了PCIe事务描述符的实施例。在一个实施例中,事务描述符300是用于携带事务信息的机制。就此,事务描述符300支持系统中事务的标识。其他可能用途包括跟踪默认事务排序的修改和事务与信道的关联。

事务描述符300包括全局标识符字段302、属性字段304以及信道标识符字段306。在所示示例中,全局标识符字段302被示为包括局部事务标识符字段308和源标识符字段310。在一个实施例中,全局事务标识符302对所有未完成请求而言是唯一的。

根据一个实现,局部事务标识符字段308是由发出请求的代理所生成的字段,并且它对于需要对该发出请求的代理来完成的所有未完成的请求而言是唯一的。此外,在该示例中,源标识符310唯一地标识PCIe分层结构内的请求者代理。因此,与源ID 310一起,局部事务标识符308字段提供事务在分层结构域内的全局标识。

属性字段304指定事务的特性和关系。就此,属性字段304潜在地被用来提供允许修改事务的默认处理的附加信息。在一个实施例中,属性字段304包括优先级字段312、保留字段314、排序字段316以及无监视字段318。在此,优先级子字段312可由发起者修改以向事务分配优先级。保留属性字段314被保留以供将来使用或供应商定义的用途。使用优先级或安全属性的可能的使用模型可以使用该保留属性字段来实现。

在该示例中,排序属性字段316被用来提供传达可修改默认排序规则的排序的类型的可任选信息。根据一个示例实现,排序属性“0”表示要应用默认排序规则,其中排序属性“1”表示松散的排序,其中写可在同一方向上传递各个写,并且读完成可以在同一方向上传递各个写。监听属性字段318被用来确定事务是否被监听。如图所示,信道ID字段306标识事务与之相关联的信道。

链路层

链路层210(也被称为数据链路层210)担当事务层205与物理层220之间的中间级。在一个实施例中,数据链路层210的责任是提供用于在链路的两个组件之间交换事务层分组(TLP)的可靠机制。数据链路层210的一侧接受事务层205所组装的TLP,应用分组序列标识符211(即标识号或分组号),计算并应用错误检测码(即CRC212),并将经修改的TLP提供给物理层220以供跨物理层传输给外部设备。

物理层

在一个实施例中,物理层220包括用于将分组物理地传送给外部设备的逻辑子块221和电气子块222。在此,逻辑子块221负责物理层221的“数字”功能。就此,逻辑子块包括用于准备外出信息以供物理子块222传输的传送部分以及用于在将接收到的信息传递给链路层210之前标识并准备该接收到的信息的接收机部分。

物理块222包括发射机和接收机。发射机由逻辑子块221来提供码元,发射机将这些码元串行化并向外部设备传送。来自外部设备的串行化的码元被提供给接收机,并且接收机将接收到的信号转换成位流。位流被解串行化并被提供给逻辑子块221。在一个实施例中,采用8b/10b传输码,其中10位码元被传送/接收。在此,特殊码元被用于将分组分成各个帧223。另外,在一个示例中,接收机还提供从传入串行流恢复的码元时钟。

如上所述,虽然参考PCIe协议栈的特定实施例讨论了事务层205、链路层210以及物理层220,但分层协议栈不限于此。实际上,可包括/实现任何分层协议。作为示例,被表示为分层协议的端口/接口包括:(1)用于组装分组的第一层,即事务层;用于将分组序列化的第二层,即链路层;以及用于传送分组的第三层,即物理层。作为特定示例,利用通用标准接口(CSI)分层协议。

接着参考图4,示出了PCIe串行点对点结构的实施例。虽然示出了PCIe串行点对点链路的实施例,但串行点对点链路不限于此,因为它包括用于传送串行数据的任何传输路径。在所示实施例中,基本PCIe链路包括两个低电压的、差分地驱动的信号对:传送对406/411和接收对412/407。因此,设备405包括用于将数据传送给设备410的传输逻辑406和用于从设备410接收数据的接收逻辑407。换言之,两个传送路径(即,路径416和417)和两个接收路径(即,路径418和419)被包括在PCIe链路中。

传输路径可以指用于传送数据的任何路径,如传输线、铜线、光学线路、无线通信信道、红外通信链路、或其他通信路径。诸如设备405和设备410等两个设备之间的连接被称为链路,如链路415。链路可以支持多条通道(lane)——每条通道表示一组差分信号对(一个对用于传输,一个对用于接收)。为了扩展带宽,链路可以聚集表示为xN的多条通道,其中N是任何所支持的链路宽度,如1、2、4、8、12、16、32、64或更宽。

差分对可以指用于传送差分信号的两条传输路径,如路线416和417。作为示例,在路线416从低电平转换为高电平(即上升沿)时,路线417从高逻辑电平驱动到低逻辑电平(即,下降沿)。差分信号可能示出更好的电气特性,如更好的信号完整性,即交叉耦合、电压过冲/下冲、振铃,等等。这样允许更好的定时窗口,从而实现更快的传输频率。

高速信道

对PCIe I/O规范的修改是PCIe修订4.0(或PCIe 4.0)。在16GT/s的位速率下,PCIe 4.0旨在使互连性能带宽相比于PCIe 3.0规范翻番,同时保留与软件和机械接口的兼容性。相比于PCIe的先前版本提高性能带宽可提供与来自各种正在开发的应用的提高带宽需求一致的性能缩放,同时还旨在提供平台级别的低成本、低功率和最小扰动;广泛采用PCIe架构的主要因素之一是其对于高容量制造能力和材料(诸如低成本电路板、低成本连接器、等等)的敏感性。

16GT/s位速率旨在提供性能、可制造性、成本、功率和兼容性之间的最优折衷。已执行可行性分析以推荐支持用于PCIe 4.0的16GT/s位速率的设备和信道的特性。PCI-SIG分析覆盖多种布局。例如,分析已经确定铜上的16GT/s在大约PCIe 3.0功率水平下在技术上是可行的,将会使带宽相比于PCIe 3.0规范翻倍。这里,16GT/s互连可以在主流硅工艺技术中制造并利用现有的低成本材料和基础设施来部署,同时保持与PCIe架构的先前版本的兼容性。

更高的数据率串行I/O(例如PCIe 4.0下的16GT/S)将耗散显著功率和提高的电路复杂性,这可能导致增加的硅(Si)使用面积。这些考虑因素进一步有可能限制PCIe 4.0(以及其它这样的高速互连架构)向CPU和利用更大通道计数的系统中的集成。例如,在一些示例实现中,对互连长度、高速架构(诸如PCIe 4.0)中采用的连接器数量施加了限制。例如,在规范级别定义了这样的限制。在一个示例中,互连信道长度限于一(1)个连接器和十二(12)英寸或更小。

对互连接器信道施加限制可限制它们对一些系统的应用。例如,在服务器互连应用中,平台互连有时候会高达二十(20)英寸或更长,并具有两个连接器。除了其它可能的示例之外,在架构将互连信道限制于最大12英寸长度和单个连接器的场合,将包括单独的中继器芯片或其它附加设备以组合两个12英寸信道并容许服务器系统中的设备之间的距离。

在一些实现中,可提供被配置成符合PCIe 4.0和其它互连的互连链路,从而允许两个连接器信道大于或等于二十英寸长度,同时仍支持16GT/s数据通信速度。例如,电路和互连可被共同优化,使得能从更长的互连信道行程中省去中继器和其它设备。这可辅助减少制造成本、减小I/O等待时间、并将更高带宽速度架构的可用性扩展至附加的应用。例如,中继器芯片可包括发射机、接收机、时钟发生(例如锁相环PLL)、时钟恢复、以及相关联的逻辑功能。此类组件会占用宝贵的板区域。此外,对于x16PCIe4.0互连,除其它可能的缺点之外,每个中继器会耗散额外的功率并对系统制造引入附加的成本。例如,中继器还会引入附加的I/O等待时间。

图5示出示例两连接器信道配置。例如,信道500可包括多个区段,除其它元件之外,诸如(例如CPU的)插槽、主板、附加卡、立板上的区段,信道链路可跨越这些元件以连接系统中的两个设备(例如505、510)。信道区段可各自具有相应的长度,在本示例中,长度为Ll=l英寸、L2=10.5英寸、L3=0.5英寸、L4=4英寸、L5=3英寸,总计信道500的总长度为20英寸。该信道可利用相应的连接器515、520(在每个封装中)连接至每个设备505、510。

使用传统技术,诸如图5所示配置之类的配置可在该链路上产生负的裕度。在一个示例中,可提供支持16GT/s位速率的20英寸的两连接器互连(例如500),该两连接器互连使连接器桩通孔效应最小、使SPU插槽效应最小、充分利用改进的低损耗的个人计算机板(PCB)增强,并除了可能的其它特征之外,还提供芯片上接收机前端增益的提高以在该链路上实现正增益。

连接器可包括用于在层之间建立电气连接的一个或超过一个通孔。例如,可使用通孔以在电路板或组件的层之间传送信号或功率。在高速系统中,通孔的部分剩余在连接器、芯片或板上,即未在利用该通孔的点对点电气链路内使用的那部分。转到图6,示出了电路板或其它组件的横截面的简化表示600。该组件可包括一个或超过一个桩通孔605、610。比如,通过镀通孔(PTH)技术,通孔可在印刷电路板上的层之间建立电气连接。例如,通孔可将连接器的引脚连接至内部信号层(例如迹线)。例如,在图6的示例中,可使用PTH通孔的部分(例如615、620)实现链路的一部分,以将该链路的一部分连接至另一部分(例如将沿该组件的层630行进的迹线(例如625)连接至该链路(或信道)上的另一组件、另一通孔等等)。该通孔的余下部分(例如635)可被视为桩。在利用通孔的高速连接中,通孔桩635会引起谐振效应(例如谐振频率无效),导致信道(例如通道)的信号贬损。相应地,在一些实现中,诸如650处所示,通孔桩可被反钻以减轻此类效应。反钻可去除通孔的桩部分,该桩部分是这些不利的电磁效应的源头。在一些情况下,可将反钻实现为制造后的钻孔过程,其中经过反钻的孔的直径大于原始镀通孔(PTH)的直径。

例如,可通过反钻、U形转弯通孔、以及其它解决方案来去除或减小用于20英寸16GT/s通道的两个连接器中的通孔桩。在反钻的情况下,可基于连接器类型是反钻的良好候选来选择连接器的类型。例如,一些连接器在被反钻时会机械地受损而失效。其它连接器类型会更合适,比如表面安装连接器。

通过反钻,除了改善连接器的电气质量之外,还可改善CPU插槽的电气质量,以允许该插槽上的20英寸16GT/s信道。例如,与使用通孔并通过板连接和布线的20英寸16GT/s信道通道相对应的CPU插槽或其它设备的每个引脚可被反钻。通过将更接近引脚的层预留给供该信道利用的迹线,还可减小这些更长的两连接器高速信道的插槽桩长度。通过经由板的这些层来路由这些通道,这样可允许限制(通孔的)插槽桩长度。

最小化CPU插槽效应可包括设计板的引脚分布和分支布局,使得给予20英寸16GT/s信道的通道以布局优先级。例如,可设计信道以在多个层上布线,使得对于连接至该20英寸16GT/s信道的CPU的每个引脚都可使用反钻。替代地(或附加地),可将布线设计成使得该20英寸16GT/s信道利用允许插槽桩的长度受限制的层。

图7是板的横截面的简化表示,其中使用示例两个连接器链路(诸如将20英寸16GT/s信道具体化的链路)通过该板来连接两个设备705、710。在该示例中,可将设备705、710的引脚的分支设计成使得可应用反钻,而不阻挡引脚区域中的其它分支通道。例如,可将内部引脚(例如715)设计成在板的下层上布线的外部引脚(例如720)的分支之上的层上分支。此外,可将引脚设计成被放置以使得通孔桩将要被钻掉的任何引脚(例如20英寸16GT/s信道的引脚)不被定位在功率通孔附近,因为反钻(例如725a-f)会冒险对电源面和形状打孔,从而可能导致低效的电源输送网络。此外,除了其它规则和示例之外,可基于在反钻之后会导致接地面的打孔来放置接地引脚。

可在20英寸两连接器信道上包括附加的特征,以允许位速率满足或超过16GT/s,同时在该链路上仍实现正增益。例如,可实现低损耗PC板,诸如在4GHz下具有小于或基本等于0.48dB/英寸的迹线差分插入损耗的板。

除了减轻12英寸的两连接器信道的连接器和插槽处的桩效应并使用低损耗板来提供信道之外,在一些情况下,通过在接收机前端中进一步提供附加增益和/或连续时间线性均衡器(CTLE)中提供附加调峰,可实现至少20英寸的信道上的16GT/s的速度。在一些示例中,除了其它可能的示例之外,接收机前端可包括信号数据路径中的组合的模拟电路,例如CTLE、AGC(自动增益控制)、DFE(决策反馈均衡器)和/或数据采样器(也称为裁剪器)。例如,在一个实现中,在接收机前端和/或CTLE处增加总计大约6dB增益(例如高于PCIe 4.0的基准)可帮助实现20英寸16GT/s的信道。除其它示例之外,例如,通过增加单个增益级,在功率和电路复杂度适度增加的情况下,能实现适度的增益量(例如大约6dB)。此外,在一些系统中,该信道上的增益是可调的或者以其它方式可配置。除其它示例之外,例如,对于利用16GT/s速度的应用,信道可以可编程地调谐,而对于利用更低速度的应用,可关闭增益。

可靠性、可用性、以及可服务性(RAS)

在一些实现中,诸如PCIe之类的互连架构可包括对系统中的可靠性、可用性以及可服务性(RAS)的增强。虽然该方面可在所有数据率下适用,但一些架构可应用与更高数据率相关的特定编码方案。例如,PCIe 4.0(以及PCIe修订3.0)对于超过8GT/s的数据率采用128b/130b编码方案。除了其它示例之外,在128b/130b方案中,为每个SKP(或“skip”)有序集(SKP OS)提供每个通道的奇偶校验,以标识该链路中的哪些通道已经失效,以在降低的链路宽度下执行预测分析和工作(在适当情况下)。通道奇偶校验可以是标识链路的特定通道上的错误的有效工具;然而,在一些实例中,当链路主要空闲时(例如在链路上具有逻辑空闲分帧令牌(IDL)),可能存在暴露,导致因为分帧令牌(例如IDL)中的错误会导致链路恢复而消除直到那时的奇偶校验信息,所以通过该奇偶校验位提供的检测能力被破坏。附加的盲点会存在于传统架构的错误检测机制中,会导致错误被低估。例如,除了其它缺点之外,互连架构可能不能完全检测或完全无法检测与检测到的分帧令牌错误相关的出错通道。

在一些架构中,可提供寄存器来标识在链路上检测或预期的错误以及出现错误的特定通道(在一些情况下)。例如,如图8所示,PCIe可提供与诸如辅助PCIe扩展能力结构之类的能力结构相关的通道错误状态(LES)寄存器805。除LES寄存器805之外,这样的能力结构800还可包括辅助PCIe扩展能力头部810、链路控制3寄存器815、以及均衡控制寄存器820。在一些实现中,LES寄存器可包括32位向量,其中每个位对应于链路中的通道(例如通过通道号来标识)并指示该通道是否检测到错误。PCIe中定义了错误的集合,它可导致在LES寄存器内报告错误事件。例如,除了其它示例之外,如上所介绍,可通过SKP OS中包括的数据奇偶校验位来实现数据奇偶校验,该数据奇偶校验位指示在最后一个SKP OS(或数据流(SDS)有序集的开始)之后加扰之后传输的所有数据块的净荷中是否检测到存在偶数奇偶校验值。但是,可对于每个通道独立地计算数据奇偶校验。接收机和发射机设备使用相同的技术来计算奇偶校验值,并且接收机将计算出的每个通道的校验值与发射机计算的校验值(如奇偶校验位所标识)作比较,以标识可能的错误。例如,如果计算出和接收到的值不匹配,则可设置LES寄存器中的该位(例如对应于检测到不匹配的通道号)。

如上所讨论并且如图9的简化表示900中所示,可在链路的两个或超过两个通道中传输数据。例如,如示例PCIe中所示,数据传输的基本实体可以是码元,诸如实现为8位数据字符的码元。数据块的净荷是被定义为数据流的码元流,可包括分帧令牌、事务层分组(TLP)、数据链路层分组(DLLP)等等。可将该数据流的每个码元放置在链路的单个通道上以用于传输,其中码元流在该链路的所有通道上成带状并且跨越块边界。此外,在一些实例中,物理层可使用每个通道的块码。每个块可包括两位同步头部和净荷。在PCIe中,定义了两个有效的同步头部编码:10b和01b,它们定义了该块包含的净荷的类型。例如,同步头部10b可指示数据块,同步头部01b可指示有序集块。作为示例,图9示出了四个通道即通道0、1、2和3上的数据流的传输。多通道链路的所有通道利用相同的同步头部同时传输多个块。位传输顺序可从同步头部(被表示为“H1H0”并在通道上被放置为“H0-H1”)开始,然后是被表示为“S7-S6-S5-S4-S3-S2-S1-S0”并放置在通道上以“S0”开始并以“S7”结束的第一码元。

PCIe提供选项以供接收机向LES寄存器报告与数据流中的不匹配或无效的同步头部相对应的错误。例如,除了其它示例之外,标识通道中的一个或超过一个通道(例如在数据流中的前两个UI期间)包括具有无效值(例如00b、11b)的同步头部可被标识为通道上的错误,该错误可被报告给LES寄存器。

转到图10,示出了示例分帧令牌1005、1010、1015、1020、1025的表示。分帧令牌(或“令牌”)可以是物理层数据封包,其指定或暗示与该令牌相关联的码元的数量,并由此标识下一分帧令牌的位置。数据流的分帧令牌可位于数据流的第一数据块的第一通道(例如通道0)的第一码元(码元0)中。在一个示例中,PCIe定义五个分帧令牌,包括TLP(STP)令牌1005的开始、数据流结束(EDS)令牌1010、结束坏(EDB)令牌1015、DLLP开始(SDP)令牌1020、以及逻辑空闲(IDL)令牌1025。STP令牌1005可以是四(4)个码元长度,其后跟随着数据链路层信息。示例EDS令牌1010可以是四(4)个码元长度,并指示下一块将是有序集块。EDB令牌1015也可以是四(4)个码元长度,并且确认TLP是“坏”的并使之无效。EDB总是会跟随在TLP数据之后。此外,SDP令牌1020会更短,长度为两(2)个码元,并且之后会跟随有DLLP信息。最终,在该示例中,IDL令牌1025可以是单个码元,并且在该链路上没有TLP、DLLP或其它分帧令牌传输时被传输。

图11示出表示1100,示出经由示例x8链路发送的示例数据,示出了根据诸如PCIe之类的特定互连架构定义的数据流的特征。在该示例中,该数据可包括SKP有序集的发送。在该示例中,该流可从发送同步头部H1H0=10b开始,表明数据块。相应地,可将STP分帧令牌发送作为通道0-3上的第一码元0,以指示TLP流的开始。链路循环冗余校验(LCRC)可跟随在TLP数据之后,SDP头部可跟随在LCRC之后以指示将发送DLLP数据(例如在码元3-4)。还可与DLLP数据相关地提供循环冗余校验(CRC)数据。

在图11的示例中,对于一系列UI,由于没有数据在链路上被传输,所以发送逻辑空闲(IDL)令牌。然后可发送EDS令牌以指示在多个通道上向有序集数据的过渡。例如,可发送另一同步头部(例如在1105),该同步头部被编码为“01b”以指示接下来的数据块将是有序集数据块。在该特定示例中,所发送的有序集是SKP有序集(OS)。如上所述,在一些实现中,SKP OS可包括奇偶校验位,该奇偶校验位指示该链路的每个通道(例如通道0-7)的奇偶校验状况。SKP OS可进一步具有接收机可标识的已定义布局。例如,在PCIe中的128b/130b编码的情况下,SKP OS可包括十六个码元的基础。可通过端口添加或去除四个SKP码元的组,相应地,SKP OS可以是8个、12个、16个、20个或24个码元、等等。此外,除了其它示例之外,如图11所示,可在通道上提供SKP END码元,以指示要在通道上传输的SKP OS的结尾的位置和下一块同步头部的位置。

在一些示例实现中,可提供逻辑以用于检测互连架构中的附加通道错误。系统中的软件可监测诸如LES寄存器之类的寄存器,以在一段时间里逐个通道地跟踪错误。单个通道错误可能不指示存在错误的问题。然而,随着错误以统计上显著的频率在链路的一个或超过一个特定通道上出现,系统软件可确定对于特定通道存在潜在的问题。此外,除了其它示例之外,在一些实现中,可采取一些修正措施以避免在可能错误的通道上传输至少一些系统数据,比如通过重新配置链路、产生票券以对该链路进行更密切的检查。一些错误会难以逐个通道地检测。虽然已经提供一些机制来检测和报告链路上的错误的部分(例如基于奇偶校验或不正确的同步头部),但也可充分利用其它架构特征和规则来标识通道专用规则的附加实例。除了其它示例和考虑之外,还可向寄存器报告这些错误以与传统通道错误报告一起考虑,以构造链路的各个通道的健康状况的更完整图像。

在第一示例中,诸如在上述PCIe的示例中,如果通道接收具有在前紧邻的无效(不匹配、不正确或其它非预期的)EDS令牌的有序集块,则可推测在检测到无效EDS令牌的通道上有错误。此外,比如通过在PCIe LES寄存器中设置相应的位,可将该通道上的与无效EDS令牌相关的错误报告给错误寄存器。

在另一示例中,可充分利用特定有序集的预定格式来标识附加的通道错误。例如,SKP OS可包括明确定义的SKP码元,直到SKP_END码元被传输以标识有序集的结尾。如果在特定通道上在有序集的预期SKP码元内(并且在SKP_END码元之前)标识了无效或错误的SKP码元,则错误SKP码元的标识可用于触发在诸如LES寄存器之类的错误寄存器内对该特定通道的错误的报告。附加地,已定义的特定OS码元的时序还可用于标识已在通道上接收非预期的码元。除了可能的其它示例之外,例如,继续SKP有序集的示例,因为SKP OS中的码元的数量是四的倍数,未在该链路的一个或超过一个特定通道上在码元8、12、16、20或24中接收SKP_END会导致在错误寄存器中对于特定通道设置相应位。

在一些实现中,各种各样的分帧错误会出现,并且可检测到这些错误。例如,当处理预期成为分帧令牌的码元时,接收与分帧令牌的定义不匹配的码元或码元序列会成为分帧错误。此外,一些分帧令牌可被定义成跟随其它类型的数据,并且特定分帧令牌的非预期的到达(或延迟)会成为分帧错误。除了许多其它示例之外,作为一个示例,可规定紧接着TLP之后接收EDB令牌,并且在任何其它时间(不是紧接着TLP之后)接收EDB令牌会触发分帧错误,诸如在PCIe的规范中定义的分帧错误。虽然可在系统内标识分帧错误,但在一些实现中,并不逐个通道地确定分帧错误或将分帧错误映射至链路的特定通道。实际上,除了其它示例之外,在一些实例中,分帧错误可导致发起链路恢复,当该链路恢复擦掉奇偶校验值计算和报告时(例如通过在SKP OS中发送的奇偶校验位),进一步使通道错误检测复杂化。

在一些实现中,(例如在接收机设备处)逻辑PHY中包括的逻辑可进一步根据分帧令牌来标识失效的通道。在第一示例中,可指定分帧令牌的码元(诸如图10的示例中所示),并且可标识在偏离预期码元值的码元之一中检测到错误,以及标识出错误令牌码元的通道。例如,可标识分帧令牌的首个码元,并且如果首个码元与对于PHY定义的分帧令牌的集合中的任一个的首个码元不匹配,则可抛出错误。例如,可将该错误记录在LES寄存器中。在PCIe分帧令牌的示例中,如果接收到的分帧令牌的首个码元不匹配对于PCIe IDL、SDP、STP、EDB、或EDS定义的首个码元,则可对于错误的首个分帧令牌码元出现的通道确定错误,并且可将该错误记录在用于所标识通道的通道错误注册表中。

其次,在另一示例中,当不传输TLP、DLLP或其它分帧令牌时,可指定IDL分帧令牌(虽然长度仅为一个码元)在链路的所有通道上传输。相应地,当第一IDL出现在具有四个或超过四个通道的链路的通道上时,可预期IDL的实例也将出现在通道n+1、n+2和n+3上(其中第一通道是n(n modulo 4=0))。在传输IDL令牌之后,可指定下一STP或SDP令牌的首个码元以在未来码元时间的通道0中传输。相应地,在IDL令牌的使用和预期使用存在这些限制的前提下,如果IDL没有如预期那样被重复或第一IDL出现在不正确的通道上,则可标识未重复的IDL或其它错误码元出现的通道,并记录在诸如LES寄存器之类的错误寄存器中作为该特定通道的错误。

在又一实例中,可将EDB令牌定义为某个长度,诸如PCIe中的四个码元长度。因此,标识首个EDB码元但然后未在所定义长度中包括的紧随其后的码元中标识附加的EDB码元,会导致分帧错误。例如,在PCIe中,在通道n(n modulo 4=0)上在紧随TLP之后检测到分帧令牌EDB、但未在通道n+1、n+2或n+3中的任一个上检测到该分帧令牌EDB的情况下,可将错误报告给用于预期有效EDB码元未能出现的任一通道(n+1、n+2或n+3)的错误寄存器。此外,可定义EDB令牌的首个码元被放置在紧随TLP流之后,这意味着在前的分帧令牌STP将是该链路上出现的最后一个分帧令牌。相应地,除其它示例之外,当EDB令牌的首个码元出现在通道n上、但最近的前一分帧令牌不是STP令牌,则可标识通道n上的错误并向错误寄存器报告。

与EDB令牌分帧错误的示例相似,分帧错误也可基于其它分帧令牌的与长度、格式和放置的偏离。例如,在另一示例中,在通道n处检测到SDP的首个码元(这与有效SDP令牌的放置规则一致,例如在DLLP业务量之前)、但通道n+1与SDP令牌的预期第二码元不匹配的情况下,逻辑PHY逻辑可标识通道n+1上的错误并将该错误记录在错误寄存器中。

图12是示出扩展检测和将通道错误(例如1205、1210、1215、1220、1225、1230、1235、1240)记录在与该链路相对应的诸如PCIe LES寄存器之类的示例错误寄存器1250中的简化框图。例如,除了报告同步头部通道错误1205、奇偶校验位错误1210之外,可检测到的附加错误包括有序集通道错误,诸如没有先前EDS令牌错误1215和SKP OS错误1220的OS块(诸如以上示例中描述)。可报告别的错误,除了充分利用架构内对于有序集、数据块以及分帧令牌定义的规则的其它示例之外,别的错误例如包括:分帧令牌通道错误,诸如首个码元分帧令牌错误1225;IDL分帧令牌错误1230(例如,与在通道n上的初始IDL之后正确地重复IDL相关);EDB分帧令牌错误1235(例如,涉及例如在之前讨论中勾画的EDB令牌码元放置的错误);以及SDP分帧令牌错误1240(例如涉及SDP令牌的第二码元中检测到的错误)。

如上所述,在一些情况下,错误或其它事件迫使链路恢复会损害通道错误检测机制,诸如奇偶校验决定。如上所述,接收和发送设备可确定数据流或其它流的奇偶校验值,并且可将由发射机确定的奇偶校验信息传达给接收机,以将接收到的奇偶校验信息与由接收机对于相同的数据流确定的相应奇偶校验信息(对于该通道)进行比较。可周期性地发送奇偶校验信息。例如,可发送包括在SKP OS码元中的一个或超过一个奇偶校验位的SKP OS,这些SKP OS码元指示由发射机对于每个通道确定的奇偶校验值。然而,在一些传统系统中,在将之前确定的奇偶校验信息传达给接收机之前,链路恢复或其它事件会导致奇偶校验信息被擦除和/或重启。相应地,在此类实例中,基于奇偶校验信息对于特定通道确定的错误也会丢失并保持未报告,从而损害对于该特定通道的错误报告的准确度。

在一个实施例中,可通过迫使链路恢复自动被包括报告用于要恢复的链路中的每个通道的奇偶校验信息的数据的SKP OS或其它数据集抢先,来保留奇偶校验信息。例如,可重新定义链路恢复协议,使得响应于分帧错误或触发链路恢复的其它事件发送SKP OS(包括奇偶校验位)。由此,SKP OS可携带由发射机确定的直到链路恢复被触发时的奇偶校验信息,从而允许接收机基于该奇偶校验信息来标识潜在的通道错误。

在一个示例中,可通过在链路离开活动(例如L0)状态以进入恢复之前发送SKP OS,以在恢复之前发送奇偶校验信息。例如,在进入恢复之前,每个发射机可发送SKP OS(例如根据预定义的间隙、诸如SKP OS之间的最大间隙)以及随后的具有EDS令牌的附加数据块。这可确保接收机接收到它已接收的先前数据块的奇偶校验值,包括可能已经引起分帧错误的一个或超过一个数据块。如果奇偶校验位比较指示错误,则接收机可进一步将该错误记录在适当的LES中。

在另一示例中,不是在恢复或其它事件之前过早地转储奇偶校验信息(例如试图确保在奇偶校验信息丢失之前传达该奇偶校验信息),而是扩展诸如SKP OS奇偶校验值之类的奇偶校验信息,以覆盖在该链路保持活动(例如PCIe中的“LinkUp=lb”)的同时跨多个数据流的奇偶校验值。此外,还可对于链路的每个通道持续地保持奇偶校验信息,使得奇偶校验信息经过恢复事件仍保持。在传统链路恢复将导致之前数据块(例如被恢复所中断)的奇偶校验信息丢失的情况下,持续存储奇偶校验信息可允许奇偶校验值经过恢复之后仍保持并在恢复之后传达(例如在恢复之后的首个SKP OS中)。此外,除了其它示例之外,在一些情况下,还可确定在链路恢复之后(并在下一SKP OS之前)发送的新数据块的奇偶校验信息,并在一些情况下将其加至恢复之前保留的奇偶校验信息,并且例如可在下一SKP OS中传达该组合的奇偶校验信息。

应当理解,上述示例是非限制性的示例,并且仅被提供用于说明某些原理和特征。此外,一些系统可包括以上描述的特征和组件中的两个或超过两个的各种组合。作为示例,系统可包括以上描述的示例错误检测特征的组合,诸如以上描述的通道错误检测功能。

转到图13A-13D,示出了示例流程图1300a-d,示出了用于检测链路的通道上的错误的示例技术。例如,在图13A中,可在1305在包括多个通道的链路上接收数据。该数据可包括码元,并且可监测这些码元以在1310确定这些码元中的一个或超过一个码元是错误的码元。除了其它示例之外,错误的码元可包括分帧令牌(例如EDB、EDS、STP、IDL、SDP等等)、有序集(例如SKP OS等等)或其它定义序列中的具有不正确值、处于不正确或非预期的顺序、在不正确或非预期的通道上传输、或不属于特定定义序列的码元。除了其它示例之外,例如,可在1315标识发送错误码元的通道,并在1320基于错误码元在通道错误寄存器中报告所标识通道的通道错误。

转到图13B,可在1325在包括多个通道的链路上传输数据。可在1330对于该链路上的每个通道保持奇偶校验信息。响应于在1335标识该链路将退出活动状态(比如,与链路的恢复相关),可在1340在从活动链路状态退出之前发送奇偶校验信息的指示。在一个示例中,可在发送至接收方的诸如PCIe SKP有序集之类的有序集的奇偶校验位中包括奇偶校验信息的指示。可(例如,由特定信息的接收方)使用该奇偶校验信息的指示,以将该奇偶校验信息与接收方接收的奇偶校验信息作比较。可将奇偶校验信息中的不匹配标识为包含与不匹配的奇偶校验信息相对应的通道的通道错误的证据。

在图13C的示例中,可在1345在链路的通道上传输数据,并在1350基于在每个通道上标识的传输数据,确定对于每个通道的奇偶校验信息。链路的恢复可出现,并且在1355,奇偶校验信息经过该恢复仍可保持。在恢复之后,可在1370传达每个通道的奇偶校验信息的指示,并且该指示可基于经过链路恢复保持的奇偶校验信息。可选地,可在1360在链路恢复之后在该链路上传达附加的数据,并且基于恢复之后的该数据确定对于每个通道的奇偶校验信息。可在1365基于每个通道的恢复前和恢复后的数据来更新每个通道的奇偶校验信息,并且在1370传达的奇偶校验信息的指示可指示经组合的该奇偶校验信息。

与图13C的示例相对应,在图13D中,可在1375在链路上接收第一数据,并且可在1380基于在通道上接收的数据确定对于每个通道的第一奇偶校验信息。在1385,该奇偶校验信息在经过接收第一数据之后链路的恢复仍保持。可在1398在链路恢复之后接收第二奇偶校验数据,诸如在接收的SKP有序集中标识的奇偶校验数据。可将第二奇偶校验数据与经过链路恢复(以及在之后)保持的奇偶校验信息进行比较。除了其它示例之外,在一些情况下,可在1394更新保持的奇偶校验信息,以计入在链路恢复之后基于在1390在通道上接收的第二数据确定的对于通道的奇偶校验信息(例如,与相应的发射机基于该恢复后数据的传输对奇偶校验信息的更新相称)。

应当注意,虽然在PCIe和PCIe规范的特定修订的背景内描述了上述原理和示例中的多数,本申请中描述的原理、解决方案以及特征可等同适用于其它协议和系统。例如,可使用其它协议基于模拟码元、数据流、令牌、以及针对使用、放置规定的规则,并在经由其它链路传输的数据之内格式化此类结构,来检测其它链路中的模拟通道错误。此外,可使用替代的机制和结构(例如在PCIe LES寄存器或SKP OS之外)在系统内提供通道错误检测和报告功能。此外,除了其它示例之外,可在系统内应用以上解决方案的组合,包括对链路的逻辑和物理增强的组合以及本申请描述的相应逻辑。

注意,如上所述,上述装置、方法以及系统可被实现在任何电子设备和系统中。作为具体说明,以下附图提供了用于利用在此描述的发明的示例性系统。在用更多细节描述以下系统时,公开、描述以及重访了来自以上讨论的多个不同的互连。并且如显而易见的,上述进步可适用于这些互连、构造、或架构中的任一个。

参考图14,描绘了包括多核处理器的计算系统的框图的实施例。处理器1400包括任何处理器或处理设备,诸如,微处理器、嵌入式处理器、数字信号处理器(DSP)、网络处理器、手持式处理器、应用处理器、协处理器、芯片上系统(SOC)或用于执行代码的其他设备。在一个实施例中,处理器1400包括至少两个核——核1401和1402,这两个核可包括不对称核或对称核(所示实施例)。然而,处理器1400可包括可以是对称的或非对称的任何数量的处理元件。

在一个实施例中,处理元件指的是用于支持软件线程的硬件或逻辑。硬件处理元件的示例包括:线程单元、线程槽、线程、进程单元、上下文、上下文单元、逻辑处理器、硬件线程、核和/或能够保持处理器的诸如执行状态或架构状态之类的状态的任何其他元件。换言之,在一个实施例中,处理元件指的是能够与诸如软件线程、操作系统、应用、或其他代码之类的代码独立地相关联的任何硬件。典型地,物理处理器(或处理器插槽)指的是集成电路,该集成电路潜在地包括任何数量的其它处理元件(诸如核或硬件线程)。

核通常指的是位于集成电路上的能够维持独立架构状态的逻辑,其中每个独立维持的架构状态与至少一些专用的执行资源相关联。与核相反,硬件线程通常指的是位于集成电路上的能够维持独立架构状态的任何逻辑,其中独立维持的架构状态共享对执行资源的访问。如所看到的那样,当某些资源是共享的而其他资源是专用于架构状态的时候,硬件线程与核的术语之间的界线交叠。但核和硬件线程常常被操作系统视为单个的逻辑处理器,其中,操作系统能够分别在每一个逻辑处理器上调度操作。

如图14所示的物理处理器1400包括两个核——核1401和1402。在此,核1401和1402被视为对称核,即这些核具有相同的配置、功能单元和/或逻辑。在另一实施例中,核1401包括无序处理器核,而核1402包括有序处理器核。然而,可从任何类型的核中分别选择核1401和1402,诸如原生核、软件管理的核、适于执行原生指令集架构(ISA)的核、适于执行经转换指令集架构(ISA)的核、共同设计的核或其它已知核。在异构核环境(即,非对称核)中,一些形式的转换(如二进制转换)可被用来在一个或这两个核上调度或执行代码。不过,为进一步讨论,以下将进一步详细描述在核1401中示出的功能单元,因为核1402中的单元以在所示实施例中的类似方式操作。

如所描绘的那样,核1401包括两个硬件线程1401a和1401b,它们也可被称为硬件线程槽1401a和1401b。因此,在一个实施例中,诸如操作系统之类的软件实体潜在地将处理器1400视为四个单独的处理器,即能够并发地执行四个软件线程的四个逻辑处理器或处理元件。如上文所暗指的那样,第一线程与架构状态寄存器1401a相关联,第二线程与架构状态寄存器1401b相关联,第三线程可与架构状态寄存器1402a相关联,并且第四线程可与架构状态寄存器1402b相关联。在此,如上所述,可将架构状态寄存器(1401a、1401b、1402a和1402b)中的每一个称为处理元件、线程槽或线程单元。如所示出的那样,架构状态寄存器1401a被复制在架构状态寄存器1401b中,因此能够为逻辑处理器1401a和逻辑处理器1401b存储单独的架构状态/上下文。在核1401中,也可复制用于线程1401a和1401b的其他较小资源,诸如,指令指针以及分配器和重命名块1430中的重命名逻辑。可通过分区来共享诸如重排序器/引退单元1435中的重排序缓冲器、ILTB 1420、加载/存储缓冲器和队列之类的一些资源。可潜在地完全共享诸如通用内部寄存器、页表基寄存器、低层级数据高速缓存和数据TLB 1415、执行单元1440和无序单元1435的多个部分之类的其他资源。

处理器1400通常包括其它资源,这些其它资源可被完全共享、通过分区共享、或由处理元件专用/专用于处理元件。在图14中,示出具有处理器的说明性逻辑单元/资源的纯示例性处理器的实施例。注意,处理器可包括或省略这些功能单元中的任何单元,并包括未描绘出的任何其他已知的功能单元、逻辑或固件。如所示出的那样,核1401包括简化的、代表性的无序(OOO)处理器核。但是,在不同实施例中,可利用有序处理器。OOO核包括用于预测要被执行/进行的分支的分支目标缓冲器1420以及用于存储指令的地址转换条目的指令转换缓冲器(I-TLB)1420。

核1401进一步包括耦合至取出单元1420的解码模块1425,用于解码取出的元素。在一个实施例中,取出逻辑包括分别与线程槽1401a、1401b相关联的单个的序列发生器。通常,核1401与第一ISA相关联,该第一ISA定义/指定在处理器1400上可执行的指令。作为第一ISA的部分的机器代码指令常包括引用/指定要被执行的指令或操作的指令的部分(被称为操作码)。解码逻辑1425包括从这些指令的操作码识别出这些指令并在流水线上传递经解码的指令以进行第一ISA所定义的处理的电路。例如,如下文更详细讨论地,在一个实施例中,解码器1425包括设计成或适合于识别诸如事务性指令之类的特定指令的逻辑。作为由解码器1425识别的结果,架构或核1401采取特定的、预定的动作以执行与适当指令相关联的任务。重要的是应注意,本文中所描述的任务、块、操作和方法中的任何一个可响应于单条或多条指令来执行;它们中的一些可以是新指令或旧指令。注意,在一个实施例中,解码器1426识别相同的ISA(或其子集)。或者,在异构核环境中,解码器1426识别第二ISA(第一ISA的子集或不同的ISA)。

在一个示例中,分配器和重命名器块1430包括用于预留资源的分配器,诸如,用于存储指令处理结果的寄存器组。然而,线程1401a和1401b潜在地能够进行无序执行,其中,分配器和重命名器块1430还保留其他资源(诸如,用于跟踪指令结果的重排序缓冲器)。单元1430还可包括寄存器重命名器,其用于将程序/指令引用寄存器重命名为处理器1400内部的其他寄存器。重排序/引退单元1435包括用于支持被无序执行的指令的无序执行和稍后的有序引退的、诸如上述的重排序缓冲器、加载缓冲器和存储缓冲器之类的组件。

在一个实施例中,调度器和执行单元块1440包括调度器单元,其用于在多个执行单元上调度指令/操作。例如,在具有可用的浮点执行单元的执行单元的端口上调度浮点指令。还包括与执行单元相关联的寄存器组,其用于存储信息指令处理结果。示例性的执行单元包括浮点执行单元、整数执行单元、跳转执行单元、加载执行单元、存储执行单元以及其他已知的执行单元。

较低层级的数据高速缓存和数据转换缓冲器(D-TLB)1450耦合至执行单元1440。数据高速缓存用于存储最近使用/操作的元素(诸如,数据操作数),潜在地在存储器一致性状态下保持这些元素。D-TLB用于存储最近的虚拟/线性至物理地址转换。作为特定示例,处理器可包括页表结构,用于将物理存储器分解成多个虚拟页。

在此,核1401和1402共享对较高级或进一步的高速缓存的访问,如与片上接口1410相关联的第二级高速缓存。注意,较高层级或进一步远离指的是高速缓存层级增加或进一步远离执行单元。在一个实施例中,较高级高速缓存是末级数据高速缓存——处理器1400上的存储器层次中的最后级高速缓存,诸如第二或第三级数据高速缓存。然而,较高级高速缓存不限于此,因为它可与指令高速缓存相关联或包括指令高速缓存。替代地,跟踪高速缓存(指令高速缓存的类型)可耦合在解码器1425之后,用于存储最近经解码的跟踪。在此,指令可能引用宏指令(即,解码器所识别的通用指令),该宏指令可解码成多个微指令(微操作)。

在所描绘的配置中,处理器1400还包括片上接口模块1410。历史上,存储器控制器(以下将更详细地描述)已被包括在处理器1400外部的计算系统中。在该场景中,片上接口1410与处理器1400外部的器件通信,处理器1400外部的器件诸如系统存储器1475、芯片组(通常包括存储器控制器中枢以连接到存储器1475以及I/O控制器中枢以连接到外围器件)、存储器控制器中枢、北桥、或其它集成电路。并且在该场景中,总线1405可包括任何已知的互连,诸如,多分支总线、点对点互连、串行互连、并行总线、一致性(例如,高速缓存一致性)总线、分层协议架构、差分总线以及GTL总线。

存储器1475可专用于处理器1400或可由处理器1400与系统中的其他设备共享。存储器1475的类型的常见示例包括DRAM、SRAM、非易失性存储器(NV存储器)以及其他已知的存储设备。注意,设备1480可包括耦合到存储器控制器中枢的图形加速器、处理器或卡,耦合到I/O控制器中枢的数据存储设备,无线收发机,闪存设备,音频控制器,网络控制器或其他已知设备。

然而,最近,随着更多的逻辑和器件被集成在单个管芯上(如SOC),这些器件中的每一个可被合并在处理器1400上。例如,在一个实施例中,存储器控制器中枢与处理器1400处于同一封装和/或管芯上。在此,核的一部分(核上部分)1410包括与诸如存储器1475和/或图形器件1480之类的其它器件进行对接的一个或超过一个控制器。通常将包括互连和用于与此类设备对接的控制器的配置称为核上(或非核配置)。作为示例,片上接口1410包括用于片上通信的环互连和用于片外通信的高速串行点对点链路1405。然而,在SOC环境中,可将诸如网络接口、协处理器、存储器1475、图形处理器1480以及任何其他已知计算机设备/接口之类的甚至更多设备集成到单个管芯或集成电路上,以提供具有高功能和低功耗的小形状因子。

在一个实施例中,处理器1400能够执行编译器、优化和/或转换器代码1477以编译、转换和/或优化应用代码1476,以支持本申请中描述的装置和方法或与本申请中描述的装置和方法相连接。编译器通常包括用于将源文本/代码转换成目标文本/代码的程序或程序集合。通常,利用编译器对程序/应用代码的编译是在多个级和多次运行中完成的,以将高级编程语言代码转换成低级机器或汇编语言代码。不过,对于简单编译,仍可利用单次运行编译器。编译器可利用任何已知的编译技术,并执行任何已知的编译器操作,诸如词法分析、预处理、解析、语义分析、代码生成、代码转换以及代码优化。

更大的编译器通常包括多个级,但多数时候这些级被包括在两个一般级中:(1)前端,一般而言,即在其中可进行语法处理、语义处理以及一些转换/优化,(2)后端,一般而言,即在其中可进行分析、转换、优化以及代码生成。一些编译器指的是中端,其示出了编译器的前端与后端之间的界定的模糊。因此,对插入、关联、生成或编译器的其它操作的引用可在编译器的上述级或运行中的任一个以及任何其它已知的级或运行中进行。作为说明性示例,编译器可能在编译的一个或超过一个级中插入操作、调用、函数等等,诸如在编译的前端级插入调用/操作,然后在转换级期间将这些调用/操作转换成较低级代码。注意,在动态编译期间,编译器代码或动态优化代码可插入这样的操作/调用,并优化代码以供在运行时间期间执行。作为特定的说明性示例,可在运行时间期间动态地优化二进制代码(已经是经编译的代码)。在此,程序代码可包括动态优化代码、二进制代码或其组合。

与编译器类似,诸如二进制转换器之类的转换器将代码静态地或动态地转换以优化和/或转换代码。因此,对代码、应用代码、程序代码或其它软件环境的执行的引用可表示:(1)执行编译器程序、优化代码优化器或转换器,以动态地或静态地编译程序代码、维护软件结构、执行其它操作、优化代码或转换代码;(2)执行包括操作/调用的主程序代码,诸如已经被优化/编译的应用代码;(3)执行与主程序代码相关联的其它程序代码(诸如库),以维护软件结构、执行其它软件相关操作、或用于优化代码;或(4)上述的组合。

现在参考图15,示出了多核处理器的实施例的框图。如图15的实施例中所示,处理器1500包括多个域。具体而言,核域1530包括多个核1530A-1530N,图形域1560包括具有媒体引擎1565的一个或超过一个图形引擎,以及系统代理与1510。

在各个实施例中,系统代理域1510处理功率控制事件和功率管理,使得域1530和1560的各个单元(例如核和/或图形引擎)是独立可控的,以根据给定单元中发生的活动(或不活动)在适当的功率模式/水平下操作(例如活动、加速、睡眠、休眠、深度睡眠或其它高级配置电源接口类似的状态)。域1530和1560中的每一个可在不同的电压和/或功率下操作,并且域中的各个单元各自可能在独立的频率和电压下操作。注意,虽然仅以三个域示出,但是会理解,本发明的范围不限于这方面,并且附加的域可存在于其他实施例中。

如所示,每个核1530除各种执行单元和附加的处理元件之外,还包括多个低级高速缓存。在此,各个核彼此耦合并且耦合至由末级高速缓存(LLC)的多个单元或片1540A-1540N形成的共享的高速缓存存储器;这些LLC通常包括存储和高速缓存控制器功能,并在核之间以及可能的图形引擎之间被共享。

如所见,环状互连1550将核耦合在一起,并通过各自位于核与LLC片之间的耦合处的多个环分支1552A-1552N来提供核域1530、图形域1560以及系统代理电路1510之间的互连。如图15中可见,互连1550用于携带各种信息,包括地址信息、数据信息、确认信息、以及监听/无效信息。虽然示出了环状互连,但可利用任何已知的管芯上的互连或结构。作为说明性示例,可按照相似的方式来利用以上讨论的结构中的一些(例如另一管芯上互连、芯片上系统结构(OSF)、高级微控制器总线架构(AMBA)互连、多维网状网结构、或其它已知的互连架构)。

如进一步所看到的那样,系统代理域1510可包括显示引擎1512,该显示引擎可提供对相关联的显示器的控制以及到它的接口。系统代理域1510可包括其它单元,诸如:集成存储器控制器1520,提供到系统存储器(例如利用多个DIMM实现的DRAM)的接口;一致性逻辑1522,用于执行存储器一致性操作。可以存在多个接口以实现处理器与其他电路之间的互连。例如,在一个实施例中,提供至少一个直接媒体接口(DMI)1516接口以及一个或超过一个PCIeTM接口1514。显示引擎和这些接口典型地通过PCIeTM桥1518耦合至存储器。再进一步,为了提供诸如附加的处理器或其它电路之类的其它代理之间的通信,可提供一个或超过一个其它接口。

现在参考图16,示出了代表性核的框图;具体而言是诸如来自图15的核1530之类的核的后端的逻辑块。一般而言,图16中所示的结构包括无序处理器,该无序处理器具有前端单元1670,该前端单元用于取出传入指令、执行各种处理(例如高速缓存、解码、分支预测等等)并向无序(OOO)引擎1680传递指令/操作。OOO引擎1680对经解码的指令执行进一步处理。

具体地,在图16的实施例中,无序引擎1680包括分配单元1682,该分配单元用于接收来自前端单元1670的经解码的指令(可以是一个或超过一个微指令或微操作的形式),并将它们分配给诸如寄存器等等之类的适当的资源。接下来,将指令提供给预留站1684,该预留站预留并调度资源以在多个执行单元1686A-1686N中的一个执行单元上执行。可存在各样各样类型的执行单元,包括例如算术逻辑单元(ALU)、加载和存储单元、向量处理单元(VPU)、浮点执行单元、等等。将来自这些不同执行单元的结果提供给重排序缓冲器(ROB)1688,该重排序缓冲器获取未排序的结果并将它们返回至正确的程序顺序。

仍参考图16,注意前端单元1670和无序引擎1680耦合至存储器分层结构的不同层级。具体而言,所示指令级高速缓存1672耦合至中级高速缓存1676,该中级高速缓存又耦合至末级高速缓存1695。在一个实施例中,末级高速缓存1695在芯片上单元(有时称为非核)1690中实现。作为示例,单元1690与图13的系统代理1310相似。如上所讨论,非核1690与系统存储器1699通信,在所示实施例中,系统存储器1699通过ED RAM实现。注意,无序引擎1680之内的各个执行单元1686与一级高速缓存1674通信,一级高速缓存也与中级高速缓存1676通信。注意,附加的核1630N-2-1630N可耦合至LLC 1695。尽管在图16的实施例以这样的高级别示出,然而要理解可能存在各种变型和附加组件。

转到图17,形成具有处理器的示例性计算机系统的框图,处理器包括用于执行指令的执行单元,其中示出了实现根据本发明的一个实施例的一个或超过一个特征的一个或超过一个互连。根据本发明,诸如根据在此所描述的实施例,系统1700包括诸如处理器1702之类的组件,该处理器用于使用包括逻辑的执行单元以执行算法来处理数据。系统1700代表基于PENTIUM IIITM、PENTIUM 4TM、XeonTM、Itanium、XScaleTM和/或StrongARMTM微处理器的处理系统,不过也可使用其它系统(包括具有其它微处理器的PC、工程工作站、机顶盒等)。在一个实施例中,样本系统1700执行可从美国华盛顿州雷蒙德市的微软公司获得的WINDOWSTM操作系统的某个版本,不过也可使用其他操作系统(例如,UNIX和Linux)、嵌入式软件和/或图形用户界面。因此,本发明的各实施例不限于硬件电路和软件的任何具体组合。

实施例不限于计算机系统。本发明的替代实施例可用于其他设备,诸如手持式设备和嵌入式应用。手持式设备的一些示例包括:蜂窝电话、互联网协议设备、数码相机、个人数字助理(PDA)、手持式PC。嵌入式应用可包括:微控制器、数字信号处理器(DSP)、芯片上系统、网络计算机(NetPC)、机顶盒、网络中枢、广域网(WAN)交换机、或可执行参照至少一个实施例的一个或超过一个指令的任何其他系统。

在该示出的实施例中,处理器1702包括用于实现算法的一个或超过一个执行单元1708,该算法用于执行至少一条指令。可在单处理器桌面或服务器系统的上下文中描述一个实施例,但是可将替代实施例包括在多处理器系统中。系统1700是“中枢”系统架构的示例。计算机系统1700包括用于处理数据信号的处理器1702。作为一个说明性示例,处理器1702包括例如,复杂指令集计算机(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器、实现指令集的组合的处理器或任何其他处理器设备(诸如,数字信号处理器)。处理器1702耦合到处理器总线1710,该处理器总线110在处理器1702与系统1700中的其他组件之间传输数据信号。系统1700的元件(例如,图形加速器1712、存储器控制器中枢1716、存储器1720、I/O控制器中枢1724、无线收发机1726、闪存BIOS1728、网络控制器1734、音频控制器1736、串行扩展端口1738、I/O控制器1740等)执行为熟悉本领域的人员所共知的它们的常规功能。

在一个实施例中,处理器1702包括第一级(L1)内部高速缓存存储器1704。取决于架构,处理器1702可以具有单个的内部高速缓存或多个层级的内部高速缓存。其他实施例包括内部高速缓存和外部高速缓存两者的组合,这取决于特定实现和需求。寄存器组1706用于将不同类型的数据存储在各种寄存器中,各种寄存器包括整数寄存器、浮点寄存器、向量寄存器、区块化(banked)寄存器、影子寄存器(shadow register)、检查点寄存器、状态寄存器以及指令指针寄存器。

执行单元1708(包括执行整数和浮点操作的逻辑)也位于处理器1702中。在一个实施例中,处理器1702包括用于存储微代码的微代码(ucode)ROM,该微代码在被执行时将执行用于某些宏指令的算法或处理复杂的场景。在此,微代码是潜在地可更新的,以便为处理器1702处理逻辑缺陷/修补。对于一个实施例,执行单元1708包括用于处理紧缩指令集1709的逻辑。通过将紧缩指令集109包括在通用处理器1702以及用于执行指令的相关联的电路的指令集中,可以使用通用处理器1702中的紧缩数据来执行由许多多媒体应用程序使用的操作。如此,通过将处理器的数据总线的全宽度用于对紧缩数据执行操作,加速了许多多媒体应用并且更高效地执行了紧缩数据。这潜在地消除了跨处理器的数据总线来传输较小的数据单元以执行一个或超过一个操作(一次对一个数据元素执行)的需求。

执行单元1708的替换实施例也可以用于微控制器、嵌入式处理器、图形设备、DSP及其他类型的逻辑电路。系统1700包括存储器1720。存储器1720包括动态随机存取存储器(DRAM)设备、静态随机存取存储器(SRAM)设备、闪存设备或其他存储器设备。主存储器1720存储将由可由处理器1702执行的数据信号来表示的指令和/或数据。

值得注意的是,可在图17所示的一个或超过一个互连上利用本发明的任意上述特征或方面。例如,未示出的用于耦合处理器1702的内部单元的管芯上互连(ODI)实现上述本发明的一个或超过一个方面。或者,本发明与处理器总线1710(例如其它已知的高性能计算互联)、到存储器1720的高带宽存储器路径1718、到图形加速器1712的点到点链路(例如,快速外围组件互连(PCIe)兼容的结构)、控制器中枢互连1722、用于耦合其他所示部件的I/O或其它互连(例如,USB、PCI、PCIe)相关联。此类组件的一些示例是音频控制器1736、固件中枢(闪存BIOS)1728、无线收发机1726、数据存储设备1724、包括用户输入和键盘接口1742的传统I/O控制器1710、串行扩展端口1738(诸如,通用串行总线(USB))以及网络控制器1734。数据存储设备1724可以包括硬盘驱动器、软盘驱动器、CD-ROM设备、闪存设备、或其他大容量存储设备。

现在参照图18,所示出的是根据本发明实施例的第二系统1800的框图。如图18所示,多处理器系统1800是点对点互连系统,且包括经由点对点互连1850耦合的第一处理器1870和第二处理器1880。处理器1870和1880中的每一个都可以是处理器的某一版本。在一个实施例中,1852和1854是串行、点对点一致性互连结构(诸如高性能架构)的一部分。因此,可在QPI架构中实现本发明。

虽然仅以两个处理器1870、1880来示出,但应理解本发明的范围不限于此。在其他实施例中,在给定处理器中可存在一个或超过一个附加处理器。

处理器1870和1880被示为分别包括集成存储器控制器单元1872和1882。处理器1870还包括点对点(P-P)接口1876和1878作为其总线控制器单元的部分;类似地,第二处理器1880包括P-P接口1886和1888。处理器1870、1880可以经由使用点对点(P-P)接口电路1878、1888的P-P接口1850来交换信息。如图18所示,IMC 1872和1882将处理器耦合到各自的存储器,即存储器1832和存储器1834,这些存储器可以是本地附连到各自处理器的主存储器的多个部分。

处理器1870、1880可各自使用点对点接口电路1876、1894、1886、1898经由各个P-P接口1852、1854与芯片组1890交换信息。芯片组还1890经由接口电路1892沿着高性能图形互连1839与高性能图形电路1838交换信息。

共享高速缓存(未示出)可以被包括在任一处理器之内,或被包括在两个处理器外部但仍经由P-P互连与这些处理器连接,使得如果将某处理器置于低功率模式时,可将任一处理器或两个处理器的本地高速缓存信息存储在该共享高速缓存中。

芯片组1890可经由接口1896耦合至第一总线1818。在一个实施例中,第一总线1818可以是外围组件互连(PCI)总线,或诸如PCI快速总线或另一第三代I/O互连总线之类的总线,但本发明的范围并不受此限制。

如图18所示,各种I/O设备1814可连同总线桥1818一起耦合到第一总线1818,总线桥1818将第一总线1818耦合到第二总线1820。在一个实施例中,第二总线1820可以是低引脚计数(LPC)总线。各种设备可以被耦合至第二总线1820,在一个实施例中,这些设备包括例如键盘和/或鼠标1822、通信设备1827以及存储单元1828,存储单元1828诸如可包括指令/代码和数据1830的盘驱动器或其他大容量存储设备。此外,音频I/O 1824可耦合至第二总线1820。值得注意的是,其他架构也是可能的,其中所包括的部件和互连架构不同。例如,代替图18的点对点架构,系统可以实现多分支总线或其他此类架构。

接下来参考图19,描绘了根据本发明的各实施例的芯片上系统(SOC)设计的实施例。作为特定的说明性示例,SOC 1900被包括在用户装备(UE)中。在一个实施例中,UE是指由最终用户用于通信的任何设备,诸如,手持式电话、智能电话、平板、超薄笔记本、具有宽带适配器的笔记本或任何其他类似的通信设备。UE常常连接到基站或节点,该基站或节点本质上潜在地对应于GSM网络中的移动站(MS)。

在此,SOC 1900包括2个核——1906和1907。核1906和1907可符合指令集架构,诸如,基于架构核TM的处理器、超微半导体公司(AMD)处理器、基于MIPS的处理器、基于ARM的处理器设计,或它们的客户,以及它们的被许可方或采纳方。核1906和1907耦合到与总线接口单元1909和L2高速缓存1911相关联的高速缓存控制装置1908,以便与系统1900的其他部分进行通信。互连1910包括可能实现所描述的公开的一个或超过一个方面的诸如IOSF、AMBA或上文讨论的其他互连之类的芯片上互连。

接口1910可以提供到其他组件的通信信道,其他组件诸如,与订户标识模块(SIM)卡对接的SIM 1930、用于保存供核1906和1907执行以初始化并引导SOC 1900的引导代码的引导ROM 1935、用于与外部存储器(例如,DRAM 1960)对接的SDRAM控制器1940、用于与非易失性存储器(例如,闪存1965)对接的闪存控制器1945、用于与外围设备对接的外围控制装置1950(例如,串行外围接口)、用于显示和接收输入(例如,允许触摸的输入)的视频编解码器1920和视频接口1925、用于执行图形相关的计算的GPU 1915等。这些接口中的任一个可纳入本申请中描述的本发明的多个方面。

另外,系统可以包括用于通信的外围设备,诸如,蓝牙模块1970、3G调制解调器1975、GPS1985以及Wi-Fi 1985。注意,如上所述,UE包括用于通信的无线电装置。结果,这些外围通信模块不都是需要的。然而,在UE中,将包括用于外部通信的某种形式的无线电装置。

虽然已参照有限数量的实施例描述了本发明,但是本领域技术人员将从中领会很多修改和变型。所附权利要求旨在涵盖落入本发明的真实精神和范围的所有此类修改和变型。

设计会经历多个级,从创新到模拟到制造。表示设计的数据可用多种方式来表示该设计。首先,像仿真中有用的那样,可使用硬件描述语言或另一功能性描述语言来表示硬件。此外,可在设计过程的一些级产生具有逻辑和/或晶体管门的电路级模型。此外,大多数设计在某个级都达到表示硬件模型中各种设备的物理布置的数据的层级。在使用常规半导体制造技术的情况下,表示硬件模型的数据可以是指定在用于制造集成电路的掩模的不同掩模层上存在或不存在各种特征的数据。在任何设计表示中,数据可被存储在任何形式的机器可读介质中。存储器或磁或光存储设备(诸如,盘)可以是存储信息的机器可读介质,这些信息是经由光或电波来发送的,调制或以其他方式生成这些光或电波以传送这些信息。当发送指示或承载代码或设计的电载波达到实现该电信号的复制、缓冲或重新发送的程度时,即产生了新的副本。因此,通信提供商或网络提供商可在有形的机器可读介质上至少临时地存储具体化本发明的多个实施例的技术的制品(诸如,被编码成载波的信息)。

在本文中使用的模块指的是硬件、软件、和/或固件的任意组合。作为示例,模块包括与非瞬态介质相关联的诸如微控制器之类的硬件,该非瞬态介质用于存储适于由该微控制器执行的代码。因此,在一个实施例中,对模块的引用是指硬件,该硬件被专门配置成识别和/或执行要保存在非瞬态介质上的代码。另外,在另一实施例中,模块的使用是指包括代码的非瞬态介质,该代码专门适于由微处理器执行以进行预定操作。并且可推断,在又一实施例中,术语模块(在该示例中)可以指微控制器和非瞬态介质的组合。通常,被示为分开的模块边界一般不同而且有可能重叠。例如,第一和第二模块可共享硬件、软件、固件、或它们的组合,同时可能保留某些独立的硬件、软件或固件。在一个实施例中,术语逻辑的使用包括诸如晶体管、寄存器之类的硬件或诸如可编程逻辑器件之类的其它硬件。

在一个实施例中,使用短语‘被配置成’指的是安排、合在一起、制造、提供销售、进口和/或设计装置、硬件、逻辑或元件以执行指定和/或所确定的任务。在该示例中,没有操作的装置或其元件仍然“被配置成”执行指定任务,如果它被设计、耦合、和/或互连以执行所述指定任务的话。作为纯说明性示例,在操作期间,逻辑门可以提供0或1。但逻辑门“被配置成”向时钟提供启用信号不包括可提供1或0的每一潜在逻辑门。而是,该逻辑门是以在操作期间所输出的1或0用于启用时钟的某种方式来耦合的逻辑门。再次注意,使用术语‘被配置成’不要求操作,而是集中于装置、硬件、和/或元件的潜在状态,其中在该潜在状态中,该装置、硬件和/或元件被设计成在该装置、硬件和/或元件正在操作时执行特定任务。

此外,在一个实施例中,使用术语‘能够/能够用于’和/或‘能用于’指的是按如下方式设计的一些装置、逻辑、硬件、和/或元件:以指定方式启用对该装置、逻辑、硬件、和/或元件的使用。如上注意的,在一个实施例中,用于、能够、或能用于指的是装置、逻辑、硬件、和/或元件的潜在状态,潜在该装置、逻辑、硬件、和/或元件没有正在操作而是被以如下方式设计:以指定方式来启用装置的使用。

如在本文中所使用的值包括数字、状态、逻辑状态、或二进制逻辑状态的任何已知表示。通常,逻辑电平、逻辑值、或多个逻辑值的使用也被称为1和0,这简单地表示了二进制逻辑状态。例如,1指的是逻辑高电平,0指的是逻辑低电平。在一个实施例中,诸如晶体管或闪存单元之类的存储单元能够保持单个逻辑值或多个逻辑值。不过,也使用了计算机系统中的值的其它表示。例如,十进制数字10也可被表示为二进制值1010和十六进制字母A。因此,值包括能保持在计算机系统中的信息的任何表示。

而且,状态也可由值或值的部分来表示。作为示例,诸如逻辑1之类的第一值可表示默认或初始状态,而诸如逻辑0之类的第二值可表示非默认状态。此外,在一个实施例中,术语重置和置位分别指的是默认和已更新的值或状态。例如,默认值可能包括高逻辑值,即重置,而已更新的值可能包括低逻辑值,即置位。注意,值的任何组合可用来表示任意数量的状态。

上述方法、硬件、软件、固件或代码的实施例可通过存储在机器可存取、机器可读、计算机可存取、或计算机可读介质上可由处理元件执行的指令或代码来实现。非瞬态机器可存取/可读介质包括提供(即存储和/或发送)诸如计算机或电子系统之类的机器可读的形式的信息的任何机制。例如,非瞬态机器可存取介质包括:诸如静态RAM(SRAM)或动态RAM(DRAM)之类的随机存取存储器(RAM);ROM;磁或光存储介质;闪存设备;电存储设备;光存储设备;声存储设备;其它形式的用于保持从瞬态(传播)信号(例如载波、红外信号、数字信号)接收的信息的存储设备等等,这些信号与可从其接收信息的非瞬态介质相区别。

被用于对逻辑进行编程以执行本发明的诸个实施例的指令可被存储在系统的存储器(诸如,DRAM、高速缓存、闪存、或其他存储器)中。此外,指令可经由网络或通过其他计算机可读介质来分配。因此,机器可读介质可包括用于以机器(例如,计算机)可读的形式存储或发送信息的任何机制,但不限于:软盘、光盘、紧致盘只读存储器(CD-ROM)、磁光盘、只读存储器(ROM)、随机存取存储器(RAM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、磁卡或光卡、闪存、或在互联网上经由电、光、声、或其他形式的传播信号(例如,载波、红外信号、数字信号等)发送信息中所使用的有形的机器可读存储器。因此,计算机可读介质包括适用于存储或发送机器(例如,计算机)可读形式的电子指令或信息的任何类型的有形的机器可读介质。

以下示例涉及根据本说明书的各实施例。一个或超过一个实施例可提供装置、系统、机器可读存储体、机器可读介质、基于硬件和/或软件的逻辑、以及方法,以用于:提供基于外围组件互连(PCI)快速(PCIe)协议的支持每秒至少16千兆次传输(GT/s)的位速率的信道,其中该信道包括至少两个连接器并具有大于十二英寸的长度。

在至少一个示例中,该信道包括至少一个通孔,并且该通孔的桩至少部分地被去除。

在至少一个示例中,该通孔被反钻以去除该桩。

在至少一个示例中,该通孔是多个连接器中的第一连接器的通孔。

在至少一个示例中,由该连接器用于连接至第一设备的每个通孔被反钻。

在至少一个示例中,由连接器中的第二连接器用于连接至第二设备的通孔被反钻。

在至少一个示例中,该通孔是处理器插槽的通孔。

在至少一个示例中,该信道的每个通道包括相应的处理器插槽的相应部分,并且处理器插槽中的与信道中的具有通孔桩的通道相对应的每个处理器插槽被反钻。

在至少一个示例中,提供低损耗电路板,并在电路板上至少部分地实现该信道。

在至少一个示例中,低损耗电路板具有更小的迹线差分插入损耗。在至少一个示例中,在该信道的接收机前端施加增益。

在至少一个示例中,该增益包括大约6dB。

在至少一个示例中,对该信道的连续时间线性均衡器施加增益。

在至少一个示例中,施加于接收机前端和连续时间线性均衡器的组合增益大约为6dB。

在至少一个示例中,该信道包括具有被反钻的桩的至少一个通孔,该信道至少部分地在低损耗电路板上实现,并且大约6dB的组合增益被施加于该信道的接收机前端和该信道的连续时间线性均衡器中的一个或超过一个。

在至少一个示例中,该信道的长度至少是二十(20)英寸。

一个或超过一个实施例可提供装置、系统、机器可读存储体、机器可读介质、基于硬件和/或软件的逻辑、以及方法,以用于:在包括两连接器多通道链路的信道上以至少16GT/s的位速率发送数据,其中该信道的长度大于十二英寸。

在至少一个示例中,该信道的长度至少是二十(20)英寸。

在至少一个示例中,该信道包括一个或超过一个通孔,并且通孔的桩被反钻。

在至少一个示例中,一个或超过一个通孔被包括在两个连接器中的一个或两个中。

在至少一个示例中,该信道包括处理器插槽,且处理器插槽包括通孔。

在至少一个示例中,该信道包括具有被反钻的桩的至少一个通孔,该信道至少部分地在低损耗电路板上实现,并且大约6dB的组合增益被施加于该信道的接收机前端和该信道的连续时间线性均衡器中的一个或超过一个。

在至少一个示例中,该信道包括基于PCIe的信道。

一个或超过一个实施例可提供装置、系统、机器可读存储体、机器可读介质、基于硬件和/或软件的逻辑、以及方法,以用于:在包括两连接器多通道链路的信道上接收以至少16GT/s的位速率发送的数据,其中该信道的长度大于十二英寸。

在至少一个示例中,该信道的长度至少是二十(20)英寸。

在至少一个示例中,该信道包括一个或超过一个通孔,并且通孔的桩被反钻。

在至少一个示例中,一个或超过一个通孔被包括在两个连接器中的一个或两个中。

在至少一个示例中,该信道包括处理器插槽,且处理器插槽包括通孔。

在至少一个示例中,该信道包括具有被反钻的桩的至少一个通孔,该信道至少部分地在低损耗电路板上实现,并且大约6dB的组合增益被施加于该信道的接收机前端和该信道的连续时间线性均衡器中的一个或超过一个。

在至少一个示例中,该信道包括基于PCIe的信道。

在至少一个示例中,提供一种系统,包括第一设备和使用互连信道耦合至第一设备的第二设备,其中该互连信道包括基于外围组件互连(PCI)快速(PCIe)协议的链路以支持每秒至少16千兆次传输(GT/s)的位速率,其中该链路包括至少两个连接器并具有大于十二英寸的长度。

在至少一个示例中,该系统包括服务器芯片组。

在至少一个示例中,第一设备包括处理器设备。

一个或超过一个实施例可提供装置、系统、机器可读存储体、机器可读介质、基于硬件和/或软件的逻辑、以及方法,以用于:基于在链路的多个通道中的特定通道上传输的至少一个错误码元的检测,来标识该特定通道上的第一通道错误;以及在通道错误寄存器中报告第一通道错误。

在至少一个示例中,在通道错误寄存器中报告的通道错误标识多个通道中的相应通道。

在至少一个示例中,基于在多个通道中的至少一个上检测到错误的同步头部,来在该链路上标识第二通道错误,并且在通道错误寄存器中报告第二通道错误。

在至少一个示例中,基于对于经由该链路传输的数据流确定奇偶校验信息不匹配,来标识第三通道错误,并在通道错误寄存器中报告第三通道错误。

在至少一个示例中,在SKP有序集(SKP OS)中接收奇偶校验信息。

在至少一个示例中,I/O逻辑包括物理层逻辑。

在至少一个示例中,错误码元包括SKP OS中包括的码元的错误。

在至少一个示例中,错误码元包括在SKP OS中的第一SLP OS码元与SKP OS中的SLP_END标记之间检测到的非SKP OS码元。

在至少一个示例中,错误码元包括放置在除了SKP OS的码元8、12、16、20或24之外的码元中的SKP_END。

在至少一个示例中,错误码元包括分帧令牌的第一码元。

在至少一个示例中,分帧令牌包括PCIe分帧令牌。

在至少一个示例中,分帧令牌包括以下的至少一个:逻辑空闲令牌(IDL)、数据链路层分组(DLLP)数据开始令牌(SDP)、事务层分组(TLP)数据开始令牌(STP)、以及结束坏TLP令牌(EDB)。

在至少一个示例中,错误码元包括错误IDL令牌码元。

在至少一个示例中,第一IDL令牌被包括在多个通道中的特定通道n中,且错误码元包括在多个通道中的通道n+1、n+2和n+3中的任一个中检测到的非IDL码元。

在至少一个示例中,错误码元包括错误EDB令牌码元。

在至少一个示例中,第一EDB令牌跟随在多个通道中的特定通道n上的TLP之后,且错误码元包括在多个通道中的通道n+1、n+2和n+3中的任一个中检测到的非EDB码元。

在至少一个示例中,错误码元包括EDB令牌的码元,且该EDB令牌跟随在SDP令牌之外的分帧令牌之后。

在至少一个示例中,错误码元包括SDP令牌码元。

在至少一个示例中,SDP令牌的首个码元被包括在多个通道中的特定通道n中,且错误码元包括在多个通道中的通道n+1中检测到的非SDP码元。

在至少一个示例中,通道错误寄存器包括PCIe通道错误状态(LES)寄存器。

在至少一个示例中,该链路包括PCIe兼容的链路。

在至少一个示例中,基于检测到缺少在前的EDS令牌的有序集块,来在该链路上标识第二通道错误。

在至少一个示例中,标识并报告基于在有序集码元、IDL令牌码元、SDP令牌码元、STP令牌码元以及EDB令牌码元中的任一个中检测到错误的通道错误。

在至少一个示例中,监测通道错误寄存器以标识涉及特定通道的通道错误,并可基于通道错误寄存器中对于特定通道标识的多个错误来确定特定通道出错。

在至少一个示例中,确定特定通道出错包括对多个错误的统计分析。

一个或超过一个实施例可提供装置、系统、机器可读存储体、机器可读介质、基于硬件和/或软件的逻辑、以及方法,以用于:标识链路要退出活动状态,其中该链路包括多个通道;维持通道的奇偶校验信息,该奇偶校验信息基于经由该链路发送的数据;以及在从活动状态退出之前发送奇偶校验信息的指示。

在至少一个示例中,所述奇偶校验信息的指示响应于所述退出而被发送。

在至少一个示例中,所述奇偶校验信息的指示在有序集中被发送。

在至少一个示例中,每个通道的奇偶校验信息的指示被包括在所述有序集中包括的对于每个通道的相应的奇偶校验位中。

在至少一个示例中,该有序集包括PCIe SKP OS。

在至少一个示例中,所述链路基于链路恢复来退出所述活动状态。

在至少一个示例中,该链路恢复基于在该链路上检测到的错误。

在至少一个示例中,该错误包括分帧令牌错误。

一个或超过一个实施例可提供装置、系统、机器可读存储体、机器可读介质、基于硬件和/或软件的逻辑、以及方法,以用于:在包括多个通道的链路上发送数据;保持对于每个通道的奇偶校验信息,该奇偶校验信息基于所发送的数据;标识链路要退出活动状态;以及在从活动状态退出之前发送奇偶校验信息。

一个或超过一个实施例可提供装置、系统、机器可读存储体、机器可读介质、基于硬件和/或软件的逻辑、以及方法,以用于:维持链路的多个通道中的每个通道的第一奇偶校验信息,该第一奇偶校验信息基于之前经由链路发送的数据;响应于导致链路退出活动状态的事件,接收第二奇偶校验信息,其中第二奇偶校验信息在从活动状态退出之前被发送。将所述第一奇偶校验信息与所述第二信息作比较,以标识所述通道中的一个或超过一个通道上的潜在通道错误。

在至少一个示例中,第二奇偶校验信息被包括在有序集中。

在至少一个示例中,第二奇偶校验信息被包括在有序集中包括的奇偶校验位中。

在至少一个示例中,该有序集包括SKP OS。

在至少一个示例中,所述链路基于链路恢复来退出所述活动状态。

在至少一个示例中,在该链路上检测到的错误触发恢复。

在至少一个示例中,该错误包括分帧令牌错误。

在至少一个示例中,潜在的通道错误被报告给通道错误寄存器。

在至少一个示例中,通道错误寄存器包括LES寄存器。

在至少一个示例中,该事件包括在该链路上检测到的错误。

在至少一个示例中,所述链路的恢复基于所述错误被触发,并且所述恢复导致所述链路退出活动状态。

在至少一个示例中,基于检测到所述第一奇偶校验信息与所述第二奇偶校验信息不匹配,来标识潜在的通道错误。

一个或超过一个实施例可提供装置、系统、机器可读存储体、机器可读介质、基于硬件和/或软件的逻辑、以及方法,以用于:经由链路接收数据,该链路包括多个通道;保持每个通道的第一奇偶校验信息,该第一奇偶校验信息基于该数据;响应于事件接收第二奇偶校验信息,其中该事件导致链路退出活动状态,且第二奇偶校验信息在退出活动状态之前被发送;以及将第一奇偶校验信息与第二信息作比较,以标识一个或超过一个通道上的潜在通道错误。

一个或超过一个实施例可提供装置、系统、机器可读存储体、机器可读介质、基于硬件和/或软件的逻辑、以及方法,以用于:保持链路的多个通道中的每个通道的奇偶校验信息,该奇偶校验信息基于经由链路传输的数据的第一部分,其中该奇偶校验信息经过链路恢复之后仍保持;以及在链路恢复之后恢复奇偶校验信息的计算,其中奇偶校验信息进一步基于经由链路传输的数据的第二部分,并且恢复之后的数据的第二部分被持续地考虑。

在至少一个示例中,数据的第一部分对应于第一数据块,且数据的第二部分对应于不同的第二数据块。

在至少一个示例中,第一数据块被恢复中断,且第二块在恢复之后开始。

在至少一个示例中,恢复是基于在该链路上检测到的错误。

在至少一个示例中,将奇偶校验信息的指示发送至接收机设备,该奇偶校验信息的指示是基于该数据的第一和第二部分计算的。

在至少一个示例中,奇偶校验信息包括第一奇偶校验信息,且I/O逻辑进一步用于从发射机设备接收由发射设备基于该数据的第一和第二部分计算的第二奇偶校验信息的指示,并将第二奇偶校验信息的指示与第一奇偶校验信息作比较。

在至少一个示例中,基于第二奇偶校验信息的指示与第一奇偶校验信息的比较,确定多个通道中的一个或超过一个通道上是否存在潜在错误。

在至少一个示例中,在通道错误寄存器中报告潜在的错误。

在至少一个示例中,通道错误寄存器包括PCIe LES寄存器。

在至少一个示例中,第二奇偶校验信息的指示被包括在SKP OS中。

在至少一个示例中,第二奇偶校验信息的指示包括SKP OS的奇偶校验位。

在至少一个示例中,该链路包括PCIe兼容的链路。

一个或超过一个实施例可提供装置、系统、机器可读存储体、机器可读介质、基于硬件和/或软件的逻辑、以及方法,以用于:在链路上发送第一数据,该链路包括多个通道;基于所发送的第一数据确定每个通道的奇偶校验信息;参与链路的恢复,其中奇偶校验信息经过链路的恢复之后仍保持;在链路恢复之后在链路上发送第二数据;以及更新奇偶校验信息以产生经更新的奇偶校验信息,其中经更新的奇偶校验信息基于第一数据和第二数据。

一个或超过一个实施例可提供装置、系统、机器可读存储体、机器可读介质、基于硬件和/或软件的逻辑、以及方法,以用于:接收来自设备的第一数据,该第一数据是在包括多个通道的链路上被接收;基于所接收的第一数据确定每个通道的奇偶校验信息;参与链路的恢复,其中奇偶校验信息经过链路的恢复之后仍保持;在链路恢复之后在链路上接收来自设备的第二数据;以及更新奇偶校验信息以产生经更新的奇偶校验信息,其中经更新的奇偶校验信息基于第一数据和第二数据。

在至少一个示例中,可将特定奇偶校验信息与另一奇偶校验信息作比较,以确定一个或超过一个潜在的通道错误。

在至少一个示例中,另一奇偶校验信息被包括在SKP OS中。

在至少一个示例中,可根据SKP OS中包括的奇偶校验位来标识另一奇偶校验信息。

一个或超过一个实施例可提供装置、系统、机器可读存储体、机器可读介质、基于硬件和/或软件的逻辑、以及方法,以用于:接收来自设备的第一数据,该第一数据是在包括多个通道的链路上被接收;基于所接收的第一数据确定每个通道的奇偶校验信息;参与链路的恢复,其中奇偶校验信息经过链路的恢复之后仍保持;在链路恢复之后在链路上接收来自设备的第二数据;以及更新奇偶校验信息以产生经更新的奇偶校验信息,其中经更新的奇偶校验信息基于第一数据和第二数据。

本申请文件中通篇对“一个实施例”或“实施例”的引用意指结合所述实施例描述的特定的特征、结构或特性被包括在本发明的至少一个实施例中。如此,在整篇说明书中的不同位置出现短语“在一个实施例中”或“在实施例中”不一定都是指同一个实施例。此外,在一个或超过一个实施例中,能以任何合适的方式来组合特定的特征、结构或特性。

在上述说明书中,已经参考特定示例性实施例给出了详细描述。然而,显然可对这些实施例作出各种修改和改变,而不背离如所附权利要求所述的本发明的更宽泛精神和范围。相应地,应当将说明书和附图应认为是说明性的而不是限制性的。而且,实施例和其它示例性语言的上述使用不一定指的是同一实施例或同一示例,而可能指的是不同和独特的实施例,也有可能是同一实施例。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1