时钟电路、计算芯片、算力板和数字货币挖矿机

文档序号:1299917 发布日期:2020-08-07 浏览:25次 >En<

阅读说明:本技术 时钟电路、计算芯片、算力板和数字货币挖矿机 (Clock circuit, computing chip, computing board and digital currency mining machine ) 是由 李楠 杨作兴 范志军 郭海丰 许超 于 2020-06-04 设计创作,主要内容包括:本公开涉及时钟电路、计算芯片、算力板和数字货币挖矿机。所述时钟电路包括串联的M级时钟驱动电路,M是不小于2的整数,所述M级时钟驱动电路中的每一级时钟驱动电路的输入端和输出端之间都设置有串联的N个反相器,其中N是不小于3的奇数。该时钟电路能够提供性能良好的时钟信号。(The present disclosure relates to a clock circuit, a computing chip, a force plate and a digital currency miner. The clock circuit comprises M stages of clock driving circuits which are connected in series, M is an integer not less than 2, and N inverters which are connected in series are arranged between the input end and the output end of each stage of clock driving circuit in the M stages of clock driving circuits, wherein N is an odd number not less than 3. The clock circuit can provide a clock signal with good performance.)

时钟电路、计算芯片、算力板和数字货币挖矿机

技术领域

本公开涉及电子电路领域,并且更具体地涉及时钟电路以及应用该时钟电路的计算芯片、算力板和数字货币挖矿机。

背景技术

许多计算芯片包括流水线结构。流水线结构可以包括用于执行数据处理任务的级联(或者说,串联)的多级流水线电路。通常,多级流水线电路中的每一级流水线电路都需要一个时钟信号。可以使用时钟电路来提供所需的这些时钟信号。时钟电路可以包括多级时钟驱动电路。由时钟源提供的初始时钟信号可以沿着这些时钟驱动电路逐级传播并且被输出给各级流水线电路。

随着计算芯片的功能变得复杂,流水线电路的级别的数量也显著增加。例如,用于执行与虚拟数字加密货币(诸如比特币)相关联的数据处理任务的计算芯片可能具有数十或上百级流水线电路。在这种情况下,期望由时钟电路提供给各级流水线电路的时钟信号能够维持一定的信号幅度和占空比。同时还期望这样时钟电路具有简单的结构和低廉的成本。

发明内容

本公开的实施例旨在提供并应用性能良好的时钟信号。

根据本公开的第一方面,提供了一种时钟电路,所述时钟电路包括串联的M级时钟驱动电路,M是不小于2的整数,所述M级时钟驱动电路中的每一级时钟驱动电路的输入端和输出端之间都设置有串联的N个反相器,其中N是不小于3的奇数。

根据本公开的该方面,所述M级时钟驱动电路中的每一级时钟驱动电路的输出端为用于执行数据处理任务的流水线结构中的对应一级流水线电路提供时钟信号。

根据本公开的该方面,所述M级时钟驱动电路中的每一级时钟驱动电路的输出端与所述流水线结构中的对应一级流水线电路的时钟信号输入端之间设置有对应的负载平衡与相位调整模块,所述负载平衡与相位调整模块构成该级时钟驱动电路的输出端口电容负载的一部分,并且对该级时钟驱动电路输出的时钟信号的相位进行调整。

根据本公开的该方面,所述负载平衡和相位调整模块具有反相器与缓冲器,并且所述负载平衡和相位调整模块根据以下两种配置模式中的一种配置模式被配置:第一配置模式,其中所述反相器的输入端与所述缓冲器的输入端都被连接到对应一级时钟驱动电路的输出端,所述反相器的输出端被连接到流水线结构的对应一级流水线电路的时钟信号输入端,而所述缓冲器的输出端空载;或者第二配置模式,其中所述反相器的输入端与所述缓冲器的输入端都被连接到对应一级时钟驱动电路的输出端,所述缓冲器的输出端被连接到流水线结构的流水线电路的时钟信号输入端,而所述反相器的输出端空载。

根据本公开的该方面,所述M级时钟驱动电路中的相邻的两级时钟驱动电路所对应的两个负载平衡和相位调整模块各自具有选自所述第一配置模式和所述第二配置模式当中的不同配置模式。

根据本公开的该方面,所述M级时钟驱动电路中的每一级时钟驱动电路所对应的负载平衡和相位调整模块具有相同的输入端口电容。

根据本公开的该方面,所有负载平衡和相位调整模块中的反相器都具有相同的输入端口电容,并且所有负载平衡和相位调整模块中的缓冲器都具有相同的输入端口电容。

根据本公开的该方面,所述M级时钟驱动电路中的每一级时钟驱动电路中的N个反相器中的第K个反相器都具有相同的输入端口电容,其中1≤K≤N。

根据本公开的该方面,所述M级时钟驱动电路中的每一级时钟驱动电路中的N个反相器为同一型号的反相器。

根据本公开的该方面,第M级时钟驱动电路的输出端被连接到附加负载元件,所述附加负载元件与每一级时钟驱动电路中的N个反相器中的第一个反相器具有相同的输入端口电容。

根据本公开的该方面,所述M级时钟驱动电路中的第一级时钟驱动电路的输入端连接到外部时钟源以接收初始时钟信号。

根据本公开的该方面,所述初始时钟信号是占空比为50%的方波信号。

