CN111813452A - 用于执行散列算法的运算电路、芯片和计算装置 - Google Patents
用于执行散列算法的运算电路、芯片和计算装置 Download PDFInfo
- Publication number
- CN111813452A CN111813452A CN202010837928.0A CN202010837928A CN111813452A CN 111813452 A CN111813452 A CN 111813452A CN 202010837928 A CN202010837928 A CN 202010837928A CN 111813452 A CN111813452 A CN 111813452A
- Authority
- CN
- China
- Prior art keywords
- delay
- outputs
- coupled
- stage
- arithmetic
- 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.)
- Pending
Links
- 230000000295 complement effect Effects 0.000 claims abstract description 39
- 230000001934 delay Effects 0.000 description 12
- 238000005065 mining Methods 0.000 description 10
- 230000000153 supplemental effect Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 8
- 230000000630 rising effect Effects 0.000 description 8
- 238000000034 method Methods 0.000 description 6
- 238000004519 manufacturing process Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000009412 basement excavation Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000003071 parasitic effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
Images
Classifications
-
- 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
- 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/7814—Specially adapted for real time processing, e.g. comprising hardware timers
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Software Systems (AREA)
- Finance (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computing Systems (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- General Business, Economics & Management (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本公开涉及用于执行散列算法的运算电路、芯片和计算装置。执行散列算法的运算电路,包括以流水线结构布置的多个运算级,每个运算级包括:一组输入和一组输出,输入对应耦接到前一运算级的输出,输出对应耦接到后一运算级的输入;多个组合逻辑模块,每一个的输入耦接到一组输入中至少一部分;多个延时模块,每一个的输入耦接到一组输入之一,输出耦接到一组输出中的不与组合逻辑模块相耦接的一个,使这样的输出各自耦接到一个延时模块;多个补充延时模块,每一个的输入耦接到对应组合逻辑模块的输出,输出耦接到一组输出之一,其中,每个延时模块和补充延时模块由串联的相同延时单元构成,使从每个运算级的输入到输出中每一个的计算延时基本相等。
Description
技术领域
本公开涉及比特币挖矿。具体来说,涉及用于执行散列算法的运算电路,以及包括该运算电路的 芯片和计算装置。
背景技术
比特币的概念最初由中本聪在2008年11月1日提出,并于2009年1月3日正式诞生。比特币 依据特定算法通过大量运算来产生。
使用矿机来进行比特币挖矿的核心是根据矿机计算SHA-256算法的运算能力来获得奖励。对于 矿机而言,芯片尺寸、芯片运行速度和芯片功耗是决定矿机性能的至关重要的三个因素,其中,芯片 尺寸决定芯片成本,芯片运行的速度决定矿机运行速度(即算力),芯片功耗决定耗电程度(即挖矿 成本)。在实际应用中,衡量矿机最为重要的性能指标是单位算力所消耗的功耗,即功耗算力比。
图1示出了现有技术的用于比特币挖矿的运算电路100。运算电路100采用流水线(pipeline) 结构来实现SHA-256算法。
如图1所示,运算电路100包括以流水线结构布置的N个运算级,其中每个运算级具有一组输 入101和一组输出102,每个运算级的一组输入对应地耦接到前一运算级的一组输出,并且每个运算 级的一组输出对应地耦接到后一运算级的一组输入。
每个运算级包括多个组合逻辑模块111、112、113,用于基于输入到该运算级的数据进行组合逻 辑运算。
此外,每个运算级还包括一组寄存器,用于存储数据。如图1所示,每组寄存器包括8个缓存寄 存器A、B、C、D、E、F、G、H以及16个扩展寄存器W0、W1、W2、W3、W4、W5、W6、W7、 W8、W9、W10、W11、W12、W13、W14、W15。
需要说明的是,为了便于理解,图1中的每一组寄存器的编号对应于SHA-256算法而编定,并 且每个寄存器及各个组合逻辑模块111、112、113之间的连接关系也对应于SHA-256算法而示意性 地绘出。为了清楚起见,仅在第一个运算级中绘出了寄存器及各个组合逻辑模块111、112、113之间 的连接关系。
每组寄存器由时钟控制,将数据沿着各个运算级依次传递。在每个时钟周期,每一组寄存器被触 发,将其中存储的一组数据传递到下一个运算级以进行计算。同时,新的一组输入数据被输入到运算 电路100的输入101处,并经由第一组寄存器而被传递到第一个运算级以开始计算;并且新的一组输 出数据经由最后一组寄存器而从运算电路100的输出102处输出。即,该时钟用于触发寄存器、馈送 输入数据及提取输出数据。
当寄存器被触发时,其输入端处的信号应当已经稳定,并且能够被该寄存器向后传递。因此,该 时钟的周期受到每个运算级的计算延时的限制,即,时钟周期应大于或等于每个运算级的计算延时。 一般而言,时钟周期被选择为基本等于每个运算级的计算延时。
对于运算电路100,寄存器延时(例如,当寄存器为锁存器时的Ck2q延时)、时钟树延时等一 般远小于组合逻辑模块的计算延时。因此,时钟周期可以被选择为基本等于每个运算级的组合逻辑模 块的计算延时。
因此,用于执行散列算法的运算电路100的吞吐率和算力由用于寄存器的时钟频率决定,即,由 每个运算级的组合逻辑模块的计算延时决定。
但是,期望在不需要减小每个运算级的组合逻辑模块的计算延时的基础上,提高运算电路100的 计算频率和吞吐率,从而降低功耗算力比。因此存在对于新的技术的需求。
发明内容
本公开的目的之一是提供一种用于执行散列算法的运算电路。
根据本公开的一个方面,提供了一种用于执行散列算法的运算电路,其特征在于,所述运算电路 包括以流水线结构布置的多个运算级,其中每个运算级包括:一组输入和一组输出,所述一组输入对 应地耦接到前一运算级的一组输出,并且所述一组输出对应地耦接到后一运算级的一组输入;多个组 合逻辑模块,每个组合逻辑模块的输入耦接到所述一组输入中的至少一部分;多个延时模块,每个延 时模块的输入耦接到所述一组输入中的一个,并且输出耦接到所述一组输出中的不与组合逻辑模块相 耦接的一个,使得所述一组输出中的不与组合逻辑模块相耦接的输出各自耦接到一个延时模块;以及 多个补充延时模块,每个补充延时模块的输入耦接到对应的组合逻辑模块的输出,并且输出耦接到所 述一组输出中的一个,其中,每个运算级的延时模块和补充延时模块中的每一个由串联连接的相同的 延时单元构成,并且被配置为使得从每个运算级的所述一组输入到所述一组输出中的每一个的计算延 时基本相等。
根据本公开的另一个方面,提供了一种芯片,其包括如上所述的运算电路。
根据本公开的又一个方面,提供了一种计算装置,其包括如上所述的芯片。
通过以下参照附图对本公开的示例性实施例的详细描述,本公开的其它特征及其优点将会变得更 为清楚。
附图说明
构成说明书的一部分的附图描述了本公开的实施例,并且连同说明书一起用于解释本公开的原理。
参照附图,根据下面的详细描述,可以更加清楚地理解本公开,其中:
图1示出了根据现有技术的用于执行散列算法的运算电路的示意图。
图2示出了根据本公开一个或多个示例性实施例的用于执行散列算法的运算电路的示意图。
图3示出了图2所示的运算电路中的一个运算级的示意图。
图4示出了图2所示的运算电路执行散列算法的时序示意图。
注意,在以下说明的实施方式中,有时在不同的附图之间共同使用同一附图标记来表示相同部分 或具有相同功能的部分,而省略其重复说明。在一些情况中,使用相似的标号和字母表示类似项,因 此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
为了便于理解,在附图等中所示的各结构的位置、尺寸及范围等有时不表示实际的位置、尺寸及 范围等。因此,本公开并不限于附图等所公开的位置、尺寸及范围等。
具体实施方式
下面将参照附图来详细描述本公开的各种示例性实施例。应注意到:除非另外具体说明,否则在 这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用 的任何限制。也就是说,本文中的结构及方法是以示例性的方式示出,来说明本公开中的结构和方法 的不同实施例。然而,本领域技术人员将会理解,它们仅仅说明可以用来实施的本公开的示例性方式, 而不是穷尽的方式。此外,附图不必按比例绘制,一些特征可能被放大以示出具体组件的细节。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述 技术、方法和设备应当被视为授权说明书的一部分。
在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因 此,示例性实施例的其它示例可以具有不同的值。
图2示出了根据本公开一个或多个示例性实施例的用于执行散列算法的运算电路200的示意图。 运算电路200可以用于执行SHA-256算法。
如图2所示,运算电路200包括以流水线结构布置的N个运算级(N为正整数),其中每个运 算级包括:一组输入和一组输出,多个组合逻辑模块211、212、213,多个延时模块230,以及多个 补充延时模块221、222、223。
为了便于理解,图2中的每个运算级的各个输入、输出以及各个组合逻辑模块211、212、213 之间的连接关系对应于SHA-256算法而示意性地绘出。为了清楚起见,仅在第一个运算级中绘出了各 个输入、输出及各个组合逻辑模块211、212、213之间的连接关系。
例如,第一个运算级包括一组输入201-1和一组输出202-1,其中输入201-1和输出202-1各 自包括24个数据,其分别对应于在图1所示的运算电路100中的8个缓存寄存器A、B、C、D、E、 F、G、H以及16个扩展寄存器W0、W1、W2、W3、W4、W5、W6、W7、W8、W9、W10、W11、 W12、W13、W14、W15中存储的数据。为了便于理解,在每组输入和输出处示意性地标明了各个数据在现有技术中所对应的寄存器的标号。
第一个运算级还包括多个组合逻辑模块211、212、213,每个组合逻辑模块的输入耦接到一组输 入201-1中的至少一部分。例如,组合逻辑模块213的输入耦接到一组输入201-1中的标号为W0、 W1、W9、W14的输入。运算电路200中的组合逻辑模块211、212、213的配置和功能与图1所示 的运算电路100中的组合逻辑模块111、112、113的配置和功能分别对应。
此外,第一个运算级还包括多个延时模块230和多个补充延时模块221、222、223。
其中,每个延时模块230的输入耦接到一组输入201-1中的一个,并且输出耦接到一组输出202-1 中的不与组合逻辑模块相耦接的一个,使得一组输出202-1中的不与组合逻辑模块相耦接的输出各自 耦接到一个延时模块。例如,图2中最上面一个延时模块230的输入耦接到输入201-1中的标号为A 的输入,并且输出耦接到输出202-1中的标号为B的输出。在图2中,输出202-1中的标号为B、C、 D、F、G、H、W0、W1、W2、W3、W4、W5、W6、W7、W8、W9、W10、W11、W12、W13、 W14的输出不与组合逻辑模块相耦接,其各自耦接到一个延时模块230。
每个补充延时模块221、222、223的输入耦接到对应的组合逻辑模块211、212、213的输出, 并且输出耦接到一组输出202-1中的一个。例如,补充延时模块221、222、223的输入分别耦接到 组合逻辑模块211、212、213的输出,并且输出分别耦接到输出202-1中的标号为A、E和W15的 输出。
在图2所示的实施例中,优选地,每个运算级的补充延时模块的数量等于组合逻辑模块的数量, 使得每一组输出中的每一个都耦接到延时模块和补充延时模块中的一个。在其他实施例中,每个运算 级的补充延时模块的数量可以少于组合逻辑模块的数量。
图3示出了图2所示的运算电路200中的一个运算级300的示意图。
如图3所示,运算级300包括:一组输入301和一组输出302,多个组合逻辑模块311、312、 313,延时模块330,以及补充延时模块322、323。
其中,延时模块330以及补充延时模块322、323均由串联连接的相同的延时单元340构成。例 如,在图3所示的实施例中,补充延时模块322、323分别由1个延时单元340和串联连接的3个延 时单元340构成,而延时模块330中的每一个由串联连接的M个延时单元340构成(M为正整数)。
采用串联连接的相同的延时单元340来构成延时模块330及补充延时模块322、323,能够适当 地抵消各个延时单元340之间的延时误差,使得所得到的延时模块330及补充延时模块322、323的 延时更加准确。各个延时单元340之间的这种延时误差是由延时单元340的制造、安装、操作过程中 的各种因素(例如,工艺、温度等)所导致的。
在优选的实施例中,每个延时单元340可以由一个缓冲器或一对反相器构成。在其他实施例中, 延时单元340可以由能够实现延时功能的一个或多个元件构成。
每个运算级的延时模块和补充延时模块应被配置为使得从每个运算级的一组输入到一组输出中的 每一个的计算延时基本相等。即,运算级300中的延时模块330以及补充延时模块322、323应被配 置为使得从一组输入301到一组输出302中的标号为A、B、C、D、E、F、G、H、W0、W1、W2、 W3、W4、W5、W6、W7、W8、W9、W10、W11、W12、W13、W14、W15的输出的计算延时基本相等。
如上所述,寄存器延时、时钟树延时等远小于组合逻辑模块的计算延时。换言之,运算级300中 的延时模块330以及补充延时模块322、323应被配置为使得以下基本相等:
1、从输入301到输出302中的标号为A的输出的计算延时,即组合逻辑模块311和312 的计算延时之和;
2、从输入301到输出302中的标号为E的输出的计算延时,即组合逻辑模块312与1个延 时单元340的计算延时之和;
3、从输入301到输出302中的标号为W15的输出的计算延时,即组合逻辑模块313与3 个延时单元340的计算延时之和;
4、从输入301到输出302中的标号为其他(B、C、D、F、G、H、W0、W1、W2、W3、 W4、W5、W6、W7、W8、W9、W10、W11、W12、W13、W14)的输出的计算 延时,即M个延时单元340的计算延时之和。
本领域技术人员应当理解,图3中的延时模块330和补充延时模块322、323的数量和配置均为 示例性的,可以根据运算电路300所执行的散列算法以及芯片的具体配置进行相应的调整。
在图3所示的实施例中,补充延时模块322、323的数量少于组合逻辑模块的数量,标号为A的 输出并未耦接到补充延时模块,而是直接耦接到组合逻辑模块311。在一些实施例中,一组输出中的 对应组合逻辑模块的计算延时最长的一个输出可以不耦接到补充延时模块,而是直接耦接到对应的组 合逻辑模块。换言之,将从输入301到输出302中的对应组合逻辑模块的计算延时最长的该输出(A) 的计算延时直接确定为运算级300的计算延时,并且通过延时模块330和补充延时模块322、323将 到输出302中的其他输出(B、C、...、W15)的计算延时补齐。这样的实施例的优点在于,没有引入 额外的计算延时,使得运算级300的整体计算延时最小化。
在这样的实施例中,延时模块330和补充延时模块322、323所包含的延时单元340的数量可以 根据补齐计算延时的需求来确定。例如,在图3所示的实施例中,为了补齐从输入301到输出302中 的标号为E的输出的计算延时与从输入301到输出302中的标号为A的输出的计算延时之差,即,为 了补齐组合逻辑模块311的计算延时,将补充延时模块322设置为由1个延时单元340构成。
在其他实施例中,补充延时模块的数量可以等于组合逻辑模块的数量,并且延时模块330和补充 延时模块322、323所包含的延时单元340的数量还可以结合其他因素来确定。例如,为了更好地抵 消各个延时单元340之间的延时误差,可以适当地增大延时模块330和补充延时模块322、323所包 含的延时单元340的数量。但是,考虑到芯片的制造成本和功耗,延时单元340的数量不应过大。
在优选的实施例中,延时模块330所包含的延时单元340的数量M可以大于或等于10,且小于 或等于20。在进一步优选的实施例中,M可以大于或等于12,且小于或等于18。
需要说明的是,本文中的″基本相等″的表述意指二者在一定误差内大致相等,但不必然严格地、 精确地相等。例如,″基本相等″意指二者在2%的误差内大致相等。优选地,二者在1%的误差内大 致相等。在一些语境中,该误差可以是约5%。本领域技术人员应当理解,这符合技术原理和工程实践。
从每个运算级的一组输入到一组输出中的每一个的计算延时基本相等,这使得数据能够适时地沿 着各个运算级依次传递,而无需经由寄存器的触发。换言之,本公开的运算电路200不需要现有技术 中的缓存寄存器和扩展寄存器(即图1所示的运算电路100中的8个缓存寄存器A、B、C、D、E、F、 G、H以及16个扩展寄存器W0、W1、W2、W3、W4、W5、W6、W7、W8、W9、W10、W11、 W12、W13、W14、W15)。
此外,如上所述,现有技术中的用于触发寄存器、馈送输入数据及提取输出数据的时钟的周期应 大于或等于每个运算级的计算延时。但是,本公开的运算电路200中的用于馈送输入数据及提取输出 数据的时钟周期不需要大于或等于每个运算级的组合逻辑模块的计算延时。因此,本公开的运算电路 200的计算频率和吞吐率不受每个运算级的组合逻辑模块的计算延时的限制。
图4示出了图2所示的运算电路200执行散列算法的时序示意图。
如图4所示,时钟CLK用于将输入数据馈送到运算电路200的输入201-1处。时钟CLK的周期 为T。在时钟CLK的每个上升沿,一组新的输入数据被馈送到运算电路200的输入201-1处。
本领域技术人员将理解,仅作为示例,图4中的各组输入数据在时钟CLK的上升沿处被馈送到运 算电路200的输入201-1处。在其他实施例中,输入数据也可以在时钟CLK的下降沿处被馈送到运算 电路200的输入201-1处。
如上所述,运算电路200的时钟CLK的周期T不需要大于或等于每个运算级的计算延时。替代 地,时钟CLK的周期T可以小于每个运算级的计算延时,使得运算电路200的计算频率和吞吐率增大, 从而使运算电路200的算力提高、功耗算力比降低。
在优选的实施例中,每个运算级的计算延时可以基本等于时钟CLK的周期T的k倍,其中k为大 于或等于2的整数。这使得在运算电路200工作时,每个运算级恰好容纳k组数据。
在每个运算级的计算延时基本确定的基础上,增大k的值有利于提高运算电路200的吞吐率并且 降低其功耗算力比。但是,当k的值较大时,各个延时单元340之间的延时误差的负面影响也会变大, 这使得各个运算级中发生延时错位、数据错乱的风险增大。优选地,可以将k选择为2或3。
为了控制各个延时单元340之间的延时误差的负面影响,优选地,可以将M选择为k的3至10 倍。进一步优选地,可以将M选择为k的4至8倍。进一步优选地,可以将M选择为k的5至7倍。
图4示例性地示出了在k为2的情况下运算电路200执行散列算法的时序示意图。
在图4所示的实施例中,每个运算级的计算延时为2T。换言之,从运算电路200的每个运算级 的一组输入到一组输出中的每一个的计算延时均为2T。
即,在运算电路200的每个运算级中,组合逻辑模块211、212和补充延时模块221的计算延时 之和(即从每个运算级的一组输入到一组输出中的标号为A的输出的计算延时)、组合逻辑模块212 和补充延时模块222的计算延时之和(即从每个运算级的一组输入到一组输出中的标号为E的输出的 计算延时)、组合逻辑模块213和补充延时模块223的计算延时之和(即从每个运算级的一组输入到 一组输出中的标号为W15的输出的计算延时),以及延时模块230的计算延时(即从每个运算级的 一组输入到一组输出中的标号为其他(B、C、D、F、G、H、W0、W1、W2、W3、W4、W5、W6、 W7、W8、W9、W10、W11、W12、W13、W14)的输出的计算延时)均为2T。
如图4所示,在t=0时,在时钟CLK的第一个上升沿处,第一组数据(数据1)被馈送到运算电 路200的第一个运算级的输入201-1处,随后被传递至第一个运算级的组合逻辑模块211、212、213 以及延时模块230和补充延时模块221、222、223。经过2T的计算延时,在t=2T时,数据1到达 第一个运算级的输出202-1处,并且被继续传递至第二个运算级的输入201-2。
之后,数据1被传递至第二个运算级的组合逻辑模块211、212、213以及延时模块230和补充 延时模块221、222、223,并且同样经过2T的计算延时,在t=4T时,数据1到达第二个运算级的 输出202-2处,并且被继续传递至第三个运算级的输入201-3。
之后,同样经过2T的计算延时,在t=6T时,数据1到达第三个运算级的输出202-3处,并且 被继续传递至第四个运算级的输入201-4。
此外,在t=T时,在时钟CLK的第二个上升沿处,第二组数据(数据2)被馈送到运算电路200 的第一个运算级的输入201-1处,随后被传递至第一个运算级的组合逻辑模块211、212、213以及 延时模块230和补充延时模块221、222、223。在t=T到t=2T之间,数据1和数据2均被容纳于运 算电路200的第一个运算级中。经过2T的计算延时,在t=3T时,数据2到达第一个运算级的输出 202-1处,并且被继续传递至第二个运算级的输入201-2。
之后,数据2被传递至第二个运算级的组合逻辑模块211、212、213以及延时模块230和补充 延时模块221、222、223。在t=3T到t=4T之间,数据1和数据2均被容纳于运算电路200的第二 个运算级中。同样经过2T的计算延时,在t=5T时,数据2到达第二个运算级的输出202-2处,并且 被继续传递至第三个运算级的输入201-3。在t=5T到t=6T之间,数据1和数据2均被容纳于运算电 路200的第三个运算级中。
此外,在t=2T时,在时钟CLK的第三个上升沿处,第三组数据(数据3)被馈送到运算电路200 的第一个运算级的输入201-1处,随后被传递至第一个运算级的组合逻辑模块211、212、213以及 延时模块230和补充延时模块221、222、223。在t=2T到t=3T之间,数据2和数据3均被容纳于 运算电路200的第一个运算级中。经过2T的计算延时,在t=4T时,数据3到达第一个运算级的输出 202-1处,并且被继续传递至第二个运算级的输入201-2。
之后,数据3被传递至第二个运算级的组合逻辑模块211、212、213以及延时模块230和补充 延时模块221、222、223。在t=4T到t=5T之间,数据2和数据3均被容纳于运算电路200的第二 个运算级中。同样经过2T的计算延时,在t=6T时,数据3到达第二个运算级的输出202-2处,并且 被继续传递至第三个运算级的输入201-3。
此外,在t=3T时,在时钟CLK的第四个上升沿处,第四组数据(数据4)被馈送到运算电路200 的第一个运算级的输入201-1处,随后被传递至第一个运算级的组合逻辑模块211、212、213以及 延时模块230和补充延时模块221、222、223。在t=3T到t=4T之间,数据3和数据4均被容纳于 运算电路200的第一个运算级中。经过2T的计算延时,在t=5T时,数据4到达第一个运算级的输出 202-1处,并且被继续传递至第二个运算级的输入201-2。
之后,数据4被传递至第二个运算级的组合逻辑模块211、212、213以及延时模块230和补充 延时模块221、222、223。在t=5T到t=6T之间,数据3和数据4均被容纳于运算电路200的第二 个运算级中。
此外,在t=4T时,在时钟CLK的第五个上升沿处,第五组数据(数据5)被馈送到运算电路200 的第一个运算级的输入201-1处,随后被传递至第一个运算级的组合逻辑模块211、212、213以及 延时模块230和补充延时模块221、222、223。在t=4T到t=5T之间,数据4和数据5均被容纳于 运算电路200的第一个运算级中。经过2T的计算延时,在t=6T时,数据5到达第一个运算级的输出 202-1处,并且被继续传递至第二个运算级的输入201-2。
此外,在t=5T时,在时钟CLK的第六个上升沿处,第六组数据(数据6)被馈送到运算电路200 的第一个运算级的输入201-1处,随后被传递至第一个运算级的组合逻辑模块211、212、213以及 延时模块230和补充延时模块221、222、223。在t=5T到t=6T之间,数据5和数据6均被容纳于 运算电路200的第一个运算级中。
可以看出,在运算电路200正常工作时,每个运算级能够容纳k组数据,即,N个运算级能够同 时对k*N组数据进行计算。与此相对照地,现有技术中的包括N个运算级的运算电路100仅能同时对 N组数据进行计算。这是本发明相对于现有技术的显著优势之一。
根据本公开的运算电路可以以软件、硬件、软件与硬件的结合等各种适当的方式实现。在一种实 现方式中,一种用于比特币挖矿的芯片可以包括如上所述的运算电路,该芯片还可以包括在一种用于 比特币挖矿的计算装置中。
在说明书及权利要求中的词语″前″、″后″、″顶″、″底″、″之上″、″之下″等,如果 存在的话,用于描述性的目的而并不一定用于描述不变的相对位置。应当理解,这样使用的词语在适 当的情况下是可互换的,使得在此所描述的本公开的实施例,例如,能够在与在此所示出的或另外描 述的那些取向不同的其他取向上操作。
如在此所使用的,词语″示例性的″意指″用作示例、实例或说明″,而不是作为将被精确复制 的″模型″。在此示例性描述的任意实现方式并不一定要被解释为比其它实现方式优选的或有利的。 而且,本公开不受在上述技术领域、背景技术、发明内容或具体实施方式中所给出的任何所表述的或 所暗示的理论所限定。
如在此所使用的,词语″基本上″意指包含由设计或制造的缺陷、器件或元件的容差、环境影响 和/或其它因素所致的任意微小的变化。词语″基本上″还允许由寄生效应、噪声以及可能存在于实际 的实现方式中的其它实际考虑因素所致的与完美的或理想的情形之间的差异。
另外,前面的描述可能提及了被″连接″或″耦接″在一起的元件或节点或特征。如在此所使用 的,除非另外明确说明,″连接″意指一个元件/节点/特征与另一种元件/节点/特征在电学上、机械上、 逻辑上或以其它方式直接地连接(或者直接通信)。类似地,除非另外明确说明,″耦接″意指一个 元件/节点/特征可以与另一元件/节点/特征以直接的或间接的方式在机械上、电学上、逻辑上或以其它 方式连结以允许相互作用,即使这两个特征可能并没有直接连接也是如此。也就是说,″耦接″意图 包含元件或其它特征的直接连结和间接连结,包括利用一个或多个中间元件的连接。
另外,仅仅为了参考的目的,还可以在本文中使用″第一″、″第二″等类似术语,并且因而并 非意图限定。例如,除非上下文明确指出,否则涉及结构或元件的词语″第一″、″第二″和其它此 类数字词语并没有暗示顺序或次序。
还应理解,″包括/包含″一词在本文中使用时,说明存在所指出的特征、整体、步骤、操作、单 元和/或组件,但是并不排除存在或增加一个或多个其它特征、整体、步骤、操作、单元和/或组件以及 /或者它们的组合。
在本公开中,术语″提供″从广义上用于涵盖获得对象的所有方式,因此″提供某对象″包括但 不限于″购买″、″制备/制造″、″布置/设置″、″安装/装配″、和/或″订购″对象等。
本领域技术人员应当意识到,在上述操作之间的边界仅仅是说明性的。多个操作可以结合成单个 操作,单个操作可以分布于附加的操作中,并且操作可以在时间上至少部分重叠地执行。而且,另选 的实施例可以包括特定操作的多个实例,并且在其他各种实施例中可以改变操作顺序。但是,其它的 修改、变化和替换同样是可能的。因此,本说明书和附图应当被看作是说明性的,而非限制性的。
虽然已经通过示例对本公开的一些特定实施例进行了详细说明,但是本领域的技术人员应该理解, 以上示例仅是为了进行说明,而不是为了限制本公开的范围。在此公开的各实施例可以任意组合,而 不脱离本公开的精神和范围。本领域的技术人员还应理解,可以对实施例进行多种修改而不脱离本公 开的范围和精神。本公开的范围由所附权利要求来限定。
Claims (11)
1.一种用于执行散列算法的运算电路,其特征在于,所述运算电路包括以流水线结构布置的多个运算级,其中每个运算级包括:
一组输入和一组输出,所述一组输入对应地耦接到前一运算级的一组输出,并且所述一组输出对应地耦接到后一运算级的一组输入;
多个组合逻辑模块,每个组合逻辑模块的输入耦接到所述一组输入中的至少一部分;
多个延时模块,每个延时模块的输入耦接到所述一组输入中的一个,并且输出耦接到所述一组输出中的不与组合逻辑模块相耦接的一个,使得所述一组输出中的不与组合逻辑模块相耦接的输出各自耦接到一个延时模块;以及
多个补充延时模块,每个补充延时模块的输入耦接到对应的组合逻辑模块的输出,并且输出耦接到所述一组输出中的一个,其中,
每个运算级的延时模块和补充延时模块中的每一个由串联连接的相同的延时单元构成,并且被配置为使得从每个运算级的所述一组输入到所述一组输出中的每一个的计算延时基本相等。
2.根据权利要求1所述的运算电路,其特征在于,每个运算级的计算延时基本等于用于将输入数据馈送到所述一组输入处的时钟的周期的k倍,其中k为大于或等于2的整数。
3.根据权利要求2所述的运算电路,其特征在于,每个延时模块由串联连接的M个延时单元构成,其中M为k的倍数。
4.根据权利要求2所述的运算电路,其特征在于,k为2或3。
5.根据权利要求3所述的运算电路,其特征在于,M大于或等于10,且小于或等于20。
6.根据权利要求3所述的运算电路,其特征在于,M为k的3至10倍。
7.根据权利要求1-6中任一项所述的运算电路,其特征在于,每个延时单元由一个缓冲器或一对反相器构成。
8.根据权利要求1-6中任一项所述的运算电路,其特征在于,每个运算级的补充延时模块的数量等于组合逻辑模块的数量,使得所述一组输出中的每一个耦接到延时模块和补充延时模块中的一个。
9.根据权利要求1-6中任一项所述的运算电路,其特征在于,所述运算电路用于执行SHA256算法。
10.一种芯片,其特征在于,所述芯片包括根据权利要求1-9中任一项所述的运算电路。
11.一种计算装置,其特征在于,所述计算装置包括根据权利要求10所述的芯片。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010837928.0A CN111813452A (zh) | 2020-08-19 | 2020-08-19 | 用于执行散列算法的运算电路、芯片和计算装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010837928.0A CN111813452A (zh) | 2020-08-19 | 2020-08-19 | 用于执行散列算法的运算电路、芯片和计算装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111813452A true CN111813452A (zh) | 2020-10-23 |
Family
ID=72859723
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010837928.0A Pending CN111813452A (zh) | 2020-08-19 | 2020-08-19 | 用于执行散列算法的运算电路、芯片和计算装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111813452A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI766754B (zh) * | 2020-12-18 | 2022-06-01 | 大陸商深圳比特微電子科技有限公司 | 執行哈希算法的電路、計算晶片、數據處理設備和方法 |
-
2020
- 2020-08-19 CN CN202010837928.0A patent/CN111813452A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI766754B (zh) * | 2020-12-18 | 2022-06-01 | 大陸商深圳比特微電子科技有限公司 | 執行哈希算法的電路、計算晶片、數據處理設備和方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5513132A (en) | Zero latency overhead self-timed iterative logic structure and method | |
US10979214B2 (en) | Secure hash algorithm implementation | |
US7949907B2 (en) | Method and device for data communication | |
US8086982B2 (en) | Methods and systems for reducing clock skew in a gated clock tree | |
CN111562808A (zh) | 时钟电路系统、计算芯片、算力板和数字货币挖矿机 | |
US9146707B2 (en) | Generating a fast 3x multiplicand term for radix-8 booth multiplication | |
CN212160484U (zh) | 时钟电路系统、计算芯片、算力板和数字货币挖矿机 | |
WO2022152032A1 (zh) | 测试电路、测试方法和包括测试电路的计算系统 | |
US11556614B2 (en) | Apparatus and method for convolution operation | |
US20130002292A1 (en) | Reconfigurable integrated circuit device | |
CN212411183U (zh) | 用于执行散列算法的运算电路、芯片和计算装置 | |
US7373369B2 (en) | Advanced execution of extended floating-point add operations in a narrow dataflow | |
TWI790088B (zh) | 處理器和計算系統 | |
CN111813452A (zh) | 用于执行散列算法的运算电路、芯片和计算装置 | |
CN111708512A (zh) | 加法器、运算电路、芯片和计算装置 | |
US9959095B2 (en) | Adder-subtractor and control method thereof | |
US20110238721A1 (en) | Adder circuit and xiu-accumulator circuit using the same | |
CN213518334U (zh) | 执行哈希算法的电路、计算芯片和加密货币矿机 | |
CN212231468U (zh) | 用于执行散列算法的电路以及执行比特币挖矿算法的装置 | |
CN112463116A (zh) | 用于划分组合逻辑的方法和电路 | |
KR20230079496A (ko) | 계산 칩, 해시 보드 및 데이터 처리 장치 | |
KR20220148592A (ko) | 삼진 논리 회로 장치 | |
Bhandari et al. | Fpga based high performance asynchronous alu based on modified 4 phase handshaking protocol with tapered buffers | |
CN212723979U (zh) | 加法器、运算电路、芯片和计算装置 | |
JP4958224B2 (ja) | 処理回路 |
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 |