设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客
LUPA开源社区 首页 业界资讯 开源资讯 查看内容

HashFast开源Bitcoin ASIC接口协议

2014-3-10 11:51| 发布者: joejoe0332| 查看: 3235| 评论: 0|原作者: DrZ, 疯狂de咸蛋, Ley, 轩骐|来自: oschina

摘要: 今天,HashFast公司声明了他们正在开源他们用于控制比特币挖掘的专用集成电路的接口协议。这个设计的开源可以让大家很好的理解他们的比特币挖矿模块是怎么操作的,并且还将给驱动开发人员提供一个平台。 ...
  今天,HashFast公司声明了他们正在开源他们用于控制比特币挖掘的专用集成电路的接口协议。这个设计的开源可以让大家很好的理解他们的比特币挖矿模块是怎么操作的,并且还将给驱动开发人员提供一个平台。更多用户在驱动开发方面的合作可以带来更加丰富的选择项设置,和给HashFast用户们带来更好的用户体验。

  在7月份,HashFast宣布了他们将与Uniquify 合作来设计400GH/s的 “Golden Nonce”专用集成电路。在9月5日,他们声称台湾的一个半导体公司将开发他们的芯片。为了让驱动开发人员为11月中旬的芯片投放做准备,HashFast给出了一个84页的文档来阐述这个专用集成电路如何使用和接口协议设计的细节。此外,Avalon 在四月份发布的一个关于他们芯片通信规格的类似开源描述,引发了许许多多的合作项目。

  HashFast批量发货


  在九月初,HashFast的Batch 1 ASICs结束预定,估计速度为225TH/s,价格$3M(400GH/s的563 Baby Jets售价为$5,600)。随着这个月早些时候KNC的出货,HashFast估计也会进军28nm ASIC市场。尽管有报道反映KNC的电容爆炸问题,并且矿工并没有达到他们声称的速度, 但大部分的KNC第一批出货都交到了客户手中。


  HashFast公布了他们第一批货的订货量。从中可以看出,在563 Baby Jets的第一批订单中,有157个特殊定制,在所有订单中占了大多数。这群销售的客户形成了一个群体,愿意协助有关HashFast挖矿机的软硬件开发。HashFast的第二、三批出货比第一批要大得多,预计12月到货。第二批预定已经截止,并且将在第一批后几周发货。


  随着HashFast将他们的协议开源,在第一批发货的几周时间内,可能会形成一个高阶驱动开发社区。主管市场和销售的HashFast副总裁John Skrodenis表示:“在三批发货中,客户增加了350人。”很明显,稳健的软件有着很大的客户群。


  ASIC挖矿


  ASIC(专用集成电路)是为特殊目的设计的芯片。在比特币挖矿中,它被用于计算产生新矿区的double-SHA256。HashFast ASIC有四个模块,每个包含96个核心,也就是说每个芯片上有384个核心。设计一个稳健的接口协议是非常复杂的,因为要确保所有这些核心都按照一个确定的顺序工作,并在得到有效值时高效地反馈。


  为了在矿池中挖矿,需要利用比特币矿区的block header进行计算。比特币使用公式SHA256( SHA256( Block_Header ) ),SHA256是一个返回256位Hash值的Hash算法,例如00000000000000001e8d6829a8a21adc5d38d0a473b144b6765798e61f98bd1d。


block_header

用于计算的Block header信息


  主要的困难在于需要值前面的0,0越多计算起来越困难。为了在继续寻找新的Hash值时保持原来的block header,一个"nonce"被用于备份。在计算新的Hash值时不断在"nonce"中备份,这样就可以在不破坏原有block header信息的前提下继续计算新的Hash值。当一个有效的Hash值被找到时,它会与block header一起发布,还有与之相关的交易信息。


  Hash计算操作


  HashFast的开源协议已经提供了驱动ASIC的Hash计算的操作。通过一台主机的CPU发出的操作来控制核心。HashFast从主机的CPU中,通过操作总线(数据链路)提供了例如配置时钟频率(OP_PLL_CONFIG的操作)的核心指令,重启核心(OP_RESET),并提供hash计算的工作信息,来提供每个信息内核。


hash_core

在Protocol接口指南(Protocol Interface Guide)的第14页


  Hash算法指令是在芯片设计中最重要的方面。在HashFast的设计中,如果当内核在进行Hash计算的时候接收到OP_HASH的指令,它会被存储到一个输入的队列中去。这会允许内核在找到合适的Hash之后进行持续的工作。每个OP_HASH的操作也包含了唯一一个的序列号,方便以后检索Hash的相关信息。


  当发现Hash难以满足OP_HASH操作的需求,hash的核心会返回所使用的随机数和OP_HASH的序列号。然后主机可以通过查找序列号来找到block header的信息,无需频繁地再去请求和返回。



酷毙

雷人

鲜花

鸡蛋

漂亮
  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部