FPGA这两年为什么突然火起来了?

FPGA的发明就是提高数字电路的重复利用性,通过可编程的方式实现不同的电路逻辑功能。随着FPGA结构的不断演变和工艺的不断提升,在FPGA内部集成了越来多的资源,比如BRAM、PLL、DSP、Transceiver、 DDR IP以及处理器ARM等,可以说功能变得越来越强大,用来辅助CPU计算,也获得了协处理器的名称。


FPGA这两年的火爆,主要有以下原因:

1)与处理器的对比:FPGA与处理器是不一样的硬件结构,所以无法直接进行对比,FPGA是以可编程的数字电路为设计理念(通过编程改变内部电路逻辑),而CPU是以逻辑计算为设计出发点。FPGA擅长的领域是数字信号处理,兼容多电平标准的接口可以互联各种高速电子器件,比如高速ADC和DAC、光纤收发器等,同时丰富的IP资源保证了有丰富的外设,比如SDRAM、PCIE接口、以太网PHY、SATA接口等等。从外设上看,FPGA可搭载的外设和CPU区别的不是太大,该有的都有了。

2)与GPU的对比:FPGA可以和GPU在并行计算上进行对比,更确切的说是GPGPU(通用计算GPU)。FPGA的并行处理体现在逻辑单元的并发性和流水线的处理方式上。并发性指的是各个逻辑模块相互独立处理,依赖各自的电路资源同时工作;流水线的处理方式就是将任务切片,同一时刻可以多任务执行(FPGA的并行优势更多的体现于此)。此外FPGA带有丰富的片上存储资源,可以大大减少访问片外存储的延迟,提高计算性能(访问SDRAM储存大约是访问寄存器存储延迟的几百倍以上)。GPU的并行性体现在多核上,计算任务通过编译器编译完成之后分配到每个计算单元,每个计算单元同时工作,计算完成之后通过多级内存管理(一般为三级,private memory, local memory和global memory,映射到FPGA可以为register file, BRAM 和外部DDR存储)回到CPU,GPU的多核类似于CPU的多核,但是GPU的核仅仅是负责计算的核,以支持多bit的向量计算见长。

3)FPGA未来的发展:FPGA之前一直应用于高速数字信号领域和ASIC验证,比如数字信号采集,工业控制,航天,军工,很多人讲过,不一而足。最近几年,个人感觉从2012年伴随着Vivada开发套件的推出(以Xilinx推出Vivado作为参考,Vivado工具支持高级语言综合(High Level synthesis),支持C语言到RTL的映射,以及开始支持亿级以上门电路的设计),FPGA作为协处理器慢慢走上正轨,有了工具的支持才使得CPU上的算法移植到RTL语言变得的简单,亿级门电路保证了丰富的逻辑资源。现在FPGA在机器学习和硬件加速上得到越来越多的重视(2015年底 Intel收购Altera),也做出了不少具有开创性的作品,但同时也存在诸多问题,比如1)什么样的算法适合FPGA进行加速,2)FPGA的加速性如何提升,是靠逻辑资源来取胜还是靠真正的算法优化,3)FPGA能不能摆托对CPU的依赖(现在加速采用异构的方式进行,CPU作为Host,FPGA作为device),4)FPGA的编译器能不能发生革命性的变革? 总而言之:一个越是充满不确定性的领域,越可能是发生革命性的变革(熵很大)。

4) 建议:若想从事电子领域,应当先学好单片机,精通单片机基本可以做到窥一斑而知全豹吧。

FPGA这两年为什么突然火起来了?


分享到:


相關文章: