ASIC阵列、数据处理板以及区块挖掘方法和设备与流程

文档序号:18899804发布日期:2019-10-18 21:47阅读:264来源:国知局
ASIC阵列、数据处理板以及区块挖掘方法和设备与流程

本发明涉及区块链技术领域,特别是涉及一种用于区块挖掘的方法和设备,以及采用区块挖掘的方法的asic阵列和数据处理板。



背景技术:

以太坊(ethereum)是一个全新的开方的区块链平台,它允许任何人在平台中建立和使用通过区块链技术运行的去中心化应用。以太坊的核心是一个点对点(p2p)网络,以太坊区块链数据库是由众多连接到网络的节点来维护和更新的。

图1是现有技术的以太坊区块挖掘示意图。如图1所示,交易费用由节点收集,用户(miner)12就是以太坊网络10中收集、传播、确认和执行交易的节点。用户们将交易打包为区块,并互相竞争,以使他们的区块可以添加到下一个区块链上,这个过程称之为挖矿。矿池服务器11(poolserver)在新的区块上将区块挖掘业务分包给矿池(miningpool)里的用户,每一个挖矿工作的参数包括区块字头散列值、用户期望搜寻到的随机数值范围和难易度。

和区块链网络一样,用户们通过解决复杂数学问题的任务以便成功地“挖”到区块,这被称为“工作量证明”。一个运算问题,如果在算法上解决,比验证解决方法需要更多数量级的资源,那么它就是工作量证明的极佳选择。为防止区块链网络中已经发生的专门硬件(例如特定用途集成电路)造成的中心化现象,以太坊选择了侧重于消耗更多内存的运算问题。如果问题需要内存和cpu,那么理想的硬件就是普通电脑。这就使以太坊的工作量证明具有抗特定用途集成电路的特性,和区块链这种由专门硬件控制区块挖掘的区块链相比,以太坊能够带来更加去中心化的安全分布。

解决复杂数学问题的过程与区块挖掘设备的cpu性能零相关,与区块挖掘设备的内存大小及内存带宽正相关,这意味着那些通过共享内存的方式大规模部署的区块挖掘设备,在区块挖掘效率上并不能产生线性或者超线性(super-linear)的增长。

专利申请“一种改进型环状拓扑结构及其应用方法”,国际公布号wo2015176243a9,提供了一种光电通信领域的改进型环状拓扑结构及其应用方法。所述改进型环状拓扑结构由m*n个以网格拓扑结构相连的路由节点构成,其中包括两个闭合环:第k行第1个路由节点与第k+1行第n个路由节点连接,第2行第n个路由节点与第m-1行第1个路由节点连接,以使得第2行至第m-1行中的所有路由节点形成第1闭合环,1<k<m-1;第j列第m个路由节点与第j+1列第1个路由节点连接,第2列第1个路由节点与第n-1列第m个路由节点连接,以使得第2列至第n-1列中的所有路由节点形成第2闭合环,1<j<n-1。采用以上技术手段,可以减少节点之间交互的平均通信传输路径,降低节点之间的传输延时。

但上述发明并未考虑片上网络的节点之间链路的物理长度如果不相等的问题,链路的物理长度不相等将会导致片上网络内的信息传递可能在特定方向上需要额外的缓冲并引起不一致的延时,导致裸片的物理设计和片上网络的转发策略复杂度上升。



技术实现要素:

为解决链路物理长度不相等使片上网络内信息传递延时不一致,进而导致裸片的物理设计和片上网络的转发策略复杂度上升的问题,本发明公开了一种asic阵列,使用该asic阵列的数据处理板,以及使用该数据处理板区块挖掘设备,和对应的区块挖掘方法。

