流水线时钟驱动电路、计算芯片、算力板和计算设备

文档序号:1798049 发布日期:2021-11-05 浏览:19次 >En<

阅读说明:本技术 流水线时钟驱动电路、计算芯片、算力板和计算设备 (Assembly line clock drive circuit, calculating chip, force calculating board and calculating equipment ) 是由 李楠 范志军 许超 段恋华 郭海丰 于 2021-10-09 设计创作,主要内容包括:本公开涉及流水线时钟驱动电路、计算芯片、算力板和计算设备。公开了一种流水线时钟驱动电路,为包括多个运算级的流水线提供脉冲时钟信号,包括:多级时钟驱动电路,每级时钟驱动电路为相应运算级提供脉冲时钟信号;和时钟源,耦合到第一级时钟驱动电路的输入,用于提供基本时钟信号,其他各级时钟驱动电路的输入耦合到上一级时钟驱动电路的输出,每级时钟驱动电路包括:触发器,耦合到本级时钟驱动电路的输入;延时模块,耦合到触发器的输出,对触发器输出的脉冲信号进行延时,将其反馈到触发器并输出到下一级时钟驱动电路;和组合逻辑模块,耦合到触发器和延时模块的输出,对其进行组合逻辑运算来产生脉冲时钟信号以提供到流水线的相应运算级。(The present disclosure relates to a pipeline clock driving circuit, a computing chip, a computation board and a computing device. Disclosed is a pipeline clock driving circuit for providing a pulse clock signal to a pipeline including a plurality of operation stages, including: the clock driving circuit of each stage provides a pulse clock signal for the corresponding operation stage; and a clock source coupled to an input of the first stage clock driver circuit for providing a basic clock signal, inputs of the other stages of clock driver circuits being coupled to an output of the previous stage clock driver circuit, each stage of clock driver circuit comprising: a flip-flop coupled to an input of the present stage clock driving circuit; the delay module is coupled to the output of the trigger, delays the pulse signal output by the trigger, feeds the pulse signal back to the trigger and outputs the pulse signal to the next-stage clock driving circuit; and a combinational logic module coupled to outputs of the flip-flop and the delay module, performing combinational logic operations thereon to generate pulse clock signals to be provided to respective operation stages of the pipeline.)

流水线时钟驱动电路、计算芯片、算力板和计算设备

技术领域

本发明涉及用于执行哈希算法的电路。更具体地,涉及一种流水线时钟驱动电路,以及包括流水线时钟驱动电路的计算芯片、算力板和计算设备。

背景技术

用于产生加密货币的矿机类芯片通常采用包括多个运算级的流水线的结构。根据所使用的算法,将运算逻辑分成若干个运算级,其中每一个运算级具有相似的功能设计和运算结构。特别地,在流水线的各个运算级中使用锁存器作为时序器件时,每个运算级中的锁存器需要一个工作时钟(即脉冲时钟)。因此,对于每个运算级,通过相应的一级时钟驱动电路向其输入一个脉冲时钟。通常,用于每个运算级的工作时钟来源于同一个时钟源,该时钟源所产生的时钟信号通过流水线时钟驱动电路而逐级传递。

针对每个运算级产生用于锁存器的工作时钟的基本原理是将本级时钟驱动电路的输入时钟信号和延时的输入时钟信号二者输入到门电路(如或非门、与非门等)从而产生脉冲时钟,其中延时的输入时钟信号是输入时钟信号经过延时模块后产生的。该脉冲时钟的宽度基本由延时模块的延迟时间决定。

需要注意的是,该脉冲时钟的宽度需要满足流水线的最小脉冲宽度的要求。即,当脉冲时钟有效时,需要该级时钟驱动电路的输入时钟信号的状态(高电平或低电平)保持不变,从而维持所产生的脉冲时钟的状态保持最小脉冲宽度以上的时间。因此,每一级时钟驱动电路的输入时钟信号的占空比需要满足一定的要求。

通常,时钟源产生的基本时钟信号的占空比为0.5。但是,在该时钟信号通过流水线时钟驱动电路逐级传递的过程中,占空比会越来越差。造成时钟信号占空比变差的主要原因是组合逻辑器件的制造误差的累积。在时钟信号通过流水线时钟驱动电路逐级传递的过程中,其会经过许多缓冲器、反相器等组合逻辑器件。由于制造工艺,这些组合逻辑器件的性能参数存在误差,而这种误差使得时钟占空比发生偏差。并且,随着时钟信号的逐级传递,各级时钟驱动电路中的组合逻辑器件的参数误差造成的影响不断累积,因而时钟占空比的这种偏差逐渐增加。因此,离时钟源越远的时钟驱动电路的输入时钟信号的占空比越差,其所产生的脉冲时钟也相应地越差,以致可能不能满足相应运算级的最小脉冲宽度的要求。

因此,存在对于新技术的需求。

发明内容

本公开的目的之一是提供一种改进的流水线时钟驱动电路。

根据本发明的一个方面,提供了一种流水线时钟驱动电路,用于为包括多个运算级的流水线提供脉冲时钟信号,所述流水线时钟驱动电路包括:多级时钟驱动电路,其中每一级时钟驱动电路用于为流水线的多个运算级中的相应一个运算级提供脉冲时钟信号;以及时钟源,耦合到第一级时钟驱动电路的输入,用于提供基本时钟信号,其中所述多级时钟驱动电路中的除第一级时钟驱动电路以外的其他各级时钟驱动电路的输入耦合到上一级时钟驱动电路的输出,并且其中每一级时钟驱动电路包括:触发器,耦合到本级时钟驱动电路的输入;延时模块,耦合到触发器的输出,所述延时模块用于对触发器输出的脉冲信号进行延时,将延时后的脉冲信号反馈到触发器并输出到下一级时钟驱动电路;以及组合逻辑模块,耦合到触发器和延时模块的输出,所述组合逻辑模块对触发器输出的脉冲信号和延时模块输出的延时后的脉冲信号进行组合逻辑运算来产生脉冲时钟信号以提供到流水线的相应一个运算级。

根据本发明的另一个方面,提供了一种计算芯片,其包括一个或多个如上所述的流水线时钟驱动电路。

根据本发明的又一个方面,提供了一种算力板,其包括一个或多个如上所述的计算芯片。

根据本发明的又一个方面,提供了一种计算设备,其包括一个或多个如上所述的算力板。

根据参照附图的以下描述,本发明的其它特性特征和优点将变得清晰。

附图说明

所包括的附图用于说明性目的,并且仅用于提供本文所公开的发明性装置以及将其应用到计算设备的方法的可能结构和布置的示例。这些附图决不限制本领域的技术人员在不脱离实施方案的实质和范围的前提下可对实施方案进行的在形式和细节方面的任何更改。所述实施方案通过下面结合附图的具体描述将更易于理解,其中类似的附图标记表示类似的结构元件。

图1示出了现有技术的流水线时钟驱动电路的示意图。

图2A示出了根据本发明的一个实施例的流水线时钟驱动电路的示意图。

图2B示出了根据本发明的一个实施例的流水线时钟驱动电路所产生的脉冲时钟信号的时序图。

图3A示出了根据本发明的另一个实施例的流水线时钟驱动电路的示意图。

图3B示出了根据本发明的另一个实施例的流水线时钟驱动电路所产生的脉冲时钟信号的时序图。

图4示出了根据本发明的又一个实施例的流水线时钟驱动电路的示意图。

注意,在以下说明的实施方式中,有时在不同的附图之间共同使用同一附图标记来表示相同部分或具有相同功能的部分,而省略其重复说明。在本说明书中,使用相似的标号和字母表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。

为了便于理解,在附图等中所示的各结构的位置、尺寸及范围等有时不表示实际的位置、尺寸及范围等。因此,所公开的发明并不限于附图等所公开的位置、尺寸及范围等。此外,附图不必按比例绘制,一些特征可能被放大以示出具体组件的细节。

具体实施方式

