主页 > imtoken下载官方 > 基于FPGA的比特币矿机架构设计探索.doc

基于FPGA的比特币矿机架构设计探索.doc

imtoken下载官方 2023-04-20 05:55:10

基于FPGA的比特币矿机的架构设计和探索成本要低得多,但可以获得出色的哈希速度,代价是降低了系统的灵活性,难以适应协议的变化。 与AS1C类似,FPGA也可以作为高效的矿机系统,同时成本低。 与ASIC相比比特币挖矿机需要网络吗,FPGA更加灵活,能够适应比特币协议的变化。 为此,本文对其基于Xilinx Zynq-7000的架构设计进行了相关研究和分析。 关键词:比特币; FPGA; 矿机; 比特币是一种虚拟货币,比特币挖矿系统是通过计算机硬件为比特币网络启动计算的过程。 提供服务的矿工可以获得奖励,因为网络奖励是按照矿工完成的任务计算的,所以挖矿的竞争非常激烈。 比特币挖矿起步于 CPU 或 GPU 等低成本硬件,但随着比特币的普及,挖矿过程发生了重大变化。 如今,挖矿活动转向现场可编程门阵列,哈希速度可以通过优化来实现。 这种模式的挖矿效率并不统一。 如果整体架构设计思路需要得到一个可行的比特节点和高效灵活的矿机来实现一个完整的挖矿系统,就需要一个强大的FPGA芯片来满足灵活性和性能的要求。 在一个完整的片上系统中,需要一个优化的核心来运行所有比特币任务,包括网络维护和交易处理。 ZedBoard7T• 开发板上的Zynq-7020 可以满足这一硬件要求。

比特币挖矿机需要网络吗_比特币挖矿机需要网络吗_比特币矿机除了挖矿还能做什么

该系统有两个 ARM Cortex-A9 处理器和多个 Artix_7FPGA 逻辑单元。 它还具有内置的 512MB DDR3 存储,可实现更快的 SoC 设计。 ZedBoard还有一个用于大容量存储的SD卡槽,对后续更新很有帮助。 ZedBoard实现的SoC比特币框架由主机、中继器和驱动等组成,作为主机可以通过原始比特币客户端的非图形界面与比特币网络进行交互。 简单来说,比特币挖矿过程概括为一个SHA-256过程和一个比较器的组合。 SHA-256进程负责对区块头信息进行二次处理,然后与比特币网络的扩展0标准进行比对。 深圳图灵科技控股集团 2. 框架结构详细设计,深度挖掘内核。 根据美国SHA-256计划,采用高层次综合开发挖矿内核,利用VivadoHLS的快速测试能力完成原型挖矿内核布局,再从简单的单进程系统到复杂进程系统可以实现。 SHA-256 经过 64 次移位、加法、异或运算得到 32 字节的哈希值。 此时使用8个4字节的寄存器保存每次迭代结果,最后将四个寄存器连接起来得到一个具体的哈希值。 如果输入数据小于62字节,则进行补充,第64字节用于存放输入数据的长度。 通过 VivadoHLS,SHA-256 是一个简单的 for 循环操作。 一个数组保存每次迭代需要的数据,另一个数组保存其后续迭代的临时值,通过8个变量保存每次迭代的结果。

比特币矿机除了挖矿还能做什么_比特币挖矿机需要网络吗_比特币挖矿机需要网络吗

对于开发的三个原型中的第一个,它通过了一个 SHA-256 处理模块,这是所有内核中最慢的,因为没有使用流水线。 第二个原型是一个内置的三个独立的 SHA-256 进程模块串联获得。 此配置第一个过程处理数据点信息的前 64 个字节的静态输入。 第二个进程负责处理数据头剩余的 16 个字节加上填充数据所需的 48 个字节。 第三个进程负责处理前两个进程得到的哈希值结构。 它使用两个 SHA-256 处理模块。 同时充分利用了比特币挖矿社区使用的比特币数据头信息和挖矿过程的A部分。 补丁的功能。 伊势发展。 比特币挖矿是为了获得一个介于0和232-1之间的值,可以作为解决方案。 为此,可以通过提高挖矿核心的性能来提高系统的效率。 在Spartan-6开发板上测试50、100、150MHz的不同频率,得到可预见的结果。 SHA-256处理模块需要完成10次不同的32位加法,所以一个时钟周期可以加N个部分。 为了缩短最长路径比特币挖矿机需要网络吗,可以将加法器链细分为一系列级,但这样做会导致整个内核的控制逻辑发生较大变化,需要完全重写。 为此,可以放弃修改,节省设计时间。 与程木。 最终测试的性能提升方式是并行化。 只需要稍作修改就可以使SHA-256组调用2次和4次。 每组由两个SHA-256处理模块组成,组数增加2。对于SI1A-256的倍数,该模式有效减少了一半的组数。

