多芯片封装链路错误检测的制作方法

文档序号:14213155阅读:237来源:国知局
多芯片封装链路错误检测的制作方法

该公开关于计算系统,并且特别(但并不完全)关于点到点互连。



背景技术:

半导体处理和逻辑设计中的进步已经允许可在集成电路装置上存在的逻辑的数量中的增加。作为必然的结果,计算机系统配置已从系统中的单个或多个集成电路演变成在个体集成电路上存在的多个核、多个硬件线程和多个逻辑处理器,以及与这样的处理器集成的其他接口。处理器或集成电路典型地包括单个物理处理器管芯,其中该处理器管芯可包括任意数量的核、硬件线程、逻辑处理器、接口、存储器、控制器集线器等。

由于有更大的能力来在更小的封装件中安插更多的处理能力,故更小的计算装置已越来越流行。智能电话、平板、超薄笔记本和其他用户设备呈指数增长。然而,这些更小的装置依赖于服务器,既为了进行数据存储也为了超过形状因子的复杂处理。因此,高性能计算市场(即,服务器空间)中的需求也已经增加。例如,在现代服务器中,典型地不仅存在带多个核的单个处理器,而且还存在多个物理处理器(也称为多个插座)以用于提高计算能力。但随着处理能力连同计算系统中装置的数量增长,插座与其他装置之间的通信变得更加关键。

实际上,互连已从主要处理电通信的更加传统的多点总线成长为促进快速通信的成熟互连架构。遗憾的是,由于需要未来处理器以甚至更高速率消耗,故对应的需求被寄托于现有互连架构的能力之上。

附图说明

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

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

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

图4图示用于互连架构的传送器和接收器对的实施例。

图5图示多芯片封装的实施例。

图6是多芯片封装链路(mcpl)的简化框图。

图7是示例mcpl上的示例信令的表示。

图8是mcpl的简化框图。

图9是示例链路状态机的一部分的表示。

图10是示例链路状态机的表示。

图11是进入低功率状态的信令的表示。

图12是图示mcpl的示例实现的框图。

图13a-13c是示例mcpl的通道上数据的示例位映射。

图14-1、14-2、14-3图示示例检验子解码器(syndromedecoder)表。

图15-1、15-2、15-3图示检验子解码器表的另一个示例。

图16是图示mcpl的示例实现的框图。

图17a-17b是图示根据至少一些实施例的链路重新配置的示例的图。

图18a-18b是图示用于处理mcpl上的错误的技术的简化流程图。

图19图示对于包括多个处理器的计算系统的块的实施例。

各种图中的类似参考数字和标号指示类似元件。

具体实施方式

在下列描述中,阐述许多特定细节,例如特定类型的处理器和系统配置、特定硬件结构、特定架构和微架构细节、特定寄存器配置、特定指令类型、特定系统组件、特定测量/高度、特定处理器管线级和操作等的示例,以便提供对本发明的全面理解。然而,对本领域技术人员将显而易见的是,并不需要采用这些特定细节来实践本发明。在其他实例中,未详细描述众所周知的组件或方法,例如特定和备选处理器架构、对于所描述算法的特定逻辑电路/代码、特定固件代码、特定互连操作、特定逻辑配置、特定制造技术和材料、特定编译器实现、以代码形式的算法的特定表达、特定掉电和门控技术/逻辑以及计算机系统的其他特定操作细节,以免不必要地使本发明难以理解。

尽管下列实施例可参考特定集成电路中(例如计算平台或微处理器中)的能量节约和能量效率被描述,但其他实施例可适用于其他类型的集成电路和逻辑装置。本文所描述的实施例的相似技术和教导可适用于其他类型的电路或半导体器件,它们也可从更好的能量效率和能量节约中获益。例如,公开的实施例不限于桌面型计算机系统或ultrabooks™。并且还可用于其他装置,例如手持装置、平板、其他薄笔记本、芯片上系统(soc)装置、以及嵌入式应用。手持装置的一些示例包括蜂窝电话、互联网协议装置、数字摄像机、个人数字助理(pda)和手持pc。嵌入式应用典型地包括微控制器、数字信号处理器(dsp)、芯片上系统、网络计算机(netpc)、机顶盒、网络集线器、广域网(wan)交换机或能够执行下文教导的功能和操作的任何其他系统。此外,本文描述的装置、方法和系统不限于物理计算装置,而是还可以涉及针对能量节约和效率的软件优化。如将在下文的描述中变得容易显而易见的是,本文所描述的方法、装置和系统的实施例(无论是关于硬件、固件、软件还是其组合)对于与性能考虑相平衡的‘绿色技术’未来是至关重要的。

随着计算系统日益进步,其中的组件正变得更加复杂。因此,用于组件之间耦合和通信的互连架构在复杂性方面也在日益增加以确保满足对于最佳组件操作的带宽要求。此外,不同细分市场需要互连架构的不同方面来适配市场需要。例如,服务器要求更高的性能,而移动生态系统有时能够为了功率节约而牺牲整体性能。然而,大部分构造的突出目的还是在最大的功率节约的情况下提供最高可能性能。在下文论述了许多互连,其将潜在地从本文所描述的本发明的方面中获益。

一个互连构造架构包括外围组件互连(pci)高速(pcie)架构。pcie的主要目标是使来自不同供应商的组件和装置能够在开放架构中互操作,从而跨越多个细分市场;客户端(桌面型计算机和移动设备)、服务器(标准和企业)以及嵌入式和通信装置。pci高速是为广泛各种的未来计算和通信平台所定义的高性能、通用i/o互连。一些pci属性(例如它的使用模型、负载-贮存架构和软件接口)已经通过它的修订来维持,而先前的并行总线实现已经被高度可扩展完全串行接口所替代。pci高速的更近版本利用点到点互连、基于交换机的技术和分组化协议的进步来传递性能和特征的新的级别。功率管理、服务质量(qos)、热插拔/热交换支持、数据完整性和错误处理均在pci高速所支持的一些高级特征之中。

参考图1,图示构造的实施例,该构造由互连一组组件的点到点链路组成。系统100包括耦合于控制器集线器115的处理器105和系统存储器110。处理器105包括任何处理元件,例如微处理器、主机处理器、嵌入式处理器、协处理器或其他处理器。处理器105通过前侧总线(fsb)106耦合于控制器集线器115。在一个实施例中,fsb106是如下文描述的串行点到点互连。在另一个实施例中,链路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/dvdrom、监测器、打印机、鼠标、键盘、路由器、便携式存储装置、firewire装置、通用串行总线(usb)装置、扫描仪、以及其他输入/输出装置。通常在pcie术语中,例如装置被称为端点。尽管未具体被示出,装置125可以包括pcie到pci/pci-x桥,以用于支持遗留或其他版本pci装置。pcie中的端点装置通常归类为遗留、pcie、或根联合体集成端点。

图形加速器130还通过串行链路132耦合于控制器集线器115。在一个实施例中,图形加速器130耦合于mch,其耦合于ich。交换机120以及相应地i/o装置125然后被耦合于ich。i/o模块131和118也用来实现分层的协议栈以在图形加速器130与控制器集线器115之间通信。与上文的mch论述相似,图形控制器或图形加速器130自身可以在处理器105中集成。

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

pci高速使用分组来在组件之间传达信息。分组在事务层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分级内独特地标识请求者代理。因此,连同源id310一起,局部事务标识符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传输代码,其中十位符号被传送/接收。在这里,特殊符号被用于使分组与帧223成帧。另外,在一个示例中,接收器还提供从进入串行流恢复的符号时钟。

如上文所陈述的,尽管事务层205、链路层210和物理层220参考pcie协议栈的特定实施例被论述,但分层的协议栈并非如此地被限制。实际上,可以包括/实现任何分层的协议。作为示例,表示为分层的协议的端口/接口包括:(1)用于组装分组的第一层,即事务层;使分组序列化的第二层,即链路层;和用于传送分组的第三层,即物理层。作为特定示例,使用公共标准接口(csi)分层的协议。

接着参考图4,图示pcie串行点到点构造的实施例。尽管图示pcie串行点到点链路的实施例,但串行点对点链路并非如此地被限制,因为它包括用于传送串行数据的任何传输路径。在示出的实施例中,基本pcie链路包括两个低电压差分驱动信号对:传送对406/411和接收对412/407。因此,装置405包括用于将数据传送到装置410的传送逻辑406,和用于从装置410接收数据的接收逻辑407。换言之,两个传送路径(即路径416和417)和两个接收路径(即路径418和419)被包括在pcie链路中。

传输路径指用于传送数据的任何路径,例如传输线、铜线、光线路、无线通信信道、红外通信链路或其他通信路径。两个装置(例如装置405和装置410)之间的连接称为链路,例如链路415。链路可支持一个通道-每个通道表示一组差分信号对(一对用于传送,一对用于接收)。为了扩展带宽,链路可以聚集由xn标示的多个通道,其中n是任何支持的链路带宽,例如1、2、4、8、12、16、32、64或更宽。

差分对指用于传送差分信号的两个传输路径(例如线路416和417)。作为示例,当线路416从低电压水平切换到高电压水平(即,上升沿)时,线路417驱动从高逻辑水平到低逻辑水平(即,下降沿)。差分信号潜在地展现更好的电特性,例如更好的信号完整性,即,交叉耦合、电压过冲/下冲、振铃等。这允许有更好的时序窗口,其能够实现更快传输频率。

图5是图示示例多芯片封装505的简化框图500,该示例多芯片封装包括使用示例多芯片封装链路(mcpl)520在通信上被连接的两个或更多芯片或管芯(例如,510、515)。尽管图5图示使用示例mcpl520互连的两个(或更多)管芯的示例,但应领会到除潜在其他示例外,本文描述的关于mcpl的实现的原理和特征能够适用于连接管芯(例如,510)和其他组件的任何互连或链路,这包括连接两个或更多管芯(例如,510、515)、将管芯(或芯片)连接到另一个管芯外组件、将管芯连接到另一个装置或封装外管芯(例如,505)、将管芯连接到bga封装、中介层上补丁(point)的实现。

一般,多芯片封装(例如,505)能够是电子封装,其中多个集成电路(ic)、半导体管芯或其他分立组件(例如,510、515)被封装到统一衬底(例如,硅或其他半导体衬底)上,从而促进作为单个组件(例如,就好像是更大的ic)的组合组件的使用。在一些实例中,更大组件(例如,管芯510、515)自身能够是ic系统,例如芯片上系统(soc)、多处理器芯片或其他组件,所述其他组件包括装置上(例如单个管芯(例如,510、515)上)的多个组件(例如,525-530和540-545)。多芯片封装505能够提供用于从潜在的多个分立组件和系统构建复杂且变化的系统的灵活性。例如,除许多其他示例外,可以由两个不同实体来制造或以其他方式提供管芯510、515中的每个,其中由还有的第三实体提供封装505的硅衬底。此外,多芯片封装505内的管芯和其他组件本身能够包括互连或其他通信构造(例如,535、550),它们提供用于在装置(例如,分别是510、515)内的组件(例如,525-530和540-545)之间通信的基础设施。各种组件和互连(例如,535、550)可潜在地支持或使用多个不同协议。此外,管芯(例如,510、515)之间的通信能够潜在地包括管芯上的各种组件之间通过多个不同协议的事务。由于传统解决方案采用基于试图被互连的组件(和期望事务)的特定组合的高度专业化、昂贵、且封装特定的解决方案,故设计用来提供多芯片封装上的芯片(或管芯)之间的通信的机制能够是富有挑战性的。

在此说明书内描述的示例、系统、算法、设备、逻辑和特征能够解决上文标识的问题中的至少一些,其包括本文未明确提到的潜在的许多其他问题。例如,在一些实现中,能够提供高带宽、低功率、低等待时间接口来使主机装置(例如,cpu)或其他装置连接到与主机位于相同的封装内的同伴芯片。此类多芯片封装(mcpl)能够支持多个封装选项、多个i/o协议以及可靠性、可用性和可服务性(ras)特征。此外,物理层(phy)能够包括电层和逻辑层并且能够支持更长信道长度(其包括信道长度多至并且在一些情况下超出近似45mm)。在一些实现中,示例mcpl能够以高数据速率(其包括超出8-10gb/s的数据速率)操作。

在mcpl的一个示例实现中,phy电层能够在传统的多信道互连解决方案(例如,多信道drami/o)上进行改进,从而例如通过多个特征来扩展数据速率和信道配置,这些特征除潜在的其他示例外还例如包括经调节的中间轨终止、低功率有源串扰消除、电路冗余、按位占空比校正和去偏斜、线路编码、以及传送器均衡。

在mcpl的一个示例实现中,能够实现phy逻辑层,其能够进一步帮助(例如,电层特征)扩展数据速率和信道配置同时还能够使互连能够跨电层路由多个协议。此类实现能够提供和定义模块化公共物理层,其与协议无关并且被构造成与潜在的任何现有或未来互连协议一同工作。

转向图6,示出表示包括多芯片封装链路(mcpl)的示例实现的系统的至少一部分的简化框图600。mcpl能够使用使第一装置605(例如,第一管芯,其包括一个或多个子组件)与第二装置610(例如,第二管芯,其包括一个或多个其他子组件)连接的物理电连接(例如,实现为通道的导线)来实现。在图600的高级别表示中示出的特定示例中,所有信号(在信道615、620中)能够是单向的并且能够对数据信号提供通道以既具有上游也具有下游数据传输。尽管图6的框图600将第一组件605称为上游组件并且将第二组件610称为下游组件以及将在发送数据中使用的mcpl的物理通道称为下游信道615和将用于接收数据(从组件610)的通道称为上游信道620,但应领会到装置605、610之间的mcpl能够被每个装置用于既发送也接收装置之间的数据。

在一个示例实现中,mcpl能够提供包括电mcplphy625a、b(或统称为625)的物理层(phy)以及实现mcpl逻辑phy630a、b(或统称为630)的可执行逻辑。电或物理phy625能够提供物理连接,数据通过该物理连接在装置605、610之间被传达。信号调节组件和逻辑能够连同物理phy625一起被实现以建立链路的高数据速率和信道配置能力,这在一些应用中能够牵涉在近似45mm或更长的长度的紧密聚集的物理连接。逻辑phy630能够包括用于促进计时、链路状态管理(例如,用于链路层635a、635b)以及在被用于通过mcpl进行的通信的潜在多个不同协议之间的协议复用的逻辑。

在一个示例实现中,物理phy625能够对于每个信道(例如,615、620)包括一组数据通道,带内数据能够通过这组数据通道被发送。在该特定示例中,在上游和下游信道615、620中的每个中提供50个数据通道,尽管能够使用如由布局和功率约束、期望应用、装置约束等所准许的任何其他数量的通道。每个信道能够进一步包括用于针对信道的选通脉冲信号或时钟信号的一个或多个专用通道、用于针对信道的有效信号的一个或多个专用通道、用于流信号的一个或多个专用通道、以及用于链路状态机管理或边带信号的一个或多个专用通道。物理phy能够进一步包括边带链路640,其在一些示例中除其他示例外还能够是用于协调对装置605、610进行连接的mcpl的状态转变和其他属性的双向的更低频率控制信号链路。

如上文指出的,能够使用mcpl的实现来支持多个协议。实际上,能够在每个装置605、610提供多个独立事务层650a、650b。例如,除其他外,每个装置605、610还可以支持并且使用两个或更多协议,例如pci、pcie、qpi、因特尔管芯内互连(idi)。idi是在管芯上使用以在核、最后级高速缓存(llc)、存储器、图形和io控制器之间通信的一致性协议。还能够支持其他协议,其包括以太网协议、无限带宽(infiniband)协议和其他基于pcie构造的协议。除其他示例外,逻辑phy和物理phy的组合也能够用作管芯到管芯互连以使一个管芯上的serdesphy(pcie、以太网、无限带宽或其他高速serdes)连接到在另一管芯上实现的它的上层。

逻辑phy630能够支持mcpl上这些多个协议之间的复用。例如,专用流通道能够用于对编码流信号进行断言,该编码流信号识别对在信道的数据通道上大致并发发送的数据要适用哪个协议。此外,逻辑phy630能够用于协商各种协议可以支持或请求的各种类型的链路状态转变。在一些实例中,通过信道的专用lsm_sb通道发送的lsm_sb信号能够连同边带链路640一起用于传达和协商装置605、610之间的链路状态转变。此外,传统互连的链路训练、错误检测、偏斜检测、去偏斜和其他功能性能够部分使用逻辑phy630来被代替或管理。例如,通过每个信道中的一个或多个专用有效信号通道发送的有效信号除其他示例外还能够被用于发信号通知链路活动性、检测偏斜、链路错误和实现其他特征。在图6的特定示例中,每信道被提供多个有效通道。例如,信道内的数据通道能够被捆绑或聚集(物理上和/或逻辑上)并且能够对每个集群提供有效通道。此外,除其他示例外,在一些情况下还能够提供多个选通脉冲通道,同样为了对信道中的多个数据通道集群中的每个集群提供专用选通脉冲信号。

如上文指出的,逻辑phy630能够用于协商和管理在由mcpl连接的装置之间发送的链路控制信号。在一些实现中,逻辑phy630能够包括链路层分组(llp)生成逻辑660,其能够用于通过mcpl(即,带内)发送链路层控制消息。此类消息能够通过信道的数据通道发送,其中流通道识别数据是链路层到链路层消息传递,例如链路层控制数据(除其他示例外)。除分别在装置605、610的链路层635a、635b之间的其他链路层特征外,使用llp模块660实现的链路层消息还能够帮助协商和执行链路层状态转变、功率管理、回环、禁用、重新居中、加扰。

转向图7,示出表示使用示例mcpl的特定信道中的一组通道(例如,615、620)的示例信令的图700。在图7的示例中,对信道中总共五十个(50)数据通道提供两个二十五个(25)数据通道的集群。为了方便图示特定示例,示出通道的部分,同时其他通道(例如,data[4-46]和第二选通脉冲信号通道(strb))被省略(例如,作为冗余信号)。当物理层处于活跃状态(例如,未断电或处于低功率模式(例如,l1状态)中)中时,选通脉冲通道(strb)能够被提供有同步时钟信号。在一些实现中,数据能够在选通脉冲的上升沿和下降沿二者上被发送。每个沿(或半个时钟周期)能够界定单位间隔(ui)。因此,在该示例中,能够在每个通道上发送位(例如,705),从而允许每隔7个ui发送字节。字节时期710能够定义为8个ui,或在数据通道(例如,data[0-49])的单个通道上发送字节的时间。

在一些实现中,在一个或多个专用有效信号信道(例如,valid0、valid1)上发送的有效信号能够充当先导指示符,该先导指示符用于接收装置来在向该接收装置或宿断言(高)时识别数据在接下来的时期(例如字节时期710)期间正在数据通道(例如,data[0-49])上从发送装置或源被发送。备选地,当有效信号为低时,源向宿指示宿在接下来的时期期间将不会在数据通道上发送数据。因此,当宿逻辑phy检测到有效信号未被断言(即,在通道valid0和valid1上)时,宿能够忽视在接下来的时期期间在数据通道(例如,data[0-49])上检测到的任何数据。例如,当源实际上不在发送任何数据时,在数据通道中的一个或多个上可出现串扰噪声或其他位。由于在之前的时期(例如,之前的字节时期)期间低或未断言的有效信号,宿能够确定在接下来的时期期间要忽视的数据通道。

在mcpl的通道中的每个上发送的数据能够严格地与选通脉冲信号对准。能够基于选通脉冲来定义时期,例如字节时期,并且这些时期中的每个能够对应于定义的窗口,在所定义的窗口中信号将在数据通道(例如,data[0-49])、有效通道(例如,valid1、valid2)和流通道(例如,stream)上被发送。因此,这些信号的对准能够实现对在之前的时期窗口中的有效信号适用于接下来的时期窗口中的数据的识别以及对流信号适用于相同时期窗口中的数据的识别。流信号能够是编码信号(例如,对于字节时期窗口是1字节数据),其被编码以识别适用于在相同时期窗口期间发送的数据的协议。

为了图示,在图7的特定示例中,定义字节时期窗口。在数据通道data[0-49]上注入任何数据之前,在时期窗口n(715)处进行有效断言。在接下来的时期窗口n+1(720)在数据通道中的至少一些上发送数据。在该情况下,数据在n+1(720)期间在全部五十个数据通道上被发送。因为对于之前的时期窗口n(715)的持续时间被断言有效,故宿装置能够在时期窗口n+1(720)期间验证在数据通道data[0-49]上接收的数据。另外,在时期窗口n(715)期间有效信号的先导性质允许接收装置为进入数据做准备。继续图7的示例,有效信号在时期窗口n+1(720)的持续时间期间保持被断言(在valid1和valid2上),从而促使宿装置预期在时期窗口n+2(725)期间在数据通道data[0-49]上发送的数据。如果有效信号要在时期窗口n+2(725)期间保持被断言,则宿装置能够进一步预期接收(和处理)在紧跟的时期窗口n+3(730)期间发送的额外数据。然而,在图7的示例中,有效信号在时期窗口n+2(725)的持续时间期间被解除断言,从而向宿装置指示在时期窗口n+3(730)期间将不发送数据并且在数据通道data[0-49]上检测到的任何位在时期窗口n+3(730)期间应被忽视。

如上文指出的,每信道能够维持多个有效通道和选通脉冲通道。这除其他优势外还能够帮助维持电路简单性以及在连接所述两个装置的相对冗长的物理通道的集群之中的同步。在一些实现中,一组数据通道能够分成数据通道集群。例如,在图7的示例中,数据通道data[0-49]能够分成两个二十五通道集群并且每个集群能够具有专用有效和选通脉冲通道。例如,有效通道valid1能够与数据通道data[0-24]关联并且有效通道valid2能够与数据通道data[25-49]关联。对于每个集群的有效和选通脉冲通道的每个“副本”上的信号能够是完全相同的。

如上文介绍的,流通道stream上的数据能够用于向接收逻辑phy指示对在数据通道数据通道data[0-49]上发送的对应数据要适用什么协议。在图7的示例中,流信号与数据通道data[0-49]上的数据在相同的时期窗口期间在stream上被发送,来指示数据通道上数据的协议。在备选实现中,除其他潜在修改外,流信号还能够在先前的时期窗口(例如具有对应有效信号)期间被发送。然而,继续图7的示例,流信号735在时期窗口n+1(720)期间被发送,对该流信号编码来指示对在时期窗口n+1(720)期间在数据通道data[0-49]上发送的位要适用的协议(例如,pcie、pci、idi、qpi等)。相似地,另一个流信号740能够在后续时期窗口n+2(725)期间发送来指示对在时期窗口n+2(725)期间在数据通道data[0-49]上被发送的位适用的协议,并且以此类推。在一些情况下,例如图7的示例(其中两个流信号735、740具有相同的编码,二进制ff),在相继时期窗口(例如,n+1(720)和n+2(725))中的数据能够属于相同协议。然而,在其他情况下,在相继时期窗口(例如,n+1(720)和n+2(725))中的数据能够来自对其适用不同协议的不同事务,并且除其他示例外还能够相应地对流信号(例如,735、740)编码来识别适用于数据通道(例如,data[0-49])上的相继字节的数据的不同协议。

在一些实现中,能够对mcpl定义低功率或闲置状态。例如,当mcpl上没有装置在发送数据时,mcpl的物理层(电和逻辑)能够进入到闲置或低功率状态。例如,在图7的示例中,在时期窗口n-2(745),mcpl处于静默或闲置状态中并且选通脉冲被禁用来节省功率。mcpl能够从低功率或闲置模式转变出来,从而在时期窗口时期窗口n-1(例如,705)唤起选通脉冲。选通脉冲能够完成传输前同步信号(例如,来帮助唤醒信道的通道中的每个以及宿装置并且使其同步),从而在其余非选通脉冲通道上的任何其他信令之前开始选通脉冲信号。在该时期窗口n-1(705)之后,有效信号能够在时期窗口n(715)被断言来将数据即将在接下来的时期窗口n+1(720)中到来告知宿,如上文所论述。

mcpl可以在有效通道、数据通道和/或mcpl信道的其他通道上检测到闲置条件之后重新进入低功率或闲置状态(例如,l1状态)。例如,在时期窗口n+3(730)开始并且向前可能没有检测到信令。除其他示例和原理(包括本文后来论述的那些)外,源或宿装置上的逻辑能够发起回到低功率状态中的转变,从而再次(例如,时期窗口n+5(755))导致选通脉冲在功率节约模式中进入闲置。

物理phy的电特性除其他特征外还能够包括以下中的一个或多个:单端信令、半速率转发计时、互连信道匹配以及传送器(源)和接收器(宿)的芯片上传输延迟、优化静电放电(esd)保护、压焊块电容。此外,能够实现mcpl来取得比传统封装i/o解决方案更高的数据速率(例如,接近16gb/s)和能量效率特性。

转向图8,示出简化框图800,其图示示例mcpl的示例逻辑phy。物理phy805能够连接到管芯,该管芯包括逻辑phy810和支持mcpl的链路层的额外逻辑。管芯在该示例中能够进一步包括用来支持mcpl上多个不同协议的逻辑。例如,在图8的示例中,除潜在的许多其他示例(包括其中在mcpl上支持超过两个协议或除pcie和idi以外的协议的示例)外,还能够提供pcie逻辑815以及idi逻辑820,使得管芯能够使用pcie或idi通过连接所述两个管芯的相同mcpl进行通信。

逻辑phy810能够包括链路状态机管理逻辑825,以用于连同管芯的上层逻辑的请求(例如,通过pcie或idi被接收)来协商链路状态转变。逻辑phy810在一些实现中能够进一步包括链路测试和调试逻辑(例如,830)。如上文指出的,示例mcpl能够支持通过mcpl在管芯之间发送的控制信号以促进mcpl的与协议无关、高性能和功率效率特征(除其他示例特征外)。例如,逻辑phy810能够支持与通过专用数据通道进行的数据发送和接收(例如在上文的示例中所描述)有关的对于有效信号、流信号和lsm边带信号的生成和发送,以及接收和处理。

在一些实现中,复用(例如,835)和解复用(例如,840)逻辑能够被包括在逻辑phy810中或以其他方式对逻辑phy810可访问。例如,复用逻辑(例如,835)能够用于识别要被发出到mcpl上的数据(例如,体现为分组、消息等)。复用逻辑835能够识别管理数据的协议并且生成流信号(对该流信号编码来识别协议)。例如,在一个示例实现中,流信号能够编码为两个十六进制符号的字节(例如,idi:ffh;pcie:f0h;llp:aah;边带:55h;等),并且能够在由所识别的协议所管理的数据的相同窗口(例如,字节时期窗口)期间被发送。相似地,能够采用解复用逻辑840来解释进入流信号以对流信号解码并且识别对在数据通道上与流信号并发接收的数据要适用的协议。解复用逻辑840然后能够适用(或确保)协议特定链路层处理并且促使数据被对应协议逻辑(例如,pcie逻辑815或idi逻辑820)处理。

逻辑phy810能够进一步包括链路层分组逻辑850,其能够用于处理各种链路控制功能,包括功率管理任务、回环、禁用、重新居中、加扰等。除其他功能外,llp逻辑850还能够促进通过mclp的链路层到链路层消息。对应于llp信令的数据也能够被在专用流信号通道上发送的流信号所识别,对该流信号编码来识别llp数据的数据通道。复用和解复用逻辑(例如,835、840)也能够用于生成和解释对应于llp业务的流信号,以及促使这样的业务被合适的管芯逻辑(例如,llp逻辑850)处理。同样,除其他示例外,正如mclp的一些实现还能够包括专用边带(例如,边带855和支持逻辑),例如异步和/或更低频率边带信道。

逻辑phy逻辑810能够进一步包括链路状态机管理逻辑,其能够通过专用lsm边带通道生成和接收(并且使用)链路状态管理消息传递。例如,除其他潜在示例外,lsm边带通道还能够用于执行握手来使链路训练状态提前、退出功率管理状态(例如,l1状态)。除其他示例外,lsm边带信号还能够是异步信号,因为它并未与链路的数据、有效、以及流信号对准,而转而对应于信令状态转变并且与通过链路而连接的所述两个管芯或芯片之间的链路状态机对准。除其他示例益处外,提供专用lsm边带通道在一些实施例中还能够允许消除模拟前端(afe)的传统噪声抑制和接收的检测电路。

转向图9,连同在状态转变之间使用的边带握手一起示出了简化的链路状态机转变图900。例如,reset.idle状态(例如,其中执行锁相环(pll)锁定校准)能够通过边带握手转变到reset.cal状态(例如,其中链路被进一步校准)。reset.cal能够通过边带握手转变到reset.clockdcc状态(例如,其中能够执行占空比校正(dcc)和延迟锁定循环(dll)锁定)。能够执行额外握手以从reset.clockdcc转变到reset.quiet状态(例如,对有效信号解除断言)。为了帮助在mcpl的通道上信令的对准,通道能够通过center.pattern状态而居中。

在如图16的示例中示出的一些实现中,在center.pattern状态期间,传送器能够生成训练模式或其他数据。接收器能够调节它的接收器电路来接收这样的训练模式,例如通过设定相位中介层位置和vref位置并且设定比较器。接收器能够不断地将接收的模式与预期模式比较并且将结果存储在寄存器中。在完成一组模式之后,接收器能够使相位中介层设定递增,同时使vref保持相同。测试模式生成和比较过程能够继续并且新的比较结果能够伴随反复逐步通过所有相位中介层值和通过vref的所有值的规程而被存储在寄存器中。在模式生成和比较过程全部完成时能够进入center.quiet状态。在通过center.pattern和centerquiet链路状态的通道的居中之后,能够促进边带握手(例如,通过链路的专用lsm边带通道使用lsm边带信号)以转变到link.init状态来使mcpl初始化并且能够实现在mcpl上数据的发送。

暂时回到图15的论述,如上文指出的,边带握手能够用于促进多芯片封装中管芯或芯片之间的链路状态机转变。例如,mcpl的lsm边带通道上的信号能够用于使跨管芯的状态机转变同步。例如,在满足退出状态(例如,reset.idle)的条件时,满足那些条件的边能够在它的出站lsm_sb通道上对lsm边带信号断言并且等待另一远程管芯达到相同条件并且在它的lsm_sb通道上对lsm边带信号断言。当两个lsm_sb信号被断言时,每个相应管芯的链路状态机能够转变到下一个状态(例如,reset.cal状态)。能够定义最小重叠时间,在该时间期间两个lsm_sb信号在转变状态之前应保持被断言。此外,在lsm_sb被解除断言之后能够定义最小静默时间以允许准确的回转检测。在一些实现中,每个链路状态机转变能够以此类lsm_sb握手为条件并且通过这些lsm_sb握手而得到促进。

图10是更详细的链路状态机图1000,其图示能够包括在示例mcpl中的额外链路状态和链路状态转变中的至少一些。在一些实现中,示例链路状态机除图10中图示的其余状态和状态转变外还能够包括,“被引导的环回”转变能够被提供来将mcpl的通道置于数字环回中。例如,mcpl的接收器通道能够在时钟恢复电路之后被环回到传送器通道。在一些实例中还能够提供“lb_recenter”状态,其能够用于使数据符号对准。另外,如在图9中所示,mcpl能够支持多个链路状态,除了潜在的其他示例外这包括活跃l0状态和低功率状态,例如l1闲置状态和l2睡眠状态。作为另一个示例,配置或居中状态(例如,center)能够在处于通电时被扩增或本地支持链路的重新配置,来允许重新分配链路的通道以在被确定为有故障或边缘(除其他示例外)的链路的一个或多个通道周围路由数据。

图11是简化框图1100,其图示在活跃状态(例如,l0)和低功率或闲置状态(例如,l1)之间的转变中的示例流程。在该特定示例中,第一装置1105和第二装置1110使用mcpl通信耦合。尽管处于活跃状态中,但数据通过mcpl的通道(例如,data、valid、stream等)被传送。链路层分组(llp)能够通过通道(例如,数据通道,其具有指示数据是llp数据的流信号)传达以帮助促进链路状态转变。例如,llp能够在第一与第二装置1105、1110之间发送来协商从l0进入l1。例如,mcpl支持的上层协议能够传达期望进入l1(或另一个状态)并且上层协议能够促使llp通过mcpl被发送以促进链路层握手来促使物理层进入l1。例如,图11示出发送的llp的至少一部分,其包括从第二(上游)装置1110发送到第一(下游)装置1105的“进入l1”请求llp。在一些实现和上层协议中,下游端口并未发起进入l1。除其他示例外,接收第一装置1105还能够发送“改变到l1”请求llp作为响应,第二装置1110能够通过“改变到l1”确认(ack)llp来对其进行确认。在检测到完成握手时,逻辑phy能够促使边带信号在专用边带链路上被断言来确认ack被接收并且装置(例如,1105)准备好并且在期待进入l1。例如,第一装置1105能够对发送到第二装置1110的边带信号1115进行断言以确认在链路层握手中对最后ack的接收。另外,第二装置1110还能够响应于边带信号1115来对边带信号进行断言以将第一装置的边带ack1105告知第一装置1105。随着链路层控制和边带握手被完成,mcplphy能够转变为l1状态,从而促使mcpl的所有通道被置于闲置功率节约模式,其包括装置1105、1110的1120、1125的相应mcpl选通脉冲。能够在第一和第二装置1105、1110之一的上级层逻辑请求重新进入l0(例如响应于检测到数据要通过mcpl被发送到另一装置)时退出l1。

如上文指出的,在一些实现中,mcpl能够促进支持潜在多个不同协议的两个装置之间的通信,并且mcpl能够促进根据所述多个协议中的潜在任一个协议在mcpl的通道上的通信。然而,促进多个协议能够使进入和重新进入至少一些链路状态复杂化。例如,尽管一些传统互连具有在状态转变中承担主角色的单个上层协议,但利用多个不同协议的mcpl的实现有效地牵涉到多个主角色。作为示例,如图11中所示,能够通过mcpl的实现在两个装置1105、1110之间支持pcie和idi中的每个。例如,将物理层置于闲置或低功率状态可以以从所支持的协议(例如,pcie和idi两者)中的每个首先获得的许可为条件。

在一些实例中,进入l1(或另一个状态)可以由为了mcpl的实现而被支持的所述多个被支持协议中的仅一个协议请求。尽管可存在其余协议将同样请求进入相同状态(例如,基于识别mcpl上的相似条件(例如,很少或没有业务))的可能性,但逻辑phy能够等待直到在实际促进状态转变之前从每个上层协议接收到许可或指令为止。逻辑phy能够跟踪哪个上层协议已请求状态改变(例如,已执行对应握手)并且在识别到协议中的每个已请求特定状态改变(例如从l0到l1的转变或者将影响或干扰其他协议的通信的另一转变)时触发状态转变。在一些实现中,协议关于它们对系统中其他协议的至少部分依赖性是盲目的。此外,在一些实例中,协议可以预期对进入特定状态的请求的响应(例如,来自phy),诸如对所请求的状态转变的确认或拒绝。因此,在这样的实例中,在等待来自其他被支持协议的针对进入闲置链路状态的许可时,逻辑phy能够生成对进入闲置状态的请求的合成响应来“欺骗”请求上层协议相信已进入特定状态(当在实际中通道仍然活跃时,至少直到其余协议也请求进入闲置状态为止)。除其他潜在优势外,这除了其他示例外还能够简化在多个协议之间协调进入低功率状态。

逻辑phy的实现能够包括错误检测、错误报告和错误处理逻辑。在一些实现中,除其他示例外,示例mcpl的逻辑phy还能够包括用来检测phy层去成帧错误(例如,在有效和流通道上)、边带错误(例如,涉及lsm状态转变)、llp中的错误(例如,对于lsm状态转变关键的那些错误)的逻辑。除其他示例外,一些错误检测/分辨能够委托给上层逻辑,例如适应于检测pcie特定错误的pcie逻辑,或委托给系统管理软件。在一些实现中,还能够提供错误检测和处理机制,例如除其他潜在示例外的循环冗余校验(crc)、重试缓冲器,以帮助mcpl上的位错误检测。此外,错误检测逻辑无论是在管理软件还是逻辑phy中被实现,其都能够基于确定在链路上的通道特定位错误来确定特定通道是有故障或边缘的。

mcpl端口能够由以非常高速度(例如,8gbs)操作的大量通道(例如,100个通道或更多)组成。例如,mcpl端口在每个方向上能够包括80个或更多通道(例如,总共160+个通道)。在一些实例中,mcpl链路或端口能够行进到活跃状态(l0),即使是在端口或链路的通道中的一些有故障或是“边缘的”时。这能够在一旦完成居中时而发生并且在受控的噪声和串扰环境中对于有限的时间发生。通道也可以随着时间例如由于自热、电迁移、老化、封装瑕疵和其他原因而变成是边缘的。边缘通道能够导致整个链路失效。因此,识别已变成边缘的通道并且在发生链路失效之前这样做是值得期望的。边缘通道的识别能够允许采取校正动作,例如重新配置链路。在一些情况下,边缘通道的发现和校正能够动态执行,而不使链路和对应系统掉电。这例如在其中期望恒定操作的系统(例如在要求24x7操作的服务器系统中)中能够是有益的。识别有压力的通道也能够有助于调整用于过程或封装改变的居中算法以及改进制造测试。

在高速下监测甚至单一操作通道的模拟质量能够是困难的。一个常规解决方案一直是提供模拟视图别针(viewpin)以允许测试设备接入有问题通道。然而,在具有大量通道(例如,100+个通道)的系统中,该方法能够是不尽如人意的。此外,识别大量通道中的特定一个能够是困难的。另外,即使能够识别特定边缘通道,动态重配置链路以计及边缘通道能够是昂贵的且造成混乱。例如,尽管qpi链路拥有用于在硬故障已经发生之后识别它们的功能性且在坏通道周围进行重新配置,但此类常规解决方案导致带宽减少以及其他问题。

在一个实现中,能够提供mcpl逻辑,其包括识别特定边缘通道并且自主采取动作以在产生硬故障之前替换边缘通道而不引起系统崩溃的能力。在高速链路上发送的分组能够受到校验和、奇偶性以及允许分组中的位错误被检测的其他值的保护。在一个示例中,在mcpl链路上发送的协议中的至少一些能够通过crc来被保护。对于crc,特定的对应分组被视为galois域多项式(例如,gf(2)),其被除以crc多项式。余数或校验和然后能够在传送之前附加到分组。在接收末端,接收器能够尝试执行相同计算。如果在分组中不存在位错误,则相同操作将总是产生固定余数(或检验子)。然而,出错的位将致使检验子与固定的检验子不同。

在一个特定示例中,在通过mcpl发送的数据类型中的每个中能够使用公共crc。例如,16位crc多项式能够被添加到通过mcpl发送的(不同协议的)微片(flit)、分组或其他数据中的每个。在一个示例中,能够选择crc多项式使得从crc生成的crc检验子能够用于识别特定位错误,所述特定位错误然后能够被映射到链路的特定通道。在一个示例中,0x1f05316位多项式计算的检验子性质能够用于识别坏的通道。此类crc多项式能够拥有允许mcpl微片上的全部1、2、3位错误和几乎所有4位错误得以被识别的能力。

转向图12,示出了简化框图1200,其表示在硬件和/或软件中实现的组件,所述组件能够被提供用来在一些实例中从在crc错误计算期间识别的crc检验子值来识别问题通道。例如,第一装置1205能够通过mcpl1215耦合于第二装置1210。第一装置1205在该示例中在特定事务(或实例)中能够是传送装置并且通过mcpl1215向第二接收装置1210发送数据。(应领会到的是,在其他实例中,除其他示例外,装置1210还能够作为传送装置通过mcpl向装置1205发送数据。)第一装置1205能够包括逻辑1220,逻辑1220用来生成一个或多个微片以用于跨mcpl1215的传输。要通过mcpl发送的分组、消息或数据的其他表达能够包括一个或多个微片。每个微片能够包括使用crc生成器1225计算和编码的crc值。微片能够通过链路1215发送到第二接收装置1210。第二装置1210能够包括用来接收微片并且对微片解码或以其他方式识别微片(包括报头值、隙值和crc值(例如,使用crc校验逻辑1230))的逻辑。

接收装置能够使用所接收的微片中的crc值来识别微片中的位错误。在一些实现中,接收装置能够从所接收的微片的余下的位重新生成crc并且将重新生成的crc值与接收的crc值比较(例如,使用crc校验逻辑1230)来确定位错误。能够响应于微片中的错误(以及重新生成的crc值与接收的crc值之间的失配)而在比较期间生成(例如,使用crc校验逻辑1230)错误校验和(或残余或“检验子”)。在一些情况下,能够在接收装置处在微片的有效载荷部分上重新生成crc期间生成检验子并且重新生成的crc能够与接收的crc值相比较(例如通过逐位xor比较),其中由该比较产生的值体现检验子。在另一个示例中,能够在接收装置处对整个微片(即,包括接收的crc字段)执行crc,其中该操作的结果体现检验子。检验子能够在接收器处使用硬件或固件生成,或备选地,除其他潜在实现外,检验子还能够由软件(例如监管接收器和链路的操作的软件)生成。在一个特定实现中,在从16位crc值检测到错误时能够生成16位检验子值。其他实现能够使用其他错误残余值。

由接收装置(例如,由crc校验逻辑1230)所确定的检验子值(例如,1240)能够传达给在硬件和/或软件中实现(或甚至在第一和第二装置1205、1210中的一个处)的通道监测器模块1250或以其他方式变得对通道监测器模块1250可用。通道监测器1250能够包括位错误检测模块1255,其包括用来将检验子值映射到微片中的特定位(或多个位)的逻辑。能够从被适应于微片的组织的crc多项式生成crc值,使得独特的检验子值从错误集(例如如下的错误集,其包括在微片的位中的任一个上的任何单个位错误、影响微片的任何两个连续位的任何单个两位错误)中的任何指定一个产生。因此,位错误检测模块1255能够从检验子1240确定其中发生位错误的微片的一个或多个特定位。位错误检测模块还能够从检验子确定错误类型,例如单个位错误或两个位错误等。

在一些实例中,微片的位能够在多个不同微片中的相同相应通道中被传送。因此,映射能够被维持并确定(例如,使用位到通道映射模块1260)以将影响指定位的错误映射到它的链路相应通道。在其他情况下,例如当微片在部分宽度链路状态期间或在通道逆转条件期间被传送时,能够更多地牵涉到将所检测的受错误影响的位映射到传送它所在的通道。在一些实现中,通道错误监测器1250能够从接收装置1210(和/或传送装置1205)或从其他资源(例如,对应于链路的寄存器)接收额外数据,其指示在发送微片时对应通道的条件。此类额外信息能够包括例如调和相数的物理层微片、物理层链路宽度指示符、示出是否使用链路逆转的指示符等。使用这样的信息,位到通道映射模块1260能够确定在发送特定微片中使用的通道并且由此确定在传输期间使用的位排序以确定发送每个微片位所在的特定通道。采用该方式,位到通道映射模块1260能够对于至少一些位错误从检验子确定发生位错误所在的通道。位到通道映射模块1260能够记录或报告用于通道错误监测器1265的该信息。通道错误监测器1265能够维持记录、计数器、或对指定链路(例如,1215)的每个通道指示在通道上检测的错误的数量和频率(例如,基于使用位错误检测1255和位到通道映射模块1260确定的所报告的链路错误)的一些其他数据。

在一个示例中,通道错误监测器1250能够维持一个或多个表来记录在逐通道基础上确定的位错误。概率决策算法能够被通道错误监测器1265用于确定,在一段时间期间统计上显著数量的位错误在链路的指定通道上被检测到。除其他示例外,统计显著值还能够是在该时期内确定的错误的阈值数量、能够是超出通道的定义阈值错误率的错误率。除了在确定通道的错误何时超出阈值或其他可接受值时的其他因子外,算法还能够考虑通道已经活跃(例如,在l0状态中或在部分宽度状态期间保持活跃,等等)的时间量、已被发送的位的数量。基于识别在指定通道上出现的统计上显著数量的位错误,通道错误监测器1265能够确定通道是边缘或有故障通道并且在该通道的问题在整个mcpl中引起故障之前这样做。

在确定链路的一个或多个通道遇到问题时,基于从检验子值1240和/或校验和比较值1280对通道确定的统计上显著数量的位错误,能够调用通道管理器1270在通道上执行动作或命令装置1205、1210中的一个或两个进入重配置状态来校正问题。例如,被确定为“坏”的通道能够促使mcpl被重新居中并且被重新配置成丢弃坏通道并对链路的不同物理通道重新分配逻辑通道。

图13a-13c图示对于各种类型的数据的示例mcpl的数据通道上的示例位映射的表示。例如,示例mcpl能够包括五十个数据通道。在mcpl上发送的一些形式的业务可使用少于所提供的全部数量的通道。图13a图示能够在8ui符号或窗口内通过数据通道发送的第一协议(例如idi)中的示例16字节隙的第一位映射。例如,在所定义的8ui窗口内,能够发送三个16字节隙(包括报头隙)。在该示例中,余下数据的两个字节,它们能够在五十个通道链路上被发送并且这些余下的两个字节能够被用于crc位(即,在通道data[0]和data[1]中)、16位0x1f053crc多项式值,例如上文所论述。

在另一个示例中,图13b图示对于通过示例mcpl的五十个数据通道发送的pcie分组数据的第二示例位映射。在图13b的示例中,16字节分组(例如,事务层(tlp)或数据链路层(dllp)pcie分组)能够通过mcpl发送。在这些符号中能够包括成帧令牌并且它们用于定位每个分组的起始和结束。在pcie的一个示例中,在图13b的示例中使用的成帧能够与以8gt/s对pcie实现的那些令牌相同。在8ui窗口中,能够发送三个pcie分组(例如,数据链路层分组(dllp)或事务层分组(tlp)),其中余下的两个字节的带宽在窗口内处于未被使用。如在图13a的示例中那样,这两个余下的字节能够被用于在允许使用crc检验子对位错误进行逐位识别的其他协议(例如,idi)中使用的相同的16位0x1f053crc多项式。

