WO2022105252A1 - 运算核、计算芯片和数据处理设备 - Google Patents

运算核、计算芯片和数据处理设备 Download PDF

Info

Publication number
WO2022105252A1
WO2022105252A1 PCT/CN2021/104624 CN2021104624W WO2022105252A1 WO 2022105252 A1 WO2022105252 A1 WO 2022105252A1 CN 2021104624 W CN2021104624 W CN 2021104624W WO 2022105252 A1 WO2022105252 A1 WO 2022105252A1
Authority
WO
WIPO (PCT)
Prior art keywords
clock
module
stage
clock signal
computing
Prior art date
Application number
PCT/CN2021/104624
Other languages
English (en)
French (fr)
Inventor
范志军
薛可
许超
杨作兴
Original Assignee
深圳比特微电子科技有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 深圳比特微电子科技有限公司 filed Critical 深圳比特微电子科技有限公司
Publication of WO2022105252A1 publication Critical patent/WO2022105252A1/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/06Clock generators producing several clock signals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline, look ahead using instruction pipelines
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials

Abstract

本公开涉及运算核、计算芯片和数据处理设备。一种运算核包括被配置为接收数据块的输入模块、被配置为对接收到的数据块进行哈希运算的运算模块和时钟模块。运算模块包括:第一哈希引擎,包括第一多个运算级,第一多个运算级以流水线结构布置使得基于数据块的数据信号沿着第一多个运算级依次传递;以及第二哈希引擎,包括第二多个运算级,第二多个运算级以流水线结构布置使得从第一哈希引擎接收的数据信号沿着第二多个运算级依次传递。时钟模块被配置为向第一哈希引擎和第二哈希引擎提供时钟信号,其中,第一哈希引擎内的时钟信号的传递方向与第二哈希引擎内的时钟信号的传递方向相反。

Description

