1.本公开涉及用于进行哈希运算的运算核,并且更具体地,涉及运算核、计算芯片和加密货币矿机。
背景技术:
2.比特币系统是最早提出并且目前得到最广泛认可的区块链系统。比特币系统的主要作用之一是用作去中心化的公共记账本,其可以记录各种金融交易。之所以称为
″
去中心化
″
,是因为比特币不是由单一的中心化的货币机构发行的,而是依据特定算法通过运算来产生的。比特币系统使用计算机网络的各节点构成的分布式数据库来确认并记录所有的交易行为,并使用密码学设计来确保安全性。
3.目前比特币协议采用安全哈希算法sha(secure hash algorithm)-256。sha系列算法是美国标准与技术研究所发布的,其中sha-256算法是一种哈希长度为256位的安全哈希算法。
4.根据比特币协议,第一个成功确定候选区块的工作量证明pow(proof of work)的节点有权将该区块添加到区块链,并有权生成新的加密货币单元作为奖励。这个过程就被称为
″
挖矿
″
,执行比特币算法的节点被称为挖矿机或矿机。
5.使用专用集成电路(asic执行挖矿过程的矿机是指使用asic芯片作为核心运算零件的矿机。这种asic芯片简单而高效,例如比特币采用sha-256算法,那么比特币asic矿机芯片可以被设计用于执行sha-256算法。asic矿机在算力上相比于其它类型的矿机具有很大优势。对于矿机计算芯片而言,芯片尺寸决定芯片成本,芯片运行速度决定矿机运行速度即算力,芯片功耗决定耗电程度即挖矿成本。因此,设计asic矿机的关键在于改善芯片尺寸、芯片运行速度和芯片功耗。
技术实现要素:
6.根据本公开的第一方面,提供了一种运算核,包括:输入模块,被配置为接收数据块;运算模块,被配置为对接收到的数据块进行哈希运算,所述运算模块包括多个运算级,所述多个运算级以流水线结构布置使得基于所述数据块的数据信号沿着所述多个运算级依次传递,所述多个运算级中的每个运算级对从前一运算级接收的数据信号进行运算并将经该运算级运算的数据信号提供给后一运算级;异步先入先出(fifo)模块,设置在所述多个运算级中相邻的第一运算级和第二运算级之间,所述第一运算级在所述第二运算级之前,所述异步fifo模块被配置为利用第一时钟信号接收从所述第一运算级输出的数据信号并且利用不同于所述第一时钟信号的第二时钟信号将所接收的数据信号输出到所述第二运算级;第一时钟模块,被配置为向所述异步fifo模块并且向所述第一运算级及所述多个运算级中在所述第一运算级之前的运算级提供所述第一时钟信号;以及第二时钟模块,被配置为向所述异步fifo模块并且向所述第二运算级及所述多个运算级中在所述第二运算级之后的运算级提供所述第二时钟信号,其中,所述第一时钟信号的频率与所述第二时钟
信号的频率相同。
7.在一些实施例中,所述第一时钟信号和所述第二时钟信号二者的传递方向与所述数据信号的传递方向相同。
8.在一些实施例中,所述第一时钟信号和所述第二时钟信号二者的传递方向与所述数据信号的传递方向相反。
9.根据本公开的第二方面,提供了一种计算芯片,包括一个或多个如前所述的运算核。
10.根据本公开的第三方面,提供了一种计算芯片,包括多个如前所述的运算核,所述多个所述运算核被布置在多个列中,每列运算核的第一时钟模块经由共同的时钟信道接收第一时钟信号,并且每列运算核的第二时钟模块经由共同的时钟信道接收第二时钟信号。
11.根据本公开的第四方面,提供了一种计算芯片,包括布置在多个列中的多个运算核,每个运算核包括:输入模块,被配置为接收数据块;运算模块,被配置为对接收到的数据块进行哈希运算,所述运算模块包括多个运算级,所述多个运算级以流水线结构布置使得基于所述数据块的数据信号沿着所述多个运算级依次传递,所述多个运算级中的每个运算级对从前一运算级接收的数据信号进行运算并将经该运算级运算的数据信号提供给后一运算级;以及时钟模块,被配置为向所述多个运算级中提供时钟信号,其中,所述多个列包括彼此相邻且按所陈述的顺序布置的第一列运算核和第二列运算核,所述第一列运算核的时钟模块和所述第二列运算核的时钟模块经由共同的时钟信道接收时钟信号。
12.根据本公开的第五方面,提供了一种加密货币矿机,包括一个或多个如前所述的计算芯片。
13.通过以下参照附图对本公开的示例性实施例的详细描述,本公开的其它特征及其优点将会变得更为清楚。
附图说明
14.所包括的附图用于说明性目的,并且仅用于提供本文所公开的发明性装置以及将其应用到计算设备的方法的可能结构和布置的示例。这些附图决不限制本领域的技术人员在不脱离实施方案的实质和范围的前提下可对实施方案进行的在形式和细节方面的任何更改。所述实施方案通过下面结合附图的具体描述将更易于理解,其中类似的附图标记表示类似的结构元件。
15.图1至图3是根据本公开的一些实施例的运算核的示意图。
16.图4至图6是根据本公开的一些实施例的包括用于执行sha-256算法的哈希引擎(在下文中,可称为sha-256哈希引擎)的运算核的示意图。
17.图7a和图7b是根据本公开的实施例的具有竖直结构的运算核的示意图。
18.图8是根据本公开的一些实施例的计算芯片的示意图。
19.图9a至图9d是根据本公开的一些实施例的用于向计算芯片中的运算核分配时钟信号的示意性布置图。
20.图10a至图10d是根据本公开的一些实施例的用于向计算芯片中的具有竖直结构的运算核分配时钟信号的示意性布置图。
21.图11a和图11b是根据本公开的一些实施例的计算芯片的示意图。
22.图12是用于执行sha-256算法的示例性流水线结构的示意图。
23.注意,在以下说明的实施方式中,有时在不同的附图之间共同使用同一附图标记来表示相同部分或具有相同功能的部分,而省略其重复说明。在本说明书中,使用相似的标号和字母表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
24.为了便于理解,在附图等中所示的各结构的位置、尺寸及范围等有时不表示实际的位置、尺寸及范围等。因此,所公开的发明并不限于附图等所公开的位置、尺寸及范围等。此外,附图不必按比例绘制,一些特征可能被放大以示出具体组件的细节。
具体实施方式
25.现在将参照附图来详细描述本公开的各种示例性实施例。应当注意,除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
26.以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。也就是说,本文中的哈希引擎是以示例性的方式示出,来说明本公开中的电路的不同实施例,而并非意图限制。本领域的技术人员将会理解,它们仅仅说明可以用来实施本发明的示例性方式,而不是穷尽的方式。
27.对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。
28.矿机的计算芯片通常包括顶层模块和运算核。顶层模块用于执行通信功能、控制功能、输入输出io功能、时钟pll功能等功能。运算核用于核心的计算运算。运算核从顶层模块得到运算任务,并将运算结果反馈给顶层模块。对于比特币挖矿而言,完整的计算通常需要两轮64次循环(执行两次sha-256算法,这通常被称为双哈希(doublehash)),即128拍运算。一些优化方法可以减少若干拍(例如,6拍)运算。在根据本公开的实施例中,主要以运算核执行两次sha-256算法的运算(即128拍运算)为例进行说明,但是本领域技术人员可以理解,本公开不限于此,并且可以适用于任何拍数的运算。本文中所提及的sha-256算法包括公知可知的任何版本的sha-256算法及其变型例和修改例。
29.总的来说,目前比特币挖矿需要进行的运算拍数仍然较多。在本公开中,为了提升运算吞吐量,运算核可以被配置为具有以流水线结构布置的多个运算级。图12示意性示出了用于执行sha-256算法的示例性流水线结构,该流水线结构包括64个运算级,每个运算级有8个压缩寄存器a-h和16个扩展寄存器0-15。第1运算级可以接收输入的数据块,并将其分成8个32位数据分别存入压缩寄存器a-h中,然后对其进行运算处理并提供给第2运算级。之后,每个运算级对其接收到的前一运算级的运算结果进行运算并将自己的运算结果提供给后一运算级。最终在经过64个运算级的运算后,运算核可以输出对输入数据块执行过一次sha-256算法的哈希运算结果。如此,当流水线结构中的所有运算级满载(即所有运算级都接收有数据并进行运算处理)时,运算核在每一拍都能输出一个运算结果。例如对于128拍运算,本公开的运算核可以包含具有总共128个运算级的流水线结构,由此可以大大提升运算吞吐率。
30.当按照流水线结构来设计运算核的运算时,需要向流水线结构中的每个运算级提
供时钟信号。在一种情况下,时钟信号的传递方向可以与流水线结构中的数据信号传递方向相同,即从流水线结构中的最前一个运算级传递到最后一个运算级,在这样的情况下时钟周期可以更小,相应地芯片频率可以更快,达到更高性能。在另一种情况下,时钟信号的传递方向可以与流水线结构中的数据信号传递方向相反,即从流水线结构中的最后一个运算级传递到最前一个运算级,在这样的情况下更容易满足流水线结构中每个运算级处的寄存器的保持时间,使得数据能够被稳定地打入寄存器。在这两种情况下,时钟信号都需要遍历流水线结构的每个运算级,时钟信号的传递级数通常多达128级。然而,时钟信号传播得越远,时钟信号的上升沿和/或下降沿的畸变程度会越来越大,导致时钟信号的形状劣化,占空比越来越差。当时钟信号沿着数据信号的传递方向传播到位于流水线结构下游的运算级(例如,第128运算级)或者沿着与数据信号的传递方向相反的方向传播到位于流水线结构上游的运算级(例如,第1运算级)时,时钟信号的电平可能已不能满足当前运算级的寄存器的最小脉冲要求,从而影响整个运算核的运算性能。
31.在根据本公开的实施例的运算核中,通过在运算级之间引入异步先入先出(fifo)模块,能够大大减少时钟信号所需要传递通过的运算级的数量,由此能够显著改善时钟信号在各运算级处的形状,从而有利地提高了运算核的性能。异步fifo是指一种fifo设计,其中,数据值从一个时钟域写入fifo缓冲区,数据值从另一个时钟域从同一fifo缓冲区读取,两个时钟域彼此异步。异步fifo可以用于将数据从一个时钟域安全地传递到另一时钟域。
32.下面结合附图详细描述根据本公开的实施例的运算核。在这些附图中,虚线箭头用于指示数据信号的传递方向,以及实线箭头用于指示时钟信号的传递方向。应注意,实际的运算核还可以包括附加的部件,而为了避免模糊本公开的要点,附图中没有示出并且本公开也没有讨论这些附加的部件。
33.图1示意性地示出了根据本公开的实施例的运算核100a。运算核100a可以包括输入模块110、运算模块120、异步fifo模块130、第一时钟模块141和第二时钟模块142。输入模块110可以被配置为接收数据块。运算模块120可以被配置为对接收到的数据块进行哈希运算。时钟模块141、142可以被配置用于为运算模块120提供所需要的时钟信号。
34.如图1所示,运算模块120可以包括多个运算级,这些运算级以流水线结构布置,使得基于接收到的数据块的数据信号沿着这些运算级依次传递。每个运算级可以对从前一运算级接收的数据信号进行运算并将经该运算级运算的数据信号提供给后一运算级。在一些示例中,可以参照图12的示例性流水线结构配置运算模块120中的运算级,也可以按照本领域已知的或以后开发的其它流水线结构来配置运算模块120中的运算级。
35.异步fifo模块130可以设置在运算模块120的多个运算级中相邻的第一运算级121-a和第二运算级121-b之间,第一运算级121-a在第二运算级121-b之前。异步fifo模块可以被配置为利用第一时钟信号接收从第一运算级121-a输出的数据信号并且利用不同于第一时钟信号的第二时钟信号将所接收的数据信号输出到第二运算级121-b。
36.第一时钟模块141可以被配置为向异步fifo模块130并且向第一运算级121-a及运算模块120的多个运算级中在第一运算级121-a之前的运算级提供第一时钟信号。第二时钟模块142可以被配置为向异步fifo模块130并且向第二运算级121-b及运算模块120的多个运算级中在第二运算级121-b之后的运算级提供第二时钟信号。第一时钟信号的频率与第二时钟信号的频率是相同的。如图所示,数据信号沿着从左到右的方向传播通过运算模块
120的所有运算级,而第一时钟信号沿着从右到左的方向从第一运算级121-a向最前一个运算级传播,第二时钟信号沿着从右到左的方向从最后一个运算级向第二运算级121-b传播。
37.由此,通过在运算模块120的多个运算级当中引入异步fifo模块130,可以利用异步fifo模块130进行相邻两个运算级之间的数据信号传递,同时可以引入两个时钟信号,每个时钟信号仅需传播通过运算模块120中的一部分运算级,而无需遍历运算模块120的所有运算级,从而能够显著改善时钟信号在各运算级处的形状,有利地提高了运算核的性能。而且,异步fifo模块130的引入并不会影响整个运算核的处理速度及吞吐率,因为数据信号在异步fifo模块130与运算级之间的传递时间不会超过在运算级之间的传递时间。
38.在图1所示的实施例中,第一时钟信号和第二时钟信号二者的传递方向与数据信号的传递方向相反。在另外一些实施例中,第一时钟信号和第二时钟信号二者的传递方向可以与数据信号的传递方向相同。
39.图2示意性地示出了根据本公开的其它实施例的运算核100b。运算核100b与运算核100a的区别在于,在运算核100b中,第一时钟信号和第二时钟信号二者的传递方向与数据信号的传递方向相同。如图2所示,异步fifo模块130设置在运算模块120的多个运算级中相邻的第一运算级121-a和第二运算级121-b之间,并且利用由第一时钟模块141提供的第一时钟信号接收从第一运算级121-a输出的数据信号并且利用由第二时钟模块142提供的不同于第一时钟信号的第二时钟信号将所接收的数据信号输出到第二运算级121-b。如图所示,数据信号沿着从左到右的方向传播通过运算模块120的所有运算级,而第一时钟信号沿着从左到右的方向从最前一个运算级向第一运算级121-a传播,第二时钟信号沿着从左到右的方向从第二运算级121-b向最后一个运算级传播。因此,根据本公开的包含异步fifo模块的运算核设计可以适用于任一种时钟信号的传递方向。
40.在一些实施例中,第一时钟模块141和第二时钟模块142可以被配置为从位于运算核外部的相同时钟源接收时钟信号。时钟源可以用于提供基本时钟信号。即,第一时钟信号与第二时钟信号可以是同源的,但是从时钟源经历不同路径到达相应的时钟模块。
41.在一些实施例中,运算核可以包含一个或多个异步fifo模块,这一个或多个异步fifo模块可以被插置在运算级之间。这样,可以进一步减少每个时钟信号所需要传递通过的运算级的数量。这些异步fifo模块的插入可以使得运算级被分为多个组,在一些实施例中,每个组中包含的运算级的数量可以是相同的。
42.例如,图3示意性地示出了根据本公开的运算核100c。在一些实施例中,异步fifo模块是第一异步fifo模块130,运算核100c还可以包括第二异步fifo模块131。第二异步fifo模块131设置在运算模块120的多个运算级中相邻的第三运算级121-c和第四运算级121-d之间,第三运算级121-c在第四运算级121-d之前并且在第二运算级121-b之后。第二异步fifo模块131可以被配置为利用第二时钟信号接收从第三运算级121-c输出的数据信号并且利用不同于第二时钟信号的第三时钟信号将所接收的数据信号输出到第四运算级121-d。运算核100c还可以包括第三时钟模块143。第三时钟模块143被配置为向第二异步fifo模块131并且向第四运算级121-d及运算模块120的多个运算级中在第四运算级121-d之后的运算级提供第三时钟信号。第二时钟模块142被配置为向第一异步fifo模块130和第二异步fifo模块131并且向第二运算级121-b和第三运算级121-c以及其间的运算级提供第二时钟信号。
43.进一步如图3所示,在一些实施例中,运算核100c可以附加地或替代地包括第三异步fifo模块132。第三异步fifo模块132设置在运算模块120的多个运算级中相邻的第五运算级121-e和第六运算级121-f之间,第六运算级121-f在第五运算级121-e之后并且在第一运算级121-a之前。第三异步fifo模块132被配置为利用不同于第一时钟信号的第四时钟信号接收从第五运算级121-e输出的数据信号并且利用第一时钟信号将所接收的数据信号输出到第六运算级121-f。运算核100c还包括第四时钟模块144。第四时钟模块144被配置为向第三异步fifo模块132并且向第五运算级121-e及运算模块120的多个运算级中在第五运算级121-e之前的运算级提供第四时钟信号。第一时钟模块141被配置为向第一异步fifo模块130和第三异步fifo模块132并且向第六运算级121-f和第一运算级121-a以及其间的运算级提供第一时钟信号。
44.本领域技术人员可以理解,虽然图3示出运算核100c包括三个异步fifo模块,但这仅仅是示例性的而非限制性的,可以根据实际需要合理设置运算核中的异步fifo模块的数量和位置。另外,虽然图3中示出的是数据信号和时钟信号反向传递,但是对于数据信号和时钟信号同向传递的情况也同样适用。还应理解的是,可以根据哈希引擎中的异步fifo模块的数量和位置,合理地设置相应的时钟模块来为各个运算级以及各个异步fifo模块提供时钟信号,只要保证时钟信号方向一致并且保证向异步fifo模块提供不同时钟信号即可,图3仅仅示出了示例布置,并不意在限制本公开。
45.在一些实施例中,运算模块120可以包括第一哈希引擎和第二哈希引擎,第一哈希引擎包括运算模块120的多个运算级中的第一多个运算级,第二哈希引擎包括运算模块120的多个运算级中的在第一多个运算级之后的第二多个运算级。第一哈希引擎和第二哈希引擎被配置为依次对数据块执行哈希算法。第一哈希引擎的第一多个运算级以流水线结构布置使得基于数据块的数据信号沿着第一多个运算级依次传递,第二哈希引擎的第二多个运算级以流水线结构布置使得从第一哈希引擎接收的数据信号沿着第二多个运算级依次传递。在一些实施例中,上述第一运算级是第一哈希引擎的第一多个运算级中的最后一个运算级,并且上述第二运算级是第二哈希引擎的第二多个运算级中的最前一个运算级。
46.作为非限制性示例,对于需要执行两次sha-256算法的矿机计算芯片运算核来说,总共需要128个运算级。运算核的运算模块可以包括两个哈希引擎,每个哈希引擎包括64个运算级并且被配置用于执行sha-256算法。每个哈希引擎例如可以具有如图12所示的配置。可以理解,本公开并不对哈希引擎执行的哈希算法进行特别限制运算核的哈希引擎实际上可以用于执行现在已知的或以后开发的适用于矿机的任何哈希算法(不限于sha系列算法),并且相应地可以包括对应数量的运算级。
47.图4至图6是分别对应于图1至图3的实施例的包括sha-256哈希引擎的运算核。
48.如图4所示,运算核100a
′
的运算模块120包括第一哈希引擎121和第二哈希引擎122,第一哈希引擎121包括64个运算级121-1、
…
、121-i、
…
、121-64,第二哈希引擎122包括64个运算级122-1、
…
、122-i、
…
、122-64。运算级121-1、
…
、121-i、
…
、121-64、122-1、
…
、122-i、
…
、122-64以流水线结构布置,使得数据信号沿着运算级121-1、
…
、121-i、
…
、121-64、122-1、
…
、122-i、
…
、122-64依次传递。异步fifo模块130优选地布置在第一哈希引擎121和第二哈希引擎122之间,即布置在运算级121-64、122-1之间。这样的有利之处是,与异步fifo模块130被布置在第一哈希引擎121或第二哈希引擎122内部的情况相比,布置在第
一哈希引擎121和第二哈希引擎122之间的异步fifo模块130仅需要存储运算级121-64的8个压缩寄存器a-h中的值并将其传递给运算级122-1,但不需要存储运算级121-64的16个扩展寄存器的值,在这样的情况下异步fifo模块130可以被设计为具有较小的尺寸,从而节约异步fifo模块130在芯片上的占用面积。
49.类似于图1,在图4的示例中,数据信号沿着从左到右的方向从第一哈希引擎121的每个运算级传递到第二哈希引擎122的每个运算级,而由第一时钟模块141提供给第一哈希引擎121的第一时钟信号在第一哈希引擎121内部从右向左传播,由第二时钟模块142提供给第二哈希引擎122的第二时钟信号在第二哈希引擎122内部从右向左传播。运算核100a'中的数据信号的传递方向与时钟信号的传递方向是相反的。
50.类似于图2,在图5的示例中,数据信号沿着从左到右的方向从第一哈希引擎121的每个运算级传递到第二哈希引擎122的每个运算级,而由第一时钟模块141提供给第一哈希引擎121的第一时钟信号在第一哈希引擎121内部从左向右传播,由第二时钟模块142提供给第二哈希引擎122的第二时钟信号在第二哈希引擎122内部从左向右传播。运算核100b
′
中的数据信号的传递方向与时钟信号的传递方向是相同的。
51.类似于图3,在图6的示例中,除了布置在第一哈希引擎121和第二哈希引擎122之间的异步fifo模块130之外,运算核100c
′
还包括布置在第二哈希引擎122内部的第二异步fifo模块131和布置在第一哈希引擎121内部的第三异步fifo模块132。可以看到,附加异步fifo模块的插入不影响数据信号的传递方向与时钟信号的传递方向之间的相对关系,而是进一步减小了各个时钟信号所需传递通过的运算级的数量,从而进一步优化每个运算级处的时钟信号的形状。
52.通常,运算核可以被实现在半导体芯片(例如,硅芯片)上。流水线结构的所有运算级通常被布置在同一行中,在水平方向上彼此相邻。这里所称的水平方向可以是指流水线结构的延伸方向,也即数据信号的传递方向。在一些实施例中,可以将流水线结构的多个运算级划分成多个子组合,这些子组合可以沿半导体芯片的表面被布置在不同行中,从而每个子组合在与水平方向垂直的竖直方向上彼此相邻。例如,对于上述包括第一哈希引擎和第二哈希引擎的运算核,第一哈希引擎和第二哈希引擎可以被布置为沿半导体芯片的表面在竖直方向上彼此相邻。这样的运算核在本文中可以被称为是具有竖直结构的运算核。具有竖直结构的运算核可以具有更合适的(例如,更接近方形的)长宽比,从而便于这样的运算核在计算芯片上的灵活布置。在这样的情况下,能够更便利地从通常为圆形的硅晶片切割出更多的通常为矩形的芯片。然而,对于具有竖直结构的运算核,数据信号在一个子组合(例如,第一哈希引擎)的最后一个运算级和该子组合的下游子组合(例如,第二哈希引擎)的最前一个运算级之间传递所需经历的距离相比于在子组合(例如,第一哈希引擎、第二哈希引擎)内部的相邻两个运算级之间传递所需经历的距离更远,导致在这两个运算级之间的数据信号传递时间相比于在子组合内部的相邻两个运算级之间的数据信号传递时间更长,由此可能限制运算核的处理速度及吞吐率。但是,异步fifo模块具有宽松的定时,它可以有助于缩短在竖直结构中数据信号从一个子组合(例如,第一哈希引擎)的最后一个运算级到该子组合的下游子组合(例如,第二哈希引擎)的最前一个运算级的传递时间,进而改善具有竖直结构的运算核的性能,使得竖直结构在带来利处的同时也不会使运算核的处理速度及吞吐率劣化。
53.照此,在一些实施例中,以图1所示的运算核为例,第一运算级121-a及其之前的运算级可以位于半导体芯片上的第一行中,第二运算级121-b及其之后的运算级可以位于半导体芯片上的第二行中,第一行可以与第二行在竖直方向上彼此相邻。在一些实施例中,以图3所示的运算核为例,第五运算级121-e及其之前的运算级可以位于半导体芯片上的第一行中,第六运算级121-f与第一运算级121-a之间的运算级可以位于半导体芯片上的第二行中,第二运算级121-b与第三运算级121-c之间的运算级可以位于半导体芯片上的第三行中,第四运算级121-d及其之后的运算级可以位于半导体芯片上的第四行中,第一行至第四行可以按照此顺序在竖直方向上彼此相邻。
54.图7a和图7b是根据本公开的实施例的具有竖直结构的运算核的示意图。如图7a所示,运算核200a的第一哈希引擎221和第二哈希引擎222在竖直方向上彼此相邻,数据信号从第一哈希引擎221经由异步fifo模块230到达第二哈希引擎222,其中第一时钟信号和第二时钟信号二者与数据信号的传递方向相反。如图7b所示,运算核200b的第一哈希引擎221和第二哈希引擎222在竖直方向上彼此相邻,数据信号从第一哈希引擎221经由异步fifo模块230到达第二哈希引擎222,其中第一时钟信号和第二时钟信号二者与数据信号的传递方向相同。在附图中所描绘的第一哈希引擎221和第二哈希引擎222在竖直方向上的相对位置关系仅仅是示例性的而非限制性的,可以根据实际需要来颠倒第一哈希引擎221和第二哈希引擎222在竖直方向上的相对位置关系。
55.此外,本公开还提供了用于向包括多个运算核的计算芯片中的各个运算核分配时钟信号的示例布置。
56.如图11a和图11b所示,计算芯片1200、1200
′
可以包括顶层模块1210和多个运算核1220。顶层模块1210包括时钟源1211。时钟源1211被配置用于为计算芯片1200的运算核1220提供时钟信号。在图11a和图11b中,运算核1220被示出为不包含异步fifo模块的常规运算核,但是可以理解的是,这仅仅是示例性的,图11a和图11b所示的布置可以适用于根据本公开的包含异步fifo模块的运算核,这将在稍后进行详细描述。
57.如图11a和图11b所示,计算芯片1200、1200
′
包括布置在多个列1220-1、1220-2、1220-3、1220-4中的多个运算核1220。每个运算核1220可以包括:输入模块(未示出),被配置为接收数据块;运算模块(未示出),被配置为对接收到的数据块进行哈希运算,该运算模块包括多个运算级,该多个运算级以流水线结构布置使得基于数据块的数据信号沿着该多个运算级依次传递,该多个运算级中的每个运算级对从前一运算级接收的数据信号进行运算并将经该运算级运算的数据信号提供给后一运算级;以及时钟模块(未示出),被配置为向该多个运算级中提供时钟信号。每个时钟模块可以经由时钟信道从时钟源1211接收时钟信号。
58.应理解,虽然在图示的示例中,计算芯片1200、1200
′
包括四列四行运算核,但是这仅仅是示例性的而非限制性的,可以根据实际情况将任意合适数量的运算核布置成任意合适数量的列。
59.如图11a所示,在一些实施例中,每列运算核的时钟模块经由共同的时钟信道接收时钟信号,例如列1220-1经由共同的时钟信道1231接收时钟信号,列1220-2经由共同的时钟信道1232接收时钟信号,列1220-3经由共同的时钟信道1233接收时钟信号,列1220-4经由共同的时钟信道1234接收时钟信号。如图11b所示,在一些实施例中,多个列1220-1、
1220-2、1220-3、1220-4包括彼此相邻且按所陈述的顺序布置的第一列运算核和第二列运算核(例如,1220-1和1220-2),第一列运算核1220-1的时钟模块和第二列运算核1220-2的时钟模块经由共同的时钟信道1235接收时钟信号。计算芯片1200还可以包括多对这样的第一列运算核和第二列运算核(例如1220-3和1220-4),每对都可以采取上述布置来经由共同的时钟信道接收时钟信号,例如列1220-3和1220-4经由共同的时钟信道1236接收时钟信号。相邻两列运算核共用时钟信道,可以进一步节省芯片上用于时钟信道的面积,从而可以进一步减小芯片尺寸,或节约更多面积用于设置更多运算核。
60.在图11a和图11b所示的实施例中,在一些示例中,每个运算核中的时钟信号与数据信号的传递方向可以相同,而在另一些示例中,每个运算核中的时钟信号与数据信号的传递方向可以相反。
61.本公开还提供了包括一个或多个如以上任一实施例所述的运算核的计算芯片。
62.下面结合图8描述根据本公开的一些实施例的计算芯片300。计算芯片300可以包括顶层模块310和多个如上所述具有异步fifo模块的运算核320。在图8所描绘的实施例中,运算核320被示出为不具有上述竖直结构。但是,在其它实施例中,运算核320可以具有上述竖直结构,这将在稍后进行描述。
63.如图8所示,顶层模块310包括时钟源311。时钟源311被配置用于为计算芯片300的运算核320提供时钟信号。运算核320被布置在多个列320-1、320-2、320-3、320-4中,每列运算核的第一时钟模块经由共同的时钟信道接收第一时钟信号,并且每列运算核的第二时钟模块经由共同的时钟信道接收第二时钟信号。例如,列320-1中的各个运算核的第一时钟模块和第二时钟模块中的一者经由共同的时钟信道331接收时钟信号,另一者经由共同的时钟信道332接收时钟信号。
64.这些运算核320还可以具有用于分配来自时钟源311的时钟信号的其它布置。类似于图11b的布置,运算核的相邻列可以共用时钟信道。下面结合图9a至图9d描述用于向运算核分配时钟信号的一些示例性布置。在图9a至图9d中,f代表异步fifo模块,h1代表第一哈希引擎(或在异步fifo模块上游的运算级的集合),并且h2代表第二哈希引擎(或在异步fifo模块下游的运算级的集合)。注意,在图9a至图9d中,可能没有具体体现时钟信号输入到异步fifo模块中,但这仅仅是为了清楚地说明图9a至图9d所要表达的要点。
65.运算核的多个列可以包括彼此相邻且按所陈述的顺序布置的第一列运算核和第二列运算核(例如,320-1和320-2)。在一些实施例中,第一列运算核的第一时钟模块和第二时钟模块中的一者与第二列运算核的第一时钟模块和第二时钟模块中的一者可以经由共同的时钟信道接收时钟信号。
66.如图9a所示,在一些示例中,第一列运算核320-1的第二时钟模块和第二列运算核320-2的第一时钟模块经由共同的时钟信道接收时钟信号分别作为各自的第二时钟信号和第一时钟信号。第一列运算核320-1的第一时钟模块经由共同的单独的时钟信道接收第一时钟信号。第二列运算核320-2的第二时钟模块经由共同的单独的时钟信道接收第二时钟信号。在这样的示例中,第一列运算核320-1中的时钟信号与数据信号反向,第二列运算核320-2中的时钟信号与数据信号同向。
67.如图9b所示,在一些示例中,第一列运算核320-1的第二时钟模块和第二列运算核320-2的第二时钟模块经由共同的时钟信道接收时钟信号分别作为各自的第二时钟信号。
第一列运算核320-1的第一时钟模块经由共同的单独的时钟信道接收第一时钟信号。第二列运算核320-2的第一时钟模块经由共同的单独的时钟信道接收第一时钟信号。在这样的示例中,第一列运算核320-1和第二列运算核320-2中的时钟信号与数据信号反向。
68.如图9c所示,在一些示例中,第一列运算核320-1的第一时钟模块和第二列运算核320-2的第二时钟模块经由共同的时钟信道接收时钟信号分别作为各自的第一时钟信号和第二时钟信号。第二列运算核320-2的第一时钟模块经由共同的单独的时钟信道接收第一时钟信号。第一列运算核320-1的第二时钟模块经由共同的单独的时钟信道接收第二时钟信号。在这样的示例中,第二列运算核320-2中的时钟信号与数据信号反向,第一列运算核320-1中的时钟信号与数据信号同向。
69.如图9d所示,在一些示例中,第一列运算核320-1的第一时钟模块和第二列运算核320-2的第一时钟模块经由共同的时钟信道接收时钟信号分别作为各自的第一时钟信号。第一列运算核320-1的第二时钟模块经由共同的单独的时钟信道接收第二时钟信号。第二列运算核320-2的第二时钟模块经由共同的单独的时钟信道接收第二时钟信号。在这样的示例中,第一列运算核320-1和第二列运算核320-2中的时钟信号与数据信号同向。
70.计算芯片还可以包括多对这样的第一列运算核和第二列运算核(例如320-3和320-4),每对可以采取上述任一种布置来接收时钟信号。
71.在图9a至图9d所示的示例中,通过在运算核的相邻列之间共用时钟信道,减少了计算芯片中需要设置的时钟信道的数量,从而可以进一步减小芯片尺寸,或节约更多面积用于设置更多运算核。这样带来的有利效果在计算芯片包含的运算核的列数越多时越显著。
72.图8中的运算核还可以是具有上述竖直结构的运算核320
′
。在图10a至图10d中示出了当图8中的计算芯片300包括多个运算核320
′
时用于向运算核320
′
分配时钟信号的布置。在图10a至图10d中,f代表异步fifo模块,h1代表第一哈希引擎(或在异步fifo模块上游的运算级的集合),并且h2代表第二哈希引擎(或在异步fifo模块下游的运算级的集合)。另外,在附图中所描绘的h1与h2在竖直方向上的相对位置关系仅仅是示例性的而非限制性的,也可以根据实际需要颠倒h1与h2在竖直方向上的相对位置关系。此外,对于包括竖直相邻的三行或更多行子组合的运算核,这里的描述也同样适用,在此不再赘述。
73.多个运算核320
′
被布置在多个列320-1
′
、320-2
′
、320-3
′
、320-4
′
中。在一些实施例中,类似于运算核320的情况,每列运算核320
′
的第一时钟模块可以经由共同的时钟信道接收第一时钟信号,并且每列运算核320
′
的第二时钟模块可以经由共同的时钟信道接收第二时钟信号。
74.在另外一些情况下,运算核320
′
的相邻列之间也可以共享时钟通道。运算核320
′
的多个列320-1
′
、320-2
′
、320-3
′
、320-4
′
包括彼此相邻且按所陈述的顺序布置的第一列运算核和第二列运算核(例如,320-1
′
、320-2
′
)。在一些实施例中,第一列运算核的第一时钟模块和第二时钟模块中的一者与第二列运算核的第一时钟模块和第二时钟模块中的一者可以经由共同的时钟信道接收时钟信号。附加地,在一些实施例中,多个列包括彼此相邻且按所陈述的顺序布置的该第一列运算核、该第二列运算核和第三列运算核,第二列运算核的第一时钟模块和第二时钟模块中的另一者和第三列运算核的第一时钟模块和第二时钟模块中的一者经由共同的时钟信道接收时钟信号。
75.在一些实施例中,如图10a所示,第一列运算核320-1
′
的第二时钟模块和第二列运算核320-2
′
的第二时钟模块经由共同的时钟信道接收时钟信号分别作为各自的第二时钟信号。替代地,在另外一些实施例中,第一列运算核320-1
′
的第一时钟模块和第二列运算核320-2
′
的第一时钟模块可以经由共同的时钟信道接收时钟信号分别作为各自的第一时钟信号。在一些实施例中,如图10d所示,第一列运算核320-1
′
的第二时钟模块和第二列运算核320-2
′
的第一时钟模块经由共同的时钟信道接收时钟信号分别作为各自的第二时钟信号和第一时钟信号。替代地,在另外一些实施例中,第一列运算核320-1
′
的第一时钟模块和第二列运算核320-2
′
的第二时钟模块经由共同的时钟信道接收时钟信号分别作为各自的第一时钟信号和第二时钟信号。计算芯片还可以包括多对这样的第一列运算核和第二列运算核,每对可以采取上述任一种布置来接收时钟信号。
76.在图10a和图10d的示例中,第一列运算核320-1
′
和第二列运算核320-2
′
的未共用时钟信道的另一时钟模块各自经由单独的时钟信道接收时钟信号。由此,可以在每相邻两列一对的运算核之间共享时钟信道。在另一些实施例中,第二列运算核320-2
′
的该另一时钟模块还可以和与第二列运算核320-2
′
相邻且与第一列运算核320-1
′
相对的另一列运算核的时钟模块共用时钟信道。由此,可以在每相邻三列一组的运算核内部两两之间共享时钟信道。依次类推,每列运算核都可以与其两侧的相邻列的运算核共享时钟信道。
77.例如,如图10b所示,计算芯片1200除了第一列运算核320-1
′
和第二列运算核320-2
′
之外,还包括与第二列运算核320-2
′
相邻的第三列运算核320-3
′
,第二列运算核320-2
′
的第一时钟模块和第三列运算核320-3
′
的第一时钟模块经由共同的时钟信道接收时钟信号分别作为各自的第一时钟信号。在第一列运算核320-1
′
和第二列运算核320-2
′
的第一时钟模块共享时钟信道的替代实施例中,第二列运算核320-2
′
的第二时钟模块和第三列运算核320-3
′
的第二时钟模块经由共同的时钟信道接收时钟信号分别作为各自的第二时钟信号。
78.进一步如图10b所示,计算芯片1200还包括与第三列运算核320-3
′
相邻的第四列运算核320-4
′
。第三列运算核320-3
′
的第二时钟模块和第四列运算核320-4
′
的第二时钟模块经由共同的时钟信道接收时钟信号分别作为各自的第二时钟信号。
79.此外,虽然在图10a和图10b中将异步fifo模块布置在哈希引擎h1和h2的左侧并且将h1设置在h2上,但这仅仅是示例性的而非限制性的,例如如图10c所示,列320-2
′
和320-4
′
的运算核的异步fifo模块被布置在哈希引擎h1和h2的右侧,如图10d所示,列320-2
′
的h2设置在h1之上,这仍然能实现本公开所提供的时钟信号分配布置。实际上,可以根据实际情况合理设置每个运算核中异步fifo模块相对于哈希引擎的位置以及第一哈希引擎和第二哈希引擎二者之间的相对位置,并且不一定要求每个运算核的布置都相同。
80.相应地,也不一定要求每个运算核中数据信号与时钟信号的传递方向的相对关系都是一样的。计算芯片的运算核中的一些运算核中数据信号与时钟信号的传递方向可以相同,而另一些运算核中数据信号与时钟信号的传递方向也可以相反,这并不受特别限制,而是可以根据实际情况合理设置。
81.由于常规矿机计算芯片的运算核的长宽比通常很大(因为要设置多达128个运算级),因此运算核在计算芯片(一般基于硅晶圆)上的布置非常受限。本公开提供的具有竖直结构的运算核可以具有显著缩小的长宽比,可以更加灵活自由地被合理布置在计算芯片
上。包含异步fifo模块还可以有助于改进具有竖直结构的运算核的性能。此外,通过运算核的相邻列之间的时钟信道的共用,还可以进一步节省芯片面积,也可以允许在同等尺寸芯片上布置更多数量的运算核,以高效地承担复杂的运算任务。
82.可以理解,虽然在上述实施例中描述的是在运算核的相邻列之间共享时钟信道,但是以类似的方式在运算核的相邻行之间共享时钟信道也是可行的,并且也被涵盖在本公开的范围内。
83.本公开还可以提供包括一个或多个如上所述的计算芯片的加密货币矿机。根据本公开的加密货币矿机可以具有更低的成本,更高效地执行挖矿过程。
84.说明书及权利要求中的词语
″
左
″
、
″
右
″
、
″
前
″
、
″
后
″
、
″
顶
″
、
″
底
″
、
″
上
″
、
″
下
″
、
″
高
″
、
″
低
″
等,如果存在的话,用于描述性的目的而并不一定用于描述不变的相对位置。应当理解,这样使用的词语在适当的情况下是可互换的,使得在此所描述的本公开的实施例,例如,能够在与在此所示出的或另外描述的那些取向不同的其它取向上操作。例如,在附图中的装置倒转时,原先描述为在其它特征
″
之上
″
的特征,此时可以描述为在其它特征
″
之下
″
。装置还可以以其它方式定向(旋转90度或在其它方位),此时将相应地解释相对空间关系。
85.在说明书及权利要求中,称一个元件位于另一元件
″
之上
″
、
″
附接
″
至另一元件、
″
连接
″
至另一元件、
″
耦合
″
至另一元件、或
″
接触
″
另一元件等时,该元件可以直接位于另一元件之上、直接附接至另一元件、直接连接至另一元件、直接耦合至另一元件或直接接触另一元件,或者可以存在一个或多个中间元件。相对照的是,称一个元件
″
直接
″
位于另一元件
″
之上
″
、
″
直接附接
″
至另一元件、
″
直接连接
″
至另一元件、
″
直接耦合
″
至另一元件或
″
直接接触
″
另一元件时,将不存在中间元件。在说明书及权利要求中,一个特征布置成与另一特征
″
相邻
″
,可以指一个特征具有与相邻特征重叠的部分或者位于相邻特征上方或下方的部分。
86.如在此所使用的,词语
″
示例性的
″
意指
″
用作示例、实例或说明
″
,而不是作为将被精确复制的
″
模型
″
。在此示例性描述的任意实现方式并不一定要被解释为比其它实现方式优选的或有利的。而且,本公开不受在技术领域、背景技术、发明内容或具体实施方式中所给出的任何所表述的或所暗示的理论所限定。
87.如在此所使用的,词语
″
基本上
″
意指包含由设计或制造的缺陷、器件或元件的容差、环境影响和/或其它因素所致的任意微小的变化。词语
″
基本上
″
还允许由寄生效应、噪声以及可能存在于实际的实现方式中的其它实际考虑因素所致的与完美的或理想的情形之间的差异。
88.另外,仅仅为了参考的目的,还可以在本文中使用
″
第一
″
、
″
第二
″
等类似术语,并且因而并非意图限定。例如,除非上下文明确指出,否则涉及结构或元件的词语
″
第一
″
、
″
第二
″
和其它此类数字词语并没有暗示顺序或次序。
89.还应理解,
″
包括/包含
″
一词在本文中使用时,说明存在所指出的特征、整体、步骤、操作、单元和/或组件,但是并不排除存在或增加一个或多个其它特征、整体、步骤、操作、单元和/或组件以及/或者它们的组合。
90.在本公开中,术语
″
提供
″
从广义上用于涵盖获得对象的所有方式,因此
″
提供某对象
″
包括但不限于
″
购买
″
、
″
制备/制造
″
、
″
布置/设置
″
、
″
安装/装配
″
、和/或
″
订购
″
对象等。
91.如本文所使用的,术语
″
和/或
″
包括相关联的列出项目中的一个或多个的任何和
所有组合。本文中使用的术语只是出于描述特定实施例的目的,并不旨在限制本公开。如本文中使用的,单数形式
″
一
″
、
″
一个
″
和
″
该
″
也旨在包括复数形式,除非上下文另外清楚指示。
92.本领域技术人员应当意识到,在上述操作之间的边界仅仅是说明性的。多个操作可以结合成单个操作,单个操作可以分布于附加的操作中,并且操作可以在时间上至少部分重叠地执行。而且,另选的实施例可以包括特定操作的多个实例,并且在其它各种实施例中可以改变操作顺序。但是,其它的修改、变化和替换同样是可能的。可以以任何方式和/或与其它实施例的方面或元件相结合地组合以上公开的所有实施例的方面和元件,以提供多个附加实施例。因此,本说明书和附图应当被看作是说明性的,而非限制性的。
93.虽然已通过示例对本公开的一些特定实施例进行了详细说明,但本领域的技术人员应该理解,以上示例仅是为了进行说明,而不是为了限制本公开的范围。在此公开的各实施例可以任意组合,而不脱离本公开的精神和范围。本领域的技术人员还应理解,可以对实施例进行多种修改而不脱离本公开的范围和精神。本公开的范围由所附权利要求来限定。
技术特征:
1.一种运算核,包括:输入模块,被配置为接收数据块;运算模块,被配置为对接收到的数据块进行哈希运算,所述运算模块包括多个运算级,所述多个运算级以流水线结构布置使得基于所述数据块的数据信号沿着所述多个运算级依次传递,所述多个运算级中的每个运算级对从前一运算级接收的数据信号进行运算并将经该运算级运算的数据信号提供给后一运算级;异步先入先出fifo模块,设置在所述多个运算级中相邻的第一运算级和第二运算级之间,所述第一运算级在所述第二运算级之前,所述异步fifo模块被配置为利用第一时钟信号接收从所述第一运算级输出的数据信号并且利用不同于所述第一时钟信号的第二时钟信号将所接收的数据信号输出到所述第二运算级;第一时钟模块,被配置为向所述异步fifo模块并且向所述第一运算级及所述多个运算级中在所述第一运算级之前的运算级提供所述第一时钟信号;以及第二时钟模块,被配置为向所述异步fifo模块并且向所述第二运算级及所述多个运算级中在所述第二运算级之后的运算级提供所述第二时钟信号,其中,所述第一时钟信号的频率与所述第二时钟信号的频率相同。2.根据权利要求1所述的运算核,其中,所述第一时钟信号和所述第二时钟信号二者的传递方向与所述数据信号的传递方向相同,或者所述第一时钟信号和所述第二时钟信号二者的传递方向与所述数据信号的传递方向相反。3.根据权利要求1所述的运算核,其中,所述异步fifo模块是第一异步fifo模块,所述运算核还包括:第二异步fifo模块,设置在所述多个运算级中相邻的第三运算级和第四运算级之间,所述第三运算级在所述第四运算级之前并且在所述第二运算级之后,所述第二异步fifo模块被配置为利用所述第二时钟信号接收从所述第三运算级输出的数据信号并且利用不同于所述第二时钟信号的第三时钟信号将所接收的数据信号输出到所述第四运算级;以及第三时钟模块,被配置为向所述第二异步fifo模块并且向所述第四运算级及所述多个运算级中在所述第四运算级之后的运算级提供所述第三时钟信号,其中,所述第二时钟模块被配置为向所述第一异步fifo模块和所述第二异步fifo模块并且向所述第二运算级和所述第三运算级以及其间的运算级提供所述第二时钟信号。4.根据权利要求1所述的运算核,其中,所述异步fifo模块是第一异步fifo模块,所述运算核还包括:第三异步fifo模块,设置在所述多个运算级中相邻的第五运算级和第六运算级之间,所述第六运算级在所述第五运算级之后并且在所述第一运算级之前,所述第三异步fifo模块被配置为利用不同于所述第一时钟信号的第四时钟信号接收从所述第五运算级输出的数据信号并且利用所述第一时钟信号将所接收的数据信号输出到所述第六运算级;以及第四时钟模块,被配置为向所述第三异步fifo模块并且向所述第五运算级及所述多个运算级中在所述第五运算级之前的运算级提供所述第四时钟信号,其中,所述第一时钟模块被配置为向所述第一异步fifo模块和所述第三异步fifo模块
并且向所述第六运算级和所述第一运算级以及其间的运算级提供所述第一时钟信号。5.根据权利要求1-4中任一项所述的运算核,其中,所述运算模块包括第一哈希引擎和第二哈希引擎,所述第一哈希引擎包括所述多个运算级中的第一多个运算级,所述第二哈希引擎包括所述多个运算级中的在所述第一多个运算级之后的第二多个运算级,所述第一哈希引擎和所述第二哈希引擎被配置为依次对所述数据块执行哈希算法。6.根据权利要求5所述的运算核,其中,所述第一运算级是所述第一哈希引擎的所述第一多个运算级中的最后一个运算级,并且所述第二运算级是所述第二哈希引擎的所述第二多个运算级中的最前一个运算级。7.根据权利要求6所述的运算核,其中,所述运算核被实现在半导体芯片上,并且所述第一哈希引擎和所述第二哈希引擎被布置为沿所述半导体芯片的表面在与所述数据信号的传递方向垂直的竖直方向上彼此相邻。8.一种计算芯片,包括一个或多个根据权利要求1-7中任一项所述的运算核。9.一种计算芯片,包括多个根据权利要求1-7中任一项所述的运算核,所述多个所述运算核被布置在多个列中,每列运算核的第一时钟模块经由共同的时钟信道接收第一时钟信号,并且每列运算核的第二时钟模块经由共同的时钟信道接收第二时钟信号。10.根据权利要求9所述的计算芯片,其中:所述多个列包括彼此相邻且按所陈述的顺序布置的第一列运算核和第二列运算核,所述第一列运算核的第一时钟模块和第二时钟模块中的一者与所述第二列运算核的第一时钟模块和第二时钟模块中的一者经由共同的时钟信道接收时钟信号。11.根据权利要求10所述的计算芯片,其中,所述运算核是根据权利要求7所述的运算核,并且其中:所述多个列包括彼此相邻且按所陈述的顺序布置的所述第一列运算核、所述第二列运算核和第三列运算核,所述第二列运算核的第一时钟模块和第二时钟模块中的另一者和所述第三列运算核的第一时钟模块和第二时钟模块中的一者经由共同的时钟信道接收时钟信号。12.一种计算芯片,包括布置在多个列中的多个运算核,每个运算核包括:输入模块,被配置为接收数据块;运算模块,被配置为对接收到的数据块进行哈希运算,所述运算模块包括多个运算级,所述多个运算级以流水线结构布置使得基于所述数据块的数据信号沿着所述多个运算级依次传递,所述多个运算级中的每个运算级对从前一运算级接收的数据信号进行运算并将经该运算级运算的数据信号提供给后一运算级;以及时钟模块,被配置为向所述多个运算级中提供时钟信号,其中,所述多个列包括彼此相邻且按所陈述的顺序布置的第一列运算核和第二列运算核,所述第一列运算核的时钟模块和所述第二列运算核的时钟模块经由共同的时钟信道接收时钟信号。13.根据权利要求12所述的计算芯片,其中,在所述第一列运算核和所述第二列运算核中的每个运算核中,所述时钟信号的传递方向与所述数据信号的传递方向相同。14.根据权利要求12所述的计算芯片,其中,在所述第一列运算核和所述第二列运算核中的每个运算核中,所述时钟信号的传递方向与所述数据信号的传递方向相反。
15.一种加密货币矿机,包括一个或多个根据权利要求8-14中任一项所述的计算芯片。
技术总结
本公开涉及运算核、计算芯片和加密货币矿机。一种运算核包括:输入模块,被配置为接收数据块;被配置为对数据块进行哈希运算的运算模块,包括以流水线结构布置的多个运算级,使得基于数据块的数据信号沿着多个运算级依次传递;异步FIFO模块,设置在相邻的第一运算级和第二运算级之间,被配置为利用第一时钟信号接收从第一运算级输出的数据信号并且利用第二时钟信号将数据信号输出到第二运算级,第一运算级在第二运算级之前;第一时钟模块,被配置为向异步FIFO模块和第一运算级及其之前的运算级提供第一时钟信号;和第二时钟模块,被配置为向异步FIFO模块和第二运算级及其之后的运算级提供第二时钟信号,其中第一时钟信号与第二时钟信号的频率相同。第二时钟信号的频率相同。第二时钟信号的频率相同。
技术研发人员:范志军 薛可 许超 杨作兴
受保护的技术使用者:深圳比特微电子科技有限公司
技术研发日:2020.11.23
技术公布日:2022/5/25
转载请注明原文地址:https://tc.8miu.com/read-17459.html