现在将参照附图来详细描述本公开的各种示例性实施例。应当注意,除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。

以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。也就是说,本文中的哈希引擎是以示例性的方式示出,来说明本公开中的电路的不同实施例,而并非意图限制。本领域的技术人员将会理解,它们仅仅说明可以用来实施本发明的示例性方式,而不是穷尽的方式。

对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。

图1示出了现有技术的流水线时钟驱动电路100的示意图。流水线时钟驱动电路100用于为包括多个运算级101-1, …, 101-(N-1), 101-N的流水线101提供脉冲时钟信号。

如图1所示,流水线时钟驱动电路100包括时钟源110和多级时钟驱动电路120-1,120-2, …, 120-N。时钟源110耦合到第一级时钟驱动电路120-1的输入,用于提供基本时钟信号。多级时钟驱动电路120-1, 120-2, …, 120-N中的每一级时钟驱动电路用于为流水线101的多个运算级101-N, 101-(N-1) , …, 101-1中的相应一个运算级提供脉冲时钟信号。

其中,每一级时钟驱动电路120-1, 120-2, …, 120-N包括延时模块130-1, 130-2, …, 130-N和组合逻辑模块140-1, 140-2, …, 140-N(如或非门、与非门等)。延时模块130-1, 130-2, …, 130-N用于对该级时钟驱动电路120-1, 120-2, …, 120-N的输入时钟信号进行延时。组合逻辑模块140-1, 140-2, …, 140-N用于对该级时钟驱动电路120-1, 120-2, …, 120-N的输入时钟信号与经延时模块130-1, 130-2, …, 130-N延时的输入时钟信号进行逻辑运算(如或非、与非等),并且输出其运算结果作为该级时钟驱动电路120-1, 120-2, …, 120-N的输出脉冲时钟信号,用于提供到流水线101的相应一个运算级101-N, 101-(N-1) , …, 101-1。

但是,由于延时模块130-1, 130-2, …, 130-N中的组合逻辑器件(如缓冲器、反相器等)的制造误差,时钟信号的占空比会发生偏差。在从时钟源110输出的基本时钟信号通过各级时钟驱动电路120-1, 120-2, …, 120-N传递的过程中,占空比的这种偏差会逐渐累积,使得离时钟源110越远的运算级(101-1)的时钟脉冲宽度越差,以至无法满足该运算级对工作时钟的脉冲宽度的要求。

针对这一问题,本发明提出一种改进的流水线时钟驱动电路,其中各级时钟驱动电路所产生的脉冲时钟信号的脉冲宽度与其输入时钟信号无关。

图2A示出了根据本发明的一个实施例的流水线时钟驱动电路200的示意图。图2B示出了根据本发明的一个实施例的流水线时钟驱动电路200所产生的脉冲时钟信号的时序图。

流水线时钟驱动电路200用于为包括多个运算级201-1, …, 201-N的流水线201提供脉冲时钟信号。

如图2A所示,流水线时钟驱动电路200包括时钟源210和多级时钟驱动电路220-1,…, 220-N。

时钟源210耦合到第一级时钟驱动电路220-1的输入,用于提供基本时钟信号。时钟源210提供的基本时钟信号的占空比可以是0.5,频率可以是几百兆赫兹,例如400-700MHz。

多级时钟驱动电路220-1, …, 220-N中的除第一级时钟驱动电路220-1以外的其他各级时钟驱动电路的输入耦合到上一级时钟驱动电路的输出,其中每一级时钟驱动电路220-1, …, 220-N用于为流水线201的多个运算级201-N, …, 201-1中的相应一个运算级提供脉冲时钟信号。

其中,每一级时钟驱动电路220-1, …, 220-N包括触发器230-1, …, 230-N、延时模块240-1, …, 240-N和组合逻辑模块250-1, …, 250-N。

触发器230-1, …, 230-N耦合到本级时钟驱动电路的输入。即,第一级时钟驱动电路220-1中的触发器230-1耦合到时钟源210的输出,而其他各级时钟驱动电路中的触发器耦合到上一级时钟驱动电路的输出。触发器230-1, …, 230-N可以是边沿触发器。触发器230-1, …, 230-N的类型和连接方式可以根据需要来配置。