运算核、计算芯片和数据处理设备
相关申请的交叉引用
本申请是以CN申请号为202011320665.2,申请日为2020年11月23日的申请为基础,并主张其优先权,该CN申请的公开内容在此作为整体引入本申请中。
技术领域
本公开涉及用于进行哈希运算的运算核,并且更具体地,涉及运算核、计算芯片和数据处理设备(例如,加密货币矿机)。
背景技术
比特币系统是最早提出并且目前得到最广泛认可的区块链系统。比特币系统的主要作用之一是用作去中心化的公共记账本,其可以记录各种金融交易。之所以称为“去中心化”,是因为比特币不是由单一的中心化的货币机构发行的,而是依据特定算法通过运算来产生的。比特币系统使用计算机网络的各节点构成的分布式数据库来确认并记录所有的交易行为,并使用密码学设计来确保安全性。
目前比特币协议采用安全哈希算法SHA(Secure Hash Algorithm)-256。SHA系列算法是美国标准与技术研究所发布的,其中SHA-256算法是一种哈希长度为256位的安全哈希算法。
根据比特币协议,第一个成功确定候选区块的工作量证明POW(proof of work)的节点有权将该区块添加到区块链,并有权生成新的加密货币单元作为奖励。这个过程就被称为“挖矿”,执行比特币算法的节点被称为挖矿机或矿机。
使用专用集成电路(ASIC)执行挖矿过程的矿机是指使用ASIC芯片作为核心运算零件的矿机。这种ASIC芯片简单而高效,例如比特币采用SHA-256算法,那么比特币ASIC矿机芯片可以被设计用于执行SHA-256算法。ASIC矿机在算力上相比于其它类型的矿机具有很大优势。对于矿机计算芯片而言,芯片尺寸决定芯片成本,芯片运行速度决定矿机运行速度即算力,芯片功耗决定耗电程度即挖矿成本。因此,设计ASIC矿机的关键在于改善芯片尺寸、芯片运行速度和芯片功耗。
发明内容
根据本公开的第一方面,提供了一种运算核,包括:输入模块,被配置为接收数据块;运算模块,被配置为对接收到的数据块进行哈希运算,所述运算模块包括第一哈希引擎和第二哈希引擎,第一哈希引擎包括第一多个运算级,所述第一多个运算级以流水线结构布置使得基于所述数据块的数据信号沿着所述第一多个运算级依次传递,第二哈希引擎包括第二多个运算级,所述第二多个运算级以流水线结构布置使得从所述第一哈希引擎接收的数据信号沿着所述第二多个运算级依次传递,其中所述第一多个运算级和所述第二多个运算级中的每个运算级对从前一运算级接收的数据信号进行运算并将经该运算级运算的数据信号提供给后一运算级;以及时钟模块,被配置为向所述第一哈希引擎和所述第二哈希引擎提供时钟信号,其中,所述第一哈希引擎内的时钟信号的传递方向与所述第二哈希引擎内的时钟信号的传递方向相反。
根据本公开的第二方面,提供了一种计算芯片,包括一个或多个如前所述的运算核。
根据本公开的第三方面,提供了一种计算芯片,包括多个如前所述的运算核,所述多个所述运算核被布置在多个列中,每列运算核的时钟模块经由共同的时钟信道接收时钟信号。
根据本公开的第四方面,提供了一种数据处理设备,包括一个或多个如前所述的计算芯片。
通过以下参照附图对本公开的示例性实施例的详细描述,本公开的其它特征及其优点将会变得更为清楚。
附图说明
所包括的附图用于说明性目的,并且仅用于提供本文所公开的发明性装置以及将其应用到计算设备的方法的可能结构和布置的示例。这些附图决不限制本领域的技术人员在不脱离实施方案的实质和范围的前提下可对实施方案进行的在形式和细节方面的任何更改。所述实施方案通过下面结合附图的具体描述将更易于理解,其中类似的附图标记表示类似的结构元件。
图1至图4是根据本公开的一些实施例的运算核的示意图。
图5A至图5C是根据本公开的另外一些实施例的运算核的示意图。
图6A至图6D是根据本公开的一些实施例的具有竖直结构的运算核的示意图。
图7是根据本公开的一些实施例的计算芯片的示意图。
图8A是根据本公开的另外一些实施例的计算芯片的示意图。
图8B是根据本公开的另外一些实施例的包括具有竖直结构的运算核的计算芯片的示意图。
图8C是用于向图8B所示的计算芯片中的具有竖直结构的运算核分配时钟信号的示意性布置图。
图9A至图9C是根据本公开的另外一些实施例的计算芯片的示意图。
图9D是用于向图9C所示的计算芯片中的运算核分配时钟信号的示意性布置图。
图9E是根据本公开的另外一些实施例的包括具有竖直结构的运算核的计算芯片的示意图。
图9F是用于向图9E所示的计算芯片中的具有竖直结构的运算核分配时钟信号的示意性布置图。
图9G是用于向根据本公开的另外一些实施例的计算芯片中的运算核分配时钟信号的示意性布置图。
图10是用于执行SHA-256算法的示例性流水线结构的示意图。
注意,在以下说明的实施方式中,有时在不同的附图之间共同使用同一附图标记来表示相同部分或具有相同功能的部分,而省略其重复说明。在本说明书中,使用相似的标号和字母表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
为了便于理解,在附图等中所示的各结构的位置、尺寸及范围等有时不表示实际的位置、尺寸及范围等。因此,所公开的发明并不限于附图等所公开的位置、尺寸及范围等。此外,附图不必按比例绘制,一些特征可能被放大以示出具体组件的细节。
具体实施方式
现在将参照附图来详细描述本公开的各种示例性实施例。应当注意,除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。也就是说,本文中的哈希引擎是以示例性的方式示出,来说明本公开中的电路的不同实施例,而并非意图限制。本领域的技术人员将会理解,它们仅仅说明可以用来实施本公开的示例性方式,而不是穷尽的方式。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情 况下,所述技术、方法和设备应当被视为授权说明书的一部分。
矿机的计算芯片通常包括顶层模块和运算核。顶层模块用于执行通信功能、控制功能、输入输出IO功能、时钟PLL功能等功能。运算核用于核心的计算运算。运算核从顶层模块得到运算任务,并将运算结果反馈给顶层模块。对于比特币挖矿而言,完整的计算通常需要两轮64次循环(执行两次SHA-256算法,这通常被称为双哈希(double hash)),即128拍运算。一些优化方法可以减少若干拍(例如,6拍)运算。在根据本公开的实施例中,主要以运算核执行两次SHA-256算法的运算(即128拍运算)为例进行说明,但是本领域技术人员可以理解,本公开不限于此,并且可以适用于任何拍数的运算。本文中所提及的SHA-256算法包括公知可知的任何版本的SHA-256算法及其变型例和修改例。
总的来说,目前比特币挖矿需要进行的运算拍数仍然较多。在本公开中,为了提升运算吞吐量,运算核可以被配置为具有以流水线结构布置的多个运算级。图10示意性示出了用于执行SHA-256算法的示例性流水线结构,该流水线结构包括64个运算级,每个运算级有8个压缩寄存器A-H和16个扩展寄存器0-15。第1运算级可以接收输入的数据块,并将其分成8个32位数据分别存入压缩寄存器A-H中,然后对其进行运算处理并提供给第2运算级。之后,每个运算级对其接收到的前一运算级的运算结果进行运算并将自己的运算结果提供给后一运算级。最终在经过64个运算级的运算后,运算核可以输出对输入数据块执行过一次SHA-256算法的哈希运算结果。如此,当流水线结构中的所有运算级满载(即所有运算级都接收有数据并进行运算处理)时,运算核在每一拍都能输出一个运算结果,由此运算吞吐率得到大幅提升。
作为非限制性示例,对于需要执行两次SHA-256算法的矿机计算芯片运算核来说,总共需要128个运算级。运算核可以包括两个哈希引擎,每个哈希引擎可以包括64个运算级并且被配置用于执行SHA-256算法。每个哈希引擎例如可以具有如图10所示的配置。可以理解,本公开并不对哈希引擎执行的哈希算法进行特别限制,运算核的哈希引擎实际上可以用于执行现在已知的或以后开发的适用于矿机的任何哈希算法(不限于SHA系列算法),并且相应地可以包括对应数量的运算级。
当按照流水线结构来设计运算核的运算时,需要向流水线结构中的每个运算级提供时钟信号。在一种情况下,运算核中的时钟信号的传递方向可以与流水线结构中的数据信号传递方向相同(正向时钟结构),即从流水线结构中的最前一个运算级传递到最后一个运算级,在这样的情况下时钟周期可以更小,相应地芯片频率可以更快,达到更高性能,但是在这样的情况下,流水线结构中每个运算级处的寄存器的保持时间不容易满足,芯片可 能无法正常工作。在另一种情况下,运算核中的时钟信号的传递方向可以与流水线结构中的数据信号传递方向相反(反向时钟结构),即从流水线结构中的最后一个运算级传递到最前一个运算级,在这样的情况下更容易满足流水线结构中每个运算级处的寄存器的保持时间,使得数据能够被稳定地打入寄存器,但是在这样的情况下,会牺牲芯片的频率从而导致芯片的性能降低。此外,在这两种情况下,时钟信号都需要遍历运算核中的流水线结构上的每个运算级,时钟信号的传递级数通常多达128级。然而,时钟信号传播得越远,时钟信号的上升沿和/或下降沿的畸变程度会越来越大,导致时钟信号的形状劣化,占空比越来越差。当时钟信号沿着数据信号的传递方向传播到位于流水线结构下游的运算级(例如,第128运算级)或者沿着与数据信号的传递方向相反的方向传播到位于流水线结构上游的运算级(例如,第1运算级)时,时钟信号的电平可能已不能满足当前运算级的寄存器的最小脉冲要求,从而严重降低性能。
在根据本公开的实施例的运算核中,一个哈希引擎被配置为正向时钟结构而另一个哈希引擎被配置为反向时钟结构,使得整个运算核具有混合时钟结构,即该运算核的两个哈希引擎内的时钟信号的传递方向彼此不同。这样的配置不仅能够结合正向时钟结构和反向时钟结构的优点,寻求保持时间与芯片频率之间的平衡,还能够大大减少时钟信号所需要传递通过的运算级的数量,由此能够显著改善时钟信号在各运算级处的形状,从而有利地提高了运算核进而整个计算芯片的性能。
下面结合附图详细描述根据本公开的实施例的运算核。在这些附图中,虚线箭头用于指示数据信号的传递方向,以及实线箭头用于指示时钟信号的传递方向。应注意,实际的运算核还可以包括附加的部件,而为了避免模糊本公开的要点,附图中没有示出并且本公开也没有讨论这些附加的部件。
图1示意性地示出了根据本公开的实施例的运算核100A。运算核100A可以包括输入模块110、运算模块120和时钟模块140。输入模块110可以被配置为接收数据块。运算模块120可以被配置为对接收到的数据块进行哈希运算。时钟模块140可以被配置用于为运算模块120提供所需要的时钟信号。
如图1所示,运算模块120包括第一哈希引擎121和第二哈希引擎122。第一哈希引擎121包括第一多个运算级121-1、…、121-i、…、121-64。运算级121-1、…、121-i、…、121-64以流水线结构布置,使得基于接收到的数据块的数据信号沿着运算级121-1、…、121-i、…、121-64依次传递。第二哈希引擎122包括第二多个运算级122-1、…、122-i、…、122-64。运算级122-1、…、122-i、…、122-64以流水线结构布置,使得从第一哈希引擎121接收 的数据信号沿着运算级122-1、…、122-i、…、122-64依次传递。运算级121-1、…、121-i、…、121-64、122-1、…、122-i、…、122-64中的每个运算级对从前一运算级接收的数据信号进行运算并将经该运算级运算的数据信号提供给后一运算级。在一些示例中,可以参照图10的示例性流水线结构配置哈希引擎中的运算级,也可以按照本领域已知的或以后开发的其它流水线结构来配置运算级。应理解,虽然在附图中将第一哈希引擎121和第二哈希引擎122描绘为分别包括64个运算级,但是如前面已经提到的,本文仅仅以用于执行SHA-256算法的哈希引擎作为非限制性示例,根据本公开的运算核及其哈希引擎实际上可以适用于执行现在已知的或以后开发的适用于矿机的任何哈希算法(不限于SHA系列算法),并且相应地可以包括合适数量的运算级。
时钟模块140被配置为向第一哈希引擎121和第二哈希引擎122提供时钟信号,使得第一哈希引擎121内的时钟信号的传递方向与第二哈希引擎122内的时钟信号的传递方向相反。这样,时钟信号并不需要遍历第一哈希引擎121后再遍历第二哈希引擎122(正向时钟结构)或者遍历第二哈希引擎122后再遍历第一哈希引擎121(反向时钟结构),而是仅仅需要分别遍历第一哈希引擎121和第二哈希引擎122,使得时钟信号所需要经历的运算级的数量相对于正向时钟结构或反向时钟结构减半。由于数据信号在第一哈希引擎121和第二哈希引擎122内的传递方向是相同的,而时钟信号在第一哈希引擎121和第二哈希引擎122内的传递方向是相反的,因此根据本公开的运算核的时钟结构可以被称为混合时钟结构。
在一些实施例中,第一哈希引擎121内的时钟信号的传递方向与数据信号的传递方向可以相反,并且第二哈希引擎122内的时钟信号的传递方向与数据信号的传递方向可以相同。在一些实施例中,第一哈希引擎121内的时钟信号的传递方向与数据信号的传递方向可以相同,并且第二哈希引擎122内的时钟信号的传递方向与数据信号的传递方向可以相反。
例如,如图1所示,在运算核100A中,由时钟模块140向第一哈希引擎121提供的时钟信号从运算级121-64传递到运算级121-1,而由时钟模块140向第二哈希引擎122提供的时钟信号从运算级122-1传递到运算级122-64。由此,时钟信号从运算核的中间向两侧传播,最远只传递了64个运算级,极大地改善了时钟的最差形状。
在一些实施例中,根据本公开的运算核还可以在第一哈希引擎121和第二哈希引擎122设置有同步先入先出(First Input First Output,FIFO)模块,用于在运算级121-64与122-1之间传递数据信号。同步FIFO是一种FIFO设计,其是在同一时钟域中进行FIFO缓冲区的读写操作的FIFO,即数据值是从一个时钟域写入FIFO缓冲区并从相同的时钟域从同一 FIFO缓冲区读取。
图2示出了根据本公开的具有同步FIFO模块的运算核100B。运算核100B相比于运算核100A,还包括设置在第一哈希引擎121的最后一个运算级121-64与第二哈希引擎122的最前一个运算级122-1之间的同步FIFO模块150。同步FIFO模块150被配置为利用由时钟模块140提供的时钟信号接收从第一哈希引擎121的最后一个运算级121-64输出的数据信号并且利用由时钟模块140提供的时钟信号将所接收的数据信号输出到第二哈希引擎122的最前一个运算级122-1。时钟模块140还被配置为向同步FIFO模块150提供时钟信号。在运算核100B中,由时钟模块140向第一哈希引擎121提供的时钟信号从运算级121-64传递到运算级121-1,而由时钟模块140向第二哈希引擎122提供的时钟信号从运算级122-1传递到运算级122-64。时钟信号最远也只传递了64个运算级。同步FIFO模块150的引入并不会影响整个运算核的处理速度及吞吐率,因为数据信号在同步FIFO模块150与运算级之间的传递时间不会超过在运算级之间的传递时间。
同步FIFO模块的引入还带来了附加的效果。通常,运算核可以被实现在半导体芯片(例如,硅芯片)上。流水线结构的所有运算级通常被布置在同一行中,第一哈希引擎和第二哈希引擎在水平方向上彼此相邻。这里所称的水平方向可以是指流水线结构的延伸方向,也即数据信号的传递方向。在一些实施例中,第一哈希引擎和第二哈希引擎还可以沿半导体芯片的表面被布置在不同的两行中,从而在与水平方向垂直的竖直方向上彼此相邻。具有这样布置的第一哈希引擎和第二哈希引擎的运算核在本文中可以被称为是具有竖直结构的运算核。具有竖直结构的运算核可以具有更合适的(例如,更接近方形的)长宽比,从而便于这样的运算核在计算芯片上的灵活布置。在这样的情况下,能够更便利地从通常为圆形的硅晶片切割出更多的通常为矩形的芯片。然而,对于具有竖直结构的运算核,数据信号在第一哈希引擎的最后一个运算级和第二哈希引擎的最前一个运算级之间传递所需经历的距离相比于在哈希引擎内部的相邻两个运算级之间传递所需经历的距离更远,导致在这两个运算级之间的数据信号传递时间相比于在哈希引擎内部的相邻两个运算级之间的数据信号传递时间更长,由此可能限制运算核的处理速度及吞吐率。但是,同步FIFO模块具有宽松的定时,它可以有助于缩短在竖直结构中数据信号从第一哈希引擎的最后一个运算级到第二哈希引擎的最前一个运算级的传递时间,进而改善具有竖直结构的运算核的性能,使得竖直结构在带来利处的同时也不会使运算核的处理速度及吞吐率劣化。
图6A和图6B是根据本公开的实施例的包含同步FIFO模块以及在竖直方向上彼此相邻的第一哈希引擎和第二哈希引擎的运算核的示意图。如图6A所示,运算核200A的第一哈希 引擎221和第二哈希引擎222在竖直方向上彼此相邻,数据信号从第一哈希引擎221经由同步FIFO模块250到达第二哈希引擎222,其中第一哈希引擎221中的时钟信号与数据信号的传递方向相反,第二哈希引擎222中的时钟信号与数据信号的传递方向相同。如图6B所示,运算核200B的第一哈希引擎221和第二哈希引擎222在竖直方向上彼此相邻,数据信号从第一哈希引擎221经由同步FIFO模块250到达第二哈希引擎222,其中第二哈希引擎222中的时钟信号与数据信号的传递方向相反,第一哈希引擎221中的时钟信号与数据信号的传递方向相同。在附图中所描绘的第一哈希引擎221与第二哈希引擎222在竖直方向上的相对位置关系仅仅是示例性的而非限制性的,也可以根据实际需要颠倒第一哈希引擎221与第二哈希引擎222在竖直方向上的相对位置关系。
在另外一些实施例中,根据本公开的运算核还可以在第一哈希引擎121和第二哈希引擎122设置有异步先入先出(FIFO)模块,用于在运算级121-64与122-1之间传递数据信号。异步FIFO是指一种FIFO设计,其中,数据值从一个时钟域写入FIFO缓冲区,数据值从另一个时钟域从同一FIFO缓冲区读取,两个时钟域彼此异步。异步FIFO可以用于将数据从一个时钟域安全地传递到另一时钟域。
图3示出了根据本公开的具有异步FIFO模块的运算核100C。运算核100C相比于运算核100A,还包括设置在第一哈希引擎121的最后一个运算级121-64与第二哈希引擎122的最前一个运算级122-1之间的异步FIFO模块130。异步FIFO模块130被配置为利用第一时钟信号接收从第一哈希引擎121的最后一个运算级121-64输出的数据信号并且利用不同于第一时钟信号的第二时钟信号将所接收的数据信号输出到第二哈希引擎122的最前一个运算级122-1。运算核100C包括第一时钟模块141和第二时钟模块142。第一时钟模块141被配置为向第一哈希引擎121和异步FIFO模块130提供第一时钟信号,并且第二时钟模块142被配置为向第二哈希引擎122和异步FIFO模块130提供第二时钟信号,并且其中,所述第一时钟信号与所述第二时钟信号的频率相同。异步FIFO模块130的引入并不会影响整个运算核的处理速度及吞吐率,因为数据信号在异步FIFO模块130与运算级之间的传递时间不会超过在运算级之间的传递时间。
在一些实施例中,第一时钟信号与数据信号的传递方向可以相同,并且第二时钟信号与数据信号的传递方向可以相反。如图3所示,数据信号沿着从左到右的方向传播通过运算模块120的所有运算级,而第一时钟信号沿着从左到右的方向在第一哈希引擎121内传播(从运算级121-1到121-64),第二时钟信号沿着从右到左的方向在第二哈希引擎122内传播(从运算级122-64到122-1)。
在另外一些实施例中,第一时钟信号与数据信号的传递方向可以相反,并且第二时钟信号与数据信号的传递方向可以相同。如图4所示,运算核100D相比于运算核100C,数据信号仍沿着从左到右的方向传播通过运算模块120的所有运算级,但是第一时钟信号沿着从右到左的方向在第一哈希引擎121内传播(从运算级121-64到121-1),第二时钟信号沿着从左到右的方向在第二哈希引擎122内传播(从运算级122-1到122-64)。
在一些实施例中,第一时钟模块141和第二时钟模块142可以被配置为从位于运算核外部的相同时钟源接收时钟信号。时钟源可以用于提供基本时钟信号。即,第一时钟信号与第二时钟信号可以是同源的,但是从时钟源经历不同路径到达相应的时钟模块。
异步FIFO模块的引入也带来了附加的效果。与同步FIFO模块的情况类似地,异步FIFO模块也可以有助于缩短在竖直结构中数据信号从第一哈希引擎的最后一个运算级到第二哈希引擎的最前一个运算级的传递时间,进而改善具有竖直结构的运算核的性能。图6C和图6D是根据本公开的实施例的包含异步FIFO模块以及在竖直方向上彼此相邻的第一哈希引擎和第二哈希引擎的运算核的示意图。如图6C所示,运算核200C的第一哈希引擎221和第二哈希引擎222在竖直方向上彼此相邻,数据信号从第一哈希引擎221经由异步FIFO模块230到达第二哈希引擎222,其中第一时钟信号与数据信号的传递方向相同,第二时钟信号与数据信号的传递方向相反。如图6D所示,运算核200D的第一哈希引擎221和第二哈希引擎222在竖直方向上彼此相邻,数据信号从第一哈希引擎221经由异步FIFO模块230到达第二哈希引擎222,其中第二时钟信号与数据信号的传递方向相同,第一时钟信号与数据信号的传递方向相反。在图中描绘的第一哈希引擎221与第二哈希引擎222在竖直方向上的相对位置关系也仅仅是示例性的而非限制性的。
在一些实施例中,第一哈希引擎121或第二哈希引擎122内部还可以包括一个或多个异步FIFO模块,这一个或多个异步FIFO模块可以被插置在运算级之间。这样,可以进一步减少每个时钟信号所需要传递通过的运算级的数量。这些异步FIFO模块的插入可以使得每个哈希引擎中的运算级被分为多个组,在一些实施例中,每个组中包含的运算级的数量可以是相同的。图5A至图5C示出了在第一哈希引擎121和第二哈希引擎122内设置有附加异步FIFO模块的运算核的示例。
如图5A所示,运算核100A’相比于运算核100A,还包括第二异步FIFO模块132。第二异步FIFO模块132设置在第一哈希引擎121的第一多个运算级中相邻的第一运算级121-a和第二运算级121-b之间,第一运算级121-a在第二运算级121-b之前。第二异步FIFO模块132被配置为利用不同于由时钟模块140提供的时钟信号的第三时钟信号接收从第一运算级 121-a输出的数据信号并且利用由时钟模块140提供的时钟信号将所接收的数据信号输出到第二运算级121-b。运算核100A’还包括第三时钟模块143,该第三时钟模块143被配置为向第二异步FIFO模块132并且向第一运算级121-a及第一哈希引擎121的第一多个运算级中在第一运算级121-a之前的运算级提供第三时钟信号。时钟模块140还被配置为向第二异步FIFO模块132并且向第二运算级121-b及第一哈希引擎121的第一多个运算级中在第二运算级121-b之后的运算级提供时钟信号。
附加地或替代地,运算核100A’还包括第三异步FIFO模块133。第三异步FIFO模块133设置在第二哈希引擎122的第二多个运算级中相邻的第三运算级122-c和第四运算级122-d之间,第三运算级122-c在第四运算级122-d之前。第三异步FIFO模块133被配置为利用由时钟模块140提供的时钟信号接收从第三运算级122-c输出的数据信号并且利用不同于由时钟模块140提供的时钟信号的第四时钟信号将所接收的数据信号输出到第四运算级122-d。运算核100A’还包括第四时钟模块144,该第四时钟模块144被配置为向第三异步FIFO模块133并且向第四运算级122-d及第二哈希引擎122的第二多个运算级中在第四运算级122-d之后的运算级提供第四时钟信号。时钟模块140还被配置为向第三异步FIFO模块133并且向第三运算级122-c及第二哈希引擎122的第二多个运算级中在第三运算级122-c之前的运算级提供时钟信号。
如图5B所示,类似地,运算核100B’相比于运算核100B也可以包括第二异步FIFO模块132、第三时钟模块143和/或第三异步FIFO模块133、第四时钟模块144。
如图5C所示,运算核100C’相比于运算核100C,还可以包括第二异步FIFO模块132。第二异步FIFO模块132设置在第一哈希引擎121的第一多个运算级中相邻的第一运算级121-a和第二运算级121-b之间,第一运算级121-a在第二运算级121-b之前。第二异步FIFO模块132被配置为利用不同于由第一时钟模块141提供的第一时钟信号的第三时钟信号接收从第一运算级121-a输出的数据信号并且利用由第一时钟模块141提供的第一时钟信号将所接收的数据信号输出到第二运算级121-b。运算核100C’还包括第三时钟模块143,该第三时钟模块143被配置为向第二异步FIFO模块132并且向第一运算级121-a及第一哈希引擎121的第一多个运算级中在第一运算级121-a之前的运算级提供第三时钟信号。第一时钟模块141被配置为向第一异步FIFO模块130和第二异步FIFO模块132并且向第二运算级121-b及第一哈希引擎121的第一多个运算级中在第二运算级121-b之后的运算级提供第一时钟信号。
附加地或替代地,运算核100C’还可以包括第三异步FIFO模块133。第三异步FIFO模 块133设置在第二哈希引擎122的第二多个运算级中相邻的第三运算级122-c和第四运算级122-d之间,第三运算级122-c在第四运算级122-d之前。第三异步FIFO模块133被配置为利用由第二时钟模块142提供的第二时钟信号接收从第三运算级122-c输出的数据信号并且利用不同于由第二时钟模块142提供的第二时钟信号的第四时钟信号将所接收的数据信号输出到第四运算级122-d。运算核100C’还可以包括第四时钟模块144,该第四时钟模块144被配置为向第三异步FIFO模块133并且向第四运算级122-d及第二哈希引擎122的第二多个运算级中在第四运算级122-d之后的运算级提供第四时钟信号。第二时钟模块142被配置为向第一异步FIFO模块130和第三异步FIFO模块133并且向第三运算级122-c及第二哈希引擎122的第二多个运算级中在第三运算级122-c之前的运算级提供第二时钟信号。
例如,第二异步FIFO模块132可以被设置在第一哈希引擎121的第32运算级和第33运算级之间,第三异步FIFO模块133可以被设置在第二哈希引擎122的第32运算级和第33运算级之间,使得每个时钟信号最远只传递了32个运算级,从而进一步优化时钟信号在各运算级处的形状。
本领域技术人员可以理解,虽然图5A至图5C示出每个哈希引擎内包括一个异步FIFO模块,但这仅仅是作为非限制性示例,可以根据实际需要合理设置哈希引擎中的异步FIFO模块的数量和位置。还应理解的是,可以根据哈希引擎中的同步FIFO模块和异步FIFO模块的数量和位置,合理地设置相应的时钟模块来为哈希引擎中的各个运算级以及各个FIFO模块提供时钟信号,只要保证每个哈希引擎内的时钟信号方向一致但不同哈希引擎的时钟信号方向相反、并且保证向同步FIFO模块提供相同时钟信号而向异步FIFO模块提供不同时钟信号即可,图5A至图5C仅仅示出了几种示例布置,并不意在限制本公开。
本公开还提供了包括一个或多个如以上任一实施例所述的运算核的计算芯片。
下面结合图7描述根据本公开的一些实施例的计算芯片700。计算芯片700可以包括顶层模块710和多个如上所述的具有混合时钟结构的运算核720。作为非限制性示例,在图7所描绘的实施例中,运算核720被示出为具有图1所示的结构。
如图7所示,顶层模块710包括时钟源711。时钟源711被配置用于为计算芯片700的运算核720提供时钟信号。运算核720被布置在多个列720-1、720-2、720-3、720-4中,每列运算核的时钟模块经由共同的时钟信道接收时钟信号。例如,列720-1、720-2、720-3、720-4中的运算核的时钟模块分别经由时钟信道731、732、733、734接收时钟信号。在图7所示的运算核中两个哈希引擎被描绘为布置在同一行中,当运算核具有竖直结构时,还可以在相邻列的运算核之间共享时钟信道。
尽管未具体图示,但是可以理解的是,当运算核720的哈希引擎内部具有如上所述的附加异步FIFO模块时,还可以设置附加的时钟信道,使得同一列中的运算核720的因增加异步FIFO模块而增加的相应时钟模块也可以经由共同的时钟信道接收时钟信号。
应理解,虽然在图示的示例中,计算芯片包括四列四行运算核,但是这仅仅是示例性的而非限制性的,可以根据实际情况将任意合适数量的运算核布置成任意合适数量的列。
图8A的计算芯片800A相比于图7的计算芯片700,区别在于计算芯片800A的运算核820还具有同步FIFO模块(如图中的填充有左斜线的矩形所示意性表示的),例如可以具有如图2所示的结构。在这样的实施例中,每列820-1、820-2、820-3、820-4中的运算核的时钟模块仍可以分别经由时钟信道731、732、733、734接收时钟信号。
当运算核具有竖直结构时,还可以在相邻列的运算核之间共享时钟信道。如图8B所示,计算芯片800B相比于计算芯片800A,区别在于计算芯片800B的运算核820’具有在竖直方向上彼此相邻的第一哈希引擎和第二哈希引擎。在本公开的附图中,SF代表同步FIFO模块,ASF代表异步FIFO模块,H1代表第一哈希引擎,并且H2代表第二哈希引擎。
运算核的多个列可以包括彼此相邻且按所陈述的顺序布置的第一列运算核和第二列运算核(例如,820-1’和820-2’)。在一些实施例中,第一列运算核820-1’的时钟模块与第二列运算核820-2’的时钟模块经由共同的时钟信道831接收时钟信号。计算芯片还可以包括多对这样的第一列运算核和第二列运算核,每对都可以经由共同的时钟信道接收时钟信号。例如,计算芯片800B的列820-3’和820-4’也经由共同的时钟信道832接收时钟信号。
应理解,虽然在图8B中将同步FIFO模块布置在哈希引擎H1和H2的左侧,但这仅仅是示例性的而非限制性的,例如如图8C所示,运算核的同步FIFO模块可以被布置在哈希引擎H1和H2的任一侧,而且不论相邻两列运算核中的对应运算核关于同步FIFO模块的布置是相同还是相反,都能实现本公开的混合时钟结构。实际上,可以根据实际情况合理设置每个运算核中同步FIFO模块相对于哈希引擎的位置,并且不一定要求计算芯片中的每个运算核或每列运算核的布置都相同。
还应理解,虽然在图8B中将H1描绘为在H2上方,但是哈希引擎H1和H2在竖直方向上的相对位置关系不受特别限制,而且不论H1在H2上方还是H2在H1上方,都能实现本公开的混合时钟结构。实际上,根据实际情况合理设置每个运算核中哈希引擎H1和H2在竖直方向上的相对位置关系,并且不一定要求计算芯片中的每个运算核或每列运算核的布置都相同。
图9A的计算芯片900A相比于图7的计算芯片700,区别在于计算芯片900A的运算核920A 还具有异步FIFO模块(如图中的填充有右斜线的矩形所示意性表示的),例如可以具有如图4所示的结构。在这样的实施例中,每列920A-1、920A-2、920A-3、920A-4中的运算核的第一时钟模块经由共同的时钟信道接收第一时钟信号,并且第二时钟模块经由共同的时钟信道接收第二时钟信号。例如,列920A-1中的运算核的第一时钟模块和第二时钟模块中的一者经由共同的时钟信道931接收第一时钟信号,并且另一者经由共同的时钟信道932接收第二时钟信号。
图9B的计算芯片900B相比于计算芯片900A,区别在于计算芯片900A的运算核920B例如可以具有如图3所示的结构。在这样的实施例中,每列920B-1、920B-2、920B-3、920B-4中的运算核的第一时钟模块经由共同的时钟信道接收第一时钟信号,并且第二时钟模块经由共同的时钟信道接收第二时钟信号。例如,列920B-1中的运算核的第一时钟模块和第二时钟模块中的一者经由共同的时钟信道931’接收第一时钟信号,并且另一者经由共同的时钟信道932’接收第二时钟信号。
对于图9B所示的实施例,可以进一步修改为在相邻列之间共享时钟信道。多个列920B-1、920B-2、920B-3、920B-4包括彼此相邻且按所陈述的顺序布置的第一列运算核和第二列运算核(例如920B-1、920B-2),在一些实施例中,第一列运算核的第一时钟模块和第二时钟模块中的一者与第二列运算核的第一时钟模块和第二时钟模块中的一者可以经由共同的时钟信道接收时钟信号。在一些实施例中,多个列除了第一列运算核、第二列运算核还包括与第一列运算核相对地与第二列运算核相邻的第三列运算核(例如,920B-3),第二列运算核的第一时钟模块和第二时钟模块中的另一者与第三列运算核的第一时钟模块和第二时钟模块中的一者可以经由共同的时钟信道接收时钟信号。
例如,图9C的计算芯片900B’相比于计算芯片900B,区别在于相邻列的运算核共享时钟信道。如图9C所示,列920B-1与列920B-2共享时钟信道934,列920B-2与列920B-3共享时钟信道935,列920B-3与列920B-4共享时钟信道936,此外列920B-1还具有单独的时钟信道933,列920B-4还具有单独的时钟信道937。图9C中并未具体示出运算核920B是如何布置在计算芯片中的。事实上,参考图9D可以知道,无论如何布置运算核920B(第一哈希引擎在左并且第二哈希引擎在右,或者第二哈希引擎在左并且第一哈希引擎在右),都可以实现相邻列的运算核之间的时钟信道共享。因此,可以根据实际情况合理布置计算芯片900B’中的每个运算核。需要注意的是,如图9D所示,数据信号的传递方向始终是从第一哈希引擎到第二哈希引擎的,也就是说,图中第一哈希引擎在左侧还是第二哈希引擎在左侧只是相对于图示视角而言,并不更改它们的数据传递上下游关系。
此外,当运算核具有竖直结构时,相邻列的运算核之间也可以共享时钟信道。下面结合图9E至图9G具体描述。在图9E至图9G中,为了图示清楚,点划线也用于代表时钟信号。运算核的多个列可以包括彼此相邻且按所陈述的顺序布置的第一列运算核和第二列运算核。在一些实施例中,第一列运算核的第一时钟模块和第二时钟模块中的一者与第二列运算核的第一时钟模块和第二时钟模块中的一者经由共同的时钟信道接收时钟信号;附加地或替代地,第一列运算核的第一时钟模块和第二时钟模块中的另一者与第二列运算核的第一时钟模块和第二时钟模块中的另一者经由共同的时钟信道接收时钟信号。
如图9E所示,计算芯片900C相比于计算芯片900B’,区别在于计算芯片900C的运算核920’具有在竖直方向上彼此相邻的第一哈希引擎和第二哈希引擎。多个列920-1’、920-2’、920-3’、920-4’包括彼此相邻且按所陈述的顺序布置的第一列运算核和第二列运算核(例如920-1’、920-2’)。在一些实施例中,第一列运算核(例如920-1’)的第一时钟模块和第二列运算核(例如920-2’)的第一时钟模块经由共同的时钟信道(例如991)接收时钟信号分别作为各自的第一时钟信号。在一些实施例中,附加地或替代地,第一列运算核(例如920-1’)的第二时钟模块和第二列运算核(例如920-2’)的第二时钟模块经由共同的时钟信道(例如993)接收时钟信号分别作为各自的第二时钟信号。计算芯片900C可以包括多对这样的第一列运算核和第二列运算核。例如,列920-3’和920-4’的运算核的第一时钟模块可以经由共同的时钟信道992接收时钟信号分别作为各自的第一时钟信号,第二时钟模块可以经由共同的时钟信道994接收时钟信号分别作为各自的第二时钟信号。
应理解图9E中异步FIFO模块相对于哈希引擎H1和H2的布置仅仅是示例性的而非限制性的,例如如图9F所示,运算核的异步FIFO模块可以被布置在哈希引擎H1和H2的任一侧,而且不论相邻两列运算核中的对应运算核关于异步FIFO模块的布置是相同还是相反,都能实现本公开的混合时钟结构。实际上,可以根据实际情况合理设置每个运算核中异步FIFO模块相对于哈希引擎的位置,并且不一定要求计算芯片中的每个运算核或每列运算核的布置都相同。
还应理解图9E中哈希引擎H1在哈希引擎H2上方的布置仅仅是示例性的而非限制性的,哈希引擎H1和H2在竖直方向上的相对位置关系不受特别限制,而且不论H1在H2上方还是H2在H1上方,都能实现本公开的混合时钟结构。例如,如图9G所示,第二列运算核中哈希引擎H2在哈希引擎H1上方。在如图9G所示的实施例中,第一列运算核的第一时钟模块和第二列运算核的第二时钟模块经由共同的时钟信道接收时钟信号分别作为各自的第一时钟信 号和第二时钟信号。附加地或替代地,第一列运算核的第二时钟模块和第二列运算核的第一时钟模块经由共同的时钟信道接收时钟信号分别作为各自的第二时钟信号和第一时钟信号。实际上,可以根据实际情况合理设置每个运算核中哈希引擎H1和H2在竖直方向上的相对位置关系,并且不一定要求计算芯片中的每个运算核或每列运算核的布置都相同。
由于常规矿机计算芯片的运算核的长宽比通常很大(因为要设置多达128个运算级),因此运算核在计算芯片(一般基于硅晶圆)上的布置非常受限。本公开提供的具有竖直结构的运算核可以具有显著缩小的长宽比,可以更加灵活自由地被合理布置在计算芯片上。包含同步或异步FIFO模块还可以有助于改进具有竖直结构的运算核的性能。此外,通过运算核的相邻列之间的时钟信道的共用,还可以进一步节省芯片面积,也可以允许在同等尺寸芯片上布置更多数量的运算核,以高效地承担复杂的运算任务。
可以理解,虽然在上述实施例中描述的是在运算核的相邻列之间共享时钟信道,但是以类似的方式在运算核的相邻行之间共享时钟信道也是可行的,并且也被涵盖在本公开的范围内。
本公开还可以提供包括一个或多个如上所述的计算芯片的数据处理设备。根据本公开的例如作为加密货币矿机的数据处理设备可以具有更低的成本,更高效地执行挖矿过程。
说明书及权利要求中的词语“左”、“右”、“前”、“后”、“顶”、“底”、“上”、“下”、“高”、“低”等,如果存在的话,用于描述性的目的而并不一定用于描述不变的相对位置。应当理解,这样使用的词语在适当的情况下是可互换的,使得在此所描述的本公开的实施例,例如,能够在与在此所示出的或另外描述的那些取向不同的其它取向上操作。例如,在附图中的装置倒转时,原先描述为在其它特征“之上”的特征,此时可以描述为在其它特征“之下”。装置还可以以其它方式定向(旋转90度或在其它方位),此时将相应地解释相对空间关系。
在说明书及权利要求中,称一个元件位于另一元件“之上”、“附接”至另一元件、“连接”至另一元件、“耦合”至另一元件、或“接触”另一元件等时,该元件可以直接位于另一元件之上、直接附接至另一元件、直接连接至另一元件、直接耦合至另一元件或直接接触另一元件,或者可以存在一个或多个中间元件。相对照的是,称一个元件“直接”位于另一元件“之上”、“直接附接”至另一元件、“直接连接”至另一元件、“直接耦合”至另一元件或“直接接触”另一元件时,将不存在中间元件。在说明书及权利要求中,一个特征布置成与另一特征“相邻”,可以指一个特征具有与相邻特征重叠的部分或者位于相邻特征上方或下方的部分。
如在此所使用的,词语“示例性的”意指“用作示例、实例或说明”,而不是作为将被精确复制的“模型”。在此示例性描述的任意实现方式并不一定要被解释为比其它实现方式优选的或有利的。而且,本公开不受在技术领域、背景技术、发明内容或具体实施方式中所给出的任何所表述的或所暗示的理论所限定。
如在此所使用的,词语“基本上”意指包含由设计或制造的缺陷、器件或元件的容差、环境影响和/或其它因素所致的任意微小的变化。词语“基本上”还允许由寄生效应、噪声以及可能存在于实际的实现方式中的其它实际考虑因素所致的与完美的或理想的情形之间的差异。
另外,仅仅为了参考的目的,还可以在本文中使用“第一”、“第二”等类似术语,并且因而并非意图限定。例如,除非上下文明确指出,否则涉及结构或元件的词语“第一”、“第二”和其它此类数字词语并没有暗示顺序或次序。
还应理解,“包括/包含”一词在本文中使用时,说明存在所指出的特征、整体、步骤、操作、单元和/或组件,但是并不排除存在或增加一个或多个其它特征、整体、步骤、操作、单元和/或组件以及/或者它们的组合。
在本公开中,术语“提供”从广义上用于涵盖获得对象的所有方式,因此“提供某对象”包括但不限于“购买”、“制备/制造”、“布置/设置”、“安装/装配”、和/或“订购”对象等。
如本文所使用的,术语“和/或”包括相关联的列出项目中的一个或多个的任何和所有组合。本文中使用的术语只是出于描述特定实施例的目的,并不旨在限制本公开。如本文中使用的,单数形式“一”、“一个”和“该”也旨在包括复数形式,除非上下文另外清楚指示。
本领域技术人员应当意识到,在上述操作之间的边界仅仅是说明性的。多个操作可以结合成单个操作,单个操作可以分布于附加的操作中,并且操作可以在时间上至少部分重叠地执行。而且,另选的实施例可以包括特定操作的多个实例,并且在其它各种实施例中可以改变操作顺序。但是,其它的修改、变化和替换同样是可能的。可以以任何方式和/或与其它实施例的方面或元件相结合地组合以上公开的所有实施例的方面和元件,以提供多个附加实施例。因此,本说明书和附图应当被看作是说明性的,而非限制性的。
虽然已通过示例对本公开的一些特定实施例进行了详细说明,但本领域的技术人员应该理解,以上示例仅是为了进行说明,而不是为了限制本公开的范围。在此公开的各实施例可以任意组合,而不脱离本公开的精神和范围。本领域的技术人员还应理解,可以对实 施例进行多种修改而不脱离本公开的范围和精神。本公开的范围由所附权利要求来限定。

