基于fpga的并行计算技术new

基于fpga的并行计算技术new

ID:20233368

大小:68.58 KB

页数:5页

时间:2018-10-11

基于fpga的并行计算技术new_第1页
基于fpga的并行计算技术new_第2页
基于fpga的并行计算技术new_第3页
基于fpga的并行计算技术new_第4页
基于fpga的并行计算技术new_第5页
资源描述:

《基于fpga的并行计算技术new》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、基于FPGA的并行计算技术更新于2012-03-1317:15:57文章出处:互联网1 微处理器与FPGA微处理器普遍采用冯·诺依曼结构,即存储程序型计算机结构,主要包括存储器和运算器2个子系统。其从存储器读取数据和指令到运算器,运算结果储存到存储器,然后进行下一次读取-运算-储存的操作过程。通过开发专门的数据和指令组合,即控制程序,微处理器就可以完成各种计算任务。冯·诺依曼型计算机成功地把信息处理系统分成了硬件设备和软件程序两部分,使得众多信息处理问题都可以在通用的硬件平台上处理,只需要开发

2、具体的应用软件,从而极大地降低了开发信息处理系统的复杂性。然而,冯·诺依曼型计算机也有不足之处,由于数据和指令必须在存储器和运算器之间传输才能完成运算,使得计算速度受到存储器和运算器之间信息传输速度的限制,形成所谓的冯·诺依曼瓶颈[1];同时,由于运算任务被分解成一系列依次执行的读取-运算-储存过程,所以运算过程在本质上是串行的,使并行计算模式在冯·诺依曼型计算机上的应用受到限制。受到半导体物理过程的限制,微处理器运算速度的提高已经趋于缓慢,基于多核处理器或者集群计算机的并行计算技术已经逐渐成

3、为提高计算机运算性能的主要手段。并行计算设备中包含多个微处理器,可以同时对多组数据进行处理,从而提高系统的数据处理能力。基于集群计算机的超级计算机已经成为解决大型科学和工程问题的有利工具。然而,由于并行计算设备中的微处理器同样受冯·诺依曼瓶颈的制约,所以在处理一些数据密集型,如图像分析等问题时,计算速度和性价比不理想。现场可编程门阵列(FPGA)是一种新型的数字电路。传统的数字电路芯片都具有固定的电路和功能,而FPGA可以直接下载用户现场设计的数字电路。FPGA技术颠覆了数字电路传统的设计-流

4、片-封装的工艺过程,直接在成品PFGA芯片上开发新的数字电路,极大地扩大了专用数字电路的用户范围和应用领域。自从20世纪80年代出现以来,FPGA技术迅速发展,FPGA芯片的晶体管数量从最初的数万个迅速发展到现在的数十亿个晶体管[2],FPGA的应用范围也从简单的逻辑控制电路发展成为重要的高性能计算平台。FPGA芯片中的每个逻辑门在每个时钟周期都同时进行着某种逻辑运算,因此FPGA本质上是一个超大规模的并行计算设备,非常适合用于开发并行计算应用。目前,FPGA已被成功地应用到分子动力学、基因组

5、测序、神经网路、人工大脑、图像处理、机器博弈等领域,取得了数十到数千倍的速度提高和优异的性价比[3-18]。2 FPGA并行算法的设计与开发FPGA通过逻辑电路实现计算功能,而微处理器则通过程序和存储器控制计算过程。FPGA和微处理器在基本架构上的根本区别,决定了它们算法的设计理念和方法也存在很大区别[4-5]。与微处理器相比,FPGA最主要的优势是可以同时对大量变量进行逻辑运算和赋值,实现并行运算;而FPGA最主要的劣势则是失去了微处理器所提供的许多基本计算工具,如浮点数计算、初等函数取值

6、等。在设计FPGA算法时,应该充分发挥FPGA可以同时对大量变量进行逻辑运算和赋值的优势,而尽量避免使用浮点数运算、初等函数取值等数值计算功能,所以并不是任何并行计算问题都适于在FPGA上实现。一般来说,FPGA最适用于需要大量并行逻辑或者整数运算的计算任务。例如,图像处理应用中的线性除噪、形态学变换、边缘检测、模式匹配等应用,就非常适合在FPGA上实现[10-16]。FPGA算法中常用的电路结构包括流水线型和并行阵列型两种(见图1)。在流水线型结构中,计算任务被分解成多个子任务,由多个子电路

7、依次完成,多组数据依次进入流水线电路,同时进行不同阶段的计算(见图1(a))。忽略首批数据进入流水线的延迟,流水线型电路处理数据的用时等于所有子任务中最长的用时。如果每个子任务都可以采用组合电路来完成而不需要时序电路,则所有子任务都可以在一个FGPA时钟内完成,从而实现极高的运算速度和性价比。图1 流水线型电路和并行阵列型电路 在并行阵列型电路中,多组并行排列的子电路同时接收整体数据的多个部分进行并行计算(见图1(b))。并行阵列型电路中的子电路本身可以是简单的组合电路,也可以是复杂的时序电

8、路,如流水线型电路。如果受逻辑资源限制,无法同时处理全部数据,也可以依次处理部分数据,直到完成全部数据的处理。图2示出了FPGA系统的开发流程。一般采用硬件描述语言(HDL),如Verilog、VHDL等,实现FPGA并行算法。虽然有一些类似C语言的软件可以帮助没有数字电路设计经验的用户实现FPGA设计,但是由于包括C语言在内的微处理器编程语言蕴含了许多微处理器的计算模式和理念,所以会影响或干扰FPGA并行算法的实现。使用HDL可以更好地结合FPGA的计算模式,设计出更合理的并行算法。一般选用

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。