校准多个数据信道的数据传输时序的电路及方法

文档序号:6394950阅读:220来源:国知局
专利名称:校准多个数据信道的数据传输时序的电路及方法
技术领域
本发明涉及一种控制数据传输的电路与方法,特别涉及一种校准(align)多个数据信道的数据传输时序的电路及方法。
背景技术
一般而言,计算机系统中的数据传输主要是通过总线来将预定数据自一来源装置传输至一目标装置,例如目前广泛应用的PCI总线,其所提供的频宽为133MB/s,然而,随着磁盘阵列系统与高速网络(Gigabit Ethernet)的逐渐兴盛,因此PCI总线已渐渐无法满足使用者的需求。由于芯片组的制造厂商已预见上述状况的发生,因此业界便提出其它总线架构以减轻PCI总线的负担,举例来说,随着3D图形处理技术的发展,当PCI总线于显示卡与系统内存之间负责传递庞大的影像数据时,影像数据会因为占用了PCI总线的有限频宽而影响其它连接于PCI总线的周边装置的操作,所以业界便提出加速图形连接端口(accelerated graphics port,AGP)的架构来取代PCI总线以传递影像数据,不但可降低PCI总线的负担,亦可进一步地提升3D图形处理的效能。
由上可知,随着计算机系统中各组件的数据处理能力不断提升,PCI总线的负担也随之加重,因此第三代输入/输出接口(3rdgeneration I/O,3GIO),亦即PCI Express总线正不断发展来取代已知PCI总线以提供所需的大量频宽,如业界所已知,PCI Express总线可利用更高的操作时钟以及应用更多的数据信道(lane)来提升其效能,请参阅

图1,图1为已知PCI Express总线使用多个数据信道来传递数据的示意图。假设一输出装置10欲将一数据流14a传输至一接收装置12,由于PCI Express总线11提供可四个数据信道Lane0、Lane1、Lane2、Lane3,因此当输出装置10输出数据流14a时,数据流14a中所包含的字节B0-B7便会分别经由数据信道Lane0、Lane1、Lane2、Lane3来传递,亦即字节B0、B1是由数据信道Lane0输出至接收装置12,字节B2、B3是由数据信道Lane1输出至接收装置12,字节B4、B5是由数据信道Lane2输出至接收装置12,以及字节B6、B7是由数据信道Lane 3输出至接收装置12,最后,接收装置12便可得到所要的数据流14b。
由于输出装置10与接收装置12的操作时钟不同,因此若输出装置10的操作时钟高于接收装置12的操作时钟,则输出装置10输出数据流14a的传输率便快于接收装置12撷取数据流14b的接收率,因此便会造成数据上溢(overflow)的情况;相反地,若输出装置10的操作时钟低于接收装置12的操作时钟,则输出装置10输出数据流14a的传输率便慢于接收装置12撷取数据流14b的接收率,因此便会造成数据下溢(underflow)的情况,所以为了解决输出装置10与接收装置12的不同操作时钟所带来的问题,接收装置12便设置有多个弹性缓冲器(elastic buffer)来调节输出装置10经由数据信道Lane0、Lane1、Lane2、Lane3所传递的数据。依据PCI express的规范,输出装置10会输出有序符号集合(ordered set)以供弹性缓冲器来平衡输出装置10与接收装置12的不同操作时钟,举例来说,输出装置10所输出的每一有序符号集合包含有一起始符号(COM symbol)以及三个调整符号(SKP symbol),所以当接收装置12上一弹性缓冲器接收到多个有序符号集合时,若输出装置10的操作时钟高于接收装置12的操作时钟,则该弹性缓冲器可经由减少有序符号集合中的调整符号来达到降低输出装置10的数据传输率的目的,所以便可避免上述数据上溢的问题。另一方面,若输出装置10的操作时钟低于接收装置12的操作时钟,则该弹性缓冲器可经由增加有序符号集合中的调整符号来达到提升输出装置10的数据传输率的目的,所以便可避免上述数据下溢的问题。
一般而言,输出装置10会于同一时间分别输出有序符号集合至数据信道Lane0、Lane1、Lane2、Lane3,然而,数据信道Lane0、Lane1、Lane2、Lane3可能会分别对应不同的线路布局而具有不同的长度与阻抗,亦即在数据传输的过程中,数据信道Lane0、Lane1、Lane2、Lane3会分别造成传递数据产生不同程度的延迟,因此,数据信道Lane0、Lane1、Lane2、Lane3的数据传输时序便会产生偏移(skew)的现象,换句话说,接收装置12并无法于同一时间点处理在数据信道Lane0、Lane1、Lane2、Lane3上传递的字节B0、B1、B2、B3。所以,为了使接收装置12可正确地撷取出所要的数据流14b,如何校准(align)多个数据信道Lane0、Lane1、Lane2、Lane3的数据传输时序便成为使用PCI Express总线的重要课题。

