基于FPGA PCI的并行计算平台实现

发布者:机械梦想家最新更新时间:2007-10-24 来源: 嵌入式系统IC网关键字:扩展  编程  移位  串行 手机看文章 扫描二维码
随时随地手机看文章
当前对于各种加密算法.除了有针对性的破解算法,最基本的思想就是穷举密钥进行匹配,通常称为暴力破解算法。由于暴力破解算法包含密钥个数较多,遍历的时间超过实际可接受的范围。如果计算速度提高到足够快。这种遍历的算法因结构设计简便而具有实际应用的前景。

PCI总线(外设互联总线)与传统的总线标准——ISA总线(工业标准结构总线)相比,具有更高的传输率(132MBps)、支持32位处理器及DMA和即插即用等优点,用于取代ISA总线而成为目前台式计算机的事实I/O总线标准,在普通PC机和工控机上有着广泛的应用。PCI总线为满足在插卡和系统存储器中高速传输数据的要求提供了很好的途径。

PCI总线是一种独立于处理器的局部总线,因此通过PCI总线插入扩展板,利用并提升普通PC机和工控机对大规模数字信号处理的运算能力和速度是一项非常具有实用意义的工作。

随着数字技术日益广泛的应用,以现场可编程门阵列(FPGA)为代表的ASIC器件得到了迅速普及和发展,器件集成度和速度都在高速增长。FPGA既具有门阵列的高逻辑密度和高可靠性,又具有可编程逻辑器件的用户可编程特性,可以减少系统设计和维护的风险,降低产品成本,缩短设计周期。FPGA与通用CPU相比又具有如下显著优点:

(1)FPGA一般均带有多个加法器和移位器,特别适合多步骤算法中相同运算的并行处理。通用CPU只能提供有限的多级流水线作业。

(2)一块FPGA中可以集成数个算法并行运算。通用CPU一般只能对一个算法串行处理。

(3)基于FPGA设计的板卡功耗小、体积小、成本低,特别适合板卡问的并联。

本文介绍的基于PCI总线的FPGA计算平台的系统实现:通过在PC机上插入扩展PCI卡,对算法进行针对并行运算的设计,提升普通PC机对大计算量数字信号的处理速度。本设计采用5片FPGA芯片及相关周边芯片设计实现这一并行高速计算平台,并在该平台上完成了DES和MD5等算法的加密和解密。文中通过基于MD5算法设计的加密方案(仿Yahoo邮箱的密码校验)进行暴力破解,验证了本系统的可行性以及速度快、性价比高等显著优点。

1 系统结构

系统利用普通PC机或工控机进行控制、数据流下载和结果采集,大计算量的数字运算利用IP-CORE技术并行地在FPGA中进行。将数字信号处理的算法设计为一个单元模块,并根据芯片的结构对布局和布线进行优化,该单元模块重复利用的技术被称为IP-CORE技术。在本系统中利用TP-CORE的可重复利用性,通过仲裁逻辑调度数据的分配,从而实现算法的并行处理。

1.1 硬件结构

系统中采用5片ALTERA公司的STRATIX EP1Sl0FPGA芯片,其中4片作为数字信号处理算法CORE的载体(文中称为算法FPGA);l片作为连接PC机与运算CORE的桥接芯片、加载程序、并行总线裁决和中断判决等仲裁逻辑的载体。与PCI总线的接口使用PLX公司的PCI9054芯片。系统硬件结构如图l所示。

1.2 逻辑结构

BRIDGE FPGA的程序采用自顶向下的设计方法,其逻辑结构如图2所示,按功能可分为以下部分:顶层模块PCI_FPGA_PARALLEL;与PCI9054的接口模块PCI接口;数据缓存及仲裁部分:数据缓存模块FIFO、寄存器模块regpart、数据回传模块deserial、内部总线仲裁和流控模块CORE接口等。

PCI接口部分实现与PCI9054芯片的接口时序,使得复用的地址和数据分开,产生地址空间的选取及使能信号,便于后端处理。

仲裁逻辑部分:

