CN111930682A - 时钟树、哈希引擎、计算芯片、算力板和数字货币挖矿机 - Google Patents
时钟树、哈希引擎、计算芯片、算力板和数字货币挖矿机 Download PDFInfo
- Publication number
- CN111930682A CN111930682A CN202010687821.2A CN202010687821A CN111930682A CN 111930682 A CN111930682 A CN 111930682A CN 202010687821 A CN202010687821 A CN 202010687821A CN 111930682 A CN111930682 A CN 111930682A
- Authority
- CN
- China
- Prior art keywords
- register
- registers
- clock
- stage
- coupled
- Prior art date
- Legal status (The legal status 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 status listed.)
- Granted
Links
- 238000005065 mining Methods 0.000 title abstract description 10
- 239000000872 buffer Substances 0.000 claims description 117
- 238000012546 transfer Methods 0.000 claims description 26
- 238000010586 diagram Methods 0.000 description 16
- 230000002441 reversible effect Effects 0.000 description 6
- 239000000463 material Substances 0.000 description 5
- 238000000034 method Methods 0.000 description 5
- 238000013461 design Methods 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 4
- 239000007787 solid Substances 0.000 description 4
- 239000004065 semiconductor Substances 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000014759 maintenance of location Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System 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
- G06F15/7817—Specially adapted for signal processing, e.g. Harvard architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/06—Clock generators producing several clock signals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Signal Processing (AREA)
- Technology Law (AREA)
- Economics (AREA)
- Development Economics (AREA)
- General Business, Economics & Management (AREA)
- Strategic Management (AREA)
- Marketing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Security & Cryptography (AREA)
- Power Engineering (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Logic Circuits (AREA)
- Complex Calculations (AREA)
Abstract
本公开涉及一种时钟树、哈希引擎、计算芯片、算力板和数字货币挖矿机。所述哈希引擎包括:输入模块,被配置为接收数据块;运算模块,被配置为对接收的数据块进行哈希运算,所述运算模块包括以流水线结构布置的多个运算级以使得基于所述数据块的数字信号沿着所述多个运算级依次传递,所述多个运算级中的每个运算级包括多个寄存器和组合逻辑模块;和时钟模块,被配置为向所述多个运算级的每一个运算级提供时钟信号,所述时钟模块包括多级时钟驱动电路以使得来自于时钟源的时钟信号沿着所述多级时钟驱动电路依次传递,其中对于所述多个运算级中的每个运算级的所述多个寄存器,所述数字信号的传递方向与所述时钟信号的传递方向相同。
Description
技术领域
本发明涉及用于执行哈希算法的电路,更具体地,涉及包含时钟树电路、哈希引擎、计算芯片、算力板和加密货币挖矿机。
背景技术
比特币系统是最早提出并且目前得到最广泛认可的区块链系统。比特币系统的主要作用之一是用作去中心化的公共记账本,其可以记录各种金融交易。之所以称为“去中心化”,是因为比特币不是由单一的中心化的货币机构发行的,而是依据特定算法通过运算来产生的。比特币系统使用计算机网络的各节点构成的分布式数据库来确认并记录所有的交易行为,并使用密码学设计来确保安全性。
目前比特币协议采用安全哈希算法SHA(Secure Hash Algorithm)-256。SHA系列算法是美国标准与技术研究所发布的,其中SHA-256是一种哈希长度为256位的安全哈希算法。
根据比特币协议,第一个成功确定候选区块的工作量证明POW(proof of work)的节点有权将该区块添加到区块链,并有权生成新的加密货币单元作为奖励。这个过程就被称为“挖矿”,执行比特币算法的节点被称为挖矿机或矿机。
如果使用专用集成电路(ASIC)来执行挖矿过程,也即使用ASIC芯片来执行SHA-256算法,则设计目标的关键是改善芯片尺寸、芯片运行速度和芯片功耗。芯片尺寸决定芯片成本,芯片运行速度决定矿机运行速度即算力,芯片功耗决定耗电程度即挖矿成本。在实际应用中,衡量矿机最为重要的性能指标是单位算力所消耗的功率,即功耗算力比。因此,对于比特币矿机而言,最重要的就是以较低的功耗算力比来实现SHA-256算法。
因此,存在对于具有更低功耗算力比的用于实现哈希算法的电路的需求。
发明内容
根据本发明的第一方面,提供了一种哈希引擎,包括:输入模块,被配置为接收数据块;运算模块,被配置为对接收的数据块进行哈希运算,所述运算模块包括以流水线结构布置的多个运算级以使得基于所述数据块的数字信号沿着所述多个运算级依次传递,所述多个运算级中的每个运算级包括多个寄存器和组合逻辑模块;和时钟模块,被配置为向所述多个运算级的每一个运算级提供时钟信号,所述时钟模块包括多级时钟驱动电路以使得来自于时钟源的时钟信号沿着所述多级时钟驱动电路依次传递,其中对于所述多个运算级中的每个运算级的所述多个寄存器,所述数字信号的传递方向与所述时钟信号的传递方向相同。
进一步,在每一当前运算级中,所述多个寄存器中的第一组寄存器中的每个寄存器的输出端至少耦接到当前运算级的组合逻辑模块的输入端,所述多个寄存器中的第二组寄存器中的每个寄存器的输入端耦接到前一运算级的组合逻辑模块的输出端,以及所述多个寄存器中的第三组寄存器中的每个寄存器的输入端耦接到前一运算级中的相应寄存器的输出端,并且其输出端耦接到下一运算级中的相应寄存器的输入端。
所述时钟模块还包括用于所述多个寄存器中的每个寄存器的时钟缓冲电路,每个寄存器的时钟信号端耦接到对应时钟缓冲电路的输出端,用于每一当前运算级的所述第二组寄存器和所述第一组寄存器中的第一部分寄存器中的每个寄存器的时钟缓冲电路的输入端耦接到用于当前运算级的时钟驱动电路的输出端,以及每一当前运算级的所述第一组寄存器中的第二部分寄存器中的每个寄存器的时钟信号端和前一运算级中的相应寄存器的时钟信号端耦接到同一时钟缓冲电路的输出端。
每一当前运算级的所述第三组寄存器中的第一部分寄存器中的每个寄存器的时钟信号端和前一运算级中的相应寄存器的时钟信号端耦接到同一时钟缓冲电路的输出端,以及用于每一当前运算级的所述第三组寄存器中的第二部分寄存器中的每个寄存器的时钟缓冲电路的输入端耦接到用于前n个运算级的相应寄存器的时钟缓冲电路的输出端,其中n为整数且2≤n≤4。
每一当前运算级的所述多个寄存器还包括一个或多个附加寄存器,所述一个或多个附加寄存器中的一个附加寄存器的输出端耦接到当前运算级的所述第一组寄存器中的特定寄存器的输入端,其输入端耦接到前一运算级的对应于所述特定寄存器的相应寄存器的输出端,并且其时钟信号端耦接到用于前一运算级中的对应于所述特定寄存器的相应寄存器的时钟缓冲电路的输出端。
根据本公开的哈希引擎可以用于执行SHA-256算法。
根据本发明的第二方面,提供了一种时钟树电路,包括:时钟源,用于提供基本时钟信号;和多级时钟驱动电路,其中来自于所述时钟源的基本时钟信号沿着所述多级时钟驱动电路依次传递,所述多级时钟驱动电路中的每一级时钟驱动电路用于为多个运算级的每个运算级提供时钟信号,其中所述多个运算级以流水线结构布置以使得基于接收的数据块的数字信号沿着所述多个运算级依次传递,所述多个运算级中的每个运算级包括多个寄存器和组合逻辑模块;和多个时钟缓冲电路,用于接收来自于所述多级时钟驱动电路的信号并且为所述多个寄存器中的每个寄存器提供时钟信号,其中每个寄存器的时钟信号端耦接到对应时钟缓冲电路的输出端,其中对于所述多个运算级中的每个运算级的所述多个寄存器,所述数字信号的传递方向与所述时钟信号的传递方向相同,其中在每一当前运算级中,所述多个寄存器中的第一组寄存器中的每个寄存器的输出端至少耦接到当前运算级的组合逻辑模块的输入端,所述多个寄存器中的第二组寄存器中的每个寄存器的输入端耦接到前一运算级的组合逻辑模块的输出端,以及所述多个寄存器中的第三组寄存器中的每个寄存器的输入端耦接到前一运算级中的相应寄存器的输出端,并且其输出端耦接到下一运算级中的相应寄存器的输入端,其中用于每一当前运算级的所述第二组寄存器和所述第一组寄存器中的第一部分寄存器中的每个寄存器的时钟缓冲电路的输入端耦接到用于当前运算级的时钟驱动电路的输出端,每一当前运算级的所述第一组寄存器中的第二部分寄存器中的每个寄存器的时钟信号端和前一运算级中的相应寄存器的时钟信号端耦接到同一时钟缓冲电路的输出端,每一当前运算级的所述第三组寄存器中的第一部分寄存器中的每个寄存器的时钟信号端和前一运算级中的相应寄存器的时钟信号端耦接到同一时钟缓冲电路的输出端,以及用于每一当前运算级的所述第三组寄存器中的第二部分寄存器中的每个寄存器的时钟缓冲电路的输入端耦接到用于前n个运算级的相应寄存器的时钟缓冲电路的输出端,其中i为整数且2≤n≤4。
根据本发明的第三方面,提供了一种计算芯片,包括一个或多个如前所述的哈希引擎。
根据本发明的第四方面,提供了一种算力板,包括一个或多个如前所述的计算芯片。
根据本发明的第五方面,提供了一种加密货币挖矿机,包括一个或多个如前所述的算力板。
根据参照附图的以下描述,本发明的其它特性特征和优点将变得清晰。
附图说明
所包括的附图用于说明性目的,并且仅用于提供本文所公开的发明性装置以及将其应用到计算设备的方法的可能结构和布置的示例。这些附图决不限制本领域的技术人员在不脱离实施方案的实质和范围的前提下可对实施方案进行的在形式和细节方面的任何更改。所述实施方案通过下面结合附图的具体描述将更易于理解,其中类似的附图标记表示类似的结构元件。
图1是根据本发明的实施例的SHA-256哈希引擎的示意图。
图2A是示出了在流水线架构中通过正向时钟树来驱动寄存器的示意图。
图2B是示出了在流水线架构中通过反向时钟树来驱动寄存器的示意图。
图3A和3B是示出了寄存器的建立时间和保持时间的示意图。
图4是示出了根据本发明的实施例的时钟树结构的原理图。
图5是示出了根据本发明的实施例的采用图4的时钟树结构的哈希引擎的示意图。
图6是示出了图5的哈希引擎的一条示例性时钟路径的示意图。
图7是示出了根据本发明的另一实施例的采用图4的时钟树结构的哈希引擎的一条示例性时钟路径的示意图。
图8是示出了根据本发明的再一实施例的采用图4的时钟树结构的哈希引擎的一条示例性时钟路径的示意图。
注意,在以下说明的实施方式中,有时在不同的附图之间共同使用同一附图标记来表示相同部分或具有相同功能的部分,而省略其重复说明。在本说明书中,使用相似的标号和字母表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
为了便于理解,在附图等中所示的各结构的位置、尺寸及范围等有时不表示实际的位置、尺寸及范围等。因此,所公开的发明并不限于附图等所公开的位置、尺寸及范围等。此外,附图不必按比例绘制,一些特征可能被放大以示出具体组件的细节。
具体实施方式
现在将参照附图来详细描述本公开的各种示例性实施例。应当注意,除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。也就是说,本文中的哈希引擎是以示例性的方式示出,来说明本公开中的电路的不同实施例,而并非意图限制。本领域的技术人员将会理解,它们仅仅说明可以用来实施本发明的示例性方式,而不是穷尽的方式。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。
本发明提出了一种新颖的时钟树方案,其可以用于具有流水线(pipeline)架构的任何加密算法电路中。为了描述方便,下面以SHA-256哈希算法电路为例进行阐述。本领域技术人员应当理解,SHA-256仅仅是本发明的时钟树方案可以应用于其中的一个示例,本发明还可用于其他具有流水线结构的加密算法电路中。
现在参考图1,其是根据本发明的实施例的SHA-256哈希引擎的示意图。本领域技术人员将理解,以下对SHA-256的介绍是为了更为清楚的呈现本申请的发明构思,而不意图构成任何限制。本文中所提及的SHA-256包括公知可知的任何版本的SHA-256及其变型例和修改例。
如图1所示,哈希引擎10包括输入模块101、运算模块102和时钟模块103。输入模块101用于接收数据块。运算模块102可以对接收的数据块执行SHA-256哈希运算。时钟模块103用于为运算模块102提供所需的时钟信号。
如图1所示,运算模块102包括以流水线结构布置的多个运算级,第1级……第i级……第N级。N可以是32、64、128等。每个运算级可以包括寄存器A~H和对应的运算逻辑、寄存器W0~W15和对应的组合逻辑以及用于存储常数K的存储器。寄存器W0~W15通常被称为扩展寄存器,因为它们被配置为将输入数据块进行扩展。寄存器A~H通常被称为压缩寄存器,因为它们被配置为将扩展的数据压缩成哈希值。
如图1所示,在寄存器W0~W15中,每一级的寄存器W1~W15的输出提供给下一级的寄存器W0~W14作为输入,而寄存器W0、W1、W9、W14的输出提供给组合逻辑作为输入,该组合逻辑的输出提供给下一级的寄存器W15作为输入。也就是说,每一级的寄存器W0、W1、W9、W14、W15与前一级或当前级的组合逻辑运算有关,其余寄存器则与前一级或当前级的组合逻辑运算无关。
时钟模块103可以为运算模块102提供时钟信号,具体来说,为运算模块102中的每个寄存器提供时钟信号。通常,时钟模块103输出的时钟信号是由单个时钟源导出的。然而在像SHA-256这样的芯片中,存在着大量的诸如寄存器之类的时序器件。如果用单个时钟源信号直接驱动时序器件,则驱动负载能力会成为问题,并且从时钟源到寄存器时钟端的布线过长带来的延时过大。因此,通常采用时钟树的架构来提供时钟信号,即在时钟源和时序器件之间插入缓冲器或者反相器来形成一个时钟分布网络。在流水线架构中,存在正向时钟树和反向时钟树两种时钟树结构。
图2A是示出了在流水线架构中通过正向时钟树来驱动寄存器的示意图。如图所示,由时钟源200和多级时钟驱动电路201-1……201-N组成的时钟树来驱动各流水线运算级202-1……202-N。由于时钟信号的传递方向(从左到右)与流水线的数据传递方向(从左到右)一致,因此该时钟树被称为正向时钟树。
图2B是示出了在流水线架构中通过反向时钟树来驱动寄存器的示意图。如图所示,由时钟源200和多级时钟驱动电路201-1……201-N组成的时钟树来驱动各流水线运算级202-N……202-1。由于时钟信号的传递方向(从右到左)与流水线的数据传递方向(从左到右)相反,因此该时钟树被称为反向时钟树。
不管采用何种时钟树结构,都应当满足寄存器的建立时间(Setup Time)和保持时间(Hold Time)要求。图3A和3B是示出了寄存器的建立时间和保持时间的示意图。建立时间Tsetup是指在时钟沿到来之前数据必须维持稳定的时间。如果建立时间不满足要求,那么数据不能在这个时钟沿被稳定地打入寄存器。保持时间Thold是指在时钟沿到来之后数据必须维持稳定的时间。如果保持时间不满足要求,那么数据同样不能被稳定地打入寄存器。
这里以数字电路设计中一个常见的电路来进行详细说明。如图3A所示,该电路包括触发器301和303以及组合逻辑302。触发器301输出的数据信号Q1经组合逻辑302传送到触发器303的输入,时钟信号CLK控制触发器303捕获数据信号。为使数据信号被触发器303正确地捕获,数据信号应当在时钟沿之前至少Tsetup的时间到达触发器303的输入,而在时钟沿之后至少保持Thold的时间。
在满足Tsetup和Thold的基础上,可以确定中间的组合逻辑电路的传输延时的范围。假设时钟周期为Tclk,触发器输出延时为Tco,组合逻辑的延时为Tcomb。
对于Tsetup,需满足:
Tclk-Tco-Tcomb>Tsetup (公式1)
考虑最坏的情况,即触发器的输出延时最大,组合逻辑电路的延时也最大,则上述公式1变为:
Tclk-Tco-max-Tcomb-max>Tsetup (公式2)
对于Thold,需满足:
Tco+Tcomb>Thold (公式3)
考虑到最坏的情况,即触发器的输出延时最小,组合逻辑电路的延时也最小,则上述公式3变为
Tco-min+Tcomb-min>Thold (公式4)
结合图2A和2B的正向时钟树和反向时钟树,假设每一级时钟驱动电路的延时为Tclklatency,上述公式2和4分别变成下述公式。
对于正向时钟树:
考虑Tsetup:
Tclk+Tclklatency-Tco-max-Tcomb-max>Tsetup (公式5)
也即,
Tclk>Tsetup+Tco-max+Tcomb-max-Tclklatency (公式6)
考虑Thold:
Tco-min+Tcomb-min>Thold+Tclklatency (公式7)
也即,
Tco-min+Tcomb-min-Tclklatency>Thold (公式8)
对于反向时钟树:
考虑Tsetup:
Tclk-Tclklatency-Tco-max-Tcomb-max>Tsetup (公式9)
也即,
Tclk>Tsetup+Tco-max+Tcomb-max+Tclklatency (公式10)
考虑Thold:
Tco-min+Tcomb-min>Thold-Tclklatency (公式11)
也即,
Tco-min+Tcomb-min+Tclklatency>Thold (公式12)
对比公式6和公式10,可知正向时钟树的Tclk可以更小,也即周期更小,相应地芯片的频率可以更快,达到更高性能。而反向时钟树的Tclk需要较大,也即周期更大,于是芯片的频率变慢,性能降低。
但是对比公式8和公式12,可知在采用正向时钟树时触发器的保持时间更不容易满足,而在采用反向时钟树时触发器的保持时间更容易满足。特别是如果两个触发器之间的组合逻辑的延时很小或者甚至不存在组合逻辑时,即Tcomb-min为0,则正向时钟树的保持时间将难以满足。
同步时序电路正常工作的前提是触发器的建立时间和保持时间都得到满足。保持时间是更重要的指标,必须满足。保持时间如果不满足,芯片就无法正常工作。因此,在现有技术中,通常使用反向时钟树以保证满足保持时间Thold要求。但是这会牺牲芯片的频率从而导致芯片的性能降低。
本公开提供了一种新颖的时钟树方案,可以在满足保持时间Thold要求的同时提高芯片的运行频率从而提高芯片性能。
图4是示出了根据本发明的实施例的时钟树结构的原理图。如图4所示,时钟树包括时钟源400、多级时钟驱动电路4011……401j……401i……401M……、第一组时钟缓冲电路4071……407i……407M……、第二组时钟缓冲电路4061……406i……406M……、和第三组时钟缓冲电路4081……408i-1……408M……。第i级时钟驱动电路用于为流水线的第i运算级提供时钟。这里的i、j和M小于流水线的总级数N。
这里以第i运算级为例进行说明。如图4所示,运算模块的第i运算级包括第一类寄存器402i、第二类寄存器403i和第三类寄存器404i。第一类寄存器402i的输出端除了耦接到第i+1运算级的相应寄存器的输入端外,还要耦接到第i运算级的组合逻辑405i的输入端,也即第一类寄存器402i的输出需要参与组合逻辑运算。第二类寄存器403i的输入端耦接到第i-1运算级的组合逻辑405i-1的输出端,也即第二类寄存器403i的输入接收自第i-1运算级的组合逻辑的输出。第一类寄存器402i和第二类寄存器403i均与组合逻辑运算有关。而第三类寄存器404i接收自第i-1运算级的相应寄存器的输出并且将自身的输出提供给第i+1运算级的相应寄存器,也即第三类寄存器404i与第i-1运算级或第i运算级的组合逻辑运算无关。
需要注意的是,这里为了描述简便,每一类寄存器只示出了一个寄存器。但是本领域技术人员应当理解,每一类寄存器的数目不限于一,而是根据实际的电路结构具有任意数目。以图1所示出的SHA-256电路为例,第一类寄存器402i可以包括W0、W1、W9、W14,第二类寄存器403i可以包括W15,第三类寄存器404i可以包括W2~W8以及W10~W13。应当注意,SHA-256电路的寄存器的这样的分类仅仅是一个示例,本领域技术人员根据实际情况可以进行不同的分类方式。
如图4所示,根据本发明的实施例,对于各运算级的寄存器来说,采用的是正向时钟树结构,因为时钟信号的传递方向与数据信号的传递方向是相同的。
以第i运算级为例,具体来说,用于第二类寄存器403i的时钟缓冲电路406i的输入端耦接到当前第i运算级的时钟驱动电路401i的输出端。用于第一类寄存器402i中的部分寄存器的时钟缓冲电路407i的输入端耦接到当前第i运算级的时钟驱动电路401i的输出端。也就是说,第一类寄存器402i中的部分寄存器和第二类寄存器403i的时钟信号端耦接到主时钟树上。
对于第三类寄存器404i,其时钟信号端与前一运算级中的相应寄存器404i-1的时钟信号端耦接到同一时钟缓冲电路408i-1的输出端。第i+1运算级的第三类寄存器404i+1的时钟信号端也耦接到时钟缓冲电路408i-1的输出端,等等,以此类推,直到流水线的最后一级寄存器。这里的相应寄存器404i-1指的是第i运算级的寄存器404i的信号输入端所耦接到的第i-1运算级的那个寄存器404i-1。以SHA-256为例,比如第i运算级的寄存器W11的信号输入端耦接到第i-1运算级的寄存器W12的输出端,因此第i运算级的寄存器W11的时钟信号端与第i-1运算级中的寄存器W12的时钟信号端耦接到同一时钟缓冲电路的输出端。
由于时钟缓冲电路的负载能力有限,因而可以在某个运算级(例如,第M运算级)处插入一个时钟缓冲电路408M,其接收前一时钟缓冲电路408i-1的时钟信号输出,并且为第M运算级的第三类寄存器404M、第M+1运算级的第三类寄存器404M+1、第M+2运算级的第三类寄存器404M+2等提供时钟信号。通常,每个时钟缓冲电路可以驱动2个、3个或4个寄存器。优选地,每个时钟缓冲电路可以驱动2个寄存器。。
也就是说,对于第三类寄存器,一部分寄存器(例如第i运算级的第三类寄存器404i)的时钟信号端耦接到用于为前n个运算级(例如,n为1)中的相应寄存器(例如第i-1运算级的第三类寄存器404i-1)提供时钟信号的时钟缓冲电路408i-1的输出端。而另一部分寄存器(例如第M运算级的第三类寄存器404M)的时钟信号端耦接到用于为当前运算级的该寄存器提供时钟信号的时钟缓冲电路(例如,408M)的输出端,且该时钟缓冲电路408M的输入端耦接到用于前n个运算级的相应寄存器404i-1的时钟缓冲电路408i-1的输出端。这里n与每个时钟缓冲电路可以驱动的寄存器数目相同,即可以为2、3或4。
类似地,时钟缓冲电路408i-1的输入端耦接到前n个运算级的相应时钟缓冲电路的输出端,直到第j运算级。在第j运算级处,用于为后n个运算级的相应时钟缓冲电路提供时钟信号的时钟缓冲电路408j的输入端耦接到主时钟树上。
如前所述,第一类寄存器402i中的部分寄存器的时钟信号端耦接到主时钟树上。而第一类寄存器402i中的其余部分寄存器的时钟路径与第三类寄存器相同。也即,其时钟信号端并不耦接到主时钟树上,而是像第三类寄存器那样,其时钟信号端或者与前一运算级中的相应寄存器的时钟信号端耦接到同一时钟缓冲电路的输出端,或者耦接到用于为当前运算级的该寄存器提供时钟信号的时钟缓冲电路的输出端,且该时钟缓冲电路的输入端耦接到用于前n个运算级的相应寄存器的时钟缓冲电路的输出端。下文将参考图5至图8详细描述。
根据前面的公式8,由于第一类寄存器402i和第二类寄存器403i参与组合逻辑运算,Tcomb-min不为0且相对时钟信号的延时往往较大,因此即使采用正向时钟树,也能满足Thold。而不参与组合逻辑运算的第三类寄存器404i和部分第一类寄存器402i,通过建立局部的子时钟树,将他们耦接到同一个时钟缓冲电路,即使得Tclklatency为0,也能满足Thold。同时,由于时钟模块整体上采用了正向时钟树结构,因此可以提高芯片的运行频率从而提高芯片性能。
下面结合SHA-256的电路结构来说明本发明的上述发明构思的应用示例。
图5是示出了根据本发明的实施例的采用图4的时钟树结构的一个哈希引擎的示意图。图5示出的是一个时钟缓冲电路驱动2个寄存器的情形。在图5中,除时钟驱动电路501之间以及从时钟驱动电路501出发的箭头外,其余实线箭头503表示时钟信号从本级的时钟缓冲电路传递给下一级的寄存器,点划线箭头502表示时钟信号从本级的时钟缓冲电路传递给下两级的相应时钟缓冲电路,虚线箭头504表示数据的传递方向。注意这里省略了不必要的图示和描述以避免模糊主旨。例如,图5的哈希引擎省略了压缩寄存器A~H,只示出了扩展寄存器W0~W15。此外,为了简明,图5仅示出了每一运算级中的一部分寄存器的数据传递和时钟传递情况,而省略了其他寄存器的数据传递和时钟传递。本领域技术人员根据本公开的教导,可以容易地想到各运算级中各寄存器的数据传递和时钟传递情况。
如图5所示,哈希引擎包括多个运算级,每一运算级包括多个寄存器W0~W15,并且由相应的时钟驱动电路501驱动。根据图5所示的实施例,哈希引擎整体上采用正向时钟树结构,并且具有局部的子时钟树。如前所述,每一运算级的第一组寄存器W0、W1、W9、W14和第二组寄存器W15参与组合逻辑运算。这里第一组寄存器中的W1和W14和第二组寄存器W15的时钟耦接到主时钟树上,而第一组寄存器中的W0和W9和第三组寄存器Wk(W2~W8和W10~W13)的时钟路径构成子时钟树。图5为了方便说明省略了时钟缓冲电路,本领域技术人员应当理解,寄存器的时钟信号端均耦接到相应的时钟缓冲电路。
下面结合图6详细描述从第i-3运算级的寄存器W14到第i+11运算级的寄存器W0的子时钟树的时钟路径。图6所示的为图5的哈希引擎中的一条时钟路径,因而每一运算级只示出了一个寄存器,省略了其他寄存器。本领域技术人员应当理解,图5的哈希引擎为流水线结构,因而每一运算级中的其他寄存器的时钟路径与图6所示的类似。如图6所示,时钟信号沿着各运算级的时钟驱动电路601传递,时钟缓冲电路602用于为相应的寄存器提供时钟信号。类似地,除时钟驱动电路601之间以及从时钟驱动电路601出发的箭头外,图6中的其余实线箭头表示时钟信号从时钟缓冲电路传递给寄存器,点划线箭头表示时钟信号从本级的时钟缓冲电路传递给下两级的相应时钟缓冲电路,虚线箭头表示数据的传递方向。
如图5和图6所示,用于为第i-3运算级的寄存器W14提供时钟信号的时钟缓冲电路将时钟信号提供给第i-2运算级的寄存器W13,并且还将时钟信号提供给第i-1运算级的用于为寄存器W12提供时钟信号的时钟缓冲电路。以此类推,用于为第i+1运算级的寄存器W10提供时钟信号的时钟缓冲电路将时钟信号提供给第i+2运算级的寄存器W9,并且还将时钟信号提供给第i+3运算级的用于为寄存器W8提供时钟信号的时钟缓冲电路。
对于i+2运算级的寄存器W9来说,其输出信号除了提供给i+3运算级的寄存器W8之外,还需要参与给i+3运算级的寄存器W15的信号输入的组合运算。对于i+3运算级的寄存器W15的时钟信号来说,从i-3运算级开始需要经过主时钟树上的7个时钟驱动电路和1个时钟缓冲电路的信号延迟,而对于i+2运算级的寄存器W9的时钟信号来说,从i-3运算级开始需要主时钟树上的1个时钟驱动电路和3个时钟缓冲电路的信号延迟,因此到W15的建立时间Tsetup可以保证。
接着参考图5和图6,用于为第i+3运算级的寄存器W8提供时钟信号的时钟缓冲电路将时钟信号提供给第i+4运算级的寄存器W7,并且还将时钟信号提供给第i+5运算级的用于为寄存器W6提供时钟信号的时钟缓冲电路。以此类推,直到用于为第i+7运算级的寄存器W4提供时钟信号的时钟缓冲电路将时钟信号提供给第i+8运算级的寄存器W3,并且还将时钟信号提供给第i+9运算级的用于为寄存器W2提供时钟信号的时钟缓冲电路。第i+10运算级的寄存器W1通过时钟缓冲电路耦接到当前运算级的时钟驱动电路上。此外,用于为第i+10运算级的寄存器W1提供时钟信号的时钟缓冲电路将时钟信号提供给第i+11运算级的寄存器W0。
第i+10运算级的寄存器W1的信号输出要参与给第i+11运算级的寄存器W15的信号输入的组合运算,由于从W14到W1的时钟路径上的时钟单元比主时钟树上的时钟单元少得多,可能会导致第i+11运算级的寄存器W15的保持时间Thold不满足。因此在寄存器W2和寄存器W1之间插入一个附加寄存器W1_t。附加寄存器W1_t的输出端耦接到当前运算级的寄存器W1的输入端,其输入端耦接到前一运算级的寄存器W2的输出端,以及其时钟信号端耦接到用于前一运算级的寄存器W2的时钟缓冲电路的输出端。通过寄存器W1_t将信号不经过任何逻辑直接传递给同一运算级的W1,可以保证寄存器的保持时间Thold得到满足。
图7是示出了根据本发明的另一实施例的采用图4的时钟树结构的哈希引擎的一条示例性时钟路径的示意图。需要注意的是,这里与图5和6相同的部分将不再赘述,而只描述与其不同的部分。
图7示出的是一个时钟缓冲电路驱动3个寄存器的情形。类似地,在图7中,时钟信号沿着各运算级的时钟驱动电路701传递,时钟缓冲电路702用于为相应的寄存器提供时钟信号。类似地,除时钟驱动电路701之间以及从时钟驱动电路701出发的箭头外,图7中的其余实线箭头表示时钟信号从时钟缓冲电路传递给寄存器,点划线箭头表示时钟信号从本级的时钟缓冲电路传递给后三级的相应时钟缓冲电路,虚线箭头表示数据的传递方向。类似地,图7所示的为采用图4的时钟树结构的哈希引擎中的从第i-3运算级的寄存器W14到第i+11运算级的寄存器W0的一条时钟路径,因而每一运算级只示出了一个寄存器,省略了其他寄存器。本领域技术人员应当理解,图7的哈希引擎为流水线结构,因而每一运算级中的其他寄存器的时钟路径与图7所示的类似。
如图7所示,用于为第i-3运算级的寄存器W14提供时钟信号的时钟缓冲电路将时钟信号提供给第i-2运算级的寄存器W13和第i-1运算级的寄存器W12,并且还将时钟信号提供给第i运算级的用于为寄存器W11提供时钟信号的时钟缓冲电路。以此类推,用于为第i+6运算级的寄存器W5提供时钟信号的时钟缓冲电路将时钟信号提供给第i+7运算级的寄存器W4和第i+8运算级的寄存器W3,并且还将时钟信号提供给第i+9运算级的用于为寄存器W2提供时钟信号的时钟缓冲电路。第i+9运算级的用于为寄存器W2提供时钟信号的时钟缓冲电路还将时钟信号提供给第i+10运算级的寄存器W1_t。第i+10运算级的寄存器W1通过时钟缓冲电路耦接到当前运算级的时钟驱动电路上。此外,用于为第i+10运算级的寄存器W1提供时钟信号的时钟缓冲电路将时钟信号提供给第i+11运算级的寄存器W0。
图8是示出了根据本发明的再一实施例的采用图4的时钟树结构的哈希引擎的一条示例性时钟路径的示意图。需要注意的是,这里与图5、6和7相同的部分将不再赘述,而只描述与其不同的部分。
图8示出的是一个时钟缓冲电路驱动4个寄存器的情形。类似地,在图8中,时钟信号沿着各运算级的时钟驱动电路801传递,时钟缓冲电路802用于为相应的寄存器提供时钟信号。类似地,除时钟驱动电路801之间以及从时钟驱动电路801出发的箭头外,图8中的其余实线箭头表示时钟信号从时钟缓冲电路传递给寄存器,点划线箭头表示时钟信号从本级的时钟缓冲电路传递给后四级的相应时钟缓冲电路,虚线箭头表示数据的传递方向。类似地,图8所示的为采用图4的时钟树结构的哈希引擎中的从第i-3运算级的寄存器W14到第i+11运算级的寄存器W0的一条时钟路径,因而每一运算级只示出了一个寄存器,省略了其他寄存器。本领域技术人员应当理解,图8的哈希引擎为流水线结构,因而每一运算级中的其他寄存器的时钟路径与图8所示的类似。
如图8所示,用于为第i-3运算级的寄存器W14提供时钟信号的时钟缓冲电路将时钟信号提供给第i-2运算级的寄存器W13、第i-1运算级的寄存器W12和第i运算级的寄存器W11,并且还将时钟信号提供给第i+1运算级的用于为寄存器W10提供时钟信号的时钟缓冲电路。以此类推,用于为第i+5运算级的寄存器W6提供时钟信号的时钟缓冲电路将时钟信号提供给第i+6运算级的寄存器W5、第i+7运算级的寄存器W4和第i+8运算级的寄存器W3,并且还将时钟信号提供给第i+9运算级的用于为寄存器W2提供时钟信号的时钟缓冲电路。第i+9运算级的用于为寄存器W2提供时钟信号的时钟缓冲电路还将时钟信号提供给第i+10运算级的寄存器W1_t。第i+10运算级的寄存器W1通过时钟缓冲电路耦接到当前运算级的时钟驱动电路上。此外,用于为第i+10运算级的寄存器W1提供时钟信号的时钟缓冲电路将时钟信号提供给第i+11运算级的寄存器W0。
在根据本公开的实施例中,前文所述的寄存器可以包括边沿触发型寄存器,例如上升沿触发的寄存器和/或下降沿触发的寄存器。寄存器可以包括D触发器(DFF)和/或锁存器(Latch),锁存器可以例如是采用脉冲类型的时钟信号的锁存器。
根据本公开的实施例,前文所述的多级时钟驱动电路中的每一级时钟驱动电路可以包括奇数个反相器。例如,每一级时钟驱动电路可以包括一个反相器。
根据本公开的实施例,前文所述的时钟缓冲电路可以包括一个或多个时钟缓冲器。
本领域技术人员将理解,虽然前文结合SHA-256的一个电路结构描述了本发明的构思,但是该电路结构不意图对本发明构思构成任何限制。本发明构思可以应用于公知可知的任何版本的SHA-256及其变型例和修改例。甚至,本发明构思可以应用于具有流水线结构且包括时序器件的任何计算电路中。
根据本公开的实施例,如上所述的哈希引擎可以被实施为一种计算芯片。
本领域技术人员将理解,可以通过用诸如Verilog或VHDL的硬件描述语言(HDL)来实现根据本公开的电路和/或芯片。可以针对给定集成电路制造技术设计的单元库合成HDL描述,并可以出于定时、功率和其他原因修改,以获得最终的设计数据库,可以将最终的设计数据库传输到工厂以通过半导体制造系统生产集成电路。半导体制造系统可通过(例如在可包括掩膜的晶片上)沉积半导体材料、移除材料、改变所沉积材料的形状、(例如通过掺杂材料或利用紫外处理修改介电常数)对材料改性等等来生产集成电路。集成电路可以包括晶体管并还可以包括其他电路元件(例如,诸如电容器、电阻器、电感器等无源元件)以及晶体管和电路元件之间的互连。
根据本公开的实施例,如上所述的计算芯片可以包括在算力板中。具体来说,算力板可以包括一个或多个计算芯片。多个计算芯片可以并行地执行计算任务。
根据本公开的实施例,如上所述的算力板可以包括在一种计算设备中,该计算设备优选地用于执行加密货币的挖掘。例如计算设备可以是比特币挖矿机。具体来说,加密货币挖矿机可以包括一个或多个算力板。多个算力板可以并行地执行计算任务,例如执行SHA-256算法。
在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。
还应理解,“包括/包含”一词在本文中使用时,说明存在所指出的特征、整体、步骤、操作、单元和/或组件,但是并不排除存在或增加一个或多个其它特征、整体、步骤、操作、单元和/或组件以及/或者它们的组合。
虽然已通过示例详细展示了本发明的一些具体实施例,但是本领域技术人员应当理解,上述示例仅意图是说明性的而不限制本发明的范围。本领域技术人员应该理解,上述实施例可以在不脱离本发明的范围和实质的情况下被修改。本发明的范围是通过所附的权利要求限定的。
Claims (14)
1.一种哈希引擎,包括:
输入模块,被配置为接收数据块;
运算模块,被配置为对接收的数据块进行哈希运算,所述运算模块包括以流水线结构布置的多个运算级以使得基于所述数据块的数字信号沿着所述多个运算级依次传递,所述多个运算级中的每个运算级包括多个寄存器和组合逻辑模块;和
时钟模块,被配置为向所述多个运算级的每一个运算级提供时钟信号,所述时钟模块包括多级时钟驱动电路以使得来自于时钟源的时钟信号沿着所述多级时钟驱动电路依次传递,其中对于所述多个运算级中的每个运算级的所述多个寄存器,所述数字信号的传递方向与所述时钟信号的传递方向相同。
2.如权利要求1所述的哈希引擎,其中在每一当前运算级中,
所述多个寄存器中的第一组寄存器中的每个寄存器的输出端至少耦接到当前运算级的组合逻辑模块的输入端,
所述多个寄存器中的第二组寄存器中的每个寄存器的输入端耦接到前一运算级的组合逻辑模块的输出端,以及
所述多个寄存器中的第三组寄存器中的每个寄存器的输入端耦接到前一运算级中的相应寄存器的输出端,并且其输出端耦接到下一运算级中的相应寄存器的输入端。
3.如权利要求2所述的哈希引擎,其中所述时钟模块还包括用于所述多个寄存器中的每个寄存器的时钟缓冲电路,每个寄存器的时钟信号端耦接到对应时钟缓冲电路的输出端,
用于每一当前运算级的所述第二组寄存器和所述第一组寄存器中的第一部分寄存器中的每个寄存器的时钟缓冲电路的输入端耦接到用于当前运算级的时钟驱动电路的输出端,以及
每一当前运算级的所述第一组寄存器中的第二部分寄存器中的每个寄存器的时钟信号端和前一运算级中的相应寄存器的时钟信号端耦接到同一时钟缓冲电路的输出端。
4.如权利要求3所述的哈希引擎,其中,
每一当前运算级的所述第三组寄存器中的第一部分寄存器中的每个寄存器的时钟信号端和前一运算级中的相应寄存器的时钟信号端耦接到同一时钟缓冲电路的输出端,以及
用于每一当前运算级的所述第三组寄存器中的第二部分寄存器中的每个寄存器的时钟缓冲电路的输入端耦接到用于前n个运算级的相应寄存器的时钟缓冲电路的输出端,其中n为整数且2≤n≤4。
5.如权利要求4所述的哈希引擎,其中每一当前运算级的所述多个寄存器还包括一个或多个附加寄存器,所述一个或多个附加寄存器中的一个附加寄存器的输出端耦接到当前运算级的所述第一组寄存器中的特定寄存器的输入端,其输入端耦接到前一运算级的对应于所述特定寄存器的相应寄存器的输出端,并且其时钟信号端耦接到用于前一运算级中的对应于所述特定寄存器的相应寄存器的时钟缓冲电路的输出端。
6.如权利要求5所述的哈希引擎,其中所述哈希引擎用于执行SHA-256算法,每一当前运算级的所述多个寄存器至少包括第一至第十六寄存器(W0……W15),所述第一组寄存器包括第一、第二、第十和第十五寄存器(W0、W1、W9、W14),所述第二组寄存器包括第十六寄存器(W15),以及所述第三组寄存器包括第三至第九寄存器(W2……W8)和第十一至第十四寄存器(W10……W13),
用于每一当前运算级的第二、第十五寄存器和第十六寄存器(W1、W14、W15)的时钟缓冲电路的输入端耦接到用于当前运算级的时钟驱动电路的输出端,
每一当前运算级的第一寄存器(W0)的时钟信号端耦接到用于前一运算级的第二寄存器(W1)的时钟缓冲电路的输出端,以及
所述一个或多个附加寄存器包括第十七寄存器(W1_t),其输出端耦接到当前运算级的第二寄存器(W1)的输入端,其输入端耦接到前一运算级的第三寄存器(W2)的输出端,以及其时钟信号端耦接到用于前一运算级的第三寄存器(W2)的时钟缓冲电路的输出端。
7.如权利要求6所述的哈希引擎,其中,当n为2时,
每一当前运算级的第k寄存器(Wk-1)的时钟信号端耦接到用于前一运算级的第k+1寄存器(Wk)的时钟缓冲电路的输出端,以及
用于每一当前运算级的第k-1寄存器(Wk-2)的时钟缓冲电路的输入端耦接到用于前两个运算级的第k+1寄存器(Wk)的时钟缓冲电路的输出端,其中k为偶数且4≤k≤14。
8.如权利要求6所述的哈希引擎,其中,当n为3时,
每一当前运算级的第k+2寄存器(Wk+1)的时钟信号端耦接到用于前一运算级的第k+3寄存器(Wk+2)的时钟缓冲电路的输出端,
每一当前运算级的第k+1寄存器(Wk)的时钟信号端和前一运算级的第k+2寄存器(Wk+1)的时钟信号端一起耦接到用于前两个运算级的第k+3寄存器(Wk+2)的时钟缓冲电路的输出端,以及
用于每一当前运算级的第k寄存器(Wk-1)的时钟缓冲电路的输入端耦接到用于前三个运算级的第k+3寄存器(Wk+2)的时钟缓冲电路的输出端,其中k为3的倍数且3≤k≤12。
9.如权利要求6所述的哈希引擎,其中,当n为4时,
每一当前运算级的第k+2寄存器(Wk+1)的时钟信号端耦接到用于前一运算级的第k+3寄存器(Wk+2)的时钟缓冲电路的输出端,
每一当前运算级的第k+1寄存器(Wk)的时钟信号端和前一运算级的第k+2寄存器(Wk+1)的时钟信号端一起耦接到用于前两个运算级的第k+3寄存器(Wk+2)的时钟缓冲电路的输出端,
每一当前运算级的第k寄存器(Wk-1)的时钟信号端和前一运算级的第k+1寄存器(Wk)的时钟信号端以及前两个运算级的第k+2寄存器(Wk+1)的时钟信号端一起耦接到用于前三个运算级的第k+3寄存器(Wk+2)的时钟缓冲电路的输出端,以及
用于每一当前运算级的第k-1寄存器(Wk-2)的时钟缓冲电路的输入端耦接到用于前四个运算级的第k+3寄存器(Wk+2)的时钟缓冲电路的输出端,其中k为4的倍数且4≤k≤12。
10.如权利要求1所述的哈希引擎,其中所述多级时钟驱动电路中的每一级时钟驱动电路包括奇数个反相器。
11.一种时钟树电路,包括:
时钟源,用于提供基本时钟信号;和
多级时钟驱动电路,其中来自于所述时钟源的基本时钟信号沿着所述多级时钟驱动电路依次传递,所述多级时钟驱动电路中的每一级时钟驱动电路用于为多个运算级的每个运算级提供时钟信号,其中所述多个运算级以流水线结构布置以使得基于接收的数据块的数字信号沿着所述多个运算级依次传递,所述多个运算级中的每个运算级包括多个寄存器和组合逻辑模块;和
多个时钟缓冲电路,用于接收来自于所述多级时钟驱动电路的信号并且为所述多个寄存器中的每个寄存器提供时钟信号,其中每个寄存器的时钟信号端耦接到对应时钟缓冲电路的输出端,
其中对于所述多个运算级中的每个运算级的所述多个寄存器,所述数字信号的传递方向与所述时钟信号的传递方向相同,
其中在每一当前运算级中,所述多个寄存器中的第一组寄存器中的每个寄存器的输出端至少耦接到当前运算级的组合逻辑模块的输入端,所述多个寄存器中的第二组寄存器中的每个寄存器的输入端耦接到前一运算级的组合逻辑模块的输出端,以及所述多个寄存器中的第三组寄存器中的每个寄存器的输入端耦接到前一运算级中的相应寄存器的输出端,并且其输出端耦接到下一运算级中的相应寄存器的输入端,
其中用于每一当前运算级的所述第二组寄存器和所述第一组寄存器中的第一部分寄存器中的每个寄存器的时钟缓冲电路的输入端耦接到用于当前运算级的时钟驱动电路的输出端,
每一当前运算级的所述第一组寄存器中的第二部分寄存器中的每个寄存器的时钟信号端和前一运算级中的相应寄存器的时钟信号端耦接到同一时钟缓冲电路的输出端,
每一当前运算级的所述第三组寄存器中的第一部分寄存器中的每个寄存器的时钟信号端和前一运算级中的相应寄存器的时钟信号端耦接到同一时钟缓冲电路的输出端,以及
用于每一当前运算级的所述第三组寄存器中的第二部分寄存器中的每个寄存器的时钟缓冲电路的输入端耦接到用于前n个运算级的相应寄存器的时钟缓冲电路的输出端,其中i为整数且2≤n≤4。
12.一种计算芯片,包括一个或多个如权利要求1-10中任一项所述的哈希引擎。
13.一种算力板,包括一个或多个如权利要求12所述的计算芯片。
14.一种加密货币挖矿机,包括一个或多个如权利要求13所述的算力板。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010687821.2A CN111930682B (zh) | 2020-07-16 | 2020-07-16 | 时钟树、哈希引擎、计算芯片、算力板和计算设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010687821.2A CN111930682B (zh) | 2020-07-16 | 2020-07-16 | 时钟树、哈希引擎、计算芯片、算力板和计算设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111930682A true CN111930682A (zh) | 2020-11-13 |
CN111930682B CN111930682B (zh) | 2024-08-13 |
Family
ID=73314090
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010687821.2A Active CN111930682B (zh) | 2020-07-16 | 2020-07-16 | 时钟树、哈希引擎、计算芯片、算力板和计算设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111930682B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111651403A (zh) * | 2020-07-16 | 2020-09-11 | 深圳比特微电子科技有限公司 | 时钟树、哈希引擎、计算芯片、算力板和数字货币挖矿机 |
TWI766754B (zh) * | 2020-12-18 | 2022-06-01 | 大陸商深圳比特微電子科技有限公司 | 執行哈希算法的電路、計算晶片、數據處理設備和方法 |
WO2022127085A1 (zh) * | 2020-12-18 | 2022-06-23 | 深圳比特微电子科技有限公司 | 执行哈希算法的电路、计算芯片、数据处理设备和方法 |
TWI775514B (zh) * | 2020-11-23 | 2022-08-21 | 大陸商深圳比特微電子科技有限公司 | 運算核、計算晶片和數據處理設備 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101002244B1 (ko) * | 2010-05-11 | 2010-12-20 | 인하대학교 산학협력단 | 듀얼 델타-시그마 모듈레이터를 이용한 허쉬-키스 변조 파형의 대역 확산 클록 발생기 |
CN102195638A (zh) * | 2011-03-28 | 2011-09-21 | 东南大学 | 一种低延时数字时钟分频方法 |
CN104052488A (zh) * | 2013-03-15 | 2014-09-17 | 美国亚德诺半导体公司 | 数据转换器的有效时钟树 |
CN111651403A (zh) * | 2020-07-16 | 2020-09-11 | 深圳比特微电子科技有限公司 | 时钟树、哈希引擎、计算芯片、算力板和数字货币挖矿机 |
CN111651402A (zh) * | 2020-07-16 | 2020-09-11 | 深圳比特微电子科技有限公司 | 时钟树、哈希引擎、计算芯片、算力板和数字货币挖矿机 |
CN212515799U (zh) * | 2020-07-16 | 2021-02-09 | 深圳比特微电子科技有限公司 | 时钟树、哈希引擎、计算芯片、算力板和加密货币挖矿机 |
CN212515801U (zh) * | 2020-07-16 | 2021-02-09 | 深圳比特微电子科技有限公司 | 时钟树、哈希引擎、计算芯片、算力板和加密货币挖矿机 |
-
2020
- 2020-07-16 CN CN202010687821.2A patent/CN111930682B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101002244B1 (ko) * | 2010-05-11 | 2010-12-20 | 인하대학교 산학협력단 | 듀얼 델타-시그마 모듈레이터를 이용한 허쉬-키스 변조 파형의 대역 확산 클록 발생기 |
CN102195638A (zh) * | 2011-03-28 | 2011-09-21 | 东南大学 | 一种低延时数字时钟分频方法 |
CN104052488A (zh) * | 2013-03-15 | 2014-09-17 | 美国亚德诺半导体公司 | 数据转换器的有效时钟树 |
CN111651403A (zh) * | 2020-07-16 | 2020-09-11 | 深圳比特微电子科技有限公司 | 时钟树、哈希引擎、计算芯片、算力板和数字货币挖矿机 |
CN111651402A (zh) * | 2020-07-16 | 2020-09-11 | 深圳比特微电子科技有限公司 | 时钟树、哈希引擎、计算芯片、算力板和数字货币挖矿机 |
CN212515799U (zh) * | 2020-07-16 | 2021-02-09 | 深圳比特微电子科技有限公司 | 时钟树、哈希引擎、计算芯片、算力板和加密货币挖矿机 |
CN212515801U (zh) * | 2020-07-16 | 2021-02-09 | 深圳比特微电子科技有限公司 | 时钟树、哈希引擎、计算芯片、算力板和加密货币挖矿机 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111651403A (zh) * | 2020-07-16 | 2020-09-11 | 深圳比特微电子科技有限公司 | 时钟树、哈希引擎、计算芯片、算力板和数字货币挖矿机 |
CN111651403B (zh) * | 2020-07-16 | 2024-10-01 | 深圳比特微电子科技有限公司 | 时钟树、哈希引擎、计算芯片、算力板和计算设备 |
TWI775514B (zh) * | 2020-11-23 | 2022-08-21 | 大陸商深圳比特微電子科技有限公司 | 運算核、計算晶片和數據處理設備 |
TWI766754B (zh) * | 2020-12-18 | 2022-06-01 | 大陸商深圳比特微電子科技有限公司 | 執行哈希算法的電路、計算晶片、數據處理設備和方法 |
WO2022127085A1 (zh) * | 2020-12-18 | 2022-06-23 | 深圳比特微电子科技有限公司 | 执行哈希算法的电路、计算芯片、数据处理设备和方法 |
US11658807B2 (en) | 2020-12-18 | 2023-05-23 | Shenzhen Microbt Electronics Technology Co., Ltd. | Circuit for performing hash algorithm, computing chip, data processing device and method |
Also Published As
Publication number | Publication date |
---|---|
CN111930682B (zh) | 2024-08-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11522546B2 (en) | Clock tree, hash engine, computing chip, hash board and data processing device | |
CN111930682A (zh) | 时钟树、哈希引擎、计算芯片、算力板和数字货币挖矿机 | |
CN212515800U (zh) | 时钟树、哈希引擎、计算芯片、算力板和加密货币挖矿机 | |
CN212515801U (zh) | 时钟树、哈希引擎、计算芯片、算力板和加密货币挖矿机 | |
TWI784457B (zh) | 時鐘電路系統、計算晶片、算力板和資料處理設備 | |
CN111651403A (zh) | 时钟树、哈希引擎、计算芯片、算力板和数字货币挖矿机 | |
CN212515799U (zh) | 时钟树、哈希引擎、计算芯片、算力板和加密货币挖矿机 | |
TWI784864B (zh) | 流水線時鐘驅動電路、計算晶片、算力板和計算設備 | |
JPH08339236A (ja) | クロック信号分配回路 | |
CN212160484U (zh) | 时钟电路系统、计算芯片、算力板和数字货币挖矿机 | |
WO2021244113A1 (zh) | 时钟电路、计算芯片、算力板和数据处理设备 | |
Alioto et al. | A simple strategy for optimized design of one-level carry-skip adders | |
Fu et al. | A global optimization algorithm for buffer and splitter insertion in adiabatic quantum-flux-parametron circuits | |
CN110673689B (zh) | 时钟控制电路及方法 | |
WO2003038687A2 (en) | Optimization of the design of a synchronous digital circuit | |
Das et al. | A timing-driven approach to synthesize fast barrel shifters | |
JPS6369262A (ja) | 半導体集積回路 | |
CN111061335B (zh) | 时钟网络电路、电路系统、芯片及电子设备 | |
Wang et al. | A high-speed single-phase-clocked CMOS priority encoder | |
CN112463116A (zh) | 用于划分组合逻辑的方法和电路 | |
Zhou et al. | 64-bit prefix adders: Power-efficient topologies and design solutions | |
CN212086173U (zh) | 时钟电路、计算芯片、算力板和数字货币挖矿机 | |
WO2022105252A1 (zh) | 运算核、计算芯片和数据处理设备 | |
CN213399572U (zh) | 运算核、计算芯片和加密货币矿机 | |
CN213399573U (zh) | 运算核、计算芯片和加密货币矿机 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |