为串行点到点链路通过非数据符号处理进行通道到通道的偏斜校正的制作方法

文档序号:7609754阅读:197来源:国知局
专利名称:为串行点到点链路通过非数据符号处理进行通道到通道的偏斜校正的制作方法
技术领域
本发明的实施例一般涉及适用于电子系统的通信连接部件的串行点到点互连技术,尤其涉及那些具有遵循PCI Express基本规范1.0a(其勘误表日期为2003年10月7日)(“PCI Express”)的某些方面的技术。本文还描述了其他一些实施例。
背景技术
电子系统是由一些单元组成,这些单元被设计成在系统的输入/输出(I/O)互连上进行相互通信。例如,现代计算机系统可包括以下单元处理器、主存储器、系统接口(也称为系统芯片组)。一个单元可包括一个或多个集成电路(IC)设备。例如,系统芯片组可具有存储器控制器集线装置(MCH)设备,该装置设备使得处理器能与系统存储器和图形单元进行通信。此外,可设置I/O控制器集线装置(ICH),它经由MCH将处理器和存储器连接到比如大容量存储设备与外围设备的计算机系统的其他单元。在这种情况下,可以用分开的点到点链路(如由PCI Express定义的链路)来在成对设备(如处理器与MCH、MCH与图形单元、ICH与大容量存储设备)之间实现双向通信。
PCI Express点到点链路可具有一条或多条能同时工作的通道。各通道具有两条也可同时工作的单向路径。每条路径可具有单组的发射机和接收机对(例如,设备A的端口中的发射机,设备B的端口中的发射机)。在这种情况下,上述发射机和接收机可驱动和检测某种传输介质,例如印制接线板中可穿过板到板之间的连接器的一对金属迹线(metal trace)。另外,也可提供其他传输介质,例如光纤。
点到点链路用来在设备之间传送各种类型的信息。然而,在所谓的“较高层”处,可利用事务处理来在两设备中的对等体(也称为请求者与完成者)之间进行通信。例如,存在将数据传送到存储器映射位置或者从该位置传送数据的存储器事务处理。根据PCI Express规范,也存在传递各种消息的消息事务处理,且可用于比如中断信令、误码信令和电源管理等功能。
可存在三个“构建”事务处理的抽象层。第一层是事务处理层,该层开始将来自设备核的请求或完成数据转换成用于事务处理的数据分组的过程。第二结构构建层称为数据链路层,它确保正确接收通过跨链路来回传输的分组(通过误码控制编码等技术)。第三层称为物理层。该层负责分组在链路上的实际发送和接收。一方面给定设备中的物理层与其数据链路层(在同一设备中)相互作用,另一方面则与金属迹线、光纤或其他作为链路一部分的传输介质相互作用。该物理层可包含发射机和接收机电路、并-串转换器与串-并转换器、频率与相位控制电路以及阻抗匹配电路。它也可包含提供其初始化和维护所需的逻辑功能的电路。在升级物理层(例如,增加发射和接收时钟频率)时,例如通过允许重新使用基本相同的事务处理和数据链路层,分层结构可使得升级变得更为容易。
现在给出关于物理层行为的示例。一旦加电,设备A和设备B上的物理层便负责对链路进行初始化,并使其为进行事务处理做好准备。该初始化过程可包括确定应当将多少通道用于链路,且确定该链路应当以多大的数据数据速率来工作。在正确初始化链路后的某个时刻,在设备A中初始化存储器读请求。最终,包括该读请求的分组到达设备A的物理层,该分组包括由上述较高层添加的报头、误码控制信息和序列号。然后,物理层接收该数据分组,将其变换成串行的数据流(该变换可能发生在将组帧数据加入到它后),并使用具有预定定时规则的电差动信号来传送该数据流。
一旦设备B的物理层在其接收机的输入处发现上述信号,它便采样该数据,以将其恢复成数据流,并将该数据流重新构建成数据分组(例如,在除去组帧数据后)。然后,将该分组向上传送到设备B的数据链路层,该数据链路层剥离报头,并进行误码校验;如果不存在误码,则将该分组向上传送到事务处理层,在该层中读存储器请求被提取并且然后发送到合适的逻辑功能单元,以访问该请求中规定的位置。


在附图中通过示范性而非限制性的方式说明本发明的实施例,在这些图中,用类似的附图标记表示类似的构成要素。应当注意,在本公开中,对本发明的“一个”实施例的多次引用不必一定指同一个实施例,且上述“一个”意味着至少一个。
图1说明了一对通过串行点到点链路相互连接的集成电路设备。
图2示出了用来在集成电路设备中实现串行点到点链路的链路接口电路一部分的框图。
图3描绘了用于在该例中服务于具有四条通道的链路的偏斜校正(deskew)电路的框图。
图4A-4B示出了单条通道的偏斜校正电路示例的详细框图。
图5是说明了偏斜校正过程的示例定时图。
图6A-6B示出了另一个偏斜校正过程的示例定时图。
图7标识了多媒体台式个人计算机的各种单元,且这些单元中的一些单元通过PCI Express虚拟通道(VC)互相通信连接。
图8描绘了企业网的框图。
具体实施例方式
本发明的实施例是针对串行点到点链路的多条通道的接收机偏斜校正。图1说明了一对通过串行点到点链路相互连接的集成电路设备。IC设备104(设备A)与108(设备B)可以是包含处理器112与主存储器114的计算机系统的一部分。在该例中,串行点到点链路120用来将设备B的核与设备A的核通信连接在一起。链路120具有两条单向的路径122,这两条路径具有用来与设备A和B的各自的设备核进行接口的链路接口124。
在本实施例中,设备B称为计算机系统的根联合体(rootcomplex),并为处理器112设置了到设备A的图形单元的I/O访问。根联合体可以分成图形与存储器控制器集线装置(GMCH)和I/O控制器集线装置(ICH)。该ICH还可用作GMCH与系统的其他I/O设备的接口,这些其它I/O设备包括非易失性大容量存储设备、指向设备(如跟踪垫或鼠标)以及网络接口控制器(未示出)。可复制点到点链路120,以将设备B通信连接到处理器112和主存储器114。还可能有其他的以点到点链路120为特征的平台体系结构。
图1的接口124可视为串行点到点链路实现的多层结构(在上文背景技术中作了描述)。图2说明了接口124的一些细节。接口124支持在传输介质122与其各自设备104、108的数据链路层之间的独立的发送和接收路径。在发送路径中,数据分组形式的信息来自数据链路层,并被分成由编码模块208进行编码的符号。用模块208进行编码的目的是嵌入时钟信号,使得不需要将分离的时钟信号发送到传输介质122中。这种编码可以是公知的8B-10B编码,其中,将8位量转换成了10位量,当然其他编码方案也是可以的。在某些场合,例如在介质122中发送分开的选通或时钟信号时,就不需要这样的编码。
在模块208中进行编码后,用模拟前端(AFE)发送模块214的并-串模块212来处理数据单位(此处称为符号),以产生位的数据流。注意,此处使用的“位”可代表不止两种不同状态,例如二进制位,三进制位等。此处使用术语“位”仅仅是为了方便,且无意于将其限于二进制位。然后,将位数据流送入传输介质122。如上文的背景技术部分所述,该传输介质可以是在印制接线板中形成的一对金属迹线。还可以使用其他形式的传输介质122,比如光纤。
一系列模块208-214可服务于点到点链路120(图1)的单条通道。一般而言,在点到点链路120中可存在不止一条通道,以便从数据链路层接收的分组被跨多条通道“分道(striped)”而进行传输。
现在转到图2所示的接口124的接收侧,其中,各通道均具有与之相关的AFE接收模块224,该接收模块224用来通过例如采样传输介质122中的信号,以接收来自传输介质122信息流。在传输介质122与IC设备104(如片上系统、互补金属氧化物半导体、CMOS、逻辑信令仪)之间的信令通过AFE接收模块224来进行相互转换。如下所述,该信息流代表M位符号的序列(其中M为大于1的整数),且已通过设备B在串行点到点链路120上传送这些符号(见图1)。
将AFE接收模块提供的位流馈入到符号对准逻辑模块228,该模块228用来对准或锁定已接收的符号。换言之,如下所述,符号对准逻辑模块228将在所接收的位流内划分出正确的符号分界,以供设备104的物理层的后续部分使用。
然后,已符号对准的位流被馈入解码模块232,该模块232解除了由编码模块208完成的编码(如10B-8B解码,以产生各由八个二进制位组成的信息符号)。
然后,经解码的符号馈入弹性缓存器EB 234。EB 234用来补偿在设备B中的传输符号的速度与设备A的本地时钟信号(local_clk)的容差中的任何差异。Local_clk用来从EB 234中卸载符号,以及在某些情况下操作通道到通道的偏斜校正电路238中的部分,如以下所述(当链路120包括不止一条通道时)。应当注意,可以将解码模块232(如果被提供)设置在更下游的数据流位置,例如在EB 234的输出处或在偏斜校正电路238的输出处。
使用由设备B(见图1)插入到数据序列中的预定的、专用的或非数据的符号序列,可用EB 234的卸载指针来避免弹性缓存器中的上溢和下溢情形。简言之,为防止弹性缓存器的下溢,可响应非数据符号之测出来将卸载指针阻止在包含非数据符号的缓存器入口处。在根据变化的卸载指针卸载数据序列时完成此过程。而这会使得装载指针离开卸载指针,从而防止下溢。
另一方面,为防止该弹性缓存器的上溢,在从该缓存器卸载符号时,可将卸载指针改变不止一个入口,以跳过非数据序列(当前装载在该缓存器中)的非数据符号。响应非数据序列之测出再次完成这个过程。这会使得卸载指针远离装载指针,再一次避免冲突。
符号可以是代表某些有效载荷的“数据”符号,这些有效载荷是数据链路层、事务处理层或其他较高层(如设备核)的数据来源。或者,符号也可以是“非数据”符号(如由物理层、数据链路层或事务处理层中的一个生成的特殊符号),以对在串行点到点链路传输的信息上实现某种类型的控制。下面,将给出作为PCI Express特殊符号的这种非数据符号的几个示例。
PCI Express定义了一些加入到在传递的分组中的专用符号。例如,加入专用符号来标记分组的开始和结束。这是为了让接收设备知道一个分组在何处开始和何处结束。为源自事务处理层的分组加入的专用符号不同于为源自数据链路层的分组加入的专用符号。此外,存在称为“SKP”(跳过)的专用符号,物理层用该符号来补偿两个通信端口的工作数据速率方面的微小差异。也存在称为“COM”(逗号)的专用符号,物理层用该符号来进行通道与链路的初始化。
偏斜校正此处讨论的偏斜校正问题涉及具有不止一条通道的链路。本质上,偏斜校正是一个难题,因为当信息从设备B发出和在设备A接收时,其“飞行时间”在通道之间会不同。从而,使用相同的传输时钟,尽管设备B可以在对应的一组通道上同时发送一组符号,但是,不能期望这些符号基本上同时(即没有通道到通道的偏斜)到达设备A。存在几种不同的导致通道之间偏斜的来源。对以PCI Express定义的物理层传输介质而言,这些来源包括存在差异的片上驱动器和接收机、印制接线板的阻抗变化和通道线的不匹配。此外,串行化与解串行化逻辑电路也可能引入各种延迟。
因为可将分组跨多条通道进行分道,因而需将通道之间的偏斜最小化,以帮助确保经分道的分组在接收机设备处被正确接收和处理。否则,如果同时发送的符号以不同时刻到达接收机,然后将这些符号进行解串行处理来重构数据分组,则很有可能数据链路层完全不能理解这样的分组。根据PCI Express规范,预定的称为“TS1/TS2有序集”的非数据序列可用来确定给定链路的通道之间的非对准或偏斜量。图3在概念上说明了四组“同时”发送的四符号序列是如何并行但以不同时刻到达接收机、并且如何在随后由偏斜校正电路进行对准。
根据本发明的一个实施例,如下所述,通过非数据符号处理可实现通道到通道的偏斜校正。首先,在设备A中并行接收两个或更多个符号序列,其中这些序列是由设备B在串行点到点链路上进行传输的(见图2)。各符号序列包括第一非数据符号的实例(如PCIExpress COM)。对这些符号序列进行缓冲,以对设备B的发送时钟和设备A的接收时钟的容差进行补偿。再次看图2,这种缓冲可由弹性缓存器(EB)234来完成。然而,这种缓冲也可能使在给定的符号序列中第二非数据符号(如PCI Express SKP)的实例出现的次数发生变化。从而,除上述的那些偏斜的标准来源以外,EB 234的行为可导致在通道之间进一步出现偏斜。
本发明的一个实施例是针对两部分的偏斜校正过程。第一部分将链路的每一个缓冲存储的符号序列中的第一非数据符号的实例对准。该过程对由偏斜校正逻辑电路的缓冲效应引起的呈现给各序列的延迟进行了一定的调整。一旦完成了这部分过程,则可以调用第二部分过程来使(在每一个符号序列中的)第一非数据符号实例后的第二非数据符号实例的数目相等。现在,将对使用PCI Express规范定义的专用符号的示例进行描述。应当注意,也可以用其他类型的非数据符号(包括不同的第一和第二非数据符号)来实现此处所述的偏斜校正。此外,可以分开使用或结合其他符号处理使用这些偏斜校正的第一部分和第二部分中的任一个,以便为串行点到点链路实现可靠的多通道传递。
图3示出了在该例中服务于该具有四条通道的链路的偏斜校正电路的框图。其中,各通道从EB 234(见图2)接收10位的符号。尽管在此示出为10位的符号,但由于存在解码模块232,图2的实施例可实际上提供8位的符号。或者,也可采用其他大小的符号。
各通道具有其自身的通道偏斜校正逻辑单元304,它们各自接收其相应的符号序列。此外,通道偏斜校正逻辑单元304从链路初始化单元308的一部分接收控制信号,且该初始化单元可作为偏斜校正过程的监控器(supervisor)。这些控制信号包括偏斜校正使能控制信号(每条通道);以及指示已在链路的所有通道上检测出第一非数据符号的控制信号(all_com_det)。通道偏斜校正逻辑单元304的各实例还可以在其输出端提供了各自的被(以减小的偏斜)转发的符号序列。
根据本发明的一个实施例,可以由如图4A-4B所示的硬件实现通道偏斜校正逻辑单元。在该例中,偏斜校正缓存器404(它具有先进先出结构,也称为队列)设置了7个入口(0,1...6)的深度。应当根据链路的设计规范中提供的允许偏斜的限制来选择缓存器404的深度。可以将相同的缓存器404用于上述第一和第二偏斜校正过程。
仍然参照图4A,写指针逻辑单元408用来将缓冲存储的符号序列装入偏斜校正缓存器404。在偏斜校正过程的第一部分中,根据本地时钟lgclk来顺序地改变或更新写指针的值,该本地时钟也用来读出EB 234(见图2)的已被缓冲存储的符号。应当注意,在正常情况下和在偏斜校正过程的第一部分期间,即使如下所示的读指针已阻止,对lgclk的各周期,写指针也可增加(即改变一个入口)。然而,在偏斜校正过程的第二部分中,写指针被控制以致第二非数据符号(如SKP)不能写入缓存器。在读指针被阻止时(在偏斜校正过程的第一部分期间),取代第二非数据符号。(在第二部分期间)避免将第二非数据符号实际写入缓存器有助于防止最终的缓存器上溢情形。
图4B示出了读指针逻辑单元412,它提供了读指针,以从偏斜校正缓存器404中卸载被缓冲存储的符号序列。例如,根据lgclk的各周期来增加读指针,除非第一非数据符号(如COM)出现在缓存器404的出口处。
图4B所示的偏斜校正电路还包括连接到读指针逻辑单元的控制逻辑单元416。一旦发出了使能控制信号gi_gb_dskew_en(也可能指示已发生符号对准,即通过gP_gi_kalignlck),则可激活该逻辑单元。在该例中,响应出现在缓存器404的出口处的第一非数据符号的第一实例(如COM),通过选择所示多路复用器的“01”输入,控制逻辑单元416可阻止读指针。此外,控制逻辑单元416可在通道偏斜校正逻辑单元的输出端生成第二非数据符号(如SKP)的实例,通过该偏斜校正逻辑单元,可以转发缓冲存储的符号序列dsw_data[7:0]。在链路的每条通道中,一旦第一非数据符号出现在偏斜校正电路的输出端,控制逻辑单元416可释放读指针(并停止生成第二非数据符号的实例)。
图5的定时图描绘了使用图4A-4B的硬件的偏斜校正过程的第一部分的工作过程。该定时图示出了与链路的两条不同通道相关联的波形,其中通道0可以是接收第一非数据符号COM的第一条通道,而通道1是接收COM的最后一条通道。
注意在lgclk的每个周期中是如何增加写指针wrpr的(且在周期8中回到0)的。缓存器404的输入端由ebuff_out[7:0]表示,而其输出端则由FIFO_dataout表示。而指示dskew_char是一种标记,该标记也到达缓存器404的输入端(来自EB 234,见图2)。在周期2中可看出,该标记与到达的COM符号对准。
当在缓存器404的出口处检测到该COM符号时,特别是在周期3中,FIFO_dskew_char标记被确证,这立即导致gen_skp标记也被确证。这意味着rdptr阻止在其当前值001处,同时,在dsw_data[7:0]中生成第二非数据符号SKP(始于周期3)的实例。在周期3中继续延续这种情形,直到链路的最后一条通道在其缓存器404的输入端接收到COM符号为止。因而,现在参看通道1的定时图,该通道是接收COM符号的最后一条通道,且该接收正好发生在lgclk的周期5中。然后,将出现的该符号解码,使得在下一个周期中发出gi_gp_dskewchar_all_detect标记(或由链路初始化单元308发出的gi_gp_all_com_det,见图3)。从而,在周期6中,通道0在其输出dskw_data[7:0]处转发缓冲存储的COM符号,而不是生成的SKP符号。当发出信号gi_gp_dskewchar_all_detect时,意味着链路的所有通道均已“看见”第一非数据符号,这使得各条通道的rdptr可以从其阻止状态得到释放。
应当注意,所有通道的写指针继续在lgclk的各周期中增加,除非在缓存器404的输入端检测到第二非数据信号(此处为SKP)。对本PCI Express实施例而言,该过程在缓存器404的输入端寻找COM符号,其中该COM符号不是SKP有序集。如上所述的SKP有序集是在PCI Express规范下定义的非数据序列的一个实例,该序列由单个COM符号及其后的一到五个SKP实例组成。为说明SKP有序集,假设在图5的定时图中,DATA1、DATA2和DATA3(称为“跟随”COM符号)各自替代为非数据符号SKP的实例。
偏斜校正过程的第一部分(也称为PCI Express实施例的使用COM符号的偏斜校正)通过在COM符号前插入一个或多个SKP实例,使得对链路的所有通道中的COM符号对准。在图5中,通过将通道0的经偏斜校正的输出(dskw_data[7:0])与通道1的对应的经偏斜校正的输出进行比较,可看出这一点。应当注意,在时钟周期3-5中通过在COM符号之前插入三个SKP实例,是如何实现在lgclk的周期6中将COM符号对准的。
可以在链路的初始化之前的训练期间执行上述偏斜校正过程的第一部分(使用COM的偏斜校正)。在第一部分之后进行了第二部分的偏斜校正,在图6A-6B中示出了该第二部分偏斜校正的一个实例。对于该PCI Express实施例,偏斜校正过程的第二部分也可称为使用SKP的偏斜校正。仅当链路初始化单元或其他的较高层符号处理单元发出了另外的使能符号gi_gp_skpdskew_en(见图4A-4B)时,才执行该第二部分。此时,如图4A-4B所示的偏斜校正逻辑电路监视后面跟随有第二非数据符号(如SKP)实例的第一非数据符号实例(如COM)的指示。这两个符号是PCI Express SKP有序集的实例,尽管当然在一般情况下其他非数据序列也能工作。在图4A-4B的实施例中,该指示是通过发出从EB 234得到的eb_dskw_skpdet来给出。该指示也可将指示正在处理SKP有序集的标记置位。如果该标记被置位,且在SKP后检测到非SKP数据符号,则将信号通知SKP有序集的末尾。见图中的最终SKP检测逻辑单元418,在检测到SKP有序集中的最后一个SKP时,该电路会发出信号通知。同时,将数据符号序列装入偏斜校正缓存器404,同时置位dskew_char属性。然而,在本实施例中,所有中间的SKP符号(从SKP有序集的起始到其结尾)均未写入偏斜校正缓存器404。
现在来看偏斜校正缓存器404的出口,如果dskew_char属性被置位,则读指针被阻止在其当前的位置上(再次通过控制逻辑单元416与指针逻辑单元412)。在图6A的定时图中可看出这一点,对通道0而言,其中rdptr在时钟周期4的开始处被阻止。同样,注意偏斜校正缓存器的输出(FIFO_dtatout)在周期3和4中是如何不确定的,然而该通道的输出(dskw_data[7:0])示出了已生成的SKP的两个实例。这是因为,在周期2和3中出现在EB 234的出口处的SKP符号未被写入偏斜校正缓存器404中。
图6B示出了通道1,在该例中,通道1是未接收到在弹性缓存器EB 234(图2)之前原为SKP有序集中的SKP的通道示例。在该例中,非数据序列由来自弹性缓存器的COM的单个实例(周期1)。然而,可将该符号视为SKP有序集(因为它已与通道0中的对应序列对准)。因此,当在周期1中接收到COM时,ep_dskw_skpdet指示也被置位。如果在其他通道(例如通道0)中检测到SKP的实例,则在周期2中将skp_detect_vld指示置位,这表明需要为通道1的输出插入至少一个SKP。因此,在周期3开始时,在输出端(dskw_data)生成SKP的实例。只要在链路的任何通道的偏斜校正缓冲器缓存器的输入端尚未检测到相关的偏斜校正字符(在该情况下为链路的最长有序集中的SKP的最后一个实例),便将继续为通道1生成SKP的额外的实例。对图6A-6B的例子而言,在指示最长SKP有序集的末尾的周期5开始时,发出了gi_gp_dskewchar_all_detect标记。这导致在周期5中释放通道1中的读指针,而这使得在通道1的输出端提供通道1的偏斜校正缓存器中的数据符号(在此为DATA1)。从而,可以看到,在通道0和通道1中,符号序列DATA0、COM、SKP、SKP、DATA1、DATA2、DATA3......等都被对准。
以下概括了根据本发明的某些实施例的操作读和写指针的一些规则。就写指针而言,一旦为链路开始训练序列,则可根据lgclk激活(如增加)该指针。除了以下两种情况以外(其中写指针将保持或阻止在其当前值),均可以增加写指针。这两种情况是a)在对应的偏斜校正缓存器的输入端检测到第二非数据符号(如SKP);或b)链路为X1配置,即仅具有单通道。
现在来看读指针,一旦激活写指针便可激活该指针。以下是读指针不可增加(即被阻止)的条件a)读指针等于写指针(也称为指针冲突,这意味着不能执行偏斜校正过程);b)偏斜校正缓存器的出口处的指示,指明已检测到偏斜校正字符或符号(如COM或SKP),但尚未在链路的所有通道中检测到这样的符号;或c)链路为单通道配置。注意,信号gp_gi_dskewchar_detect(图5和图6)为单个信号,可以用来指示出现任一种类型的偏斜校正字符,例如COM或SKP。
其他系统实施例也可以在IC设备中实现上述的链路接口电路和方法,该IC设备用来通过为多媒体提供同步支持的串行点到点互联技术进行通信。同步支持是用确定性和时间相关的方法分发数据的QoS(服务质量)保证一种具体形式。基于平台的同步支持依赖于文件系统设计方法,该方法使得人们能进行这样的应用,即在给定的时间段内以恒定或专用的方式访问系统资源,以得到所需带宽。
一个示例是在准备报告的同时在台式机上观看源自公司的首席执行官CEO的员工广播,如图7所示。数据从企业内部网路由到台式机的主存储器,在那里,应用程序利用该数据创建通过内插卡发送到用户耳机的音频流以及通过图形控制器发送到显示器的视频流。如果在该台式个人计算机(PC)同时发生多个操作(如读盘、从互连网下载数据、字处理、电子邮件等),则不能保证音频和视频流不存在问题。此时,数据仅仅是以“尽力而为”方法输送的。当应用竞争相同资源时,用户将会感受到跳过或停顿。而PCI Express中的同步性通过建立了一种机制解决这个问题,该机制保证对时间敏感的应用能获得充足的系统资源。例如,在图7中,在牺牲比如电子邮件的非关键数据的前提下,可以确保充足的带宽,以防止跳过。
也可以在设计用来通过串行点到点互联技术(该技术用于从嵌入式应用到基于底板(chassis-based)的交换系统等通信设备中)进行通信的IC设备中实施上述的链路接口电路和方法。在高级交换中,提供了通过交换结构(switch fabric)将分组从同位体发送到同位体的机制。这些市场也受益于PCI Express提供的几类基于硬件的误码检测。在通信设备、控制面处理、数据面处理中存在两种主要的使用方式。控制面是指系统的控制及其配置。可以将串行链路用作配置和控制大量系统中的处理器和插卡的接口。基于底板的交换机通常具有可插入和使用的各种插卡。基于底板的交换机可提供现场升级能力。大部分交换系统在开始时仅安装一半的底板,此后,根据需要或随用户数量的增加具有额外端口或更快速连接的插卡。可以将上述的串行链路技术作为控制面互连手段,来配置和监视安装在系统中的各种不同类型的插卡。例如,PCI Express内列举和建立的配置协议使它本身成为用于配置插卡和业务的引脚数量少、带宽较大的接口。
数据面是指数据流动的实际路径。在数据面中,高级交换扩展可定义一些机制通过交换结构在同位体-同位体链路上来封装和发送PCI Express分组。
PCI Express核体系结构可以为满足新的互连需求提供坚实的基础。高级交换(AS)结构叠加在该核体系结构上,并通过使用在事务处理层的PCI Express分组之前插入的特定AS报头建立了高效的、可升级的和可扩展的交换结构。AS交换机仅检查该报头的内容,这些内容提供了路由信息(将分组发往何处)、业务流等级ID(服务质量信息)、避免阻塞(防止业务流阻塞)、分组大小和协议封装。通过隔离路由信息,交换机设计变得更为简单和更节省成本。此外,将外部报头加入到分组使得交换结构能封装任何数目的现有协议。
也可以在设计用来通过串行点到点互联技术(该技术用于网络连接(例如,取代吉比特级的以太网)进行通信的IC设备中实施上述的链路接口电路和方法。该网络连接可用来使企业的移动或台式计算机共享文件、发送电子邮件和浏览互联网。可预期服务器和通信设备使用这样的网络连接。在图8中,示出了企业网内的这样的网络连接的一个例子。
尽管以上示例以组合式或顺序逻辑电路说明了本发明的实施例,但是,也可以利用软件来实施本发明的其他实施例。例如,可以提供某些计算机程序产品或软件形式的实施例,这些产品或软件可包括机器或计算机可读的介质和该介质上存储的、可用来对计算机(或其他电子设备)编程以执行根据本发明的实施例的过程的指令。在其他实施例中,可通过包含微代码、硬接线的逻辑电路的特定硬件单元或由经过编程的计算机单元与定制的硬件单元的任意组合来进行各种操作。
另外,设计可经历创建到仿真到制造的各个阶段。表示设计的数据可以以多种方式来表示该设计。首先,可使用硬件描述语言或另一种功能描述语言来表示硬件(这在仿真中很有用)。此外,在设计过程的某些阶段,可生产具备逻辑电路和/或晶体管栅极的电路级模型。而且,在某个阶段,大多数设计均涉及某种层次的数据,该数据表示将各种设备物理地设置在硬件模型中。当采用传统的半导体制造技术时,表示硬件模型的数据说明了不同掩模(这些掩模用来生产集成电路)层上各种特征的存在或缺失情况。在任何设计表示中,可以将数据保存在任何形式的可机读介质中。该可机读介质可以是经光波或电波调制的或以其他方式生成的以传输上述信息的存储器、磁或光存储设备(如光盘)。任何这些介质均可“携带”或“指明”设计或软件信息。当传输指明或携带代码(或设计)的电载波时,若拷贝、缓冲保存或重新发送该电信号,便形成了新的备份。从而,通信提供商或网络提供商便形成了以本发明的实施例为特征的事物(载波)的拷贝。
总而言之,已经描述了各种对串行点到点链路进行通道到通道的偏斜校正的方法与设备的实施例。在之前的说明中,参考特定的示范性实施例对本发明进行了描述。然而,显而易见的是,在不背离由附录的权利要求定义的本发明的更广泛精神与范围的前提下,可以对以上的实施例进行各种修改和变更。例如,尽管已使用台式机、服务器、笔记本电脑等设备中的印制接线板上的两设备之间的芯片-芯片连接形式的串行点到点链路说明了系统实施例,但是,也可以将该偏斜校正技术用于作为外部总线(该总线用于将计算机连接到键盘、监视器、外部大容量存储设备或相机)的一部分的串行点到点链路。不仅可将该点到点链路用于计算机系统,也可将其用于移动电话单元、电信交换机和数据网路由器等专用通信产品。从而,应当将本说明书视为说明性的而非限制性的。
权利要求
1.一种方法,包括a)在第一集成电路(IC)设备中并行地接收多个符号序列,所述符号序列由第二IC设备在串行点到点链路上传输,其中,各符号序列包含第一非数据符号的实例;b)缓冲存储所述多个符号序列,以补偿为所述第二IC设备的传输时钟和所述第一IC设备的接收时钟而设的容差;以及c)通过对紧临所述第一非数据符号的实例前的多个缓冲存储的符号序列中的一个而非其全部插入不同的第二非数据符号的实例,来减少多个缓冲存储的符号序列之间的偏离。
2.如权利要求1所述的方法,其中,在c)中,通过对紧临所述第一非数据符号的另一实例前的缓冲存储的多个符号序列中的另一个而非其全部插入第二非数据符号的另一实例来减少所述偏离。
3.如权利要求1所述的方法,在c)后还包括d)在多个符号序列中的另一个而非其全部中检测出第一非数据符号的实例,其中,通过c)和d)在全部所述多个符号序列中检测出非数据符号,使得再没有第二非数据符号的另一实例被插入缓冲存储的多个符号序列。
4.如权利要求1所述的方法,其中,在c)中,在所述第一IC设备的本地时钟的一个周期中,在缓冲存储的多个符号序列中检测出所述第一非数据符号的实例,然后在所述本地时钟的下一周期内插入所述第二非数据符号的实例。
5.如权利要求1所述的方法,其中,所述第一非数据符号是PCIExpress COM,所述第二非数据符号为PCI Express SKP。
6.如权利要求3所述的方法,其中,所述多个符号序列为训练序列。
7.如权利要求3所述的方法,还包括在c)之前,确证第一偏离校正使能控制信号,以及在c)之后通过以下步骤来减少缓冲存储的多个符号序列之间的偏离确证不同的第二偏离校正使能控制信号;然后在所述多个符号序列中一个而非全部中检测出所述第一非数据符号的实例与后续的所述第二非数据符号的实例之组合后,紧接所述第一非数据符号的实例将所述第二非数据符号的实例插入缓冲存储的多个符号序列中的一个序列中。
8.一种方法,包括a)在第一集成电路(IC)设备中接收多个符号序列,所述符号序列由第二IC设备用相同的传输时钟在连接所述第一与第二IC设备的串行点到点链路上以并行方式传输,其中,各符号序列包含第一非数据符号的实例;b)缓冲存储的多个符号序列,并改变第二非数据符号的实例在所述多个符号序列中的一个序列中出现的次数;c)执行第一偏离校正过程,然后执行第二偏离校正过程;所述第一偏离校正过程包括在缓冲存储的多个符号序列的每个序列中对准所述第一非数据符号的实例,所述第二偏离校正过程包括在多个符号序列的每个序列中使后续于所述第一非数据符号的实例的所述第二非数据符号的实例的数量相等。
9.如权利要求8所述的方法,其中,在所述第一偏离校正过程中进行的所述对准包括在缓冲存储的多个符号序列的一个选定序列中插入所述第二非数据符号的实例,该实例在所述选定的序列中超前于所述第一非数据符号的实例。
10.如权利要求9所述的方法,其中,所述第一非数据符号为PCIExpress COM,所述第二非数据符号为PCI Express SKP。
11.如权利要求8所述的方法,其中,所述第一偏离校正过程在链路的训练会话期而不在该链路随后的正常工作期间进行,并且,在所述正常工作期间,对以所述第二非数据符号后续的所述第一非数据符号开始的预定非数据序列的多个实例的中的每一实例,重复所述第二偏离校正过程。
12.如权利要求10所述的方法,其中,所述第一偏离校正过程在缓冲存储的多个符号序列中对准不属于PCI Express SKP有序集的一部分的COM的实例。
13.一种集成电路(IC)设备包括弹性缓存器,所述缓存器具有接收由另一IC设备在串行点到点链路上传输的多个符号序列的输入端,所述弹性缓存器用来提供多个缓冲存储的符号序列;以及偏离校正电路,具有连接到所述弹性缓存器的输出端的输入端,所述偏离校正电路用于响应正被确证的使能控制信号来转发偏离减小的所多个缓冲存储的符号序列,所述偏离校正电路包括多个偏离校正缓存器,写指针逻辑单元,用来将缓冲存储的多个符号序列装入所述多个偏离校正缓存器,读指针逻辑单元,用来提供多个读指针,以从所述多个偏离校正缓存器中卸载多个缓冲存储的符号序列,以及控制逻辑单元,具有连接到所述读指针逻辑单元的输出端,自确证所述使能控制信号以来,所述控制逻辑单元响应出现在所述多个偏离校正缓存器中的一个缓存器的输出端的第一预定非数据符号的第一实例来进行以下步骤a)阻止所述偏离校正缓存器的读指针,以及b)在所述偏离校正电路的输出端产生不同的第二预定非数据符号的实例,通过该电路所述偏离校正缓存器的缓冲存储的符号序列被转发。
14.如权利要求13所述的IC设备,其中,所述读指针在包含所述第一非数据符号的实例的入口被阻止。
15.如权利要求13所述的IC设备,其中,所述控制逻辑单元用来a)释放所述读指针,以及b)在所述第一预定非数据符号的实例已出现在所述多个偏离校正缓存器的每个缓存器的输出端时停止产生所述第二预定非数据符号的实例。
16.如权利要求15所述的IC设备,其中,根据检测出的所述第一非数据符号的第一实例为待装入所述多个偏离校正缓存器中的一个缓存器的所述第二非数据符号的实例所跟随之情况,所述控制逻辑单元进行以下步骤a)在装入了与所述第一实例时钟对准的第一非数据符号的第二实例后,阻止所述多个偏离校正缓存器中的另一个缓存器的所述读指针,以及b)在所述偏离校正电路的输出端产生所述第二非数据符号的实例,通过该电路,在防止将检测出的所述第二非数据符号的实例被装入所述多个偏离校正缓存器中的一个缓存器中的同时,所述另一个偏离校正缓存器的缓冲存储的符号序列被转发。
17.如权利要求16所述的IC设备,其中,所述另一个偏离校正缓存器的读指针在一个包含数据符号的入口处被阻止。
18.如权利要求13所述的IC设备,其中,所述第一非数据符号为PCI Express COM,所述第二非数据符号为PCI Express SKP。
19.一种系统,包括处理器;主存储器;以及集成电路(IC)设备,所述设备以通信方式连接到所述处理器和所述主存储器,并为所述处理器提供了I/O接入,所述IC设备具有支持串行点到点链路的链路接口电路,所述电路包括弹性缓存器,具有用来接收由另一设备通过所述串行点到点链路传输的多个符号序列,所述弹性缓存器用来提供多个缓冲存储的符号序列,以及偏离校正电路,具有连接到所述弹性缓存器的输出端的输入端,所述偏离校正电路响应对使能控制信号的确证来转发多个缓冲存储的符号序列,所述偏离校正逻辑单元包括多个偏离校正缓存器,写指针逻辑单元,用来将缓冲存储的符号序列装入所述多个偏离校正缓存器,读指针逻辑单元,提供多个读指针以从所述多个偏离校正缓存器中卸载多个缓冲存储的符号序列,以及控制逻辑单元,具有连接到所述读指针逻辑单元的输出端,自所述使能控制信号被确证,所述控制逻辑单元根据出现在所述多个偏离校正缓存器的一个缓存器的输出端的第一预定非数据符号的第一实例来进行以下步骤a)阻止所述偏离校正缓存器的所述读指针,以及b)在所述偏离校正电路的输出端产生一个不同的第二预定非数据符号的实例,并且,通过所述电路转发所述偏离校正缓存器的缓冲存储的符号序列。
20.如权利要求19所述的系统,其中,所述读指针在包含第一非数据符号的实例的入口处被阻止。
21.如权利要求20所述的系统,其中,所述控制逻辑单元用来a)释放所述读指针,以及b)在第一预定非数据符号的实例已出现在所述多个偏离校正缓存器的每个缓存器的输出端时停止产生第二预定非数据符号的实例。
22.如权利要求19所述的系统,其中,所述控制逻辑单元用来a)释放所述读指针,以及b)在所述第一预定非数据符号的实例已出现在所述多个偏离校正缓存器的每个缓存器的输出端时停止产生所述第二预定非数据符号的实例。
23.如权利要求22所述的系统,其中,所述控制逻辑单元根据关于一个预定的非数据符号序列即将被装入所述多个偏离校正缓存器的一个缓存器中的指示,为所述多个偏离校正缓存器中的另一个阻止所述读指针,并在所述偏离校正逻辑单元的输出端产生第二非数据符号的一个实例,并且,通过所述逻辑单元所述另一个偏离校正缓存器的缓冲存储的符号序列被转发。
24.如权利要求23中所述的系统,其中,所述另一个偏离校正缓存器的所述读指针在包含数据符号的入口处被阻止。
25.如权利要求19中所述的系统,其中,所述第一非数据符号是PCI Express COM,所述第二非数据符号为PCI Express SKP。
26.如权利要求19中所述的系统还包括一个图形部件;并且,其中所述IC设备是存储控制器集线装置(MCH),它以通信方式将所述处理器连接到所述主存储器与所述图形部件。
27.如权利要求19中所述的系统,其中,所述IC设备是I/O控制器集线装置,它以通信方式将所述处理器连接到外围设备。
28.如权利要求23中所述的系统,其中,所述预定的非数据符号序列包括为第二非数据符号的实例所跟随的第一非数据符号的实例,将所述第一符号的实例而非所述第二符号的实例装入所述多个偏离校正缓存器中的一个缓存器中。
全文摘要
接收了使用相同的传输时钟并通过串行点到点链路以并行方式传输的多个符号序列。每个符号序列包括第一非数据符号的实例。缓冲存储了上述多个符号序列,并改变第二非数据符号的实例在这些符号序列之一的序列中出现的次数。进行第一偏斜校正过程,之后又进行第二偏斜校正过程。该第一偏斜校正过程对准上述每个缓冲存储的符号序列中的第一非数据符号的实例。而该第二偏斜校正过程则使得上述每个符号序列中的第一非数据符号实例后的第二非数据符号实例的数目相等。还说明其他一些实施例并提出了权利要求。
文档编号H04L12/56GK1902613SQ200480039271
公开日2007年1月24日 申请日期2004年12月22日 优先权日2003年12月31日
发明者L·雷诺, D·M·普菲尔, S·科塔姆雷迪, D·J·施密德特, S·G·米特班德 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1