执行哈希算法的电路、计算芯片、加密货币矿机和方法技术

技术编号:33876852 阅读:15 留言:0更新日期:2022-06-22 17:05
本公开涉及执行哈希算法的电路、计算芯片、加密货币矿机和方法。一种用于执行哈希算法的电路包括:以流水线结构布置的多个运算级,每个包括用于存储当前运算级的扩展数据的第0至第15扩展寄存器;和多个扩展数据运算逻辑模块,每个设置在包括第一运算级和其后的第二运算级的相邻两个运算级之间,并包括用于基于第一运算级的第1扩展寄存器中的扩展数据计算第二运算级的第0扩展寄存器中的扩展数据的第一子模块和用于基于第一运算级的第0扩展寄存器中的扩展数据计算第二运算级的第15扩展寄存器中的扩展数据的第二子模块,其中第二运算级的第(i

【技术实现步骤摘要】
执行哈希算法的电路、计算芯片、加密货币矿机和方法


[0001]本公开总体而言涉及用于执行哈希算法的电路、计算芯片、加密货币矿机和相关方法。

技术介绍

[0002]比特币是一种P2P(Peer

to

Peer)形式的虚拟加密数字货币,其概念最初由中本聪在2008年11月1日提出,并于2009年1月3日正式诞生。比特币的独特之处在于,它不依靠特定货币机构发行,而是依据特定算法通过大量运算来产生。比特币交易使用整个P2P网络中众多节点构成的分布式数据库来确认并记录所有的交易行为,并使用密码学设计来确保安全性。从密码学的角度而言,比特币是基于SHA

256哈希算法的工作量证明POW(proof of work),其交易完整性取决于SHA

256的碰撞性和前映像阻力。哈希算法是一种将可变长度的数据作为输入并产生固定长度的哈希值作为输出的算法,其本质是对信息的提炼。自1993年以来,美国标准与技术研究所先后设计并发布了多个版本的安全哈希算法SHA(Secure Hash Algorithm),SHA

256正是其中一种哈希长度为256位的安全哈希算法。
[0003]使用矿机来进行比特币挖矿的核心是根据矿机计算SHA

256的运算能力来获得奖励。对于矿机而言,芯片尺寸、芯片运行速度和芯片功耗是决定矿机性能的至关重要的三个因素,其中,芯片尺寸决定芯片成本,芯片运行的速度决定矿机运行速度,即算力,芯片功耗决定耗电程度,即挖矿成本。在实际应用中,衡量矿机最为重要的性能指标是单位算力所消耗的功耗,即功耗算力比。为了提高安全性,在比特币协议中,要进行两次SHA

256。因此,对于比特币矿机而言,最重要的就是以较低的功耗算力比来实现哈希算法SHA

256。

技术实现思路

[0004]根据本公开的第一方面,提供了一种用于执行哈希算法的电路,包括:输入模块,被配置为接收数据;以及运算模块,被配置为基于接收到的数据计算哈希值,该运算模块包括:以流水线结构布置的多个运算级,该多个运算级中的每个运算级包括第0扩展寄存器至第15扩展寄存器,每个扩展寄存器被配置为存储当前运算级的扩展数据;以及多个扩展数据运算逻辑模块,每个扩展数据运算逻辑模块设置在该多个运算级中的相应的相邻两个运算级之间,该相邻两个运算级包括第一运算级和在第一运算级之后的第二运算级,每个扩展数据运算逻辑模块包括:第一子模块,被配置为基于第一运算级的第1扩展寄存器中存储的扩展数据计算用于存储到第二运算级的第0扩展寄存器中的扩展数据;以及第二子模块,被配置为基于第一运算级的第0扩展寄存器中存储的扩展数据计算用于存储到第二运算级的第15扩展寄存器中的扩展数据,其中,用于存储到第二运算级的第(i

1)扩展寄存器中的扩展数据是第一运算级的第i扩展寄存器中存储的扩展数据,其中2≤i≤15且i为整数。
[0005]根据本公开的第二方面,提供了一种用于执行哈希算法的电路,包括:输入模块,被配置为接收数据;以及运算模块,被配置为基于接收到的数据计算哈希值,该运算模块包括:以流水线结构布置的多个运算级,该多个运算级中的每个运算级包括第0扩展寄存器至
第15扩展寄存器以及附加寄存器,每个扩展寄存器被配置为存储当前运算级的扩展数据,附加寄存器被配置为存储用于计算扩展数据的中间数据;以及多个扩展数据运算逻辑模块,每个扩展数据运算逻辑模块设置在所述多个运算级中的相应的相邻两个运算级之间,该相邻两个运算级包括第一运算级和在第一运算级之后的第二运算级,每个扩展数据运算逻辑模块包括:第一子模块,被配置为基于第一运算级的扩展寄存器中存储的扩展数据计算用于存储到第二运算级的附加寄存器中的中间数据;以及第二子模块,被配置为基于第一运算级的附加寄存器中存储的中间数据计算用于存储到第二运算级的第15扩展寄存器中的扩展数据,其中,用于存储到第二运算级的第(i

1)扩展寄存器中的扩展数据是第一运算级的第i扩展寄存器中存储的扩展数据,其中1≤i≤15且i为整数。
[0006]根据本公开的第三方面,提供了一种计算芯片,其包括如以上方面所述的电路。
[0007]根据本公开的第四方面,提供了一种加密货币矿机,其包括一个或多个如以上方面所述的计算芯片。
[0008]根据本公开的第五方面,提供了一种在用于执行哈希算法的电路中计算扩展数据的方法,该电路包括被配置为接收数据的输入模块和被配置为基于接收到的数据计算哈希值的运算模块,该运算模块包括以流水线结构布置的多个运算级,该多个运算级中的每个运算级包括第0扩展寄存器至第15扩展寄存器,每个扩展寄存器被配置为存储当前运算级的扩展数据,该方法包括:对于该多个运算级中的包括第一运算级和在第一运算级之后的第二运算级的相邻两个运算级:基于第一运算级的第1扩展寄存器中存储的扩展数据计算用于存储到第二运算级的第0扩展寄存器中的扩展数据;基于第一运算级的第0扩展寄存器中存储的扩展数据计算用于存储到第二运算级的第15扩展寄存器中的扩展数据;以及将第一运算级的第i扩展寄存器中存储的扩展数据作为用于存储到第二运算级的第(i

1)扩展寄存器中的扩展数据,其中2≤i≤15且i为整数。
[0009]根据本公开的第六方面,提供了一种在用于执行哈希算法的电路中计算扩展数据的方法,该电路包括被配置为接收数据的输入模块和被配置为基于接收到的数据计算哈希值的运算模块,该运算模块包括以流水线结构布置的多个运算级,该多个运算级中的每个运算级包括第0扩展寄存器至第15扩展寄存器以及附加寄存器,每个扩展寄存器被配置为存储当前运算级的扩展数据,附加寄存器被配置为存储用于计算扩展数据的中间数据,该方法包括:对于该多个运算级中的包括第一运算级和在第一运算级之后的第二运算级的相邻两个运算级:基于第一运算级的扩展寄存器中存储的扩展数据计算用于存储到第二运算级的附加寄存器中的中间数据;基于第一运算级的附加寄存器中存储的中间数据计算用于存储到第二运算级的第15扩展寄存器中的扩展数据;以及将第一运算级的第i扩展寄存器中存储的扩展数据作为用于存储到第二运算级的第(i

1)扩展寄存器中的扩展数据,其中1≤i≤15且i为整数。
[0010]通过以下参照附图对本公开的示例性实施例的详细描述,本公开的其它特征及其优点将会变得更为清楚。
附图说明
[0011]构成说明书的一部分的附图描述了本公开的实施例,并且连同说明书一起用于解释本公开的原理。
[0012]参照附图,根据下面的详细描述,可以更加清楚地理解本公开,其中:
[0013]图1示出了用于执行SHA

256算法的示例性流水线结构的示意图;
[0014]图2示意性示出了图1中的流水线结构中的相邻两个运算级的扩展寄存器中的扩展数据之间的常规运算逻辑;
[0015]图3示出本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用于执行哈希算法的电路,包括:输入模块,被配置为接收数据;以及运算模块,被配置为基于接收到的数据计算哈希值,所述运算模块包括:以流水线结构布置的多个运算级,所述多个运算级中的每个运算级包括第0扩展寄存器至第15扩展寄存器,每个扩展寄存器被配置为存储当前运算级的扩展数据;以及多个扩展数据运算逻辑模块,每个扩展数据运算逻辑模块设置在所述多个运算级中的相应的相邻两个运算级之间,所述相邻两个运算级包括第一运算级和在所述第一运算级之后的第二运算级,每个扩展数据运算逻辑模块包括:第一子模块,被配置为基于所述第一运算级的第1扩展寄存器中存储的扩展数据计算用于存储到所述第二运算级的第0扩展寄存器中的扩展数据;以及第二子模块,被配置为基于所述第一运算级的第0扩展寄存器中存储的扩展数据计算用于存储到所述第二运算级的第15扩展寄存器中的扩展数据,其中,用于存储到所述第二运算级的第(i

1)扩展寄存器中的扩展数据是所述第一运算级的第i扩展寄存器中存储的扩展数据,其中2≤i≤15且i为整数。2.根据权利要求1所述的电路,其中,所述第二运算级的后一运算级的第15扩展寄存器中存储的扩展数据是基于所述第一运算级的第1扩展寄存器、第2扩展寄存器、第10扩展寄存器、第15扩展寄存器中存储的扩展数据确定的。3.根据权利要求1所述的电路,其中,所述第一子模块被配置为基于所述第一运算级的第2扩展寄存器、第10扩展寄存器、第15扩展寄存器中的一者或两者中存储的扩展数据以及所述第一运算级的第1扩展寄存器中存储的扩展数据计算用于存储到所述第二运算级的第0扩展寄存器中的扩展数据。4.根据权利要求1所述的电路,其中,所述第二子模块被配置为基于所述第一运算级的第1扩展寄存器、第9扩展寄存器、第14扩展寄存器中的一者或两者中存储的扩展数据以及所述第一运算级的第0扩展寄存器中存储的扩展数据计算用于存储到所述第二运算级的第15扩展寄存器中的扩展数据。5.根据权利要求1

4中任一项所述的电路,其中,所述第一子模块被配置为基于所述第一运算级的第1扩展寄存器和第2扩展寄存器中存储的扩展数据计算用于存储到所述第二运算级的第0扩展寄存器中的扩展数据;以及所述第二子模块被配置为基于所述第一运算级的第0扩展寄存器、第9扩展寄存器和第14扩展寄存器中存储的扩展数据计算用于存储到所述第二运算级的第15扩展寄存器中的扩展数据。6.根据权利要求1

4中任一项所述的电路,其中,所述第一子模块被配置为基于所述第一运算级的第1扩展寄存器和第10扩展寄存器中存储的扩展数据计算用于存储到所述第二运算级的第0扩展寄存器中的扩展数据;以及所述第二子模块被配置为基于所述第一运算级的第0扩展寄存器、第1扩展寄存器和第14扩展寄存器中存储的扩展数据计算用于存储到所述第二运算级的第15扩展寄存器中的扩展数据。7.根据权利要求1

4中任一项所述的电路,其中,所述第一子模块被配置为基于所述第一运算级的第1扩展寄存器、第2扩展寄存器和第
10扩展寄存器中存储的扩展数据计算用于存储到所述第二运算级的第0扩展寄存器中的扩展数据;以及所述第二子模块被配置为基于所述第一运算级的第0扩展寄存器和第14扩展寄存器中存储的扩展数据计算用于存储到所述第二运算级的第15扩展寄存器中的扩展数据。8.根据权利要求1

4中任一项所述的电路,其中,所述第一子模块被配置为基于所述第一运算级的第1扩展寄存器和第15扩展寄存器中存储的扩展数据计算用于存储到所述第二运算级的第0扩展寄存器中的扩展数据;以及所述第二子模块被配置为基于所述第一运算级的第0扩展寄存器、第1扩展寄存器和第9扩展寄存器中存储的扩展数据计算用于存储到所述第二运算级的第15扩展寄存器中的扩展数据。9.根据权利要求1

4中任一项所述的电路,其中,所述第一子模块被配置为基于所述第一运算级的第1扩展寄存器、第2扩展寄存器和第15扩展寄存器中存储的扩展数据计算用于存储到所述第二运算级的第0扩展寄存器中的扩展数据;以及所述第二子模块被配置为基于所述第一运算级的第0扩展寄存器和第9扩展寄存器中存储的扩展数据计算用于存储到所述第二运算级的第15扩展寄存器中的扩展数据。10.根据权利要求1

4中任一项所述的电路,其中,所述第一子模块被配置为基于所述第一运算级的第1扩展寄存器、第10扩展寄存器和第15扩展寄存器中存储的扩展数据计算用于存储到所述第二运算级的第0扩展寄存器中的扩展数据;以及所述第二子模块被配置为基于所述第一运算级的第0扩展寄存器和第1扩展寄存器中存储的扩展数据计算用于存储到所述第二运算级的第15扩展寄存器中的扩展数据。11.一种用于执行哈希算法的电路,包括:输入模块,被配置为接收数据;以及运算模块,被配置为基于接收到的数据计算哈希值,所述运算模块包括:以流水线结构布置的多个运算级,所述多个运算级中的每个运算级包括第0扩展寄存器至第15扩展寄存器以及附加寄存器,每个扩展寄存器被配置为存储当前运算级的扩展数据,所述附加寄存器被配置为存储用于计算扩展数据的中间数据;以及多个扩展数据运算逻辑模块,每个扩展数据运算逻辑模块设置在所述多个运算级中的相应的相邻两个运算级之间,所述相邻两个运算级包括第一运算级和在所述第一运算级之后的第二运算级,每个扩展数据运算逻辑模块包括:第一子模块,被配置为基于所述第一运算级的扩展寄存器中存储的扩展数据计算用于存储到所述第二运算级的附加寄存器中的中间数据;以及第二子模块,被配置为基于所述第一运算级的附加寄存器中存储的中间数据计算用于存储到所述第二运算级的第15扩展寄存器中的扩展数据,其中,用于存储到所述第二运算级的第(i

1)扩展寄存器中的扩展数据是所述第一运算级的第i扩展寄存器中存储的扩展数据,其中1≤i≤15且i为整数。12.根据权利要求11所述的电路,其中,所述第二运算级的后一运算级的第15扩展寄存器中存储的扩展数据是基于所述第一运算级的第1扩展寄存器、第2扩展寄存器、第10扩展
寄存器、第15扩展寄存器中存储的扩展数据确定的。13.根据权利要求11所述的电路,其中,所述第一子模块被配置为基于所述第一运算级的第1扩展寄存器、第2扩展寄存器、第10扩展寄存器、第15扩展寄存器中的两者或三者中存储的扩展数据计算用于存储到所述第二运算级的附加寄存器中的中间数据。14.根据权利要求11所述的电路,其中,所述第二子模块被配置为基于所述第一运算级的第0扩展寄存器、第1扩展寄存器、第9扩展寄存器、第14扩展寄存器中的一者或两者中存储的扩展数据以及所述第一运算级的附加寄存器中存储的中间数据计算用于存储到所述第二运算级的第15扩展寄存器中的扩展数据。15.根据权利要求11

14中任一项所述的电路,其中,所述第一子模块被配置为基于所述第一运算级的第1扩展寄存器和第2扩展寄存器中存储的扩展数据计算用于存储...

【专利技术属性】
技术研发人员:范志军薛可许超杨作兴
申请(专利权)人:深圳比特微电子科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1