在图13c中图示的还有的另一个示例中,示出通过示例mcpl发送的链路到链路分组(例如,llp分组)的示例位映射。根据示例实现内的容错和错误检测,llp每个能够是4字节并且每个llp(例如,llp0、llp1、llp2等)能够连续四次被发送。例如,未能接收四个连续的完全相同的llp能够指示错误。另外,如与其他数据类型一样,在进行的时间窗口或符号内未能接收到valid也能够指示错误。在一些实例中,llp能够具有固定隙。另外,在该示例中,字节时期中未使用的或“备用”位能够致使逻辑0通过余下的通道传送。除其他示例外,这些自由通道还能够扩增以允许传输16位0x1f053crc多项式,从而允许也在llp分组中检测到位错误。除了这些示例外,还能够支持其他示例数据类型或流类型。另外,能够对这些和其他数据类型采用备选位映射并且备选位映射能够在逐通道基础上在位错误的识别中使用。作为示例,尽管示例中的一些以最低有效位编号的通道(例如,集群的最低有效位编号的通道)开始“从右向左”映射位,但除其他示例外,其他实现(包括相同系统内的其他链路)还可以从最高有效位编号的通道(或“从左向右”)映射通道。

根据上文,关于微片错误,目前的微片映射能够被保存或以其他方式变得对位到通道映射逻辑可识别。该状态能够连同检验子一起保存以允许软件(例如,位到通道映射逻辑)对错误的通道位点解码。能够定义可能的微片映射集以供在链路上使用。转向图14-1、14-2、14-3,示出了对从由微片中的单个位错误产生的crc值计算的检验子值的映射的表示。此类映射能够在检验子解码器表中实现,该检验子解码器表能够用于对出现指定位错误所在的通道解码。例如,在图14-1、14-2、14-3中表示的映射图示对于400位(或更小)微片中的单个位错误的映射。应领会到的是,图14-1、14-2、14-3的表示能够在一些实现中仅仅代表映射的一部分,其中生成额外的独特crc检验子值来将检验子映射到大于400个位的分组和微片中的单个位错误。例如,crc的使用能够被扩展以对于超过400个位的分组、微片或数据分组(例如对于通过mcpl的五十个通道发送的数据的1字节窗口)生成独特检验子值。

能够选择crc多项式使得对于微片中的每个可能的单个位错误能够存在独特检验子值,如在图14-1、14-2、14-3中所示。作为示例,在该实现中当单个位错误影响微片的位50时,能够总是产生0xcc48的检验子值。作为另一个说明,当单个位错误影响微片的位229时,能够总是产生0xb8d3的检验子值(在该示例实现中),且以此类推。实现此类映射能够通过确定和使用适应于对特定微片布局(和phit格式)生成此类独特值的特定crc多项式来完成。例如,在图14-1和14-2的示例中,能够选择crc多项式0x1f053来生成16位crc,其能够实现位特定错误检测。针对对于微片中的每个单个位错误允许独特单个位crc检验子值的指定微片格式也可以存在多个其他crc多项式。软件能够用于测试可能对于指定微片格式新出现的位错误的组合并且进一步对于一系列不同的候选crc多项式确定哪些多项式产生对于每个不同微错误是独特的crc检验子值。

转向图15-1、15-2和15-3,示出第二检验子解码器表1500,其对应于示例400位微片和从示例crc多项式(例如,0x1f053)生成的对应crc。检验子解码器表1500将检验子映射到可能在400个连续位集中出现的完整的两位错误(即,连续位错误)集,而不是映射到单个位错误。因此,在一些实现中,除其他示例外,还能够选择和使用crc多项式,其不仅对于微片上的每个可能的单个位错误而且对于所有可能的两位错误产生独特crc检验子值。作为示例,在该实现中当双位错误影响微片的位228和229的组合时,能够总是产生0x1c93的检验子值。作为另一个说明,当双位错误影响微片的位99和100时,能够总是产生0xae58的检验子值(在该示例实现中),并且以此类推。自然地,应领会到的是,图14-1、14-2、14-3、15-1、15-2、15-3中示出的示例对如下的示例实现是特定的,该示例实现用来提供用于能够通过mcpl发送的所述多个协议中的任一个的微片的16位crc值。然而,这些相同的原理能够适用于其他互连链路技术。此外,应领会到的是,一些crc多项式除单个位和两位错误以及其他示例外(或作为其备选),还可导致对其他位特定错误的独特检测。

到一个或多个微片位的位错误映射(例如通过检验子解码器表实现)能够用于将位错误映射到用于发送受位错误影响的对应微片的一个或多个相应通道。例如,能够在其中从事务的微片的crc值确定对应位错误的对应事务中接收(例如,从所牵涉的特定装置)检验子。通道监测器能够确定在检验子解码器表(例如,1400、1500)的集中的一个中是否包括检验子值。如果是的话,适当的检验子解码器表能够用于识别出错的微片内的位号(以及多个位是否出错)。如果在可用检验子解码器表中不包括检验子,则错误可能不能被映射到特定位或通道(例如,在其中多个非连续位错误影响微片的实例中)。在其中包括检验子值的表被识别的情况下,一个或多个特定位能够识别为受错误影响并且然后能够对出错的被识别位确定位到通道映射以确定出错的位在互连的链路上的多个通道中的指定一个上被发送。通道号能够例如通过首先确定其中检测到错误(例如,从对应流id)的数据的类型而被解码。能够确定和使用对应于数据类型的相应位到通道映射(例如,图13a-13c)。此外,除其他示例因素和考虑外,使用的位到通道映射也能够通过确定任何通道(之前)是否已在端口上引退(例如,由于通道是边缘的)、在通道集群内分配通道所采用的方式、对应集群的哪些通道闲置、是否应用(以及应用哪个)调和相位以及是否应用通道逆转而受到影响。

转向图16,示出了表示包括mcpl的示例实现的系统的至少一部分的简化框图1600,其包括用于实现mcpl的数据通道的集群1605-1615。该系统能够包括mcpl逻辑phy630和mcpl物理phy625。通道的集群(例如共同集群1620和锁相环(pll)集群1625)能够用于提供针对计时和控制的通道,例如除其他通道外的用于mcpl的边带、流、选通脉冲和有效通道的通道。在一个示例中,控制通道集群1605能够包括一个或多个闲置或未使用的通道。这些通道能够在控制通道中的一个或多个变成边缘的事件中被使用,其中边缘控制通道被重新分配给未使用的通道中的一个。相似地,数据通道1605-1615的集群中的每一个能够被提供定义数量的通道。在一些实现中,通道能够在集群基础上分配给指定mcpl。例如,在一个示例中,数据通道的每个集群能够包括二十个物理通道。如果mcpl要包括五十个通道,则三个二十个通道集群能够分配给mcpl来提供五十个(或实际中,六十个)通道。因为并非全部的分配集群将被分配用于在mcpl中使用,故在分配的通道中的一个变成边缘的情况下能够使用附加的未使用通道(例如,10个通道)。

如上文指出的,在mcpl上发送的数据的每个微片中能够包括crc检验子,而不管数据(或流)类型如何。在使用检验子的情况下,能够识别个体位错误并且将其映射到被分配以供在mcpl中使用的对应物理通道。在对于特定物理通道识别阈值或统计上显著数量的位错误后,逻辑phy、软件管理系统或其他逻辑能够确定该特定通道是边缘的。为了避免该边缘通道导致的系统故障,能够在不引起系统崩溃的情况下重新配置mcpl。在一个示例中,通道的逻辑分配能够远离边缘通道朝mcpl中使用的数据通道集群中的未使用通道块移动。通道的该重新配置能够促使对在mcpl中使用的通道的重新路由并且能够包括促使mcpl进入允许进行重新配置的链路状态。

在一个示例中,能够实现修改的重新居中链路状态和过程并且边带通道能够用于与传送和接收装置通信来安排重新配置。例如,基于软件或硬件的通道管理器能够使用mcpl边带来引导远程传送器重新配置链路以促使将边缘通道的左边(或右边)的每个通道的业务被重新路由其近邻远离边缘通道。由重新配置的mcpl所采用的未使用通道由于它已参与在mcpl初始化(例如,在l0状态期间承载加扰的“0”值)期间执行的起初居中,故可以准备好进行数据传输,从而允许数据在重新配置之后立即在未使用通道上被发送。除其他效率外,这还能够允许重新配置使用prbs放弃重新居中。在其他实例中,未使用的通道在l0数据传送状态期间保持闲置来节约功率。在这些实例中,能够执行重新配置(同样,不引起链路崩溃),但其中在重新配置和重新居中状态两者中使用prbs。

通过使通道的一部分重新路由到相邻通道(和一个未使用通道)来重新配置链路以计及识别的边缘通道能够使整体路由影响最小化。进行传送和/或接收装置重新路由的通道复用器能够执行重新路由。在一些实现中,通道复用器能够在软件或逻辑phy630中实现,而在其他实现中,通道复用器能够在物理phy625的硬件中实现。在一些示例中,通道复用器能够合并到其他复用器,例如逻辑phy630中的环回从装置(slave)和通道逆转复用器。在一些实例中,除其他示例考虑外,通道复用器还能够有利地在软件或逻辑phy630中实现以避免由其他电路以及在一些数据通道集群边界处的控制通道集群(例如,公共集群)产生的复杂化。