在图2A中示出了触发器230-1, …, 230-N作为上升沿D触发器的实施例。在图2A所示的实施例中,触发器230-1, …, 230-N的SET端耦合到延时模块240-1, …, 240-N的输出,D端固定为低电平(即逻辑“0”),CP端耦合到上一级时钟驱动电路的输出,而输出端Q耦合到延时模块240-1, …, 240-N作为其输入。在上升沿D触发器的SET端信号为高电平的情况下,输出端Q始终为高电平。在SET端信号为低电平的情况下,每当CP端信号的上升沿到来时,输出端Q变为D端的信号值。在其它实施例中,触发器230-1, …, 230-N可以是例如下降沿触发器,并且其连接方式也可以随之调整(以下将在图3A所示的实施例中详细描述)。

延时模块240-1, …, 240-N的输入耦合到触发器230-1, …, 230-N的输出。延时模块240-1, …, 240-N用于对触发器230-1, …, 230-N输出的脉冲信号进行延时,将延时后的脉冲信号反馈到触发器230-1, …, 230-N并输出到下一级时钟驱动电路。在优选的实施例中,延时模块240-1, …, 240-N还对触发器230-1, …, 230-N输出的脉冲信号进行反相。延时模块240-1, …, 240-N可以由若干个缓冲器和/或反相器来实现。在优选的实施例中,如图2A所示,延时模块240-1, …, 240-N可以由奇数个反相器构成。在其它实施例中,延时模块240-1, …, 240-N可以由若干个缓冲器和奇数个反相器构成。

组合逻辑模块250-1, …, 250-N耦合到触发器230-1, …, 230-N和延时模块240-1, …, 240-N的输出。组合逻辑模块250-1, …, 250-N对触发器230-1, …, 230-N输出的脉冲信号和延时模块240-1, …, 240-N输出的延时后的脉冲信号进行组合逻辑运算来产生脉冲时钟信号以提供到流水线201的相应一个运算级201-N, …, 201-1。可以根据触发器230-1, …, 230-N的类型来相应地设计组合逻辑模块250-1, …, 250-N。在图2A所示的实施例中,在触发器230-1, …, 230-N作为上升沿D触发器的情况下,组合逻辑模块250-1, …, 250-N可以由或门或者或非门构成。在其它实施例中,组合逻辑模块250-1,…, 250-N可以由与门或者与非门构成(以下将在图3A所示的实施例中详细描述)。

在优选的实施例中,如图2A所示,脉冲信号在多级时钟驱动电路中220-1, …,220-N传递的方向与数据信号在流水线的所述多个运算级201-1, …, 201-N中传递的方向相反。即,第一级时钟驱动电路220-1用于为最后一个运算级201-N提供脉冲时钟信号,而最后一级时钟驱动电路220-N用于为第一个运算级201-1提供脉冲时钟信号,依此类推。这样的布置能够更容易地满足各个运算级201-1, …, 201-N的运算时序的要求。

参考图2B,以下以第一级时钟驱动电路220-1为例描述其产生脉冲时钟信号的时序。

触发器230-1的CP端从时钟源210接收基本时钟信号S201作为输入信号(相应地,后面各级触发器的CP端分别从前一级时钟驱动电路中的延时模块的输出处接收输出信号S203作为输入信号),并且在输出端Q处将脉冲信号S202提供至延时模块240-1和组合逻辑模块250-1(在此实施例中为或非门)的一个输入端。延时模块240-1对脉冲信号S202进行反相并延时以得到输出信号S203,并且将输出信号S203分别提供至触发器230-1的SET端和组合逻辑模块250-1的另一个输入端,并提供为下一级时钟驱动电路的输入信号。

