2.1 FPGA
现场可编程逻辑门阵列(Field Programmable Gate Array,FPGA)是一种器件内部的大部分电气功能可由设计师更改的半导体集成电路,更改可以在印刷电路板(Printed Circuit Boards,PCB)的组装过程中完成,也可以在设备已运送给客户后在现场完成。
2.1.1 FPGA的组成和技术特点
现代FPGA的核心由静态随机访问存储器(SRAM或闪存)、高速输入输出接口、逻辑块和导线组成。同时,为了降低能耗、减少成本并实现功能的多样化,很多FPGA产品还集成了硬核知识产权(IP),如中央处理器(CPU)、内存块、协议控制器、计算电路、收发器、数字信号处理器(DSP)等。这使得FPGA可以为各种类型的电子设备(如飞机导航、汽车驾驶员辅助、智能能源电网、医疗超声波和数据中心搜索引擎等)的设计者提供有效帮助。
以Intel Arria 10 FPGA SOC芯片为例,它基于TSMC的20nm制程技术,在一个片上系统中集成了GHz级处理器、FPGA逻辑和数字信号处理(DSP)功能,在减少电路板面积的同时提高了整体性能。
在实际应用中,FPGA具有以下技术特点。
·灵活性:FPGA的功能在每个设备上可以灵活更改,设计者可以简单地下载配置文件到设备中来应用所需要的功能。
·集成性:现代FPGA集成了很多硬核知识产权,可以在电路板上用更少的设备实现更多的功能,并提高系统的可靠性。
·设计快速、性能高效:与ASIC相比,FPGA可以缩短设计时间,允许将原型系统运送给客户进行现场试验,同时提供在投入批量生产之前快速进行更改的能力,以降低错误风险,更快地将产品推向市场。FPGA还可以在满足系统功耗的要求下通过提供CPU负载的加速功能有效地改进系统性能。
·总体拥有成本(TCO):与ASCI的方案相比,FPGA不需要昂贵的设计工具、专业的设计团队和更长的制造周期,可以有效地降低总体拥有成本。
2.1.2 FPGA在边缘计算中的应用和挑战
在边缘计算的各种应用场景中,从智能建筑和互联汽车到智能电网和城市基础设施,从单个原型单元扩展到应用中的成千上万个单元,FPGA为物联网实现了各种不同解决方案,提供了创新的动力。
·智能网卡:通过FPGA的灵活编程能力支持网络数据面和控制面的功能定制,并协助CPU高效地处理网络负载,监管网络流量。基于FPGA的智能网卡为实现网络虚拟化和软件定义网络(SDN)提供了一种高效的解决方案。
·人工智能(AI)加速器:FPGA独特的体系结构特性对分布式、低延迟边缘计算应用尤为重要,FPGA的并行处理机制为人工智能,特别是深度学习算法,提供天然的并行计算支持,其本地片上高内存带宽还可以进一步用于优化系统性能指标,如功率和成本。这些技术特点使FPGA可以作为人工智能(特别是深度学习)的推理加速器应用于边缘计算的场景中。
·机器视觉:机器视觉使用高速摄像机和计算机来执行复杂的检测任务,对数字图像进行采集和分析,并使用所得到的数据进行模式识别、对象排序、机器人手臂控制等。FPGA可以被用来设计适应多种图像传感器的专用接口,还可以用作边缘计算平台内的视觉处理加速器来分析视频数据。
FPGA为边缘计算提供了新的解决方案,为了更好地将这些方案应用于实际的边缘场景中,FPGA的高成本和较大的开发难度依然是需要解决的问题。
FPGA的供应商(如Xilinx和Intel)都提供了功能强大、种类繁多的FPGA产品来满足不同的应用场景,用户可以灵活地选择合适的FPGA产品来设计最优成本的实现方案。下面以Intel(Altera)的FPGA产品为例进行说明。
·Intel Max系列在低成本、单芯片、小外形的可编程逻辑设备中实现了先进的处理功能,它包含特性齐全的FPGA功能,如嵌入式处理器支持、数字信号处理(DSP)模块和软核DDR3存储控制器等,并针对各种成本敏感性的大容量应用进行了优化,可以广泛应用于工业、汽车和通信等边缘计算领域。
·Intel Cyclone系列满足低功耗、低成本的设计需求,适用于智能、互联系统的高带宽、低成本(如机器视觉、智能视觉相机、I/O扩展、传感器融合等)的边缘计算应用。
·Intel Arria系列在中端市场中的性能和能效极佳,Intel Stratix系列提供了中高端市场所需要的更高的密度和更高的性能,它们在集成更多功能(如内存、逻辑数字信号处理器、信号收发器、硬核处理系统)的基础上,最大限度地提高系统带宽,可以应用于通信、数据中心、军事、广播、汽车和其他终端市场等计算领域。
作为主要电气功能可以灵活改变的半导体集成电路,FPGA的设计通常要求设计人员对于所用FPGA器件的硬件和内部资源比较熟悉,设计的应用逻辑和目标器件能够有效配合,并通过Verilog等硬件描述语言来实现,这也导致FPGA的设计门槛比较高,需要专业的FPGA设计人员。
为了降低FPGA的设计门槛,FPGA的供应商提供各种工具和大量IP参考设计来辅助应用设计人员(特别是对FPGA不太了解的设计人员)完成FPGA方案设计。如Intel提供了Intel Quartus Prime软件套件,集成了各种高效率的工具,并通过用户友好的GUI界面来辅助FPGA设计,包括面向OpenCL的Intel FPGA SDK(提供了基于开放标准并行编程语言OpenCL的开发环境,在隐藏FPGA细节的同时实现了工作优化)、平台设计器、系统控制台调试工具包、收发器工具包、时序分析器和功耗分析器等。同时,Intel提供了多种的参考设计,如PCI Express、Interlaken、以太网、视频处理、光传输等IP,这些工具和参考设计大大降低了FPGA的设计门槛,为FPGA方案在边缘计算中实施奠定了应用基础。