Claims (19)

  1. 一种运算核,包括:
    输入模块,被配置为接收数据块;
    运算模块,被配置为对接收到的数据块进行哈希运算,所述运算模块包括:
    第一哈希引擎,包括第一多个运算级,所述第一多个运算级以流水线结构布置使得基于所述数据块的数据信号沿着所述第一多个运算级依次传递;以及
    第二哈希引擎,包括第二多个运算级,所述第二多个运算级以流水线结构布置使得从所述第一哈希引擎接收的数据信号沿着所述第二多个运算级依次传递,
    其中所述第一多个运算级和所述第二多个运算级中的每个运算级对从前一运算级接收的数据信号进行运算并将经该运算级运算的数据信号提供给后一运算级;以及
    时钟模块,被配置为向所述第一哈希引擎和所述第二哈希引擎提供时钟信号,
    其中,所述第一哈希引擎内的时钟信号的传递方向与所述第二哈希引擎内的时钟信号的传递方向相反。
  2. 根据权利要求1所述的运算核,其中,所述第一哈希引擎内的时钟信号的传递方向与数据信号的传递方向相反,并且所述第二哈希引擎内的时钟信号的传递方向与数据信号的传递方向相同。
  3. 根据权利要求1所述的运算核,还包括:
    同步FIFO模块,设置在所述第一哈希引擎的所述第一多个运算级中的最后一个运算级与所述第二哈希引擎的所述第二多个运算级中的最前一个运算级之间,所述同步FIFO模块被配置为利用所述时钟信号接收从所述第一哈希引擎的所述最后一个运算级输出的数据信号并且利用所述时钟信号将所接收的数据信号输出到所述第二哈希引擎的所述最前一个运算级,
    其中,所述时钟模块还被配置为向所述同步FIFO模块提供所述时钟信号。
  4. 根据权利要求1所述的运算核,还包括:
    异步FIFO模块,设置在所述第一哈希引擎的所述第一多个运算级中的最后一个运算级 与所述第二哈希引擎的所述第二多个运算级中的最前一个运算级之间,所述异步FIFO模块被配置为利用第一时钟信号接收从所述第一哈希引擎的所述最后一个运算级输出的数据信号并且利用不同于所述第一时钟信号的第二时钟信号将所接收的数据信号输出到所述第二哈希引擎的所述最前一个运算级,
    其中,所述时钟模块包括第一时钟模块和第二时钟模块,所述第一时钟模块被配置为向所述第一哈希引擎和所述异步FIFO模块提供所述第一时钟信号,并且所述第二时钟模块被配置为向所述第二哈希引擎和所述异步FIFO模块提供所述第二时钟信号,并且其中,所述第一时钟信号与所述第二时钟信号的频率相同。
  5. 根据权利要求4所述的运算核,其中,所述第一时钟信号与所述数据信号的传递方向相同,并且所述第二时钟信号与所述数据信号的传递方向相反。
  6. 根据权利要求4所述的运算核,其中,所述第一时钟信号与所述数据信号的传递方向相反,并且所述第二时钟信号与所述数据信号的传递方向相同。
  7. 根据权利要求1-6中任一项所述的运算核,其中,所述运算核被实现在半导体芯片上,并且所述第一哈希引擎和所述第二哈希引擎被布置为沿所述半导体芯片的表面在与所述数据信号的传递方向垂直的竖直方向上彼此相邻。
  8. 根据权利要求1-3中任一项所述的运算核,还包括:
    第二异步FIFO模块,设置在所述第一多个运算级中相邻的第一运算级和第二运算级之间,所述第一运算级在所述第二运算级之前,所述第二异步FIFO模块被配置为利用不同于所述时钟信号的第三时钟信号接收从所述第一运算级输出的数据信号并且利用所述时钟信号将所接收的数据信号输出到所述第二运算级;以及
    第三时钟模块,被配置为向所述第二异步FIFO模块并且向所述第一运算级及所述第一多个运算级中在所述第一运算级之前的运算级提供所述第三时钟信号,
    其中,所述时钟模块还被配置为向所述第二异步FIFO模块并且向所述第二运算级及所述第一多个运算级中在所述第二运算级之后的运算级提供所述时钟信号。
  9. 根据权利要求1-3中任一项所述的运算核,还包括:
    第三异步FIFO模块,设置在所述第二多个运算级中相邻的第三运算级和第四运算级之间,所述第三运算级在所述第四运算级之前,所述第三异步FIFO模块被配置为利用所述时钟信号接收从所述第三运算级输出的数据信号并且利用不同于所述时钟信号的第四时钟信号将所接收的数据信号输出到所述第四运算级;以及
    第四时钟模块,被配置为向所述第三异步FIFO模块并且向所述第四运算级及所述第二多个运算级中在所述第四运算级之后的运算级提供所述第四时钟信号,
    其中,所述时钟模块还被配置为向所述第三异步FIFO模块并且向所述第三运算级及所述第二多个运算级中在所述第三运算级之前的运算级提供所述时钟信号。
  10. 根据权利要求4-6中任一项所述的运算核,其中,所述异步FIFO模块是第一异步FIFO模块,并且所述运算核还包括:
    第二异步FIFO模块,设置在所述第一多个运算级中相邻的第一运算级和第二运算级之间,所述第一运算级在所述第二运算级之前,所述第二异步FIFO模块被配置为利用不同于所述第一时钟信号的第三时钟信号接收从所述第一运算级输出的数据信号并且利用所述第一时钟信号将所接收的数据信号输出到所述第二运算级;以及
    第三时钟模块,被配置为向所述第二异步FIFO模块并且向所述第一运算级及所述第一多个运算级中在所述第一运算级之前的运算级提供所述第三时钟信号,
    其中,所述第一时钟模块被配置为向所述第一异步FIFO模块和所述第二异步FIFO模块并且向所述第二运算级及所述第一多个运算级中在所述第二运算级之后的运算级提供所述第一时钟信号。
  11. 根据权利要求4-6中任一项所述的运算核,其中,所述异步FIFO模块是第一异步FIFO模块,并且所述运算核还包括:
    第三异步FIFO模块,设置在所述第二多个运算级中相邻的第三运算级和第四运算级之间,所述第三运算级在所述第四运算级之前,所述第三异步FIFO模块被配置为利用所述第二时钟信号接收从所述第三运算级输出的数据信号并且利用不同于所述第二时钟信号的第四时钟信号将所接收的数据信号输出到所述第四运算级;以及
    第四时钟模块,被配置为向所述第三异步FIFO模块并且向所述第四运算级及所述第二多个运算级中在所述第四运算级之后的运算级提供所述第四时钟信号,
    其中,所述第二时钟模块被配置为向所述第一异步FIFO模块和所述第三异步FIFO模块 并且向所述第三运算级及所述第二多个运算级中在所述第三运算级之前的运算级提供所述第二时钟信号。
  12. 一种计算芯片,包括一个或多个如权利要求1-11中任一项所述的运算核。
  13. 一种计算芯片,包括多个根据权利要求1-3、8-9中任一项所述的运算核,所述多个所述运算核被布置在多个列中,每列运算核的时钟模块经由共同的时钟信道接收时钟信号。
  14. 根据权利要求13所述的计算芯片,
    其中,所述运算核是根据权利要求3所述的运算核,所述运算核被实现在半导体芯片上,并且所述第一哈希引擎和所述第二哈希引擎被布置为沿所述半导体芯片的表面在与所述数据信号的传递方向垂直的竖直方向上彼此相邻,
    并且其中,所述多个列包括彼此相邻且按所陈述的顺序布置的第一列运算核和第二列运算核,并且其中,所述第一列运算核的时钟模块与所述第二列运算核的时钟模块经由共同的时钟信道接收时钟信号。
  15. 一种计算芯片,包括多个根据权利要求4-6、10-11中任一项所述的运算核,所述多个所述运算核被布置在多个列中,每列运算核的第一时钟模块经由共同的时钟信道接收第一时钟信号,并且每列运算核的第二时钟模块经由共同的时钟信道接收第二时钟信号。
  16. 根据权利要求15所述的计算芯片,
    其中,所述运算核是根据权利要求5所述的运算核,
    其中,所述多个列包括彼此相邻且按所陈述的顺序布置的第一列运算核和第二列运算核,
    并且其中,所述第一列运算核的第一时钟模块和第二时钟模块中的一者与所述第二列运算核的第一时钟模块和第二时钟模块中的一者经由共同的时钟信道接收时钟信号。
  17. 根据权利要求16所述的计算芯片,
    其中,所述多个列包括彼此相邻且按所陈述的顺序布置的所述第一列运算核、所述第 二列运算核和第三列运算核,
    并且其中,所述第二列运算核的第一时钟模块和第二时钟模块中的另一者与所述第三列运算核的第一时钟模块和第二时钟模块中的一者经由共同的时钟信道接收时钟信号。
  18. 根据权利要求15所述的计算芯片,
    其中,所述运算核被实现在半导体芯片上,并且所述第一哈希引擎和所述第二哈希引擎被布置为沿所述半导体芯片的表面在与所述数据信号的传递方向垂直的竖直方向上彼此相邻,
    其中,所述多个列包括彼此相邻且按所陈述的顺序布置的第一列运算核和第二列运算核,
    并且其中,所述计算芯片被配置成以下中的至少一者:
    所述第一列运算核的第一时钟模块和第二时钟模块中的一者与所述第二列运算核的第一时钟模块和第二时钟模块中的一者经由共同的时钟信道接收时钟信号;
    所述第一列运算核的第一时钟模块和第二时钟模块中的另一者与所述第二列运算核的第一时钟模块和第二时钟模块中的另一者经由共同的时钟信道接收时钟信号。
  19. 一种数据处理设备,包括一个或多个根据权利要求12-18中任一项所述的计算芯片。
