本发明涉及计算机技术领域,特别涉及一种时钟偏斜校正方法、装置和系统。
背景技术:
在服务器主板上,高速外围芯片的使用越来越多如SAS控制器、网卡芯片等高速IO芯片。这些高速外围芯片工作均需要时钟来同步,即需要通过主板上的时钟发生器向每一个高速外围芯片及CPU输出同步时钟。
由于高速外围芯片的种类逐渐增多,高速外围芯片的接口电平标准也是呈现多样化,使得高速外围芯片在对同步时钟电平高低的逻辑判断上也各有差异。例如:LVCOMS接口在同步时钟电平在2.0V以上时判读为高电平,GTL接口在同步时钟电平在1.1V以上时判读为高电平。而对同步时钟电平高低的逻辑判断的差异,导致传递到每一个高速外围芯片和CPU的同步时钟有效作用时间产生差异,即引起高速外围芯片中的同步时钟和CPU中的同步时钟之间产生时间偏斜。
技术实现要素:
本发明实施例提供了一种时钟偏斜校正方法、装置和系统,实现了对时钟偏斜的校正。
一种时钟偏斜校正方法,确定至少两个组件,还包括:
当时钟发生源为每一个所述组件传输时钟信号时,确定时钟信号的周期时长,并计算每一个所述组件的延迟参数;
在所述至少两个组件中,选定一个从组件和至少一个主组件;
根据所述从组件的延迟参数,校正每一个所述主组件对应的时钟相位;
针对每一个所述主组件,执行:
根据所述周期时长和所述主组件对应的校正后的时钟相位,为所述主组件生成对应的校正时钟。
可选地,所述计算每一个所述组件的延迟参数,包括:
针对每一个所述组件,执行:
记录所述组件接收到的时钟信号从低电平转换到所述组件对应的触发电平的门限延迟;
根据下述第一计算公式,计算所述组件的路径延迟;
yi=∑ADij
其中,Yi表征组件i的路径延迟;A表征每单位长度对应的延迟标准;Dij表征组件i连接的路径j的长度;
利用所述门限延迟和所述路径延迟,计算所述组件的总延迟。
可选地,所述计算所述组件的总延迟,包括:
根据下述第二计算公式,计算所述组件的总延迟;
Yi=αxi+βyi
其中,Yi表征组件i的总延迟;α表征门限延迟对应的权重;xi表征组件i的门限延迟;β表征路径延迟对应的权重;yi表征组件i的路径延迟。
可选地,所述根据所述从组件的延迟参数,校正每一个所述主组件对应的时钟相位,包括:
针对每一个所述主组件,执行:
确定所述主组件的总延迟以及所述从组件的总延迟;
计算所述主组件的总延迟与所述从组件的总延迟的差值;
根据所述差值,将所述主组件对应的时钟相位中的上升沿时刻相位向前/向后移动。
可选地,上述方法进一步包括:为每一个所述主组件设置对应的定时器;
所述为所述主组件生成对应的校正时钟,包括:
监测所述主组件接收到的时钟信号;
当监测到所述主组件接收到的时钟信号达到校正后的时钟相位时,触发所述定时器启动,当所述定时器计时时长达到所述周期时长时,触发所述定时器清零并关闭。
一种时钟偏斜校正装置,设置于外部的组件中,包括:计算单元、校正单元、发送单元和生成单元,其中,
所述计算单元,用于当时钟发生源为所述外部的组件传输时钟信号时,确定时钟信号的周期时长,并计算所述外部的组件对应的延迟参数;
所述校正单元,用于当所述外部的组件为第一主组件时,接收外部的第一从组件发送的所述第一从组件对应的延迟参数,校正所述第一主组件对应的时钟相位;
所述发送单元,用于当所述外部的组件为第二从组件时,发送所述计算单元计算出的所述第二从组件对应的延迟参数给外部的第二主组件;
所述生成单元,用于当所述外部的组件为第一主组件时,根据所述计算单元确定的周期时长和所述校正单元校正后的时钟相位,为所述第一主组件生成对应的校正时钟。
可选地,所述计算单元,包括:记录子单元、第一计算子单元和第二计算子单元,其中,
所述记录子单元,用于记录所述外部的组件接收到的时钟信号从低电平转换到所述外部的组件对应的触发电平的门限延迟;
所述第一计算子单元,用于根据下述第一计算公式,计算所述外部的组件的路径延迟;
yi=∑ADij
其中,Yi表征外部的组件i的路径延迟;A表征每单位长度对应的延迟标准;Dij表征组件i连接的路径j的长度;
所述第二计算子单元,用于利用所述记录子单元记录的门限延迟和所述第一计算子单元计算得到的路径延迟,计算所述外部的组件的总延迟。
可选地,所述第二计算子单元,用于:
根据下述第二计算公式,计算所述外部的组件的总延迟;
Yi=αxi+βyi
其中,Yi表征组件i的总延迟;α表征门限延迟对应的权重;xi表征组件i的门限延迟;β表征路径延迟对应的权重;yi表征组件i的路径延迟。
可选地,上述装置进一步包括:定时器;
所述生成单元,包括:时钟信号监测子单元和触发子单元,其中,
所述时钟信号监测子单元,用于当所述外部的组件为第一主组件时,监测所述第一主组件接收到的时钟信号;
所述触发子单元,用于当所述时钟信号监测子单元监测到所述第一主组件接收到的时钟信号达到所述校正单元校正后的时钟相位时,触发所述定时器启动,当所述定时器计时时长达到所述计算单元确定的周期时长时,触发所述定时器清零并关闭。
一种时钟偏斜校正系统,包括:至少两个组件和时钟发生源,其中,
每一个所述组件安装有权利要求6至9任一所述的时钟偏斜校正装置;
所述时钟发生源,用于为每一个所述组件安装的时钟偏斜校正装置发送时钟信号;
所述至少两个组件,包括:一个主组件和至少一个从组件,其中,
所述主组件安装的时钟偏斜校正装置,通过总线与每一个所述从组件安装的时钟偏斜校正装置相连,用于通过所述总线接收每一个所述从组件安装的时钟偏斜校正装置发送的所述从组件对应的延迟参数;
每一个所述从组件安装的时钟偏斜校正装置,用于发送所述从组件对应的延迟参数。
本发明实施例提供了一种时钟偏斜校正方法、装置和系统,通过确定至少两个组件;当时钟发生源为每一个所述组件传输时钟信号时,确定时钟信号的周期时长,并计算每一个所述组件的延迟参数;在所述至少两个组件中,选定一个从组件和至少一个主组件;根据所述从组件的延迟参数,校正每一个所述主组件对应的时钟相位;针对每一个所述主组件,执行:根据所述周期时长和所述主组件对应的校正后的时钟相位,为所述主组件生成对应的校正时钟,通过上述延迟参数校正每一个主组件对应的时钟相位,使从组件的时钟相位与主组件的时钟相位一致,而周期时长不变,从而实现了对时钟偏斜的校正。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例提供的一种时钟偏斜校正方法的流程图;
图2是本发明一个实施例提供的一种时钟偏斜校正装置的结构示意图;
图3是本发明另一个实施例提供的一种时钟偏斜校正装置的结构示意图;
图4是本发明又一个实施例提供的一种时钟偏斜校正装置的结构示意图;
图5是本发明一个实施例提供的一种时钟偏斜校正系统的结构示意图;
图6是本发明另一个实施例提供的一种时钟偏斜校正系统的结构示意图;
图7是本发明另一个实施例提供的一种时钟偏斜校正方法的流程图;
图8是本发明一个实施例提供的校正前和校正后的时钟相位对比图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供了一种时钟偏斜校正方法,该方法可以包括以下步骤:
步骤101:确定至少两个组件;
步骤102:当时钟发生源为每一个所述组件传输时钟信号时,确定时钟信号的周期时长,并计算每一个所述组件的延迟参数;
步骤103:在所述至少两个组件中,选定一个从组件和至少一个主组件;
步骤104:根据所述从组件的延迟参数,校正每一个所述主组件对应的时钟相位;
步骤105:针对每一个所述主组件,执行:根据所述周期时长和所述主组件对应的校正后的时钟相位,为所述主组件生成对应的校正时钟。
在图1所示的实施例中,通过确定至少两个组件;当时钟发生源为每一个所述组件传输时钟信号时,确定时钟信号的周期时长,并计算每一个所述组件的延迟参数;在所述至少两个组件中,选定一个从组件和至少一个主组件;根据所述从组件的延迟参数,校正每一个所述主组件对应的时钟相位;针对每一个所述主组件,执行:根据所述周期时长和所述主组件对应的校正后的时钟相位,为所述主组件生成对应的校正时钟,通过上述延迟参数校正每一个主组件对应的时钟相位,使从组件的时钟相位与主组件的时钟相位一致,而周期时长不变,从而实现了对时钟偏斜的校正。
在本发明一个实施例中,为了保证延迟参数计算的准确性,步骤102的具体实施方式,包括:针对每一个所述组件,执行:记录所述组件接收到的时钟信号从低电平转换到所述组件对应的触发电平的门限延迟;根据下述计算公式(1),计算所述组件的路径延迟;
yi=∑ADij (1)
其中,Yi表征组件i的路径延迟;A表征每单位长度对应的延迟标准;Dij表征组件i连接的路径j的长度;
利用所述门限延迟和所述路径延迟,计算所述组件的总延迟。例如:A为路径的每英尺延迟时长为7P秒,组件1有3条连接线路长度分别为2英尺、3英尺和5英尺,那么,通过上述计算公式(1)计算得到组件1的路径延迟为70P秒。
在本发明一个实施例中,为了进一步保证总延迟的合理性,上述计算所述组件的总延迟,包括:
根据下述计算公式(2),计算所述组件的总延迟;
Yi=αxi+βyi (2)
其中,Yi表征组件i的总延迟;α表征门限延迟对应的权重;xi表征组件i的门限延迟;β表征路径延迟对应的权重;yi表征组件i的路径延迟。通过为门限延迟和路径延迟分配对应的权重,以保证总延迟的合理性,即当门限延迟起主要作用时,为门限延迟分配比较大的权重,而当路径延迟起主要作用时,为路径延迟分配比较大的权重,当门限延迟和路径延迟相当时可分配为α=1,β=1,则Yi=xi+yi等。
在本发明一个实施例中,步骤104的具体实施方式,包括:针对每一个所述主组件,执行:确定所述主组件的总延迟以及所述从组件的总延迟;计算所述主组件的总延迟与所述从组件的总延迟的差值;根据所述差值,将所述主组件对应的时钟相位中的上升沿时刻相位向前/向后移动。
在本发明一个实施例中,上述方法进一步包括:为每一个所述主组件设置对应的定时器;步骤105的具体实施方式,包括:监测所述主组件接收到的时钟信号;当监测到所述主组件接收到的时钟信号达到校正后的时钟相位时,触发所述定时器启动,当所述定时器计时时长达到所述周期时长时,触发所述定时器清零并关闭。
如图2所示,本发明实施例提供一种时钟偏斜校正装置,设置于外部的组件中,包括:计算单元201、校正单元202、发送单元203和生成单元204,其中,
所述计算单元201,用于当时钟发生源为所述外部的组件传输时钟信号时,确定时钟信号的周期时长,并计算所述外部的组件对应的延迟参数;
所述校正单元202,用于当所述外部的组件为第一主组件时,接收外部的第一从组件发送的所述第一从组件对应的延迟参数,校正所述第一主组件对应的时钟相位;
所述发送单元203,用于当所述外部的组件为第二从组件时,发送所述计算单元201计算出的所述第二从组件对应的延迟参数给外部的第二主组件;
所述生成单元204,用于当所述外部的组件为第一主组件时,根据所述计算单元201确定的周期时长和所述校正单元202校正后的时钟相位,为所述第一主组件生成对应的校正时钟。
在本发明另一实施例中,如图3所示,所述计算单元201,包括:记录子单元2011、第一计算子单元2012和第二计算子单元2013,其中,
所述记录子单元2011,用于记录所述外部的组件接收到的时钟信号从低电平转换到所述外部的组件对应的触发电平的门限延迟;
所述第一计算子单元2012,用于根据下述计算公式(1),计算所述外部的组件的路径延迟;
yi=∑ADij (1)
其中,Yi表征外部的组件i的路径延迟;A表征每单位长度对应的延迟标准;Dij表征组件i连接的路径j的长度;
所述第二计算子单元2013,用于利用所述记录子单元2011记录的门限延迟和所述第一计算子单元2012计算得到的路径延迟,计算所述外部的组件的总延迟。
在本发明另一实施例中,所述第二计算子单元303,用于:
根据下述计算公式(2),计算所述外部的组件的总延迟;
Yi=αxi+βyi (2)
其中,Yi表征组件i的总延迟;α表征门限延迟对应的权重;xi表征组件i的门限延迟;β表征路径延迟对应的权重;yi表征组件i的路径延迟。
如图4所示,在本发明又一实施例中,上述装置进一步包括:定时器401;
所述生成单元204,包括:时钟信号监测子单元2041和触发子单元2042,其中,
所述时钟信号监测子单元2041,用于当所述外部的组件为第一主组件时,监测所述第一主组件接收到的时钟信号;
所述触发子单元2042,用于当所述时钟信号监测子单元2041监测到所述第一主组件接收到的时钟信号达到所述校正单元202校正后的时钟相位时,触发所述定时器401启动,当所述定时器计时时长达到所述计算单元201确定的周期时长时,触发所述定时器401清零并关闭。
在本发明另一实施例中,所述校正单元202,用于当所述外部的组件为第一主组件时,确定所述第一主组件的总延迟以及所述第一从组件的总延迟;计算所述第一主组件的总延迟与所述第一从组件的总延迟的差值;根据所述差值,将所述第一主组件对应的时钟相位中的上升沿时刻相位向前/向后移动。
如图5所示,本发明实施例提供一种时钟偏斜校正系统,包括:至少两个组件501和时钟发生源502,其中,
每一个所述组件501安装有上述任一所述的时钟偏斜校正装置5011;
所述时钟发生源502,用于为每一个所述组件安装的时钟偏斜校正装置5011发送时钟信号;
所述至少两个组件501,包括:一个主组件和至少一个从组件,其中,
所述主组件安装的时钟偏斜校正装置,通过总线与每一个所述从组件安装的时钟偏斜校正装置相连,用于通过所述总线接收每一个所述从组件安装的时钟偏斜校正装置发送的所述从组件对应的延迟参数;
每一个所述从组件安装的时钟偏斜校正装置,用于发送所述从组件对应的延迟参数。
下面以图6所示的时钟偏斜校正系统为例,进一步说明时钟偏斜校正方法,如图7所示,该方法可以包括如下步骤:
步骤701:确定至少两个组件,并为每一个组件构建定时器;
如图6所示,在一个服务器的主板上包含有CPU601、芯片A602、芯片B603和芯片C604,通过分别在CPU601、芯片A602、芯片B603和芯片C604上安装上述任一所述的时钟偏斜校正装置,并通过I2C总线分别将芯片A602安装的时钟偏斜校正装置、芯片B603安装的时钟偏斜校正装置以及芯片C604安装的时钟偏斜校正装置与CPU601安装的时钟偏斜校正装置相连。同时,在CPU601、芯片A602、芯片B603和芯片C604内设置定时器。
另外,时钟偏斜校正装置安装于每一个组件的接收端。
步骤702:当时钟发生源为每一个所述组件传输时钟信号时,确定时钟信号的周期时长;
如图6所示,时钟发生源605向CPU601、芯片A602、芯片B603和芯片C604传输时钟信号,该时钟信号的周期时长为,该时钟发生源605当前产生的时钟信号上升沿到下一次产生时钟信号上升沿的时间间隔。
步骤703:针对每一个所述组件,执行:记录所述组件接收到的时钟信号从低电平转换到所述组件对应的触发电平的门限延迟;
如图6所示的CPU601接收到的时钟信号从0V到CPU601接收端的触发电平即高电平如2V所消耗的时间即为门限延迟,由于不同组件对应的触发电平不同,则不同组件的门限延迟则不同。
步骤704:针对每一个所述组件,执行:计算所述组件的路径延迟;
该步骤的计算过程主要是,根据下述计算公式(1)进行计算。
yi=∑ADij (1)
其中,Yi表征外部的组件i的路径延迟;A表征每单位长度对应的延迟标准;Dij表征组件i连接的路径j的长度。
步骤705:针对每一个所述组件,执行:利用所述门限延迟和所述路径延迟,计算所述组件的总延迟;
该步骤的计算过程主要是,根据下述计算公式(2)进行计算。
Yi=αxi+βyi (2)
其中,Yi表征组件i的总延迟;α表征门限延迟对应的权重;xi表征组件i的门限延迟;β表征路径延迟对应的权重;yi表征组件i的路径延迟。
步骤706:在所述至少两个组件中,选定一个从组件和至少一个主组件;
例如:由于一般是CPU向各个芯片分配任务,在该步骤中可以选定图6所示的CPU601为从组件,芯片A602、芯片B603和芯片C604为主组件。
步骤707:根据所述从组件的延迟参数,校正每一个所述主组件对应的时钟相位;
该步骤具体实现过程:针对每一个所述主组件,执行:
确定所述主组件的总延迟以及所述从组件的总延迟;
计算所述主组件的总延迟与所述从组件的总延迟的差值;
根据所述差值,将所述主组件对应的时钟相位中的上升沿时刻相位向前/向后移动。
如CPU601的延迟为1s,芯片A602的延迟为2s,则将芯片A602时钟相位中的上升沿时刻相位向前移动2-1=1s;又比如CPU601的延迟为1s,芯片A602的延迟为0.5s,则将芯片A602时钟相位中的上升沿时刻相位向后移动1-0.5=0.5s。如图8所示,芯片A602、芯片B603和芯片C604校正前的相位图分别为图8A、图8B和图8C,而芯片A602、芯片B603和芯片C604校正后的相位图均为图8D,从图中可以看出校正后的相位图上升沿一致。一般当时钟信号处于上升沿时,组件的接收端开始接收数据,由于校正后的上升沿一致,保证不同组件接收数据的一致性。
步骤708:针对每一个所述主组件,执行:监测所述主组件接收到的时钟信号;
步骤709:当监测到所述主组件接收到的时钟信号达到校正后的时钟相位时,触发所述定时器启动;
步骤710:当所述定时器计时时长达到所述周期时长时,触发所述定时器清零并关闭。
步骤709和步骤710通过定时器控制数据的接收,由于各个组件的上升沿一致,那么组件中的定时器启动也一致,那么通过定时器启动和关闭作为数据传输的信号,保证各个组件能够同时接收到传输来的数据,避免时钟偏斜造成的数据遗漏。同时,通过时钟偏斜校正能够降低数据误码及反复的数据传输动作,从而有效地提高传输效率。
根据上述方案,本发明的各实施例,至少具有如下有益效果:
1.通过确定至少两个组件;当时钟发生源为每一个所述组件传输时钟信号时,确定时钟信号的周期时长,并计算每一个所述组件的延迟参数;在所述至少两个组件中,选定一个从组件和至少一个主组件;根据所述从组件的延迟参数,校正每一个所述主组件对应的时钟相位;针对每一个所述主组件,执行:根据所述周期时长和所述主组件对应的校正后的时钟相位,为所述主组件生成对应的校正时钟,通过上述延迟参数校正每一个主组件对应的时钟相位,使从组件的时钟相位与主组件的时钟相位一致,而周期时长不变,从而实现了对时钟偏斜的校正。
2.通过针对每一个所述组件,执行:记录所述组件接收到的时钟信号从低电平转换到所述组件对应的触发电平的门限延迟;根据下述第一计算公式,计算所述组件的路径延迟;利用所述门限延迟和所述路径延迟,计算所述组件的总延迟,尽可能从各个因素考虑延迟,保证延迟参数计算的准确性。
3.通过校正后的时钟信号的上升沿控制定时器开启和关闭,并通过定时器的开启和关闭控制组件接收数据,由于通过校正使各个组件对应的时钟相位相同,那么各个组件中的定时器开启或关闭一致,从而实现各个组件间能够同步接收数据,降低了数据误码及反复的数据传输动作,从而有效地提高传输效率。
需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个〃·····”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质中。
最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。