CN114928577B - 工作量证明芯片及其处理方法 - Google Patents

工作量证明芯片及其处理方法 Download PDF

Info

Publication number
CN114928577B
CN114928577B CN202210844639.2A CN202210844639A CN114928577B CN 114928577 B CN114928577 B CN 114928577B CN 202210844639 A CN202210844639 A CN 202210844639A CN 114928577 B CN114928577 B CN 114928577B
Authority
CN
China
Prior art keywords
unit
arbitration
data
routing
request
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.)
Active
Application number
CN202210844639.2A
Other languages
English (en)
Other versions
CN114928577A (zh
Inventor
蔡凯
田佩佳
刘明
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenglong Singapore Pte Ltd
Original Assignee
Sunlune Technology Beijing Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Sunlune Technology Beijing Co Ltd filed Critical Sunlune Technology Beijing Co Ltd
Priority to CN202210844639.2A priority Critical patent/CN114928577B/zh
Publication of CN114928577A publication Critical patent/CN114928577A/zh
Application granted granted Critical
Publication of CN114928577B publication Critical patent/CN114928577B/zh
Priority to PCT/CN2023/077712 priority patent/WO2024016659A1/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • H04L49/253Routing or path finding in a switch fabric using establishment or release of connections between ports
    • H04L49/254Centralised controller, i.e. arbitration or scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/17Interprocessor communication using an input/output type connection, e.g. channel, I/O port
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • G06F15/17312Routing techniques specific to parallel machines, e.g. wormhole, store and forward, shortest path problem congestion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System 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/781On-chip cache; Off-chip memory
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/109Integrated on microchip, e.g. switch-on-chip
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

一种工作量证明芯片及其处理方法,能够降低工作量证明计算的功耗,提高效率。所述处理方法包括:计算单元进行工作量证明计算,需要其他节点中存储单元数据集中的数据时,向本节点第一路由单元发送请求,所述第一路由单元将所述请求发送至本节点第二仲裁单元,通过所述第二仲裁单元将所述请求发送至其他节点;所述第二路由单元接收到其他节点发送的所述计算单元请求的数据后,将所述数据发送至所述第一仲裁单元,所述第一仲裁单元将所述数据发送至所述计算单元。通过本公开实施例方案,无需外挂内存或者显存,数据集存储在节点内部,片内带宽高,功耗低,效率高。

Description

工作量证明芯片及其处理方法
技术领域
本公开实施例涉及但不限于计算机应用技术领域,尤指一种工作量证明芯片及其处理方法。
背景技术
区块链技术中,区块的产生需要靠工作量证明算法(Proof of Work,POW)来完成,工作量证明是一种哈希函数,可以使用中央处理器(Central Processing Unit,CPU)、图形处理器(Graphic Processing Unit ,GPU)或现场可编程逻辑门阵列(Field-ProgrammableGate Array,FPGA)等对其求解,求解的过程中需要对一个大数据集进行随机地址访问,整个数据集一般存放于内存或者显存中。采用CPU、GPU或FPGA完成工作量证明的共同问题是功耗高,效率低,需要外挂内存或者显存用来存储数据集。
发明内容
本公开实施例提供了一种工作量证明芯片及其处理方法,降低工作量证明计算的功耗,提高效率和片内带宽。
一方面,本公开实施例提供了一种工作量证明芯片,包括2个或2个以上个节点,每个节点包括:计算单元、存储单元、第一路由单元、第一仲裁单元、第二路由单元和第二仲裁单元,所述第二路由单元和第二仲裁单元的数量相同,其中,所述计算单元与所述存储单元相连,且所述计算单元和存储单元的输出端口均与所述第一路由单元的输入端口连接,所述第一路由单元的输出端口以及第二路由单元的输出端口均与所述第二仲裁单元的输入端口连接,所述第二仲裁单元的输出端口设置为与其他节点的第二路由单元的输入端口连接,所述计算单元和存储单元的输入端口均与所述第一仲裁单元的输出端口连接,所述第一仲裁单元的输入端口与所述第二路由单元的输出端口连接,所述第二路由单元的输入端口设置为与其他节点的第二仲裁单元的输出端口连接;其中:
所述计算单元设置为向本节点或其他节点的存储单元请求数据进行工作量证明计算;
所述存储单元设置为存储工作量证明计算中使用的数据集,响应于本节点或其他节点计算单元的请求,向本节点或其他节点的计算单元发送数据;
所述第一路由单元设置为接收计算单元发送的请求或存储单元发送的数据,向所述第二仲裁单元转发所述请求或数据;
所述第一仲裁单元设置为接收所述第二路由单元发送的请求转发至所述存储单元,以及接收所述第二路由单元发送的数据转发至所述计算单元;
所述第二路由单元设置为接收其他节点发送请求或数据转发至所述第一仲裁单元或第二仲裁单元;
所述第二仲裁单元设置为接收所述第一路由单元或第二路由单元发送的请求或数据向其他节点转发。
另一方面,本公开实施例还提供了一种工作量证明芯片的处理方法,所述工作量证明芯片为前述任一种工作量证明芯片,所述处理方法包括:
所述计算单元进行工作量证明计算,需要其他节点中存储单元数据集中的数据时,向本节点第一路由单元发送请求,所述第一路由单元将所述请求发送至本节点第二仲裁单元,通过所述第二仲裁单元将所述请求发送至其他节点;
所述第二路由单元接收到其他节点发送的所述计算单元请求的数据后,将所述数据发送至所述第一仲裁单元,所述第一仲裁单元将所述数据发送至所述计算单元。
通过本公开实施例方案,无需外挂内存或者显存,不受内存接口和显存结构的带宽限制,可以在芯片内部实现更高的带宽,且数据集存储在节点内部,功耗低,效率高。
本公开的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本公开而了解。本公开的其他优点可通过在说明书、权利要求书以及附图中所描述的方案来实现和获得。
附图说明
附图用来提供对本公开技术方案的理解,并且构成说明书的一部分,与本公开的实施例一起用于解释本公开的技术方案,并不构成对本公开技术方案的限制。附图中各部件的形状和大小不反映真实比例,目的只是示意说明本公开内容。
图1为本公开实施例一种工作量证明芯片的结构示意图;
图2为本公开实施例提供的包含2节点的工作量证明芯片结构示意图;
图3为本公开实施例提供的包含4节点的工作量证明芯片结构示意图;
图4为本公开实施例提供的包含9节点的工作量证明芯片结构示意图;
图5为图4中节点S11的内部结构示意图;
图6为本公开实施例工作量证明芯片处理方法流程图。
具体实施方式
本公开描述了多个实施例,但是该描述是示例性的,而不是限制性的,并且对于本领域的普通技术人员来说显而易见的是,在本公开所描述的实施例包含的范围内可以有更多的实施例和实现方案。尽管在附图中示出了许多可能的特征组合,并在具体实施方式中进行了讨论,但是所公开的特征的许多其它组合方式也是可能的。除非特意加以限制的情况以外,任何实施例的任何特征或元件可以与任何其它实施例中的任何其他特征或元件结合使用,或可以替代任何其它实施例中的任何其他特征或元件。
本公开包括并设想了与本领域普通技术人员已知的特征和元件的组合。本公开已经公开的实施例、特征和元件也可以与任何常规特征或元件组合,以形成由权利要求限定的独特的发明方案。任何实施例的任何特征或元件也可以与来自其它发明方案的特征或元件组合,以形成另一个由权利要求限定的独特的发明方案。因此,应当理解,在本公开中示出和/或讨论的任何特征可以单独地或以任何适当的组合来实现。因此,除了根据所附权利要求及其等同替换所做的限制以外,实施例不受其它限制。此外,可以在所附权利要求的保护范围内进行各种修改和改变。
此外,在描述具有代表性的实施例时,说明书可能已经将方法和/或过程呈现为特定的步骤序列。然而,在该方法或过程不依赖于本文所述步骤的特定顺序的程度上,该方法或过程不应限于所述的特定顺序的步骤。如本领域普通技术人员将理解的,其它的步骤顺序也是可能的。因此,说明书中阐述的步骤的特定顺序不应被解释为对权利要求的限制。此外,针对该方法和/或过程的权利要求不应限于按照所写顺序执行它们的步骤,本领域技术人员可以容易地理解,这些顺序可以变化,并且仍然保持在本公开实施例的精神和范围内。
本公开实施例提供一种用于完成工作量证明计算的专用集成电路(ApplicationSpecific Integrated Circuit,ASIC)芯片结构,相比传统的CPU、GPU或FPGA等结构,本实施例结构功耗更低,效率更高,并且摆脱了外挂内存或显存,可以直接将数据集存储到ASIC芯片内部。
图1为本公开实施例提供的工作量证明芯片结构示意图,包括2个或2个以上个节点,每个节点包括:计算单元10、存储单元20、第一路由单元30、第一仲裁单元40、第二路由单元50和第二仲裁单元60,第二路由单元50和第二仲裁单元60的数量相同,均为1个或2个或2个以上,其中,计算单元10与存储单元20相连,且所述计算单元10和存储单元20的输出端口均与第一路由单元30的输入端口连接,第一路由单元30的输出端口以及第二路由单元50的输出端口均与第二仲裁单元60的输入端口连接,第二仲裁单元60的输出端口设置为与其他节点的第二路由单元50的输入端口连接,每个第二仲裁单元60的输出端口设置为与不同节点的第二路由单元50的输入端连接,所述计算单元10和存储单元20的输入端口均与第一仲裁单元40的输出端口连接,第一仲裁单元40的输入端口与第二路由单元50的输出端口连接,第二路由单元50的输入端口设置为与其他节点的第二仲裁单元60的输出端口连接,每个第二路由单元50的输入端口设置为与不同节点的第二仲裁单元60的输出端口连接;其中:
所述计算单元10设置为向本节点或其他节点存储单元20请求数据进行工作量证明计算;
所述存储单元20设置为存储工作量证明计算中使用的数据集,响应于本节点或其他节点计算单元10的请求,向本节点或其他节点的计算单元10发送数据;
所述第一路由单元30设置为接收计算单元10发送的请求或存储单元20发送的数据,向第二仲裁单元60转发所述请求或数据;
所述第一仲裁单元40设置为接收第二路由单元50发送的请求转发至存储单元20,以及接收第二路由单元50发送的数据转发至计算单元10;
所述第二路由单元50设置为接收其他节点发送请求或数据转发至第一仲裁单元40或第二仲裁单元60;
所述第二仲裁单元60设置为接收第一路由单元30或第二路由单元50发送的请求或数据向其他节点转发。
通过本公开实施例所述芯片结构,无需外挂内存或者显存,不受内存接口和显存结构的带宽限制,可以在芯片内部实现更高的带宽,且数据集存储在节点内部,功耗低,效率高。
在示例性实施例中,所述第二路由单元50和第二仲裁单元60均包括n个,n为大于等于2的正整数,所述第一仲裁单元40包括n个输入端口,每个输入端口与一个所述第二路由单元50的输出端口连接,所述第二仲裁单元60包括n个输入端口,其中一个输入端口与第一路由单元30的输出端口连接,其余n-1个输入端口与其他第二路由单元50的输出端口一一对应连接,所述第一路由单元30包括n个输出端口,每个输出端口与一个第二仲裁单元60的输入端口连接,所述第二路由单元50包括n个输出端口,其中一个输出端口与第一仲裁单元40的输入端口连接,其余n-1个输入端口与其他第二仲裁单元60的输入端口一一对应连接。
在示例性实施例中,当仲裁单元的输入端口包括2个以上时,所述仲裁单元可以设置为为本仲裁单元的每个输入端口设置不同的权重,每个输入端口的权重值表示了该输入端口能连续处理的请求或数据数量的期望值,例如每个输入端口的权重比值等于设计中对每个端口应通过的请求或数据数量的期望比值,通过实验发现,在为每个端口设置不同的权重后,可以提高芯片整理的运算速度,提升处理效率。
在示例性实施例中,当仲裁单元的输入端口包括2个以上时,可以为每个输入端口设置不同的优先级,并在输入端口没有请求或数据后,降低该输入端口的优先级,经试验证明,动态调整优先级的方式相比固定优先级的方式,可以提高芯片的处理效率。
在示例性实施例中,可以为仲裁单元每个输入端口同时设置权重和优先级,在仲裁单元接收到请求或数据后,根据各个端口的优先级,选择优先级最高的有待处理请求或数据的端口,处理请求或数据的数量根据该端口的权重确定,请求或数据处理完成后,重新调整各端口的优先级,例如将该端口的优先级调至最低,继续选择下一个优先级最高的且有待处理请求或数据的端口。当优先级最高的端口无待处理请求或数据,则调整该端口的优先级,例如将该端口的优先级调至最低。
图2为本公开实施例提供的一种包含2节点的工作量证明芯片结构示意图,该芯片包括节点1和节点2,每个节点结构相同,每个节点包括1个第一计算单元、1个存储单元、1个第一路由单元、1个第一仲裁单元、1个第二路由单元和1个第二仲裁单元。计算单元与存储单元相连,计算单元和存储单元的输出端口均与第一路由单元的输入端口连接,第一路由单元的输出端口与第二仲裁单元的输入端口连接,第二仲裁单元的输出端口与节点2的第二路由单元的输入端口连接,计算单元和存储单元的输入端口均与第一仲裁单元的输出端口连接,第一仲裁单元的输入端口与第二路由单元的输出端口连接,第二路由单元的输入端口与节点2的第二仲裁单元的输出端口连接。由于两个节点间的请求、数据传输都只有一组总线,因此,在另一实施例中,该路由单元和仲裁单元可省略。
图3为本公开实施例提供的一种包含4节点的工作量证明芯片结构示意图,该芯片包括第一节点、第二节点、第三节点和第四节点,每个节点结构相同,每个节点包括1个第一计算单元、1个存储单元、1个第一路由单元、1个第一仲裁单元、2个第二路由单元和2个第二仲裁单元。计算单元与存储单元相连,计算单元和存储单元的输出端口均与第一路由单元的输入端口连接,第一路由单元的2个输出端口分别与2个第二仲裁单元的输入端口连接,每个第二仲裁单元的输出端口与相邻节点的第二路由单元的输入端口连接,计算单元和存储单元的输入端口均与第一仲裁单元的输出端口连接,第一仲裁单元的2个输入端口分别与2个第二路由单元的输出端口连接,第二路由单元的输入端口与相邻节点的第二仲裁单元的输出端口连接。
在本示例中,包括第一仲裁单元和第二仲裁单元在内,每个仲裁单元有两个输入端口,如前所述,可为每个输入端口设置权重和优先级,仲裁单元在处理请求或数据时,根据优先级选择先处理哪个端口的请求或数据,根据该端口的权重确定处理的请求或数据的数量。
图4为本公开实施例提供的一种包含9节点的工作量证明芯片的结构示意图,在本示例中,工作量证明芯片包含的9个节点分别为:节点S00、节点S01、节点S02、节点S10、节点S11、节点S12、节点S20、节点S21和节点S22。每个节点均与相邻的节点相连,每个节点结构相同,图5为节点S11的内部结构示意图。节点S11中包括计算单元S1180,与其连接的存储单元S1181,分别与计算单元S1180和存储单元S1181连接的第一路由单元S1190(图中简写为路由单元),以及分别与计算单元S1180和存储单元S1181连接的第一仲裁单元S1191(图中简写为仲裁单元),此外,节点S11还包括与第一路由单元S1190连接的4个第二仲裁单元(图中简写为仲裁单元)S110、S112、S114和S116,和与第一仲裁单元S1191连接的4个第二路由单元(图中简写为路由单元)S111、S113、S115和S117。
仲裁单元S110、S112、S114、S116和S1191为带反压和缓存的仲裁结构,该些仲裁单元可以缓存一定数量的请求或数据,并在该请求或数据能被对应的互连结构接收时,将其发送到对应的互连结构,当缓存满时,对前一级结构产生反压,防止前一级结构发出的请求或数据无法被接收而丢失,当缓存不满时,反压解除。此外,该些仲裁单元可以根据各个输入端口的数据量设计每个端口的权重比,这决定了每个端口通过的请求或数据的比例,当该比例设置与实际需要通过的请求或数据的比例相符,则会提升整个系统的效率。
以仲裁单元S110为例,其包括四个输入端口:S1100、S1101、S1102和S1103。假设四个输入端口的默认优先级为S1100>S1101>S1102>S1103,并且假设S1100的权重为4,S1101的权重为2,S1102的权重为1,S1103的权重为0。在本例中,权重数量与发送请求的数量相关,权重为4表示最多可连续发送4个请求,权重为0视为端口关闭,不允许请求通过。本例中,优先级调整的原则是在端口发送完请求或者没有请求后,将该端口的优先级调至最低。
对于仲裁单元S110来说,其加权轮询仲裁的行为如下:
假设端口S1100接收到请求,且当前端口S1100的优先级最高,由于端口S1100的权重为4,因此该端口S1100最多可以连续接收4个请求,当端口S1100发送完连续4个请求或者S1100没有请求后,仲裁单元S110将优先级顺序调整为:S1101>S1102>S1103>S1100;
此时分为4种情况:
情况1,端口S1101有请求,由于S1101是优先级最高的有请求的端口,且由于端口S1101的权重为2,因此端口S1101最多可以连续发送2个请求,当端口S1101连续发送完2个请求或者S1101没有请求后,仲裁单元S110将优先级顺序调整为:S1102>S1103>S1100>S1101;
情况2,端口S1101没有请求,但端口S1102有请求,由于端口S1102是优先级最高的有请求的端口,且由于端口S1102的权重为1,当端口S1102发送完1个请求后,仲裁单元S110将优先级顺序调整为:S1103>S1100>S1101>S1102;
情况3, 端口S1101和S1102均没有请求,但端口S1100有请求,由于S1100是优先级最高的有请求的端口,由于端口S1100的权重为4,其最多可以连续发送4个请求,当端口S1100发送完连续4个请求或者端口S1100没有请求后,仲裁单元S110将优先级顺序调整为:S1101>S1102> S1103>S1100;
情况4,端口S1101和S1102均没有请求,S1100没有请求,此时优先级不变,仍为S1100>S1101>S1102>S1103,等待端口S1100、S1101和S1102发来的请求。
每个仲裁单元S110、S112、S114、S116和S1191均可采用上述加权优先级轮询仲裁方案,可以提高整个节点结构的效率。在其他实施例中,或者可以采用固定权重轮询仲裁方案(每个端口权重比固定为1:1),或者固定优先级仲裁方案。
路由单元S111、S113、S115、S117和S1190为带反压和缓存的路由结构,该些路由单元可以缓存一定数量的请求或数据,并在该请求或数据能被对应的互连结构接收时,将其发送到对应的互连结构;当缓存满时,对前一级结构产生反压,防止前一级结构发出的请求或数据无法被接收而丢失;当缓存不满时,反压解除。
例如对于路由单元S1190,其接收来自计算单元S1180的请求并将其缓存,如果缓存满,则反压计算单元S1180使其不再发出请求。路由单元S1190解析所有缓存的请求要发往的位置,例如存在发往仲裁单元S114的请求,如果仲裁单元S114能够接收请求,即对路由单元S1190没有反压,则将请求发往仲裁单元S114。如果缓存中同时存在发往仲裁单元S114和S116的请求,并且仲裁单元S114和S116都能接受请求,则同时将两个请求分别发往仲裁单元S114和S116。存在发往其他端口的请求时,处理方式相同。如果对应的结构不能接受请求,则路由单元S1190继续将其缓存。
计算单元S1180用于进行工作量证明中的计算部分;
存储单元S1181用于存储工作量证明中用到的数据集,数据集被拆分成多个部分,分别存放在各个节点的存储单元内。
下面以节点S00为例介绍本公开实施例工作量证明芯片的工作流程,其他节点可参照执行。
节点S00中计算单元S0080开始进行工作量证明计算,需要请求数据集中的数据,计算单元S0080连续发出请求直到路由单元S0090产生反压,计算单元S0080发出的请求被缓存到路由单元S0090中;
假设计算单元S0080发出的其中一个请求需要访问S11节点存储单元S1181中的数据,记为请求1,请求1首先被发送到路由单元S0090,路由单元S0090缓存请求1;
路由单元S0090同时解析被缓存的所有请求,将缓存中的请求分别发往仲裁单元S000、S002、S004和S006,在此过程中,请求1会被尝试发往到仲裁单元S004;
如果仲裁单元S004此时缓冲是满的,或者由于仲裁的关系不能接收路由单元S0090的请求,即对路由单元S0090有反压,则路由单元S0090继续保存请求1,如果没有反压,则请求1通过路由单元S0090发送到仲裁单元S004;
仲裁单元S004分析所有输入端口上的请求,根据路由单元S007、S0090、S001和S003对应在仲裁单元S004输入端口的权重,依次接收来自上述路由单元的请求,并将其发往节点S01路由单元S011,在此过程中,请求1被发往路由单元S011;
路由单元S011缓存来自仲裁单元S004的所有请求;路由单元S011同时解析被缓存的所有请求,将缓存中的请求分别发往仲裁单元S016、S0191、S014和S012,在此过程中,请求1会被尝试发往仲裁单元S016;
如果仲裁单元S016此时缓冲是满的,或者由于仲裁的关系不能接收路由单元S011的请求,即对路由单元S011有反压,则路由单元S011继续保存请求1,如果没有反压,则请求1通过路由单元S011发往仲裁单元S016;
仲裁单元S016分析所有输入端口上的请求,根据路由单元S011、S0190、S013和S015对应在仲裁单元S016输入端口的权重,依次接收来自上述路由单元的请求,并将其发往S11节点路由单元S113,在此过程中,请求1被发往路由单元S113;
路由单元S113缓存来自S01节点仲裁单元S016的所有请求;路由单元S113同时解析被缓存的所有请求,将缓存中的请求分别发往仲裁单元S110、S1191、 S116和S114,在此过程中,请求1被尝试发往仲裁单元S1191;
如果仲裁单元S1191此时缓冲是满的,或者由于仲裁的关系不能接收路由单元S113的数据,即对路由单元S113有反压,则路由单元S113继续保存请求1,如果没有反压,则请求1通过路由单元S113发送到仲裁单元S1191;
仲裁单元S1191分析所有输入端口上的请求,根据路由单元S117、S111、S113和S115对应在仲裁单元S1191输入端口的权重,依次接收来此上述路由单元的请求,并将其发往存储单元S1181,在此过程中,请求1被发往存储单元S1181;
请求1访问存储单元S1181,获得所请求的数据,记为数据1;
数据1依次通过S11节点路由单元S1190,S11节点仲裁单元S110,S10节点路由单元S105,S10节点仲裁单元S102,S00节点路由单元S007,S00节点仲裁单元S0091被发送到S00节点计算单元S0080,过程与请求1类似,此处不在赘述。至此计算单元S0080完成对位于存储单元S1181上的数据的请求。
计算单元S0080可按以上过程从任意节点获得工作量证明需要的其他数据,进行工作量证明计算。
节点的数量可以有2个到任意多个,前述实施例分别以2节点、4节点和9节点为例进行说明,节点的数量不限于此,以图4所示的芯片结构为例,可以在该结构的基础上进行扩展,增加节点数量,最多例如可以增加至1024个节点。
本公开实施例实现了一种用于工作量证明算法的ASIC单元,解决了CPU、GPU或FPGA做工作量证明时,功耗高、效率低,需要外挂内存或者显存用来存储数据集的问题。
本公开实施例还提供了一种工作量证明芯片的处理方法,所述工作量证明芯片可以是前述任一实施例所述的工作量证明芯片,如图6所示,所述处理方法包括:
步骤A1,计算单元进行工作量证明计算,需要其他节点中存储单元数据集中的数据时,向本节点第一路由单元发送请求;
步骤A2,所述第一路由单元将所述请求发送至本节点第二仲裁单元,通过所述第二仲裁单元将所述请求发送至其他节点;
步骤A3,所述第二路由单元接收到其他节点发送的所述计算单元请求的数据后,将所述数据发送至所述第一仲裁单元;
步骤A4,所述第一仲裁单元将所述数据发送至所述计算单元。
在示例性实施例中,所述方法还包括:
步骤B1,所述存储单元接收到第一仲裁单元发送由其他节点计算单元发送的请求,将请求的数据发送至第一路由单元;
步骤B2,所述第一路由单元将所述数据发送至本节点第二仲裁单元,通过所述第二仲裁单元将所述请求发送至请求数据的节点。
在示例性实施例中,所述第一仲裁单元和所述第二仲裁单元均包括n个输入端口,n为大于等于2的正整数,所述第一仲裁单元或第二仲裁单元接收到请求或数据后,根据每个输入端口的权重和/或优先级处理各输入端口的请求或数据。例如,可以选择优先级最高的且有待处理请求或数据的输入端口,该输入端口的请求或数据处理完成后,将该输入端口的优先级调至最低。
本公开实施例实现了一种用于工作量证明算法的处理方法,解决了CPU、GPU或FPGA做工作量证明时,功耗高、效率低,需要外挂内存或者显存用来存储数据集的问题。
在本公开实施例的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据情况理解上述术语在本公开中的含义。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于 RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。

Claims (10)

1.一种工作量证明芯片,其特征在于,包括2个或2个以上个节点,每个节点包括:计算单元、存储单元、第一路由单元、第一仲裁单元、第二路由单元和第二仲裁单元,所述第二路由单元和第二仲裁单元的数量相同,其中,所述计算单元与所述存储单元相连,且所述计算单元和存储单元的输出端口均与所述第一路由单元的输入端口连接,所述第一路由单元的输出端口以及第二路由单元的输出端口均与所述第二仲裁单元的输入端口连接,所述第二仲裁单元的输出端口设置为与其他节点的第二路由单元的输入端口连接,所述计算单元和存储单元的输入端口均与所述第一仲裁单元的输出端口连接,所述第一仲裁单元的输入端口与所述第二路由单元的输出端口连接,所述第二路由单元的输入端口设置为与其他节点的第二仲裁单元的输出端口连接;其中:
所述计算单元设置为向本节点或其他节点的存储单元请求数据进行工作量证明计算,其中,所述计算单元在需要其他节点中的存储单元数据集中的数据时,向本节点第一路由单元发送请求,以使所述第一路由单元将所述请求发送至本节点第二仲裁单元,通过所述第二仲裁单元将所述请求发送至其他节点的第二路由单元;
所述存储单元设置为存储工作量证明计算中使用的数据集,响应于本节点或其他节点计算单元的请求,向本节点或其他节点的计算单元发送数据;
所述第一路由单元设置为接收计算单元发送的请求或存储单元发送的数据,向所述第二仲裁单元转发所述请求或数据;
所述第一仲裁单元设置为接收所述第二路由单元发送的请求并转发至所述存储单元,以及接收所述第二路由单元发送的数据并转发至所述计算单元;
所述第二路由单元设置为接收其他节点发送的请求或数据并转发至所述第一仲裁单元或第二仲裁单元;
所述第二仲裁单元设置为接收所述第一路由单元或第二路由单元发送的请求或数据并向其他节点转发。
2. 根据权利要求1所述的工作量证明芯片,其特征在于, 所述第二路由单元和第二仲裁单元均包括n个,n为大于等于2的正整数,所述第一仲裁单元包括n个输入端口,每个输入端口与一个所述第二路由单元的输出端口连接,所述第二仲裁单元包括n个输入端口,其中一个输入端口与第一路由单元的输出端口连接,其余n-1个输入端口与其他第二路由单元的输出端口一一对应连接,所述第一路由单元包括n个输出端口,每个输出端口与一个第二仲裁单元的输入端口连接,所述第二路由单元包括n个输出端口,其中一个输出端口与第一仲裁单元的输入端口连接,其余n-1个输入端口与其他第二仲裁单元的输入端口一一对应连接。
3.根据权利要求2所述的工作量证明芯片,其特征在于,
所述仲裁单元还设置为为本仲裁单元的n个输入端口分别设置不同的权重,输入端口的权重值表示该输入端口能连续处理的请求或数据数量的期望值,所述仲裁单元包括第一仲裁单元和第二仲裁单元。
4.根据权利要求2或3所述的工作量证明芯片,其特征在于,
所述仲裁单元还设置为为本仲裁单元的n个输入端口分别设置不同的优先级,在本仲裁单元处理请求或数据时,所述仲裁单元选择优先级最高的且有待处理请求或数据的输入端口,所述输入端口的请求或数据处理完成后,重新调整各输入端口的优先级。
5.根据权利要求4所述的工作量证明芯片,其特征在于,所述仲裁单元选择优先级最高的且有待处理请求或数据的输入端口,该输入端口的请求或数据处理完成后,重新调整各输入端口的优先级,包括:
所述仲裁单元选择优先级最高的且有待处理请求或数据的输入端口,该输入端口的请求或数据处理完成后,将所述输入端口的优先级调至最低。
6.根据权利要求1或2所述的工作量证明芯片,其特征在于,
所述仲裁单元为带反压和缓存的仲裁单元,所述路由单元为带反压和缓存的路由单元。
7.一种工作量证明芯片的处理方法,其特征在于,所述工作量证明芯片包括2个或2个以上个节点,每个节点包括:计算单元、存储单元、第一路由单元、第一仲裁单元、第二路由单元和第二仲裁单元,所述第二路由单元和第二仲裁单元的数量相同,其中,所述计算单元与所述存储单元相连,且所述计算单元和存储单元的输出端口均与所述第一路由单元的输入端口连接,所述第一路由单元的输出端口以及第二路由单元的输出端口均与所述第二仲裁单元的输入端口连接,所述第二仲裁单元的输出端口设置为与其他节点的第二路由单元的输入端口连接,所述计算单元和存储单元的输入端口均与所述第一仲裁单元的输出端口连接,所述第一仲裁单元的输入端口与所述第二路由单元的输出端口连接,所述第二路由单元的输入端口设置为与其他节点的第二仲裁单元的输出端口连接;所述处理方法包括:
所述计算单元进行工作量证明计算,需要其他节点中存储单元数据集中的数据时,向本节点第一路由单元发送请求,所述第一路由单元将所述请求发送至本节点第二仲裁单元,通过所述第二仲裁单元将所述请求发送至其他节点;
所述第二路由单元接收到其他节点发送的所述计算单元请求的数据后,将所述数据发送至所述第一仲裁单元,所述第一仲裁单元将所述数据发送至所述计算单元。
8.根据权利要求7所述的处理方法,其特征在于,所述方法还包括:
所述存储单元接收到第一仲裁单元发送由其他节点计算单元发送的请求,将请求的数据发送至第一路由单元,所述第一路由单元将所述数据发送至本节点第二仲裁单元,通过所述第二仲裁单元将所述请求发送至请求数据的节点。
9.根据权利要求7所述的处理方法,其特征在于,
所述第一仲裁单元和所述第二仲裁单元均包括n个输入端口,n为大于等于2的正整数,所述第一仲裁单元或第二仲裁单元接收到请求或数据后,根据每个输入端口的权重和/或优先级处理各输入端口的请求或数据。
10.根据权利要求9所述的处理方法,其特征在于,仲裁单元根据每个输入端口的权重和/或优先级处理各输入端口的请求或数据,包括:
选择优先级最高的且有待处理请求或数据的输入端口,该输入端口的请求或数据处理完成后,将该输入端口的优先级调至最低。
CN202210844639.2A 2022-07-19 2022-07-19 工作量证明芯片及其处理方法 Active CN114928577B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202210844639.2A CN114928577B (zh) 2022-07-19 2022-07-19 工作量证明芯片及其处理方法
PCT/CN2023/077712 WO2024016659A1 (zh) 2022-07-19 2023-02-22 工作量证明芯片及其处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210844639.2A CN114928577B (zh) 2022-07-19 2022-07-19 工作量证明芯片及其处理方法

Publications (2)

Publication Number Publication Date
CN114928577A CN114928577A (zh) 2022-08-19
CN114928577B true CN114928577B (zh) 2022-10-21

Family

ID=82816044

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210844639.2A Active CN114928577B (zh) 2022-07-19 2022-07-19 工作量证明芯片及其处理方法

Country Status (2)

Country Link
CN (1) CN114928577B (zh)
WO (1) WO2024016659A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114928577B (zh) * 2022-07-19 2022-10-21 中科声龙科技发展(北京)有限公司 工作量证明芯片及其处理方法
CN115905088B (zh) * 2022-12-27 2023-07-14 声龙(新加坡)私人有限公司 一种数据收集结构、方法、芯片和系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5524261A (en) * 1991-12-31 1996-06-04 Dictaphone Corporation (U.S.) Voice processor interface chip with arbitration unit
CN112214427A (zh) * 2020-10-10 2021-01-12 中科声龙科技发展(北京)有限公司 缓存结构、工作量证明运算芯片电路及其数据调用方法
CN112214448A (zh) * 2020-10-10 2021-01-12 中科声龙科技发展(北京)有限公司 异质集成工作量证明运算芯片的数据动态重构电路及方法
CN112925504A (zh) * 2021-02-20 2021-06-08 北京比特大陆科技有限公司 工作量证明的计算装置、asic芯片和工作量证明的计算方法
CN114238157A (zh) * 2021-11-26 2022-03-25 浙江毫微米科技有限公司 工作量证明的获取装置、方法、电子设备、存储介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102546417B (zh) * 2012-01-14 2014-07-23 西安电子科技大学 基于网络信息的片上网络路由器调度方法
US20200118093A1 (en) * 2018-08-10 2020-04-16 Hajoon Ko System and method for arbitrating a blockchain transaction
CN114003552B (zh) * 2021-12-30 2022-03-29 中科声龙科技发展(北京)有限公司 工作量证明运算方法、工作量证明芯片及上位机
CN114928577B (zh) * 2022-07-19 2022-10-21 中科声龙科技发展(北京)有限公司 工作量证明芯片及其处理方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5524261A (en) * 1991-12-31 1996-06-04 Dictaphone Corporation (U.S.) Voice processor interface chip with arbitration unit
CN112214427A (zh) * 2020-10-10 2021-01-12 中科声龙科技发展(北京)有限公司 缓存结构、工作量证明运算芯片电路及其数据调用方法
CN112214448A (zh) * 2020-10-10 2021-01-12 中科声龙科技发展(北京)有限公司 异质集成工作量证明运算芯片的数据动态重构电路及方法
CN112925504A (zh) * 2021-02-20 2021-06-08 北京比特大陆科技有限公司 工作量证明的计算装置、asic芯片和工作量证明的计算方法
CN114238157A (zh) * 2021-11-26 2022-03-25 浙江毫微米科技有限公司 工作量证明的获取装置、方法、电子设备、存储介质

Also Published As

Publication number Publication date
WO2024016659A1 (zh) 2024-01-25
CN114928577A (zh) 2022-08-19

Similar Documents

Publication Publication Date Title
CN114928577B (zh) 工作量证明芯片及其处理方法
US8397010B1 (en) Convenient, flexible, and efficient management of memory space and bandwidth
JP2016195375A (ja) 複数のリンクされるメモリリストを利用する方法および装置
US11334507B2 (en) Method and system for communicating data packets in remote direct memory access networks
WO2024016660A1 (zh) 芯片结构及电子设备
WO2024016661A1 (zh) 工作量证明芯片及电子设备
CN112214427B (zh) 缓存结构、工作量证明运算芯片电路及其数据调用方法
US20140052938A1 (en) Clumsy Flow Control Method and Apparatus for Improving Performance and Energy Efficiency in On-Chip Network
CN107729261B (zh) 一种多核/众核处理器中Cache地址映射方法
US10003551B2 (en) Packet memory system, method and device for preventing underrun
WO2019109902A1 (zh) 队列调度方法及装置、通信设备、存储介质
US11720413B2 (en) Systems and methods for virtualizing fabric-attached storage devices
US10254973B2 (en) Data management system and method for processing distributed data
US10067868B2 (en) Memory architecture determining the number of replicas stored in memory banks or devices according to a packet size
US10031884B2 (en) Storage apparatus and method for processing plurality of pieces of client data
CN115242729B (zh) 基于多优先级的cache查询系统
KR20030076679A (ko) 메모리로의 액세스의 수를 감소시키는 방법 및 시스템 및 기록 매체
US20220358059A1 (en) Data access method for direct memory access (dma), and processor
CN111813717B (zh) 一种数据帧存储切换的装置及方法
CN114880254A (zh) 一种表项读取方法、装置及网络设备
KR102338872B1 (ko) 다수의 클라이언트 데이터를 처리하는 저장 장치 및 방법
US11720279B2 (en) Apparatus and methods for managing packet transfer across a memory fabric physical layer interface
CN114003544A (zh) 一种控制芯片、工作量证明系统和传输方法
CN111857817B (zh) 数据读取方法、数据读取装置及数据读取系统
US10067690B1 (en) System and methods for flexible data access containers

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
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20230414

Address after: 10 Jialeng Road, Singapore # 09-11

Patentee after: Shenglong (Singapore) Pte. Ltd.

Address before: 1605, floor 16, No. 9, North Fourth Ring West Road, Haidian District, Beijing 100080

Patentee before: SUNLUNE TECHNOLOGY DEVELOPMENT (BEIJING) Co.,Ltd.