加入收藏 | 设为首页 | 会员中心 | 我要投稿 广西网 (https://www.guangxiwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长百科 > 正文

带你了解FPGA

发布时间:2022-01-03 20:51:09 所属栏目:站长百科 来源:互联网
导读:一、什么是FPGA? FPGA是一种硬件可重构的体系结构。它的英文全称是FieldProgrammableGateArray,中文名是现场可编程门阵列。FPGA就是一个可以通过编程来改变内部结构的芯片,FPGA常年来被用作专用芯片(ASIC)的小批量替代品,同时也在微软、百度等公司的数
一、什么是FPGA?
 
FPGA是一种硬件可重构的体系结构。它的英文全称是FieldProgrammableGateArray,中文名是现场可编程门阵列。FPGA就是一个可以通过编程来改变内部结构的芯片,FPGA常年来被用作专用芯片(ASIC)的小批量替代品,同时也在微软、百度等公司的数据中心大规模部署,以同时提供强大的计算能力和足够的灵活性。
 
二、FPGA的应用场景
 
FPGA是集成电路大产业中的小领域,5G和AI为行业增长提供确定性,国产替代叠加行业增长,国产FPGA市场腾飞在即。
 
1.通信领域
 
通信领域需要高速的通信协议处理方式,另一方面通信协议随时都在修改,不适合做成专门的芯片,所以能够灵活改变的功能的FPGA就成了首选
 
电信行业一直大量使用FPGA。电信标准不断变化,建造电信设备非常困难,因此首先提供电信解决方案的公司往往会占领最大的市场份额。
 
于ASIC需要花费很长时间才能制造,因此FPGA提供了捷径的机会。
 
最初的电信设备版本开始采用FPGA,这引发了FPGA价格冲突。尽管FPGA的价格与ASIC仿真市场无关紧要,但电信芯片的价格却很重要。
 
许多年前,AT&T和朗讯制造了自己的FPGA,称为ORCA(优化的可重配置单元阵列),但就硅片的速度或尺寸而言,它们与Xilinx或Altera不具有竞争优势。
 
2.算法领域
 
FPGA对于复杂信号的处理性很强,可以处理多维信号。
 
3.嵌入式领域
 
利用FPGA构建一个嵌入式的底层环境,然后在此之上编写一些嵌入式软件,事务性的操作更加繁杂一些,对FPGA的操作较少。
 
4.在安防监控领域
 
目前CPU很难做到多通道处理和只能检测分析,但是加上FPGA之后就可以轻松解决了,尤其在图形算法领域有得天独厚的优势。
 
5.在工业自动化领域
 
FPGA可以做到多通道的马达控制,目前马达电力消耗占据全球能源消耗的大头,在节能环保的趋势下,未来各类精准控制马达得以采用,一片FPGA就可以控制大量的马达。
 
三、为什么FPGA效率会如此之高?
 
1.FPGA与GPU的区别本质上是体系结构的区别
 
CPU、GPU都属于冯·诺依曼结构,指令译码执行、共享内存。
 
FPGA本质上是无指令、无需共享内存的体系结构。
 
CPU与FPGA区别之(指令):CPU结构——有指令:冯氏结构中,由于执行单元(如CPU核)可能执行任意指令,就需要有指令存储器、译码器、各种指令的运算器、分支跳转处理逻辑。由于指令流的控制逻辑复杂,不可能有太多条独立的指令流,因此GPU使用SIMD(单指令流多数据流)来让多个执行单元以同样的步调处理不同的数据,CPU也支持SIMD指令。FPGA结构——无需指令:而FPGA每个逻辑单元的功能在重编程(烧写)时就已经确定,不需要指令。
 
CPU与FPGA区别之(内存)CPU结构——仲裁与共享内存:冯氏结构中使用内存有两种作用。一是保存状态,二是在执行单元间通信。由于内存是共享的,就需要做访问仲裁;为了利用访问局部性,每个执行单元有一个私有的缓存,这就要维持执行部件间缓存的一致性。
 
FPGA结构——无需仲裁与共享内存:对于保存状态的需求,FPGA中的寄存器和片上内存(BRAM)是属于各自的控制逻辑的,无需不必要的仲裁和缓存。
 
对于通信的需求,FPGA每个逻辑单元与周围逻辑单元的连接在重编程(烧写)时就已经确定,并不需要通过共享内存来通信。
 
FPGA同时拥有流水线并行和数据并行,而GPU几乎只有数据并行(流水线深度受限)。
 
FPGA流水线与数据并行处理:例如:处理一个数据包有10个步骤,FPGA可以搭建一个10级流水线,流水线的不同级在处理不同的数据包,每个数据包流经10级之后处理完成。每处理完成一个数据包,就能马上输出。
 
GPU数据并行处理:而GPU的数据并行方法是做10个计算单元,每个计算单元也在处理不同的数据包,
 
然而所有的计算单元必须按照统一的步调,做相同的事情(SIMD,SingleInstructionMultipleData)。
 
这就要求10个数据包必须一起输入、一起输出,输入输出的延迟增加了。
 
总结一句话,很多算法如果用纯软件实现,需要很多条指令才能完成,如果用FPGA,只需要在有限个时钟周期即可完成,速度快的不是一点半腥。
带你了解FPGA

(编辑:广西网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!