具体来说,本发明公开了一种asic阵列,用于进行区块挖掘,该asic阵列的asic芯片封装有多个设置有片上网络的裸片,该片上网络包括m×n个计算节点,该计算节点的noc地址为(m,n),noc地址相邻的计算节点通过片上通道相互连接,该片上网络采用二维折叠环形拓扑结构,其中该二维折叠环形拓扑结构为该片上网络的第n行该计算节点的物理地址依次为(0,n)、(1,n)、……、(m-1,n)时,则第n行该计算节点对应的noc地址依次为(0,n)、(m-1,n)、(2,n)、(m-2,n)、……、(n),该片上网络的第m列该计算节点的物理地址依次为(m,0)、(m,1)、……、(m,n-1)时,则第m列该计算节点对应的noc地址依次为(m,0)、(m,n-1)、(m,1)、(m,n-2)、……、(m,),其中0≤m≤m-1,0≤n≤n-1,m≥2,n≥2,且m、n、m、n为整数。

进一步的,该片上网络包括6×12个计算节点,该asic芯片包括2个裸片,该pcb电路板的一面设置4×4个该asic芯片,该pcb电路板的另一面设置4×4个该asic芯片。

本发明还公开了一种区块挖掘方法,采用上述的asic阵列进行区块挖掘,其特征在于,包括:步骤1,获取用于对当前区块进行挖掘的随机数据集;步骤2,将该随机数据集划分为多个子集并分布存储于该asic阵列的该计算节点;步骤3,任意选取某一该计算节点所保存的子集中的某一随机数进行第一轮地址运算以获取目标地址,以该目标地址,根据该二维折叠环形拓扑结构寻找该目标地址的对应计算节点,并从该对应计算节点所保存的子集中的对应随机数作为下一轮地址运算的输入;以经过预设轮数的地址运算后获得的随机数为目标随机数;步骤4,对该目标随机数进行散列计算以获得目标值,若该目标值小于或等于难度阈值,则以该目标随机数为当前区块的区块随机数,以该目标值为当前区块的区块散列值;反之则丢弃该目标随机数,并重新执行步骤3;步骤5,将该区块随机数和该区块散列值写入该当前区块,并将该当前区块广播至区块链网络;步骤6,当验证者接收到广播的该当前区块时,验证该当前区块的合法性,并将验证合法的当前区块链入区块链。

进一步的,该当前区块包括:当前区块头和当前区块体,其中该当前区块头包括前一区块的区块散列值、当前区块随机数、当前区块散列值和该难度阈值。

本发明还公开了一种用于区块挖掘的数据处理板,包括上述的asic阵列,还包括:与该asic阵列连接的控制器单元,用于监视该asic阵列操作,向该asic阵列输入数据并输出该asic阵列获取的结果;温度管理单元,包括散热器和温度传感器,其中该温度传感器用于检测该数据处理板的温度并传送至该控制器单元和/或该散热器,或控制该电源的工作状态;该散热器用于为该数据处理板降温;引导单元,与该控制器单元连接,用于对该控制器单元的启动引导;调试单元,与该控制器单元连接,用于对该控制器单元进行调试并提供调试参数。

进一步的,该控制器单元为现场可编程门阵列。

本发明还公开了一种用于区块挖掘的设备,包括至少一个上述的数据处理板,还包括:网络通信模块,用于连接区块链网络以进行数据接收和发送;任务分配模块,用于将从该网络获取的数据分发给该数据处理板,并将该数据处理板得到的结果通过该网络通信模块发送至该网络。

本发明的asic阵列采用的二维折叠环形拓扑结构,片上网络中计算节点前向和后向路径交错,在不同的方向紧邻节点之间的链路具有相同的缓冲和延迟特征,可以极大的简化裸片的物理实现和片上网络转发策略。

附图说明

图1是现有技术的以太坊区块挖掘示意图。

图2是现有技术的以太坊区块结构示意图。

图3是本发明的区块挖掘方法流程图。

图4是本发明第一实施例的asic阵列结构示意图。

图5是本发明第一实施例的片上网络二维环形拓扑结构示意图。

图6是本发明第一实施例的计算节点之间的片上通道方向示意图。

图7是本发明第一实施例的裸片之间的片间通道示意图。

图8是本发明第一实施例的asic芯片之间的片间通道示意图。

图9a、9b是一维折叠环面拓扑结构示意图。

图10是本发明第一实施例的二维折叠环面拓扑结构示意图。

图11是本发明第二实施例的基于asic阵列的数据处理板的结构示意图。