转向图17a-b,图示链路的重新配置的示例实现。例如,在图17a中,图示n个通道的集群。在该示例中,在配置mcpl之后分配集群中的总共y+2个通道(在1705)。因此,在初始配置后,对物理通道0至x+2分配编号为0至y+2的(逻辑)通道。在该示例中,mcpl中的空通道定位在被用于形成mcpl的集群中的一个的最高有效位通道(在该情况下,通道x+3至n)上。继续该示例,通道x能够例如基于对使用crc检验子(例如上文描述的)映射到通道的重复的位错误的检测而被确定是边缘的。为了对边缘通道x进行寻址,链路上的两个装置(例如,1710、1715)能够进入重新配置(和/或重新居中)状态并且在所分配的通道的一部分上重新路由业务来停用边缘通道x并且用未使用的通道中的一个代替它。例如,因为空通道“跟着”活跃通道(和边缘通道x),重新配置能够促使“跟着”边缘通道的通道分配来在开放通道的方向上转换1720到相邻物理通道(如在1725中示出的)。因此,最高有效位被分配的通道号y+2能够移动到之前未使用的物理通道x+3,y+1能够移动到x+2,并且起初分配给边缘通道x的通道号y能够移动到物理通道x+1。边缘通道x在移动1720之后能够处于未被使用。在一些情况下,该重新配置改变能够是永久的,其中通道x被考虑为永久边缘以及不能使用。

图17b图示对连接装置1730、1735的mcpl的重新配置的另一个示例。在该示例中,通道编号0至y+n起初被分配(在1740)给物理通道x-3至n。在该示例中还存在附加的未使用物理通道,例如通道0至x-4。在该示例中,未使用的通道占用链路的最低有效位物理通道(例如,通道0至x-4),而不是占用链路的最高有效位物理通道。在该示例中,物理通道x再次被确定是边缘的,从而触发链路的重新配置。然而,考虑到空通道在该示例中“先于”边缘通道x,“先于”边缘通道的所有通道在与图17a中的移动相反的方向上再次朝未使用的通道移动1745。例如,通道号y从边缘通道x移动到通道x-1,通道号y-1从物理通道x-1移动到x-2,通道号y-3从通道x-3移动到之前未使用的通道x-4,并且以此类推(如在1750处示出的)。因此,在确定如何在重新配置步骤中移动和重新分配通道中,逻辑能够识别用于实现链路(例如,mcpl)的数据通道的通道集群中的未使用通道的位点,并且能够从边缘通道朝空通道移动通道,如图17a-17b的示例中的一样。

例如,当活跃数据通道i中的一个被包括在分配的集群中的一个中时。其他实例可以定义具有不同数量的通道的mcpl或数据通道集群,其中对应数量的集群分配给单个mcpl,并且不同数量的未使用通道仍然来自所分配集群中的一个中。不管实现如何,留在所分配集群中的未使用数据通道能够被保留以重新分配被确定为边缘的另一个数据通道。

图18a-18b示出流程图1800a-b,其图示用于检测和纠正互连链路(例如mcpl)上的边缘通道的示例技术。例如,如在图18a中示出的,能够接收1805微片,其中错误码(例如,crc)被嵌入1805在链路上的数据微片中或连同链路上的数据微片一起被发送。备选地,除其他示例外,还能够通过其他机制来检测错误,例如通过在通道上校验奇偶性。链路能够使用相同链路对多个不同类型(或协议)的数据的发送进行时间复用。错误码能够(例如,由接收装置)用于检测1810一个或多个位错误。例如,错误码能够实现对应检验子的生成,其能够指示微片的哪些位出错。特定位错误能够被映射1815到用于发送错误位的链路的特定通道。到通道的位错误映射能够基于哪个协议适用于微片,其中不同协议潜在地有差别地将位映射到通道。所检测的位错误能够与特定通道关联1820并且能够用于检测边缘的通道(例如,基于比特定通道上出现的位错误的平均数量高)。

转向图18b,特定通道能够被确定1830是边缘的。确定1830能够例如基于根据在图18a的示例中描述的技术对在特定通道上出现的多个位错误的检测。确定1830通道是边缘的能够激起链路的重新配置来对至少一个空或未使用的通道重新分配数据以停用边缘通道。这能够例如通过识别1835被用于形成链路的通道集群中的空通道来完成。在边缘通道与空通道之间可以存在连续通道集。在一些情况下,空通道能够是集群中的一段空通道中的第一个。通道的重新配置1840和重新分配能够牵涉使集中的每个通道(包括边缘通道)的分配朝空通道且远离边缘物理通道移动。从而,用于集中的每个通道的数据在重新配置1840之后要在邻近它起初分配的物理通道(在空通道的方向上)的物理通道上发送。空通道中的一个由于移动而被采用作为链路中的被分配通道并且边缘通道处于未被分配。未被包括在集中的链路的通道仍然保持如起初分配时的那样。该重新配置1840能够在系统是活动(例如通过转变到重新配置链路状态,例如居中状态)的时候发生,并且数据传输能够在重新配置1840之后的新近分配通道上自动恢复1845。

注意,上文所描述的设备、方法和系统可以在如上述的任何电子装置或系统中实现。作为特定说明,下文的图提供用于使用如本文描述的本发明的示范性系统。由于下文的系统被更详细地进行描述,许多不同的互连从上文的论述被公开、描述和再次浏览。并且正如容易显而易见的是,上文所描述的进步可以适用于那些互连、构造或架构中的任一个。

现在参考图19,示出根据示范性实施例的系统1900的示例实现。如图19中所示,多处理器系统1900是点到点互连系统,并且包括经由点到点互连1950而耦合的第一处理器1970和第二处理器1980。处理器1970和1980中的每个可以是某一版本的处理器。在一个实施例中,1952和1954是串行点到点一致互连构造(例如高性能架构)的部分。因此,本发明可以在qpi架构内实现。

尽管仅示出有两个处理器1970、1980,但要理解本发明的范围并非如此地被限制。在其他实施例中,在指定处理器中可以存在一个或多个额外处理器。

示出处理器1970和1980,其分别包括集成的存储器控制器单元1972和1982。处理器1970还包括作为它的总线控制器单元的部分的点到点(p-p)接口1976和1978;相似地,第二处理器1980包括p-p接口1986和1988。处理器1970、1980可以使用p-p接口电路1978、1988经由点到点(p-p)接口1950来交换信息。如图19中所示,imc1972和1982使处理器耦合于相应的存储器,即存储器1932和存储器1934,它们可以是本地附连到相应处理器的主存储器的部分。

处理器1970、1980各自使用点到点接口电路1976、1994、1986、1998经由单独p-p接口1952、1954与芯片集1990交换信息。芯片集1990还经由接口电路1992沿高性能图形互连1939与高性能图形电路1938交换信息。

共享高速缓存(未示出)可被包括在任一处理器中或在两个处理器外部;仍然经由p-p互连与处理器连接,使得如果处理器被置于低功率模式则任一或两个处理器的本地高速缓存信息可被存储在共享高速缓存中。

芯片集1990可以经由接口1996耦合于第一总线1916。在一个实施例中,第一总线1916可以是外围组件互连(pci)总线,或例如pci高速总线或另一个第三代i/o互连总线的总线,尽管本发明的范围并非如此地被限制。

如图19中所示,各种i/o装置1914连同总线桥1918一起耦合于第一总线1916,该总线桥1918使第一总线1916耦合于第二总线1920。在一个实施例中,第二总线1920包括低引脚计数(lpc)总线。各种装置耦合于第二总线1920,其包括例如键盘和/或鼠标1922、通信装置1927以及存储单元1928(例如盘驱动器或其他大容量存储装置,其在一个实施例中通常包括指令/代码和数据1930)。此外,示出音频i/o1924,其耦合于第二总线1920。注意,其他架构是可能的,其中所包括的组件和互连架构不同。例如,代替图19的点到点架构,系统可以实现多点总线或其他此类架构。

尽管已经关于有限数量的实施例描述了本发明,但本领域内技术人员将领会到来自其的许多修改和变化。随附的权利要求旨在涵盖落入该提出的发明的真正精神和范围内的所有此类修改和变化。

设计可经历各种阶段,从创建到模拟到制造。表示设计的数据可以采用许多方式来表示该设计。首先,如在模拟中是有用的,硬件可以使用硬件描述语言或另一个功能描述语言来表示。另外,具有逻辑和/或晶体管门的电路级模型可在设计过程的某些阶段产生。此外,大部分设计在某个阶段达到表示硬件模型中各种装置的物理布局的数据水平。在其中使用常规半导体制造技术的情况中,表示硬件模型的数据可以是如下数据,这些数据规定用于用来生产集成电路的掩模的在不同掩模层上的各种特征的存在或不存在。在设计的任何表示中,数据可以采用任何形式的机器可读介质被存储。存储器或磁或光存储装置(例如盘)可以是用来存储经由光波或电波传送的信息的机器可读介质,其中光波或电波被调制或用别的方式生成以传送此类信息。当传送指示或承载代码或设计的电载波时,就执行电信号的复制、缓冲或重传来说,做出新的副本。从而,通信提供商或网络提供商可以将例如被编码到载波中的信息的产品至少暂态地存储在有形、机器可读介质上,其体现本发明的实施例的技术。