PCT/CN2021/104624 2020-11-23 2021-07-06 运算核、计算芯片和数据处理设备 WO2022105252A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202011320665.2A CN114528246A (zh) 2020-11-23 2020-11-23 运算核、计算芯片和加密货币矿机
CN202011320665.2 2020-11-23

Publications (1)

Publication Number Publication Date
WO2022105252A1 true WO2022105252A1 (zh) 2022-05-27

Family

ID=79601102

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2021/104624 WO2022105252A1 (zh) 2020-11-23 2021-07-06 运算核、计算芯片和数据处理设备

Country Status (3)

Country Link
CN (1) CN114528246A (zh)
TW (1) TWI775514B (zh)
WO (1) WO2022105252A1 (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1613041A (zh) * 2001-02-14 2005-05-04 克利尔斯皮德科技有限公司 时钟分配系统
CN101308568A (zh) * 2007-05-17 2008-11-19 北京展讯高科通信技术有限公司 基于fifo的流水线实时处理的方法和装置
US20140052951A1 (en) * 2012-08-17 2014-02-20 Renesas Mobile Corporation Method and Apparatus for Transferring Data from a First Domain to a Second Domain
CN106453158A (zh) * 2015-08-11 2017-02-22 联发科技股份有限公司 异步先入先出缓冲器装置以及相关网络设备
CN107831824A (zh) * 2017-10-16 2018-03-23 算丰科技(北京)有限公司 时钟信号传递方法、装置、复用芯片和电子设备
CN111651402A (zh) * 2020-07-16 2020-09-11 深圳比特微电子科技有限公司 时钟树、哈希引擎、计算芯片、算力板和数字货币挖矿机

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SI3095044T1 (sl) * 2013-11-19 2021-02-26 Top Galore Limited Postopki in naprave za rudarjenje blokov
US20180004242A1 (en) * 2016-06-29 2018-01-04 Intel Corporation Low clock-energy 3-phase latch-based clocking scheme
CN108777612B (zh) * 2018-05-18 2020-03-20 中科声龙科技发展(北京)有限公司 一种工作量证明运算芯片核心计算部件的优化方法和电路
CN111488627B (zh) * 2020-04-13 2023-04-07 杭州德旺信息技术有限公司 一种安全散列算法的消息拓展电路
CN111930682A (zh) * 2020-07-16 2020-11-13 深圳比特微电子科技有限公司 时钟树、哈希引擎、计算芯片、算力板和数字货币挖矿机
CN111913749A (zh) * 2020-08-07 2020-11-10 山东大学 基于流水线的sm3算法fpga实现方法及系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1613041A (zh) * 2001-02-14 2005-05-04 克利尔斯皮德科技有限公司 时钟分配系统
CN101308568A (zh) * 2007-05-17 2008-11-19 北京展讯高科通信技术有限公司 基于fifo的流水线实时处理的方法和装置
US20140052951A1 (en) * 2012-08-17 2014-02-20 Renesas Mobile Corporation Method and Apparatus for Transferring Data from a First Domain to a Second Domain
CN106453158A (zh) * 2015-08-11 2017-02-22 联发科技股份有限公司 异步先入先出缓冲器装置以及相关网络设备
CN107831824A (zh) * 2017-10-16 2018-03-23 算丰科技(北京)有限公司 时钟信号传递方法、装置、复用芯片和电子设备
CN111651402A (zh) * 2020-07-16 2020-09-11 深圳比特微电子科技有限公司 时钟树、哈希引擎、计算芯片、算力板和数字货币挖矿机

Also Published As

Publication number Publication date
CN114528246A (zh) 2022-05-24
TW202138998A (zh) 2021-10-16
TWI775514B (zh) 2022-08-21

Similar Documents

Publication Publication Date Title
TWI804890B (zh) 時鐘樹電路、哈希引擎、計算晶片、算力板和資料處理設備
US8872544B2 (en) Systems, pipeline stages, and computer readable media for advanced asynchronous pipeline circuits
JPH08339236A (ja) クロック信号分配回路
TWI784457B (zh) 時鐘電路系統、計算晶片、算力板和資料處理設備
Hoskote et al. A TCP Offload Accelerator for 10 Gb/s Ethernet in 90-nm CMOS
CN111930682A (zh) 时钟树、哈希引擎、计算芯片、算力板和数字货币挖矿机
CN212160484U (zh) 时钟电路系统、计算芯片、算力板和数字货币挖矿机
Tu et al. Low-power timing closure methodology for ultra-low voltage designs
WO2022105252A1 (zh) 运算核、计算芯片和数据处理设备
CN212515800U (zh) 时钟树、哈希引擎、计算芯片、算力板和加密货币挖矿机
CN213399573U (zh) 运算核、计算芯片和加密货币矿机
CN212515801U (zh) 时钟树、哈希引擎、计算芯片、算力板和加密货币挖矿机
US20050132313A1 (en) Optimization of the design of a synchronous digital circuit
US11556145B2 (en) Skew-balancing algorithm for digital circuitry
WO2023279341A1 (zh) 用于设计异步电路的方法和电子设备
WO2022152051A1 (zh) 处理器和计算系统
WO2022152032A1 (zh) 测试电路、测试方法和包括测试电路的计算系统
CN213399572U (zh) 运算核、计算芯片和加密货币矿机
US9710012B2 (en) Timing optimized implementation of algorithm to reduce switching rate on high throughput wide buses
CN111651403A (zh) 时钟树、哈希引擎、计算芯片、算力板和数字货币挖矿机
Dorojevets et al. Development and evaluation of design techniques for high-performance wave-pipelined wide datapath RSFQ processors
JP2014194619A (ja) バッファ回路及び半導体集積回路
CN114528247A (zh) 运算核、计算芯片和加密货币矿机
CN212515799U (zh) 时钟树、哈希引擎、计算芯片、算力板和加密货币挖矿机
Kao et al. Two-stage multi-bit flip-flop clustering with useful skew for low power

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21893404

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 02.10.2023)