导读:本文是作者于2019年9月在斯坦福大学进行的三个小时讨论的摘要。这篇文章结合了Zilog、Altera、Xilinx、Achronix、Intel、IBM、斯坦福、麻省理工、伯克利大学、威斯康星大学、Technion、Fairchild、贝尔实验室、Bigstream、谷歌、DEC、SUN、诺基亚、SRI、日立、Silicom、Maxeler技术、VMware、施乐PARC、思科等组织在FPGA领域的经验。这些组织不负责内容,但可能在某种程度启发了作者们的兴趣,以使他们在FPGA领域经历了丰富多彩的旅程。
FPGA(现场可编程门阵列)自诞生以来就一直在冲击着专用集成电路(ASIC,Application Specific Integrated Circuit)芯片界的神经。在20世纪80年代中期,RossFreeman和他的同事从Zilog手中购买了这项技术,并着手创办了针对ASIC仿真和教育市场的Xilinx。(Zilog出自埃克森美孚石油公司,因为在20世纪70年代,人们已经开始担心石油会在30年后枯竭,这一点在今天仍然适用)。同时,Altera也以类似的技术为核心成立。
FPGA是由电路编程的芯片,支持“仿真”该电路。这种仿真的运行速度比使用ASIC实现的实际电路运行速度慢--它的时钟频率更慢,使用更多的功率,但它可以每隔几百毫秒重新编程一次。
制作ASIC的人们一开始先使用FPGA来仿真ASIC,然后再将它们进行掩码处理并批量制造。英特尔、AMD和许多其他公司在制造芯片之前都会使用FPGA来仿真芯片。
触动电信业的神经
电信行业一直是FPGA的主要用户。电信标准不断变化,建造电信设备非常困难,因此首先提供电信解决方案的公司往往会占领最大的市场份额。由于ASIC需要很长时间才能完成,FPGA提供了一个捷径。电信设备的最初版本一般采用FPGA,但FPGA高昂的价格引发了冲突。尽管FPGA的价格对ASIC仿真市场无关紧要,但对电信行业而言,芯片的价格却很重要。许多年前,AT&T和朗讯制造了自己的FPGA,称为ORCA(优化的可重配置单元阵列),但就硅片的速度或尺寸而言,它们与Xilinx或Altera相比不具有竞争力。
如今,华为已成为FPGA的最大客户。华为两年前即提供了世界上最早的5G电信设备解决方案,相较于其他供应商处于明显优势,但中美之间最近的紧张关系很可能会导致产于美国的FPGA影响华为提供5G电信设备。
FPGA价格触及神经
早期,FPGA被用于SDR(软件定义的无线电)——在同一时间建立多个不同标准的无线电通信,本质上是一部讲多种语言的单一电话。这一次,FPGA挑动了一个巨大的神经。
SDR技术的实施方式存在分歧。商业供应商开发了经济高效的解决方案,如今地球上的每个基站都有SDR技术。另一方面,在国防界,SDR是由大型国防承包商建造的,他们用有利可图的传统产品线来建造。其结果是基于FPGA的无线电产品价格非常高,以至于美国部分国防市场对使用FPGA产生了持续的过敏反应。
接下来,FPGA试图在DSP(数字信号处理器)和嵌入式市场中发展。在角落里有一些微处理器的FPGA开始出现。销售这些新型FPGA的压力太大,以至于如果客户拒绝新的芯片系列,它们将被列入黑名单,有时甚至会拒绝提供服务好几个月。鉴于FPGA产品具有巨大的覆盖率和知识产权层而无法降低其价格,因此,发展FPGA市场的压力一直是巨大的,FPGA公司征服新市场失败的规模也是如此。
触动HPC和数据中心的神经
在过去的几年里,FPGA一直试图在HPC(高性能计算)和数据中心市场发展。2017年,微软宣布在数据中心使用Altera FPGA,而英特尔则收购了Altera。2018年Xilinx公司宣布其“数据中心优先”战略,Xilinx首席执行官在众多分析师面前宣布Xilinx不再是一家FPGA公司了。这可能是一种轻微的戏剧化表现,但从历史上看是有关联的。
在高性能计算机和数据中心使用FPGA时,目前的主要障碍是布局和布线——运行专有FPGA供应商软件将电路映射到FPGA元件所花费的时间,在大型FPGA和高速CPU服务器上,布局和布线需要长达三天,而且很多时候即使在使用三天后,很多软件仍无法解决映射问题。
触动石油和天然气的神经
在石油和天然气实施领域中,2007年左右出现了一个利基市场。传统计算机模拟地球上的钻孔以发现石油所花费的时间比实际建造的钻井场地和钻井本身还要长,FPGA加速器的使用极大地改变了这种颠倒时序。石油公司数据中心中的第一个FPGA,用于计算地震图像,由MaxelerTechnologies制造,并交付给Chevron。
几年来,FPGA在石油和天然气领域的应用不断扩大,直到来自ASIC行业的压力导致CPU技术回归标准化。如今,石油和天然气中的预测和模拟仍然很重要,地震成像大多在CPU和GPU上完成,但FPGA的机会仍然存在。我们需要注意的是,“今天的新事物是明天的遗产”,当然,如今的新事物是对AI和数据的关注。
尽管如此,FPGA仍然是一种快速进入市场的方式,是获得竞争优势的简单方法以及在许多关键任务情况下必不可少的技术——尽管与ASIC相比,芯片价格昂贵。然而,在与CPU或GPU上运行软件相比,在HPC和数据中心中,FPGA的运营成本大大降低。与CPU和GPU相比,所需的FPGA更少,所需的冷却也更少。FPGA使得数据中心规模更小,这触及了运营商担心数据中心可能会缩小的神经。
ASIC与FPGA
使用FPGA的另一种方法是增强ASIC。构建ASIC的目的是保持固定功能,同时添加FPGA,为产品的最新更改或适应不同市场提供一定的灵活性。
现代FPGA集成了越来越多的硬功能,变得越来越像ASIC,而ASIC有时会在其设计中添加一些FPGA结构,用于调试、测试、现场修复以及根据需要灵活地添加少量功能。
尽管如此,ASIC团队一直在与FPGA概念抗争。ASIC设计师问:“您想要什么功能?”如果回答是“我还不知道”,他们会很不耐烦。
无人驾驶汽车行业就是这样一个新的战场。由于算法不断变化,并且法律法规可能会在汽车进入市场时发生变化,需要驾驶员更新,因此解决方案需要灵活。FPGA的时钟频率较低,散热片较小,因此物理尺寸比CPU和GPU小。更低的功耗和更小的尺寸使FPGA成为显而易见的选择。尽管如此,GPU易于编程,并且不需要三天时间来实现布局和路线,因此对FPGA形成了一定挑战。
此外,至关重要的是能够在汽车和云中运行相同的代码(主要用于模拟和测试),因此FPGA必须先在云中使用,然后才能在汽车中使用。由于这些原因,许多开发人员更喜欢GPU。