比特币挖矿机需要网络吗_比特币挖矿机需要网络吗_比特币矿机除了挖矿还能做什么

对于 SHA-256,将组数增加 4 倍,就是四分之一。 为了允许额外的 SHA 进程在 Spartan-6 上运行,可以降低系统频率。 当四组 SHA-256 处理模块以 75MHz 运行时,两组以 125MHz 运行。 很难记录哈希速度的提高。 可以看出单个SHA-256组的哈希速度,但是由多个SHA-256组组成的挖矿核心可以比隐含的哈希速度更快地找到解决方案。 (3)EDK的使用。 FPGA测试完成后,需要将挖矿核心连接到ZynqSoC的AXI4总线上。 Xisilience嵌入式开发预装了专为ZynqSoC设计的配置工具,有利于各层的轻松配置。 默认情况下,系统启动到 512MB DDR3、以太网、USB 和 SD 端口,这是有点旧的 SoC 所需的全部。 在添加新组件之前,需要在每个开发阶段测试 AX4-Lite 接口。 测试是为了确认矿芯的AXI4-Lite接口是否正常工作。 为了确保挖矿核心以正确的字节顺序格式接收数据,为了在不牺牲性能的情况下改进当前设计,计划添加更多连接到比特币主节点的挖矿核心,以获得更多的挖矿能力提高挖核时的性能,使哈希速度更快。 (4)嵌入式Linux。 实现挖矿内核与处理器的连接后,开始进行软件开发,可以通过Linux内核建立自己的固件,以达到最优异的性能。

比特币矿机除了挖矿还能做什么_比特币挖矿机需要网络吗_比特币挖矿机需要网络吗

Xillinux是使用Xillybu得到的,是Ubuntu的一个衍生模块,用于快速实现嵌入式系统的开发。 对于Linux自带的驱动程序,需要实现一些特殊的功能,并连接到Linux内核才能正常运行。 如果加载了具有特性初始化功能的驱动程序,系统就可以为硬件交互做好准备。 对于这个功能,首先需要确认要链接的挖矿内核的存储地址是可用的,然后设置这个地址进行保存。 与准系统不同,Linux需要通过虚拟内存地址模块,即通过预留地址,为挖矿内核申请地址重映射。 内核会通过重映射提供一个虚拟地址,然后使用挖矿内核寄存器 一般对于使用的硬件,可以使用初始化函数随机对挖矿内核进行简单的测试,然后确认内核是否正常工作一般。 如果系统运行正常,则在核心寄存器中注册主要和次要设备号,以向用户程序识别设备。 每个函数都有一个计数器,退出函数是初始化函数的计数器。 使用该函数取消初始化过程的相关操作,具体是释放驱动使用的主设备号和次设备号,然后释放映射的虚拟地址。 3. 结论 ZebBoard 开发板上的Xilinx Zynq-7000 开发了一个高效完整的比特币挖矿系统。 第一个开发版本可以灵活适应比特币协议的变化,进而提供具有SoC功能的高性能FPGA方案。

比特币挖矿机需要网络吗_比特币挖矿机需要网络吗_比特币矿机除了挖矿还能做什么

添加更多的挖矿 N 核可以显着提高性能并加快整体哈希速度。 进一步优化此设计的一项改进是使用专用固件。 当前设计运行的是 Ubuntu Lirwxl 2.04 版。 这个版本有很多不必要的进程与 SSH 等比特币程序同时运行。 在比特币程序运行时运行这些进程是对板资源的浪费。 在未来的版本中,这些过程将被取消,只会运行为比特币任务定制的固件。 信息, 2015, 10:158~159 ****. 比特币系统分析与FPGA矿机控制软件设计与实现[D]. 北京邮电大学, 2013