驱动器和数据传输方法与流程

文档序号:17859638发布日期:2019-06-11 22:47阅读:363来源:国知局
驱动器和数据传输方法与流程
本申请涉及通信领域,并且更具体地,涉及一种驱动器和数据传输方法。
背景技术
:外围组件快速互连(peripheralcomponentinterconnectexpress,pcie)总线是计算机系统中处理器连接外围设备的高速总线。由于pcie总线的独立参考时钟开扩频(separatereferenceclockswithindependentspreadspectrum,sris)不需要大量的随路时钟信号,可以降低设计难度,节约成本,同时可以降低电磁辐射的影响,因此pciesris场景应用越来越广泛。同时随着pcie信号速率提升以及pcie总线应用的越来越广泛,两个pcie设备之间使用带有时序恢复功能的驱动器(retimer)的情况越来越多。而retimer在sris应用时,因需要通过增加或删除skp序列来补偿发送端和接收端频率差,从而会带来一定的延时。在sris场景,每增加一级retimer都会增加延时,这会导致系统性能的损失,在某些应用场景这种影响无法接受,比如pcie的内存应用场景。因此如何降低retimersris应用场景的延时,是一个需要解决的问题。技术实现要素:本申请提供一种驱动器和数据传输方法,能够消除由于在弹性缓冲器中增加或者删除skp序列而引入的额外延时问题,实现低延时传输。第一方面,提供了一种驱动器,其特征在于,包括:时钟数据恢复(clockanddatarecovery,cdr)电路、弹性缓冲器(elasticbuffer)、接收电路和发送电路。cdr电路用于从接收信号中恢复出接收时钟;接收电路用于使用接收时钟从接收信号中恢复出发送数据;弹性缓冲器用于使用接收时钟移入发送数据,以及使用接收时钟移出发送数据;发送电路用于使用接收时钟发送从弹性缓冲器移出的发送数据。本领域技术人员可以理解,弹性缓冲器用于使用接收时钟移入该发送数据,以及使用接收时钟移出该发送数据具体是指,弹性缓冲器移入发送数据时所使用的时钟以及弹性缓冲器430移出发送数据时所使用的时钟,即弹性缓冲器的读时钟和写时钟,是基于该接收时钟得到的。具体地,弹性缓冲器的读时钟和写时钟等于该接收时钟除以接收电路420输出的一个符号所包含的比特(bit)个数。例如,接收电路420输出的一个符号所包含的比特个数为8时,弹性缓冲器430的读时钟和写时钟的频率等于该接收时钟的频率除以8所得到的值。可选地,接收电路可以包括接收均衡电路、采样电路、串并转换电路和解扰/解码电路。接收均衡电路可以包括连续时间线性均衡(continuoustimelinearequalization,ctle)/判决反馈均衡(decisionfeedbackequalization,dfe)电路。串并转换电路可以对采样电路输出的串行数据进行串并转换,得到并行数据。该并行数据可以输入至解扰/解码电路,由解扰/解码电路进行解扰/解码后,输出解扰/解码后的并行数据。该解扰/解码后的并行数据可以输入弹性缓冲器中。串并转换电路可以是任何可以实现将串行数据转换为并行数据的电路,如解串器(deserializer),但本申请实施例对此不作限定。可选地,该发送电路可以包括扰码/编码电路、并串转换电路和发送均衡电路。扰码/编码电路可以对弹性缓冲器的输出进行加扰/编码,以输出符合协议或者编码结构的数据。并串转换电路可以使用接收时钟将扰码/编码电路输出的并行数据转换为串行数据。并串转换电路例如可以是串行器(serializer),但本申请实施例对此不作限定。发送均衡电路可以包括前向反馈均衡(feedforwardequalization,ffe)电路。本申请提供的驱动器的接收电路和发送电路使用的是同一时钟域,即,cdr电路恢复出的接收时钟,因此可以完全消除收发端时钟的频率差,不需要链路状态机(linktrainingandstatusstatemachine,ltssm)在弹性缓冲器进行增加或者删除skp序列,从而能够消除sris场景收发频率差带来的额外延时,实现低延时传输。结合第一方面,在第一种可能的实现方式中,驱动器还包括第一时钟转换电路和第二时钟转换电路。第一时钟转换电路用于基于接收时钟生成第一时钟,第一时钟的频率与期望的本地时钟的频率相同。第二时钟转换电路用于基于第一时钟生成发送时钟,并将发送时钟输出至发送电路,发送时钟与接收时钟的频率相同。进一步地,期望的本地时钟的频率可以是100mhz,即第一时钟的频率为100mhz,但本申请实施例对此不作限定。应理解,第二时钟转换电路可以通过锁相环(phaseclockloop,pll)电路实现,关于pll电路的具体作用和实现方式可以参照现有技术。示例性的,第一pll电路可以通过电荷泵锁相环(chargepumpphaselockedloop,cppll)频率合成器实现。该cppll频率合成器可以包括鉴频鉴相器(phasefrequencydetector,pfd)、电荷泵(chargepump,cp)、环路滤波器(loopfilter,lpf)、压控振荡器(voltagecontrolleroscillator,vco)和分频器(divider,div)组成。pfd比较输入时钟fin与反馈时钟的频率和相位,产生后级cp充放电电流的开关控制信号。在该控制信号作用下,cp对lpf充放电,使vco的调谐电压发生相应的变化,进而改变vco的谐振频率。vco振荡输出信号fvco经div分频后参与鉴频鉴相,由此构成闭环反馈系统,实现锁相倍频功能。其中,fvco的频率是fin的频率的n倍,fin为本申请中的接收时钟,fvco为本申请中的第一时钟。n为分频系数,可以在进行系统设计的时候预先设置。结合第一方面或第一方面的第一种可能的实现方式,在第二种可能的实现方式中,第二时钟转换电路还用于基于本地时钟生成第二时钟并输出至发送电路;发送电路还用于使用第二时钟发送数据。具体来讲,在一些情况下,输入至第二时钟转换电路的时钟可以是本地时钟,第二时钟转换电路基于该本地时钟可以生成第二时钟,发送电路可以基于该第二时钟发送数据。在另一些情况下,输入至第二时钟转换电路的时钟为第一时钟转换电路生成的第一时钟,第二时钟转换电路基于该第一时钟可以生成发送时钟,发送电路可以基于该发送时钟发送数据。比如,在低延时模式下,第二时钟转换电路的输入时钟为第一时钟,在非低延时模式下,第二时钟转换电路的输入时钟为本地时钟。因此,本申请实施例提供的驱动器能够消除由于在弹性缓冲器中增加或者删除skp序列而引入的额外延时问题,实现低延时传输。并且,该驱动器具有选择外部时钟和内部时钟的功能,即可以选择接收时钟和本地时钟二者之一作为第二时钟转换电路的输入时钟,可以适应多种场景需求。结合第一方面,在第三种可能的实现方式中,驱动器还包括信号处理单元,信号处理单元用于对接收时钟进行抖动滤波,生成发送时钟,并将发送时钟输出至发送电路,发送时钟与接收时钟的频率相同。应理解,信号处理单元的具体形式可以是现有技术中的pll电路,但本申请实施例对此不作限定。通过对接收时钟进行抖动滤波,可以提高时钟信号质量,有利于提高驱动器性能。结合第一方面或第一方面的第一至第四种可能的实现方式中任一种实现方式,在第五种可能的实现方式中,所述驱动器支持多个协议,并且能够选择多个协议中的一个协议工作,所述多个协议包括下述中的至少一种:外围组件快速互连pcie协议、加速器内存一致性接口(cachecoherentinterconnectforaccelerators,ccix)协议或通用串行总线(universalserialbus,usb)协议。本申请的驱动器可以支持多种高速总线,应用广泛。并且,在系统设计时,不需要考虑使用多种类别的驱动器,因此能够简化硬件设计复杂度以及后续验证工作量。可选地,可以通过将该驱动器指定的管脚上下拉实现选择驱动器所使用的协议。或者,通过标准定义的管理接口(比如smbus),由系统软件上电后配置该驱动器工作在某种协议下。或者,通过特定的协商码流,配置该驱动器所使用的协议。第二方面,提供了一种数据传输方法,所述方法应用于驱动器,所述驱动器包括:包括:时钟数据恢复cdr电路、弹性缓冲器、接收电路和发送电路。该方法包括:cdr电路从接收信号中恢复出接收时钟;接收电路使用接收时钟从接收信号中恢复出发送数据;弹性缓冲器使用接收时钟移入发送数据,以及使用接收时钟移出发送数据;发送电路使用接收时钟发送从弹性缓冲器移出的发送数据。本申请提供的数据传输方法,接收电路和发送电路使用的是同一时钟域,即,cdr电路恢复出的接收时钟,因此可以完全消除收发端时钟的频率差,不需要链路状态机(linktrainingandstatusstatemachine,ltssm)在弹性缓冲器进行增加或者删除skp序列,从而能够消除sris场景收发频率差带来的额外延时,实现低延时传输。结合第二方面,在第一种可能的实现方式中,驱动器还包括第一时钟转换电路和第二时钟转换电路,第一时钟转换电路基于接收时钟生成第一时钟,第一时钟的频率与期望的本地时钟的频率相同;第二时钟转换电路基于第一时钟生成发送时钟,并将发送时钟输出至发送电路,发送时钟与接收时钟的频率相同。结合第二方面或第二方面的第一种可能的实现方式,在第二种可能的实现方式中,在低延时模式下,向第二时钟转换电路输入第一时钟;在非低延时模式下,向第二时钟转换电路输入本地时钟。进一步地,第一时钟的频率为100mhz。结合第二方面,在第三种可能的实现方式中,驱动器还包括信号处理单元,信号处理单元对接收时钟进行抖动滤波,生成发送时钟,并将发送时钟输出至发送电路,发送时钟与接收时钟的频率相同。结合第二方面或第二方面的第一种至第三种可能的实现方式中任一种实现方式,在第四种可能的实现方式中,驱动器支持多个协议,并且能够选择多个协议中的一个协议工作,多个协议包括下述中的至少一种:外围组件快速互连pcie协议、加速器内存一致性接口ccix协议或通用串行总线usb协议。应理解,第二方面中的驱动器可以是第一方面或第一方面任一种可能的实现方式中的驱动器,关于该第二方面的方法,具体可以参照第一方面对驱动器的说明。第三方面,提供了一种计算机程序产品,计算机程序产品包括:计算机程序(也可以称为代码,或指令),当计算机程序被运行时,使得计算机执行上述第二方面以及第二方面中任一种可能实现方式中的方法。第四方面,提供了一种计算机可读介质,计算机可读介质存储有计算机程序(也可以称为代码,或指令)当其在计算机上运行时,使得计算机执行上述第二方面以及第二方面中任一种可能实现方式中的方法。第五方面,提供了一种计算机系统,包括处理器、存储器以及一个或多个前述驱动器。附图说明图1是本申请提供的驱动器的一个应用拓扑结构示意图。图2是本申请提供的驱动器的另一应用拓扑结构示意图。图3是现有标准驱动器的一个结构示意图。图4是本申请提供的驱动器的一个示例性框图。图5是本申请提供的驱动器的一个示例性结构图。图6是一种cppll频率合成器的电路结构图。图7是本申请提供的驱动器的一种示例性结构图。图8是本申请提供的驱动器的另一种示例性结构图。图9是本申请提供的数据传输方法的示意性流程图。图10是本申请提供的一个系统的示意图。具体实施方式下面将结合附图,对本申请中的技术方案进行描述。图1示出了带有时序恢复功能的驱动器(以下简称驱动器)的应用拓扑的一个示例,框图。参见图1,主芯片101的一个下行口(downstreamport,dsp)可以通过一个驱动器103与从芯片102的一个上行口(upstreamport,usp)连接。具体地,主芯片101的第一下行口13和驱动器103的上行口通过链路11连接,驱动器103的下行口和从芯片102的第一上行口14通过链路12连接。另外,本申请中,主芯片101的第一下行口13也可以通过级联多个驱动器与从芯片102的第一上行口14连接,例如图2示出了级联2个驱动器的情况。参见图2,主芯片101的第一下行口13和驱动器1031的上行口通过链路21连接,驱动器1031的下行口与驱动器1032的上行口通过链路22连接,驱动器1032的下行口与从芯片102的第一上行口14通过链路23连接。在图1所示的拓扑结构下,对于驱动器103,主芯片101为上游芯片(或者称上游设备),从芯片102为下游芯片(或者称下游设备)。在图2所示的拓扑结构下,对于驱动器1031,主芯片101为上游芯片,驱动器1032为下游芯片。对于驱动器1032,驱动器1031为上游芯片,从芯片102为下游芯片。应理解,若链路23的两端连接的是驱动器1032的下行口与另一驱动器,比如驱动器1033,那么对于驱动器1032,其上游芯片和下游芯片均为驱动器。上述主芯片101可以是包括下行口且不为驱动器的芯片,例如主芯片101可以是根组件(rootcomplex,rc)或者交换芯片(switch)等。上述从芯片102可以是包括上行口且不为驱动器的芯片,例如从芯片102可以是端点设备(endpoint),或者交换芯片。端点设备可以为显卡、网卡、光通道卡、存储卡或交换芯片等。图1和图2所示的各链路(link),如链路11、链路21等,可以由1个、2个、4个、8个、16个或其他数量的通道(lane)组成,每个通道可以包括一对接收信号(rx)以及一对发送信号(tx)。驱动器(如驱动器103、驱动器1031和驱动器1032)遵循链路协议,以实现主芯片101和从芯片102之间的通信。该链路协议例如可以是pcie、ccix或者usb等其他协议。图3示出了现有标准驱动器的一个结构示意图。参见图3,该驱动器主要包括接收(receive,rx)电路310、弹性缓冲器(elasticbuffer)320、发送(transmit,tx)电路330、时钟数据恢复(clockanddatarecovery,cdr)电路340、链路状态机(linktrainingandstatusstatemachine,ltssm)350和锁相环(phaseclockloop,pll)电路360。其中,弹性缓冲器320可以是先入先出的队列(firstinfirstout,fifo),其用于缓存数据。标准retimer在sris场景中,驱动器存在两个时钟域,一个是cdr电路340从接收信号(也可以称为接收数据)中恢复出来的时钟clka,另一个是本地时钟refclk。其中,接收电路410和弹性缓冲器320的写时钟使用的是clka,发送电路330和弹性缓冲器320的读时钟使用的是refclk。具体来讲,时钟clka提供给接收电路310,用于接收电路310对接收信号进行采样得到串行数据,并将串行数据转换为并行数据。基于clka可以得到弹性缓冲器320的写时钟,通过写时钟可以将接收电路310输入的并行数据写入弹性缓冲器320。pll电路360通过对输入的refclk进行倍频得到时钟clkb。基于clkb可以得到弹性缓冲器320的读时钟,通过读时钟可以从弹性缓冲器320中读出数据。同时,clkb提供给发送电路330,用于发送电路将并行数据转换为串行数据并发送。本领域技术人员可以理解,弹性缓冲器320的读时钟的频率等于clka的频率除以接收电路310输出的一个符号所包含的比特(bit)个数。弹性缓冲器320的写时钟的频率等于clkb的频率除以上述一个符号所包含的比特(bit)个数所得到的值。按照标准定义,clka和clkb在sris时,最大频率差异为5600百万分之一(partspermillion,ppm)。由于弹性缓冲器330用来移入数据的时钟和用于移出数据的时钟最大有5600ppm的偏差,为了补偿该偏差防止弹性缓冲器330溢出,链路状态机370需要在弹性缓冲器330中不定期的增加或者删除skp序列。而该过程需要额外增加延时,按照标准定义,该过程增加的额外延时约30ns。为此,本申请提供了一种驱动器,能够通过消除sris应用场景收发端的频率差以及由此带来的额外延时。需要说明的是,下文中具有相同附图标记的模块表示相同的含义,并且可以采用相同或者类似的方式实现,因此仅在一个模块首次出现时进行说明,此后不再一一赘述。图4示出了本申请提供的驱动器的一个示例性框图。该驱动器可以是图1和图2所示的驱动器中的任一驱动器。参见图4,该驱动器包括cdr电路410、接收电路420,弹性缓冲器430和发送电路440。cdr电路410用于从接收信号中恢复出接收时钟。本领域技术人员可以理解,该接收信号可以是发送端所发送的信号或是对发送端发送的信号进行一定处理后的信号,该处理例如可以是均衡处理。举例来说,以该驱动器为图2中所示的驱动器1031为例,该发送端可以是主芯片101或者驱动器1032,即该接收信号可以是主芯片101或者驱动器1032发送的。接收电路420用于使用接收时钟从接收信号中恢复出发送数据。即,接收电路420用于使用接收时钟从接收信号中恢复出发送端发送的数据。具体来讲,接收电路420使用该接收时钟对接收信号进行采样得到串行数据,并且可以基于该串行数据得到并行数据,该并行数据即为恢复出的发送数据。该并行数据例如可以是图5所示的解扰/解码电路424的输出,也可以是串并转换电路423的输出。弹性缓冲器430用于使用接收时钟移入该发送数据,以及使用接收时钟移出该发送数据。本领域技术人员可以理解,弹性缓冲器430用于使用接收时钟移入该发送数据,以及使用接收时钟移出该发送数据具体是指,弹性缓冲器430移入发送数据时所使用的时钟以及弹性缓冲器430移出发送数据时所使用的时钟,即弹性缓冲器430的读时钟和写时钟,是基于该接收时钟得到的。具体地,弹性缓冲器430的读时钟和写时钟等于该接收时钟除以接收电路420输出的一个符号所包含的比特(bit)个数。发送电路440用于使用接收时钟发送基于从弹性缓冲器430移出的该发送数据。应理解,发送电路440使用该接收时钟是指,发送电路440直接使用该接收时钟或者使用基于该接收时钟所得到的时钟。cdr电路410、接收电路420和发送电路440的具体作用以及实现方式可以参照现有驱动器。与现有技术不同的是,现有驱动器的接收电路和发送电路使用的是两个不同的时钟域,为了补偿这两个时钟域的频率偏差防止弹性缓冲器溢出,链路状态机需要在弹性缓冲器330中不定期的增加或者删除skp序列,而本申请的接收电路和发送电路使用的是同一时钟域,即,cdr恢复出的接收时钟,因此可以完全消除收发端时钟的频率差,不需要链路状态机在弹性缓冲器430中增加或者删除skp序列,因此能够消除sris场景收发频率差带来的额外延时。综上,本申请提供的驱动器,通过使用cdr电路恢复出的时钟向弹性缓冲器中移入数据以及从弹性缓冲器中移出数据,并使用cdr电路恢复出的时钟发送数据,能够消除收发端时钟的频率差,从而不需要在弹性缓冲器中增加或者删除skp序列,进而能够消除该增加或者删除skp序列操作所引入的额外延时问题,实现低延时传输。图5示出了本申请提供的驱动器的一种示例性的结构图。下面对图5所示的各模块进行说明。参见图5,接收电路420可以包括接收均衡电路421、采样电路422、串并转换电路423和解扰/解码电路424。发送电路440可以包括扰码/编码电路441、并串转换电路442和发送均衡电路443。此外,图5所示的驱动器还可以包括cdr电路410和弹性缓冲器430。示例性的,接收均衡电路421可以包括连续时间线性均衡(continuoustimelinearequalization,ctle)/判决反馈均衡(decisionfeedbackequalization,dfe)电路。接收均衡电路421的具体作用和实现方式可以参见现有技术,这里不再赘述。采样电路422用于使用接收时钟对接收均衡电路421的输出进行采样,从而得到串行数据。应理解,采样电路422可以采用任何可以实现采样功能的电路(包括芯片、物理电路、算法等)实现,具体可以参照现有技术,这里不再赘述。需要说明的是,接收均衡电路421的输入可以是接收信号,或者,接收均衡电路421的输出可以是接收信号,即采样电路422的输入可以是接收信号。也就是说,该驱动器所接收到的发送端发送的信号可以直接输入cdr电路410,也可以先经过接收均衡电路421后再输入cdr电路410。串并转换电路423可以对采样电路422输出的串行数据进行串并转换,得到并行数据。该并行数据可以输入解扰/解码电路424,解扰/解码电路424对该并行数据进行并行解扰/解码,得到解扰/解码后的并行数据。该解扰/解码后的并行数据可以输入弹性缓冲器430中。串并转换电路可以是任何可以实现将串行数据转换为并行数据的电路,如解串器(deserializer),具体可以参照现有技术,这里不再赘述。解扰/解码电路可以是任何可以实现解扰/解码的电路,具体可以参照现有技术,这里不再赘述。扰码/编码电路441可以对弹性缓冲器430的输出进行加扰/编码,以输出符合协议或者编码结构的数据。并串转换电路442可以使用接收时钟将扰码/编码电路441输出的并行数据转换为串行数据。并串转换电路442可以采用任何可以实现将并行数据转换为串行数据的电路实现,如串行器(serializer),具体可以参照现有技术,这里不再赘述。发送均衡电路443可以包括前向反馈均衡(feedforwardequalization,ffe)电路。发送均衡电路443的具体作用和实现方式可以参见现有技术,这里不再赘述。应理解,图5所示的各模块可以分别由一个元器件或者独立的电路实现,或者多个模块可以由一个元器件或者独立的电路实现,只要保证能够实现其功能即可。还应理解,图5所示的各模块的连接关系仅是示例性说明,各模块的连接关系还可以是其他形式,只要能够实现驱动器的基本功能即可,例如解扰/解码电路424也可以包含于发送电路440中,即,解扰/解码电路424可以包含于接收电路420和发送电路440二者之一。此外,在具体实现时,可以根据实际需要添加图中未列的模块或者将图中一些模块省去。本申请中,接收时钟可以直接输入发送电路440。此外,也可以通过对接收时钟进行处理后,输入至发送电路440。示例性的,可以通过时钟转换电路450对接收时钟进行处理后,输入至发送电路440。具体来讲,本申请提供的驱动器还可以包括时钟处理电路450,其用于基于接收时钟生成发送时钟。该发送时钟的频率与接收时钟的频率相同。在一种可能的实现方式中,时钟处理电路450包括第一时钟转换电路451和第二时钟转换电路452。其中,第一时钟转换电路451用于基于接收时钟生成第一时钟,第一时钟的频率与期望的本地时钟的频率相同。期望的本地时钟的频率可以是100mhz,即,第一时钟的频率可以是100mhz,但本申请实施例对此不作限定。第二时钟转换电路452用于基于第一时钟生成发送时钟,并将发送时钟输出至发送电路440。第二时钟转换电路452可以通过pll电路实现,例如通过图3所示的pll电路360实现,具体可以参照现有技术,这里不再赘述。示例性地,第一时钟转换电路451可以通过电荷泵锁相环(chargepumpphaselockedloop,cppll)频率合成器实现。图6示出了一种cppll频率合成器的电路结构图。参见图6,该cppll频率合成器包括鉴频鉴相器(phasefrequencydetector,pfd)610、电荷泵(chargepump,cp)620、环路滤波器(loopfilter,lpf)630、压控振荡器(voltagecontrolleroscillator,vco)640和分频器(divider,div)650组成。pfd610比较输入时钟fin与反馈时钟的频率和相位,产生后级cp620充放电电流的开关控制信号。在该控制信号作用下,cp620对lpf630充放电,使vco640的调谐电压发生相应的变化,进而改变vco640的谐振频率。vco640振荡输出信号fvco经div650分频后参与鉴频鉴相,由此构成闭环反馈系统,实现锁相倍频功能。其中,fvco的频率是fin的频率的n倍,fin为本申请中的接收时钟,fvco为本申请中的第一时钟。n为分频系数,可以在进行系统设计的时候预先设置。关于图6所示的电路的具体细节可以参照现有技术,这里不再详述。应理解,第一时钟转换电路451也可以通过其他方式实现,本申请对此不作限定。进一步地,第二时钟转换电路452还可以用于,基于本地时钟生成第二时钟并输出至发送电路440;发送电路440还用于使用第二时钟发送数据。具体来讲,在一些情况下,输入至第二时钟转换电路452的时钟可以是本地时钟,第二时钟转换电路452基于该本地时钟可以生成第二时钟,发送电路440可以基于该第二时钟发送数据。在另一些情况下,输入至第二时钟转换电路452的时钟为第一时钟转换电路451生成的第一时钟,第二时钟转换电路452基于该第一时钟可以生成发送时钟,发送电路440可以基于该发送时钟发送数据。比如,该驱动器可以工作在低延时模式和非低延时模式下,在低延时模式下,将选择第一时钟作为第二时钟转换电路452的输入时钟,在非低延时模式下,将选择本地时钟作为第二时钟转换电路452的输入时钟。该低延时模式可以在对延时要求比较高的场景使用,但本申请对此不作限定。在另一种可能的实现方式中,时钟处理电路450包括信号处理单元453,信号处理单元453用于对接收时钟进行抖动滤波,生成发送时钟,并将发送时钟输出至发送电路440。其中,发送时钟与接收时钟的频率相同。信号处理单元453的具体形式可以是pll电路,例如图3中的pll电路360,关于pll电路具体可以参照现有技术,本文不再赘述。应理解,信号处理单元453的具体形式还可以是其他能够实现抖动滤波的电路模块,本申请对信号处理单元453的具体形式不作限定,只要能够实现抖动滤波功能即可。通过对接收时钟进行抖动滤波,可以提高时钟信号质量,有利于提高驱动器性能。可选地,作为本申请一个实施例,该驱动器可以支持多种协议,例如可以支持pcie、ccix或者usb等高速总线协议,并且能够选择其中一个协议工作。本申请的驱动器可以支持多种高速总线,应用广泛。并且,因在系统设计时,不需要考虑使用多种类别的驱动器能够简化硬件设计复杂度以及后续验证工作量。在一种可能的实现方式中,可以通过以下方式实现该驱动器的协议选择:a、在系统设计的时候,当该驱动器为确定协议场景时,可以通过将该驱动器指定的管脚上下拉实现选择其中一种协议。示例性地,表1示出了一种管脚与协议的对应关系。表1pin_a(上拉1/下拉0)pin_b(上拉1/下拉0)支持协议00pcie01ccix10usb………………表1中,pin_a和pin_b为该驱动器的两个管脚,通过对这两个管脚的上拉/下拉操作,可以实现该驱动器的协议选择。比如,上拉管脚pin_a,并下拉管脚pin_b,可使该驱动器支持usb协议。b、通过标准定义的管理接口(比如smbus),由系统软件上电后配置该驱动器工作在某种协议下。c、通过特定的协商码流(例如,记作:第一协商码流),配置该驱动器所使用的协议。换句话说,一种协商码流可以与一种协议对应,通过对应的协商码流,可以配置相应地协议。为使本领域技术人员更好的理解本申请,以下结合图7和图8给出驱动器的两个具体结构图,应理解,这两个结构图仅是示例性结构图,并不应对本申请构成任何限定。图7示出了本申请提供的驱动器的一种示例性结构图。参见图7所示的驱动器,该驱动器包括cdr电路410、接收电路420,弹性缓冲器430、发送电路440、第一时钟转换电路451、第二时钟转换电路452、分路器460、多路复用器(mux)470、第三时钟转换电路480和第四时钟转换电路490。其中,接收电路420包括接收均衡电路421、采样电路422、串并转换电路423和解扰/解码电路424。发送电路440包括扰码/编码电路441、并串转换电路442和发送均衡电路443。分路器460用于将cdr电路410从接收信号中恢复出的接收时钟clk0分为多路,分别为clk1、clk2、clk3、clk4和clk5。其中,clk1和clk2分别输出至采样电路422和串并转换电路423,clk1用于采样电路422进行采样,clk2用于串并转换电路423将串行数据转换为并行数据(即,符号)。clk3和clk4分别输出至第三时钟转换电路480和第四时钟转换电路490。第三时钟转换电路480用于基于clk3得到clk9,第四时钟转换电路490用于基于clk4得到clk10。第三时钟转换电路480和第四时钟转换电路490可以是分频器,但本申请实施例对此不作限定。fclk9=fclk3/m,fclk10=fclk4/m,fclk9=fclk10,m为串并转换电路423输出的符号所包含的比特个数,例如,m=10或8,但本申请实施例对此不作限定。fclki表示clki(i=0,1,2,……)的频率。应理解,clk0可以称为位时钟(bitclock),clk9和clk10可以称为符号时钟(symbolclock)。其中,clk9和clk10分别作为弹性缓存器430的读时钟和写时钟,用于弹性缓冲器430移入和移出数据。第一时钟转换电路451的输入为clk5,第一时钟转换电路451可以基于clk5生成第一时钟,即,clk6。mux470选择clk6和本地时钟(即,refclk)其中之一作为输出,比如,在低延时模式下,选择clk6输出,在非低延时模式下,选择refclk输出。mux630的输出clk7输入至第二时钟转换电路452,第二时钟转换电路452基于clk7生成用于发送电路440的时钟,即clk8。当mux630选择clk6输出时,clk7为clk6,clk8为发送时钟,此时clk8和clk0的频率相同。当mux630选择refclk输出时,clk7为refclk,clk8为第二时钟。应理解,本申请对分路器460的实现方式不作限定,只要能够实现将接收时钟分为多路输出即可。本申请实施例提供的驱动器能够消除由于在弹性缓冲器中增加或者删除skp序列而引入的额外延时问题,实现低延时传输。并且,该驱动器具有选择外部时钟和内部时钟的功能,即可以选择接收时钟和本地时钟二者之一作为第二时钟转换电路的输入时钟,可以适应多种场景需求。图8示出了本申请提供的驱动器的另一种示例性结构图。参见图8所示的驱动器,该驱动器包括cdr电路410、接收电路420,弹性缓冲器430、发送电路440、分路器460、信号处理单元453、第三时钟转换电路480和第四时钟转换电路490。其中,接收电路420包括接收均衡电路421、采样电路422、串并转换电路423和解扰/解码电路424。发送电路440包括扰码/编码电路441、并串转换电路442和发送均衡电路443。图8所示的各模块的功能具体可以参见上文对图7所示的驱动器所作的说明。在图8中,信号处理单元453用于对clk5进行抖动滤波,生成发送时钟(即,clk8),发送电路440可以基于clk8发送数据,clk8和clk0的频率相同。本申请实施例提供的驱动器通过对cdr输出的时钟(clk5)进行滤波处理,可以提高时钟信号质量。由于发送时钟与接收时钟没有偏差,因此该驱动器能够消除由于在弹性缓冲器中增加或者删除skp序列而引入的额外延时问题,实现低延时传输。图9是本申请提供的数据传输方法的示意性流程图。该方法应用于驱动器,该驱动器包括:时钟数据恢复cdr电路、弹性缓冲器、接收电路和发送电路。该方法包括:s910,cdr电路从接收信号中恢复出接收时钟;s920,该接收电路使用该接收时钟从该接收数据中恢复出发送数据;s930,该弹性缓冲器使用该接收时钟移入该发送数据,并使用该接收时钟移出该发送数据;s940,该发送电路使用该接收时钟发送从该弹性缓冲器移出的该发送数据。本申请的数据传输方法,由于接收电路和发送电路使用的是同一时钟域,即,cdr恢复出的接收时钟,因此可以完全消除收发端时钟的频率差,不需要链路状态机在弹性缓冲器进行增加或者删除skp序列,因此能够消除sris场景收发频率差带来的额外延时,实现低延时传输。应理解,图9所示的方法可以在驱动器使能低延时模式,且连接到下游芯片时执行,但本申请对此不作限定。另外,在执行完图9所示的方法后,该驱动器可以与上游芯片和下游芯片进行链路训练。可选地,作为本申请一个实施例,该驱动器还包括第一时钟转换电路和第二时钟转换电路,该第一时钟转换电路基于该接收时钟生成第一时钟,该第一时钟的频率与期望的本地时钟的频率相同;该第二时钟转换电路基于该第一时钟生成发送时钟,并将该发送时钟输出至该发送电路,该发送时钟与该接收时钟的频率相同。可选地,作为本申请一个实施例,在低延时模式下,向该第二时钟转换电路输入该第一时钟;在非低延时模式下,向该第二时钟转换电路输入该本地时钟。可选地,作为本申请一个实施例,该第一时钟的频率为100mhz。可选地,作为本申请一个实施例,该驱动器还包括信号处理单元,该信号处理单元对该接收时钟进行抖动滤波,生成发送时钟,并将该发送时钟输出至该发送电路,该发送时钟与该接收时钟的频率相同。可选地,作为本申请一个实施例,驱动器支持多个协议,并且能够选择多个协议中的一个协议工作,多个协议包括下述中的至少一种:pcie协议、ccix协议或usb协议。关于图9所示的方法的具体细节以及该驱动器的具体实现方式,可以参照上文中对图4至图8所示的驱动器的描述,这里不再赘述。需要说明的是,本申请提供的驱动器可以支持多个通道。在一种可能的实现方式中,驱动器中的cdr电路可以用于一个通道或多个通道,除cdr电路以外的其他模块可以对应一个通道中的一个方向。在一种可能的实现方式中,驱动器中的cdr电路和时钟处理电路可以用于一个通道或多个通道,除此以外的其他模块可以对应一个通道中的一个方向。在一种可能的实现方式中,驱动器中的cdr电路和第二时钟转换电路可以对应一个通道,也可以对应多个通道。图10是可以结合本申请提供的技术的一个系统900的示意图。例如,上述技术可以合并到系统1000中的互连或接口中。参见图10,系统1000包括但不限于台式计算机,笔记本电脑,网络书籍,平板电脑,笔记本电脑,个人数字助理(personaldigitalassistant,pda),服务器,工作站,移动电话,移动计算设备,智能电话,因特网设备或任何其他类型的计算设备。在一种可能的实现方式中,系统1000可以包括一个处理器,例如处理器1010。在另一种可能的实现方式中,系统1000可以包括多个处理器,例如包括处理器1010和1020,其中处理器1020具有与处理器1010的逻辑类似或相同的逻辑,或者处理器1020具有完全独立于处理器1010的逻辑的逻辑。处理器可以是中央处理单元(centralprocessingunit,cpu),该处理器还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(fieldprogrammablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。在一种可能的实现方式中,系统1000可以包括存储器1030,处理器1010能够访问存储器1030并且具有与存储器1030通信的功能,存储器1030存储将由处理器1010执行的信息和指令。存储器1030包括易失性存储器和/或非易失性存储器。其中,非易失性存储器可以是只读存储器(read-onlymemory,rom)、可编程只读存储器(programmablerom,prom)、可擦除可编程只读存储器(erasableprom,eprom)、电可擦除可编程只读存储器(electricallyeprom,eeprom)或闪存。易失性存储器可以是随机存取存储器(randomaccessmemory,ram),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的随机存取存储器(randomaccessmemory,ram)可用,例如静态随机存取存储器(staticram,sram)、动态随机存取存储器(dram)、同步动态随机存取存储器(synchronousdram,sdram)、双倍数据速率同步动态随机存取存储器(doubledataratesdram,ddrsdram)、增强型同步动态随机存取存储器(enhancedsdram,esdram)、同步连接动态随机存取存储器(synchlinkdram,sldram)和直接内存总线随机存取存储器(directrambusram,drram)。在一种可能的实现方式中,处理器1010和1020可以与芯片组1040通信。在一种可能的实现方式中,芯片组1040经由点对点(pointtopoint,p-p)接口1042和1012与处理器1010连接。接口1042和1012可以基于任何可能的p-p通信协议进行通信。在一种可能的实现方式中,芯片组1040可通过接口1044与显示设备1050和其他设备通信,该其他设备如图中所示总线桥1062、智能tv1064、i/o设备1066、键盘/鼠标1072和网络接口1074。显示设备1050包括但不限于液晶显示器(lcd),等离子体,阴极射线管(crt)。在一种可能的实现方式中,芯片组1040可以通过一个或多个总线1060和1070连接到该其他设备通信。在一种可能的实现方式中,总线1060和1070可以通过总线桥1062互连在一起。在一种可能的实现方式中,网络接口1074由任何类型的公知网络接口标准实现,包括但不限于以太网接口,usb接口,pcie接口,ccix接口、无线接口和/或任何其他合适类型的接口。应理解,虽然图10中的一些模块被描绘为系统1000内的单独模块,但是由这些模块中的一些模块执行的功能可以集成在单个半导体电路内,或者可以使用两个或更多个单独的集成电路来实现。本申请还提供了一种计算机可读存储介质,用于存储计算机程序,该计算机程序包括用于执行上述方法实施例中的方法的指令。本申请还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述方法实施例。应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。还应理解,申请实施例中的“第一”和“第二”仅为了区分,不应对本申请构成任何限定。还应理解,在本申请的各种实施例中,各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本
技术领域
的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1