图12是本发明第三实施例的区块挖掘设备结构示意图。

其中,附图标记为:

10:以太坊11:矿池服务器

12:用户100:asic阵列

110:asic芯片120:裸片

130:片上网络140:节点

140-1:计算节点140-2:功能节点

141:内存142:混算器

143:节点通信模块144:片上通道

150:反射器节点160:片间通道

161:链路对162:链路

170:pcb电路板180:串并行通道

200:数据处理板210:控制器单元

220:电源230:温度传感器

240:风扇300:任务分配模块

400:网络通信模块500:区块挖掘设备

rx:接收器tx:发射器

e、s、w、n:端口位置

具体实施方式

下面将结合附图对本发明进行详细描述。在附图中,相同标号一般表示相同或功能相似的部件。另外,附图标记最左边的数字表明该附图标记首次出现时的那幅附图的编号。

本说明书公开了一个或多个包含本发明特点的实施例。公开的实施例仅仅用于举例说明。本发明的保护范围并不限于所公开的实施例。本发明由所附权利要求来限定。说明书中针对“一个实施例”、“实施例”、“示例实施例”等的引用,指的是描述的该实施例可包括特定的特征、结构或特性,但是不是每个实施例必须包含这些特定特征、结构或特性。此外,这样的表述并非指的是同一个实施例。进一步,在结合实施例描述特定的特征、结构或特性时,不管有没有明确的描述,已经表明将这样的特征、结构或特性结合到其它实施例中是在本领域技术人员的知识范围内的。

在说明书及后续的权利要求书中使用了某些词汇来指称特定组件或部件,本领域普通技术的员应可理解,技术使用者或制造商可以不同的名词或术语来称呼同一个组件或部件。本说明书及后续的权利要求书并不以名称的差异来作为区分组件或部件的方式,而是以组件或部件在功能上的差异来作为区分的准则。在通篇说明书及后续的权利要求项中所提及的“包括”和“包含”为一开放式的用语,故应解释成“包含但不限定于”。以外,“连接”一词在此包含任何直接及间接的电性连接手段。间接的电性连接手段包括通过其它装置进行连接。需要说明的是,在本发明的描述中,术语“横向”、“纵向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,并不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。

区块链是一种计算与存储架构,具体来说是一种去中心化的分布式记账系统,该系统中的节点无需互相信任,通过统一的共识机制共同维护一份账本。而以太坊是一种能够被重编程用以实现任意复杂计算功能的单一区块链。图2是现有技术的以太坊区块结构示意图。如图2所示,以太坊的区块结构包括区块头和区块体,其中区块头包括前一区块散列值、本区块的区块散列值、本区块的区块随机数、挖掘本区块的难度阈值等,区块体包括本区块建立过程中所有外部账户发出的消息的签名数据包。以太坊的共识机制是pow(proofofwork工作量证明机制),使用ethash算法,这种算法是对dagger-hashimoto算法的改良版本,使用大量的伪随机数据,这些伪随机数据的集合被称为“数据集(dataset)”或简称为dag。ethash算法的特点是区块挖掘的效率与内存大小和内存带宽正相关,其流程包括:对于每一个块,首先计算一个种子(seed),seed只和当前区块的信息有关;然后根据seed生成一个32m的随机数据集(cache);根据cache生成一个1gb大小的随机数据集dag(有向非循环图),dag是一个完整的搜索空间,区块挖掘的过程就是从dag中随机选择元素(类似于区块链的区块挖掘中查找合适nonce)再进行散列运算,可以从cache快速计算dag指定位置的元素,进而哈希验证要求对cache和dag进行周期性更新,每1000个块更新一次,并且规定dag的大小随着时间推移线性增长。

由于以太坊的工作量证明具有抗特定用途集成电路的特性,在以太坊的数字货币——以太币的挖掘中,asic相对于使用内存和cpu的普通电脑,并没有速度和效率上的优势。图3是本发明的区块挖掘方法流程图。如图3所示,本发明公开了一种区块挖掘方法,使以太坊的区块挖掘可以使用asic阵列并获取较高的速度和效率,具体而言,本发明的区块挖掘方法包括:

步骤s1,以太坊的用户获取当前区块的区块体,以及用于对当前区块进行挖掘的随机数据集dag;其中dag是通过ethash算法中已知的技术手段获取,例如通过如keccak256算法的散列计算获取seed,通过如keccak512算法的散列计算根据seed生成cache,通过如keccak512算法的散列计算根据cache生成dag等,本发明并不以此为限;

步骤s2,将随机数据集dag划分为多个随机数据集子集,并将子集以一对一的形式分布存储于计算节点的内存中,以使每个计算节点的内存都存储有一个伪随机数子集;

步骤s3,选取某一子集中的某一随机数作为首轮地址运算的输入,通过地址运算所获得的结果是一个目标地址,这个目标地址对应的随机数作为本轮地址运算的输出,即这个输出的随机数为本轮地址运算结果,其中这个输出的随机数可能处于输入的随机数所在的子集,也可能处于另一个子集;以该目标地址,根据该二维折叠环形拓扑结构寻找该目标地址的对应计算节点,并从该对应计算节点所保存的子集中的对应随机数作为下一轮地址运算的输入,进行下一轮地址运算;进行r轮地址运算后,以获得的地址运算结果为目标随机数;其中r为预设的轮数;对获得的目标随机数进行散列计算以获得目标值;

步骤s4,将获得的目标值与当前区块挖掘的难度阈值进行比较,若目标值小于或等于难度阈值,则以获得的目标随机数为当前区块的区块随机数,以获得的目标值为当前区块的区块散列值;若目标值大于难度阈值,则舍弃这个目标值对应的目标随机数,并重新执行步骤s3;

步骤s5,将步骤s4获得的区块随机数和区块散列值写入当前区块的区块头,以得到完整的当前区块,将完整的当前区块广播至以太坊。

步骤s6,以太坊的其他用户(验证者)在接收到广播的当前区块时,根据当前区块的区块头中所包含的前一区块的区块散列值、当前区块的区块随机数、当前区块的区块散列值和难度阈值等,对当前区块的合法性进行验证,并将验证合法的当前区块链入区块链。

根据上述区块挖掘方法,本发明该公开了一种asic阵列(asicarray),本发明所公开的asic阵列,asic芯片之间通过高速链路连接,且每个asic芯片上还包括多个裸片(die),每个裸片包括一个片上网络(noc,networkonchip),片上网络noc有多个计算节点,片上网络noc有多个计算节点,每个计算节点都包括混算器、节点通信模块、内存等。

图4是本发明第一实施例的asic阵列结构示意图。如图4所示,于本发明的第一实施例,asic阵列100包括pcb电路板170和asic芯片110,其中asic芯片110设置于pcb电路板170的上底面和下底面,在pcb电路板170的上底面,asic芯片110为16个,呈4×4的阵列均匀分布,在pcb电路板170的下底面,镜像分布着同样数量的asic芯片110;每个asic芯片110包括2个并列的裸片120;每个裸片120包括一个片上网络130;片上网络130包括72个计算节点(node)140和6个反射器节点(reflector)150;计算节点140包括内存(sram)141、混算器(mixer)142和节点通信模块143,每个计算节点140具有rmb的内存。如此一来,整个asic阵列100则具有32(2×4×4)个asic芯片110,64(2×32)个裸片120,4608(64×72)个计算节点。

图5是本发明第一实施例的片上网络的二维环形拓扑结构示意图。如图5所示,72个计算节点140呈6×12阵列均匀分布,定义x为行方向,y为列方向,片上网络130共6列、12行,在每列的最底部还分别有1个反射器节点150,计算节点140-1之间、反射器节点150与计算节点140-1之间通过片上网络的差分线所形成的片上通道144相互连接,使片上网络具有二维环形拓扑结构,其中每个计算节点140-1都有4个与之直接相连接的计算节点140-1作为紧邻节点。而反射器节点150串联在片上网络130的列中,仅有两个紧邻节点,而不与其它列连接。图6是本发明第一实施例的计算节点之间的片上通道方向示意图。如图6所示,以方向e、w、s、n表示片上网络的二维环形拓扑结构中的计算节点140-1与其紧邻节点连接的片上通道144的端口位置,则反射器节点150仅有n、s方向。

图7是本发明第一实施例的裸片之间的片间通道示意图。如图7所示,裸片120之间的片间通道160包括两条链路对(pair)161,两条链路对161分别对应两个彼此相向的方向,每个链路对161的端点都分别设置一个发送器tx和一个接收器rx,链路对161所对应的方向由发送器tx和接收器rx所在的位置决定。每个链路对161有两条链路162,如此一来,每个片间通道160包括4条链路162。图8是本发明第一实施例的asic芯片之间的片间通道示意图。如图8所示,裸片120之间也通过片间通道160相互连接。由于每个asic芯片110都包含2个裸片120,因此任一对芯片110之间都需要4条片间通道160进行连接。

需要强调的是,asic芯片110内的2个裸片120之间通过2条片间通道160相互连接,其中1条片间通道160可以作为2个裸片120之间的备用连接通道。

于本发明的第一实施例,裸片120以全网状拓扑(fullmeshtopology)结构连接,即每个裸片120都通过片间通道160与所有其他裸片120直接连接。裸片120还包括用于运算任务生成和运算数据插入的功能模块,以及用于计算数据插入和计算结果输出的串并行通道(serdes)180。请再次参照图5,如图5所示,于本发明的第一实施例,片上网络的72个计算节点140-1中有64个计算节点140-1连接串并行通道144,剩余8个计算节点140-1连接功能模块。于图5中,深色节点代表与功能模块相连接的功能节点140-2,浅色节点代表与串并联通道相连接的计算节点140-1。

本发明提出了一种二维折叠环面拓扑结构。下面先介绍一维折叠环面拓扑结构,以便可以更为容易的理解二维折叠环面拓扑结构的细节。图9a、b是一维折叠环面拓扑结构示意图。如图9a所示,存在一个一维环形拓扑结构的片上网络,其中大部分计算节点以相同长度的链路通道连接到它们的紧邻节点,但边缘节点之间的连接则只能由通过所有中间节点的链路通道连接,使得不是所有计算节点与其紧邻节点之间的链路通道长度都相等,将会导致信息传递可能在特定方向上需要额外的缓冲并引起不一致的延时,导致裸片的物理设计和片上网络的转发策略复杂度上升。本发明采用一种折叠环面的拓扑结构,如图9b所示,使得片上网络中计算节点前向和后向路径交错,如此一来,虽然节点之间链路长度增加,但不同的方向紧邻节点之间的链路则有相同的缓冲和延迟特征。

图10是本发明第一实施例的二维折叠环面拓扑结构示意图。如图10所示,于本发明的第一实施例,采用二维折叠环面使得片上网络130中计算节点140-1前向和后向路径交错。在折叠模式之后,计算节点逻辑和计算节点编号均发生改变,导致计算节点140-1的物理位置发生改变。以方向e、w、s、n表示拓扑结构中计算节点140-1的各个方向上的链路通道端口位置,逻辑和物理布局之间的这些不一致可以通过可选地交换链路选择信号,并且在节点结构中不需要任何物理上的差异。旋转右侧一半节点以将链路通道部分放置在靠近片上网络边缘的节点中。使用与折叠相同的交换机制,可以从逻辑视图隐藏该物理旋转。折叠环面的拓扑结构会导致环面的物理结构和其逻辑结构之间引入不一致,例如,节点的某端口的逻辑方向为“e”,物理结构变化后可能发生位置的变化,但对应这个端口的逻辑方向,仍称这个端口为“e”。通过本发明的二维折叠环面的拓扑结构,使得片上网络中计算节点前、后、上、下路径交错,在确保节点之间链路长度不过分增加的前提下,使不同的方向紧邻节点之间的链路具有相同的缓冲和延迟特征,可以简化裸片的物理实现和片上网络转发策略。