根据本公开的该方面,所述数据处理任务包括执行SHA-256算法。

根据本公开的该方面,所述流水线电路包括用于执行SHA-256算法的存储电路和运算电路中的至少一者。

根据本公开的第二方面,提供了一种计算芯片,所述计算芯片包括如前述任一方面所述的时钟电路。

根据本公开的第三方面,提供了一种算力板,包括如前一方面所述的计算芯片。

根据本公开的第四方面,提供了一种数字货币挖矿机,包括如前一方面所述的算力板。

根据本公开的各个方面能够以简单的电路结构和低廉的成本提供性能良好的时钟信号。通过以下参照附图对本公开的示例性实施例的详细描述,本公开的其它特征及其优点将会变得清楚。

附图说明

构成说明书的一部分的附图描述了本公开的实施例,并且连同说明书一起用于解释本公开的原理。

参照附图,根据下面的详细描述,可以更加清楚地理解本公开,其中:

图1示出了一种时钟电路的示意图。

图2A-图2C示出了与图1的时钟电路相关联的各个时钟信号的示例性波形图。

图3示出了根据本公开的实施例的一种时钟电路的示意图。

图4A-图4C示出了与图3的时钟电路相关联的各个时钟信号的示例性波形图。

图5A-5B示出了根据本公开的实施例的负载平衡和相位调整模块的两种示例性配置模式。

图6示出了可用于实现SHA-256算法的流水线结构的示意图。

图7示出了根据本公开的实施例的计算芯片的示意性框图。

图8示出了根据本公开的实施例的算力板的示意性框图。

图9示出了根据本公开的实施例的数字货币挖矿机的示意性框图。

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

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

具体实施方式

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

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

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

图1示出了一种时钟电路100的示意图。时钟电路100与时钟源200和流水线结构300耦接。时钟电路100被配置为从时钟源200接收初始时钟信号,并且为流水线结构300的各级流水线电路310、320、330提供时钟信号。

如图1所示,时钟电路100可以包括串联的多级时钟驱动电路110、120、130。由时钟源200提供的初始时钟信号可以被提供给第一级时钟驱动电路110。第一级时钟驱动电路110的输出时钟信号可以被提供给第二级时钟驱动电路120。第二级时钟驱动电路120的输出时钟信号可以被提供给第三级时钟驱动电路130。后一级时钟驱动电路基于来自前一级时钟驱动电路的时钟信号而生成新的时钟信号。时钟驱动电路110、120、130中的每一级时钟驱动电路的输出时钟信号还作为时钟信号被提供给流水线结构300中的对应一级流水线电路310、320、330。

在时钟电路100中,每一级时钟驱动电路被配置为包括偶数个反相器。这种配置是为了向流水线结构300中的各级流水线电路310、320、330提供彼此同相的时钟信号。在图1的示例中,时钟驱动电路110、120、130中的每一个时钟驱动电路包括2个反相器。这些反相器被示出为111、112、121、122、131、132。本领域技术人员知晓的是,反相器的输出信号相对于该反相器的输入信号具有相反的相位。即,响应于处于高电平的输入信号,反相器的输出信号将处于低电平;而响应于处于低电平的输入信号,反相器的输出信号将处于高电平。因此,当时钟驱动电路包括串联的偶数个反相器时,输入时钟信号经过偶数次反相而得到的输出时钟信号相对于该输入时钟信号是同相的。时钟电路100是由多个这样的时钟驱动电路串联而成的,因此时钟电路100的各级时钟驱动电路的各个输出时钟信号将是彼此同相的。

本公开的申请人认识到,尽管时钟电路100的各级时钟驱动电路能够输出彼此同相的输出时钟信号,但是这些输出时钟信号的占空比将随着时钟驱动电路的级数的推移而逐渐偏离初始时钟信号的占空比。下面将结合图2A-2C对此进行讨论。

图2A-图2C示出了与时钟电路100相关联的各个时钟信号的示例性波形图。图2A示出了提供给时钟驱动电路110的初始时钟信号CLK1的波形图,其是包括四个状态P1-P4的方波。图2B示出了由时钟驱动电路110输出并提供给时钟驱动电路120的时钟信号CLK2的波形图,其是包括与状态P1-P4对应的四个状态P1’-P4’的方波。图2C示出了由时钟驱动电路120输出并提供给时钟驱动电路130的时钟信号CLK3的波形图,其是包括与状态P1’-P4’对应的四个状态P1”-P4”的方波。本文中,两个时钟信号的两个状态之间的“对应”可以指一个时钟信号的一个状态是响应于另一个时钟信号的另一个状态而生成的。例如,时钟信号CLK2的状态P1’是响应于处于状态P1的时钟信号CLK1被输入到时钟驱动电路110而由时钟驱动电路110生成的。

在图2A的示例中,时钟信号CLK1是占空比为50%的方波。该方波包括两个时钟周期,其中第一时钟周期包括高电平状态P1和低电平状态P2,第二时钟周期包括高电平状态P3和低电平状态P4。本文中的占空比可以被描述为高电平状态的持续时间占据单个时钟周期的总持续时间的比例。在占空比为50%的方波中,P1、P2、P3、P4状态具有相同的持续时间,假设该持续时间为0.5个单位时间。