在整个系统上电之后,时钟源210尚未输出基本时钟信号S201时,触发器230-1的输出端Q处的脉冲信号S202会稳定在高电平。于是,延时模块240-1的输出信号S203稳定在低电平,即触发器230-1的SET端为低电平,且下一级时钟驱动电路的输入信号同样为低电平(与第一级时钟驱动电路220-1的输入信号S201相对应)。因此,组合逻辑模块250-1(或非门)的输入信号分别为高电平(S202)、低电平(S203),其输出的脉冲时钟信号S204为低电平。

在t1时刻,时钟源210开始输出基本时钟信号S201。基本时钟信号S201的周期为T。

如图2B所示,当信号S201从低电平变为高电平时,触发器230-1的CP端的信号上升沿到来,且SET端信号(S203)仍为低电平,使得触发器230-1的输出端Q的信号S202变为D端的信号值,即低电平。于是,组合逻辑模块250-1(或非门)的输入信号分别为低电平(S202)、低电平(S203),其输出的脉冲时钟信号S204变为高电平。

经过t0,在t2时刻,延时模块240-1的输出信号S203变为高电平。t0是信号S203与信号S202之间的延时,由延时模块240-1的配置决定。在图2A中所示的实施例中,t0是延时模块240-1中的多个反相器的延迟时间之和。

于是,如图2B所示,一方面,触发器230-1的SET端变为高电平,使得触发器230-1的输出端Q的信号S202变为高电平。另一方面,组合逻辑模块250-1(或非门)的输入信号分别为高电平(S202)、高电平(S203),其输出的脉冲时钟信号S204变为低电平。

又经过t0,在t3时刻,延时模块240-1的输出信号S203变为低电平。

于是,如图2B所示,一方面,触发器230-1的SET端变为低电平,但CP端尚无信号上升沿到来,因此触发器230-1的输出端Q的信号S202仍保持为高电平。另一方面,组合逻辑模块250-1(或非门)的输入信号分别为高电平(S202)、低电平(S203),其输出的脉冲时钟信号S204仍为低电平。

此后,信号S202、S203、S204的值保持不变。直到t4时刻,基本时钟信号S201的下一周期开始。从t1时刻起到t4时刻经过基本时钟信号S201的一个周期T。

在t4时刻,信号S201变为高电平。

如图2B所示,当信号S201从低电平变为高电平时,触发器230-1的CP端的信号上升沿到来,且SET端信号(S203)仍为低电平,使得触发器230-1的输出端Q的信号S202变为低电平。于是,组合逻辑模块250-1(或非门)输出端处的脉冲时钟信号S204变为高电平。

经过t0,在t5时刻,延时模块240-1的输出信号S203变为高电平。

于是,如图2B所示,一方面,触发器230-1的SET端变为高电平,使得触发器230-1的输出端Q的信号S202变为高电平。另一方面,组合逻辑模块250-1输出端处的脉冲时钟信号S204变为低电平。

又经过t0,在t6时刻,延时模块240-1的输出信号S203变为低电平。

于是,如图2B所示,触发器230-1的输出端Q的信号S202仍保持为高电平,并且组合逻辑模块250-1的输出端处的脉冲时钟信号S204仍为低电平。

这样,在组合逻辑模块250-1的输出端产生了周期为T、脉冲宽度为t0的脉冲时钟信号S204。该脉冲时钟信号S204被提供到相应的运算级201-N作为工作时钟。

此外,在延时模块240-1的输出端产生了输出信号S203,该输出信号S203同时作为下一级时钟驱动电路的输入信号(相当于第一级时钟驱动电路220-1的输入信号S201)。输出信号S203的上升沿用于触发下一级时钟驱动电路的触发器。如图2B所示,输出信号S203的上升沿比输入信号S201的上升沿延迟了t0。同样地,每一级时钟驱动电路所产生的输出信号的上升沿都比该级时钟驱动电路的输入信号的上升沿延迟t0,这符合流水线的各个运算级的工作需要。