具体来说,于本发明的第一实施例中,片上网络130的拓扑结构包括6×12个计算节点140-1,若分别用列数m和行数n来标识节点noc地址编号,如在第n行上节点noc地址依次为(0,n)、(1,n)、(2,n)、(3,n)、(4,n)、(5,n),在第m列上节点noc地址依次为(m,0)、(m,1)、(m,2)、(m,3)、(m,4)、(m,5)、(m,6)、(m,7)、(m,8)、(m,9)、(m,10)、(m,11),进行折叠操作后,在第n行上节点noc地址变为(0,n)、(5,n)、(1,n)、(4,n)、(2,n)、(3,n),在第m列上节点noc地址变为(m,0)、(m,11)、(m,1)、(m,10)、(m,2)、(m,9)、(m,3)、(m,8)、(m,4)、(m,7)、(m,5)、(m,6)。

此外,片上网络130中包括连接功能模块的8个功能节点140-2,每个不与功能模块连接的计算节点140-1都有一个功能节点140-2作为紧邻节点。请再次参阅图10,如图10所示,采用本发明的二维折叠环面拓扑结构,功能节点140-2的物理分布可以保持不变,并且每个计算节点140-1仍有一个功能节点140-2作为连接的逻辑邻居。

图9是本发明第二实施例的一种基于asic阵列的数据处理板的结构示意图。如图9所示,于本发明的第二实施例,提供一种基于asic阵列的数据处理板,该数据处理板包括asic阵列100,控制器单元(controller)210,电源(power)220和温度管理单元(thermalmanagement),其中温度管理单元包括温度传感器(sensors)230、散热器240。asic阵列100用于接收控制器单元210传来的数据并对其进行散列计算,当得到满足要求的结果后,将其传送给控制器单元210;控制器单元210分别与asic阵列100和温度管理单元连接,用于监视asic阵列的散列计算,接收外部数据后将其传送给asic阵列,并输出asic阵列获取的结果;电源220用于将直流输入电压转换为工作电压,并将工作电压提供给数据处理板的asic阵列100、控制器单元210及其他模块;温度管理单元可以将通过温度传感器230获得的数据处理板的温度信息发送给控制器单元210,还可以接收控制器单元210的指令,温度管理单元根据控制器单元210的指令发送给散热器240,散热器240的风扇控制器以启动或关闭风扇,或调整风扇转速,也可以在不涉及系统软件的情况下控制电源工作状态,例如当温度传感器230检测到数据处理板200温度过高时控制切断电源。于本发明的第二实施例中,控制器单元210可以采用运行linux操作系统的具有4gbram的zynqzu3cg现场可编程门阵列fpga。

于本发明的第二实施例中,还包括引导单元、调试单元和状态灯,其中引导单元用于控制器单元的启动引导,例如是μsd存储卡或其他具备引导功能的存储介质,本发明并不以此为限;调试单元可访问控制器单元的串行控制台和jtag,用于对控制器单元进行调试并提供调试参数,例如是usb全速设备等,本发明并不以此为限;状态灯用于通过色彩和/或亮度变化显示数据处理板的工作状态,例如是led等元件。

本发明公开的asic阵列及使用asic阵列的数据处理板,用于使用例如是sha3散列函数的散列计算,满足以太坊的工作量验证算法pow的大内存需求。图10是本发明第三实施例的区块挖掘设备结构示意图。如图10所示,于本发明的第三实施例,公开了一种用于以太坊区块挖掘的区块挖掘设备500,包括网络通信模块400、任务分配模块300及前述的数据处理板200,其中网络通信模块400用于与以太坊的数据通信,例如是高速网卡等设备;任务分配模块400用于将获取的以太坊区块挖掘数据分发给数据处理板,并将数据处理板得到的结果通过网络通信模块发送至以太坊;以太坊区块挖掘设备500包括一个或多个数据处理板200,数据处理板200对任务分配模块400分发的数据进行处理,以进行区块挖掘。本发明的第三实施例的区块挖掘设备500还包括供电模块、散热模块、机箱等,属于区块挖掘领域中的常见技术,故这里不再赘述。

虽然本发明已以实施例公开如上,而并非用以限定本发明,任何本技术领域的技术人员,在未脱离本发明的精神与范围内,可对其进行等效修改或变更,均应包含于本发明的权利要求书保护范围中。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1