基于阻变存储器的通用区块链应用处理加速方法及系统与流程

文档序号:20115588发布日期:2020-03-17 19:49阅读:313来源:国知局
基于阻变存储器的通用区块链应用处理加速方法及系统与流程

本发明涉及忆阻器rram存储器、3d存储器及区块链应用处理领域。具体设计到基于3d存取器以及rram实现的用于加速通用区块链应用的处理结构设计,通过利用rram实现一定的逻辑及运算功能,实现基于硬件的区块链应用处理,并结合高效数据流执行模式,具有处理速度快、能效高等优势。



背景技术:

区块链技术(blockchain)是指通过去中心化的方式集体维护一个可靠数据库的技术方案。该技术方案主要让区块(block)通过密码学方法相关联起来,每个数据块包含了一定时间内的系统全部数据信息,并且生成数字签名以验证信息的有效性并链接到下一个数据块形成一条主链(chain)。区块链技术由于基于分布式记账特性,具有极高的安全性和防篡改能力,被认为在金融、征信、物联网、经济贸易结算、资产管理等众多领域都拥有广泛的应用前景。现有区块链系统在设计和实现中利用了分布式系统、密码学、网络协议等诸多学科的知识。

目前,区块链技术在数字货币领域已经得到了广泛的应用。主要的代表性数字货币及其应用的算法包括,比特币-sha256算法、莱特币-scypt算法、以太坊-ethash算法、达士币-x11算法(11种加解密算法)、zcash-equihash算法、比原链-tensority算法以及素数币-寻找大素数算法等等。

3d存储器-hmc。混合立方体记忆体(hybridmemorycube,hmc)是属于同构型记忆体3dic堆栈技术,由美系记忆体大厂美光(micron)主导研发,后来三星电子(samsungelectronics)、ibm等大厂也先后加入。如图8所示,采用8层的存储体累积叠加,通过硅通孔技术(throughsiliconvia,tsv)技术进行访问。每个立体的存储管理单位为一个vault。处理单元(pe)可以集成到logicbase这一层,如此,可以将数据与处理单元紧密结合到一起,提高执行速度。

阻变存储器又称忆阻器rram的运行特征。阻变式存储器(resistiverandomaccessmemory,rram)是以材料的电阻在外加电场作用下可在高阻态和低阻态之间实现可逆转换为基础的一类非易失性存储器。随着对rram的研究,越来越多的研究人员利用阻变存储器的多阻值特性,以及根据读写电压的调整,实现了基于rram存储即计算功能,通过电压的调整产生不同的电流的叠加,实现对不同存储单元数据的逻辑运算。如图9所示,电压v1和电压v2分别通过电阻g1和g2后形成的电流,根据基尔霍夫(电路)定律(kirchhofflaws),会产生电流的叠加,通过电流的大小可以实现加法操作或者乘加操作。并且,对数据进行进一步加工之后,可以实现多种逻辑操作的结果。

通过以上分析可知,区块链应用的核心算法大部分涉及到加解密算法及其它简单算法。而忆阻器rram的出现,由于可以在存储的过程中实现简单的逻辑操作和简单算术运算操作,给区块链应用的存储和计算带来了新的设计思路。

数据流执行模式。据流架构的起源可以追溯到上个世纪70年代。传统的控制流结构利用程序计数器(programcounter)指示下一条执行的指令,发射/提交顺序固定。而在数据流结构中,程序指令的执行顺序只取决于指令之间的依赖关系。数据流体系结构的基本执行原则是:任意一条指令可以在其操作数准备好的情况下执行。数据流体系结构的执行依靠数据流图,数据流图的每个节点即表示一条指令,每一条边表示指令之间的依赖关系,数据流图边的两端连接了上游指令与下游指令,上游指令在完成计算后将数据传递给下游指令。

数据流结构的计算模式与传统控制流完全不同。在传统控制流处理器中,指令按照程序计数器顺序执行,即指令序列规定了发射/提交顺序。但在数据流计算模式中,只要指令所需的操作数准备好了,这条指令即可被执行。在数据流计算中,程序是以数据流图表示的,每条指令的执行结果直接传递到另外一条指令,作为目的指令的操作数,指令与指令之间通过依赖边来建立依赖关系,从而形成数据流图。与传统的控制流结构相对,数据流的优势主要体现在并行度高、访存开销低、片上逻辑简单以及同步开销低。



技术实现要素:

本发明的目的利用阻变存储器rram的基于电流叠加效应的数据累加功能及辅助电路的功能,提出基于硬件的通用区块链应用加速结构,相比与软件算法具有较高的执行速度和显著的能效比提升,并结合数据流任务分配和执行模式,能够获得更高的执行效率和能效。

针对现有技术的不足,本发明提出一种基于阻变存储器的通用区块链应用处理加速方法,其中包括:

步骤1、将由多个程序段组成的区块链应用发总至主处理器端;

步骤2、该主处理器端按序选择该区块链应用中程序段作为当前程序,判断该当前程序是否为区块链加速处理程序,若是,则执行步骤3,否则执行步骤4;

步骤3、将该当前程序发送至包括存储处理器和阻变存储器的hmc存储器端,其中该存储处理器集成在该hmc存储器端的逻辑控制层,该阻变存储器集成在该hmc存储器端的立体存储层,该存储处理器通过控制该立体存储层,以数据流运行的方式完成对该当前程序的近存储计算,得到该当前程序的执行结果,并将其回传至该主处理器端,继续执行该步骤2;

步骤4、该主处理端中的乱序核根据该当前程序,以控制流运行的方式执行该当前程序,得到执行结果,继续执行该步骤2;

步骤5、循环执行该步骤2到该步骤4,直到将该区块链应用中全部程序段执行完成,得到该区块链应用的处理结果。

所述的基于阻变存储器的通用区块链应用处理加速方法,其中该立体存储层包括多个堆叠的阻变存储器块,每个阻变存储器块内部分为多个memorytile,memorytile间通过总线结构互联通信。

所述的基于阻变存储器的通用区块链应用处理加速方法,其中memorytile包括交叉开关矩阵存储、配置缓冲区和processingandtransfer;

其中该配置缓冲区,用于配置及控制该交叉开关矩阵存储实现相应功能的运算;

该processingandtransfer,用于对该交叉开关矩阵存储输出的数据的进一步运算及数据的传输。

所述的基于阻变存储器的通用区块链应用处理加速方法,其中该交叉开关矩阵存储包括配置缓存、状态控制器、sample&hold和译码传输单元;

其中该配置缓存,用于存储来自该存储处理器的配置信息;

该状态控制器,用于根据该的配置信息,对,该交叉开关矩阵存储进行配置,并运行输出相应的运行结果;

该sample&hold,用于将运行结果发送至该译码传输单元;

该译码传输单元,用于对该运行结果进行译码,并根据该配置信息中的路由内容进行路由输出。

所述的基于阻变存储器的通用区块链应用处理加速方法,其中该区块链加速处理程序包括:sha256在一个memorytile上的任务映射,以及数字货币的加解密运算,以及比原链应用的共识运算。

本发明还提出了一种基于阻变存储器的通用区块链应用处理加速系统,其中包括:

模块1、将由多个程序段组成的区块链应用发总至主处理器端;

模块2、该主处理器端按序选择该区块链应用中程序段作为当前程序,判断该当前程序是否为区块链加速处理程序,若是,则执行模块3,否则执行模块4;

模块3、将该当前程序发送至包括存储处理器和阻变存储器的hmc存储器端,其中该存储处理器集成在该hmc存储器端的逻辑控制层,该阻变存储器集成在该hmc存储器端的立体存储层,该存储处理器通过控制该立体存储层,以数据流运行的方式完成对该当前程序的近存储计算,得到该当前程序的执行结果,并将其回传至该主处理器端,继续执行该模块2;

模块4、该主处理端中的乱序核根据该当前程序,以控制流运行的方式执行该当前程序,得到执行结果,继续执行该模块2;