根据图1,时钟信号CLK1被提供给时钟驱动电路110。经过时钟驱动电路110将得到时钟信号CLK2。时钟信号CLK2的占空比将不同于时钟信号CLK1的占空比。这种差异可以由多种因素造成。例如,时钟驱动电路110中的各个反相器111、112不是绝对理想的,每个反相器的输出信号的上升时间(从低电平转换为高电平的时间)和下降时间(从高电平转换为低电平的时间)不会严格相同。这使得反相器的输入信号的高电平状态(或低电平状态)的持续时间在经过该反相器后将发生变化。另外,时钟驱动电路110的第一个反相器111的输出端口电容负载与反相器112相关联,而时钟驱动电路110的最后一个反相器112的输出端口电容负载与下一级时钟驱动电路120的第一个反相器121以及对应一级流水线电路310二者都相关联。这种负载不平衡也会造成反相器111的输出信号的高电平状态(或低电平状态)的持续时间在经过反相器112后发生变化。作为时钟驱动电路110整体影响的结果,时钟信号CLK1的高电平状态在经过时钟驱动电路110后将被延长(或者被缩短)。相应地,所得到的时钟信号CLK2的占空比将不同于时钟信号CLK1的占空比。

为了讨论的目的,可以假设时钟信号CLK1的高电平状态P1、P3在经过时钟驱动电路110后被延长,而低电平状态P2、P4在经过时钟驱动电路110后被缩短。如图2B所示,与高电平状态P1、P3对应的状态P1’、P3’的持续时间被延长为0.51个单位时间,而与低电平状态P2、P4对应的状态P2’、P4’的持续时间被缩短为0.49个单位时间。

由于时钟驱动电路110包括偶数个反相器,所以时钟信号CLK2的状态P1’-P4’与时钟信号CLK1的状态P1-P4是同相的,即与高电平状态P1、P3对应的状态P1’、P3’仍然是高电平状态,与低电平状态P2、P4对应的状态P2’、P4’仍然是低电平状态。可以计算得出时钟信号CLK2的占空比为51%,这大于初始时钟信号CLK1的占空比50%。

根据图1,由时钟驱动电路110输出的时钟信号CLK2又被提供给时钟驱动电路120。经过时钟驱动电路120将得到时钟信号CLK3。由于时钟驱动电路120具有与时钟驱动电路110相同的结构,故时钟驱动电路120对时钟信号CLK2的影响与时钟驱动电路110对时钟信号CLK1的影响相同,即,延长与输入信号中的高电平状态对应的状态并且缩短与输入信号中的低电平状态对应的状态。如图2C所示,时钟信号CLK3的与高电平状态P1’、P3’对应的状态P1”、P3”的持续时间被延长至0.52个单位时间,而与低电平状态P2’、P4’对应的状态P2”、P4”的持续时间被缩短至0.48个单位时间。

同样地,由于时钟驱动电路120包括偶数个反相器,所以时钟信号CLK3的状态P1”-P4”与时钟信号CLK2的状态P1’-P4’是同相的,即与高电平状态P1’、P3’对应的状态P1”、P3”仍然是高电平状态,并且与低电平状态P2’、P4’对应的状态P2”、P4”仍然是低电平状态。可以计算得出时钟信号CLK3的占空比增大到52%,这大于时钟信号CLK2的占空比51%,并且在占空比增大的方向上进一步偏离初始时钟信号CLK1。

由时钟驱动电路120输出的时钟信号CLK3被提供给时钟驱动电路130。基于类似的分析,时钟驱动电路130输出的时钟信号(未示出)的占空比将大于时钟信号CLK3,并且在占空比增大的方向上进一步偏离初始时钟信号CLK1。

尽管图2A-2C示出了时钟信号的高电平状态在经过每级时钟驱动电路后被延长的示例,但是在其他示例中,时钟信号的高电平状态在经过每级时钟驱动电路后也可能被缩短。在该情况下,由各级时钟驱动电路输出的时钟信号将在占空比减小(而不是增大)的方向上逐渐偏离初始时钟信号。

由以上分析可知,对于时钟电路100,随着时钟驱动电路的级数的增加,时钟驱动电路输出的时钟信号的占空比将越来越偏离初始时钟信号的占空比。即,占空比的偏离随着时钟驱动电路的级数的增加而累积。即使每一级时钟驱动电路的占空比相对于上一级驱动电路的占空比的偏离是微小的,在经过数十级或上百级时钟驱动电路之后,累积的偏离也是显著的。累积的偏离使得时钟电路中靠后的时钟驱动电路输出的时钟信号的占空比显著不同于靠前的时钟驱动电路输出的时钟信号的占空比。

为了维持稳定的占空比,常规的方法可以在每一级时钟驱动电路中增加占空比检测电路和调整电路。占空比检测电路可以被配置为检测时钟信号的占空比,并且在占空比发生一定的偏移时激活调整电路。占空比调整电路可以对时钟信号进行调整以减小占空比的偏移。然而,这种占空比检测电路和调整电路常常是复杂的,其具有较高的设计成本和制造成本,并且会占据较大的面积。

本公开的申请人认识到,在每一级时钟驱动电路中设置奇数个反相器,可以有利地维持时钟信号的占空比,而不会显著增加时钟电路的复杂度。根据本公开的实施例,时钟电路可以包括串联的M级时钟驱动电路,其中M可以是不小于2的整数。时钟电路的M级时钟驱动电路中的每一级时钟驱动电路的输入端和输出端之间可以都设置有串联的N个反相器,其中N是不小于3的奇数。