(1)实现对地址空间内数据缓冲区、各种寄存器的读写,以及根据配置寄存器的内容对算法CORE和桥FPGA做相应的操作(配置、启动、停止、复位等)。

(2)利用缓冲区及FIF0的队列长度信号wrusedw、rdusedw、full和empty进行数据流控制。数据由PC机下载时首先进入缓冲区,每一块算法CORE均对应一个数据下行FIFO,由FIFO当前状态来判定是否从缓冲区中取数。具体逻辑模型如图3所示。

(3)返回结果引入本地中断机制,当有正确结果产生、或无正确结果但密钥匹配完成、或系统异常状态,均产生中断信号并填写中断类型寄存器,经级联后产生向PC机的中断。中断判决如图4所示。

(4)实现与算法core间的协议逻辑,控制多种数据流的下行以及结果的返回。

2 MD5算法简介

MD5(Message Digest 5)报文摘要算法是一种应用广泛的提取数字指纹的算法标准,它由MIT的密码学专家、RSA算法的发明人之一Rivest设计发明。MD5算法结构如图5所示。

对任意长度的信息输入,MD5都将产生一个长度为128bit的输出,这一输出可以被看作是原输入报文的“报文摘要值(Message Digest)”。

MD5的特点:

(1)两条不同的报文具有相同的报文摘要值的可能性极小。

(2)对于预先给定的报文摘要值,要想寻找到一条报文,使得其报文摘要值与某个给定的报文摘要值相等,在计算上是不可能的。

(3)根据报文的摘要值,要想推测出原来的报文是极端困难的。

MD5算法被广泛地应用于网络数据完整性检查以及各种数据加密技术中。

Yahoo邮箱密码算法是基于两次MD5算法。共算法步骤如下:

stepl:对一个密码字段(例如:dfeag~hyt),用MD5算法加密:h=md5 (dfertgrhyt)。

step2:将step1所得结果转换为32Bytes的hex值:hex(h)。

step3:将step2所得结果与一个yahoo提供的chanllenge值简单级联:string=hex(h)+chanUenge

step4:将step3所得结果再进行一次MD5运算:hash=md5(strmg)。

由于未得到实际Yaheo邮箱密码生成参数(例如challenge码),本文构造了相近算法以测试本系统性能。

测试方案如下:

提供一个已知的challenge值与相应的Hash值,从提供的字典中提取合适密码,由生成算法计算出对应的Hash值与提供的Hash值匹配来校验匹配的密码。密钥字典的产生有两种方式:人为构造字典及系统自加、穷举产生密钥。

3 实测性能分析

实际系统中算法CORE运算时钟为20MHz,64bit数据宽度输入;采用多级流水线设计及运算速度就是系统运行时钟的速度。除运算初期流水线建立过程和运算结束时流水线完成过程,运算速度均可视为20MHz;实际制成的系统为四片算法FPGA并行运算,实际吞吐量为4×20M×16bit=1.28Gb;经Ahem Quartus 4.1综合,实际仲裁逻辑占用3725个逻辑单元。综合频率最高为156.2MHz,单算法逻辑占用7718个逻辑单元,综合频率最高为37.10MHz。

典型的普通PC机定点运算需要多个指令周期,包括取指令、取数据、计算、保存数据等指令周期,而一个x86指令周期又由多个CPU时钟周期组成,大大降低了实际运算速度。由于单个CORE以20MHz时钟流水线运算,相当于一台普通PC机的运算速度,因此多个CORE并行运算即可达到多台PC机并行运算的效率。

采取密钥字典自FPGA穷举产生方式,可发挥算法CORE的最大效能。若采取密钥字典自PC机下载方式,则实际速率由PCI总线最高速率决定。但由于字典可以人为选取,大大降低了密钥选取的盲目性。本系统接入普通PC机上32bit、32MHz的PCI总线,单算法CORE连续运算(64bit×20MHz)即可满足PCI总线全速下载。若使用64bit、66MHz的PCI总线或PCI EXPRESS,将进一步提高系统的实际吞吐量。

