控制多时隙链路层微片中的消息收发的制作方法

文档序号:14437135阅读:149来源:国知局
控制多时隙链路层微片中的消息收发的制作方法
本公开内容通常涉及计算机开发的领域,且尤其涉及相互依赖的约束系统的协调的软件开发。背景半导体处理和逻辑设计的进步已经允许可以出现在集成电路设备上的逻辑的数量的增加。作为必然的结果,计算机系统配置已经从一个系统中的单个或多个集成电路进化成出现在单个集成电路上的多核、多硬件线程和多逻辑处理器,以及集成在这样的处理器内的其他接口。处理器或集成电路通常包括单个物理处理器管芯,其中处理器管芯可以包括任何数量的核、硬件线程、逻辑处理器、接口、存储器、控制器中枢等等。作为在更小的封装中提供更多的处理能力的更大能力的结果,更小的计算设备已经普遍增加。智能电话、平板、超薄笔记本和其他用户设备已经指数性增长。然而,这些更小的设备依赖于服务器以便得到超过形状因子的数据存储和复杂处理。因此,高性能计算市场(即服务器空间)的需求也已经增加。举例来说,在现代服务器中,通常不仅存在具有多个核的单个处理器,而且也存在多个物理处理器(也称为多个插槽)以便增加计算能力。但是,随着处理能力随着计算系统中的设备的数量增长,在各插槽和其他设备之间的通信变得更加重要。事实上,互连已经从主要处理电通信的较传统的多点式总线发展到促进快速通信的完全成熟的互连架构。不幸的是,由于对未来处理器以甚至更高速率消耗的需求,对现有的互连架构的能力提出了相应的需求。附图简述图1阐释根据一种实施例包括连接计算机系统中的I/O设备的串行点对点互连的系统的简化框图。图2阐释根据一种实施例的分层协议栈的简化框图。图3阐释串行点对点链路的实施例。图4阐释潜在的高性能互连(HPI)系统配置的各实施例。图5阐释与HPI相关联的分层协议栈的实施例。图6阐释示例多时隙微片(flit)的表示。图7阐释在示例八通道数据链路上发送的示例微片的表示。图8阐释在示例八通道数据链路上发送的示例微片的表示。图9阐释在示例二十通道数据链路上发送的示例微片的表示。图10阐释示例病毒错误控制微片的表示。图11阐释包括调试消息的示例多层微片的表示。图12阐释示例毒害错误控制微片的表示。图13阐释用于返回信用(credit)和确认的示例时隙消息的表示。图14阐释在图13的示例时隙中使用的信用返回格式。图15阐释示例计算系统的块的实施例。在各图中,相同的标号和名称表示相同的元素。详细描述在下列描述中,陈述了众多特定的细节,例如特定类型的处理器和系统配置、特定的硬件结构、特定的架构和微架构细节、特定的寄存器配置、特定的指令类型、特定的系统组件、特定的处理器管线阶段、特定的互连层、特定的分组/事务配置、特定的事务名称、特定的协议切换、特定的链路宽度、特定的实现和操作等等的示例,以便提供对本发明的透彻理解。然而,本领域中的技术人员可以明显看出,实践本公开内容的主题并不必定需要使用这些特定的细节。在其他实例中,已经避免了对已知的组件或方法的十分详细的描述,例如计算机系统的特定的和备选的处理器架构、用于所描述的算法的特定逻辑电路/代码、特定固件代码、低级互连操作、特定逻辑配置、特定制造技术和材料、特定编译器实现、利用代码的算法的特定表示、特定的断电和门控技术/逻辑和其他特定的操作细节,以免不必要地模糊本公开内容。尽管可以在特定的集成电路中例如在计算平台或微处理器中参考节能、能量效率、处理效率等等描述下列实施例,但其他实施例适用于其他类型的集成电路和逻辑设备。在此描述的各实施例的类似的技术和教导可以应用到也可以受益于这样的特征的其他类型的电路或半导体设备。例如,所公开的实施例不限于服务器计算机系统、台式计算机系统、膝上型计算机、超极本TM,而是也可以用于其他设备,例如手持式设备、智能电话、平板、其他轻薄笔记本、片上系统(SOC)设备和嵌入式应用。手持式设备的一些示例包括蜂窝式电话、因特网协议设备、数码相机、个人数字助理(PDA)和手持式PC。在这里,可以应用用于高性能互连的类似技术以便在低功率互连中增加性能(或甚至节省功率)。嵌入式应用通常包括微控制器、数字信号处理器(DSP)、片上系统、网络计算机(NetPC)、机顶盒、网络中枢、广域网(WAN)交换机或可以执行下面教导的功能和操作的任何其他系统。此外,在此描述的装置、方法和系统不限于物理计算设备,而是也可以涉及用于节能和效率的软件优化。在下面的描述中可以明显看出,在此描述的方法、装置和系统的各实施例(无论是否引用硬件、固件、软件或其组合)可以被认为是对与性能考虑平衡的“绿色技术”未来至关重要。随着计算系统的进步,其中的组件变得更加复杂。在各组件之间耦合和通信的互连架构的复杂度也已经增加,以便确保满足最优组件操作的带宽需求。此外,不同的市场区隔需要互连架构的不同方面以便适应各自的市场。例如,服务器要求较高的性能,而移动生态系统有时可以牺牲总体性能以便节能。然而,对大多数组织结构的唯一目标是以最大的功率节省提供最高可能性能。进一步,各种不同的互连可以潜在地受益于在此讨论的本主题。举例来说,根据在此描述的一个或多个原理以及其他示例,可以潜在地改善外围组件互连(PCI)高速(PCIe)互连组织结构架构和QuickPath互连(QPI)组织结构架构以及其他示例。图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互连分层结构中。控制器中枢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、监视器、打印机、鼠标、键盘、路由器、便携式存储设备、火线设备、通用串行总线(USB)设备、扫描仪和其他输入/输出设备。通常,在PCIe术语中,例如,设备被称为端点。尽管不具体地示出,但设备125可以包括桥(例如,PCIe到PCI/PCI-X的桥)以便支持遗留或其他版本的设备或这样的设备所支持的互连组织结构。图形加速器130也可以通过串行链路132耦合到控制器中枢115。在一种实施例中,图形加速器130耦合到MCH,MCH耦合到ICH。然后,交换机120耦合到ICH,并且以及相应地I/O设备125耦合到ICH。I/O模块131和118也实现在图形加速器130和控制器中枢115之间通信的分层协议栈和关联的逻辑。类似于上面讨论的MCH,图形控制器或图形加速器130本身可以集成在处理器105中。转到图2,阐释分层协议栈的实施例。分层协议栈200可以包括任何形式的分层通信栈,例如QPI栈、PCIe栈、下一代高性能计算互连(HPI)栈或其他分层栈。在一种实施例中,协议栈200可以包括事务层205、链路层210和物理层220。诸如图1中的接口117、118、122、126和131之类的接口可以被表示为通信协议栈200。表示为通信协议栈也可以被称为实现/包括协议栈的模块或接口。分组可以用来在各组件之间传输信息。可以在事务层205和数据链路层210中形成分组以便把信息从发送组件携带到接收组件。当所发送的分组流过其他层时,借助于用来处理那些层的分组的附加信息来扩展它们。在接收方,发生相反的过程,且将分组从分组的物理层220表示变换成数据链路层210表示,且最终(对于事务层分组)变换成可以由接收设备的事务层205处理的形式。在一种实施例中,事务层205可以提供在设备的处理核和诸如数据链路层210和物理层220之类的互连架构之间的接口。在这点上,事务层205的主要责任可以包括分组(即,事务层分组或TLP)的组装和分解。转换层205也可以管理用于TLP的基于信用的流量控制。在一些实现中,可以利用拆分的事务,即,带有按时间拆分的请求和响应的事务,在目标设备收集用于响应的数据的同时允许链路携带其他通信量,以及其他示例。基于信用的流量控制可以被用来利用互连组织结构实现虚拟信道和网络。在一个示例中,设备可以为事务层205中的接收缓冲器中的每一个广播初始量的信用。在该链路的相反端部的外部设备例如图1中的控制器中枢115可以计数每一TLP消费的信用的数量。如果事务不超过信用限制,则可以发送事务。在接收到响应时,恢复信用量。这样的信用方案的优点之一是,假定没有遭遇到信用限制则信用返回的延迟时间不影响性能,还有其他潜在的优点。在一种实施例中,四个事务地址空间可以包括配置地址空间、存储器地址空间、输入/输出地址空间和消息地址空间。存储器空间事务包括读请求和写请求中的一个或多个,以便传输去往/来自存储器映射位置的数据。在一种实施例中,存储器空间事务能够使用两种不同的地址格式,例如,诸如32位地址之类的短地址格式,或诸如64位地址之类的长地址格式。配置空间事务可以被用来访问连接到该互连的各种设备的配置空间。配置空间的事务可以包括读请求和写请求。消息空间事务(或者,简单称为消息)也可以被定义为支持在互连代理之间的带内通信。因此,在一个示例实施例中,事务层205可以组装分组报头/有效载荷206。链路层210,也被称为数据链路层210,可以充当在事务层205和物理层220之间的中间级。在一种实施例中,数据链路层210的责任是为在链路上两个组件之间交换事务层分组(TLP)提供可靠机制。数据链路层210的一侧接受由事务层205组装的TLP,应用分组序列标识符211,即标识号或分组号,计算和应用错误检测代码,即CRC212,并把经修改的TLP提交给物理层,以便跨越物理传输到外部设备。在一个示例中,物理层220包括逻辑子块221和电气子块222以便物理上把分组发送给外部设备。在这里,逻辑子块负责物理层221的“数字”功能。在这点上,逻辑子块可以包括发送部分以及接收器部分,发送部分准备传出信息以供由物理子块222传送,接收器部分在把所接收的信息传送给链路层210之前标识和准备所接收的信息。物理块222包括发送器和接收器。发送器由逻辑子块221提供符号,发送器把符号串行化并将其发送给外部设备。向接收器提供来自外部设备的串行化符号,且接收器把所接收的信号变换成比特流。解串行化比特流并将其提供给逻辑子块221。在一个示例实施例中,采用了8b/10b传送码,其中发送/接收十比特符号。在这里,使用特殊符号以借助于帧223使分组成帧。另外,在一个示例中,接收器也提供从传入串行流恢复的符号时钟。如上所述,尽管参考协议栈(例如PCIe协议栈)的特定实施例讨论了事务层205、链路层210和物理层220,但分层协议栈不限于此。事实上,可以包括/实现任何分层协议并采用在此讨论的特征。作为示例,被表示成分层协议的端口/接口可以包括:(1)组装分组的第一层,即事务层;序列化分组的第二层,即链路层;以及发送分组的第三层,即物理层。作为特定示例,利用了在此描述的高性能互连分层协议。接下来参见图3,阐释了串行点对点组织结构的示例实施例。串行点对点链路可以包括用于发送串行数据的任何传输路径。在所示出的实施例,链路可以包括两个低电压差分驱动信号对:发送对306/311和接收对312/307。相应地,设备305包括把数据发送给设备310的发送逻辑306和从设备310接收数据的接收逻辑307。换句话说,在链路的一些实现中包括两个发送路径(即路径316和317)和两个接收路径(即路径318和319)。传输路径是指用于发送数据的任何路径,例如传输线、铜缆、光缆、无线通信信道、红外通信链路或其他通信路径。诸如设备305和设备310之类的在两个设备之间连接被称为链路,例如链路315。链路可以支持一个通道,每一通道表示一组差分信号对(一对用于传送,一对用于接收)。为了扩展带宽,链路可以集合由xN表示的多个通道,其中N是任何所支持的链路宽度,例如1、2、4、8、12、16、32、64或更宽。差分对可以是指发送差分信号的两个传输路径,例如线路316和317。作为示例,在线路316从低电压电平切换到高电压电平时,即上升沿,线路317从高逻辑电平驱动到低逻辑电平,即下降沿。差分信号潜在地展现出更好的电气特性,例如更好的信号完整性,即交叉耦合、电压过冲/下冲、振铃,以及其他示例优点。这允许更好计时窗口,而这又允许更快的传送频率。在一种实施例中,提供了新的高性能互连(HPI),HPI可以包括下一代缓存一致性的基于链路的互连。作为一个示例,HPI可以用于高性能计算平台,例如工作站或服务器,在各系统中包括其中通常使用PCle或另一互连协议来连接处理器、加速器、I/O设备等等。然而,HPI不限于此。相反,HPI可以用于在此描述的任何系统或平台。此外,所开发的各种创意可以应用到其他互连和平台,例如PCIe、MIPI、QPI等等。为了支持多个设备,在一个示例实现中,HPI可以包括不确定的指令集架构(ISA)(即可以在多个不同的设备中实现HPI)。在另一场景中,HPI也可以用于连接高性能I/O设备,而不只是处理器或加速器。例如,高性能PCIe设备可以通过适当的变换桥(即HPI到PCIe)耦合到HPI。此外,HPI链路可以由诸如处理器之类的多种基于HPI的设备以各种方式(例如星型、环型、网格等等)使用。图4阐释多个潜在多插槽配置的示例实现。如所叙述的,双插槽配置405可以包括两个HPI链路;然而,在其他实现中,可以利用一个HPI链路。对于更大的拓扑,只要标识符(ID)可分配且存在某种形式的虚拟路径以及其他附加的或备选的特征,就可以利用任何配置。正如所示出的,在一个示例中,四插槽配置410具有从每一处理器到另一处理器的HPI链路。但在如配置415中所示出的八插槽实现中,并非每一插槽通过HPI链路直接相互连接。然而,如果在各处理器之间存在虚拟路径或信道,则支持该配置。所支持处理器的范围包括本机域中2-32个。通过使用多个域或在节点控制器之间的其他互连以及其他示例,可以实现更大数量的处理器。HPI架构包括分层协议架构的定义,在一些示例中包括,协议层(一致性、非一致性和可选地其他基于存储器的协议),路由层、链路层和包括关联I/O逻辑的物理层。此外,HPI还可以包括与功率管理器相关的(例如功率控制单元(PCU))、用于测试和调试(DFT)的设计、故障处理、寄存器、安全以及其他示例的增强功能。图5阐释示例HPI分层协议栈的实施例。在一些实现中,图5中所阐释的各层中的至少一些可以是可选的。每一层处理其自己级别的粒度或量子的信息(协议层505a、b处理分组530,链路层510a、b处理微片535,且物理层505a、b处理物理片(phit)540)。注意,在一些实施例中,基于该实现,分组可以包括微片的部分、单个微片或多个微片。作为第一示例,物理片540的宽度包括链路宽度到比特的1对1映射(例如20位链路宽度包括20比特的物理片等等)。微片可以具有更大的尺寸,例如184、192或200比特,注意,如果物理片540是20比特宽,且微片535的大小是184比特,那么,采用物理片540的分数来发送一个微片535(例如用9.2个20比特的物理片发送184位微片535,或9.6个20比特的的物理片发送192位微片,以及其他示例),注意,在物理层,基本链路的宽度可以改变。例如,每个方向的通道数量可以包括2、4、6、8、10、12、14、16、18、20、22等等。在一种实施例中,链路层510a、b能够在单个微片中嵌入多片的不同事务,且一个或多个报头(例如1、2、3、4)可以被嵌入在该微片内。在一个示例中,HPI把报头分割成相应的时隙以便允许微片中的多个消息去往不同的节点。在一种实施例中,物理层505a、b可以负责在物理介质(电或光等等)上快速传输信息。物理链路可以是在诸如层505a和505b之类的两个链路层实体之间的点对点链路。链路层510a、b可以从上层抽象出物理层505a、b并提供在两个直接连接的实体之间可靠传输数据(以及请求)并管理流量控制的能力。链路层也可以负责把物理信道虚拟化成多个虚拟信道和消息类。在把协议消息提交给物理层505a、b以便跨越物理链路传输之前,协议层520a、b依赖于链路层510a、b来把协议消息映射成适当的消息类和虚拟信道。链路层510a、b可以支持多个消息,例如请求、监听、响应、写回、非一致性数据,以及其他示例。可以在电气层(即连接两个组件的电导体)上面和在链路层510a、b下面实现HPI的物理层505a、b(或PHY),正如图5中所阐释的。物理层和相应逻辑可以驻留在每一代理上,且连接相互分离的两个代理(A和B)上的链路层(例如链路的任一侧上的设备)。本地和远程电气层由物理介质(例如线路、导体、光缆等等)连接。在一种实施例中,物理层505a、b具有两个主要阶段,即初始化和工作。在初始化期间,连接对链路层不透明,且信令可以涉及定时状态和握手事件的组合。在工作期间,连接对链路层透明,且信令处于一种速度,且所有通道与单个链路一起工作。在工作阶段期间,物理层把微片从代理A传输到代理B且从代理B传输到代理A。连接也被称为链路,且在与链路层交换微片和当前配置的控制/状态(例如宽度)的同时从链路层抽象一些物理方面,包括介质、宽度和速度。初始化阶段包括次要阶段,例如轮询、配置。工作阶段也包括次要阶段(例如链路功率管理状态)。在一种实施例中,链路层510a、b可以被实现为在两种协议或路由实体之间提供可靠数据传输。链路层可以从协议层520a、b抽象物理层505a、b,且可以负责在两个协议代理(A、B)之间的流量控制,并向协议层(消息类)和路由层(虚拟网络)提供虚拟信道服务。在协议层520a、b和链路层510a、b之间接口通常可以处于分组级。在一种实施例中,链路层的最小传输单元被称为微片(flit),微片特定数量的比特,例如192比特或某种其他数量。链路层510a、b依赖于物理层505a、b来把物理层505a、b的传输单元(物理片)分帧成链路层510a、b的传输单元(微片)。另外,链路层510a、b可以逻辑上分成两个部分,即发送器和接收器。一个实体上的发送器/接收器对可以连接到另一实体上的接收器/发送器对。通常在微片和分组的基础上执行流量控制。也可能基于微片级执行错误检测和修正。在一种实施例中,路由层515a、b可以提供把HPI事务从源路由到目的地的灵活的和分布式的方法。该方案是灵活的,这是由于可以通过每一路由器处的可编程路由表指定用于多种拓扑的路由算法(在一种实施例中,由固件、软件或其组合执行编程)。路由功能可以是分布式的;可以通过一系列路由步骤完成路由,通过源路由器、中间路由器或目的地路由器处的查表定义每一路由步骤。在源处的查找可以用来把HPI分组注入到HPI组织结构。中间路由器处的查找可以用来把HPI分组从输入端口路由到输出端口。在目的地端口处的查找可以用来把目的地HPI协议代理确定为目标。注意,在一些实现中,由于路由表,路由层可以是瘦的,且因此路由算法没有由规范具体定义。这允许灵活性和各种使用模型,包括由系统实现定义的灵活平台架构拓扑。路由层515a、b依赖于链路层510a、b提供对高达三个(或更多)虚拟网络(VN)的使用——在一个示例中,两个免死锁VN即带有每一虚拟网络中定义的若干消息类的VN0和VN1。可以在链路层中定义共享的自适应虚拟网络(VNA),但是在路由概念可以不直接暴露这种自适应网络,这是由于每一消息类和虚拟网络可以具有专用的资源和有保证的转发进度,以及其他特征和示例。在一种实施例中,HPI可以包括一致性协议层520a、b,一致性协议层520a、b是缓存来自存储器的数据行的支持代理。希望缓存存储器数据的代理可以使用一致性协议来读取数据行以便加载到其缓存中。希望修改其缓存中的数据行的代理可以使用一致性协议来在修改数据之前获取该行的所有权。在修改一行之后,代理可以遵循将其保存在其缓存中直到它把该行写回到存储器或将该行包括在对外部请求的响应中的协议要求。最后,代理可以履行验证其缓存中的行的外部请求。该协议通过指定所有缓存代理可以遵循的规则来确保数据的一致性。它也提供供不带有缓存的代理一致性地读取和写入存储器数据的手段。可以强加两个条件以便支持利用HPI一致性协议的事务。首先,作为示例,按照逐个地址的方式,协议可以维持在代理的缓存中的哪些数据当中以及在那些数据和存储器中的数据之间的数据一致性。通俗地说,数据一致性可以是指表示数据的多个最新值的代理的缓存中的每一有效数据行,且一致性协议分组中所发送的数据可以表示在发送数据时该数据的最新值。当缓存中不存在数据的有效副本或者没有传送数据的有效副本时,该协议可以确保数据的最新值驻留在存储器中。第二,该协议可以为请求提供良好界定的提交点。读取的提交点可以指示数据何时可用;并且,对于写入,它们可以指示所写入的数据何时全面可见且将由随后的读取载入。该协议可以支持用于一致性存储器空间中的可缓存和不可缓存(UC)请求两者的这些提交点。HPI一致性协议也可以确保由代理对一致性的存储器空间中的地址作出的一致性请求的转发进度。无疑,各事务最终可以得到满足且引退到适当的系统操作。在一些实施例中,HPI一致性协议可以对用于解决资源分配冲突的重试没有概念。因而,协议本身可以被定义为不包含循环资源依赖性,且各实现可以在它们的设计中小心避免引入可能引起死锁的依赖性。另外,该协议可以指示各设计可以在何处提供对协议资源公平访问。逻辑上,在一种实施例中,HPI一致性协议可以包括三项:一致性(或缓存)代理、本地代理和连接各代理的HPI互连组织结构,一致性代理和本地代理可以一起工作以便通过在该互连上交换消息来实现数据一致性。链路层510a、b及其相关描述可以提供互连组织结构的细节,包括它如何遵守在此讨论的一致性协议的要求。(应注意,分成一致性代理和本地代理是为了清晰起见。设计可以在插槽内包含两种类型的多个代理,或者甚至把代理行为组合成单个设计单元,以及其他示例。)在一些实现中,HPI可以利用嵌入式时钟。时钟信号可以被嵌入在使用该互连发送的数据中。借助于嵌入在数据中的时钟信号,可以省略不同的和专用的时钟通道。这是有用的,例如,由于它可以允许更多设备的针脚专用于数据传输,在其中用于针脚的空间非常稀缺的系统中尤其如此。链路层可以保证在两种协议或路由实体之间的可靠数据传输。链路层可以从协议层抽象物理层,处理在两个协议代理之间的流量控制,并向协议层(消息类)和路由层(虚拟网络)提供虚拟信道服务。在一些实现中,链路层可以处理率固定量子的信息,称为微片。在一个示例中,微片可以被定义为192比特长。然而,在不同的变种中可以利用任何范围的比特,例如81-256(或更多)。大的微片大小例如192比特可以包括格式、循环冗余码校验(CRC)和其他改变。例如,更大的微片大小也可以准许扩大CRC字段(例如,扩大到16比特)以便处理更大的微片有效载荷。物理片的数量或传输单个微片的单元间隔(UI)(例如,用来传输单个比特或物理片等等的时间)可以随链路宽度改变。举例来说,20通道或比特链路宽度可以在9.6个UI中传输单个192比特微片,而8通道链路宽度在24个UI中传输相同的微片,以及其他可能的示例。链路层信用和协议分组化也可以基于微片。图6阐释用于8通道链路宽度的通用化微片的表示600。表示600的每一列可以表示链路通道且每一行表示各自的UI。在一些实现中,单个微片可以被细分成两个或更多个时隙。不同的消息或链路层报头可以被包括在每一时隙中,允许多个不同的且在一些情况中是独立的消息对应于要在单个微片中发送更大潜在不同的事务。进一步,单个微片的时隙中所包括的多个消息也可以去往不同的目的地节点,以及其他示例。举例来说,图6的示例阐释具有三个时隙的微片格式。阴影部分可以表示各自的时隙中所包括的微片的部分。在图6的示例中,通常可以为微片提供“Hdr”字段,且“Hdr”字段表示该微片的报头指示。在一些实例中,Hdr字段可以指示微片是报头微片还是数据微片。在数据微片中微片可以仍然保持时隙化,但是省略使用某些字段或使用有效载荷数据代替了某些字段。在一些情况中,数据字段可以包括操作码和有效载荷数据。在报头微片的情况中,可以提供各种报头字段。在图6的示例中,可以为每一时隙提供“Oc”字段,该Oc字段表示操作码。类似地,一个或多个时隙可以具有相应的“msg”字段,其表示时隙中包括的相应分组的消息类型,假定时隙被设计为处理这样的分组类型,等等。“DNID”字段可以表示目的地节点ID,“TID”字段可以表示事务ID,“RHTID”字段可以表示请求者节点ID或本地跟踪器ID,以及其他可能的字段。进一步,一个或多个时隙可以配备有有效载荷字段。另外,CRC字段可以被包括在微片内,以便为该微片提供CRC值,以及其他示例。在一些实现中,链路宽度可以在链路寿命期间改变。举例来说,物理层可以在链路宽度状态之间转变,例如转变到不同的或部分的通道宽度和完全的或原始的通道宽度,以及从完全的或原始的通道宽度好不同的或部分的通道宽度转变。例如,在一些实现中,链路可以被初始化为在20通道上传输数据。后来,链路可以转变到其中仅主动使用8通道的部分宽度发送状态,以及多种可能的示例。例如,结合由一个或多个功率控制单元(PCU)管理的功率管理任务使用这样的通道宽度转变,以及其他示例。如上所述,链路宽度可以影响微片吞吐率。图7是在8通道链路上发送的示例192比特微片的表示,得到24UI的微片吞吐量。进一步,如图7中的示例所示出,在一些实例中,可以乱序发送各微片的比特,例如,以便在该传输的早期发送更多时敏字段(例如,微片类型字段(例如,数据微片或报头微片)、操作码等等),保持或促进具体的错误检测或微片中实现其他功能,以及其他示例。举例来说,在图7的示例中,在传输的第一UI(即,UI0)期间在通道L7到L0上并行发送比特191、167、143、119、95、71、47和23,而在微片传输的第24个(或最后)UI(即,UI23)期间发送比特168、144、120、96、72、48、24和0。应明白,在其他实现和示例中可以利用其他排序方案、微片长度、通道宽度等等。在一些实例中,微片的长度可以是活动通道的数量的倍数。在这样的实例中,可以在所有活动通道上均匀地发送微片,且微片的传输可以在清晰(即,非重叠)边界处几乎同时地结束。例如,如图8的表示中所示出,微片的比特可以被认为以相继的4比特编组或半字节发送。在这一示例中,在8通道链路上传输192比特微片。由于192是8的倍数,可以在24个UI中在8通道链路上干净利索地传输整个微片。在其他实例中,微片宽度可以不是活动通道的数量的倍数。举例来说,图9示出在20通道上传输的示例192比特的另一表示。由于192是不能被20整除,完整微片的传输将要求非整数数量的间隔(例如,9.6个UI)。在这样的情况中,不是浪费在传输的第10个UI期间未利用的“额外”通道,而是可以与前面微片的最后比特一起传输第二重叠微片。微片的这样的重叠或混合可以得到参差不齐的微片边界,且在一些实现中无序发送微片比特。用于传输的模式可以被配置为允许在微片中较早传输较为时敏的微片字段,保留错误检测和修正,以及其他考虑。可以在物理层和链路层中的一个或两个中提供根据这样的模式传输微片比特并基于当前链路宽度在各模式之间动态地改变的逻辑。进一步,可以提供从这样的经混合或排序的比特流重新排序和重构微片的逻辑,以及其他示例。在一些实现中,微片可以被表征为报头微片(例如,承载分组报头数据)或数据微片(例如,承载分组有效载荷数据)。返回到图6,可以定义包括三(3)个不同时隙(例如,0、1和2)的微片格式,允许在单个微片传输最多三个报头(例如,每一时隙中一个报头)。相应地,每一时隙可以具有控制字段和有效载荷字段两者。除此之外,可以为每一报头(和时隙)定义有效载荷字段。进一步,可以定义浮置有效载荷字段,基于各时隙中的报头类型,该浮置有效载荷字段可以灵活地用作这些时隙中的两个或更多个(例如由时隙0或时隙1)的额外有效载荷长度。在一种实施例中,例如结合图6阐释的实施例,例如,两个时隙即时隙0和1可以被定义为具有同等大小的有效载荷字段,而时隙2具有小得多的有效载荷字段,以供由没有使用这样的较大有效载荷字段的报头的特定子集使用。进一步,在一个示例中,时隙1和2控制字段可以不携带完整的消息类编码(不同于时隙0),且时隙2可以不携带完整的操作码编码,以及其他可能的实现。如上所述,在一些实现中,时隙1和2可以不携带完整的消息类编码,这是因为,由于时隙划分(slotting)限制,并非利用了所有比特。时隙1可以携带消息类比特0。在这里,允许请求(REQ)和监听(SNP)分组。在这种实现中,REQ和SNP消息类编码由比特0区分。结果,如果设计者想要在部分消息类字段中允许不同的消息类,他们可以选择不同的比特位置(即区分两种不同类型的消息的高比特)或把不同的消息类型指派给低阶比特。然而,在这里暗示高两个比特为0,且低比特区分REQ和SNP。在这一示例中,时隙2不携带消息类比特,这是由于仅允许响应(RSP)(编码2)分组进入。因此,时隙2的消息类编码是RSP-2。时隙2也可以携带部分的操作码。如上所述,可以假设一个或多个操作码比特是0。结果,可以利用定义可以利用的消息和操作码的子集的部分消息类字段和部分操作码字段。注意,可以定义多组操作码和消息类。在这里,如果使用了消息类的低阶比特,那么消息类型的子集(即MSG类型1/MSG类型2)可用。然而,如果使用了2比特,那么,提供更大的子集(例如消息类型1/消息类型2/消息类型3/消息类型4),以及其他示例。消息类编码可以对应于微片中包括(或利用)一个或多个被定义时隙的具体报头类型。举例来说,报头可以具有多种大小。在一个示例中,基于报头类型,三个时隙的微片可以被定义为潜在支持四种尺寸的报头。表1包括可能的报头格式和关联的大小的示例性列表:表1小(或单)时隙报头可以用于小到足以适应时隙2的那些消息以及没有强制它们进入时隙0的协议顺序要求的那些消息。如果该时隙划分限制调用小时隙报头,则小时隙报头也可以被放置在时隙0中。单时隙报头可以用于带有可以置于时隙0或时隙1中的有效载荷的那些消息。一些单时隙报头也可以利用浮置有效载荷字段。举例来说,在一种实施例中,在其中存在仅一个HTID或浮置字段的示例中,在相同微片的时隙0和时隙1两者中可以不发送标准地址监听(SA-S)报头。基于协议排序要求,某些单时隙报头可以使用时隙0。双时隙报头可以用于除了浮置有效载荷字段之外还消耗时隙0和时隙1有效载荷字段两者的足够大的那些消息,以及其他示例。SlotNULL(时隙-空)操作码可以包括专用操作码,在一个示例中,该专用操作码可以用于时隙0或时隙1。作为示例,对于时隙0,在链路层没有要在时隙0中发送的报头但确实具有要在时隙1或2中发送的报头时,可以使用Slot_NULL。在Slot_NULL用于时隙0时,认为保留(RSVD)时隙0有效载荷,以及其他示例。在一些实现中,Slot_NULL可能在两种条件下可用于时隙1。第一条件是在时隙0编码双时隙或专用控制报头且因而消耗时隙1有效载荷的时候。在这样的实例中,时隙1操作码可以被设置为Slot_NULL。第二条件是在链路层在时隙1中没有东西要发送但确实具有用于时隙0的有效单时隙报头或用于时隙2的小时隙报头的时候。在这一条件下,时隙1操作码可以被设置为Slot_NULL,可以认为时隙1有效载荷被保留,以及其他可能的示例。在一些实现中,小时隙2可以包括减少数量的操作码比特。当链路层在时隙2中没有东西要发送时,它可以通过编码诸如链路层信用操作码之类的特定的操作码并把时隙2有效载荷字段设置为全零来发送“隐含空(NULL)”。这一时隙2编码的接收器可以将它处理为链路层信用消息(除了在专用控制微片的情况之外),但是全零编码将不影响信用和确认状态。在专用控制微片的情况中,因为它们可以消耗整个微片,时隙2有效载荷可以被认为是RSVD,且将忽略隐含空(NULL)。当链路层在三个时隙和CRD/ACK字段中没有东西要发送时,链路层可以发送专用控制空消息,以及其他示例。可以为微片的已定义时隙中的一个或多个定义时隙划分限制。在一种实施例中,双时隙报头可以仅使得它们的消息类和操作码被放置在时隙0中。在时隙0包含双时隙报头时,时隙1可以编码Slot_NULL操作码,这是由于时隙1有效载荷字段将由时隙0报头消耗。在时隙0包含Slot_NULL、单时隙或小时隙报头时,时隙1和2两者都可以编码非空报头。在一这具体示例中(例如,图6中阐释),时隙2中仅允许小时隙报头。当时隙0和时隙1两者都包含单时隙报头时,其中一个可以属于消耗浮置有效载荷字段的类型。如果时隙0和时隙1都不包含消耗浮置有效载荷字段的报头类型,则可以认为该字段是RSVD。另外,在一些实现中,链路层可以利用多种不同类型的虚拟网络或虚拟信道信用。在一个示例中,可以支持汇聚式虚拟网络自适应(VNA)信用且可以提供VNA字段。在一个示例实现中,在VNA字段指示非VN微片(例如,利用不同的信用池的微片)时,可以将报头指派为放置在时隙0中。进一步,在这种情况中,时隙2操作码可以包括时隙2信用。进一步,当时隙0编码专用控制报头时,时隙1和时隙2控制字段两者可以被设定为固定值,且在这些时隙中不可以放置报头,以及其他可能的实现。如上所述,在报头微片中,可以提供各种不同的字段以便合并在相应的微片时隙中,如图6中的具体示例中所阐释的。注意,也可以合并作为示例阐释、描述和提供字段附加的或替换的字段。在一些实现中,实际上,所描述的字段中的一些可以是可选的,且可以忽略,以及其他示例。在一个示例中,可以提供消息类(MC)字段以及其他字段。在一些示例中,协议层可以使用消息类字段来定义也充当主要操作码字段的协议类。链路层可以把消息类字段用作虚拟信道(VC)定义的一部分。由于要编码的操作码的数量,一些协议类/VC可以使用多个消息类编码,以及其他示例。举例来说,可以支持请求(REQ)、监听(SNP)、响应(RSP)、写回、非一致性旁路和非一致性标准类型。如果每一类型编码十六种操作,那么可以存在96种操作的操作码空间。并且,如果为每一类型定义另一模式比特或其他操作码空间,那么可以提供另外的96种操作;等等。在一个示例中,可以另外提供操作码字段。协议层可以联合消息类使用操作码以便形成完整操作码(即定义消息类类型和其中的操作)。作为示例,带有REQ消息类型的相同操作码可以定义第一请求操作,而带有SNP消息类的相同操作码可以定义第二种不同SNP操作,以及其他示例。在本地代理和缓存代理共享相同的NodelD时,链路层可以使用操作码来区分分组的本地代理目标或缓存代理目标。另外,链路层也可以使用操作码以判断分组大小,以及其他可能的用途。如上所述,微片报头还可以包括虚拟网络自适应(VNA)字段。在一个示例中,当VNA字段被设置为第一值时,该字段可以指示微片正在使用VNA信用。在被设置为第二值时,微片正在使用VN0或VN1信用,以及其他可能的实现。在一种实施例中,值可以指示微片是单时隙微片且时隙1和2码可以被定义为空。也可以提供虚拟网络(VN)字段,且其指示,对于微片,微片中的(多个)报头是否正在利用具体的虚拟网络,例如虚拟网络VN0或VN1。这可以用于信用目的并指示如果使用VNA则消息应流出到哪些虚拟网络。如果为整个微片提供一个VN比特,则包含多个报头的任何VNA微片可以确保它们全部流出到VN0或它们全部流出到VN1。替代地,可以提供多个VN比特。对于非VNA微片,仅可以允许时隙0具有非控制操作码,因此VN可以指示该报头的网络。在一些实现中,微片中的时隙可以用于小有效载荷消息,例如信用返回、ACK、NAK以及其他。在一个示例中,可以提供可以被编码为用于信用返回的信道字段。这种编码与虚拟网络字段组合,可以提供信用返回映射到其的虚拟信道,其中消息类具有多个编码,它们可以全部映射到用于信用的单个信道值。当信用返回类型是VNA时,可以忽略该信道值。RSVD编码的使用可以被接收组件看作是错误。表2包括可以编码的不同的信道选项的示例。注意,可以利用各比特的任何组合(或表示十六进制值的比特)。作为示例,低阶的3个比特可以用于编码。表2信道REQ:请求SNP:监听RSP:响应RSVD:保留WB:写回NCB:非一致性旁路NCS:非一致性标准也可以作为报头字段提供确认或ACK字段以便包括在微片时隙中。ACK字段可以由链路层用来从接收器向发送器传输微片的无错误接收。具有第一值的ACK指示已经接收多个微片例如4、8或12而没有错误。在发送器接收到ACK时,它可以从链路层重试队列释放相应的微片。Ack和Ack字段可以用于信用返回控制微片(例如,LLCRD),且通过创建完整的确认返回值(确认第一部分,ACK,确认第二部分)判断返回的确认的总数,以及其他示例。如上所述,在一些实现中也可以提供报头指示位(Hdr)且可以用于一种或多种目的,举例来说,Hdr分组可以标识分组是报头微片还是数据微片,可以指示微片是新分组的开始,并且指示交替链路层控制微片的开始。可以为所有分组的第一微片设置Hdr。如上所述,在一些实现中,可以提供诸如链路层控制微片之类的专用微片类型。这样的控制微片可以仍然利用为时隙定义的已定义多时隙格式,同时利用对应于使用这样的控制微片来促进的控制和错误管理功能的专用报头类型。例如,可以提供消耗整个微片且用于在所连接的链路层之间通信的专用报头类型。在一种实现中,专用控制消息可以被放置在用于链路层控制消息收发的单个消息类加上操作码编码下。这种操作码可以被称为“LLCTRL”,且所有控制消息类型可以落在这种操作码的子类型中。这可以,在一些实现中,允许减少多时隙微片格式中所包括的消息类比特的数量(例如,从四个消息类比特减少到三个,等等)。在一些实现中,也可以提供另一形式的链路层控制微片,以便处理控制消息的子集。举例来说,可以为确认和信用返回定义LLCRD操作码,以及其他示例。在LLCTRL操作码的情况中,多时隙微片,不是准许使用多个时隙中的每一个,而是可以使得整个微片有效载荷专用于控制消息且准许用于链路到链路的通信的专用编码。可以定义各种控制微片(例如,在LLCTRL下)。在一个示例中,HPI互连的一些实现可以包括传送协议级消息中的病毒状态和数据微片中的毒害状态。在一种实施例中,可以移动HPI协议级消息和毒害状态以便控制微片。由于不经常使用这些比特(例如,仅在错误的情况下使用),从协议级消息移除它们可能增加微片利用率。使用控制微片注入它们仍然可以允许遏制错误。在难以在无需立即关闭系统或不会遭受数据破坏的前提下避免错误传播的场合,病毒警报可以包括由致命错误引起的错误遏制机制。病毒警报可以解决涉及致命错误的错误传播问题,允许优雅地关闭已感染的系统,并且在该过程中清理系统接口和其他跨越系统分区共享的资源。可以根据HPI接口是运行的且可以用来递送错误指示的假设实现病毒警报。在HPI中,可以使用专用病毒错误控制微片发出病毒警报。在代理变得带病毒时,它将抢占输出的微片并向远程代理发送病毒微片。检测到致命错误或接收到指示病毒条件的分组的每一协议代理可以转换成病毒条件。一旦设定了病毒条件,该条件可以持续,直到复位了该代理(系统复位)或使用某种其他平台专用机制用来清除病毒条件。一旦代理变得带病毒,那么,假设来自该代理的所有未来分组受到危害,直到平台可以确定该错误的严重性。该平台可以负责控制系统,以使得屏蔽病毒传播或清除病毒状态不会危害错误遏制。举例来说,I/O代理实体可以在它们已经变得带病毒之后停止把任何数据提交给永久存储或I/O设备。另外,处于病毒状态的(多个)代理可以产生允许错误处理软件优雅地关闭系统分区的新请求。由系统用于优雅关闭的机制可以是平台实现特异的,且在本说明书的范围之外。病毒警报机制可以是逐个分区的全局状态,且在包括热复位和冷复位的所有复位事件时可以清除掉。在病毒警报下,借助于发送病毒错误控制微片,抢占其他输出的微片。图10阐释8通道链路上的专用病毒错误控制微片1005的示例的表示。如这一具体示例中所示出的,维护微片的通用多时隙格式。然而,在这一示例中,时隙0的消息报头字段被用来传输病毒条件。剩余的时隙可以是Slot_NULL以及有效载荷(例如,被解释成是RSVD)。在一些实现中,链路层逻辑可以被配置为限制病毒错误控制微片被包括在链路层重试队列中以及进入链路层重试队列。实际上,可以与其他微片不同地标识并处理专用控制微片,以使得该微片取得优先级。进一步,可以简化专用微片的结构,如图10的示例,以便使得控制微片的处理更加高效。作为示例,为了确保在病毒错误微片上的错误的事件中不失去病毒状态,例如,也可以在LLCTRL-RETRY.Ack消息中携带病毒状态,以及其他特征和示例。在一种实施例中,链路层可以另外定义三种专用的调试消息类型。可以为将来的通用调试分组类型扩展保留第二数量的标准调试消息类型。调试消息类型的支持可以对实现或设备来说是特异的。在一个示例中,在设置了允许调试控制字段时,可以通过链路层发送LLCTRL-DEBUG微片。在没有设置这一比特时,可以不在链路上发送LLCTRL-DEBUG微片。调试分组对暴露通过HPI连接的设备的内部状态来说很重要,否则这些设备的内部状态不可访问。调试分组的内容也可以对实现来说是特异的。内容可以包括像分支信息(源IP和目标IP)、时间戳、内部事件触发器的指示等等的事物。所暴露的数据可以例如用于诸如逻辑分析器之类的监视设备,以供后处理和故障分析。图11中阐释了调试消息类型的示例微片编码。HPI可以进一步支持包括使用专用微片的毒害错误的通信。举例来说,专用毒害错误控制微片,例如图12的示例中所阐释的那个(例如,1205),可以被用来把毒害注射到数据分组的数据有效载荷,并指示已经确定先前所发送的数据受到毁坏,或者具有错误。在一些实例中,毒害错误控制微片可以应用到相同链路上的紧接在前的微片。专用毒害错误控制微片可以是可重试的,以便保证在链路错误的事件中不丢失毒害信息。当数据受到毒害时,如果需要毒害前32个字节,则链路层控制毒害错误微片插入在分组的第一数据微片和第二数据微片之间。如果需要毒害第二组32个字节,则毒害错误微片插入在第二数据微片和第三数据微片,等等。在图12的具体示例中,毒害错误微片1205可以在时隙0的操作码中编码毒害条件,且用Slot_NULL编码剩余的时隙(和相应的字段)。进一步,作为病毒错误控制微片的示例,有效载荷字段可以置零或空,且被认为是RSVD字段。小时隙字段可以用于一些链路层控制消息。举例来说,信用(CRD)和确认(ACK)比特可以被包括在微片的小时隙中,以便允许返回信用的预先映射的数量的(例如8个)或ACK的数量(例如8个),以及多种其他示例。在一些实现中,可以完全地编码信用和确认字段,以便指派信用或确认的任何数量。作为示例,在时隙被编码为指示它包括链路层信用(LLCRD)消息时,在完全编码的信用字段中,各比特可以被用作信用[n]和确认[n]。在一些实例中,通过允许任何微片使用总共仅2个比特返回信用的数量和确认的数量,但也允许它们的定义与使用完全编码的LLCRD返回时保持一致,完全编码信用返回字段可以潜在地提高效率。在一个示例中,对于流量控制,信用/确认信息可以作为非LLCTRL消息的一部分流动。举例来说,在一种实现中,HPI可以使得每一报头微片包括充当用于成批信用返回或成批确认的机制的单个比特字段。举例来说,把这样的字段设置为“1”可以指示8个VNA信用(在CRD字段的情况下)或8个ACK(在ACK字段的情况下)的退还。这可以允许在正在发送的任何报头微片进行信用退还(在一些实现中,具有LLCTRL消息的例外情况)。另一方面,为了解决信用/确认返回增量不同于某种成批的或预先定义的量(例如,8),并且为了处理通过有限一组的返回增量引入的低效率,可以提供LLCRD操作码。LLCRD操作码可以利用和编码报头微片中的最小时隙(例如,时隙2)来以一种或多种格式传输信用和ACK返回。举例来说,在一个示例中,可以提供第一格式,通过专用于VN0/1信用返回的比特(例如,3个比特),专用于ACK返回的其他比特(例如,7个比特),并把报头微片的“ACK”比特用作确认[2]以便构建例如8比特字段,该第一个格式允许用于单个消息类的返回任何量(例如,从0到7)的VN0或VNl信用以及任何量的ACK(例如,从0到255)。可以提供第二格式,通过用于VNA返回的专用比特(例如,7个比特),并把报头微片的“CRD”比特用作信用[2]以便构建例如8比特字段,该第二格式允许返回任何量(例如,从0到255)的VNA信用和任何量的ACK(例如,从0到255)。同样地,可以为ACK返回提供专用比特(例如,7个比特),且可以利用报头微片的“ACK”比特来构建例如8比特字段。这些大的完全编码的字段可以允许发送器退还单个消息中已经累积(例如,缓冲)的所有信用或确认。在一些实现中,这可以把所累积的信用计数逻辑简化成简单的“清除”,而不是累加器上的递减器。在图13中所阐释的一个具体示例中,可以利用具有诸如在图6的示例中定义的格式的微片来支持LLCRD消息。举例来说,在这种具体的示例中,LLCRD消息可以在带有预先指定的操作码的时隙2中用来返回VN0、VN1和VNA信用,以及用于链路层重试队列的ACK。链路层信用(LLCRD)字段(例如,被包括在“值1”中)可以指示用于LLCRD有效载荷字段的格式(例如,下面的图14的示例,以及其他可能的字段格式)。图13示出用于LLCRD消息收发中的时隙的通用格式。图14阐释用于时隙2中可以支持的两种不同的LLCRD信用退还消息1405、1410的格式。例如,可以为VN0/1信用返回(例如,1405)和VNA信用返回(例如,1410)两者提供LLCRD格式报头。信用返回(CRD)字段可以被用来跨越链路退还VNA信用。当被设置为第一值时,这一字段指示退还多个VNA信用,例如4、8或12。也可以提供信用和信用返回(CRDCRC)字段,且可以在LLCRD格式报头中将其用于VN信用返回和VNA返回两者。在VNLLCRD返回格式中,信用部分可以指示对于虚拟网络和消息类所返回的信用的总数。在VNALLCRD返回格式中,可以通过创建完全VNA返回值(例如信用的一部分、CRD和信用的第二部分)确定所返回的VNA信用的总数。在一个具体示例中,例如在图14的示例中,在VN0/1LLCRD返回格式(例如,1405)中,信用[N:0]指示对于虚拟网络和消息类所返还的信用的总数。在VNALLCRD返回格式(例如,1410)中,通过创建Full_VNA[A:0]返回值确定所返回的VNA信用的总数,其中Full_VNA[A:0]={信用[A:B],CRD,信用[C:0]}。在一些实例中,CRD字段也可以被用来跨越链路退还VNA信用。在被设置为1时,这一字段指示退还8个VNA信用。当时隙2正在编码VNALLCRD返回类型时,所返还的VNA信用的总数如下面所描述。在链路层信用返回的一些实现中,信道字段可以被用来编码信道以供用于信用返回。这种编码与虚拟网络字段组合,可以被用来标识信用返回映射到其的虚拟信道。在消息类具有多个编码的场合,它们将全部映射到用于信用的单个信道值。当信用返回类型是VNA时,可以忽略该信道值。如图14的示例中所示出,在链路层消息中也可以连同信用返回字段一起包括ACK字段。ACK字段可以由链路层用来把微片的无错误收条从接收器传输到发送器。作为示例,ACK=1可以指示已经接收多个微片而没有错误。在发送器接收ACK时,它可以从链路层重试队列释放相应的微片。在图14的示例中,通过创建Full_Acknowledge[A:0]返回值,确认[A:B]和确认[C:0]可以被用来确定所返回的确认的总数,其中Full_Acknowledge[A:0]=(确认[A:B],ACK,确认[C:0]}。在一些实现中,一些字段可以被定义为仅允许以特定预定义增量返回。举例来说,在一个示例中,增量可以被定义为1(用于VN0/1)、2/8/16(用于VNA)和8(用于确认),以及其他示例。这意味着返回大量的待决信用或确认可以使用多个返回消息。也意味着可以使得用于VNA和确认的奇数编号的返回值搁浅,使得可整除值的积累待决。HPI的一些实现可以具有完全编码的信用和ACK返回字段,允许代理借助于单个消息返回一个池的所有累积的信用或ACK。这潜在地改善链路效率且也潜在地简化逻辑实现(返回逻辑可以实现“清除”信号而不是完整递减器)。在一些实现中,可以逐个分组为每一消息类返回用于VN0和VN1中的缓冲器的信用。因此,VN0/VN1中的每一信用的每一缓冲器的大小被设定为可以覆盖可以使用该信用的最大分组大小的缓冲器要求。在一些实例中,这可以为这些信道提供最高效的信用返回方法。在一些实现中,因为可以分配/释放的共享资源和各种消息大小,使用VNA的分组信用/借记(debit)可能不是高效的。相反,在一些实例中,微片信用/借记方案可以用于VNA。每一微片可以表示带有可以在VNA上发送的所有消息类共享的信用的接收器缓冲器空间的1个微片。可以相对于“LLCRD-Type”描述信用返回的编码。进一步,如上所述,在一些实现中,使用VNA发送的微片可以包含最多3个报头(每个时隙一个)。接收器可以不返回VNA信用,直到已经从接收器队列释放所有三个时隙,以及其他可能的条件或实现。HPI可以被合并在任何种类的计算设备和系统中,包括大型机、服务器系统、个人计算机、移动计算机(例如平板、智能电话、个人数字系统等等)、智能家电、游戏或娱乐控制台和机顶盒,以及其他示例。举例来说,图15阐释根据一些实现的示例计算机系统1500。如图15中所示出,多处理器系统1500是点对点互连系统,且包括经由点对点互连1550耦合的第一处理器1570和第二处理器1580。处理器1570和1580中的每一个可以是某种版本的处理器。在一种实施例中,1552和1554是诸如高性能架构之类的串行、点对点一致性互连组织结构的一部分。结果,本发明可以在QPI架构内实现。尽管借助于仅两个处理器1570、1580示出,但应理解,本发明的范围不限于此。在其他实施例中,一个或多个附加的处理器可以出现在给定的处理器中。处理器1570和1580被示出为分别包括集成存储器控制器单元1572和1582。处理器1570也包括作为其总线控制器单元的一部分的点对点(P-P)接口1576和1578;类似地,第二处理器1580包括P-P接口1586和1588。处理器1570、1580可以使用P-P接口电路1578、1588经由点对点(P-P)接口1550交换信息。如图15中所示出,IMC1572和1582把处理器耦合到各自的存储器,即存储器1532和存储器1534,它们可以是本地附加到各自的处理器的主存储器的一部分。处理器1570、1580均使用点对点接口电路1576、1594、1586、1598经由各个P-P接口1552、1554与芯片组1590交换信息。芯片组1590也经由接口电路1592以及高性能图形互连1539与高性能图形电路1538交换信息。共享缓存(未示出)可以被包括在任一个处理器中或者在两个处理器外;然而经由P-P互连与处理器连接,以使得如果处理器被置于低功率模式则任一个或两个处理器的本地缓存信息可以被存储在共享缓存中。芯片组1590可以经由接口1596耦合到第一总线1516。在一种实施例中,第一总线1516可以是外围组件互连(PCI)总线,或诸如PCIEXPRESS总线之类的总线或另一第三代I/O互连总线,但本发明的范围不限于此。如图15中所示出,各种I/O设备1514耦合到第一总线1516以及总线桥1518,总线桥1518把第一总线1516耦合到第二总线1520。在一种实施例中,第二总线1520包括低引脚数(LPC)总线。在一种实施例中,各种设备耦合到第二总线1520,这些设备包括例如键盘和/或鼠标1522、通信设备1527和诸如盘驱动器或其他大容量存储设备之类的存储单元1528,其常常包括指令/代码和数据1530。进一步,音频I/O1524被示出为耦合到第二总线1520。注意,其他架构是可能的,其中所包括的组件和互连架构改变。例如,代替图15的点对点架构,系统可以实现多点式总线或其他这样的架构。尽管已经相对于有限数量的实施例描述了本发明,但本领域中的技术人员将明白源于其的众多修改和变更。预期所附权利要求覆盖落在本发明的真实精神和范围内的所有这样的修改和变更。一种设计可以经历从创建到仿真到制造的多个阶段。表示设计的数据可以以多种方式表示设计。首先,可以使用硬件描述语言或另一功能描述语言表示硬件,这在仿真中是有用的。另外,在设计过程的一些阶段可以产生带有逻辑和/或晶体管门的电路级模型。此外,在某种阶段,大多数设计到达表示各种设备在管芯硬件模型中的物理放置的数据的级别。在使用常规半导体制造技术的情况中,表示硬件模型的数据可以是指定各种特征在被用来生产集成电路掩膜的不同掩膜层上的存在或不存在的数据。在设计的任何表示中,数据可以被存储在任何形式的机器可读介质中。存储器或诸如盘之类的磁存储或光存储可以是机器可读介质存储经由光波或电波发送的信息,光波或电波被调制或被产生为发送这样的信息。当发送指示或携带代码或设计的电载波,在执行电信号的复制、缓冲或再次传送的范围内,制作新的副本。因而,通信提供商或网络提供商可以至少临时地把制品例如被编码到载波中的信息存储在有形机器可读介质中,实现本发明的各实施例的技术。在此所使用的模块是指硬件、软件和/或固件的任何组合。作为示例,模块包括诸如微控制器之类的硬件,该硬件与存储适于由微控制器执行的代码的非暂态介质相关联。因此,在一种实施例中,对模块的引用是指硬件,该硬件被具体配置为识别和/或执行保存在非暂态介质上的代码。此外,在另一实施例中,模块的使用是指包括代码的非暂态介质,该代码具体地适于由微控制器执行,以便执行预先确定的操作。并且可以推断,在又一个实施例中,术语模块(在这一示例中)可以是指微控制器和非暂态介质的组合。通常,被阐释为分离的模块边界往往改变并可能重叠。例如,第一模块和第二模块可以共享硬件、软件、固件或其组合,同时可能保留一些独立的硬件、软件或固件。在一种实施例中,术语逻辑的使用包括硬件,例如晶体管、寄存器或诸如可编程逻辑设备之类的其他硬件。在一种实施例中,短语‘被配置为’的使用是指排列、放置在一起、制造、提供销售、引入和/或设计一种装置、硬件、逻辑或元素,以便以执行所指派的或已确定的任务。在这一示例中,如果不是正在操作的装置或其元素被设计、被耦合和/或被互连为到执行所指派的任务,则不是正在操作的装置或其元素仍然‘被配置为’执行所述所指派的任务。作为纯粹说明性的示例,逻辑门可以在操作期间提供0或1。但是,‘被配置为’向时钟提供允许信号的逻辑门不包括可以提供1或0的每一可能逻辑门。相反,逻辑门是以某种方式耦合的逻辑门,在操作期间,1或0输出允许时钟。再次应当注意,术语‘被配置为’的使用不要求操作,而是聚焦于装置、硬件、和/或元素的潜伏状态,其中在该潜伏状态中,该装置、硬件和/或元素被设计为在装置、硬件和/或元素正在操作时执行具体的任务。此外,在一种实施例中,短语‘要’、‘能够/应’和/或‘可操作为’的使用是指以这样的方式设计某种装置、逻辑、硬件和/或元素,以便允许以指定的方式使用该装置、逻辑、硬件和/或元素。如上所述,应注意,在一种实施例中,要、能够或可操作为是指装置、逻辑、硬件和/或元素的潜伏状态,其中该装置、逻辑、硬件和/或元素不是正在操作而是以这样的方式设计,以便允许以指定的方式使用装置。在此所使用的值包括数量、状态、逻辑状态或二进制逻辑状态的任何已知表示。逻辑电平、逻辑值或逻辑值的使用通常也被称为l和0,它们简单地表示二进制逻辑状态。例如,1是指高逻辑电平且0是指低逻辑电平。在一种实施例中,诸如晶体管或闪存单元之类的存储单元能够保存单个逻辑值或多个逻辑值。然而,已经使用计算机系统中的值的其他表示。例如十进制数字十也可以被表示成1010的二进制值和十六进制字母A。因此,能够在计算机系统中保存包括信息的任何表示的值。此外,状态可以由各值或各值的部分表示。作为示例,诸如逻辑一个之类的第一值可以表示默认的或初始的状态,而诸如逻辑零之类的第二值可以表示非默认状态。另外,在一种实施例中,术语复位和设置分别是指默认的和更新的值或状态。例如,默认值潜在地包括高逻辑值,即复位(reset),而更新值潜在地包括低逻辑值,即设置(set)。注意,可以利用各值的任何组合来表示任何数量的状态。可以经由存储在机器可访问的、机器可读的、计算机可访问的或计算机可读的介质上的指令或代码实现上面陈述的各方法、硬件、软件、固件或代码的实施例,这些指令或代码可由处理元件执行。非暂态机器可访问/可读介质包括以可由机器读取的形式提供(即,存储和/或发送)信息的任何机制,例如计算机或电子系统。例如,非暂态机器可访问介质包括随机存取存储器(RAM),例如静态RAM(SRAM)或动态RAM(DRAM);ROM;磁或光存储介质;闪速存储器设备;电存储设备;光存储设备;声存储设备;用于保存从暂态(传播)信号(例如,载波、红外信号、数字信号)接收到的信息的其他形式的存储设备;等等,它们是不同于可以从中接收信息的非暂态介质。被用来编程逻辑以执行本发明的各实施例的指令可以被存储在该系统中的存储器内,例如DRAM、缓存、闪速存储器或其他存储。此外,可以经由网络或作为其他计算机可读介质分发指令。因而,机器可读介质可以包括用于以可由机器(例如,计算机)读取的形式存储或发送信息的任何机制,但不限于软盘、光盘、紧致盘、只读存储器(CD-ROM)和磁-光盘、只读存储器(ROM)、随机存取存储器(RAM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、磁或光卡、闪速存储器或用于经由电、光、声或其他形式的传播信号(例如,载波、红外信号、数字信号等等)在因特网上传输信息的有形机器可读存储。因此,计算机可读介质包括适用于以可由机器(例如,计算机)读取的形式存储或发送电子指令或信息的任何类型的有形机器可读介质。下列示例涉及根据本说明书的实施例。一个或多个实施例可以提供产生链路层控制消息的装置、系统、机器可读存储、机器可读介质和方法,该链路层控制消息被包括要在串行数据链路上发送给设备的微片中,其中,在数据链路上发送的微片包括多个时隙;以及发送带有链路层控制消息的微片。在至少一个示例中,I/O逻辑包括分层栈,其包括物理层逻辑、链路层逻辑和协议层逻辑。在至少一个示例中,控制消息被编码在各时隙中的特定一个中,且微片中不包括其他消息。在至少一个示例中,其他时隙被编码为空时隙。在至少一个示例中,至少部分地可以从具体的微片的操作码的编码识别控制消息。在至少一个示例中,控制消息包括病毒警报消息。在至少一个示例中,控制消息包括毒害警报消息。在至少一个示例中,控制消息包括信用返回和确认中的至少之一。在至少一个示例中,要在所述多个时隙中的特定一个中编码控制消息,其中特定时隙是所述多个时隙中的最小者。在至少一个示例中,所述多个时隙由三个已定义时隙组成。在至少一个示例中,具体的时隙是三个时隙中的第三个,三个时隙中的第一个包括72个比特,三个时隙中的第二个包括70个比特,且第三个时隙包括18个比特。在至少一个示例中,控制消息包括用于虚拟网络信用返回的专用比特和用于确认返回的专用比特。在至少一个示例中,用于信用返回的专用比特包括适于用在0和7之间的信用返回值编码的三个比特。在至少一个示例中,用于信用返回的专用比特包括适于用在0和255之间的信用返回值编码的七个比特。在至少一个示例中,信用返回包括到共享自适应虚拟网络(VNA)信用池的信用返回。一个或多个实施例可以提供在串行数据网络上接收微片的装置、系统、机器可读存储、机器可读介质和方法,其中,微片包括多个时隙,且从微片标识链路层控制消息。在至少一个示例中,控制消息被编码在各时隙中的特定一个中,微片不包括其他消息。在至少一个示例中,控制消息包括病毒警报消息。在至少一个示例中,控制消息包括毒害警报消息。在至少一个示例中,控制消息应包括信用返回和确认返回中的至少之一。在至少一个示例中,在多个时隙中的特定一个中编码控制消息,其中,该特定时隙是多个时隙中的最小者。在至少一个示例中,控制消息属于包括用于虚拟网络信用返回的专用比特和用于确认返回的专用比特的格式。在至少一个示例中,标识控制消息包括标识一组累积确认,且控制消息要返回确认。在至少一个示例中,标识控制消息包括标识要返回的一组累积信用,且控制消息要返回具体的虚拟网络的信用。在至少一个示例中,可以在第一设备和第二设备之间传输控制消息。第一设备和第二设备可以是微处理器、图形加速器或其他设备。一个或多个示例还可以提供至少包括链路层和物理层的分层协议栈,该分层协议栈被配置为耦合到串行差分链路,其中,该分层协议栈还被配置为在链路上发送包括毒害状态的控制微片。在至少一个示例中,控制微片包括链路层信用(LLCRD)消息编码。在至少一个示例中,控制微片包括链路层控制(LLCTRL)消息编码。在至少一个示例中,控制微片包括完全编码的信用返回字段。一个或多个示例还可以提供至少包括链路层和物理层的分层协议栈,该分层协议栈被配置为耦合到串行差分链路,其中,该分层协议栈还被配置为发送包括组合的信用和确认的单个微片,以便表示第一数量的返回信用和第二数量的确认。贯穿本说明书对“一种实施例”或“一个实施例”的引用意味着结合该实施例描述的具体的特征、结构或特性被包括在本发明的至少一种实施例中。因而,贯穿本说明书在各种场合出现短语“在一种实施例中”或“在一个实施例中”并不必定都是指相同的实施例。此外,在一个或多个实施例中,可以以任何合适的方式组合各具体特征、结构或特性。在前面的说明书中,已经参考特定的示例性的实施例给出了详细描述。然而,将明显看出,可以在不偏离所附权利要求陈述的本发明的宽广精神和范围的前提下对其做出各种修改和改变。因此,以说明性的意义而不是限制性的意义看待说明书和附图。此外,前面对实施例和其他示例性语言的使用并不必定是指相同的实施例或相同的示例,而是可以是指不同的和独特的实施例并且可能是指相同的实施例。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1