发明内容
因此,本发明提供一种校准多个数据信道的数据传输时序的电路及方法,以解决上述问题。
根据本发明,是揭露一种校准多个数据信道的数据传输时序的方法,该多个数据信道是分别电连接于多个弹性缓冲器,该方法包含有(a)当在一数据信道上检测到一起始符号时,判断对应该数据信道的弹性缓冲器是否调整对应该起始符号的有序符号集合中的调整符号,若对应该数据信道的弹性缓冲器增加一调整符号至对应该起始符号的有序符号集合,则使用一第一初始值重置对应该数据信道的计数值,若对应该数据信道的弹性缓冲器减少一调整符号至对应该起始符号的有序符号集合,则使用一第二初始值重置对应该数据信道的计数值,以及若对应该数据信道的弹性缓冲器未调整对应该起始符号的有序符号集合中的调整符号,则使用一第三初始值重置对应该数据信道的计数值;(b)当在该数据信道未检测到一起始符号时,使用一递增量来增加该数据信道的计数值;以及(c)当在一预定时间长度中未在该多个数据信道检测到一起始符号时,依据对应该多个数据信道的多个计数值来校准该多个数据信道的数据传输时序。
由于本发明校准数据传输时序的电路及方法是使各有序符号集合中的最后一调整符号对应相同的计数值,因此尽管各弹性缓冲器在不同的时间点进行调整符号的增加或减少,本发明校准数据传输时序的电路及方法仍可依据计数值来正确地得知数据信道之间的时序偏移关系。此外,在运算计数值的过程中,本发明校准数据传输时序的电路及方法是同步地计算一偏移值,该偏移值会对应计数值中的最小值,因此当最后计算需补偿的时钟周期数时,可经由简单的逻辑运算来得知计数值与偏移值之间的差量,换句话说,本发明校准数据传输时序的电路及方法便不需另启动一复杂的比较运算与搜寻程序以找出计数值中的最小值,因此可降低电路复杂度以及提升校准数据传输时序的执行效能。
附图简述图1为已知PCI Express总线使用多个数据信道来传递数据的示意图。
图2为本发明时序校准电路的功能方块示意图。
图3为本发明时序校准电路校准多个数据信道的数据传输时序的第一种操作示意图。
图4为本发明时序校准电路校准多个数据信道的数据传输时序的第二种操作示意图。
附图符号说明10输出装置 11 PCI Express总线12接收装置 14a、14b 数据流20时序校准电路 22a、22b、22c、 弹性缓冲器22d24a、24b、24c、 检测电路26去偏移模块24d28a、28b、28c、 去偏移缓冲器30判断逻辑电路28d32 触发电路33控制电路34a、34b、34c、 计数器34d、3具体实施方式
请参阅图2,图2为本发明时序校准电路20的功能方块示意图。时序校准电路20包含有多个弹性缓冲器22a、22b、22c、22d,多个检测电路24a、24b、24c、24d,一去偏移模块(Lane-to-Lane de-skew module)26,以及多个去偏移缓冲器(de-skew buffer)28a、28b、28c、28d。此外,去偏移模块26中设置有一判断逻辑电路30,一触发电路32,一控制电路33,以及多个计数器34a、34b、34c、34d、36。本实施例中,时序校准电路20是处理四个数据信道Lane0、Lane1、Lane2、Lane3的数据传输时序偏移,请注意,时序校准电路20并未限定所处理的数据信道的数量,亦实时序校准电路20可处理多个数据信道的数据传输时序之间的偏移。弹性缓冲器22a、22b、22c、22d是分别对应数据信道Lane0、Lane1、Lane2、Lane3,用来调整数据信道Lane0、Lane1、Lane2、Lane3上传输的有序符号集合中的调整符号,亦即,如前所述,弹性缓冲器22a、22b、22c、22d是用来解决图1中输出装置10与接收装置12之间的不同步时钟所造成的数据上溢与数据下溢的问题。检测电路24a、24b、24c、24d是用来检测数据信道Lane0、Lane1、Lane2、Lane 3上传输的有序符号集合中的起始符号,并进一步地告知判断逻辑电路30。本实施例中,判断逻辑电路30会依据数据信道Lane0、Lane1、Lane2、Lane3上调整符号的增加或减少来重置计数器34a、34b、34c、34d,以设定对应数据信道Lane0、Lane1、Lane2、Lane3的计数值(count value)。此外,判断逻辑电路30另会依据数据信道Lane0、Lane1、Lane2、Lane3上调整符号的增加或减少来驱动计数器36以计算一偏移值(offset value)。触发电路32则会依据检测电路24a、24b、24c、24d的检测结果来触发一控制信号COMDET对应高逻辑电平或低逻辑电平,亦即控制信号COMDET可表示数据信道Lane0、Lane1、Lane2、Lane3是否接收到有序符号集合中的起始符号。最后,控制电路33便依据控制信号COMDET来驱动去偏移缓冲器28a、28b、28c、28d调整数据信道Lane0、Lane1、Lane2、Lane3之间的数据传输时序偏移。
控制电路33会读取计数器34a、34b、34c、34d、36所记录的计数值与偏移值来计算校准数据信道Lane0、Lane1、Lane2、Lane3的数据传输时序所需补偿的时钟周期数,其操作详述如下。请参阅图2与图3,图3为本发明时序校准电路20校准数据信道Lane0、Lane1、Lane2、Lane3的数据传输时序的第一种操作示意图。当一检测电路24a、24b、24c、24d检测到有序符号集合中的起始符号时,判断逻辑电路30便会依据下列规则来设定计数器34a、34b、34c、34d所产生的计数值。
规则一若一数据信道上减少一调整符号时,使用一初始值3设定对应该数据信道的计数值。
规则二若一数据信道上增加一调整符号时,使用一初始值1设定对应该数据信道的计数值。
规则三若一数据信道上未增加或减少一调整符号时,使用一初始值2设定对应该数据信道的计数值。
此外,当一检测电路24a、24b、24c、24d未检测到有序符号集合中的起始符号时,判断逻辑电路30便会依据下列规则来驱动计数器34a、34b、34c、34d。
规则四若一数据信道上未检测到一起始符号时,则对应该数据信道的计数值增加一递增值1。
所以,假设弹性缓冲器22a、22b、22c、22d为了平衡输出装置与接收装置之间不同步操作时钟,因此其会调整数据信道Lane0-Lane3上的多个有序符号集合,且最后的结果如图3所示,其中“C”代表起始符号,“S”代表调整符号,此外,“CA”是代表起始符号,且相对应有序符号集合中增加一调整符号,以及“CD”是代表起始符号,且相对应有序符号集合中减少一调整符号。以计数器34a所产生的计数值C0为例,在时间t1时,检测电路24a检测到一起始符号,而判断逻辑电路30判断数据信道Lane0此时并未由弹性缓冲器22a减少或增加相对应有序符号集合中的调整符号,因此依据规则三,判断逻辑电路30会使用初始值2来设定对应数据信道Lane0的计数值C0,亦即计数值C0等于2。接着,在时间t2时,检测电路24a并未检测到一起始符号,所以依据规则四,计数器34a会使用递增值1来增加计数值C0,所以计数值C0便等于3;同理,在时间t3、t4时,检测电路24a并未检测到一起始符号,所以计数器34a便依序使用递增值1来增加计数值C0,因此在时间t5前,计数值C0会等于5。在时间t5时,检测电路24a检测到一起始符号,且判断逻辑电路30判断数据信道Lane0此时并未由弹性缓冲器22a减少或增加相对应有序符号集合中的调整符号,因此依据规则三,判断逻辑电路30会使用初始值2来设定对应数据信道Lane0的计数值C0。接着,在时间t6、t7、t8时,检测电路24a并未检测到一起始符号,所以依据规则四,计数器34a会逐一使用递增值1来增加计数值C0,因此在时间t9前,计数值C0会等于5。
在时间t9时,检测电路24a检测到一起始符号,并且判断逻辑电路30判断数据信道Lane0此时由弹性缓冲器22a减少相对应有序符号集合中的调整符号,因此依据规则一,判断逻辑电路30会使用初始值3来设定对应数据信道Lane0的计数值C0。接着,在时间t10、t11时,检测电路24a并未检测到一起始符号,所以依据规则四,计数器34a会逐一使用递增值1来增加计数值C0,因此在时间t12前,计数值C0会等于5。在时间t12时,检测电路24a检测到一起始符号,并且判断逻辑电路30判断数据信道Lane0此时由弹性缓冲器22a增加相对应有序符号集合中的调整符号,因此依据规则一,判断逻辑电路30会使用初始值1来设定对应数据信道Lane0的计数值C0。接着,在时间t13、t14、t15、t16时,检测电路24a并未检测到一起始符号,所以依据规则四,计数器34a会逐一使用递增值1来增加计数值C0,因此在时间t17前,计数值C0会等于5。此外,在后续时间t17-t21之间,数据信道Lane0上未出现任何起始符号,所以依据规则四,计数器34a会逐一使用递增值1来增加计数值C0。
对于其它计数器34b、34c、34d而言,其操作方式与上述计数器34a相同,亦即依据规则一、二、三、四的控制,计数值C1在时间t16前,计数值C1会等于5,而在后续时间t16-t21之间,数据信道Lane1上未出现任何起始符号,所以计数器34b会逐一使用递增值1来增加计数值C1;计数值C2在时间t18前,计数值C2会等于5,而在后续时间t18-t21之间,数据信道Lane2上未出现任何起始符号,所以计数器34c会逐一使用递增值1来增加计数值C2;计数值C3在时间t19前,计数值C3会等于5,而在后续时间t19-t21之间,数据信道Lane3上未出现任何起始符号,所以计数器34d会逐一使用递增值1来增加计数值C3。
由上可知,当检测电路24a、24b、24c、24d检测到有序符号集合中的起始符号时,判断逻辑电路30是依据弹性缓冲器22a、22b、22c、22d对于调整符号的增加或减少来使用不同初始值设定相对应的计数值,换句话说,每当检测电路24a、24b、24c、24d检测到有序符号集合中的起始符号时,相对应的计数值并不会以同一数值来加以重置,而是会考虑调整符号的增加或减少来加以设定相对应的计数值。
本实施例中,计数器36是用来计算一偏移值,当一检测电路24a、24b、24c、24d检测到有序符号集合中的起始符号时,判断逻辑电路30便会依据下列规则来设定计数器36所产生的偏移值V。
规则五当一数据信道上减少一调整符号时,判断逻辑电路30便会依据目前所记录的偏移值V来控制计数器36,若目前所记录的偏移值V等于1,则使用初始值2设定偏移值V,若目前所记录的偏移值V不等于1,则使用初始值3来设定偏移值V。
规则六若一数据信道上增加一调整符号时,使用初始值1设定偏移值V。
规则七若一数据信道上未增加或减少一调整符号时,使用初始值2设定偏移值V。
此外,当检测电路24a、24b、24c、24d未检测到有序符号集合中的起始符号时,判断逻辑电路30便会依据下列规则来驱动计数器36。
规则八若一数据信道上未检测到一起始符号时,则偏移值V增加一递增值1。
偏移值V的运算方式与前述计数值C0、C1、C2、C3相类似,而依据规则五、六、七、八的控制,偏移值V便可于各时段纪录计数值C0、C1、C2、C3中的最小值,举例来说,在时段t6-t7中,计数值C2最小,因此偏移值V会纪录数值1,而在时端t8-t9中,计数值C4最小,因此偏移值V便会纪录数值2。
当检测电路24a、24b、24c、24d检测到有序符号集合中的起始符号时,触发电路32会驱使控制信号COMDET对应高逻辑电平,而当检测电路24a、24b、24c、24d未检测到有序符号集合中的起始符号时,触发电路32会重置控制信号COMDET对应低逻辑电平,如图3所示,控制信号COMDET会在时段t0-t4、t5-t10、t11-t13、t14-t16对应高逻辑电平,用来表示数据信道Lane0、Lane1、Lane2、Lane3有传递起始符号,然而,当控制信号COMDET对应低逻辑电平的时间超过一预定时间时,则时序校准电路20便会开始校准数据信道Lane0、Lane1、Lane2、Lane3之间的数据传输时序偏移。举例来说,假设每一时段(例如t0-t1)是为时序校准电路20的一时钟周期,因此本实施例在控制信号COMDET对应低逻辑电平的时间超过2时钟周期时即会启动控制电路33来控制数据传输时序的调整,由图3可知,在时间t18时,控制电路33会开始操作,此时计数值C0、C1、C2、C3是分别纪录6、7、5、4,且偏移值V是纪录计数值C0、C1、C2、C3的最小值,亦即4。因此,控制电路33便可依据计数值C0、C1、C2、C3与偏移值V来计算数据信道Lane0、Lane1、Lane2、Lane3需补偿的时钟周期数。明显地,计数值C0与偏移值V的差量为2,计数值C1与偏移值V的差量为3,计数值C2与偏移值V的差量为1,以及计数值C3与偏移值V的差量为0,换句话说,数据信道Lane0的数据传输时序领先数据信道Lane3的数据传输时序达到2个时钟周期,数据信道Lane1的数据传输时序领先数据信道Lane3的数据传输时序达到3个时钟周期,以及数据信道Lane2的数据传输时序领先数据信道Lane3的数据传输时序达到1个时钟周期,所以,控制电路33便依据上述计算出的时钟周期数目来驱动去偏移缓冲器28a、28b、28c、28d。
最后,去偏移缓冲器28a、28b、28c便会分别依据2个时钟周期,3个时钟周期,以及1个时钟周期来延迟数据信道Lane0、Lane1、Lane2所传递的数据,所以,经由输出装置同一时间输出至数据信道Lane0、Lane1、Lane2、Lane3的多个有序符号集合的辅助,本发明时序校准电路20便可同步数据信道Lane0、Lane1、Lane2、Lane3的数据传输时序。所以,如图1所示,接收装置14b最后便可在一第一时间撷取由数据信道Lane0、Lane1、Lane2、Lane3所传递的多个字节B0、B1、B2、B3以及在一第二时间撷取由数据信道Lane0、Lane1、Lane2、Lane3所传递的多个字节B4、B5、B6、B7而得到所要的数据流14b。
对于上述操作流程而言,时序校准电路20是依据8-bit的运算架构来处理数据信道Lane0、Lane1、Lane2、Lane3的数据传输时序,亦实时序校准电路20的每一周期仅处理数据信道Lane0、Lane1、Lane2、Lane3上所传输的一个字节,然而,本发明并未局限时序校准电路20每一时钟周期所处理的字节数量。请参阅图2与图4,图4为本发明时序校准电路20校准数据信道Lane0、Lane1、Lane2、Lane3的数据传输时序的第二种操作示意图。本实施例中,时序校准电路20是依据16-bit的运算架构来处理数据信道Lane0、Lane1、Lane2、Lane3的数据传输时序,因此,时序校准电路20的每一周期可处理数据信道Lane0、Lane1、Lane2、Lane3上所传输的两个字节。同样地,当一检测电路24a、24b、24c、24d检测到有序符号集合中的起始符号时,判断逻辑电路30便会上述规则一、二、三来设定计数器34a、34b、34c、34d所产生的计数值,以及当一检测电路24a、24b、24c、24d未检测到有序符号集合中的起始符号时,判断逻辑电路30便会依据上述规则四来驱动计数器34a、34b、34c、34d。
以计数器34a所产生的计数值C0为例,在时间t1时,检测电路24a检测到一起始符号,而判断逻辑电路30判断数据信道Lane0此时并未由弹性缓冲器22a减少或增加相对应有序符号集合中的调整符号,因此依据规则三,判断逻辑电路30会先使用初始值2来设定对应数据信道Lane0的计数值C0,亦即计数值C0等于2。请注意,由于时序校准电路20的每一周期可处理数据信道Lane0、Lane1、Lane2、Lane3上所传输的两个字节,因此当时序校准电路20处理下一调整符号时,由于检测电路24a并未检测到一起始符号,所以依据规则四,计数器34a会使用递增值1来增加计数值C0,所以在时间t2前,计数值C0便等于3。同理,在时间t2时,检测电路24a并未检测到一起始符号,所以计数器34a便依序使用递增值1来增加计数值C0,因此在时间t3前,计数值C0会等于5。在时间t3时,检测电路24a检测到一起始符号,且判断逻辑电路30判断数据信道Lane0此时并未由弹性缓冲器22a减少或增加相对应有序符号集合中的调整符号,因此依据规则三,判断逻辑电路30会使用初始值2来设定对应数据信道Lane0的计数值C0,而下一笔数据是为调整符号,由于检测电路24a并未检测到一起始符号,所以依据规则四,计数器34a会使用递增值1来增加计数值C0,因此在时间t4前,计数值C0会等于5。
在时间t5时,检测电路24a检测到一起始符号,并且判断逻辑电路30判断数据信道Lane0此时由弹性缓冲器22a减少相对应有序符号集合中的调整符号,因此依据规则一,判断逻辑电路30会使用初始值3来设定对应数据信道Lane0的计数值C0,而下一笔数据是为调整符号,由于检测电路24a并未检测到一起始符号,所以依据规则四,计数器34a会使用递增值1来增加计数值C0,因此在时间t6前,计数值C0会等于4。在时间t6时,检测电路24a未检测到一起始符号,所以依据规则三,判断逻辑电路30会使用初始值2来设定对应数据信道Lane0的计数值C0,然而下一笔数据是为起始符号,且判断逻辑电路30判断数据信道Lane0此时由弹性缓冲器22a增加相对应有序符号集合中的调整符号,因此依据规则一,判断逻辑电路30会使用初始值1来设定对应数据信道Lane0的计数值C0,所以在时间t7前,计数值C0是对应1。接着,在时间t8之后,数据信道Lane0上未出现任何起始符号,所以依据规则四,计数器34a会逐一使用递增值1来增加计数值C0,亦即于每一时钟周期中,计数值C0会增加2,其结果如图4所示。对于其它计数器34b、34c、34d而言,其操作方式与上述计数器34a相同,因此不再重复赘述。
如前所述,计数器36是用来计算一偏移值,当一检测电路24a、24b、24c、24d检测到有序符号集合中的起始符号时,判断逻辑电路30便会依据前述规则五、六、七来设定计数器36所产生的偏移值V,以及当检测电路24a、24b、24c、24d未检测到有序符号集合中的起始符号时,判断逻辑电路30便会依据前述规则八来驱动计数器36。同样地,偏移值V便可于各时段纪录计数值C0、C1、C2、C3中的最小值,举例来说,于时段t3-t4中,计数值C2最小,因此偏移值V会纪录数值1。
当检测电路24a、24b、24c、24d检测到有序符号集合中的起始符号时,触发电路32会驱使控制信号COMDET对应高逻辑电平,而当检测电路24a、24b、24c、24d未检测到有序符号集合中的起始符号时,触发电路32会重置控制信号COMDET对应低逻辑电平,如图4所示,控制信号COMDET会在时段t0-t9对应高逻辑电平,用来表示数据信道Lane0、Lane1、Lane2、Lane3有传递起始符号,所以当控制信号COMDET对应低逻辑电平的时间超过一预定时间时,则时序校准电路20便会开始校准数据信道Lane0、Lane1、Lane2、Lane3之间的数据传输时序偏移。已知时序校准电路20此时每一时钟周期可处理两个字节,所以本实施例中,当控制信号COMDET对应低逻辑电平的时向超过1时钟周期时即会启动控制电路33来控制数据传输时序的调整,由图4可知,在时间t10时,控制电路33会开始操作,此时计数值C0、C1、C2、C3是分别纪录7、8、6、5,且偏移值V的纪录计数值C0、C1、C2、C3的最小值,亦即5。因此,控制电路33便可依据计数值C0、C1、C2、C3与偏移值V来计算数据信道Lane0、Lane1、Lane2、Lane3需补偿的时钟周期数。明显地,计数值C0与偏移值V的差量为2,计数值C1与偏移值V的差量为3,计数值C2与偏移值V的差量为1,以及计数值C3与偏移值V的差量为0,换句话说,数据信道Lane0的数据传输时序领先数据信道Lane3的数据传输时序达到2个时钟周期,数据信道Lane1的数据传输时序领先数据信道Lane3的数据传输时序达到3个时钟周期,以及数据信道Lane2的数据传输时序领先数据信道Lane3的数据传输时序达到1个时钟周期。所以,控制电路33便依据上述计算出的时钟周期数目来驱动去偏移缓冲器28a、28b、28c、28d,最后,去偏移缓冲器28a、28b、28c便会分别依据2个时钟周期,3个时钟周期,以及1个时钟周期来延迟数据信道Lane0、Lane1、Lane2所传递的数据。最后,经由输出装置同一时间输出至数据信道Lane0、Lane1、Lane2、Lane3的多个有序符号集合的辅助,本发明时序校准电路20便可同步数据信道Lane0、Lane1、Lane2、Lane3的数据传输时序。
当检测到一数据信道上所传递的起始符号时,本发明校准数据传输时序的电路及方法是依据对应该数据信道的弹性缓冲器是否改变调整符号的数量来设定不同的计数值,因此计数值便可明确地对应有序符号集合的实际数据长度,亦即若调整符号的数量未调整,则使用一数值N来初始计数值,若减少一调整符号,相对应有序符号集合的数据长度会减少,因此利用一数值(N+K)来初始计数值,若增加一调整符号,相对应有序符号集合的数据长度会增加,所以利用一数值(N-K)来初始计数值,其中数值K是为计数值的递增量。假若输出装置所传递的有序符号集合包含有一个起始符号以及三个调整符号,所以若接收装置的弹性缓冲器未增减调整符号的数量,则最后一调整符号会造成计数值等于N+3K;若接收装置的弹性缓冲器减少一调整符号,亦即此时一有序符号集合包含有一个起始符号以及二个调整符号,而最后一调整符号亦会造成计数值等于N+3K;若接收装置的弹性缓冲器增加一调整符号,亦即此时一有序符号集合包含有一个起始符号以及四个调整符号,而最后一调整符号亦会造成计数值等于N+3K。
如业界所已知,由于制程的影响,对应多个数据信道的弹性缓冲器并非具有相同的组件特性,因此如图3所示,数据信道Lane0、Lane1、Lane2、Lane3上的有序符号集合是分别在不同的时间点进行调整符号的增加或减少,当检测到初始符号时,若使用相同数值来初始相对应计数值,则数据信道Lane0、Lane1、Lane2、Lane3之间的时序偏移关系便无法正确地依据计数值得知,以图3为例,计数值C0、C1、C2、C3在时间t19前会错误地分别对应7、8、5、4。所以,本发明校准数据传输时序的电路及方法是使各有序符号集合中的最后一调整符号对应相同的计数值,而非使各有序符号集合中的起始符号对应相同的计数值,因此尽管各弹性缓冲器于不同的时间点进行调整符号的增加或减少,本发明校准数据传输时序的电路及方法仍可依据计数值来正确地得知数据信道Lane0、Lane1、Lane2、Lane3之间的时序偏移关系。
此外,于运算计数值C0、C1、C2、C3的过程中,本发明校准数据传输时序的电路及方法是同步地计算一偏移值V,该偏移值会对应计数值C0、C1、C2、C3中的最小值,因此当最后计算需补偿的时钟周期数时,可经由简单的逻辑运算来得知计数值C0、C1、C2、C3与偏移值V之间的差量,换句话说,本发明校准数据传输时序的电路及方法便不需另启动复杂的比较运算与搜寻程序以找出计数值C0、C1、C2、C3中的最小值,因此可降低电路复杂度以及提升校准数据传输时序的执行效能。
以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明专利的涵盖范围。
权利要求
1.一种校准多个数据信道的数据传输时序的方法,该多个数据信道是分别电连接于多个弹性缓冲器,该方法包含有(a)当在一数据信道上检测到一起始符号时,判断对应该数据信道的弹性缓冲器是否调整对应该起始符号的有序符号集合中的调整符号,若对应该数据信道的弹性缓冲器增加一调整符号至对应该起始符号的有序符号集合,则使用一第一初始值重置对应该数据信道的计数值,若对应该数据信道的弹性缓冲器减少一调整符号至对应该起始符号的有序符号集合,则使用一第二初始值重置对应该数据信道的计数值,以及若对应该数据信道的弹性缓冲器未调整对应该起始符号的有序符号集合中的调整符号,则使用一第三初始值重置对应该数据信道的计数值;(b)当在该数据信道未检测到一起始符号时,使用一递增量来增加该数据信道的计数值;以及(c)当在一预定时间长度中未在该多个数据信道检测到一起始符号时,依据对应该多个数据信道的多个计数值来校准该多个数据信道的数据传输时序。
2.如权利要求1所述的方法,其中,在步骤(a)中,该第二初始值大于该第三初始值,以及该第三初始值大于该第一初始值。
3.如权利要求1所述的方法,其中,在步骤(a)中,该第二初始值与该第三初始值的差量等于该第三初始值与该第一初始值的差量。
4.如权利要求1所述的方法,其中,在步骤(a)中,该第二初始值与该第三初始值的差量与该第三初始值与该第一初始值的差量均等于该递增量。
5.如权利要求1所述的方法,其另包含有(d)记录一偏移值,该偏移值是该多个计数值的最小值。
6.如权利要求5所述的方法,其中,步骤(d)另包含有当于该数据信道上检测到该起始符号时,若对应该数据信道的弹性缓冲器减少该调整符号至对应该起始符号的有序符号集合,使用该第二初始值重置该偏移值。
7.如权利要求5所述的方法,其中,步骤(d)另包含有当在该数据信道上检测到该起始符号时,若对应该数据信道的弹性缓冲器减少该调整符号至对应该起始符号的有序符号集合,且该偏移值是对应该第一初始值,使用该第三初始值重置该偏移值。
8.如权利要求5所述的方法,其中,步骤(d)另包含有当在该数据信道上检测到该起始符号时,若对应该数据信道的弹性缓冲器增加一调整符号至对应该起始符号的有序符号集合,使用该第一初始值重置该偏移值。
9.如权利要求5所述的方法,其中,步骤(d)另包含有当在该数据信道上检测到该起始符号时,若对应该数据信道的弹性缓冲器未调整对应该起始符号的有序符号集合中的调整符号,使用该第三初始值重置该偏移值。
10.如权利要求5所述的方法,其中,步骤(d)另包含有当在该多个数据信道未检测到一起始符号时,使用该递增量来增加该偏移值。
11.如权利要求5所述的方法,其中,步骤(c)另包含有计算该多个计数值与该偏移值之间的多个差量,并依据该多个差量来校准该多个数据信道的数据传输时序。
12.如权利要求1所述的方法,其中,步骤(c)另包含有若在该多个数据信道检测到一起始符号时,产生一控制信号由一第一逻辑电平对应一第二逻辑电平;以及若于该多个数据信道未检测到一起始符号时,重置该控制信号由该第二逻辑电平对应该第一逻辑电平。
13.如权利要求1所述的方法,其中,在步骤(c)中,当该控制信号对应该第一逻辑电平的时间不小于该预定时间长度时,校准该多个数据信道的数据传输时序。
14.一种时序校准电路,用来校准多个数据信道的数据传输时序,该多个数据信道是分别电连接于多个弹性缓冲器,该时序校准电路包含有多个检测电路,电连接于该多个数据信道,用来检测该多个数据信道上所传递的有序符号集合中的起始符号;多个第一计数器,电连接于该判断逻辑电路,用来计算对应该多个数据信道的多个计数值;一判断逻辑电路,电连接于该多个检测电路与该多个第一计数器,用来在一检测电路在一数据信道上检测到一起始符号时,判断对应该数据信道的弹性缓冲器是否调整有序符号集合中的调整符号,若对应该数据信道的弹性缓冲器增加一调整符号至对应该起始符号的有序符号集合,则该判断逻辑电路使用一第一初始值重置对应该数据信道的计数值,若对应该数据信道的弹性缓冲器减少一调整符号至对应该起始符号的有序符号集合,则该判断逻辑电路使用一第二初始值重置对应该数据信道的计数值,以及若对应该数据信道的弹性缓冲器未调整对应该起始符号的有序符号集合中的调整符号,则该判断逻辑电路使用一第三初始值重置对应该数据信道的计数值;多个去偏移缓冲器;以及一控制电路,电连接于该多个第一计数器与该多个去偏移缓冲器,用来在该多个检测电路未在一预定时间长度中检测到该多个数据信道上一起始符号时,依据该多个计数值驱动该多个去偏移缓冲器校准该多个数据信道的数据传输时序;其中,若该检测电路在该数据信道未检测到该起始符号,对应该数据信道的第一计数器是使用一递增量来增加对应该数据信道的计数值。
15.如权利要求14所述发时序校准电路,其中,该第二初始值大于该第三初始值,以及该第三初始值大于该第一初始值。
16.如权利要求14所述发时序校准电路,其中,该第二初始值与该第三初始值的差量等于该第三初始值与该第一初始值的差量。
17.如权利要求14所述的时序校准电路,其中,该第二初始值与该第三初始值的差量与该第三初始值与该第一初始值的差量均等于该递增量。
18.如权利要求14所述的时序校准电路,其另包含有一第二计数器,电连接于该判断逻辑电路,用来计算一偏移值,该偏移值是为该多个计数值的最小值。
19.如权利要求18所述的时序校准电路,其中,若该检测电路在该数据信道上检测到该起始符号时,该判断逻辑电路判断对应该数据信道的弹性缓冲器是否调整有序符号集合中的调整符号以使用该第一初始值、该第二初始值或该第三初始值重置该偏移值。
20.如权利要求18所述的时序校准电路,其中,若该检测电路在该多个数据信道未检测到一起始符号时,该第二计数器使用该递增量来增加该偏移值。
21.如权利要求14所述的时序校准电路,其中,该控制电路是计算该多个计数值与该偏移值之间的多个差量,并依据该多个差量来校准该多个数据信道的数据传输时序。
22.如权利要求14所述的时序校准电路,其另包含有一触发电路,电连接于该多个检测电路与该控制电路,用来产生一控制信号控制该控制电路驱动该多个去偏移缓冲器校准该多个数据信道的数据传输时序;其中,若该多个检测电路在该多个数据信道检测到一起始符号,该触发电路触发该控制信号由一第一逻辑电平转变至一第二逻辑电平,以及若该多个检测电路在该多个数据信道未检测到一起始符号时,该触发电路重置该控制信号由该第二逻辑电平转变至该第一逻辑电平。
23.如权利要求22所述的时序校准电路,其中,若该控制信号对应该第一逻辑电平的时间不小于该预定时间长度时,该控制电路会开始驱动该多个去偏移缓冲器校准该多个数据信道的数据传输时序。
24.一种校准多个数据信道的数据传输时序的方法,其至少包含在每一数据信道中传送多个测试符号;以及依据该多个测试符号在每一个数据信道中的传输状况,校准每一个数据信道的数据传输时序。
25.如权利要求24所述的方法,其中,每一测试符号包括多个起始符号与多个调整符号。
26.如权利要求25所述的方法,其中,以在每一个数据信道中的多个起始符号与多个调整符号的数目,校准每一个数据信道的数据传输时序。
27.如权利要求25所述的方法,其中,校准每一个数据信道的数据传输时序是在检测到该多个测试符号中最后一个起始符号之后,依据该多个起始符号与该多个调整符号的数目来校准每一个数据信道的数据传输时序。
28.如权利要求24所述的方法,其中,依据该多个测试符号的数目,决定每一个数据信道的偏移值,并依据该偏移值来校准每一个数据信道的数据传输时序。
29.如权利要求24所述的方法,其中,依据该多个测试符号的数目,决定每一个数据信道的偏移值,并依据该偏移值来决定每一个数据信道的时序延迟数目。
全文摘要
本发明提供一种校准多个数据信道的数据传输时序的电路及方法,该方法包含有当在一数据信道上检测到多个起始符号时,依据对应该多个起始符号的调整符号数量分别使用不同的初始值重置对应该数据信道的计数值;当在该数据信道未检测到一起始符号时,使用一递增量来增加该数据信道的计数值;以及当在一预定时间长度中未在该多个数据信道检测到一起始符号时,依据对应该多个数据信道的多个计数值来校准该多个数据信道的数据传输时序。
文档编号G06F13/36GK1523490SQ200410030058
公开日2004年8月25日 申请日期2004年3月18日 优先权日2003年7月2日
发明者曾纹郁 申请人:威盛电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1