本文提出了一种基于FPGA的适合大规模数字信号处理的并行处理结构,利用CORE的可置换性,可以针对不同应用的数字运算设计不同的CORE,系统通用性的特点非常显著。一台普通PC机中可以同时插入数块PCI卡。每块卡上的任意一块算法FPGA都可提供相当或超过一台普通PC机的运算速度。而每增加一块算法FPGA,在效率提高一倍的前提下,功耗增加不超过10W,而体积几乎不变,成本也只是比普通PC机增加了五分之一。因此.本文提出的并行结构具有极高的性价比。

如果将PCI总线接口模块集成到FPGA中以取代PCI9054芯片,将进一步降低硬件成本,减少硬件设计的复杂度;因实际运算速度与算法的并行度和优化有密切的关系,因此,设计不同应用的CORE以及相关算法的优化是下一步要进行的重要工作。

关键字:扩展  编程  移位  串行 引用地址:基于FPGA PCI的并行计算平台实现

上一篇:基于FPGA的计算机防视频信息泄漏系统设计
下一篇:基于FPGA的分布式算法FIR滤波器设计

推荐阅读最新更新时间:2024-05-13 18:38

单片机编程里软件定时器使用技巧
#ifndef __SIMPLE_SOFT_TIME_H_ #define __SIMPLE_SOFT_TIME_H_ #define MIAO 1000ul #define MIN 60*MIAO #define UPLOAD_SENSOR_ITV 10*MIN //传感器数据上报间隔 #define OFFLINE_WAIT_TIME 8*MIN typedef enum { ST_General_Ov=0, ST_HEAT_Ov, //1 ST_M35_HEAT_O
[单片机]
定量测量多通道串行数据系统中的串扰引起的抖动(二)
在参考文献 中推导了串扰引起的峰峰值BUj的关系式。该文基于的假设是干扰源(Aggressor)感应的串扰改变了被干扰信号的幅度,改变量的大小等于感应的串扰电压。受干扰对象(Victim)边沿移动的变化量由下面的等式(3)给出。 表示受干扰对象(Victim)上串扰感应的电压的峰峰值。该等式描述了当干扰源(Aggressor)的边沿和受干扰对象(Victim)的边沿一致的时候,感应的串扰引起的时序改变量。峰峰值抖动受限于干扰源(Aggressor)和受干扰对象(Victim)的边沿的重叠部分的大小。还有一个最大值限制等于干扰源(Aggressor)转换时间,当串扰电压大小超过一定程度时会达到这
[测试测量]
定量测量多通道<font color='red'>串行</font>数据系统中的串扰引起的抖动(二)
为时钟源编程的计算机并行端口
本设计实例说明如何将Linear Technology公司的LTC6903可编程振荡器作为时钟源应用在直接数字合成、数据转换、开关电容滤波、时钟和压控振荡器等电路中。LTC6903可由2.7V ~ 5.5V的电源供电工作,功耗适中,可产生频率范围为1 kHz ~68 MHz时钟信号。LTC6903在这一频率范围内的典型频率误差和分辨率分别为1.1和0.1%。   你可通过IBM兼容PC机的并行端口控制图1所示的可编程振荡器电路。这一并行端口也可为该电路供电。电阻器R1和R2限制从并行端口数据位DB3和DB4吸收的电源电流,而电阻器R3、R4、R5则将编程位DB0、DB1和DB2隔离开来。高精度微功耗电压基准IC1为IC1和IC2提供
[应用]
PIC C语言编程_PICC中变量修饰关键词
1) extern — 外部变量声明 如果在一个 C 程序文件中要使用一些变量但其原型定义写在另外的文件中,那么在本文件中必须将这些变量声明成“extern”外部类型。例如程序文件 code1.c 中有如下定义: bank1 unsigned char var1, var2; //定义了 bank1 中的两个变量 在另外一个程序文件 code2.c 中要对上面定义的变量进行操作,则必须在程序的开头定义: extern bank1 unsigned char var1, var2; //声明位于 bank1 的外部变量 2) volatile — 易变型变量声明 PICC 中还有一个变量修饰词在普通
[单片机]
基于MSP430单片机和串口芯片PL2303的BSL编程工具设计
为了对烧断熔丝的MSP430系列单片机进行程序更新,采用USB转串口芯片PL2303和VB6.0编程语言设计出了一款高性价比的BSL编程工具,给出了该编程工具的硬件和软件设计的具体方案,并论述了设计中的要点。该BSL编程工具使用方便、操作简单、成本低廉,投入使用以后获得了较好的效果。 美国德州仪器公司的MSP430系列单片机在智能仪器仪表、医疗电子、消费电子等领域有着非常广泛的应用。大部分MSP430系列单片机都具有非易失性Flash存储器,用户调试或更新Flash中程序的方式一般有两种方法:JTAG和Bootstrap Loader(引导装载程序,简称BSL)。 MSP430系列单片机内部集成了JTAG仿真调试模块,并口
[单片机]
基于MSP430单片机和串口芯片PL2303的BSL<font color='red'>编程</font>工具设计
PIC单片机与16位串行D/A转换类型概述
1.电流型D/A 图1所示为电流衰减型D/A转换器原理图。图中T1、T2…TN和RE构成权电流发生器中的恒流源。各个管子的 RE是相等的,所以各位恒流源中的电流相等,我们把它记为IE。R-2R梯形为电流源的负载。电子开关K1,K2 …KN可以控制乃通向地端还是流进R-2R梯形电阻网络和加法器,在加法器的相加点可以流入加权电流的和。 图1 电流衰减型D/A转换器 如果只有电子开关Κ,将恒流源Y1和R-2R梯形电阻网络与加法器接通,其他电子开关均接向地,则通过加 法器相加点的电流正好是一个IE。 电流源型D/A转换器是用源器件(一般是MOS管)构成的电路来提供加权电流。与电阻加权型转换器相比, 电流源型D/A转换器速度比较
[单片机]
PIC单片机与16位<font color='red'>串行</font>D/A转换类型概述
FPGA、可编程HPC—未来就靠你们了!
技术名词:FPGA、HPC、触发器过滤器、Github、HLS、hls4ml、Project Catapult、HWMS、ML、DNN、GEMM、Statix FPGA为高性能计算和机器学习提供了一种早期的架构专门化选项。 体系结构专门化是继续改进性能的一种选择,以克服摩尔定律中减缓技术步伐所带来的限制。无论是在功耗还是性能方面,使用特定于应用程序的硬件来加速应用程序或其中一部分,并允许使用更高效的硬件作为支撑。 考虑到为单个应用程序或工作流构建计算硬件的固有成本,这种策略不能用于所有应用程序。然而,通过将挑战组合成组,或者识别能够从加速中获益的关键工作负载或代码,很可能成为提高应用程序性能的一个重要部分。
[嵌入式]
FPGA、可<font color='red'>编程</font>HPC—未来就靠你们了!
马斯克脑机接口公司 Neuralink 计划将 Link 功能扩展到现实世界,以实现控制机械臂、轮椅等
5 月 9 日消息,马斯克的脑机接口设备公司 Neuralink 发表博客文章,公布了其 PRIME 研究最新进展。 据估计,美国目前约有 18 万人处于四肢瘫痪状态,每年约有 1.8 万人遭受瘫痪性脊髓损伤,此类瘫痪患者往往会因为难以与数字世界自然交互而面临独立性下降、社交孤立和经济挑战等问题。因此,Neuralink 希望能够为四肢瘫痪的病人提供一个高性能脑机接口,从而让他们能够更好地控制数字设备,释放他们的个人和职业潜力。 为了实现这一目标,Neuralink 于 100 多天前在亚利桑那州凤凰城的巴罗神经研究所迎来了 PRIME 研究项目的首位参与者 Noland Arbaugh。Noland 在这里接受了 Neurali
[医疗电子]
马斯克脑机接口公司 Neuralink 计划将 Link 功能<font color='red'>扩展</font>到现实世界,以实现控制机械臂、轮椅等
小广播
最新应用文章
换一换 更多 相关热搜器件

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 安防电子 医疗电子 工业控制

词云: 1 2 3 4 5 6 7 8 9 10

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved