一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种时钟架构及处理模组的制作方法

2023-01-02 18:18:03 来源:中国专利 TAG:
1.本发明涉及时钟控制领域,特别涉及一种时钟架构及处理模组。
背景技术
::2.当前,为了提高系统的运算速度,高速运算模组应运而生,高速运算模组中每个运算模块可以独立运算执行运行任务,从而提高了运算任务的完成速度。但是,在高速运算模组中,不同模块之间的通信有一定的频率同步要求,如果通信频率之间的相位偏离过大,通信过程中会发生可修正错误或/或不可修正错误。3.由此,高速运算模组中通信频率的设置较为苛刻,一旦频率拓扑结构固定则不再扩展,其运算模块的拓扑结构以及算力也受到限制,使得高速运算模组内部无法灵活调整频率,整个运算模组的算力处于不够理想的状态。4.因此,如何提供一种解决上述技术问题的方案是目前本领域技术人员需要解决的问题。技术实现要素:5.有鉴于此,本发明的目的在于提供一种更为灵活、可提供更高算力支持的时钟架构及处理模组。其具体方案如下:一种时钟架构,所述时钟架构包括一层或多层时钟模块层;每层所述时钟模块层包括一个或多个时钟模块,每个所述时钟模块包括本地时钟发生器、选择开关电路、多个时钟缓冲电路,其中:所述本地时钟发生器,用于产生独立的本地时钟;所述选择开关电路的第一输入端接收所述本地时钟,所述选择开关电路的第二输入端接收外来下发时钟,所述选择开关电路的多个输出端分别与多个时钟缓冲电路的输入端连接,所述选择开关电路的使能端用于接收使能信号;所述选择开关电路,用于根据所述使能信号使所有所述输出端输出所述本地时钟或使所有所述输出端输出所述外来下发时钟。6.优选的,最高所述时钟模块层中所述时钟模块的所述外来下发时钟由主服务器提供。7.优选的,每个所述时钟缓冲电路的输出端与下级模块一一连接,所述下级模块包括非时钟模块和/或下一所述时钟模块层的所述时钟模块。8.优选的,当所述下级模块为下一所述时钟模块层的所述时钟模块,对应的所述时钟缓冲电路的所述输出端连接下一所述时钟模块层的所述时钟模块的所述第二输入端。9.优选的,每个所述时钟模块还包括:bmc电路,用于连接所述选择开关电路的所述使能端,并生成所述使能信号。10.优选的,所述时钟架构还包括集线器;所有所述bmc电路的物理层接口、主服务器的网络端口分别与所述集线器的接口连接。11.优选的,所述非时钟模块包括运算模块、和/或通信模块、和/或存储模块,每个所述运算模块分别连接所述时钟缓冲电路的一个输出端。12.优选的,所述运算模块包括fpga电路、和/或cpld电路、和/或gpu电路;所述运算模块还包括存储电路,所述存储电路与所述fpga电路或所述cpld电路或所述gpu电路连接。13.优选的,所述通信模块包括:通信芯片和/或通信卡槽,所述通信模块的时钟端独立连接所述时钟缓冲电路的一个输出端。14.优选的,当所述下级模块为下一所述时钟模块层的所述时钟模块,对应的所述时钟缓冲电路的所述输出端通过一个通信卡槽连接下一所述时钟模块层的所述时钟模块的所述第二输入端。15.优选的,所述时钟架构中所述时钟模块层的最大允许层数通过时钟抖动最大限定值确定。16.优选的,确定所述时钟模块层的最大允许层数通过时钟抖动最大限定值的过程,包括:获取当前时钟架构的拓扑关系;确定所述拓扑关系中通信路径最长的时钟链路;根据当前时钟架构的各元件抖动值计算所述时钟链路的抖动值;根据所述抖动值和时钟抖动最大限定值,确定所述时钟架构的最大允许层数。17.优选的,所述根据所述抖动值和时钟抖动最大限定值,确定所述时钟架构的最大允许层数的过程,包括:比较所述抖动值与时钟抖动最大限定值的大小;调整当前时钟架构中时钟模块层的层数并返回执行所述获取当前时钟架构的拓扑关系的步骤;当n层所述时钟模块层对应的所述抖动值超过所述时钟抖动最大限定值,且n-1层所述时钟模块层对应的所述抖动值不超过所述时钟抖动最大限定值,确定所述时钟架构的最大允许层数为n-1层;n为不小于1的整数。18.优选的,所述根据当前时钟架构的各元件抖动值计算所述时钟链路的抖动值的过程,包括:对所述时钟链路上各元件抖动值的平方和作开方计算,得到所述时钟链路的抖动值。19.相应的,本技术还公开了一种处理模组,包括:如上文任一项所述时钟架构;为所述时钟架构的最高时钟模块层提供外来下发时钟的主服务器;各时钟信号端分别连接所述时钟架构中所述时钟缓冲电路的输出端的多个非时钟模块。20.本技术公开了一种时钟架构,每个时钟模块中选择开关电路可选择本地时钟或外来下发时钟作为输出时钟,从而应用该时钟架构的处理模组,如高速运算模组中的时钟调控更为灵活,该时钟架构可扩展、时钟可选的特性为处理模组准确运行提高提供了可靠基础。附图说明21.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。22.图1为本发明实施例中时钟模块的结构分布图;图2为本发明实施例中一种时钟架构的结构分布图;图3a为本发明实施例中共同时钟架构的结构分布图;图3b为本发明实施例中分离时钟架构的结构分布图;图4为本发明实施例中一种确定时钟架构的最大允许层数的步骤流程图;图5为本发明实施例中一种具体的时钟架构的结构分布图。具体实施方式23.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。24.高速运算模组中通信频率的设置较为苛刻,一旦频率拓扑结构固定则不再扩展,其运算模块的拓扑结构以及算力也受到限制,使得高速运算模组内部无法灵活调整频率,整个运算模组的算力处于不够理想的状态。25.本技术公开了一种时钟架构,每个时钟模块中选择开关电路可选择本地时钟或外来下发时钟作为输出时钟,从而应用该时钟架构的处理模组,如高速运算模组中的时钟调控更为灵活,该时钟架构可扩展、时钟可选的特性为处理模组准确运行提高提供了可靠基础。26.本发明实施例公开了一种时钟架构,时钟架构包括一层或多层时钟模块层,每层时钟模块层包括一个或多个时钟模块m;参见图1所示,每个时钟模块m包括本地时钟发生器clkgen、选择开关电路mux、多个时钟缓冲电路clkbuffer,其中:本地时钟发生器clkgen,用于产生独立的本地时钟clk_m;选择开关电路mux的第一输入端接收本地时钟clk_m,选择开关电路mux的第二输入端接收外来下发时钟clk_h,选择开关电路mux的多个输出端分别与多个时钟缓冲电路clkbuffer的输入端连接,选择开关电路mux的使能端用于接收使能信号;选择开关电路mux,用于根据使能信号使所有输出端输出本地时钟clk_m或使所有输出端输出外来下发时钟clk_h。27.可以理解的是,最高时钟模块层中时钟模块m中的外来下发时钟clk_h由主服务器hostserver提供。28.可以理解的是,每个时钟缓冲电路clkbuffer的输出端与下级模块一一连接,下级模块包括非时钟模块和/或下一时钟模块层的时钟模块m。进一步的,当下级模块为下一时钟模块层的时钟模块m,对应的时钟缓冲电路clkbuffer的输出端连接下一时钟模块层的时钟模块m的第二输入端。29.进一步的,每层时钟模块m还包括:bmc(baseboardmanagementcontroller,基板管理控制器)电路,用于连接选择开关电路mux的使能端,并生成使能信号。可以理解的是,通常bmc电路的gpio端与mux的使能端selpin连接,并向使能端selpin发出使能信号。30.可以理解的是,选择开关电路mux的两个输入端接收两个不同的时钟:本地时钟clk_m和外来下发时钟clk_h,根据选择开关电路mux的特性,选择开关电路mux的所有输出端输出相同的输出时钟,根据使能信号的电平高低与配置关系,选择开关电路mux的所有输出端可同时输出本地时钟clk_m,或者,选择开关电路mux的所有输出端可同时输出外来下发时钟clk_h。通过当前时钟模块m中选择开关电路mux的输出,为当前时钟模块m中下级模块提供相应的时钟,保证下级模块按照时钟运行。31.可以理解的是,非时钟模块包括运算模块、和/或通信模块、和/或存储模块,每个运算模块分别连接时钟缓冲电路clkbuffer的一个输出端。32.可以理解的是,非时钟模块的具体设定可根据应用该时钟架构的处理模组的具体类型进行调整,下面以处理模组为高速运算模组为例进行具体描述:在一些具体的实施例中,运算模块包括fpga(field-programmablegatearray,现场可编程门阵列)电路、和/或cpld(complexprogrammablelogicdevice,复杂可编程逻辑器件)电路、和/或gpu(graphicsprocessingunit,图形处理器)电路;运算模块还包括存储电路,存储电路与fpga电路或cpld电路或gpu电路连接。可以理解的是,通常存储电路与fpga电路可形成一个运算单元computingmodule,多个运算单元可形成一个高速运算模组,高速运算模组中所有单元的时钟由本实施例中时钟架构相应提供,由于本实施例中时钟架构的时钟供应灵活、架构可扩展,能够为更高算力的运算模组提供时钟支持。其中,运算模块的具体类型根据时钟架构所要服务的高速运算模组的内部结构决定。33.进一步的,存储电路包括内存条和存储硬盘,内存条可选dimm(dualinlinememorymodules,即双列直插式存储模块),存储硬盘可选ssd(solidstatedisk,固态硬盘)或其他形式的存储硬盘。类似的,存储电路的具体类型根据时钟架构所要服务的高速运算模组的内部结构决定。34.进一步的,通信模块包括:通信芯片和/或通信卡槽,通信模块的时钟端独立连接时钟缓冲电路clkbuffer的一个输出端。可以理解的是,通信芯片和通信卡槽可根据通信协议确定,通常选择pcie协议(peripheralcomponentinterconnectexpress,高速串行计算机扩展总线标准),相应的,通信芯片包括但不限于pcieswitch芯片,通信卡槽包括pcieslot。35.以图1所示的单层时钟模块m为例,该时钟模块m中包括四个时钟缓冲电路:第一时钟缓冲电路clkbuffer1、第二时钟缓冲电路clkbuffer2、第三时钟缓冲电路clkbuffer3、第四时钟缓冲电路clkbuffer4,所有时钟缓冲电路clkbuffer的输出端提供相同的时钟,每个时钟缓冲电路clkbuffer上输出端的个数和每个输出端所提供的通道条数可根据时钟架构所要服务的高速运算模组的内部结构决定。36.具体的,图1中第一时钟缓冲电路clkbuffer1提供五个输出端,其中第一输出端clk_《0:3》与一个通信卡槽piceslot*4连接,为host提供时钟,第二输出端clk_《4:7》与一个通信卡槽piceslot*4连接,为scale-up提供时钟,第三输出端clk_《8:11》与一个通信卡槽piceslot*4连接,为scale-out提供时钟,第四输出端clk_《12:15》与一个运算模块fpga1连接,fpga1还接有一个内存条dimm,二者形成一个运算单元computingmodule1,第五输出端clk_《16:19》与一个运算模块fpga3连接,fpga3还接有另一个内存条dimm,二者形成一个运算单元computingmodule3。37.类似的,图1中第二时钟缓冲电路clkbuffer2提供三个输出端,其中第一输出端clk_《0:7》与一个nvme协议的8通道存储硬盘nvmessd*8(标记为sw#1)连接,第二输出端clk_《8:15》与另一个nvme协议的8通道存储硬盘nvmessd*8(标记为sw#2)连接,第三输出端clk_《16:19》与一个运算模块fpga2连接,fpga2还接有一个内存条dimm,二者形成一个运算单元computingmodule2。38.类似的,图1中第三时钟缓冲电路clkbuffer3提供三个输出端,其中第一输出端clk_《0:7》与一个nvme协议的8通道存储硬盘nvmessd*8(标记为sw#3)连接,第二输出端clk_《8:15》与另一个nvme协议的8通道存储硬盘nvmessd*8(标记为sw#4)连接,第三输出端clk_《16:19》与一个运算模块fpga4连接,fpga4还接有一个内存条dimm,二者形成一个运算单元computingmodule4。39.类似的,图1中第四时钟缓冲电路clkbuffer4提供7个输出端,其中第一输出端至第六输出端100m《0》、100m《1》、100m《2》、100m《3》、100m《4》、100m《5》分别连接通信芯片pcieswitch#1‑ꢀpcieswitch#5,第七输出端100m《6》连接bmc电路,这里的bmc电路指当前时钟模块m中用于输出使能信号的bmc电路,可见,时钟缓冲电路clkbuffer的输出端还可连接bmc电路,从而为bmc电路提供时钟支持。40.可以理解的是,每个时钟模块m的下级模块为非时钟模块的具体形式,可根据时钟架构所要服务的高速运算模组的内部结构决定,而时钟模块m的下级模块为下一时钟模块层的时钟模块m时,相邻的时钟模块m之间串行连接。具体的,每个时钟模块m均存在一个内部的本地时钟发生器clkgen生成的独立本地时钟clk_m和一个外来下发时钟clk_h,最高时钟模块层的时钟模块m的外来下发时钟clk_h由主服务器hostserver提供,其它时钟模块层的时钟模块m的外来下发时钟clk_h由上一层的时钟模块m提供,上一层的时钟模块m中选择开关电路mux的一个输出端连接一个时钟缓冲电路clkbuffer的输入端,该时钟缓冲电路clkbuffer的输出端连接其它时钟模块层的时钟模块m的第二输入端,向其它时钟模块层的时钟模块m发送外来下发时钟clk_h。41.可以理解的是,当下级模块为下一时钟模块层的时钟模块m,对应的时钟缓冲电路clkbuffer的输出端通过一个通信卡槽连接下一时钟模块层的时钟模块m的第二输入端。42.如图2所示,图2为一种具体的时钟架构的示例,该时钟架构中忽略了下级模块为非时钟模块的内容,仅针对多层时钟模块层的时钟模块m的连接结构,其中m1为最高时钟模块层时钟模块,其外来下发时钟由主服务器hostserver提供,并通过多个通信卡槽pcieslot分别为第二时钟模块层的时钟模块m2、m2-1、m2-2和m2-3提供外来下发时钟,第二时钟模块层的时钟模块分别为各自连接的下一层时钟模块提供外来下发时钟。对于每个时钟模块来说,其存在两个可选的时钟,即外来下发时钟clk_h和本地时钟clk_m,时钟模块m内部可通过选择开关mux从这两个可选的时钟之中确定一个时钟作为非时钟模块的时钟和下一时钟模块层的时钟模块m的外来下发时钟。43.可以理解的是,在pcie标准规范中,一条pcie通道包含发送和接收两条端,总pcie连接数据带宽可通过增加额外的通道扩展,其灵活性使得pcie普遍出现在服务器、网络附加存储、网络交换器、路由器和电视机顶盒等应用中,这些应用本身的严格时序运算和系统设计的挑战对pcie频率的性能要求十分严苛。通常,pcie指定一个100mhz的外部参考频率即refclk,精确度在正负300ppm内,用于协调两个pcie设备间的数据传输。pcie标准支持三种范围的频率分配方案:公共频率、资料频率和分离时钟架构,所有频率方案都要求正负300ppm的频率精确度。44.具体的,共同时钟架构(commonclock)如图3a所示,单个时钟源同时被分配到发送端(pciedevicea)和接收端(pciedeviceb)。这种频率方式因简单而普遍用于对成本敏感的产品应用中,可以支持ssc(spreadspectrumclocking,展频时钟)并减少emi(electromagneticinterference,电磁干扰)的影响。45.具体的,分离时钟架构(separatereferenceclock)如图3b所示,发送端(pciedevicea)和接收端(pciedeviceb)各自使用分离的频率源,不再同时发送频率到所有pcie端点。分离频率源标准的频率间隔需维持在正负600ppm之间,从而每一个参考时钟referenceclock仍能保持正负300ppm的频率精确度。也因为频率独立运作,接收器的有效抖动成为发送器抖动和接收器锁相回路(pll)的平方和的开方根(rss)。这种分离时钟架构没有抖动限制,但通常要求时钟抖动(jitter)预算比共同频率架构更严格。在现有技术中,若要求采用正负300ppm的整体频率幅度,则分离时钟架构中referenceclock之间的频率间隔限制会大大阻碍了ssc的应用。46.可以理解的是,pcie连接用于将从大量数据从发射器传送到接收器,并保证数据传输的高成功率。为达到这点,位中心或邻近位的发射器所传送的数据必须经由接收器采样,接收器中的频率/频率数据复原(clock/datarecoveryblock,cdr)会产生一个频率,定期采样数据至锁存器(latch)。该过程中各种相位抖动源引起样本时序的波动,由于样本位置偏离理想位置,位错误率(biterrorrate)增加,进而导致pcie在运作时产生可修正错误或不可修正错误。47.相应的,本实施例中时钟架构中时钟可选,既可选择支持共同时钟架构为高速运算模组提供时钟,也可选择支持分离时钟架构为高速运算模组提供时钟,时钟架构支持两种时钟架构的自动切换,并同时保有对于展频频率(ssc)的支持与时钟抖动(jitter)预算控制。48.进一步的,时钟架构中时钟模块层的最大允许层数通过时钟抖动最大限定值确定。通常情况下,时钟抖动最大限定值根据使用的通信协议决定,可采用pcisig协对不同的pcie协议规定了不同的时钟抖动限制,具体如下表1所示:表1pcie协议与时钟抖动最大限制值(commonclockjitterlimit)的对应表具体的,时钟架构中时钟抖动的计算以元件抖动为计算参数,通信路径最长的时钟链路的抖动值作为当前时钟架构的时钟抖动值。具体的,确定所述时钟模块层的最大允许层数通过时钟抖动最大限定值的过程,参见图4所示,包括:s1:获取当前时钟架构的拓扑关系;s2:确定拓扑关系中通信路径最长的时钟链路;s3:根据当前时钟架构的各元件抖动值计算时钟链路的抖动值;s4:根据抖动值和时钟抖动最大限定值,确定时钟架构的最大允许层数。49.在一些具体的实施例中,根据抖动值和时钟抖动最大限定值,确定时钟架构的最大允许层数的过程,包括:比较抖动值与时钟抖动最大限定值的大小;调整当前时钟架构中时钟模块层的层数并返回执行获取当前时钟架构的拓扑关系的步骤;当n层时钟模块层对应的抖动值超过时钟抖动最大限定值,且n-1层时钟模块层对应的抖动值不超过时钟抖动最大限定值,确定时钟架构的最大允许层数为n-1层;n为不小于1的整数。50.在一些具体的实施例中,根据当前时钟架构的各元件抖动值计算时钟链路的抖动值的过程,包括:对时钟链路上各元件抖动值的平方和作开方计算,得到时钟链路的抖动值。51.具体的,以图1为例,其中本地时钟发生器clkgen具体型号可选为idt公司的9sq440芯片,9sq440芯片可以通过25mhz外部石英晶振产生100mhz的稳定时钟源输出;选择开关电路mux具体型号可选为idt公司的9dml04芯片,9dml04芯片拥有两个100mhz的时钟输入端,并具有四个稳定的100mhz输出端;bmc电路的具体型号可选为aspeed公司的ast2600芯片,时钟缓冲电路clkbuffer的具体型号可选为9qxl2001bnhgi芯片;bmc电路通过gpio端连接选择开关电路mux的使能引脚selpin,藉以达成自动切换输入端口的功能,具体的,当gpio端输出低电平的使能信号,选择开关电路mux将时钟输入端口切换至外来下发时钟clk_h,当gpio端输出为高电平的使能信号,选择开关电路mux将时钟输入端口切换至本地时钟clk_m,该使能控制逻辑也可根据实际进行调整,此处不作限制。52.以图1为例,根据以上选型的最大时钟抖动参数,主服务器hostserver提供的外来下发时钟clk_h的元件抖动为200fs,选择开关电路mux的元件抖动为100fs,时钟缓冲电路clkbuffer的元件抖动为40fs,当前时钟模块m的时钟抖动值为,当前时钟架构的时钟抖动最大限定值为500fsrms,显然当前时钟模块m小于时钟抖动最大限定值。53.进一步的,将图1中的选型应用于图2的时钟架构中,以时钟模块层的层数n=3,即通信路径最长的时钟链路为3为例,图2的时钟架构的时钟抖动值为:;时钟抖动最大限定值仍为500fsrms,3层时钟模块层满足时钟抖动要求。54.进一步的,对于将图1的选型应用到图2的时钟架构,假设主服务器hostserver提供的外来下发时钟clk_h的元件抖动为200fs,每个时钟模块m中选择开关电路mux的元件抖动为100fs,时钟缓冲电路clkbuffer的元件抖动为40fs,则n层时钟模块层对应的通信路径最长的时钟链路包括串联的n各时钟模块m,此时时钟链路的抖动值计算为:,通过对n逐个取值并计算抖动值,最终可得到抖动值jitter_rms最接近且小于时钟抖动最大限定值的最大允许层数。根据计算,不超过时钟抖动最大限定值500fsrms的最大允许层数为18层,此时时钟架构的时钟抖动值为:。55.可以理解的是,此处时钟架构的最大允许层数,不代表时钟架构中所有时钟模块m的个数,指的是时钟架构中时钟模块层的层数,对应最长通信链路中时钟模块m的个数,如图2中m2和m2-1均为第2时钟模块层的时钟模块。56.在一些具体的实施例中,bmc电路与主服务器hostserver之间也可进行通讯,参见图5所示,所有bmc电路与主服务器通过i2c总线连接。在一些具体的实施例中,时钟架构还包括集线器hub;所有bmc电路的物理层接口、主服务器的网络端口分别与集线器的接口连接。实际应用时,可选择以上两种连接方式中的任意一种或者选择两种连接方式均实施,这两种不同时钟模块中的bmc电路之间、主服务器和bmc电路之间可以进行相互沟通,从而实现时钟信号的动态切换。57.本技术公开了一种时钟架构,每个时钟模块中选择开关电路可选择本地时钟或外来下发时钟作为输出时钟,从而应用该时钟架构的处理模组,如高速运算模组中的时钟调控更为灵活,该时钟架构可扩展、时钟可选的特性为处理模组准确运行提高提供了可靠基础。58.相应的,本技术还公开了一种处理模组,包括:如上文任一实施例所述时钟架构;为所述时钟架构的最高时钟模块层提供外来下发时钟的主服务器;各时钟信号端分别连接所述时钟架构中所述时钟缓冲电路的输出端的多个非时钟模块。59.具体的,处理模组中时钟架构包括一层或多层时钟模块层,每层时钟模块层包括一个或多个时钟模块m;参见图1所示,每个时钟模块m包括本地时钟发生器clkgen、选择开关电路mux、多个时钟缓冲电路clkbuffer,其中:本地时钟发生器clkgen,用于产生独立的本地时钟clk_m;选择开关电路mux的第一输入端接收本地时钟clk_m,选择开关电路mux的第二输入端接收外来下发时钟clk_h,选择开关电路mux的多个输出端分别与多个时钟缓冲电路clkbuffer的输入端连接,选择开关电路mux的使能端用于接收使能信号;选择开关电路mux,用于根据使能信号使所有输出端输出本地时钟clk_m或使所有输出端输出外来下发时钟clk_h。60.可以理解的是,最高时钟模块层中时钟模块m中的外来下发时钟clk_h由主服务器hostserver提供。61.可以理解的是,每个时钟缓冲电路clkbuffer的输出端与下级模块一一连接,下级模块包括非时钟模块和/或下一时钟模块层的时钟模块m。进一步的,当下级模块为下一时钟模块层的时钟模块m,对应的时钟缓冲电路clkbuffer的输出端连接下一时钟模块层的时钟模块m的第二输入端。62.进一步的,每层时钟模块m还包括:bmc电路,用于连接选择开关电路mux的使能端,并生成使能信号。可以理解的是,通常bmc电路的gpio端与mux的使能端selpin连接,并向使能端selpin发出使能信号。63.可以理解的是,选择开关电路mux的两个输入端接收两个不同的时钟:本地时钟clk_m和外来下发时钟clk_h,根据选择开关电路mux的特性,选择开关电路mux的所有输出端输出相同的输出时钟,根据使能信号的电平高低与配置关系,选择开关电路mux的所有输出端可同时输出本地时钟clk_m,或者,选择开关电路mux的所有输出端可同时输出外来下发时钟clk_h。通过当前时钟模块m中选择开关电路mux的输出,为当前时钟模块m中下级模块提供相应的时钟,保证下级模块按照时钟运行。64.可以理解的是,非时钟模块包括运算模块、和/或通信模块、和/或存储模块,每个运算模块分别连接时钟缓冲电路clkbuffer的一个输出端。65.可以理解的是,非时钟模块的具体设定可根据应用该时钟架构的处理模组的具体类型进行调整,下面以处理模组为高速运算模组为例进行具体描述:在一些具体的实施例中,运算模块包括fpga电路、和/或cpld电路、和/或gpu电路;运算模块还包括存储电路,存储电路与fpga电路或cpld电路或gpu电路连接。可以理解的是,通常存储电路与fpga电路可形成一个运算单元computingmodule,多个运算单元可形成一个高速运算模组,高速运算模组中所有单元的时钟由本实施例中时钟架构相应提供,由于本实施例中时钟架构的时钟供应灵活、架构可扩展,能够为更高算力的运算模组提供时钟支持。其中,运算模块的具体类型根据时钟架构所要服务的高速运算模组的内部结构决定。66.进一步的,存储电路包括内存条和存储硬盘,内存条可选dimm(dualinlinememorymodules,即双列直插式存储模块),存储硬盘可选ssd或其他形式的存储硬盘。类似的,存储电路的具体类型根据时钟架构所要服务的高速运算模组的内部结构决定。67.进一步的,通信模块包括:通信芯片和/或通信卡槽,通信模块的时钟端独立连接时钟缓冲电路clkbuffer的一个输出端。可以理解的是,通信芯片和通信卡槽可根据通信协议确定,通常选择pcie协议,相应的,通信芯片包括但不限于pcieswitch芯片,通信卡槽包括pcieslot。68.以图1所示的单层时钟模块m为例,该时钟模块m中包括四个时钟缓冲电路:第一时钟缓冲电路clkbuffer1、第二时钟缓冲电路clkbuffer2、第三时钟缓冲电路clkbuffer3、第四时钟缓冲电路clkbuffer4,所有时钟缓冲电路clkbuffer的输出端提供相同的时钟,每个时钟缓冲电路clkbuffer上输出端的个数和每个输出端所提供的通道条数可根据时钟架构所要服务的高速运算模组的内部结构决定。69.具体的,图1中第一时钟缓冲电路clkbuffer1提供五个输出端,其中第一输出端clk_《0:3》与一个通信卡槽piceslot*4连接,为host提供时钟,第二输出端clk_《4:7》与一个通信卡槽piceslot*4连接,为scale-up提供时钟,第三输出端clk_《8:11》与一个通信卡槽piceslot*4连接,为scale-out提供时钟,第四输出端clk_《12:15》与一个运算模块fpga1连接,fpga1还接有一个内存条dimm,二者形成一个运算单元computingmodule1,第五输出端clk_《16:19》与一个运算模块fpga3连接,fpga3还接有另一个内存条dimm,二者形成一个运算单元computingmodule3。70.类似的,图1中第二时钟缓冲电路clkbuffer2提供三个输出端,其中第一输出端clk_《0:7》与一个nvme协议的8通道存储硬盘nvmessd*8(标记为sw#1)连接,第二输出端clk_《8:15》与另一个nvme协议的8通道存储硬盘nvmessd*8(标记为sw#2)连接,第三输出端clk_《16:19》与一个运算模块fpga2连接,fpga2还接有一个内存条dimm,二者形成一个运算单元computingmodule2。71.类似的,图1中第三时钟缓冲电路clkbuffer3提供三个输出端,其中第一输出端clk_《0:7》与一个nvme协议的8通道存储硬盘nvmessd*8(标记为sw#3)连接,第二输出端clk_《8:15》与另一个nvme协议的8通道存储硬盘nvmessd*8(标记为sw#4)连接,第三输出端clk_《16:19》与一个运算模块fpga4连接,fpga4还接有一个内存条dimm,二者形成一个运算单元computingmodule4。72.类似的,图1中第四时钟缓冲电路clkbuffer4提供7个输出端,其中第一输出端至第六输出端100m《0》、100m《1》、100m《2》、100m《3》、100m《4》、100m《5》分别连接通信芯片pcieswitch#1‑ꢀpcieswitch#5,第七输出端100m《6》连接bmc电路,这里的bmc电路指当前时钟模块m中用于输出使能信号的bmc电路,可见,时钟缓冲电路clkbuffer的输出端还可连接bmc电路,从而为bmc电路提供时钟支持。73.可以理解的是,每个时钟模块m的下级模块为非时钟模块的具体形式,可根据时钟架构所要服务的高速运算模组的内部结构决定,而时钟模块m的下级模块为下一时钟模块层的时钟模块m时,相邻的时钟模块m之间串行连接。具体的,每个时钟模块m均存在一个内部的本地时钟发生器clkgen生成的独立本地时钟clk_m和一个外来下发时钟clk_h,最高时钟模块层的时钟模块m的外来下发时钟clk_h由主服务器hostserver提供,其它时钟模块层的时钟模块m的外来下发时钟clk_h由上一层的时钟模块m提供,上一层的时钟模块m中选择开关电路mux的一个输出端连接一个时钟缓冲电路clkbuffer的输入端,该时钟缓冲电路clkbuffer的输出端连接其它时钟模块层的时钟模块m的第二输入端,向其它时钟模块层的时钟模块m发送外来下发时钟clk_h。74.可以理解的是,当下级模块为下一时钟模块层的时钟模块m,对应的时钟缓冲电路clkbuffer的输出端通过一个通信卡槽连接下一时钟模块层的时钟模块m的第二输入端。75.如图2所示,图2为一种具体的时钟架构的示例,该时钟架构中忽略了下级模块为非时钟模块的内容,仅针对多层时钟模块层的时钟模块m的连接结构,其中m1为最高时钟模块层时钟模块,其外来下发时钟由主服务器hostserver提供,并通过多个通信卡槽pcieslot分别为第二时钟模块层的时钟模块m2、m2-1、m2-2和m2-3提供外来下发时钟,第二时钟模块层的时钟模块分别为各自连接的下一层时钟模块提供外来下发时钟。对于每个时钟模块来说,其存在两个可选的时钟,即外来下发时钟clk_h和本地时钟clk_m,时钟模块m内部可通过选择开关mux从这两个可选的时钟之中确定一个时钟作为非时钟模块的时钟和下一时钟模块层的时钟模块m的外来下发时钟。76.可以理解的是,pcie连接用于将从大量数据从发射器传送到接收器,并保证数据传输的高成功率。为达到这点,位中心或邻近位的发射器所传送的数据必须经由接收器采样,接收器中的频率/频率数据复原(clock/datarecoveryblock,cdr)会产生一个频率,定期采样数据至锁存器(latch)。该过程中各种相位抖动源引起样本时序的波动,由于样本位置偏离理想位置,位错误率(biterrorrate)增加,进而导致pcie在运作时产生可修正错误(correctableerror)或不可修正错误(uncorrectableerror)。77.相应的,本实施例中时钟架构中时钟可选,既可选择支持共同时钟架构架构为高速运算模组提供时钟,也可选择支持分离时钟架构为高速运算模组提供时钟,时钟架构支持两种时钟架构的自动切换,并同时保有对于展频频率(ssc)的支持与时钟抖动(jitter)预算控制。78.进一步的,时钟架构中时钟模块层的最大允许层数通过时钟抖动最大限定值确定。通常情况下,时钟抖动最大限定值根据使用的通信协议决定,可采用pcisig协对不同的pcie协议规定了不同的时钟抖动限制,具体如表1所示。79.具体的,时钟架构中时钟抖动的计算以元件抖动为计算参数,通信路径最长的时钟链路的抖动值作为当前时钟架构的时钟抖动值。具体的,确定所述时钟模块层的最大允许层数通过时钟抖动最大限定值的过程,参见图4所示,包括:s1:获取当前时钟架构的拓扑关系;s2:确定拓扑关系中通信路径最长的时钟链路;s3:根据当前时钟架构的各元件抖动值计算时钟链路的抖动值;s4:根据抖动值和时钟抖动最大限定值,确定时钟架构的最大允许层数。80.在一些具体的实施例中,根据抖动值和时钟抖动最大限定值,确定时钟架构的最大允许层数的过程,包括:比较抖动值与时钟抖动最大限定值的大小;调整当前时钟架构中时钟模块层的层数并返回执行获取当前时钟架构的拓扑关系的步骤;当n层时钟模块层对应的抖动值超过时钟抖动最大限定值,且n-1层时钟模块层对应的抖动值不超过时钟抖动最大限定值,确定时钟架构的最大允许层数为n-1层;n为不小于1的整数。81.在一些具体的实施例中,根据当前时钟架构的各元件抖动值计算时钟链路的抖动值的过程,包括:对时钟链路上各元件抖动值的平方和作开方计算,得到时钟链路的抖动值。82.具体的,以图1为例,其中本地时钟发生器clkgen具体型号可选为idt公司的9sq440芯片,9sq440芯片可以通过25mhz外部石英晶振产生100mhz的稳定时钟源输出;选择开关电路mux具体型号可选为idt公司的9dml04芯片,9dml04芯片拥有两个100mhz的时钟输入端,并具有四个稳定的100mhz输出端;bmc电路的具体型号可选为aspeed公司的ast2600芯片,时钟缓冲电路clkbuffer的具体型号可选为9qxl2001bnhgi芯片;bmc电路通过gpio端连接选择开关电路mux的使能引脚selpin,藉以达成自动切换输入端口的功能,具体的,当gpio端输出低电平的使能信号,选择开关电路mux将时钟输入端口切换至外来下发时钟clk_h,当gpio端输出为高电平的使能信号,选择开关电路mux将时钟输入端口切换至本地时钟clk_m,该使能控制逻辑也可根据实际进行调整,此处不作限制。83.以图1为例,根据以上选型的最大时钟抖动参数,主服务器hostserver提供的外来下发时钟clk_h的元件抖动为200fs,选择开关电路mux的元件抖动为100fs,时钟缓冲电路clkbuffer的元件抖动为40fs,当前时钟模块m的时钟抖动值为,当前时钟架构的时钟抖动最大限定值为500fsrms,显然当前时钟模块m小于时钟抖动最大限定值。84.进一步的,将图1中的选型应用于图2的时钟架构中,以时钟模块层的层数n=3,即通信路径最长的时钟链路为3为例,图2的时钟架构的时钟抖动值为:;时钟抖动最大限定值仍为500fsrms,3层时钟模块层满足时钟抖动要求。85.进一步的,对于将图1的选型应用到图2的时钟架构,假设主服务器hostserver提供的外来下发时钟clk_h的元件抖动为200fs,每个时钟模块m中选择开关电路mux的元件抖动为100fs,时钟缓冲电路clkbuffer的元件抖动为40fs,则n层时钟模块层对应的通信路径最长的时钟链路包括串联的n各时钟模块m,此时时钟链路的抖动值计算为:,通过对n逐个取值并计算抖动值,最终可得到抖动值jitter_rms最接近且小于时钟抖动最大限定值的最大允许层数。根据计算,不超过时钟抖动最大限定值500fsrms的最大允许层数为18层,此时时钟架构的时钟抖动值为:。86.可以理解的是,此处时钟架构的最大允许层数,不代表时钟架构中所有时钟模块m的个数,指的是时钟架构中时钟模块层的层数,对应最长通信链路中时钟模块m的个数,如图2中m2和m2-1均为第2时钟模块层的时钟模块。87.在一些具体的实施例中,bmc电路与主服务器hostserver之间也可进行通讯,参见图5所示,所有bmc电路与主服务器通过i2c总线连接。在一些具体的实施例中,时钟架构还包括集线器hub;所有bmc电路的物理层接口、主服务器的网络端口分别与集线器的接口连接。实际应用时,可选择以上两种连接方式中的任意一种或者选择两种连接方式均实施,这两种不同时钟模块中的bmc电路之间、主服务器和bmc电路之间可以进行相互沟通,从而实现时钟信号的动态切换。88.本技术实施例时钟架构中,每个时钟模块中选择开关电路可选择本地时钟或外来下发时钟作为输出时钟,从而应用该时钟架构的处理模组,如高速运算模组中的时钟调控更为灵活,该时钟架构可扩展、时钟可选的特性为处理模组准确运行提高提供了可靠基础。89.最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。90.以上对本发明所提供的一种时钟架构及处理模组进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。当前第1页12当前第1页12
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献