在本文中使用时,模块指硬件、软件和/或固件的任何组合。作为示例,模块包括硬件,例如微控制器,其与非暂态介质关联来存储适应于由该微控制器执行的代码。因此,在一个实施例中,对模块的引用指如下的硬件,该硬件具体配置成识别和/或执行在非暂态介质上保持的代码。此外,在另一个实施例中,模块的使用指包括代码的非暂态介质,该代码具体适应于由微控制器执行以执行预定的操作。并且正如能够被推断的是,在还有的另一个实施例中,术语模块(在该示例中)可以指微控制器和非暂态介质的组合。通常,图示为分开的模块边界通常变化并且潜在地重叠。例如,第一和第二模块可以共享硬件、软件、固件,或其组合,同时潜在地保留一些独立硬件、软件或固件。在一个实施例中,术语逻辑的使用包括例如晶体管、寄存器的硬件或例如可编程逻辑装置的其他硬件。

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

此外,在一个实施例中,短语‘以’、‘能够’和或‘可操作以’的使用指一些设备、逻辑、硬件和/或元件采用某种方式被设计,使得能够采用规定方式使用这些设备、逻辑、硬件和/或元件。如上文所指出,在一个实施例中对以、能够或可操作以的使用指设备、逻辑、硬件和/或元件的潜在状态,其中设备、逻辑、硬件和/或元件不在操作但采用某种方式被设计,使得能够采用规定的方式使用设备。

在本文中使用时,值包括数字、状态、逻辑状态或二进制逻辑的状态的任何已知表示。通常,逻辑水平、逻辑值、或逻辑的值的使用也称为1和0,其简单地表示二进制逻辑状态。例如,1指高逻辑水平并且0指低逻辑水平。在一个实施例中,例如晶体管或闪速单元的存储单元可能够保持单个逻辑值或多个逻辑值。然而,在计算机系统中使用值的其他表示。例如,十进制数字十也可表示为1010的二进制值和十六进制字母a。因此,值包括能够保持在计算机系统中的信息的任何表示。

此外,状态可以由值或值的部分表示。作为示例,例如逻辑一的第一值可以表示默认或初始状态,而例如逻辑零的第二值可以表示非默认状态。另外,术语重设和设置在一个实施例中分别指默认和更新的值或状态。例如,默认值潜在地包括高逻辑值,即重设,而更新值潜在地包括低逻辑值,即设置。注意,可以使用值的任何组合来表示任何数量的状态。

上文所阐述的方法、硬件、软件、固件或代码的实施例可以经由存储在机器可访问、机器可读、计算机可访问或计算机可读介质上的由处理元件可执行的指令或代码实现。非暂态机器可访问/可读介质包括采用由机器(例如计算机或电子系统)可读的形式提供(即,存储和/或传送)信息的任何机构。例如,非暂态机器可访问介质包括随机存取存储器(ram),例如静态ram(sram)或动态ram(dram);rom;磁或光存储介质;闪速存储器装置;电存储装置;光存储装置;声存储装置;用于保持从暂态(传播的)信号(例如,载波、红外信号、数字信号)接收的信息的其他形式的存储装置;等,其要与可从其处接收信息的非暂态介质区别开。

用于对逻辑进行编程以执行本发明的实施例的指令可以存储在系统中的存储器内,例如dram、高速缓存、闪速存储器或其他存储装置等。此外,指令能够经由网络或通过其他计算机可读介质被分发。从而,机器可读介质可以包括用于采用由机器(例如,计算机)可读的形式存储或传送信息的任何机构,但其并不限于软磁盘、光盘、紧凑盘、只读存储器(cd-rom)、以及磁光盘、只读存储器(rom)、随机存取存储器(ram)、可擦除可编程只读存储器(eprom)、电可擦除可编程只读存储器(eeprom)、磁或光卡、闪速存储器或有形的机器可读存储装置,其在经由电、光、声或其他形式的传播信号(例如,载波、红外信号、数字信号等)通过互联网传送信息中被使用。因此,计算机可读介质包括任何类型的有形机器可读介质,其适合于采用由机器(例如,计算机)可读的形式存储或传送电子指令或信息。

下面的示例关于根据该说明书的实施例。一个或多个实施例可以提供设备、系统、机器可读存储装置、机器可读介质、和/或方法,用来在物理链路的多个数据通道上接收第一数据、在流通道上接收对应于第一数据的流信号(其识别第一数据的类型)、识别第一数据中特定类型的错误检测码的第一实例、在多个数据通道的至少一部分上接收第二数据、在流通道上接收对应于第二数据的流信号(其识别第二数据的类型)、以及识别第二数据中特定类型的错误检测码的第二实例。流通道是物理链路的通道中的另一通道,并且在一些实例中,第二数据的类型与第一数据的类型不同。

在一个示例中,特定类型的错误检测码是循环冗余校验(crc)码。

在一个示例中,第一数据中的crc码和第一数据中的crc码基于公共crc多项式。

在一个示例中,错误检测码在第一数据中多个通道的一个或多个特定通道上被发送并且错误检测码在第二数据中多个通道的一个或多个其他通道上被发送。

在一个示例中,相比第一数据,多个通道中更少的通道被用于发送第二数据。

在一个示例中,提供通道错误检测逻辑(在硬件电路和/或软件中)来从与对应于第一数据的错误检测码关联的检验子确定在第一数据中存在位错误、从检验子确定第一数据中的哪个位出错以及将出错的位映射到多个通道中的特定一个。

在一个示例中,位错误要与特定通道关联。

在一个示例中,从对应于第一数据的错误检测码生成检验子。

在一个示例中,将出错的位映射到多个通道中的特定一个基于第一数据的类型。

在一个示例中,多个通道中的特定一个被识别为边缘的并且多个通道中的至少一个未被使用。链路能够重新配置成在特定通道上中断路由数据并且用所述至少一个未使用的通道来代替特定通道。

在一个示例中,重新配置链路包括对多个通道中的一组通道进行重新路由,以使该组中的每个通道移动到远离特定通道并且朝向所述至少一个未使用的通道的相邻通道。

在一个示例中,每个数据类型对应于多个不同通信协议中的相应一个。

在一个示例中,物理层逻辑要接收与至少第一数据关联的有效信号以指示第一数据有效。

在一个示例中,物理层逻辑进一步要对要在数据通道上发送的数据定义数据窗口,并且该数据窗口对应于有效信号。

一个或多个实施例可以提供设备、系统、机器可读存储装置、机器可读介质、和/或方法,用来对要在物理链路的多个数据通道上发送的第一数据确定第一错误校正码、在多个数据通道上发送具有第一错误校正码的第一数据、对要在物理链路的数据通道的至少一部分上发送的第二数据确定第二错误校正码、以及在数据通道的至少部分上发送具有第二错误校正码的第二数据。第一和第二数据能够是具有不同类型或协议的数据。第一错误校正码和第二错误校正码各自能够是相同错误校正码类型的实例。

在一个示例中,错误校正码类型包括循环冗余校验(crc)码,并且第一错误校正码和第二错误校正码每个是从特定crc多项式生成的crc的实例。

在一个示例中,其中特定crc多项式配置成允许从根据特定crc多项式计算的crc码生成检验子,并且这些检验子每个对应于微片中的具体对应位上的相应位错误。

一个或多个实施例可以提供设备、系统、机器可读存储装置、机器可读介质、和/或方法,用来识别链路的多个通道中的特定一个是边缘的,其中所述多个通道中的至少一个未被使用。链路然后重新配置成在特定通道上中断路由数据并且用所述至少一个未使用的通道来代替特定通道,其中重新配置链路包括将所述多个通道的子集中的每个通道的数据重新路由到所述多个通道中的相邻通道。

在一个示例中,特定通道基于到特定通道的位错误映射而被识别为边缘的,并且位错误根据在通过链路发送的数据中所包括的错误码生成的检验子值被检测。

在一个示例中,特定通道基于映射到特定通道的被检测位错误的阈值数量而被识别是边缘的。

在一个示例中,多个不同协议的多个微片要使用链路发送。

一个或多个实施例可以提供这样的系统,其包括互连,该互连包括多个通道,其中所述多个通道包括多个专用数据通道、至少一个专用有效信号通道、和至少一个流信号通道,并且流通道识别多个不同协议中的哪个要使用数据通道在对应微片中发送。系统能够进一步包括用来通过数据通道发送数据的第一装置(该数据包括循环冗余校验(crc))和使用互连在通信上耦合于第一装置的第二装置,该第二装置用来接收数据并且基于crc确定影响所述多个数据通道中的具体一个的错误。

在一个示例中,系统进一步包括通道错误管理器,用于识别所述多个数据通道中的特定一个是边缘的,其中所述多个数据通道中的至少一个未被使用,并且对数据通道重新路由以中断使用特定通道并且用所述至少一个未使用的通道来代替特定通道,其中对数据通道进行重新路由包括将所述多个数据通道的子集中的每个通道的数据重新路由到所述多个通道中的相邻通道。

在该整个说明书中对“一个实施例”或“一实施例”的引用意指连同实施例而被描述的特定特征、结构或特性被包括在本发明的至少一个实施例中。从而,在该整个说明书的各种地方中,短语“在一个实施例中”或“在一实施例中”的出现不一定都指相同的实施例。此外,特定特征、结构或特性可以采用任何适合的方式在一个或多个实施例中组合。

在前面的说明书中,已参考特定示范性实施例给出详细描述。然而,将是明显的是,在不偏离如在随附权利要求中所阐述的本发明更广泛的精神和范围的情况下,可对其做出各种修改和改变。说明书和图因此要在说明性意义而非限制性意义上被考虑。此外,之前对实施例和其他示范性语言的使用不一定都指相同的实施例或相同的示例,而是可以指不同和截然不同的实施例,以及潜在地相同的实施例。

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