这样,各级时钟驱动电路所产生的脉冲时钟信号的脉冲宽度为t0,仅由该级时钟驱动电路的配置决定,而与该级时钟驱动电路的输入信号无关。虽然各级时钟驱动电路中的组合逻辑器件的制造误差仍可能导致各级输入信号和输出信号的脉冲宽度出现偏差,但是每一级时钟驱动电路所产生的脉冲时钟信号的脉冲宽度与其输入信号的脉冲宽度无关,因此脉冲宽度的这种偏差不会随着信号在各级时钟驱动电路中传递而不断累积。也就是说,每一级时钟驱动电路所产生的脉冲时钟信号的脉冲宽度的可能的偏差与之前各级时钟驱动电路中的组合逻辑器件的可能的制造误差无关,而仅与该级时钟驱动电路中的组合逻辑器件的可能的制造误差有关。这样的制造误差通常较小,因而所导致的脉冲宽度偏差是可接受的。

图3A示出了根据本发明的另一个实施例的流水线时钟驱动电路300的示意图。图3B示出了根据本发明的另一个实施例的流水线时钟驱动电路300所产生的脉冲时钟信号的时序图。

流水线时钟驱动电路300用于为包括多个运算级301-1, …, 301-N的流水线301提供脉冲时钟信号。如图3A所示,流水线时钟驱动电路300包括时钟源310和多级时钟驱动电路320-1, …, 320-N。

时钟源310耦合到第一级时钟驱动电路320-1的输入,用于提供基本时钟信号。多级时钟驱动电路320-1, …, 320-N中的除第一级时钟驱动电路320-1以外的其他各级时钟驱动电路的输入耦合到上一级时钟驱动电路的输出,其中每一级时钟驱动电路320-1, …,320-N用于为流水线301的多个运算级320-1, …, 320-N中的相应一个运算级提供脉冲时钟信号。

其中,每一级时钟驱动电路320-1, …, 320-N包括触发器330-1, …, 330-N、延时模块340-1, …, 340-N和组合逻辑模块350-1, …, 350-N。

触发器330-1, …, 330-N耦合到本级时钟驱动电路的输入。即,第一级时钟驱动电路320-1中的触发器330-1耦合到时钟源310的输出,而其他各级时钟驱动电路中的触发器耦合到上一级时钟驱动电路的输出。

在图3A中示出了触发器330-1, …, 330-N作为下降沿D触发器的实施例。在图3A所示的实施例中,触发器330-1, …, 330-N的RESET端耦合到延时模块340-1, …, 340-N的输出,D端固定为高电平(即逻辑“1”),CPN端耦合到上一级时钟驱动电路的输出,而输出端Q耦合到延时模块340-1, …, 340-N作为其输入。在下降沿D触发器的RESET端信号为低电平的情况下,输出端Q始终为低电平。在RESET端信号为高电平的情况下,每当CPN端信号的下降沿到来时,输出端Q变为D端的信号值。

延时模块340-1, …, 340-N的输入耦合到触发器330-1, …, 330-N的输出。延时模块340-1, …, 340-N用于对触发器330-1, …, 330-N输出的脉冲信号进行延时,将延时后的脉冲信号反馈到触发器330-1, …, 330-N并输出到下一级时钟驱动电路。在优选的实施例中,延时模块340-1, …, 340-N还对触发器330-1, …, 330-N输出的脉冲信号进行反相。在图3A所示的实施例中,延时模块340-1, …, 340-N可以由奇数个反相器构成。

组合逻辑模块350-1, …, 350-N耦合到触发器330-1, …, 330-N和延时模块340-1, …, 340-N的输出。组合逻辑模块350-1, …, 350-N对触发器330-1, …, 330-N输出的脉冲信号和延时模块340-1, …, 340-N输出的延时后的脉冲信号进行组合逻辑运算来产生脉冲时钟信号以提供到流水线301的相应一个运算级301-N, …, 301-1。在图3A所示的实施例中,在触发器330-1, …, 330-N作为下降沿D触发器的情况下,组合逻辑模块350-1, …, 350-N可以由与非门构成。

参考图3B,以下以第一级时钟驱动电路320-1为例描述其产生脉冲时钟信号的时序。

触发器330-1的CPN端从时钟源310接收基本时钟信号S301作为输入信号(相应地,后面各级触发器的CPN端分别从前一级时钟驱动电路中的延时模块的输出处接收输出信号S303作为输入信号),并且在输出端Q处将脉冲信号S302提供至延时模块340-1和组合逻辑模块350-1(在此实施例中为与非门)的一个输入端。延时模块340-1对脉冲信号S302进行反相并延时以得到输出信号S303,并且将输出信号S303分别提供至触发器330-1的RESET端和组合逻辑模块350-1的另一个输入端,并提供为下一级时钟驱动电路的输入信号。

在整个系统上电之后,时钟源310尚未输出基本时钟信号S301时,触发器330-1的输出端Q处的脉冲信号S302会稳定在低电平。于是,延时模块340-1的输出信号S303稳定在高电平,即触发器330-1的RESET端为高电平,且下一级时钟驱动电路的输入信号同样为高电平(与第一级时钟驱动电路320-1的输入信号S301相对应)。因此,组合逻辑模块350-1(与非门)的输入信号分别为低电平(S302)、高电平(S303),其输出的脉冲时钟信号S304为高电平。

在t1时刻,时钟源310开始输出基本时钟信号S301。基本时钟信号S301的周期为T。

如图3B所示,当信号S301从高电平变为低电平时,触发器330-1的CPN端的信号下降沿到来,且RESET端信号(S303)仍为高电平,使得触发器330-1的输出端Q的信号S302变为D端的信号值,即高电平。于是,组合逻辑模块350-1(与非门)的输入信号分别为高电平(S302)、高电平(S303),其输出的脉冲时钟信号S304变为低电平。

经过t0,在t2时刻,延时模块340-1的输出信号S303变为低电平。t0是信号S303与信号S302之间的延时,由延时模块340-1的配置决定。在图3A中所示的实施例中,t0是延时模块340-1中的多个反相器的延迟时间之和。

于是,如图3B所示,一方面,触发器330-1的RESET端变为低电平,使得触发器330-1的输出端Q的信号S302变为低电平。另一方面,组合逻辑模块350-1(与非门)的输入信号分别为低电平(S302)、低电平(S303),其输出的脉冲时钟信号S304变为高电平。

又经过t0,在t3时刻,延时模块340-1的输出信号S303变为高电平。

于是,如图3B所示,一方面,触发器330-1的RESET端变为高电平,但CPN端尚无信号上升沿到来,因此触发器330-1的输出端Q的信号S302仍保持为低电平。另一方面,组合逻辑模块350-1(与非门)的输入信号分别为低电平(S302)、高电平(S303),其输出的脉冲时钟信号S304仍为高电平。

此后,信号S302、S303、S304的值保持不变。直到t4时刻,基本时钟信号S301的下一周期开始。从t1时刻起到t4时刻经过基本时钟信号S301的一个周期T。

在t4时刻,信号S301变为低电平。

如图3B所示,当信号S301从高电平变为低电平时,触发器330-1的CPN端有信号下降沿到来,使得触发器330-1的输出端Q的信号S302变为高电平。于是,组合逻辑模块350-1(与非门)输出端处的脉冲时钟信号S304变为低电平。

经过t0,在t5时刻,延时模块340-1的输出信号S303变为低电平。

于是,如图3B所示,一方面,触发器330-1的RESET端变为低电平,使得触发器330-1的输出端Q的信号S302变为低电平。另一方面,组合逻辑模块350-1输出端处的脉冲时钟信号S304变为高电平。

又经过t0,在t6时刻,延时模块340-1的输出信号S303变为高电平。

于是,如图3B所示,触发器330-1的输出端Q的信号S302仍保持为低电平,并且组合逻辑模块350-1输出端处的脉冲时钟信号S304仍为高电平。

这样,在组合逻辑模块350-1的输出端产生了周期为T、脉冲宽度为t0的脉冲时钟信号S304。该脉冲时钟信号S304被提供到相应的运算级301-N作为工作时钟。

此外,在延时模块340-1的输出端产生了输出信号S303,该输出信号S303同时作为下一级时钟驱动电路的输入信号(相当于第一级时钟驱动电路320-1的输入信号S301)。输出信号S303的下降沿用于触发下一级时钟驱动电路的触发器。如图3B所示,输出信号S303的下降沿比输入信号S301的下降沿延迟了t0。同样地,每一级时钟驱动电路所产生的输出信号的下降沿都比该级时钟驱动电路输入信号的下降沿延迟t0,这符合流水线的各个运算级的工作需要。

如上所述,根据本发明的流水线时钟驱动电路所产生的脉冲时钟的脉冲宽度由延时模块所延迟的时间t0决定。在优选的实施例中,延时模块由反相器构成。反相器的数量越多,所产生的脉冲时钟信号的脉冲宽度越大,而流水线的工作频率越低。在工程实践中,通常期望在脉冲时钟的脉冲宽度能够满足要求的情况下,使流水线的工作频率尽可能地高。为此,本发明提供了一种进一步改进的流水线时钟驱动电路,其中构成延时模块的反相器的数量可以被灵活地调整。

图4示出了根据本发明的又一个实施例的流水线时钟驱动电路400的示意图。

流水线时钟驱动电路400用于为流水线提供脉冲时钟信号。如图4所示,流水线时钟驱动电路400包括时钟源410和多级时钟驱动电路。

以第一级时钟驱动电路420-1为例,其用于为流水线的最后一级运算级401-N提供脉冲时钟信号。第一级时钟驱动电路420-1包括触发器430-1、延时模块440-1和组合逻辑模块450-1。其中,触发器430-1、延时模块440-1和组合逻辑模块450-1的配置方式与图2A所示的实施例类似,其产生脉冲时钟信号的时序与图2B所示的时序类似,在此不再赘述。

与图2A所示的实施例不同的是,延时模块440-1由多个反相器和一个或多个数据选择器构成。其中,数据选择器被配置为使得多个反相器形成多条信号通路,并且每条信号通路中的反相器的数量均为奇数。在图4所示的实施例中,延时模块440-1由七个反相器和三个数据选择器构成,其形成四条信号通路,这四条信号通路分别包括一个、三个、五个以及七个反相器。因此,在图4所示的实施例中,通过切换三个数据选择器的状态,能够使得所产生的时钟脉冲信号具有四种不同的脉冲宽度(即,分别对应于一个、三个、五个以及七个反相器的延迟时间之和)。

由此,能够根据实际的脉冲宽度需求而灵活、便捷地改变数据选择器的状态,以使得流水线的工作频率尽可能高,从而提高芯片的工作效率。

图4中所示的延时模块440-1的配置仅作为示例。在其它实施例中,延时模块440-1可以由任何适当数量的反相器和数据选择器以任何适当的配置方式构成,以形成多条信号通路,使得每条信号通路中包括适当数量的反相器。在优选的实施例中,每条信号通路中的反相器的数量均不同。

根据本公开的运算电路可以以软件、硬件、软件与硬件的结合等各种适当的方式实现。在一种实现方式中,一种计算芯片可以包括一个或多个上述流水线时钟驱动电路。在一种实现方式中,一种算力板可以包括一个或多个计算芯片。在一种实现方式中,一种计算设备可以包括一个或多个算力板。多个算力板可以并行地执行计算任务。

在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。

还应理解,“包括/包含”一词在本文中使用时,说明存在所指出的特征、整体、步骤、操作、单元和/或组件,但是并不排除存在或增加一个或多个其它特征、整体、步骤、操作、单元和/或组件以及/或者它们的组合。

虽然已通过示例详细展示了本发明的一些具体实施例,但是本领域技术人员应当理解,上述示例仅意图是说明性的而不限制本发明的范围。本领域技术人员应该理解,上述实施例可以在不脱离本发明的范围和实质的情况下被修改。本发明的范围是通过所附的权利要求限定的。

14页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:电子装置控制方法、其电子装置和软件产品

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!