CN114860318A - 运算电路、计算芯片、加密货币矿机和运算电路制造方法 - Google Patents
运算电路、计算芯片、加密货币矿机和运算电路制造方法 Download PDFInfo
- Publication number
- CN114860318A CN114860318A CN202110167639.9A CN202110167639A CN114860318A CN 114860318 A CN114860318 A CN 114860318A CN 202110167639 A CN202110167639 A CN 202110167639A CN 114860318 A CN114860318 A CN 114860318A
- Authority
- CN
- China
- Prior art keywords
- stage
- bit
- combinational logic
- arithmetic
- operational
- 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
- 238000004519 manufacturing process Methods 0.000 title claims abstract description 10
- 238000000034 method Methods 0.000 title claims description 9
- 238000005065 mining Methods 0.000 title abstract description 16
- 238000003860 storage Methods 0.000 claims abstract description 49
- 210000004027 cell Anatomy 0.000 description 15
- 230000000875 corresponding effect Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 10
- 230000000052 comparative effect Effects 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 210000000352 storage cell Anatomy 0.000 description 5
- 230000003247 decreasing effect Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000005457 optimization Methods 0.000 description 3
- 238000009412 basement excavation Methods 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000006866 deterioration Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000003071 parasitic effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000008707 rearrangement 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
- G06F9/3869—Implementation aspects, e.g. pipeline latches; pipeline synchronisation and clocking
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- 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
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Business, Economics & Management (AREA)
- Finance (AREA)
- Accounting & Taxation (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Security & Cryptography (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- General Business, Economics & Management (AREA)
- Logic Circuits (AREA)
Abstract
本公开涉及运算电路、计算芯片、加密货币矿机和运算电路制造方法。提供了一种运算电路,包括多个运算级,该多个运算级以流水线结构布置,使得由运算电路接收的数据信号沿着该多个运算级的各个运算级依次传递,其中,每个运算级包括沿与流水线方向平行的第一方向布置的多个组合逻辑级和第一寄存器,第一寄存器包括按照第一比特次序沿与流水线方向垂直的第二方向排列的多个比特存储单元,每个组合逻辑级包括沿第二方向排列的多个比特运算单元,并且其中,每个运算级的多个组合逻辑级中的接收前一运算级的第一寄存器所存储的数据的第一组合逻辑级中的多个比特运算单元按照与第一比特次序不同的第二比特次序沿第二方向排列。
Description
技术领域
本公开总体而言涉及用于执行哈希运算的运算电路,包括运算电路的计算芯片,包括计算芯片的加密货币矿机,以及制造运算电路的方法。
背景技术
比特币是一种P2P(Peer-to-Peer)形式的虚拟加密数字货币,其概念最初由中本聪在2008年11月1日提出,并于2009年1月3日正式诞生。比特币的独特之处在于,它不依靠特定货币机构发行,而是依据特定算法通过大量运算来产生。比特币交易使用整个P2P网络中众多节点构成的分布式数据库来确认并记录所有的交易行为,并使用密码学设计来确保安全性。从密码学的角度而言,比特币是基于SHA-256哈希算法的工作量证明POW(proof ofwork),其交易完整性取决于SHA-256的碰撞性和前映像阻力。哈希算法是一种将可变长度的数据作为输入并产生固定长度的哈希值作为输出的算法,其本质是对信息的提炼。自1993年以来,美国标准与技术研究所先后设计并发布了多个版本的安全哈希算法SHA(Secure Hash Algorithm),SHA-256正是其中一种哈希长度为256位的安全哈希算法。
使用矿机来进行比特币挖矿的核心是根据矿机计算SHA-256的运算能力来获得奖励。对于矿机而言,芯片尺寸、芯片运行速度和芯片功耗是决定矿机性能的至关重要的三个因素,其中,芯片尺寸决定芯片成本,芯片运行的速度决定矿机运行速度,即算力,芯片功耗决定耗电程度,即挖矿成本。在实际应用中,衡量矿机最为重要的性能指标是单位算力所消耗的功耗,即功耗算力比。为了提高安全性,在比特币协议中,要进行两次SHA-256。因此,对于比特币矿机而言,最重要的就是以较低的功耗算力比来实现哈希算法SHA-256。
发明内容
根据本公开的第一方面,提供了一种运算电路,该运算电路包括多个运算级,该多个运算级以流水线结构布置,使得由运算电路接收的数据信号沿着该多个运算级的各个运算级依次传递,其中,每个运算级包括沿与流水线方向平行的第一方向布置的多个组合逻辑级和第一寄存器,第一寄存器包括按照第一比特次序沿与流水线方向垂直的第二方向排列的多个比特存储单元,每个组合逻辑级包括沿第二方向排列的多个比特运算单元,并且其中,每个运算级的多个组合逻辑级中的接收前一运算级的第一寄存器所存储的数据的第一组合逻辑级中的多个比特运算单元按照与第一比特次序不同的第二比特次序沿第二方向排列。
根据本公开的第二方面,提供了一种计算芯片,该计算芯片包括如本公开的第一方面所述的运算电路。
根据本公开的第三方面,提供了一种加密货币矿机,该加密货币矿机包括如本公开的第二方面所述的计算芯片。
根据本公开的第四方面,提供了一种用于制造如本公开的第一方面所述的运算电路的方法。
通过以下参照附图对本公开的示例性实施例的详细描述,本公开的其它特征及其优点将会变得更为清楚。
附图说明
构成说明书的一部分的附图描述了本公开的实施例,并且连同说明书一起用于解释本公开的原理。
参照附图,根据下面的详细描述,可以更加清楚地理解本公开,其中:
图1示出了用于执行SHA-256算法的示例性流水线结构的示意图;
图2和图3示意性描绘了其中寄存器和组合逻辑级按照顺序比特次序布置的运算级之间的连线;
图4示出了根据本公开的一些实施例的运算电路的示例的配置图;
图5示出了图4的运算电路的比较示例的配置图;
图6示出了根据本公开的一些实施例的运算电路的示例的配置图;
图7示出了图6的运算电路的比较示例的配置图;
图8和图9示意性描绘了组合逻辑级的具有跨比特连接的比特运算单元在该组合逻辑级内在第二比特次序中排列的位置对连线长度的影响。
图10示出了根据本公开的另一些实施例的运算电路的示例的配置图;
图11示出了图10的运算电路的比较示例的配置图;
图12示意性描绘了组合逻辑级的具有跨比特连接的比特运算单元在该组合逻辑级内在第二比特次序中排列的位置对连线长度的影响;
图13示出了根据本公开的另一些实施例的运算电路的示例的配置图;以及
图14示出了根据本公开的又一些实施例的运算电路的示例的配置图。
注意,在以下说明的实施方式中,有时在不同的附图之间共同使用同一附图标记来表示相同部分或具有相同功能的部分,而省略其重复说明。在本说明书中,使用相似的标号和字母表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
为了便于理解,在附图等中所示的各结构的位置、尺寸及范围等有时不表示实际的位置、尺寸及范围等。因此,所公开的发明并不限于附图等所公开的位置、尺寸及范围等。此外,附图不必按比例绘制,一些特征可能被放大以示出具体组件的细节。
具体实施方式
现在将参照附图来详细描述本公开的各种示例性实施例。应当注意,除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。本领域的技术人员将会理解,它们仅仅说明可以用来实施本发明的示例性方式,而不是穷尽的方式。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。
为了更为清楚和直观地呈现本公开的发明构思,下文中将简要介绍SHA-256算法并以其作为哈希算法的代表示例来描述根据本公开的实施例的运算电路。本领域技术人员将理解,根据本公开的实施例的运算电路适用于任何哈希算法,甚至可以进一步应用到任何其它合适的算法中,而不仅限于实现SHA-256算法。
图1示出了用于执行SHA-256算法的示例性流水线结构的示意图。SHA-256的输入是最大长度小于264位的数据,输出是256位的数据摘要,即哈希值。输入数据以512位的数据块为单位进行处理。为了实现SHA-256算法,需要对于每个512位的数据块要进行64轮重复运算,因此可以采用包括64个运算级的流水线结构来并行运算64组数据。如图1所示,该流水线结构包括第0运算级至第63运算级,每个运算级包括用于存储中间值的8个32位的压缩寄存器A至H以及用于存储扩展数据的16个32位的扩展寄存器R0至R15。第0运算级可以接收输入的数据块,然后对其进行运算处理并提供给第1运算级。之后,每个运算级对其接收到的前一运算级的运算结果进行运算并将自己的运算结果提供给后一运算级。最终在经过64个运算级的运算后,运算电路可以输出对输入数据执行过一次SHA-256算法的哈希运算结果。
下面详细讨论SHA-256在每个运算级上进行的一轮运算的内部逻辑。在第t运算级上进行的第t轮运算由如下的运算式定义(t为整数且满足0≤t≤63):
T1=H+∑1(E)+Ch(E,F,G)+Kt+Wt;
T2=∑0(A)+Maj(A,B,C);
H=G;
G=F;
F=E;
E=D+T1;
D=C;
C=B;
B=A;
A=T1+T2; (运算式1)
其中:
其中,ROTRn(x)表示对32位的变量x循环右移n位;Wt为一个32位字,从当前的256位输入数据块导出;Kt为一个32位附加常数;+为模232加;AND为32位按位与运算;NOT是取反的操作;为异或运算。
接下来描述32位的字Wt是如何从512位的数据块导出的。Wt可以按照以下运算式得出:
对于0≤t≤15:Wt直接取自输入的数据块;
对于16≤t≤63:
Wt=σ1(Wt-2)+Wt-7+σ0(Wt-15)+Wt-16 (运算式2)
其中:
注意,以上∑0(x)、∑1(x)、σ0(x)、σ1(x)函数的公式是以SHA-256为示例给出的用于处理32位数据的具体形式,本领域技术人员知道在其它SHA算法(例如SHA-512等)乃至其它哈希算法中这些函数可以适应性地采用其它相应形式用于处理其它大小的数据(例如64位数据等)。
因此,如以上所介绍的,用于执行哈希算法的运算电路可以采用流水线结构,根据算法包括多个运算级,每个运算级可以具有相似的功能设计和运算结构。流水线结构中的每个运算级主要由寄存器及组合逻辑部分构成。例如,图2示意性示出了运算级的一部分的示例性物理布局,每个运算级可以包括组合逻辑级I至IV、多比特加法器ADD以及寄存器A至D,它们沿着流水线方向D1(即数据信号传递方向)排列。应理解,图2中寄存器、组合逻辑级和多比特加法器的排列次序仅仅是示例性的而在本公开中不受特别限制,本领域技术人员可以根据需要合理设计和优化它们的排列次序。例如,它们还可以排列成I、II、III、IV、ADD、D、A、B、C或者A、B、C、D、ADD、I、II、III、IV,等等。此外,虽然未示出,但每个运算级还可以包括寄存器E至H、R0至R15以及附加的组合逻辑部分等。
如之前所介绍的,每个寄存器可以具有32个比特存储单元以用于存储一个32位的值,每个比特存储单元可以存储该32位的值的一个比特。通常在每个寄存器中,这32个比特存储单元可以按照从低位比特到高位比特的比特次序(在本文中可称为顺序比特次序)沿与流水线方向D1垂直的方向D2排列。本文所述的″比特次序″可以是相对于比特位数而言的次序。如图2所示,每个寄存器A至D的第0至第31比特存储单元按照从0-31比特的次序沿方向D2排列。
对于用于根据上述算法对寄存器所存储的值进行运算的组合逻辑级I至IV(例如,组合逻辑级I可以被配置用于执行∑0运算,组合逻辑级II可以充当全加器,等等),每个组合逻辑级可以包括32个比特运算单元,这32个比特运算单元可以各自接收来自前一运算级的寄存器的相应比特存储单元的比特数据或来自前一组合逻辑级的相应比特运算单元的经处理比特数据以进行处理,共同协作以实现本组合逻辑级的运算功能。比特运算单元可以由诸如异或门之类的常规逻辑单元构成,并且每个比特运算单元不一定是相同的。通常,组合逻辑级的32个比特运算单元根据寄存器的比特数据存储位置,也按照从低位比特到高位比特的比特次序沿方向D2排列,如图2所示,每个组合逻辑级I至IV的第0至第31比特运算单元按照从0-31比特的次序沿方向D2排列。
取决于具体算法,在一些情况下,组合逻辑级与前一运算级的寄存器以及与后一组合逻辑级之间的输入/输出发生在相同比特之间(同比特连接),或者组合逻辑级与其前一组合逻辑级以及与其后一组合逻辑级之间为同比特连接。如图2所示,运算级(t-1)的寄存器A的第y(y=0,1,...,31)比特存储单元中存储的比特数据经由连线被输入到运算级t的组合逻辑级I的第y比特运算单元,然后运算级t的组合逻辑级I的第y比特运算单元的输出进而被输入到运算级t的组合逻辑级II的第y比特运算单元,等等。在这样的情况下,寄存器中的比特存储单元以及组合逻辑级中的比特运算单元都按照顺序比特次序排列,此时连线总长度最短。
但是,同样取决于具体算法,在另一些情况下,组合逻辑级与前一运算级的寄存器和/或与后一组合逻辑级之间的输入/输出发生在不同比特之间(跨比特连接),或者组合逻辑级与其前一组合逻辑级和/或与其后一组合逻辑级之间为跨比特连接。如图3所示,运算级(t-1)的寄存器A的第28比特存储单元中存储的比特数据经由连线被输入到运算级t的组合逻辑级I的第1比特运算单元,然后运算级t的组合逻辑级I的第1比特运算单元的输出进而被输入到运算级t的组合逻辑级II的第28比特运算单元。在这样的情况下,寄存器中的比特存储单元以及组合逻辑级中的比特运算单元都按照顺序比特次序排列,此时连线总长度显然不是最短的情况。注意,图中的倾斜箭头主要是为了表示连接关系,通常不代表实际的连线。在实际制造中,连线往往是在D1和D2两个方向上布线,例如从运算级(t-1)的寄存器A的第28比特存储单元到运算级t的组合逻辑级I的第1比特运算单元的连线以及从运算级t的组合逻辑级I的第1比特运算单元到运算级t的组合逻辑级II的第28比特运算单元的连线在实际中更可能是如图中的点线所表示的。不过可以理解的是,图中点线的总长度与倾斜箭头的总长度是正相关的,即也可以用倾斜箭头长度来代表实际连线长度。
当组合逻辑级具有跨比特连接时,按照顺序比特次序来排列组合逻辑级中的比特运算单元可能不能实现连线长度的减小。当运算电路中的连线长时,不仅造成在芯片中制造运算电路时耗费过多布线空间,还导致芯片功耗显著上升,大幅增加挖矿成本。
在根据本公开的实施例的运算电路中,组合逻辑级的比特运算单元的排列顺序与寄存器的比特存储单元的排列顺序不同,由此便于从整体上实现更短的连线长度,不仅节省布线空间,更能显著降低芯片功耗。在一些情况下,即使这样不同的排列顺序没有导致更短的连线长度,也可以提供新的连线选择,从而便于优化整体连线布局。下面将结合图4来详细描述根据本公开的实施例的运算电路100A。应理解,为了突出本公开的要点,图4中仅仅示出了运算级的一些寄存器和组合逻辑级,但是实际的运算电路还可以包括附加的部件,而为了避免模糊本公开的要点,附图中没有示出并且本公开也没有讨论这些附加的部件。
运算电路100A可以包括多个运算级110-0至110-63,这些运算级以流水线结构布置,使得由运算电路100A接收的数据信号沿着各个运算级依次传递(即沿着D1)。每个运算级110-0至110-63可以包括沿与流水线方向平行的第一方向D1布置的多个组合逻辑级121、122(如白底框所示)和第一寄存器111(如阴影框所示)。第一寄存器111可以包括按照第一比特次序沿与流水线方向垂直的第二方向排列D2的多个比特存储单元。每个组合逻辑级可以包括沿第二方向D2排列的多个比特运算单元。每个运算级的接收前一运算级的第一寄存器111所存储的数据的第一组合逻辑级121中的多个比特运算单元按照与第一比特次序不同的第二比特次序沿第二方向D2排列。
应理解,虽然在附图中描绘了64个运算级并且每个运算级内的每个寄存器包括32个比特存储单元以及每个组合逻辑级包括32个比特运算单元,但是如前面已经提到的,本文仅仅以用于执行SHA-256算法的电路作为非限制性示例,根据本公开的运算电路实际上可以适用于执行现在已知的或以后开发的适用于矿机的任何哈希算法(不限于SHA系列算法),并且可以包括任何合适数量的运算级,以及每个寄存器和组合逻辑级可以包括任何合适数量的单元。还应理解,附图中每个运算级内的组合逻辑级和寄存器在第一方向D1上的排列次序仅仅是示例性的而在本公开中不受特别限制,本领域技术人员可以根据需要具体设计它们的排列次序。
在一些实施例中,第一比特次序通常可以是从低位比特到高位比特的比特次序。但是,在另外一些实施例中,第一比特次序也可以是从高位比特到低位比特,或者可以是任何其它合适的次序。但是,在本公开中,并不对第一比特次序作出特别限制。为了描述方便,在附图和后文中,都以第一比特次序是从低位比特到高位比特的比特次序的情况为例进行描述。下文中将详细描述第二比特次序。
在一些实施例中,多个运算级110-0至110-63可以包括第一运算级110-a和紧接在第一运算级110-a之后的第二运算级110-b,第一运算级110-a的第一寄存器111所存储的数据经由连线被输入到第二运算级110-b的第一组合逻辑级121,并且第二运算级110-b的第一组合逻辑级121的输出经由连线被输入到第二运算级的第二组合逻辑级122。例如,第二比特次序可以被配置为使得第二运算级110-b的第一组合逻辑级121与第一运算级110-a的第一寄存器111之间的连线(可以称为第一组合逻辑级121的输入侧连线)以及与第二运算级110-b的第二组合逻辑级122之间的连线(可以称为第一组合逻辑级121的输出侧连线)的总长度小于或等于当第二运算级110-b的第一组合逻辑级121中的多个比特运算单元按照第一比特次序排列时的总长度。在一些实施例中,第二比特次序可以被配置为使得第二运算级110-b的第一组合逻辑级121与第一运算级110-a的第一寄存器111之间的连线以及与第二运算级110-b的第二组合逻辑级122之间的连线的总长度被最小化。
具体地,第一运算级110-a的第一寄存器111中的每个比特存储单元所存储的比特数据可以经由相应连线被输入到第二运算级110-b的第一组合逻辑级121中的对应比特运算单元,并且第二运算级110-b的第一组合逻辑级121中的每个比特运算单元的输出可以经由相应连线被输入到第二运算级110-b的第二组合逻辑级122中的对应比特运算单元。因此,第二运算级110-b的第一组合逻辑级121与第一运算级110-a的第一寄存器111之间的连线例如可以包括第二运算级110-b的第一组合逻辑级121中的各个比特运算单元与第一运算级110-a的第一寄存器111中的对应比特存储单元之间的连线,以及第二运算级110-b的第一组合逻辑级121与第二运算级110-b的第二组合逻辑级122之间的连线例如可以包括第二运算级110-b的第一组合逻辑级121中的各个比特运算单元与第二运算级110-b的第二组合逻辑级122中的对应比特运算单元之间的连线。
在图4的示例中,每个运算级的第一寄存器111中的32个比特存储单元按照0-31比特的次序沿D2排列,但是,第一组合逻辑级121中的32个比特运算单元并没有按照0-31比特的次序沿D2排列,而是将第10比特运算单元和第25比特运算单元的位置对调了。如图4所示,运算级110-b的第一组合逻辑级121的第25比特运算单元接收来自运算级110-a的第一寄存器111的第10比特存储单元的输入并向运算级110-b的第二组合逻辑级122的第10比特运算单元提供输出,运算级110-b的第一组合逻辑级121的第10比特运算单元接收来自运算级110-a的第一寄存器111的第25比特存储单元的输入并向运算级110-b的第二组合逻辑级122的第25比特运算单元提供输出。此外,运算级110-b的第一组合逻辑级121的第y(y=0,1,...,31且y不等于10和25)比特运算单元接收来自运算级110-a的第一寄存器111的第y比特存储单元的输入并向运算级110-b的第二组合逻辑级122的第y比特运算单元提供输出。由此,与图5中的比较示例100A′(其中第一组合逻辑级121′中的32个比特运算单元按照0-31比特的次序沿D2排列)相比,第二运算级110-b的输入侧连线和输出侧连线的总长度显著缩短,并且实现了最小化。
图6示意性示出了根据本公开的实施例的另一示例100B。在图6的示例中,每个运算级的第一寄存器111中的32个比特存储单元按照0-31比特的次序沿D2排列,但是,第一组合逻辑级121″中的32个比特运算单元并没有按照0-31比特的次序沿D2排列,而是将第5、10、25比特运算单元分别放在该组合逻辑级121″中的第25、5、10个位置。如图6所示,运算级110-b的第一组合逻辑级121″的第25比特运算单元接收来自运算级110-a的第一寄存器111的第10比特存储单元的输入并向运算级110-b的第二组合逻辑级122的第10比特运算单元提供输出,运算级110-b的第一组合逻辑级121″的第10比特运算单元接收来自运算级110-a的第一寄存器111的第5比特存储单元的输入并向运算级110-b的第二组合逻辑级122的第5比特运算单元提供输出,运算级110-b的第一组合逻辑级121″的第5比特运算单元接收来自运算级110-a的第一寄存器111的第25比特存储单元的输入并向运算级110-b的第二组合逻辑级122的第25比特运算单元提供输出。由此,与图7中的比较示例100B′(其中第一组合逻辑级121′中的32个比特运算单元按照0-31比特的次序沿D2排列)相比,第二运算级110-b的第一组合逻辑级121″的输入侧连线和输出侧连线的总长度显著缩短,并且实现了最小化。
作为非限制性示例,下面将结合图8和图9具体分析如何选择第一组合逻辑级中具有跨比特连接的比特运算单元在该第一组合逻辑级中的位置,以便确定第二比特次序。在图8和图9中,为了清楚起见而仅仅示出了相邻两个运算级110-a、110-b,但是可以理解,运算电路的多个运算级中的任意两个相邻运算级都可以是图示的运算级110-a、110-b。虚线框201′、202′图示的是用于对照的第一组合逻辑级按照第一比特次序排列的情况,而虚线框201、202图示的第一组合逻辑级按照第二比特次序排列的情况。
假设第一运算级的第一寄存器包括第0至第m比特存储单元,第二运算级的第一组合逻辑级和第二组合逻辑级各自包括第0至第m比特运算单元,其中(m+1)是比特存储单元的数量并且是比特运算单元的数量。如图8所示,第一运算级110-a的第一寄存器的第i比特存储单元所存储的比特数据经由连线被输入到第二运算级110-b的第一组合逻辑级的第j比特运算单元,并且第二运算级110-b的第一组合逻辑级的第j比特运算单元的输出经由连线被输入到第二运算级110-b的第二组合逻辑级的第k比特运算单元,其中1≤i≤m,1≤j≤m,1≤k≤m,且i、j、k为整数。在一些实施例中,第一运算级110-a的第一寄存器的第i比特存储单元在该第一寄存器当中可以被排列在第二方向D2上的第i个,第二运算级110-b的第二组合逻辑级的第k比特运算单元在该第二组合逻辑级当中可以被排列在第二方向D2上的第k个,第二运算级110-b的第一组合逻辑级的第j比特运算单元可以在该第一组合逻辑级当中被排列在第二方向D2上的第x个(如虚线框201中所示,被排列在第x个的第j比特运算单元被表示为jx),其中1≤x≤m且x为整数,并且x被设置为使得|(x-i)|+|(x-k)|≤|(j-i)|+|(j-k)|。
从图8可以清楚看到,当第一组合逻辑级的比特运算单元的排列情况从201′变化到201时,D1方向上的实际连线(由点线指示)的长度其实没有变化,这可以由运算级110-b的第一组合逻辑级与运算级110-a的第一寄存器之间的距离和与运算级110-b的第二组合逻辑级之间的距离确定。第一组合逻辑级的比特运算单元从第一比特次序变化到第二比特次序主要导致的是D2方向上的实际连线的长度发生变化(对应于当x偏离于j时(|(x-i)|+|(x-k)|)的值的变化)。因此,第二比特次序可以例如至少部分地取决于第一组合逻辑级的比特运算单元在输入侧耦接到第一寄存器的哪个比特存储单元以及其在输出侧耦接到第二组合逻辑级的哪个比特运算单元。
因此,对于第一组合逻辑级中具有跨比特连接的第j比特运算单元,其在第二比特次序中的位置x可以被设置为使得|(x-i)|+|(x-k)|≤|(j-i)|+|(j-k)|,使得变化其位置后至少不会造成连线总长度变长。可以对第一组合逻辑级中每个具有跨比特连接的比特运算单元进行上面及下面关于第j比特运算单元描述的操作,从而实现连线总长度的整体优化。另外,对于第一组合逻辑级中具有同比特连接的比特运算单元,在第二比特次序中可以不相对于其在第一比特次序中的位置而改变其位置。
下面具体描述在第二比特次序中如何选择第j比特运算单元的位置。在一些实施例中,当j是i与k之间的整数时,x可以被设置为i与k之间(包含i和k)的整数(可选地,x可以不等于j),此时x在i与k之间变化并不会引起连线长度变化,即|(x-i)|+|(x-k)|始终等于|(j-i)|+|(j-k)|。这可以使得第j比特运算单元的位置具有较大的裕量范围(x∈[i,k])。当在整体优化中为了兼顾考虑其它比特运算单元的位置而不得不调整第j比特运算单元的位置时,第j比特运算单元在该裕量范围内的重新排列也不会造成连线总长度的劣化。在其它一些实施例中,当j是不落在i与k之间的整数时,x可以被设置为i与k之间(包含i和k)的整数,此时可以显著缩小连线长度。为了说明,假设k<i<j并且假设各个比特存储单元之间在D2上的间距以及各个比特运算单元之间在D2上的间距彼此相等,如曲线210所示意性示出的,当x从j向m变化时,|(x-i)|和|(x-k)|都在增大,造成连线长度变大;当x从j向i变化时,|(x-i)|和|(x-k)|都在减小,造成连线长度减小;当x在i与k之间变化时,|(x-i)|在增大同时|(x-k)|在减小,造成连线长度不变;当x从k向0变化时,|(x-i)|和|(x-k)|都在增大,造成连线长度变大。因此,x的优选范围可以在i与k之间,如虚线框201所示,连线长度最小。在这种情况下,如曲线210所示,x的裕量范围其实可以是在p与j之间(p处对应的连线长度等于j处对应的连线长度),当x在此裕量范围内变化时,第一组合逻辑级的第j比特运算单元的输入侧连线和输出侧连线的总长度不会劣化。总的来说,对于j是i与k之间的整数的情况,第j比特运算单元原本在第一比特次序中的位置就比较利于连线,但是也容许将第j比特运算单元排列在第二比特次序的第i个和第k个之间;对于j是不落在i与k之间的整数的情况,可以将第j比特运算单元在第二比特次序中排列在第p个和第j个之间,优选地在第i个和第k个之间,此时可以显著缩短连线长度。
图9进一步描述了当第一组合逻辑级中存在两个具有跨比特连接的比特运算单元时如何确定第二比特次序。如图9所示,第一运算级110-a的第一寄存器的第i′比特存储单元所存储的比特数据经由连线被输入到第二运算级110-b的第一组合逻辑级的第j′比特运算单元,并且第二运算级110-b的第一组合逻辑级的第j′比特运算单元的输出经由连线被输入到第二运算级110-b的第二组合逻辑级的第k′比特运算单元,其中1≤i′≠i≤m,1≤j′≠j≤m,1≤k′≠k≤m,且i′、j′、k′为整数。在一些实施例中,第一运算级110-a的第一寄存器的第i′比特存储单元在该第一寄存器当中被排列在第二方向D2上的第i′个,第二运算级110-b的第二组合逻辑级的第k′比特运算单元在该第二组合逻辑级当中被排列在第二方向D2上的第k′个,第二运算级110-b的第一组合逻辑级的第j′比特运算单元在该第一组合逻辑级当中被排列在第二方向D2上的第x′个(如虚线框202中所示,被排列在第x′个的第j′比特运算单元被表示为j′x′),其中1≤x′≤m且x′为整数,并且x和x′被设置为使得|(x-i)|+|(x-k)|+|(x′-i′)|+|(x′-k′)|≤|(j-i)|+|(j-k)|+|(j′-i′)|+|(j′-k′)|。即,在确定第二比特次序时,综合考虑第一组合逻辑级的第j、j′比特运算单元的连线长度变化。
在一些实施例中,当j是在i′与k′之间的整数并且j′是在i与k之间的整数时,x′可以被设置为i′与k′之间(包含i′与k′)的整数并且x可以被设置为i与k之间(包含i与k)的整数,例如x=j′并且x′=j(相当于在第一组合逻辑级中对调第j、j′比特运算单元的位置)。实际上,可以分别对第一组合逻辑级的第j、j′比特运算单元进行如以上关于图8所描述的分析,找到x、x′各自的优选范围及裕量范围,并根据x、x′的裕量范围选择不相冲突的x、x′来确定能够整体优化连线总长度的第二比特次序。
对于第一组合逻辑级中存在更多个具有跨比特连接的比特运算单元的情况,可以如上所述以类似的方式来确定能够整体优化连线总长度的第二比特次序。
此外,在一些实施例中,第二运算级的第一组合逻辑级的输出还可以经由连线被输入到第二运算级的多个组合逻辑级中的第三组合逻辑级,并且其中,第二比特次序可以被配置为使得第二运算级的第一组合逻辑级与第一运算级的第一寄存器之间的连线(输入侧连线)、与第二运算级的第二组合逻辑级之间的连线(输出侧连线)以及与第二运算级的第三组合逻辑级之间的连线(输出侧连线)的总长度小于或等于当第二运算级的第一组合逻辑级中的多个比特运算单元按照第一比特次序排列时的总长度。
如图10所示,在根据本公开的另一实施例的运算电路100C中,还示出了每个运算级的第三组合逻辑级123。在图10的示例中,每个运算级的第一寄存器111中的32个比特存储单元按照0-31比特的次序沿D2排列,但是,第一组合逻辑级121中的32个比特运算单元并没有按照0-31比特的次序沿D2排列,而是将第10比特运算单元和第25比特运算单元的位置对调了。如图10所示,运算级110-b的第一组合逻辑级121的第25比特运算单元接收来自运算级110-a的第一寄存器111的第5比特存储单元的输入并向运算级110-b的第二组合逻辑级122的第25比特运算单元和第三组合逻辑级123的第5比特运算单元提供输出,运算级110-b的第一组合逻辑级121的第10比特运算单元接收来自运算级110-a的第一寄存器111的第25比特存储单元的输入并向运算级110-b的第二组合逻辑级122的第10比特运算单元和第三组合逻辑级123的第25比特运算单元提供输出。由此,与图11中的比较示例100C′(其中第一组合逻辑级121′中的32个比特运算单元按照0-31比特的次序沿D2排列)相比,第二运算级110-b的第一组合逻辑级121的输入侧连线和输出侧连线的总长度显著缩短。
作为非限制性示例,下面将结合图12具体分析对于这种情况如何选择第一组合逻辑级中具有跨比特连接的比特运算单元的位置,以便确定第二比特次序。在图12中,虚线框203′图示的是用于对照的第一组合逻辑级按照第一比特次序排列的情况,而虚线框203图示的第一组合逻辑级按照第二比特次序排列的情况。
如图12所示,第一运算级110-a的第一寄存器的第i比特存储单元所存储的比特数据经由连线被输入到第二运算级110-b的第一组合逻辑级的第j比特运算单元,并且第二运算级110-b的第一组合逻辑级的第j比特运算单元的输出经由连线被输入到第二运算级110-b的第二组合逻辑级的第k比特运算单元和第二运算级110-b的第三组合逻辑级的第h比特运算单元,其中1≤i≤m,1≤j≤m,1≤k≤m,1≤h≤m,且i、j、k、h为整数。在一些实施例中,第一运算级110-a的第一寄存器的第i比特存储单元在该第一寄存器当中可以被排列在第二方向D2上的第i个,第二运算级110-b的第二组合逻辑级的第k比特运算单元在该第二组合逻辑级当中可以被排列在第二方向D2上的第k个,第二运算级110-b的第三组合逻辑级的第h比特运算单元在该第三组合逻辑级当中可以被排列在第二方向D2上的第h个,第二运算级110-b的第一组合逻辑级的第j比特运算单元在该第一组合逻辑级当中可以被排列在第二方向D2上的第x个,其中1≤x≤m且x为整数,并且x被设置为使得|(x-i)|+|(x-k)|+|(x-h)|≤|(j-i)|+|(j-k)|+|(j-h)|。在一些实施例中,当j大于i、k、h当中的中间值时,x可以被设置为小于j且不小于该中间值,或者当j小于i、k、h当中的中间值时,x可以被设置为大于j且不大于该中间值。
例如在图12的示例中,假设k<i<j<h,如曲线230所示,当x从j向h变化时,|(x-i)|和|(x-k)|都在增大但|(x-h)|在减小,总体造成连线长度变大;当x从h向m变化时,|(x-i)|、|(x-k)|、|(x-h)|都在增大,总体造成连线长度变大;当x从j向i变化时,|(x-i)|和|(x-k)|都在减小但|(x-h)|在增大,总体造成连线长度减小;当x在从i向k变化时,|(x-i)|、|(x-h)|都在增大但|(x-k)|在减小,总体造成连线长度变大;当x从k向0变化时,|(x-i)|、|(x-k)|、|(x-h)|都在增大,造成连线长度变大。虚线框203示出了第j比特运算单元在第二比特次序中位于第i个和第j个位置之间的情况,相比于虚线框203′的情况,连线长度显著缩小。在这种情况下,如曲线230所示,x的裕量范围其实可以是在p与j之间(p处对应的连线长度等于j处对应的连线长度),当x在此裕量范围内变化时,第一组合逻辑级的第j比特运算单元的输入侧连线和输出侧连线的总长度不会劣化。当j小于i、k、h当中的中间值时的情况(例如k<j<i<h)是类似的,在此不再赘述。当j比i、k、h都大或都小时,情况也是类似的,优选地可以将x设置为接近或等于i、k、h当中的中间值,并且也具有相应的裕量范围,以便于在整体优化布局时进行选择。
另外,在这种情况下,对于第一组合逻辑级中存在更多个具有跨比特连接的比特运算单元的情况,也可以如上所述以类似的方式来确定能够整体优化连线总长度的第二比特次序(例如,分别确定各个具有跨比特连接的比特运算单元的x的裕量范围,并从各个x的裕量范围中选择不相冲突的x来确定第二比特次序)。
由此,本文关于图8描述描述了当第一组合逻辑级的比特运算单元的输入侧连线和输出侧连线的总数量为复数(例如,2)时的情况,关于图12描述描述了当第一组合逻辑级的比特运算单元的输入侧连线和输出侧连线的总数量为单数(例如,3)时的情况,可以基于这些描述类似地考虑当第一组合逻辑级的比特运算单元的输入侧连线和输出侧连线的总数量为4、5或更多(例如接收来自附加寄存器和/或组合逻辑级的输入以及/或者向附加组合逻辑级和/或寄存器提供输出)时的情况,在此不再赘述。
在另外一些实施例中,第二运算级的第二组合逻辑级的输出可以经由相应连线被输入到第二运算级的多个组合逻辑级中的第三组合逻辑级,其中,第二运算级的第二组合逻辑级中的多个比特运算单元可以按照与第一比特次序不同的第三比特次序沿第二方向排列,使得第二运算级的第二组合逻辑级与第二运算级的第一组合逻辑级之间的连线(输入侧连线)以及与第二运算级的第三组合逻辑级之间的连线(输出侧连线)的总长度小于或等于当第二运算级的第二组合逻辑级中的多个比特运算单元按照第一比特次序排列时的总长度。例如如图13所示,在根据本公开的另一实施例的运算电路100D中,还示出每个运算级的第三组合逻辑级123,其中第二组合逻辑级122D向第三组合逻辑级123提供输入。在这个示例中,第二组合逻辑级122D的第10、25比特运算单元的位置也被对调了,由此使得连线总长度减小。实际上,可以根据以上关于第一组合逻辑级描述的方式,来类似地优化其它组合逻辑级的比特运算单元的排列次序,从而使得从整体上看运算电路的连线总长度被减小甚至最小化。
在其它一些实施例中,例如如图14所示的示例300,每个运算级310-0、...、310-a、310-b、...、310-63的上述多个组合逻辑级可以是第一多个组合逻辑级,第一多个组合逻辑级321、322、323和第一寄存器311可以沿第一方向D1布置在第一行中,其中,每个运算级还可以包括沿第一方向布置在第二行中的第二多个组合逻辑级325、326、327和第二寄存器312,第二行可以在第二方向D2上偏移于第一行并与第一行对齐。第二寄存器312可以包括按照第一比特次序沿第二方向D2排列的多个比特存储单元。第二多个组合逻辑级中的每个组合逻辑级可以包括沿第二方向排列的多个比特运算单元。每个运算级的第二多个组合逻辑级中的接收前一运算级的第二寄存器312所存储的数据的第五组合逻辑级325中的多个比特运算单元可以按照与第一比特次序不同的第三比特次序沿第二方向D2排列。
在一些示例中,第一运算级310-a的第二寄存器312所存储的数据可以经由连线被输入到第二运算级310-b的第五组合逻辑级325,并且第二运算级310-b的第五组合逻辑级325的输出可以经由连线被输入到第二运算级310-b的第六组合逻辑级326,并且其中,第三比特次序可以被配置为使得第二运算级310-b的第五组合逻辑级325与第一运算级310-a的第二寄存器312之间的连线(输入侧连线)以及与第二运算级310-b的第六组合逻辑级326之间的连线(输出侧连线)的总长度小于或等于当第二运算级310-b的第五组合逻辑级325中的多个比特运算单元按照第一比特次序排列时的总长度。在一些示例中,第二运算级310-b的第五组合逻辑级325的输出还可以经由连线被输入到第二运算级310-b的第七组合逻辑级327,并且其中,第三比特次序可以被配置为使得第二运算级310-b的第五组合逻辑级325与第一运算级310-a的第二寄存器312之间的连线(输入侧连线)、与第二运算级310-b的第六组合逻辑级326之间的连线(输出侧连线)以及与第二运算级310-b的第七组合逻辑级327之间的连线(输出侧连线)的总长度小于或等于当第二运算级310-b的第五组合逻辑级325中的多个比特运算单元按照第一比特次序排列时的总长度。例如,如图14所示,第五组合逻辑级325中第10、25比特运算单元的位置相比于第一比特次序被对调了。
在一些示例中,在第一行中可以布置有寄存器A至D,而在第二行中可以布置有寄存器E至H,其中第一寄存器311可以是寄存器A,而第二寄存器312可以是寄存器E。此前关于第一寄存器111和多个组合逻辑级121、122、123的描述均适用于此处的第一寄存器311和第一多个组合逻辑级321、322、323以及第二寄存器312和第二多个组合逻辑级325、326、327,在此不再赘述。
本公开还可以提供包括如以上任一实施例所述的运算电路的计算芯片。本公开还可以提供包括一个或多个如上所述的计算芯片的加密货币矿机。本公开还可以提供用于制造如以上任一实施例所述的运算电路的方法。在这样的方法中,特别是包括按照如以上所述的第二比特次序和/或第三比特次序排列组合逻辑级中的比特运算单元的步骤,在此不再赘述。根据本公开的运算电路、包含该运算电路的计算芯片以及包含该计算芯片的加密货币矿机可以实现更低的功耗算力比,从而以更低的成本并且更高效地执行挖矿过程。
说明书及权利要求中的词语″左″、″右″、″前″、″后″、″顶″、″底″、″上″、″下″、″高″、″低″等,如果存在的话,用于描述性的目的而并不一定用于描述不变的相对位置。应当理解,这样使用的词语在适当的情况下是可互换的,使得在此所描述的本公开的实施例,例如,能够在与在此所示出的或另外描述的那些取向不同的其它取向上操作。例如,在附图中的装置倒转时,原先描述为在其它特征″之上″的特征,此时可以描述为在其它特征″之下″。装置还可以以其它方式定向(旋转90度或在其它方位),此时将相应地解释相对空间关系。
在说明书及权利要求中,称一个元件位于另一元件″之上″、″附接″至另一元件、″连接″至另一元件、″耦合″至另一元件、或″接触″另一元件等时,该元件可以直接位于另一元件之上、直接附接至另一元件、直接连接至另一元件、直接耦合至另一元件或直接接触另一元件,或者可以存在一个或多个中间元件。相对照的是,称一个元件″直接″位于另一元件″之上″、″直接附接″至另一元件、″直接连接″至另一元件、″直接耦合″至另一元件或″直接接触″另一元件时,将不存在中间元件。在说明书及权利要求中,一个特征布置成与另一特征″相邻″,可以指一个特征具有与相邻特征重叠的部分或者位于相邻特征上方或下方的部分。
如在此所使用的,词语″示例性的″意指″用作示例、实例或说明″,而不是作为将被精确复制的″模型″。在此示例性描述的任意实现方式并不一定要被解释为比其它实现方式优选的或有利的。而且,本公开不受在技术领域、背景技术、发明内容或具体实施方式中所给出的任何所表述的或所暗示的理论所限定。如在此所使用的,词语″基本上″意指包含由设计或制造的缺陷、器件或元件的容差、环境影响和/或其它因素所致的任意微小的变化。词语″基本上″还允许由寄生效应、噪声以及可能存在于实际的实现方式中的其它实际考虑因素所致的与完美的或理想的情形之间的差异。
另外,仅仅为了参考的目的,还可以在本文中使用″第一″、″第二″等类似术语,并且因而并非意图限定。例如,除非上下文明确指出,否则涉及结构或元件的词语″第一″、″第二″和其它此类数字词语并没有暗示顺序或次序。还应理解,″包括/包含″一词在本文中使用时,说明存在所指出的特征、整体、步骤、操作、单元和/或组件,但是并不排除存在或增加一个或多个其它特征、整体、步骤、操作、单元和/或组件以及/或者它们的组合。在本公开中,术语″提供″从广义上用于涵盖获得对象的所有方式,因此″提供某对象″包括但不限于″购买″、″制备/制造″、″布置/设置″、″安装/装配″、和/或″订购″对象等。
如本文所使用的,术语″和/或″包括相关联的列出项目中的一个或多个的任何和所有组合。本文中使用的术语只是出于描述特定实施例的目的,并不旨在限制本公开。如本文中使用的,单数形式″一″、″一个″和″该″也旨在包括复数形式,除非上下文另外清楚指示。
本领域技术人员应当意识到,在上述操作之间的边界仅仅是说明性的。多个操作可以结合成单个操作,单个操作可以分布于附加的操作中,并且操作可以在时间上至少部分重叠地执行。而且,另选的实施例可以包括特定操作的多个实例,并且在其它各种实施例中可以改变操作顺序。但是,其它的修改、变化和替换同样是可能的。可以以任何方式和/或与其它实施例的方面或元件相结合地组合以上公开的所有实施例的方面和元件,以提供多个附加实施例。因此,本说明书和附图应当被看作是说明性的,而非限制性的。
虽然已通过示例对本公开的一些特定实施例进行了详细说明,但本领域的技术人员应该理解,以上示例仅是为了进行说明,而不是为了限制本公开的范围。在此公开的各实施例可以任意组合,而不脱离本公开的精神和范围。本领域的技术人员还应理解,可以对实施例进行多种修改而不脱离本公开的范围和精神。本公开的范围由所附权利要求来限定。
Claims (20)
1.一种运算电路,其特征在于,所述运算电路包括多个运算级,所述多个运算级以流水线结构布置,使得由所述运算电路接收的数据信号沿着所述多个运算级的各个运算级依次传递,
其中,每个运算级包括沿与流水线方向平行的第一方向布置的多个组合逻辑级和第一寄存器,第一寄存器包括按照第一比特次序沿与流水线方向垂直的第二方向排列的多个比特存储单元,每个组合逻辑级包括沿所述第二方向排列的多个比特运算单元,并且
其中,每个运算级的所述多个组合逻辑级中的接收前一运算级的第一寄存器所存储的数据的第一组合逻辑级中的所述多个比特运算单元按照与所述第一比特次序不同的第二比特次序沿所述第二方向排列。
2.根据权利要求1所述的运算电路,其特征在于,所述多个运算级包括第一运算级和紧接在第一运算级之后的第二运算级,
其中,第一运算级的第一寄存器所存储的数据经由连线被输入到第二运算级的第一组合逻辑级,并且第二运算级的第一组合逻辑级的输出经由连线被输入到第二运算级的所述多个组合逻辑级中的第二组合逻辑级,并且
其中,所述第二比特次序被配置为使得第二运算级的第一组合逻辑级与第一运算级的第一寄存器之间的连线以及与第二运算级的第二组合逻辑级之间的连线的总长度小于或等于当第二运算级的第一组合逻辑级中的所述多个比特运算单元按照所述第一比特次序排列时的总长度。
3.根据权利要求2所述的运算电路,其特征在于,所述第二比特次序被配置为使得第二运算级的第一组合逻辑级与第一运算级的第一寄存器之间的连线以及与第二运算级的第二组合逻辑级之间的连线的总长度被最小化。
4.根据权利要求2所述的运算电路,其特征在于,第一运算级的第一寄存器中的每个比特存储单元所存储的比特数据经由相应连线被输入到第二运算级的第一组合逻辑级中的对应比特运算单元,并且第二运算级的第一组合逻辑级中的每个比特运算单元的输出经由相应连线被输入到第二运算级的第二组合逻辑级中的对应比特运算单元,
其中,第二运算级的第一组合逻辑级与第一运算级的第一寄存器之间的连线包括第二运算级的第一组合逻辑级中的各个比特运算单元与第一运算级的第一寄存器中的对应比特存储单元之间的连线,以及第二运算级的第一组合逻辑级与第二运算级的第二组合逻辑级之间的连线包括第二运算级的第一组合逻辑级中的各个比特运算单元与第二运算级的第二组合逻辑级中的对应比特运算单元之间的连线。
5.根据权利要求2所述的运算电路,其特征在于,第一运算级的第一寄存器包括第0至第m比特存储单元,第二运算级的第一组合逻辑级和第二组合逻辑级各自包括第0至第m比特运算单元,其中(m+1)是所述多个比特存储单元的数量并且是所述多个比特运算单元的数量,
其中,第一运算级的第一寄存器的第i比特存储单元所存储的比特数据经由连线被输入到第二运算级的第一组合逻辑级的第j比特运算单元,并且第二运算级的第一组合逻辑级的第j比特运算单元的输出经由连线被输入到第二运算级的第二组合逻辑级的第k比特运算单元,其中1≤i≤m,1≤j≤m,1≤k≤m,且i、j、k为整数,并且
其中,第一运算级的第一寄存器的第i比特存储单元在该第一寄存器当中被排列在所述第二方向上的第i个,第二运算级的第二组合逻辑级的第k比特运算单元在该第二组合逻辑级当中被排列在所述第二方向上的第k个,第二运算级的第一组合逻辑级的第j比特运算单元在该第一组合逻辑级当中被排列在所述第二方向上的第x个,其中1≤x≤m且x为整数,并且x被设置为使得|(x-i)|+|(x-k)|≤|(j-i)|+|(j-k)|。
6.根据权利要求5所述的运算电路,其特征在于,当j是不落在i与k之间的整数时,x被设置为i与k之间的整数。
7.根据权利要求5所述的运算电路,其特征在于,第一运算级的第一寄存器的第i′比特存储单元所存储的比特数据经由连线被输入到第二运算级的第一组合逻辑级的第j′比特运算单元,并且第二运算级的第一组合逻辑级的第j′比特运算单元的输出经由连线被输入到第二运算级的第二组合逻辑级的第k′比特运算单元,其中1≤i′≠i≤m,1≤j′≠j≤m,1≤k′≠k≤m,且i′、j′、k′为整数,并且其中,第一运算级的第一寄存器的第i′比特存储单元在该第一寄存器当中被排列在所述第二方向上的第i′个,第二运算级的第二组合逻辑级的第k′比特运算单元在该第二组合逻辑级当中被排列在所述第二方向上的第k′个,第二运算级的第一组合逻辑级的第j′比特运算单元在该第一组合逻辑级当中被排列在所述第二方向上的第x′个,其中1≤x′≤m且x′为整数,并且×和x′被设置为使得|(x-i)|+|(x-k)|+|(x′-i′)|+|(x′-k′)|≤|(j-i)|+|(j-k)|+|(j′-i′)|+|(j′-k′)|。
8.根据权利要求7所述的运算电路,其特征在于,当j是在i′与k′之间的整数并且j′是在i与k之间的整数时,x′被设置为i′与k′之间的整数并且x被设置为i与k之间的整数。
9.根据权利要求8所述的运算电路,其特征在于,x=j′并且x′=j。
10.根据权利要求2所述的运算电路,其特征在于,第二运算级的第一组合逻辑级的输出还经由连线被输入到第二运算级的所述多个组合逻辑级中的第三组合逻辑级,并且其中,所述第二比特次序被配置为使得第二运算级的第一组合逻辑级与第一运算级的第一寄存器之间的连线、与第二运算级的第二组合逻辑级之间的连线以及与第二运算级的第三组合逻辑级之间的连线的总长度小于或等于当第二运算级的第一组合逻辑级中的所述多个比特运算单元按照所述第一比特次序排列时的总长度。
11.根据权利要求10所述的运算电路,其特征在于,第一运算级的第一寄存器包括第0至第m比特存储单元,第二运算级的第一组合逻辑级至第三组合逻辑级各自包括第0至第m比特运算单元,其中(m+1)是所述多个比特存储单元的数量并且是所述多个比特运算单元的数量,
其中,第一运算级的第一寄存器的第i比特存储单元所存储的比特数据经由连线被输入到第二运算级的第一组合逻辑级的第j比特运算单元,并且第二运算级的第一组合逻辑级的第j比特运算单元的输出经由连线被输入到第二运算级的第二组合逻辑级的第k比特运算单元和第二运算级的第三组合逻辑级的第h比特运算单元,其中1≤i≤m,1≤j≤m,1≤k≤m,1≤h≤m,且i、j、k、h为整数,并且
其中,第一运算级的第一寄存器的第i比特存储单元在该第一寄存器当中被排列在所述第二方向上的第i个,第二运算级的第二组合逻辑级的第k比特运算单元在该第二组合逻辑级当中被排列在所述第二方向上的第k个,第二运算级的第三组合逻辑级的第h比特运算单元在该第三组合逻辑级当中被排列在所述第二方向上的第h个,第二运算级的第一组合逻辑级的第j比特运算单元在该第一组合逻辑级当中被排列在所述第二方向上的第x个,其中1≤x≤m且x为整数,并且x被设置为使得|(x-i)|+|(x-k)|+|(x-h)|≤|(j-i)|+|(j-k)|+|(j-h)|。
12.根据权利要求11所述的运算电路,其特征在于,
当j大于i、k、h当中的中间值时,x被设置为小于j且不小于所述中间值,或者
当j小于i、k、h当中的中间值时,x被设置为大于j且不大于所述中间值。
13.根据权利要求2所述的运算电路,其特征在于,第二运算级的第二组合逻辑级的输出经由相应连线被输入到第二运算级的所述多个组合逻辑级中的第三组合逻辑级,其中,第二运算级的第二组合逻辑级中的所述多个比特运算单元按照与所述第一比特次序不同的第三比特次序沿所述第二方向排列,使得第二运算级的第二组合逻辑级与第二运算级的第一组合逻辑级之间的连线以及与第二运算级的第三组合逻辑级之间的连线的总长度小于或等于当第二运算级的第二组合逻辑级中的所述多个比特运算单元按照所述第一比特次序排列时的总长度。
14.根据权利要求1所述的运算电路,其特征在于,每个运算级的所述多个组合逻辑级是第一多个组合逻辑级,所述第一多个组合逻辑级和所述第一寄存器沿所述第一方向布置在第一行中,
其中,每个运算级还包括沿所述第一方向布置在第二行中的第二多个组合逻辑级和第二寄存器,所述第二行在所述第二方向上偏移于第一行并与第一行对齐,
所述第二寄存器包括按照所述第一比特次序沿所述第二方向排列的多个比特存储单元,所述第二多个组合逻辑级中的每个组合逻辑级包括沿所述第二方向排列的多个比特运算单元,其中,每个运算级的所述第二多个组合逻辑级中的接收前一运算级的第二寄存器所存储的数据的第五组合逻辑级中的所述多个比特运算单元按照与所述第一比特次序不同的第三比特次序沿所述第二方向排列。
15.根据权利要求14所述的运算电路,其特征在于,所述多个运算级包括第一运算级和紧接在第一运算级之后的第二运算级,
其中,第一运算级的第二寄存器所存储的数据经由连线被输入到第二运算级的第五组合逻辑级,并且第二运算级的第五组合逻辑级的输出经由连线被输入到第二运算级的所述第二多个组合逻辑级中的第六组合逻辑级,并且
其中,所述第三比特次序被配置为使得第二运算级的第五组合逻辑级与第一运算级的第二寄存器之间的连线以及与第二运算级的第六组合逻辑级之间的连线的总长度小于或等于当第二运算级的第五组合逻辑级中的所述多个比特运算单元按照所述第一比特次序排列时的总长度。
16.根据权利要求15所述的运算电路,其特征在于,第二运算级的第五组合逻辑级的输出还经由连线被输入到第二运算级的所述第二多个组合逻辑级中的第七组合逻辑级,并且
其中,所述第三比特次序被配置为使得第二运算级的第五组合逻辑级与第一运算级的第二寄存器之间的连线、与第二运算级的第六组合逻辑级之间的连线以及与第二运算级的第七组合逻辑级之间的连线的总长度小于或等于当第二运算级的第五组合逻辑级中的所述多个比特运算单元按照所述第一比特次序排列时的总长度。
17.根据权利要求1-16中任一项所述的运算电路,其特征在于,所述第一比特次序是从低位比特到高位比特的比特次序。
18.一种计算芯片,其特征在于,所述计算芯片包括根据权利要求1-17中任一项所述的运算电路。
19.一种加密货币矿机,其特征在于,所述加密货币矿机包括一个或多个根据权利要求18所述的计算芯片。
20.一种用于制造根据权利要求1-17中任一项所述的运算电路的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110167639.9A CN114860318A (zh) | 2021-02-05 | 2021-02-05 | 运算电路、计算芯片、加密货币矿机和运算电路制造方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110167639.9A CN114860318A (zh) | 2021-02-05 | 2021-02-05 | 运算电路、计算芯片、加密货币矿机和运算电路制造方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114860318A true CN114860318A (zh) | 2022-08-05 |
Family
ID=82628131
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110167639.9A Pending CN114860318A (zh) | 2021-02-05 | 2021-02-05 | 运算电路、计算芯片、加密货币矿机和运算电路制造方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114860318A (zh) |
-
2021
- 2021-02-05 CN CN202110167639.9A patent/CN114860318A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11113676B2 (en) | Block mining methods and apparatus | |
US9843441B2 (en) | Compact, low power advanced encryption standard circuit | |
US20020032551A1 (en) | Systems and methods for implementing hash algorithms | |
US11716076B2 (en) | Circuits and methods for performing hash algorithm | |
US10884736B1 (en) | Method and apparatus for a low energy programmable vector processing unit for neural networks backend processing | |
US20240022395A1 (en) | Encryption processing device and encryption processing method | |
CN116318660B (zh) | 一种消息扩展与压缩方法及相关装置 | |
CN214151680U (zh) | 运算电路、计算芯片和加密货币矿机 | |
CN114860318A (zh) | 运算电路、计算芯片、加密货币矿机和运算电路制造方法 | |
CN213518334U (zh) | 执行哈希算法的电路、计算芯片和加密货币矿机 | |
US11658807B2 (en) | Circuit for performing hash algorithm, computing chip, data processing device and method | |
CN214670605U (zh) | 采用全定制布局摆放的芯片以及用于实现挖矿算法的电子装置 | |
TWI776543B (zh) | 計算晶片、算力板和數據處理設備 | |
CN112988235B (zh) | 一种高效率第三代安全散列算法的硬件实现电路及方法 | |
CN213482935U (zh) | 执行哈希算法的电路、计算芯片和加密货币矿机 | |
US8358653B1 (en) | Generating a pipeline of a packet processor from a parsing tree | |
TWI766754B (zh) | 執行哈希算法的電路、計算晶片、數據處理設備和方法 | |
US11947889B2 (en) | Chips placed in full-custom layout and electronic device for implementing mining algorithm | |
Bernstein | What output size resists collisions in a xor of independent expansions | |
KR100954843B1 (ko) | 센서 모트에서의 블록 인덱싱 기반의 타원 곡선 암호 연산 방법, 그 장치 및 이를 기록한 기록 매체 | |
CN114626537B (zh) | 一种基于x86平台SIMD的不可约多项式及量子安全哈希值计算方法 | |
CN221466006U (zh) | 一种逻辑运算电路,安全散列算法的压缩电路和芯片 | |
CN213399573U (zh) | 运算核、计算芯片和加密货币矿机 | |
TWI775514B (zh) | 運算核、計算晶片和數據處理設備 | |
CN118312133A (zh) | 基于Karatsuba的超高阶二进制多项式乘法器 |
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 |