高性能光中继器的制造方法_2

文档序号:9930904阅读:来源:国知局
多个flit。
[0053]作为第一示例,phit 640的宽度包括I对I链路宽度到位的映射(例如,20位链路宽度包括20个位的phit,等)。flit可具有更大尺寸,例如184、192或200个位。注意如果phit 640是20位宽并且flit635的尺寸是184个位,则它取一部分的phit 640来传送一个flit635 (例如,除其他示例外,以20个位的9.2个phit传送184位flit635或以20个位的9.6传送192位flit)。注意物理层处的基础链路的宽度可变化。例如,每方向通路的数量可包括2、4、6、8、10、12、14、16、18、20、22、24等。在一个实施例中,链路层610a,b能够将不同事务的多个片嵌入单个flit中,并且一个或多个标头(例如,1、2、3、4个)可嵌入flit内。在一个示例中,HPI将标头分成对应槽以使flit中的多个消息能够被派往不同节点。
[0054]在一个实施例中,物理层605a、b可以负责信息在物理介质上的快速传输(电或光等)。物理链路在两个链路层实体(例如层605a和605b)之间可以是点到点的。链路层610a,b可以从上层提炼物理层605a、b并且提供可靠传输数据(以及请求)和管理两个直接连接实体之间的流控的能力。链路层还可以负责将物理通道虚拟化为多个虚拟通道和消息类别。协议层620a、b在将协议消息递交给物理层605a、b以用于跨物理链路传输之前依赖链路层610a、b来将它们映射到合适的消息类别和虚拟通道。除其他示例外,链路层610a、b可支持多个消息,例如请求、窥探、响应、回写、不一致数据。
[0055]HPI的物理层605a、b (或PHY)可以在电气层(S卩,连接两个部件的电导体)之上和链路层610a、b以下实现,如在图6中图示的。物理层和对应的逻辑可以驻存在每个代理上并且连接彼此分离的两个代理(A和B)(例如,在链路任一侧上的设备上)上的链路层。本地和远程电气层通过物理介质(例如,线、导体、光等)连接。在一个实施例中,物理层605a、b具有两个主要阶段:初始化和操作。在初始化期间,连接对于链路层是不透明的并且信令可牵涉定时状态和握手事件的组合。在操作期间,连接对于链路层是透明的并且信令处于一定速度,其中所有通路作为单个链路一起操作。在操作阶段期间,物理层将flit从代理A传输到代理B以及从代理B传输到代理A。连接也称为链路并且在与链路层交换flit和当前配置的控制/状态(例如,宽度)时提炼一些物理方面,其包括来自链路层的介质、宽度和速度。初始化节点包括次要阶段,例如轮询、配置。操作阶段还包括次要阶段(例如,链路功率管理状态)。
[0056]在一个实施例中,可以实现链路层610a、b以便在两个协议或路由实体之间提供可靠数据传输。链路层可以从协议层620a、b提炼物理层605a、b,并且可以负责两个协议代理(A,B)之间的流控,并且向协议层(消息类别)和路由层(虚拟网络)提供虚拟通道服务。协议层620a、b与链路层610a、b之间的接口可以典型地处于包级。在一个实施例中,链路层处的最小传输单位称为flit,其是规定数量的位,例如192个位或某一其他额度。链路层610a、b依赖物理层605a、b来将物理层605a、b的传输单位(phit)成帧为链路层610a、b的传输单位(flit)。另外,链路层610a、b可在逻辑上分解成两个部分:发送者和接收者。一个实体上的发送者/接收者对可连接到另一个实体上的接收者/发送者对。流控通常既在flit又在包基础上进行。检错和纠错也潜在地在flit级基础上进行。
[0057]在一个实施例中,路由层615a、b可以提供灵活和分布式方法来将HPI事务从源路由到目的地。因为对于多个拓扑的路由算法可通过每个路由器处的可编程路由表来规定(编程在一个实施例中由固件、软件或其组合进行),方案是灵活的。路由功能性可被分布;路由可通过一系列路由步骤来进行,其中每个路由步骤通过源、中间或目的路由器处的表的查找来定义。源处的查找可用于将HPI包注入HPI构造。中间路由器的查找可用于将HPI包从输入端口路由到输出端口。目的端口处的查找可用于对准目的HPI协议代理。注意路由层在一些实现中可以是薄的,因为路由表以及因此路由算法未被规范具体定义。这允许灵活性和多种使用模型,其包括要由系统实现定义的灵活平台架构拓扑。路由层615a、b依赖链路层610a、b用于提供多至三个(或更多)虚拟网络(VN)的使用-在一个示例中,两个无死锁VN (VN0和VNl)具有在每个虚拟网络中定义的若干消息类别。共享自适应虚拟网络(VNA)可在链路层中定义,但该自适应网络可未在路由概念中直接暴露,因为除其他特征和示例外,每个消息类别和虚拟网络可具有专用资源和保证的转发进度。
[0058]在一个实施例中,HPI可以包括一致性协议层620a、b,用于支持代理高速缓存来自存储器的数据的行。希望高速缓存存储器数据的代理可使用一致性协议来读取数据行以装载到它的高速缓存。希望修改它的高速缓存中的数据行的代理可使用一致性协议以在修改数据之前获取行的所有权。在修改行后,代理可遵循使它保持在它的高速缓存中直到它将行写回存储器或在对外部请求的响应中包括行这一协议要求。最后,代理可满足外部请求来使它的高速缓存中的行无效。协议通过指定所有高速缓存代理可遵循的规则来确保数据的一致性。它还对于没有高速缓存的代理提供一致地读和写存储器数据的部件。
[0059]可实施两个条件来支持使用HPI —致性协议的事务。首先,协议可以作为示例在每地址基础上在代理的高速缓存中的数据之间以及在那些数据和存储器中的数据之间维持数据一致性。非正式地,数据一致性可指代理的高速缓存中代表数据最新值的数据的每个有效行,并且在一致性协议包中传送的数据可以代表数据被发送时的它的最新值。当在高速缓存中或在传送中不存在数据的有效副本时,协议可确保数据的最新值驻存在存储器中。其次,协议可以对请求提供明确定义的承诺点。对于读的承诺点可指示数据何时有用;并且对于写,它们可指示被写的数据何时全局可观察并且将被后续读所加载。协议可在一致性存储器空间中对于可高速缓存和不可高速缓存(UC)两者都支持这些承诺点。
[0060]在一些实现中,HPI可以使用嵌入式时钟。时钟信号可嵌入使用互连而传送的数据中。随着时钟信号被嵌入数据中,可以省略截然不同且专用时钟通路。这例如因为它可以允许设备的更多引脚专用于数据传输、特别在其中用于引脚的空间非常珍贵的系统中而可以是有用的。
[0061]
物理层
链路可以在互连的任一侧上的两个代理之间建立。发送数据的代理可以是本地代理并且接收数据的代理可以是远程代理。状态机可以由两个代理采用来管理链路的各种方面。在一个实施例中,物理层数据路径可以将flit从链路层传送到电气前端。控制路径在一个实现中包括状态机(也称为链路训练状态机或相似物)。状态机的动作和从状态的退出可取决于内部信号、定时器、外部信号或其他信息。事实上,状态中的一些(例如一些初始化状态)可具有定时器,用于提供超时值来退出状态。注意检测在一些实施例中指在通路的两个臂上检测事件;但不一定是同时。然而,在其他实施例中,检测指通过参考代理的事件检测。作为一个示例,去抖(debounce)指信号的持续声明。在一个实施例中,HPI支持非功能通路情况下的操作。在这里,通路可在特定状态被丢弃。
[0062]除其他种类和子种类外,状态机中定义的状态可以包括复位状态、初始化状态和操作状态。在一个示例中,一些初始化状态可以具有辅定时器,其用于在超时时退出状态(基本上由于未能在状态中取得进展而中止)。中止可包括更新寄存器,例如状态寄存器。一些状态还可以具有主定时器,其用于对状态中的主要功能定时。除其他示例外,可以定义其他状态使得内部或外部信号(例如握手协议)驱动从状态到另一个状态的转变。
[0063]状态机还可支持通过单步骤的调试、初始化中止的冻结和检验器的使用。在这里,状态退出可以被延缓/保持直到调试软件就绪。在一些实例中,退出可以被延缓/保持直到二次超时。动作和退出在一个实施例中可以基于训练序列的交换。在一个实施例中,链路状态机在本地代理时钟域中运行并且从一个状态到下一个的转变与传送器训练序列边界一致。状态寄存器可用于反映当前状态。
[0064]图1图示在HPI的一个示例实现中代理所使用的状态机的至少一部分的表示。应意识到图7的状态表中包括的状态包括可能状态的非详尽列表。例如,省略一些转变来简化图。一些状态还可组合、划分或省略,而可增加其他。这样的状态可以包括:
事件复位状态:在热或冷复位事件时进入。恢复默认值。使计数器(例如,同步计数器)初始化。可退到另一个状态,例如另一个复位状态。
[0065]定时复位状态:对于带内复位的定时状态。可驱动预定义电气有序集(E0S),因此远程接收器能够检测EOS并且也进入定时复位。接收器具有通路,其保持电气设定值。可退到代理来校准复位状态。
[0066]校准复位状态:在通路上没有信令的校准(例如,接收器校准状态)或关闭驱动器。基于定时器在状态中可以是预定时间量。可设置操作速度。在端口未被启用时可充当等待状态。可包括最小驻存时间。接收器调节或错开可基于设计而出现。在校准超时和/或完成后可退到接收器检测状态。
[0067]接收器检测状态:检测通路上接收器的存在。可查找接收器终端(例如,接收器下拉插入)。在设置规定值时或在未设置另一个规定值时可退到校准复位状态。如果检测到接收器或达到超时可退到传送器校准状态。
[0068]传送器校准状态:用于传送器校准。可以是对传送器校准分配的定时状态。可包括通路上的信令。可持续驱动E0S,例如电子闲置退出有序集(或EIE10S)。在进行校准时或在定时器到期时可退到兼容性状态。如果定时器到期或出现二次超时,可退到传送器检测状态。
[0069]传送器检测状态:规定有效信令。可以是握手状态,其中代理完成动作并且基于远程代理信令退到下一个状态。接收器可规定来自传送器的有效信令。接收器在一个实施例中寻找唤醒检测,并且如果在一个或多个通路上被去抖,则在其他通路上寻找它。传送器驱动检测信号。可响应于对所有通路完成去抖和/或超时或如果所有通路上的去抖未完成并且存在超时则可退到轮询状态。在这里,一个或多个监测器通路可保持清醒来对唤醒信号去抖。并且如果被去抖则其他通路潜在地被去抖。这可以在低功率状态实现功率节省。
[0070]轮询状态:接收器更改漂移缓冲器、使其初始化并且锁住位/字节(例如,识别符号边界)。可对通路进行倾斜校正。远程代理可响应于确认消息而促使退到下一个阶段(例如,链路宽状态)。轮询可以通过锁定到EOS和训练序列标头而另外包括训练序列锁。在远程传送器处通路对通路倾斜可对于最高速度控制在第一长度并且对于慢速控制在第二速度。倾斜校正可采用慢模式以及操作模式进行。接收器可具有特定最大值来对通路对通路倾斜进行倾斜校正,例如8、16或32个倾斜间隔。接收器动作可包括延时固定。接收器动作在一个实施例中可以在对有效通路映射(valid lane map)成功进行倾斜校正时完成。成功握手在一个示例中可以在带有确认地接收若干连续训练序列标头以及在接收器完成它的动作后传送若干具有确认的训练序列时实现。
[0071]链路宽状态:代理与到远程传送器的最后通路映射通信。接收器接收信息并且解码。接收器可在第二结构中之前的通路映射值的检查点之后在结构中记录配置通路映射。接收器还可用确认(“ACK”)作出响应。可发起带内复位。作为一个示例,第一状态发起带内复位。在一个实施例中,退到下一个状态(例如flit配置状态)响应于ACK而进行。此夕卜,在进入低功率状态之前,如果唤醒检测信号出现的频率下降到规定值(例如,每单位间隔(UI)数量I个,例如4K UI)以下,还可生成复位信号。接收器可保持当前和之前的通路映射。传送器可基于具有不同值的训练序列来使用不同通路组。在一些实施例中,通路映射可未修改一些状态寄存器。
[0072]flit锁定配詈状杰:由传送器讲入,佰该状杰在传送器和接收器两者都退到阳.断链路状态或其他链路状态时视为退出(即,二次超时无实际意义)。在一个实施例中,传送器退到链路状态包括在接收行星对准信号后数据序列的开始(SDS)和训练序列(TS)边界。在这里,接收器退出可基于从远程传送器接收SDS。该状态可从代理到链路状态的桥接。接收器识别SDS。如果在解扰器被初始化之后接收SDS则接收器可退到阻断链路状态(BLS)(或控制窗口)。如果出现超时,退出可以到复位状态。传送器用配置信号驱动通路。传送器退出可以到复位、BLS或基于条件或超时的其他状态。
[0073]兼容状态:从传送器校准状态进入。一个设备(充当主控装置)可以向另一个设备(从装置)发送兼容模式并且该从装置可以在对它的本地时钟重新定时之后使模式回环。当回环不起作用时可以用于表征通路的某一子集上的模拟前端的操作。兼容状态可用于抖动或噪声调查、调试、开发链路等。兼容状态可以用来自主控装置的传送器驱动超序列。接收器在监测通路上寻找唤醒、对唤醒去抖动、丢弃坏的通路、更改并且位锁定等。从传送器可以驱动兼容模式直到完成它的接收器动作。则回环被重新定时并且未被倾斜校正。从接收器进行相似的监测和去抖动等动作。除其他示例外,退出可以到复位状态(例如定时复位),或到回环模式状态来开始测试。
[0074]代理回环标iP,状杰:回环标记是代理状态,但与其他代理状态不同,主控装置和从装置动作以及退出可不同。回环从装置可撤销任何极性反转和/或通路逆转但可对回环位解扰或重新扰乱回环位。因为它在回环,确认交换可不适用于从装置。因为从装置可在符号边界上回环之前倾斜校正,主控装置可未被迫重新字节锁定或重新倾斜校正,但主控装置可重新锁定训练序列来避免锁定到一些化名。这意指这么做可包括LFSR的重新播种、比较TS和/或EIEOS或这些的某一组合。SDS的末端标记回环设置的末端和模式生成的开始、检查和计数。
[0075]代理回环樽式状杰(或阳.断链路状杰):在该状杰中,代替控制樽式,主传送器可以发送IBIST模式并且它的接收器可以在接收模式中检查错误。对于传送器自适应,两个代理都可以是主控装置。对于预定时期,传送器可以发送模式并且远程接收器可以比较该模式并且确定记录在存储元件(例如寄存器)中对于接收模式的品质或度量的数字。比较方法和度量可取决于设计(例如,具有抖动注入的BER)。在时期结束时,两个代理都可以退到复位以供反向通道检查度量并且设置传送器自适应的下一个迭代。
[0076]传送链路状杰:链路状杰。flit被发送到远程代理。可从阻断链路状态进入并且在事件(例如超时)时返回阻断链路状态。传送器传送flit。接收器接收flit。还可退到低功率链路状态。在一些实现中,传送链路状态(TLS)可以称为LO状态。
[0077]阳.断链路状杰:链路状杰。传送器和接收器采用统一方式操作。可以是定时状态,在其期间链路层flit被拖延而物理层信息被传递到远程代理。可退到低功率链路状态(或基于设计的其他链路状态)。阻断链路状态(BLS)在一个实施例中周期地出现。该周期称为BLS间隔并且可被定时,以及可区分慢速和操作速度。注意,可定期防止链路层发送flit使得具有一定长度的物理层控制序列可被发送,例如在传送链路状态或部分宽度传送链路状态期间。在一些实现中,阻断链路状态(BLS)可以称为LO控制或LOc状态。
[0078]部分宽度传送链路状态:链路状态。可通过进入部分宽度状态(其中链路的一个或多个可用通路在部分宽度传送链路状态期间变得闲置)来节省功率。在一个实施例中,不对称部分宽度指具有不同宽度的两个方向链路的每个方向,其在一些设计中可得到支持。注意速度可不更改但宽度可更改。因此,flit潜在地以不同宽度发送。在逻辑上可与传送链路状态相似;然而,因为存在较小宽度,可花更长时间来传送flit。可退到其他链路状态,例如基于某些接收和发送消息的低功率链路或部分宽度传送链路状态的退出或基于其他事件的链路阻断状态。在一个实施例中,传送器端口可采用交错方式关闭闲置通路来提供更好的信号完整性(即,噪声减轻),如在定时图中示出的。在这里,不能重试的flit (例如NulIflit)可在链路宽度改变的时期期间使用。对应的接收器可丢弃这些nulIflit并且采用交错方式关闭闲置通路,以及在一个或多个结构中记录当前和之前的通路映射。注意状态和关联的状态寄存器可保持不更改。在一些实现中,部分宽度传送链路状态可以称为部分LO或LOp状态。
[0079]退出部分宽度传送链路状态:退出部分宽度状态。在一些实现中,可或可不使用阻断链路状态。传送器在一个实施例中通过在闲置通路上发送部分宽度退出模式来训练它们并且对它们进行倾斜校正而发起退出。作为一个示例,退出模式以EIEOS开始(其被检测并且对于通路准备开始进入全传送链路状态这一信号去抖动),并且可以闲置通路上的SDS或快速训练序列(FTS )结束。在退出序列期间的任何失效(接收器动作,例如在超时之前未完成倾斜校正)停止到链路层的flit传输并且声称复位,其在下一个阻断链路状态出现时通过重设链路来处理。SDS还可将通路上的扰乱器/解扰器初始化为合适的值。
[0080]低功率链路状态:是低功率状态。在一个实施例中,它是比部分宽度链路状态更低的功率,因为信令在该实施例中在所有通路上和在两个方向上都被停止。传送器可使用阻断链路状态用于请求低功率链路状态。在这里,接收器可对请求解码并且用ACK或NAK作出响应;否则可触发复位。在一些实现中,低功率链路状态可以称为LI状态。
[0081]在HPI的一些实现中,可以定义超序列,每个超序列对应于相应状态或进入相应状态/从相应状态退出。超序列可以包括数据集和符号的重复序列。除其他示例外,序列在一些实例中可以重复直到完成状态或状态转变,或对应事件的组合。在一些实例中,超序列的重复序列可以根据定义的频率(例如定义的单位间隔(UI)数)来重复。单位间隔(UI)可以对应于用于在链路或系统的通路上传送单个位的时间间隔。在一些实现中,重复序列可以以电气有序集(EOS)开始。因此,EOS的实例可以预期根据预定义频率来重复。这样的有序集可以实现为定义的16字节代码,其除其他示例外还可采用十六进制格式表示。在一个示例中,超序列的EOS可以是EIE10S,例如在图8中表示的。例如,EIEOS可以类似于低频时钟信号(例如,预定义数量的重复FFOO或FFF000十六进制符号,等)。数据的预定义集可以跟随E0S,例如预定义数量的训练序列或其他数据。这样的超序列可以在状态转变(其除其他示例外还包括链路状态转变以及初始化)中使用。
[0082]在互连的一些实现中,可以引入和除去串行数据链路的终端,例如在重设或初始化链路时。该方法可以将复杂性和时间引入链路的初始化内。在HPI的一些实现中,链路的终端可以被维持,其包括在链路的复位或重新初始化期间。此外,HPI可以准许设备的热插拔。当引入另一个设备(通过热插拔或用别的方式)时,添加新的远程代理所在的通路的电压特性将改变。本地代理可以感测通路电压中的这些改变(例如,下拉)来检测远程代理的存在并且提示链路的初始化。状态机状态和定时器可以在状态机中限定来协调链路的检测、配置和初始化(在没有终端的情况下)。
[0083]作为示例,设备的传送器在接收器检测(“RxDetect”)状态期间可以就远程接收器终端的存在来监测链路的通路,该远程接收器终端的存在指示在链路的另一端上存在远程设备。这可以充当一类握手,其中接收器终端导致退到下一个状态(例如,传送器校准状态)。如果握手未在预定时间内未出现,监测设备可以使初始化中止,从而导致在重新进入RxDetect状态之前转变回到复位状态以再次尝试识别在链路上远程设备的引入(例如,除其他示例外,连同由软件发起的热插拔事件或受控链路启动)。在RxDetect期间,接收器终端(下拉)要在所有好的通路上插入。在退出状态并且转变到另一个(其中检测超序列在链路上的设备之间传递)之前可丢弃任何坏的通路。此外,由接收器终端生成的信号可以被去抖,因为就信号的持续声称来检查通路。除其他示例外,在一个示例中,去抖可以持续对应于用于在Rx
当前第2页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1