CN110109913B - 一种zerocash挖矿算法的硬件实现方法及装置 - Google Patents

一种zerocash挖矿算法的硬件实现方法及装置 Download PDF

Info

Publication number
CN110109913B
CN110109913B CN201810036784.1A CN201810036784A CN110109913B CN 110109913 B CN110109913 B CN 110109913B CN 201810036784 A CN201810036784 A CN 201810036784A CN 110109913 B CN110109913 B CN 110109913B
Authority
CN
China
Prior art keywords
sub
core
original data
memory
intermediate result
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
CN201810036784.1A
Other languages
English (en)
Other versions
CN110109913A (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.)
Bitmain Technologies Inc
Original Assignee
Bitmain Technologies Inc
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 Bitmain Technologies Inc filed Critical Bitmain Technologies Inc
Priority to CN201810036784.1A priority Critical patent/CN110109913B/zh
Publication of CN110109913A publication Critical patent/CN110109913A/zh
Application granted granted Critical
Publication of CN110109913B publication Critical patent/CN110109913B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2255Hash tables
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Complex Calculations (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及虚拟货币挖矿技术领域,公开了一种zerocash挖矿算法的硬件实现方法及装置,通过子核中的BLAKE2b算法模块,分段生成两百万条原始数据;根据所述原始数据的0至19比特,计算所述原始数据对应存储的哈希表索引,根据所述哈希表索引确定子核坐标;根据所述子核坐标,将所述原始数据及所述原始数据的序号通过传输总线存储至所述子核坐标对应的子核中的第一存储器;在运算过程中,将原始数据的序号及每轮运算的中间结果的序号作为zero cash算法的最终结果。本发明提高了计算的速度及算力,降低了功耗。

Description

一种zerocash挖矿算法的硬件实现方法及装置
技术领域
本发明涉及虚拟货币挖矿技术领域,尤其涉及一种zerocash挖矿算法的硬件实现方法及装置。
背景技术
zerocash是一种虚拟的数字货币,采用POW(proof of work)的挖矿算法。POW挖矿算法的重点在于,在单位时间内,算力越高,获得的虚拟货币越多,功耗越小,花费的电费越少,则获得的收益越多。
现有技术的挖zerocash的主流设备是GPU显卡,算力不高,约为250Hash/s,由于每次运算可找出两个解,因此每秒完成125次zerocash算法所规定的运算功耗较大,约为135W,浪费能源。
发明内容
本发明提供一种zerocash挖矿算法的硬件实现方法及装置,解决现有技术中挖矿设备算力不高、功耗较大,浪费能源的技术问题。
一种zerocash挖矿算法的硬件实现方法,包括:
步骤S1、通过子核中的BLAKE2b算法模块,分段生成两百万条原始数据,其中,原始数据位数为200比特;
步骤S2、根据所述原始数据的0至19比特,计算所述原始数据对应存储的哈希表索引,根据所述哈希表索引确定子核坐标,其中,子核数目为64,每个子核包含683个哈希表,所述子核坐标包括行标识和列标识;
步骤S3、根据所述子核坐标,将所述原始数据及所述原始数据的序号通过传输总线存储至所述子核坐标对应的子核中的第一存储器,其中,所述原始数据的序号为所述原始数据对应存储的哈希表索引;
步骤S4、从所述第一存储器读取数据,并前20比特相同的两个数据进行异或运算,以获得中间结果;
步骤S5、根据所述计算结果的次20比特,计算所述中间结果对应存储的哈希表索引,根据所述哈希表索引确定子核坐标;
步骤S6、根据所述子核坐标,将所述中间结果及所述中间结果的序号通过传输总线存储至所述子核坐标对应的子核中的第二存储器,其中,所述中间结果的序号为所述中间结果对应存储的哈希表索引及相同的两个数据在哈希表中的偏移值;
步骤S6、跳转至步骤S4重复执行8轮运算,将原始数据的序号及每轮运算的中间结果的序号作为zero cash算法的最终结果,其中,每轮运算中所述第一存储器及所述二存储器交替操作。
一种zerocash挖矿算法的硬件实现装置,包括:64个子核,每个子核包括BLAKE2b算法模块、第一计算模块、第二计算模块、第一存储器、第二存储器和收发模块,其中,
所述BLAKE2b算法模块,用于根据输入生成原始数据,其中,原始数据位数为200比特;
所述第一计算模块,用于根据所述原始数据的0至19比特,计算所述原始数据对应存储的哈希表索引,根据所述哈希表索引确定子核坐标;根据所述计算结果的次20比特,计算所述中间结果对应存储的哈希表索引,根据所述哈希表索引确定子核坐标,其中,子核数目为64,每个子核包含683个哈希表,所述子核坐标包括行标识和列标识;
所述第二计算模块,用于从所述第一存储器读取数据,并前20比特相同的两个数据进行异或运算,以获得中间结果;
所述第一存储器和所述第二存储器用于交替存储所述第二计算模块的计算结果;
所述收发模块,用于根据所述子核坐标,将所述原始数据及所述原始数据的序号通过传输总线存储至所述子核坐标对应的子核中的第一存储器;根据所述子核坐标,将所述中间结果及所述中间结果的序号通过传输总线存储至所述子核坐标对应的子核中的第二存储器,其中,所述中间结果的序号为所述中间结果对应存储的哈希表索引及相同的两个数据在哈希表中的偏移值。
本发明提供一种zerocash挖矿算法的硬件实现方法及装置,通过子核中的BLAKE2b算法模块,分段生成两百万条原始数据;根据所述原始数据的0至19比特,计算所述原始数据对应存储的哈希表索引,根据所述哈希表索引确定子核坐标;根据所述子核坐标,将所述原始数据及所述原始数据的序号通过传输总线存储至所述子核坐标对应的子核中的第一存储器;从所述第一存储器读取数据,并前20比特相同的两个数据进行异或运算,以获得中间结果;根据所述计算结果的次20比特,计算所述中间结果对应存储的哈希表索引,根据所述哈希表索引确定子核坐标;根据所述子核坐标,将所述中间结果及所述中间结果的序号通过传输总线存储至所述子核坐标对应的子核中的第二存储器;重复执行8轮运算,将原始数据的序号及每轮运算的中间结果的序号作为zerocash算法的最终结果。本发明提高了计算的速度及算力,降低了功耗。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可根据这些附图获得其他的附图。
图1为本发明实施例的一种zerocash挖矿算法的硬件实现方法的流程图;
图2为本发明实施例的一种zerocash挖矿算法的硬件实现装置的结构示意图;
图3为本发明实施例的一种zerocash挖矿算法的硬件实现装置中子核的结构示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
本发明实施例提供了一种zerocash挖矿算法的硬件实现方法,如图1所示,包括:
步骤S1、通过子核中的BLAKE2b算法模块,分段生成两百万条原始数据;
其中,原始数据位数为200比特,此处64个子核sub core内的BLAKE2b算法模块并行启动,相应的,sub core0的BLAKE2b计算范围是0~2M/64,sub core1的blake2b计算范围是2M/64~2M/64*2,以此类推,再次不再赘述。
步骤S2、根据所述原始数据的0至19比特,计算所述原始数据对应存储的哈希表索引,根据所述哈希表索引确定子核坐标;
其中,每个sub core生成的200bit blake数据,取出前20bit,将其除以24,得到商的结果在0-43691之间。该商的结果就是table的index。这43691个table顺序分布在64个sub core内。商的结果决定了该条数据应该存放在哪里。43691/64=683.(每个sub core的sram都有683个table,每个table可以容纳64条数据),本步骤中200万数据为21bit数据,取前20bit除以24来分桶,平均情况下预计每个桶内会有24x(2^21/2^20)=48个数。数字是随机的,因此每个桶内的数据肯定有波动,桶如果过浅,那么会丢失大量数据,每轮迭代后数据会越来越少,最终找不出规定的解,或者找出规定解的概率大幅降低。桶也不是越深越好,因为桶需要占用存储空间,浪费资源。本发明实施例中通过组合逻辑推理,64深的桶内放置48个数据比较合理。存储空间不至于浪费太多,也不会丢失太多数据。
步骤S3、根据所述子核坐标,将所述原始数据及所述原始数据的序号通过传输总线存储至所述子核坐标对应的子核中的第一存储器;
其中,所述原始数据的序号为所述原始数据对应存储的哈希表索引;
步骤S4、从所述第一存储器读取数据,并前20比特相同的两个数据进行异或运算,以获得中间结果;
步骤S5、根据所述计算结果的次20比特,计算所述中间结果对应存储的哈希表索引,根据所述哈希表索引确定子核坐标;
步骤S6、根据所述子核坐标,将所述中间结果及所述中间结果的序号通过传输总线存储至所述子核坐标对应的子核中的第二存储器;
其中,所述中间结果的序号为所述中间结果对应存储的哈希表索引及相同的两个数据在哈希表中的偏移值;
步骤S6、跳转至步骤S4重复执行8轮运算,将原始数据的序号及每轮运算的中间结果的序号作为zero cash算法的最终结果;
其中,每轮运算中所述第一存储器及所述二存储器交替操作。
Sram最终使用量:160MB。根据逻辑资源和sram面积可得功耗为30W左右。每轮合并所需时间:60K clk。总时间约600K clk。例如以芯片主频600M计算,每秒完成1000次运算。由于数字是随机的,因此每个桶内的数据肯定有波动,这样就会产生数据损失,预期解的数量是少于标准算法的。但是本发明实施例的迭代速度相对于现有技术大幅提升,总的算力是更高的,预期可以得到1个(原始算法每次运算可以得到2个解)即最终算力为1000。
本发明实施例还提供了一种zerocash挖矿算法的硬件实现装置,如图2所示,包括:64个子核,如图3所示,每个子核包括BLAKE2b算法模块310、第一计算模块320、第二计算模块330、第一存储器340、第二存储器350和收发模块360,其中,
所述BLAKE2b算法模块310,用于根据输入生成原始数据,其中,原始数据位数为200比特;
所述第一计算模块320,用于根据所述原始数据的0至19比特,计算所述原始数据对应存储的哈希表索引,根据所述哈希表索引确定子核坐标;根据所述计算结果的次20比特,计算所述中间结果对应存储的哈希表索引,根据所述哈希表索引确定子核坐标,其中,子核数目为64,每个子核包含683个哈希表,所述子核坐标包括行标识和列标识;
所述第二计算模块330,用于从所述第一存储器读取数据,并前20比特相同的两个数据进行异或运算,以获得中间结果;
所述第一存储器340和所述第二存储器350用于交替存储所述第二计算模块的计算结果;
所述收发模块360,用于根据所述子核坐标,将所述原始数据及所述原始数据的序号通过传输总线存储至所述子核坐标对应的子核中的第一存储器;根据所述子核坐标,将所述中间结果及所述中间结果的序号通过传输总线存储至所述子核坐标对应的子核中的第二存储器,其中,所述中间结果的序号为所述中间结果对应存储的哈希表索引及相同的两个数据在哈希表中的偏移值。
其中,64个子核的排列方式可以采用多种方式,例如8*8的布局方式、2*32的布局方式等,在此不再赘述。
所述收发模块360包括:
第一收发单元361,用于当子核的行标识大于当前子核的行标识时,将所述原始数据及所述原始数据的序号通过第一传输总线存储至所述子核坐标对应的子核中的第一存储器;
第二收发单元362,用于当子核的行标识小于当前子核的行标识时,将所述原始数据及所述原始数据的序号通过第二传输总线存储至所述子核坐标对应的子核中的第一存储器。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的硬件平台的方式来实现,当然也可以全部通过硬件来实施,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案对背景技术做出贡献的全部或者部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
以上对本发明进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (5)

1.一种zerocash挖矿算法的硬件实现方法,其特征在于,包括:
步骤S1、通过子核中的BLAKE2b算法模块,分段生成两百万条原始数据,其中,原始数据位数为200比特;
步骤S2、根据所述原始数据的0至19比特,计算所述原始数据对应存储的哈希表索引,根据所述哈希表索引确定子核坐标,其中,子核数目为64,每个子核包含683个哈希表,所述子核坐标包括行标识和列标识;
步骤S3、根据所述子核坐标,将所述原始数据及所述原始数据的序号通过传输总线存储至所述子核坐标对应的子核中的第一存储器,其中,所述原始数据的序号为所述原始数据对应存储的哈希表索引;
步骤S4、从所述第一存储器读取数据,并前20比特相同的两个数据进行异或运算,以获得中间结果;
步骤S5、根据所述中间结果的次20比特,计算所述中间结果对应存储的哈希表索引,根据所述哈希表索引确定子核坐标;
步骤S6、根据所述子核坐标,将所述中间结果及所述中间结果的序号通过传输总线存储至所述子核坐标对应的子核中的第二存储器,其中,所述中间结果的序号为所述中间结果对应存储的哈希表索引及相同的两个数据在哈希表中的偏移值;
步骤S6、跳转至步骤S4重复执行8轮运算,将原始数据的序号及每轮运算的中间结果的序号作为zero cash算法的最终结果,其中,每轮运算中所述第一存储器及所述二存储器交替操作。
2.根据权利要求1所述的zerocash挖矿算法的硬件实现方法,其特征在于,64个子核,按照8*8的形式进行布局,所述步骤S3包括:
当子核坐标为当前子核坐标时,将所述原始数据及所述原始数据的序号存储至当前子核中的第一存储器;
当子核的行标识大于当前子核的行标识时,将所述原始数据及所述原始数据的序号通过第一传输总线存储至所述子核坐标对应的子核中的第一存储器;
当子核的行标识小于当前子核的行标识时,将所述原始数据及所述原始数据的序号通过第二传输总线存储至所述子核坐标对应的子核中的第一存储器;
当子核的行标识等于当前子核的行标识时,将所述原始数据及所述原始数据的序号通过第一传输总线或第二传输总线存储至所述子核坐标对应的子核中的第一存储器。
3.根据权利要求1所述的zerocash挖矿算法的硬件实现方法,其特征在于,所述步骤S1包括:
输入范围为(N-1)*2M/64~N*2M/64至第N个子核中的BLAKE2b算法模块中,以生成(N-1)*2M/64~N*2M/64条的原始数据,其中,N为自然数。
4.一种zerocash挖矿算法的硬件实现装置,其特征在于,包括:64个子核,每个子核包括BLAKE2b算法模块、第一计算模块、第二计算模块、第一存储器、第二存储器和收发模块,其中,
所述BLAKE2b算法模块,用于根据输入生成原始数据,其中,原始数据位数为200比特;
所述第一计算模块,用于根据所述原始数据的0至19比特,计算所述原始数据对应存储的哈希表索引,根据所述哈希表索引确定子核坐标;根据中间结果的次20比特,计算所述中间结果对应存储的哈希表索引,根据所述哈希表索引确定子核坐标,其中,子核数目为64,每个子核包含683个哈希表,所述子核坐标包括行标识和列标识;
所述第二计算模块,用于从所述第一存储器读取数据,并前20比特相同的两个数据进行异或运算,以获得所述中间结果;
所述第一存储器和所述第二存储器用于交替存储所述第二计算模块的计算结果;
所述收发模块,用于根据所述子核坐标,将所述原始数据及所述原始数据的序号通过传输总线存储至所述子核坐标对应的子核中的第一存储器;根据所述子核坐标,将所述中间结果及所述中间结果的序号通过传输总线存储至所述子核坐标对应的子核中的第二存储器,其中,所述中间结果的序号为所述中间结果对应存储的哈希表索引及相同的两个数据在哈希表中的偏移值。
5.根据权利要求4所述的zerocash挖矿算法的硬件实现装置,其特征在于,所述收发模块包括:
第一收发单元,用于当子核的行标识大于当前子核的行标识时,将所述原始数据及所述原始数据的序号通过第一传输总线存储至所述子核坐标对应的子核中的第一存储器;
第二收发单元,用于当子核的行标识小于当前子核的行标识时,将所述原始数据及所述原始数据的序号通过第二传输总线存储至所述子核坐标对应的子核中的第一存储器。
CN201810036784.1A 2018-01-15 2018-01-15 一种zerocash挖矿算法的硬件实现方法及装置 Active CN110109913B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810036784.1A CN110109913B (zh) 2018-01-15 2018-01-15 一种zerocash挖矿算法的硬件实现方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810036784.1A CN110109913B (zh) 2018-01-15 2018-01-15 一种zerocash挖矿算法的硬件实现方法及装置

Publications (2)

Publication Number Publication Date
CN110109913A CN110109913A (zh) 2019-08-09
CN110109913B true CN110109913B (zh) 2021-05-04

Family

ID=67483101

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810036784.1A Active CN110109913B (zh) 2018-01-15 2018-01-15 一种zerocash挖矿算法的硬件实现方法及装置

Country Status (1)

Country Link
CN (1) CN110109913B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113721888B (zh) * 2021-11-01 2022-01-25 中科声龙科技发展(北京)有限公司 一种Equihash算法的数据处理方法及装置
CN113760197B (zh) * 2021-11-03 2022-02-08 中科声龙科技发展(北京)有限公司 基于equihash算法的数据存储方法、装置及系统

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2868640C (en) * 2014-10-21 2021-10-26 Nova Chemicals Corporation Solution polymerization process
CN106407008B (zh) * 2016-08-31 2019-12-03 北京比特大陆科技有限公司 挖矿业务处理方法、装置和系统
WO2018112949A1 (zh) * 2016-12-23 2018-06-28 深圳前海达闼云端智能科技有限公司 区块链的挖矿方法、装置和节点设备
CN106952082A (zh) * 2017-03-06 2017-07-14 钱德君 一种基于股份证明的量子链共识机制方法
CN107135078B (zh) * 2017-06-05 2019-12-20 浙江大学 Pbkdf2密码算法加速方法及所用装置

Also Published As

Publication number Publication date
CN110109913A (zh) 2019-08-09

Similar Documents

Publication Publication Date Title
CN112162723B (zh) 一种量子减法运算方法、装置、电子装置及存储介质
CN112114776A (zh) 一种量子乘法运算方法、装置、电子装置及存储介质
CN112200300B (zh) 卷积神经网络运算方法及装置
CN106997408A (zh) 电路验证
CN104579656A (zh) 一种椭圆曲线公钥密码sm2算法的硬件加速协处理器
CN110109913B (zh) 一种zerocash挖矿算法的硬件实现方法及装置
CN103914276A (zh) 利用浮点架构的定点除法电路
CN109002883A (zh) 卷积神经网络模型计算装置及计算方法
CN106202224B (zh) 搜索处理方法及装置
CN105956921A (zh) 一种银行卡号自选方法及装置
WO2021211678A1 (en) System and method to improve efficiency in multiplication ladder-based cryptographic operations
CN109903162B (zh) 一种加速区块链MCMC随机选择的ReRAM及其工作方法
US20230196068A1 (en) System and method for accelerating rnn network, and storage medium
CN114138231B (zh) 执行矩阵乘法运算的方法、电路及soc
Hains et al. Hyperplane initialized local search for MAXSAT
CN107357206A (zh) 一种基于fpga板卡的运算优化的方法、装置及系统
Zhan et al. Field programmable gate array‐based all‐layer accelerator with quantization neural networks for sustainable cyber‐physical systems
Kim et al. Mixture of deterministic and stochastic quantization schemes for lightweight CNN
CN106445960A (zh) 一种数据聚类方法和装置
Kim et al. Fast convolution algorithm for convolutional neural networks
CN110046888B (zh) 一种xmr挖矿算法的硬件实现方法及装置
US8868634B2 (en) Method and apparatus for performing multiplication in a processor
CN110046875B (zh) 一种siacoin挖矿算法的硬件实现方法及装置
CN115391727B (zh) 一种神经网络模型的计算方法、装置、设备及存储介质
CN116781484B (zh) 数据处理方法、装置、计算机设备及存储介质

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