模块5、循环执行该模块2到该模块4,直到将该区块链应用中全部程序段执行完成,得到该区块链应用的处理结果。

所述的基于阻变存储器的通用区块链应用处理加速系统,其中该立体存储层包括多个堆叠的阻变存储器块,每个阻变存储器块内部分为多个memorytile,memorytile间通过总线结构互联通信。

所述的基于阻变存储器的通用区块链应用处理加速系统,其中memorytile包括交叉开关矩阵存储、配置缓冲区和processingandtransfer;

其中该配置缓冲区,用于配置及控制该交叉开关矩阵存储实现相应功能的运算;

该processingandtransfer,用于对该交叉开关矩阵存储输出的数据的进一步运算及数据的传输。

所述的基于阻变存储器的通用区块链应用处理加速系统,其中该交叉开关矩阵存储包括配置缓存、状态控制器、sample&hold和译码传输单元;

其中该配置缓存,用于存储来自该存储处理器的配置信息;

该状态控制器,用于根据该的配置信息,对,该交叉开关矩阵存储进行配置,并运行输出相应的运行结果;

该sample&hold,用于将运行结果发送至该译码传输单元;

该译码传输单元,用于对该运行结果进行译码,并根据该配置信息中的路由内容进行路由输出。

所述的基于阻变存储器的通用区块链应用处理加速系统,其中该区块链加速处理程序包括:sha256在一个memorytile上的任务映射,以及数字货币的加解密运算,以及比原链应用的共识运算。

由以上方案可知,本发明的优点在于:

基于存储器的数据处理将减少数据从存储器端向处理器端的数据搬运,尤其于对数据量大的应用来说,具有显著的性能优势和功耗优势。通过在rram存储器中利用rram存储单元可实现基于电流叠加原理实现的存储数据的运算功能,执行同样区块链应用的核心算法处理,避免数据读取到cpu端进行计算后再写回存储,一方面减少大量数据从存储端向cpu端的搬运,减少对访存带宽的需求;另一方面可以提高区块链应用处理的执行效率,并降低处理功耗。同时,对于rram无法处理的复杂计算,可以放到3dhmc集成到一起的通用处理核中进行计算。相比送回到主机端的主处理器中计算,可以显著减少数据搬运量。为了管理大规模的rram存算一体单元,本专利提出了基于数据流理论的数据管理和处理控制机制,基于数据流理论的数据管理和处理控制机制将进一步提供硬件资源的利用率,提高执行效率。

附图说明

图1为通用区块链应用加速整体结构示意图;

图2为rram内部结构示意图;

图3为xbar结构示意图及控制流程图;

图4为xbar主要控制流程图;

图5为运算操作配置及实现方式示意图;

图6为基于数据流理论的任务调度和任务分配示意图;

图7为区块链应用算法在本发明提出的硬件结构上的运算及数据流动示意图;

图8为hmc—3d存储器的结构示意图;

图9为阻变存储器rram的存储即计算运行特征示意图。

具体实施方式

本发明主要包括:基于hmc的3d近存储计算框架、基于rram的存算一体架构设计、基于数据流理论的数据流动及计算模式控制机制。所述基于hmc的3d近存储计算框架,利用hmc三维立体存储结构组织形式,将通用控制处理器集成在3d存储器的逻辑控制层,实现近存储计算控制;所述基于rram的存算一体架构设计,通过实现可重构的配置控制电路及数据处理逻辑,利用rram可以实现的简单算术运算及逻辑运算功能,实现rram的存算一体功能;所述基于数据流理论的数据流动及计算模式控制机制,基于hmc和rram搭建的硬件加速“众核”结构,利用高能效的数据流控制理论,实现整体的数据流动及计算模式的控制机制。

本发明根据rram的电流叠加实现数据的逻辑及算术运算的特性,对存储的数据进行面向区块链应用的加速处理,相比于软件算法而言,能够显著降低数据搬运,提高区块链应用的处理速度和能效。

为让本发明的上述特征和效果能阐述的更明确易懂,下文特举实施例,并配合说明书附图作详细说明如下。

如图1所示,为通用区块链应用加速整体结构100示意图,本发明基于hmc的3d存储结构,并将存储单元用rram实现。从传统处理角度看,此为典型的冯诺依曼体系结构,包括主处理器端和hmc存储器端。在本发明中,添加了相应的控制单元,可以在传统模式之外,实现基于存储器的计算功能。具体为,peu(pimenableunit)单元101,用于选择和控制系统运行在传统模式下,还是存储计算模式下。通过peu101的控制,可以将执行指令直接传递给近存储处理器102。存储处理器102可以控制整个hmc,实现存储计算功能。如图所示,所有存储单元rram104分成多个部分,每个部分由多层的rram堆叠形成,由vault控制器103控制。

本发明主要加速区块链引用中的核心算法,因此非核心算法的软件部分执行,仍然按传统的执行方式,即传统模式下执行。当程序执行到核心加速算法时,通过peu101的控制,进入到存储计算模式,相应的指令集直接跳过l1、l2、llc缓存层次,直接进入到近存储处理器中,经过解析后,控制多个vault控制器中的rram存储单元进行处理。

如图2所示,为rram内部结构示意图。(a)为立体结构的hmc示意图,图中每个vault控制器控制8个堆叠的rram块。(b)为某一层的rram块的示意图,为了提高任务执行的并发度,每rram块内部分为多个memorytile202。每个memorytile通过总线结构与其它tile互联通信。图(c)展示了每个memorytile的内部结构,通过总线将多个crossbar存储结构203(简称xbar)进行的互连。cb204为configurebuffer缩写,用于控制配置及控制xbar230实现不同功能的运算。pt205为处理及传输processingandtransfer的缩写,用于xbar203输出的数据的进一步运算及数据的传输功能。(d)为具体的rram存储阵列结构,通过bitline207行选和wordline208的列选,实现数据的读写访问,具体读写机制及基于此读写机制实现的逻辑及运算操作为一般性常识,或参见背景介绍,在此不做过多介绍。

图3为具体的xbar结构示意图及控制流程图。在图中,xbar接受近存储处理器发来的配置信息,存储在配置缓存301中,状态控制器302根据xbar运行的状态,读取配置缓存301中的配置信息,对xbar进行配置,并运行输出相应的结果。运行结果输出至信号取样保持电路sample&hold单元303,然后经过decode&transfer单元303,对结果进行译码,并根据配置信息中的路由内容进行路由输出。如图4所示,主要控制流程为,状态控制器402接受到配置信息,首先判断rram执行的是普通存储功能,还是运算功能。如果是普通存储功能,则执行传统存储操作404,如果是运算功能,则对配置信息进行进一步解析,在控制单元406的控制性,执行运算功能。运算功能包括典型的移位操作(shift),异或操作(xor),与操作(and)以及加法操作(sum)等等。

图5为举例说明集中常见的运算操作配置及实现方式,(a)中为实现循环右移(ror)或左移(sl)操作的配置方式,输入的数据位1011,黄色的配置方式,可以实现循环右移1位,绿色的配置方式实现的是左移2位操作,低位补零。(b)实现的是与操作(and)进而或操作(or),换色的配置方式实现了两行数据的与操作,绿色的实现了或操作。需要注意的是,此时的与操作与或操作,需要基于pt205(processingandtransfer)部件的进一步处理。主要是根据采样的电流的大小输出0或者1。例如,在与操作中,当值0与值1的电流叠加时是一个电流值,设置为0;当1与1的电流叠加时,是一个不同的电流值,设置为1即可。同样的原理适用于或操作。同理,(c)和(d)分别可以实现异或xor操作以及数据拼接操作(concatenate)。

图6所示为基于数据流理论的任务调度和任务分配示意图。数据流理论是成熟的程序执行模型理论,具有执行并行度高,访存量少等优势。本发明采用的是数据流执行模式中的粗粒度数据流执行模型。如图所示,一个应用(app)中的不同任务(task)可以映射到同一个rram块中的不同memorytile上。同样,一个task也可以有选择的映射到一个memorytile中的不同xbar中。具体的映射选择,可由用户进行配置。

图7为举例说明几个典型区块链应用算法在本发明提出的硬件结构上的运算及数据流动示意图。(a)为比特币的核心算法sha256在一个memorytile上的任务映射。下表所示为sha256算法中的主要运算符:

sha256主要为数据按位进行的逻辑操作,包括移位、与、或、异或等操作。本发明使用粗粒度数据流,将sha256的核心语句中用到的逻辑操作,映射至memorytile中的各个xbar中进行计算,如图7中的(a)所示。由于一条预算语句包括几个逻辑操作,因此在数据映射的时候,同时已经将本次计算结束后的数据送至下一个xbar的路由信息同时映射完全,待计算结果出来后,直接路由至下一个xbar中进行下一步的运算。(b)展示的为莱特币及多种其他数字货币通用的加解密算法scrypt的映射即数据流通示意图。由于scrypt算法采用的算子(逻辑运算符)较多,因此,本发明采用两个memorytile进行一次scrypt的运算。两个memorytile通过router及总线进行互联和数据交换。(c)展示的是比原链应用的核心tensority算法,采用的是整块rram结构,如图2中的(b)所示。由于tensority对存储空间要求高,且算法中包含的各类算法较多,因此采用vault内一层的rram结构实现此算法的运算。(c)中深灰色的部分为tensority中的核心运算算子,浅灰色的部分为未映射的memorytile,用于存储功能,存储需要运算的数据。sha256、scrypt、matrix、以及cat等都tensority中使用的核心算法。

以下为与上述方法实施例对应的系统实施例,本实施方式可与上述实施方式互相配合实施。上述实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在上述实施方式中。

本发明还提出了一种基于阻变存储器的通用区块链应用处理加速系统,其中包括:

模块1、将由多个程序段组成的区块链应用发总至主处理器端;

模块2、该主处理器端按序选择该区块链应用中程序段作为当前程序,判断该当前程序是否为区块链加速处理程序,若是,则执行模块3,否则执行模块4;

模块3、将该当前程序发送至包括存储处理器和阻变存储器的hmc存储器端,其中该存储处理器集成在该hmc存储器端的逻辑控制层,该阻变存储器集成在该hmc存储器端的立体存储层,该存储处理器通过控制该立体存储层,以数据流运行的方式完成对该当前程序的近存储计算,得到该当前程序的执行结果,并将其回传至该主处理器端,继续执行该模块2;

模块4、该主处理端中的乱序核根据该当前程序,以控制流运行的方式执行该当前程序,得到执行结果,继续执行该模块2;

模块5、循环执行该模块2到该模块4,直到将该区块链应用中全部程序段执行完成,得到该区块链应用的处理结果。

所述的基于阻变存储器的通用区块链应用处理加速系统,其中该立体存储层包括多个堆叠的阻变存储器块,每个阻变存储器块内部分为多个memorytile,memorytile间通过总线结构互联通信。

所述的基于阻变存储器的通用区块链应用处理加速系统,其中memorytile包括交叉开关矩阵存储、配置缓冲区和processingandtransfer;

其中该配置缓冲区,用于配置及控制该交叉开关矩阵存储实现相应功能的运算;

该processingandtransfer,用于对该交叉开关矩阵存储输出的数据的进一步运算及数据的传输。

所述的基于阻变存储器的通用区块链应用处理加速系统,其中该交叉开关矩阵存储包括配置缓存、状态控制器、sample&hold和译码传输单元;

其中该配置缓存,用于存储来自该存储处理器的配置信息;

该状态控制器,用于根据该的配置信息,对,该交叉开关矩阵存储进行配置,并运行输出相应的运行结果;

该sample&hold,用于将运行结果发送至该译码传输单元;

该译码传输单元,用于对该运行结果进行译码,并根据该配置信息中的路由内容进行路由输出。

所述的基于阻变存储器的通用区块链应用处理加速系统,其中该区块链加速处理程序包括:sha256在一个memorytile上的任务映射,以及数字货币的加解密运算,以及比原链应用的共识运算。

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