嵌入式:一文看懂ASIC和FPGA的区别
摘要:自去年AlphaGo打败围棋高手后,人工智能受到越来越多的关注,许多公司正在积极开发能实现移动端人工智能的硬件,尤其是能够结合未来的物联网应用,对于移动端人工智能硬件的实现方法,有两大流派,即FPGA派和ASIC派。
自去年AlphaGo打败围棋高手后,人工智能受到越来越多的关注,许多公司正在积极开发能实现移动端人工智能的硬件,尤其是能够结合未来的物联网应用,对于移动端人工智能硬件的实现方法,有两大流派,即FPGA派和ASIC派。FPGA流派的代表公司如Xilinx主推的Zynq平台,而ASIC流派的代表公司有Movidius。两大流派各有长短,下面让小编来细细分说。
ASIC_FPGA_
FPGA——现场可编程门阵列
ASIC具有高性能、低功耗的优势,但它们包含的任何算法——除了那些在软件内部处理器内核执行的——其余都是“冻结的”。所以这个时候我们就需要现场可编程门阵列(FPGA)了。早期的FPGA器件的架构相对简单——只是一系列通过可编程互连的可编程模块。
FPGA最厉害的地方是,我们可以配置它的可编程架构来实现任意我们需要的数字功能组合。另外,我们可以以大规模并行的方式实施算法,这意味着我们可以非常迅速和有效地执行大数据的处理。
ASIC——特定应用集成电路
让我们从特定应用集成电路(ASIC)开始。正如其名称所表示的,这是因特定目的而创建的设备,一旦设计制造完成后电路就固定了,无法再改变。当大多数人听到这个词ASIC时,他们的“下意识”反应是,假设它是数字设备。事实上,不论它是模拟的、数字的,或两者的混合,任何定制的芯片都是一个ASIC。然而,对于这些讨论的目的,我们应该假设这是一个完全或主要部分是数字性质的芯片,任何模拟和混合信号功能是沿着物理接口线(物理层)或锁相回路(PLL)的。
比较FPGA和ASIC就像比较乐高积木和模型。举例来说,如果你发现最近星球大战里面Yoda大师很火,想要做一个Yoda大师的玩具卖,你要怎么办呢?
有两种办法,一种是用乐高积木搭,还有一种是找工厂开模定制。用乐高积木搭的话,只要设计完玩具外形后去买一套乐高积木即可。而找工厂开模的话在设计完玩具外形外你还需要做很多事情,比如玩具的材质是否会散发气味,玩具在高温下是否会融化等等,所以用乐高积木来做玩具需要的前期工作比起找工厂开模制作来说要少得多,从设计完成到能够上市所需要的时间用乐高也要快很多。
FPGA和ASIC也是一样,使用FPGA只要写完Verilog代码就可以用FPGA厂商提供的工具实现硬件加速器了,而要设计ASIC则还需要做很多验证和物理设计(ESD,Package等等),需要更多的时间。如果要针对特殊场合(如军事和工业等对于可靠性要求很高的应用),ASIC则需要更多时间进行特别设计以满足需求,但是用FPGA的话可以直接买军工级的高稳定性FPGA完全不影响开发时间。但是,虽然设计时间比较短,但是乐高积木做出来的玩具比起工厂定制的玩具要粗糙(性能差)许多(下图),毕竟工厂开模是量身定制。
另外,如果出货量大的话,工厂大规模生产玩具的成本会比用乐高积木做便宜许多。FPGA和ASIC也是如此,在同一时间点上用最好的工艺实现的ASIC的加速器的速度会比用同样工艺FPGA做的加速器速度快5-10倍,而且一旦量产后ASIC的成本会远远低于FPGA方案(便宜10到100倍)。
总结
FPGA上市速度快,但性能较低。ASIC上市速度慢,需要大量时间开发,而且一次性成本(光刻掩模制作成本)远高于FPGA,但是性能远高于FPGA且量产后平均成本远低于FPGA。FPGA可以完全重配置,但是ASIC也有一定的可配置能力,只要在设计的时候就把电路做成某些参数可调的即可。我们看到的市场现状也是如此:使用FPGA做深度学习加速的多是企业用户,百度、微软、IBM等公司都有专门做FPGA的团队为服务器加速,而做FPGA方案的初创公司Teradeep的目标市场也是服务器。而ASIC则主要瞄准消费电子,如Movidius。由于移动终端属于消费电子领域,所以未来使用的方案应当是以ASIC为主。
本文由航大物联编辑整理(www.lrist.com),如有侵权请联系本站。
用云栖社区APP,舒服