图3示出了根据本公开的实施例的时钟电路1000的示意图。为了简化描述,图1示出的时钟电路1000包括三个时钟驱动电路1100、1200、1300。这三个时钟驱动电路1100、1200、1300是串联的。时钟电路1000可以与时钟源2000耦接,并且被配置为从时钟源2000接收初始时钟信号。由时钟源2000提供的初始时钟信号可以被提供给第一级时钟驱动电路1100。第一级时钟驱动电路1100的输出时钟信号可以被提供给第二级时钟驱动电路1200。第二级时钟驱动电路1200的输出时钟信号可以被提供给第三级时钟驱动电路1300。

应当注意的是,尽管图3中示出了串联的3个时钟驱动电路,但是时钟电路1000可以包括更多或更少的时钟驱动电路,例如2个、10个、50个或者大于100个时钟驱动电路。图3中以带有省略号的框表示接收时钟驱动电路1300的输出时钟信号的附加模块1400,该附加模块1400可以表示未具体示出的多个时钟驱动电路或者可以表示尾端负载元件。

时钟电路1000的时钟驱动电路1100、1200、1300中的每一个时钟驱动电路被示出为包括3个(N=3)串联的反相器。具体地,时钟驱动电路1100包括依次串联的反相器1110、1120、1130,时钟驱动电路1200包括依次串联的反相器1210、1220、1230,并且时钟驱动电路1300包括依次串联的反相器1310、1320、1330。如果附加模块1400表示未具体示出的多个时钟驱动电路,则该多个时钟驱动电路中的每一个时钟驱动电路也将包括3个串联的反相器。

应当注意的是,尽管图3中示出每一级时钟驱动电路可以包括3个串联的反相器,但是在其他实施例中,每一级时钟驱动电路可以包括更多个串联的反相器,只要反相器的数量为奇数并且每一级时钟驱动电路的反相器的数量相等。例如,每一级时钟驱动电路可以包括串联的5个、7个、9个或更多个反相器。使用较多的反相器可以是有益的。因为反相器是有源器件,所以越多的反相器越能够保证时钟信号在传输经过数十级时钟驱动电路后仍然维持一定的信号幅度。然而,较多的反相器也可能增加功耗和占用面积。可能需要在反相器的数量与功耗和占用面积之间进行折衷。优选的是每一级时钟驱动电路包括3个串联的反相器。

本公开的申请人认识到,在每一级时钟驱动电路中设置奇数个反相器,可以有利地维持时钟信号的占空比。下面将结合图4A-4C对此进行讨论。

图4A-图4C示出了与时钟电路1000相关联的各个时钟信号的示例性波形图。图4A示出了提供给时钟驱动电路1100的时钟信号CLK4的波形图,其是包括四个状态P1-P4的方波。图4B示出了由时钟驱动电路1100输出并提供给时钟驱动电路1200的时钟信号CLK5的波形图,其是包括与状态P1-P4对应的四个状态P1’-P4’的方波。图4C示出了由时钟驱动电路1200输出并提供给时钟驱动电路1300的时钟信号CLK6的波形图,其是包括与状态P1’-P4’对应的四个状态P1”-P4”的方波。

在图4A中,时钟信号CLK4是占空比为50%的方波。该方波包括两个时钟周期,其中第一时钟周期包括高电平状态P1和低电平状态P2,第二时钟周期包括高电平状态P3和低电平状态P4。在占空比为50%的方波中,P1、P2、P3、P4状态具有相同的持续时间,假设该持续时间为0.5个单位时间。时钟信号CLK4可以类似于关于图2A描述的时钟信号CLK1。

根据图3,时钟信号CLK4被提供给时钟驱动电路1100。经过时钟驱动电路1100将得到时钟信号CLK5。如前面所讨论的,由于多种不理想的因素,时钟信号CLK4的高电平状态在经过时钟驱动电路1100后将被延长或者被缩短。与前面关于图2A-图2C的讨论中所采用的假设一致,这里假设时钟信号CLK4的高电平状态在经过时钟驱动电路1100后将被延长。如图4B所示,时钟信号CLK5的与高电平状态P1、P3对应的状态P1’、P3’的持续时间被延长为0.51个单位时间,而与低电平状态P2、P4对应的状态P2’、P4’的持续时间被缩短为0.49个单位时间。

注意到,由于时钟驱动电路1100包括奇数个反相器,所以时钟信号CLK5的状态P1’-P4’与时钟信号CLK4的状态P1-P4是反相的,即与高电平状态P1、P3对应的状态P1’、P3’转变为低电平状态,而与低电平状态P2、P4对应的状态P2’、P4’转变为高电平状态。可以计算得到时钟信号CLK5的占空比为49%,其相对于初始时钟信号CLK4的占空比50%减小。

根据图3,由时钟驱动电路1100输出的时钟信号CLK5被提供给时钟驱动电路1200。经过时钟驱动电路1200将得到时钟信号CLK6。时钟驱动电路1200具有与时钟驱动电路1100相同的结构,故时钟驱动电路1200将对时钟信号CLK5产生的影响与时钟驱动电路1100对时钟信号CLK4的影响是相同的——即,延长与输入信号中的高电平状态对应的状态,并且缩短与输入信号中的低电平状态对应的状态。相应地,如图4C所示,时钟信号CLK6的与高电平状态P2’、P4’对应的状态P2”、P4”的持续时间被延长,从状态P2’、P4’的0.49个单位时间延长至0.5个单位时间。并且,与低电平状态P1’、P3’对应的状态P1”、P3”的持续时间被缩短,从状态P1’、P3’的0.51个单位时间缩短为0.5个单位时间。

