- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
如何用 FPGA 实现算法的硬件加速 QQ 群:
2008-08-06 19:21
当设计者试图从算法中获得最佳性能但软件方法已无计可施时, 可以尝试通过硬件 / 软件重新
划分来进行加速。 FPGA 易于实现软件模块和硬件模块的相互交换,且不必改变处理器或进
行板级变动。本文阐述如何用 FPGA 来实现算法的 硬件加速 。
如果想从代码中获得最佳性能,方法包括优化算法、使用查找表而不是算法、将一切都转换
为本地字长尺寸、 使用注册变量、 解开循环甚至可能采用汇编代码。 如果所有这些都不奏效,
可以转向更快的处理器、采用一个不同的处理器架构,或将代码一分为二通过两个处理器并
行处理。不过,如果有一种方法可将那些对时间有严格要求的代码段转换为能够以 5-100 倍速
度运行的函数调用,而且如果这一方法是一种可供软件开发之用的标准工具,这可信吗?现
在,利用 可编程逻辑 作为硬件加速的基础可使这一切都变成现实。
图1:带定制指令的 可配置处理器 架构。
低成本可编程逻辑在嵌入式系统中应用得越来越普遍,这为系统设计者提供了一个无需对处
理器或架构进行大的改动即可获得更高性能的可选方案。可编程逻辑可将计算密集型功能转
换为硬件加速功能。从软件的角度看,这只是简单地将一个函数调用做进一个定制的硬件模
块中,但运行速度要比通过汇编语言优化的相同代码或将算法转换为查找表要快得多。
硬件加速
首先探讨一下什么是硬件加速, 以及将算法作为定制指令来实现与采用硬件外围电路的区别。
硬件加速是指利用硬件模块来替代软件算法以充分利用硬件所固有的快速特性。从软件的角
度看,与硬件加速模块接口就跟调用一个函数一样。唯一的区别在于此函数驻留在硬件中,
对调用函数是透明的。
取决于算法的不同,执行时间最高可加快 100倍。 硬件在执行各种操作时要快得多,如执行复
杂的数学功能、将数据从一个地方转移到另一个地方,以及多次执行同样的操纵。本文后面
将讨论一些通常用软件完成的操作,经过硬件加速后这些操作可获得极大的性能提高。
如果在系统设计中采用 FPGA ,那么在设计周期的任何时候都可以添加定制的硬件。设计者
可以立刻编写软件代码,并可在最终定稿之前在硬件部分上运行。此外,还可以采取增量法
来决定哪部分代码用硬件而不是软件来实现。 FPGA 供应商所提供的开发工具可实现硬件和
软件之间的无缝切换。 这些工具可以为总线逻辑和中断逻辑生成 HDL 代码, 并可根据系统配
置定制软件库及 include 文件。
带一些 CISC 的 RISC
精简指令集计算 (RISC) 架构的目标之一即是保持指令简单化,以便让指令运行得足够快。这
与复杂指令集计算 (CISC) 架构正好相反,后者一般不会同样快地执行指令,但每个指令可完
成更多处理任务。这两种架构应用得都很普遍,而且各有所长。
如果能根据特定的应用将 RISC 的简单和快速特性与 CISC 强大的处理能力结合起来, 岂不两
全其美?其实这正是硬件加速所要做的。加入为某种应用而定制的硬件加速模块可以提高处
理能力,并减少代码复杂性和密度,因为硬件模块取代了软件模块。可以这么说,是用硬件
来换取速度和简单性。
定制指令和硬件外围电路方式
有两种硬件加速模块实现方式。其一是定制指令,它几乎可在每一个可配置处理器中实现,
这是采用可配置处理器的主要优点。如图 1所示,定制指令是作为算术逻辑单元 (ALU) 的扩展
而添加的。处理器只知道定制指令就像其它指令一样,包括拥有自己的操作代码。至于 C 代
码,宏可自动生成,从而使得使用该定制指令跟调用函数一样。
如果定制指令需要几个时钟周期才能完成,而且要连续调用它,则可以流水线式定制指令来
实现。这样可在每个时钟周期产生一个结果,不过开始时有些延迟。
硬件加速模块的另一种实现方式是硬件外围电路。
您可能关注的文档
最近下载
- 应用型大学英语视听说教程发展篇2 第四版 Unit 2 Green Business.ppt VIP
- 四川省成都市2024-2025学年高二上期期末统一调研考试 物理 含答案.docx VIP
- T-D-T 1031.5-2011 土地复垦方案编制规程 第5部分:石油天然气(含煤层气)项目(正式版).docx VIP
- 宁波大学2024-2025学年第1学期《高等数学(上)》期末考试试卷(A卷)附参考答案.pdf
- 磷酸、单宁酸混合型带锈转化液的转化效果-材料与测试网.PDF VIP
- 2025年中国高校工商管理硕士MBA教学合格评估方案.docx VIP
- 电动无轨胶轮车安全性设计.docx VIP
- 提高塔内件安装效率的措施分析.pdf VIP
- T∕CEC 151-2018 并网型交直流混合微电网运行与控制技术规范.pdf
- 施乐2056维修手册.pdf VIP
原创力文档


文档评论(0)