注意到,由于时钟驱动电路1200,包括奇数个反相器,所以时钟信号CLK6的状态P1”-P4”与时钟信号CLK5的状态P1’-P4’是反相的,即与低电平状态P1’、P3’对应的状态P1”、P3”转变为高电平状态,并且与高电平状态P2’、P4’对应的状态P2”、P4”转变为低电平状态。可以计算得到时钟信号CLK6占空比为50%,其相对于时钟信号CLK5的占空比49%增大。

基于以上分析可知,在图3所示的时钟电路1000中,时钟信号CLK5的占空比相对于时钟信号CLK4减小,而时钟信号CLK6的占空比相对于时钟信号CLK5增大。时钟信号CLK6的占空比恢复到时钟信号CLK4的占空比。这是由(i)每级时钟驱动电路对时钟信号的影响的同一性以及(ii)输入信号和输出信号之间的反相性共同造成的。在这种情况下,相邻两级时钟驱动电路所造成的占空比的偏离可以在一定程度上互相抵消而不是累积。这使得每一级时钟驱动电路输出的时钟信号的占空比总是在初始时钟信号的占空比附近波动。因此,即使时钟电路1000包含数十级乃至上百级时钟驱动电路,靠后的时钟驱动电路的输出时钟信号的占空比也不会显著偏离靠前的时钟驱动电路的输出时钟信号的占空比。

另外注意到,时钟电路1000没有使用复杂的占空比检测电路和调整电路,而仅仅是使用了特定数量的(即,奇数个)反相器。反相器是简单的电子元件,其复杂度和成本要远远低于占空比检测电路和调整电路。因此,时钟电路1000可以以简单的结构和低廉的成本提供具有稳定占空比的时钟信号。

应当理解,图4A-4C中给出的各个时钟信号仅仅是示例性的。在替代实施例中,时钟信号可以具有不同的属性或参数。例如,提供给时钟驱动电路1100的初始时钟信号CLK4的占空比可以不限于50%,而是可以更小或者更大。并且,各级时钟驱动电路也可能缩短与输入信号中的高电平状态对应的状态并且延长与输入信号中的低电平状态对应的状态。此外,各个状态被缩短或延长的幅度可以不限于前面给出的具体数值。图4A-4C的描述仅仅是为了更好地阐述本公开的实施例的基本原理而不是要进行限制。可以理解,即使时钟信号采用了不同的属性或参数,也不违背图4A-4C所体现的基本原理。

根据本公开的实施例,时钟电路1000的M级时钟驱动电路中的每一级时钟驱动电路可以为用于执行数据处理任务的流水线结构中的对应一级流水线电路提供时钟信号。

返回到图3,时钟驱动电路1100的输出端可以耦接到流水线结构3000中的对应一级流水线电路3100,时钟驱动电路1200的输出端可以耦接到流水线结构3000中的对应一级流水线电路3200,并且时钟驱动电路1300的输出端可以耦接到流水线结构3000中的对应一级流水线电路3300。流水线电路3100、3200、3300可以在相应的时钟信号的驱动下执行各种数据处理任务。

根据本公开的实施例,时钟电路1000的M级时钟驱动电路中的每一级时钟驱动电路的输出端与流水线结构3000中的对应一级流水线电路的时钟信号输入端之间可以可选地设置有对应的负载平衡与相位调整模块。如图3所示,时钟驱动电路1100与对应一级流水线电路3100之间可以设置有负载平衡与相位调整模块4000-1。时钟驱动电路1200与对应一级流水线电路3200之间可以设置有负载平衡与相位调整模块4000-2,并且时钟驱动电路1300与对应一级流水线电路3300之间可以设置有负载平衡与相位调整模块4000-3。

应当注意的是,各个负载平衡与相位调整模块4000在图3中被示出为时钟驱动电路1000内的虚线框,这表明负载平衡与相位调整模块4000是可选的。在一些实施例中,负载平衡与相位调整模块4000可以在时钟电路1000内部。在另一些实施例中,负载平衡与相位调整模块4000可以在时钟电路1000外部。

根据本公开的实施例,负载平衡与相位调整模块可以构成对应一级时钟驱动电路的输出端口电容负载的一部分。例如,负载平衡与相位调整模块4000-1可以构成时钟驱动电路1100(具体地,反相器1130)的输出端口电容负载的一部分。并且,负载平衡与相位调整模块4000-1将时钟驱动电路1100与对应一级流水线电路3100隔开,从而使得流水线电路3100对时钟驱动电路1100的输出端口电容负载几乎没有影响。这种负载隔离可以是有利的,它使得流水线结构3100的状态不会影响到时钟驱动电路1100。时钟驱动电路1100的输出端口电容负载主要与负载平衡与相位调整模块4000-1以及下一级时钟驱动电路1200(具体地,反相器1210)二者的输入端口电容相关联。类似地,负载平衡与相位调整模块4000-2与负载平衡与相位调整模块4000-3可以分别构成对应一级时钟驱动电路1200、1300的输出端口电容负载的一部分。

应当注意,本文中“电子元件具有输入端口电容c”是指在该电子元件的输入端连接到另一电子元件的输出端时对该另一电子元件表现为具有电容值c的负载,而“电子元件具有输出端口电容负载c”是指与该电子元件的输出端连接的其他各个电子元件对于该电子元件整体表现为电容值c的负载。

由于每一级时钟驱动电路使用了奇数个反相器,所以相邻两级时钟驱动电路所输出的时钟信号将是反相的(例如,CLK4与CLK5,或者CLK5与CLK6)。某些流水线结构允许使用相位不一致的多个时钟信号。然而,在一些特定流水线结构中,期望各级流水线电路所使用的时钟信号是同相的。根据本公开的实施例,负载平衡与相位调整模块可以被配置为对对应一级时钟驱动电路输出的时钟信号的相位进行调整,以确保提供给各级流水线电路的时钟信号是同相的。经过相位调整的时钟信号可以被输出给对应一级时钟驱动电路。

为了向各级流水线电路提供同相的时钟信号,可以对负载平衡与相位调整模块4000-1、4000-2、4000-3进行配置。作为一个示例,负载平衡与相位调整模块4000-2可以被配置为对时钟驱动电路1200的输出时钟信号(例如,CLK5)进行反相,并将反相后的时钟信号提供给流水线电路3200。负载平衡与相位调整模块4000-1和4000-3可以不对输出时钟信号进行反相。作为结果,提供给流水线电路3100、3200、3300的时钟信号将是同相的。作为替代的示例,负载平衡与相位调整模块4000-1和4000-3可以被配置为分别对时钟驱动电路1100和1300的输出时钟信号(例如,CLK4和CLK6)进行反相,而负载平衡与相位调整模块4000-2可以不对输出时钟信号进行反相。作为结果,提供给流水线电路3100、3200、3300的时钟信号将是同相的。应当注意的是,各个负载平衡与相位调整模块4000仅对将被提供给流水线电路的时钟信号进行调整,而不会影响提供给下一级时钟驱动电路的时钟信号。

为了实现前述功能,负载平衡与相位调整模块4000可以具有各种配置。图5A-5B示出了根据本公开的实施例的负载平衡和相位调整模块的两种示例性配置模式。

在如图5A所示的第一配置模式中,负载平衡与相位调整模块4000可以具有反相器4300与缓冲器4400。反相器4300的输入端与缓冲器4400的输入端都被连接到负载平衡与相位调整模块4000的输入端4100。输入端4100可以连接到对应一级时钟驱动电路的输出端,从而接收输出时钟信号。反相器4300的输出端被连接到负载平衡与相位调整模块4000的输出端4200,而缓冲器4400的输出端空载。“空载”是指电路单元的输出端悬空而没有连接到其它电路单元。输出端4200可以被连接到对应一级流水线电路的时钟信号输入端。在这种配置模式下,负载平衡与相位调整模块4000的输入端口电容取决于反相器4300与缓冲器4400二者。并且,负载平衡与相位调整模块4000的输出信号将是其输入信号的反相。

在如图5B所示的第二配置模式中,负载平衡与相位调整模块4000可以具有反相器4300与缓冲器4400。反相器4300的输入端与缓冲器4400的输入端都被连接到负载平衡与相位调整模块4000的输入端4100。输入端4100可以连接到对应一级时钟驱动电路的输出端,从而接收输出时钟信号。缓冲器4400的输出端被连接到负载平衡与相位调整模块4000的输出端4200,而反相器4300的输出端空载。输出端4200可以被连接到对应一级流水线电路的时钟信号输入端。在这种配置模式下,负载平衡与相位调整模块4000的输入端口电容也取决于反相器4300与缓冲器4400二者。但是,由于缓冲器不对输入信号进行反相,所以负载平衡与相位调整模块4000的输出信号与其输入信号将是同相的。

在图5A-5B所示的两种配置模式中,负载平衡与相位调整模块4000使用了反相器与缓冲器。反相器与缓冲器都是简单的基本电路元件,它们具有成本低廉、易于使用的优点。并且,负载平衡与相位调整模块4000具有极为简单的电路结构,其不会显著增加电路的成本和复杂性。

根据本公开的实施例,时钟电路1000的M级时钟驱动电路中的相邻的两级时钟驱动电路所对应的两个负载平衡和相位调整模块可以各自具有选自第一配置模式和第二配置模式当中的不同配置模式。作为一个示例,与时钟驱动电路1200对应的负载平衡与相位调整模块4000-2可以具有第一配置模式,分别与时钟驱动电路1100和1300对应的负载平衡与相位调整模块4000-1和4000-3可以具有第二配置模式。作为替代的示例,负载平衡与相位调整模块4000-2可以具有第二配置模式,而负载平衡与相位调整模块4000-1和4000-3可以具有第一配置模式。通过这种方式,可以确保提供给流水线电路3100、3200、3300的时钟信号将是彼此同相的。

此外,为了使得相邻两级时钟驱动电路对时钟信号的占空比的影响能够尽可能地相互抵消,时钟电路1000的各级时钟驱动电路的电气结构可以尽可能地相同。相应地,可以以特定的方式来选用与时钟电路1000相关联的电子元件。

根据本公开的实施例,时钟电路的M级时钟驱动电路中的每一级时钟驱动电路中的N个反相器中的第K个反相器可以具有相同的输入端口电容,其中1≤K≤N。具体地,图3中的各级时钟驱动电路中的第一个反相器1110、1210、1310可以具有相同的输入端口电容c1,第二个反相器1120、1220、1320可以具有相同的输入端口电容c2,并且第三个反相器1130、1230、1330可以具有相同的输入端口电容c3。在这种配置下,各级时钟驱动电路可以具有相同电气结构,并因此具有相同的输入端口电容。优选地,反相器1110、1120、1130、1210、1220、1230、1310、1320、1330可以选用相同的反相器,例如是同一型号的反相器器件,这进一步降低了时钟电路的复杂性。

根据本公开的实施例,时钟电路的M级时钟驱动电路中的每一级时钟驱动电路所对应的负载平衡和相位调整模块可以具有相同的输入端口电容。具体地,负载平衡和相位调整模块4000-1、4000-2、4000-3可以具有相同的输入端口电容。优选地,所有负载平衡和相位调整模块4000中的反相器可以具有相同的输入端口电容,并且所有负载平衡和相位调整模块4000中的缓冲器都具有相同的输入端口电容。具体地,无论采取图5A-5B中的哪种配置模式,负载平衡和相位调整模块的反相器4300可以具有指定的输入端口电容c4,并且缓冲器4400可以具有指定的输入端口电容c5。反相器4300可以是与反相器1110、1120、1130、1210、1220、1230、1310、1320、1330相同或者不同的反相器。

附加地,考虑到M级时钟驱动电路中的最后一级时钟驱动电路不再连接到下一级时钟驱动电路,有必要对该最后一级时钟驱动电路的输出端口电容负载进行特殊的配置,以使得它与其它时钟驱动电路具有相同的输出端口电容负载。为此,第M级时钟驱动电路的输出端可以被连接到附加负载元件,该附加负载元件与每一级时钟驱动电路中的N个反相器中的第一个反相器具有相同的输入端口电容。例如,假如图3所示的时钟电路1000仅包括3个时钟驱动电路(M=3),则附加模块1400可以具有与反相器1110、1210、1310相同的输入端口电容c1。这保证了时钟驱动电路1300具有与时钟驱动电路1100、1200相同的输出端口电容负载。

根据本公开的一个实施例,为时钟电路1000提供初始时钟信号的时钟源2000可以位于时钟电路1000的外部。时钟电路1000的M级时钟驱动电路中的第一级时钟驱动电路的输入端可以连接到时钟源以接收初始时钟信号。根据本公开的另一个实施例,时钟源2000也可以作为时钟电路1000的一部分而位于时钟电路1000的内部。时钟源2000是能够提供时钟信号的任何部件,包括产生原始时钟波形的振荡器,或者被时钟波形驱动而输出时钟信号的另一时钟电路。

根据本公开的实施例,由时钟源2000提供给时钟电路1000的初始时钟信号可以是具有特定占空比的方波时钟信号。时钟电路1000的各级时钟驱动电路输出的时钟信号的占空比将维持在该特定占空比附近。也就是说,时钟电路1000的各级时钟驱动电路能够将输出时钟信号的占空比维持在初始时钟信号的占空比附近。优选地,该特定占空比为50%。

根据本公开的实施例的时钟电路1000可以与流水线结构3000结合使用。在时钟电路1000提供的各个时钟信号的驱动下,流水线结构3000的各级流水线电路可以执行各种数据处理任务。这里的数据处理任务包括但不限于数据存储、数据运算等等。

根据本公开的实施例,由流水线结构3000执行的数据处理任务包括执行散列算法。具体地,该散列算法可以是SHA-256算法。

散列算法是一种将可变长度的数据作为输入并产生固定长度的散列值作为输出的算法。在散列算法中,任意长度的输入数据被填充,以使得填充后的数据长度为某固定长度(例如512位)的整数倍,即,使得填充后的数据可以划分为多个具有上述固定长度的数据块。填充位的内容包括原始数据的位长度信息。接着散列算法会对各个固定长度的数据块分别进行运算处理,例如包括数据扩展和\或压缩等操作的多轮运算。当所有数据块都被使用以后,得到最终的固定长度的散列值。

自1993年以来,美国标准与技术研究所先后设计并发布了多个版本的安全散列算法SHA(Secure Hash Algorithm),SHA-256正是其中一种散列长度为256位的安全散列算法。SHA-256算法是在与虚拟加密数字货币(例如,比特币)相关联的计算中通常采用的散列算法之一。例如,比特币是基于SHA-256算法的工作量证明POW(proof of work)。使用矿机来进行比特币挖矿的核心是根据矿机计算SHA-256的运算能力来获得比特币奖励。

对于包括多轮运算的散列算法(例如SHA-256算法)而言,可以使用具有多个运算级的流水线结构来实现高速运算。例如,在执行SHA-256算法时,由于对于每个512位的数据块要进行64轮重复运算,因此可以采用64级的流水线结构来并行运算64组数据。

图6示出了可用于实现SHA-256算法的流水线结构6000的示意图。流水线结构6000可以是前面描述的流水线结构3000的具体用例。如图6所示,以虚线划分了流水线结构6000中的第t运算级、第t+1运算级和第t+2运算级。每一运算级可以包括用于存储中间值的多个寄存器A到H和分别用于存储扩展数据的多个寄存器R0至R15。此外,每一运算级也可以包括运算逻辑。每个运算级可以通过对应的一级流水线电路来实现。该流水线电路可以包括用于实现各个寄存器的存储电路以及用于实现运算逻辑的运算电路等等。在执行SHA-256算法的过程中,流水线结构6000中的每个流水线电路中的寄存器基于相应的时钟信号来更新存储在其中的数据。由于流水线结构6000所包含的级数较多,所以它对各个时钟信号的占空比的要求十分严格。可以由前面描述的时钟电路1000来为流水线结构6000提供时钟信号。时钟电路1000所提供的各个时钟信号具有稳定的占空比,因此特别适用于用于实现SHA-256算法的流水线结构6000。

根据本公开的实施例的时钟电路可以被包括在各种设备中,这些设备包括但不限于计算芯片、算力板、数字货币挖矿机等。由于采用了根据本公开的实施例的时钟电路,所以这些设备能够以低廉的成本和简单的电路结构获得具有稳定占空比的多个时钟信号,从而保证了这些设备在执行具体计算任务时的性能。

图7示出了根据本公开的实施例的计算芯片7000的示意性框图。计算芯片7000可以包括时钟电路7100、时钟源7200和流水线结构7300。时钟电路7100可以是前面描述的时钟电路1000的具体实施例。时钟源7200可以是前面描述的时钟源2000的具体实施例。流水线结构7300可以是前面描述的流水线结构3000或6000的具体实施例。时钟电路7100可以与时钟源7200和流水线结构7300耦接。时钟电路7100可以从时钟源7200接收初始时钟信号并相应地生成多个时钟信号。该多个时钟信号可以被提供给流水线结构7300以执行特定计算任务。该特定计算任务例如可以是执行SHA-256算法。相应地,计算芯片7000可以被配置为比特币芯片。在图7中,时钟源7200以虚线框示出,表示该时钟源7200也可以位于计算芯片7000的外部。

图8示出了根据本公开的实施例的算力板8000的示意性框图。算力板8000可以包括一个或多个计算芯片8100。计算芯片8100可以是计算芯片7000的具体实施例。多个计算芯片8100可以并行地执行计算任务。

图9示出了根据本公开的实施例的数字货币挖矿机9000的示意性框图。数字货币挖矿机9000可以被配置为执行SHA-256算法从而获得工作量证明POW(proof of work),并进一步基于该工作量证明而获得数字货币。该数字货币可以是比特币。数字货币挖矿机9000可以包括一个或多个算力板9100。算力板9100可以是算力板8000的具体实施例。多个算力板9100可以并行地执行计算任务,例如执行SHA-256算法。

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

在说明书及权利要求中的词语“前”、“后”、“顶”、“底”、“之上”、“之下”等,如果存在的话,用于描述性的目的而并不一定用于描述不变的相对位置。应当理解,这样使用的词语在适当的情况下是可互换的,使得在此所描述的本公开的实施例,例如,能够在与在此所示出的或另外描述的那些取向不同的其他取向上操作。

如在此所使用的,词语“示例性的”意指“用作示例、实例或说明”,而不是作为将被精确复制的“模型”。在此示例性描述的任意实现方式并不一定要被解释为比其它实现方式优选的或有利的。而且,本公开不受在上述技术领域、背景技术、发明内容或具体实施方式中所给出的任何所表述的或所暗示的理论所限定。

如在此所使用的,词语“基本上”意指包含由设计或制造的缺陷、器件或元件的容差、环境影响和/或其它因素所致的任意微小的变化。词语“基本上”还允许由寄生效应、噪音以及可能存在于实际的实现方式中的其它实际考虑因素所致的与完美的或理想的情形之间的差异。

上述描述可以指示被“连接”或“耦合”在一起的元件或节点或特征。如在此所使用的,除非另外明确说明,“连接”意指一个元件/节点/特征与另一种元件/节点/特征在电学上、机械上、逻辑上或以其它方式直接地连接(或者直接通信)。类似地,除非另外明确说明,“耦合”意指一个元件/节点/特征可以与另一元件/节点/特征以直接的或间接的方式在机械上、电学上、逻辑上或以其它方式连结以允许相互作用,即使这两个特征可能并没有直接连接也是如此。也就是说,“耦合”意图包含元件或其它特征的直接连结和间接连结,包括利用一个或多个中间元件的连接。

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

本领域技术人员应当意识到,在上述操作之间的边界仅仅是说明性的。多个操作可以结合成单个操作,单个操作可以分布于附加的操作中,并且操作可以在时间上至少部分重叠地执行。而且,另选的实施例可以包括特定操作的多个实例,并且在其他各种实施例中可以改变操作顺序。但是,其它的修改、变化和替换同样是可能的。因此,本说明书和附图应当被看作是说明性的,而非限制性的。

虽然已经通过示例对本公开的一些特定实施例进行了详细说明,但是本领域的技术人员应该理解,以上示例仅是为了进行说明,而不是为了限制本公开的范围。在此公开的各实施例可以任意组合,而不脱离本公开的精神和范围。本领域的技术人员还应理解,可以对实施例进行多种修改而不脱离本公开的范围和精神。本公开的范围由所附权利要求来限定。

22页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:晶体时钟失效侦测系统及其侦测方法

网友询问留言

已有0条留言

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

精彩留言,会给你点赞!

技术分类