微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > FPGA和CPLD > FPGA新兴应用趋势洞悉

FPGA新兴应用趋势洞悉

时间:09-21 来源:互联网 点击:
以市场观点来看,许多人只会重视FPGA的大量型应用,例如用FPGA取代ASIC。

但就技术角度来看,FPGA的应用拓展就更为多样且具意义,这包括用FPGA加速高效运算、用FPGA加速电路设计验证、用FPGA取代大量性的DSP运算。

由于掩膜成本的指数性攀升,许多中等用量规模(约50万颗以下)的芯片无法如过去般以ASIC方式投产,且不得不改以FPGA投产,如此使近年来FPGA的市场不断增长。

FPGA侵蚀原有ASIC市场的用量极为可观的,此也成为近年来众人关注FPGA的首要焦点,不过也因为过于聚焦在高用量、大市场的观察,使FPGA的其它新应用发展被人所忽略,但这些应用却也极具意义。所以,以下本文将针对FPGA的新应用进行更多的了解与说明。

高效运算(High Performance Computing;HPC)

高效运算所指的即是军方、政府机关、学术研究单位所用的超级计算机(Supercomputer),另外部分企业内的工程、科技运算也含括在内,这类型的计算机拥有极高的运算效能,然近年来为了进一步提升系统效能,因此开始将FPGA运用于系统中。

首先是Cray Research,该公司的超级计算机:XD1就有用上FPGA,XD1用的是Xilinx(赛灵思)公司的VIRTEX系列FPGA。XD1机内有所谓的FPGA应用程序加速模块(FPGA Application Acceleration Module),模块等于是机内的一个小型辅助运算系统,VIRTEX是模块内的主控芯片,等于是一个协同处理器(Co-Processor),只不过这个协同处理器与ASIC型式的协同处理器不同,FPGA具有可程序化的功效,因此VIRTEX是一颗可程序化的协同处理器。

运算模块内除了有FPGA的协同处理器外,处理器也必须搭配内存才能行使运算,所以FPGA会再连接4颗QDR II SRAM(极高速性的内存),然后模块一方面用HyperTransport与XD1的主处理器相连,另一方面也连往XD1的特有高速I/O界面:RapidArray。

接着,由于高效运算多是执行大量重复性的运算,例如气象预测、风洞测试等,所以可以将执行的应用程序转化成FPGA内的组态(Configuration,中国内地方面称为:配置)程序,以硬件线路方式来执行运算,如此将比过往用纯软件方式执行快上数倍至数十倍的效能,甚至在特定的应用运算上能达一百倍以上的效能。

更仔细而言,其实是将整个应用程序中重复性最高、且最经常呼用(Call,呼叫使用,中国内地方面称为:调用)的函式库(Library,中国内地方面称为:库)进行转化,改以FPGA的硬件线路执行,如此就能够以最小的转化心力获得最大的加速效果。

Cray如此,与Cray同为高效运算市场的另一家业者:SGI(视算科技)也实行相同的作法,SGI提出所谓的RASC(Reconfigurable Application Specific Computing;RASC),中文可称为:可组态化应用程序性运算,RASC也是以模块方式让原有的超级计算机能获得加速效果。

SGI的作法与Cray有部分相同也有部分不同,Cray是将模块设置在原有超级计算机的机内,而SGI则是运用既有超级计算机机箱的上部来加搭加速模块,不过就功效机制而言两者异曲同工,此外两者都使用Xilinx的VIRTEX系列FPGA,但是内存与I/O部分两家也实行不同的设计,Cray是使用QDR II SRAM,SGI则是可实行QDR SRAM,或者也可用DDR2 SDRAM,前者容量少(80MB)但速度快,后者容量大(20GB)而速度慢,提供两种选择的原因是可依据不同的应用程序特性来选用。

另外,高效运算业者通常有独门的机内通讯传输技术,RapidArray即是Cray的独家技术,而SGI自身也有独家的传输技术,即NUMAlink 4(已是第四代技术),所以SGI的RASC不是使用RapidArray,而是使用NUMAlink 4。

其实Cray系统内所用的FPGA模块是与DRC Computer公司技术合作而成,因此DRC Computer自身也有提供相近方案,DRC的RPU(Reconfigurable Processor Units)同样也是用FPGA来加速,一样是用Xilinx VIRTEX FPGA,但与主系统间的连接接口改成AMD Opteron处理器的接座接口,如此一般使用AMD Opteron处理器的x86服务器也可以加装RPU来提升高效运算的效能。

芯片开发时的逻辑功效验证

FPGA的另一个新应用是芯片开发时的逻辑功效验证。过去数字芯片在设计开发时,每开发至一个阶段就必须对已经完成的电路进行逻辑上、机制上的功效验证,以了解设计是否有误,关于此多是用计算机软件程序来进行逻辑推演(Simulation),不过用计算机程序来进行验证,其推演速度相当慢,所以每一项验证都要经过漫长等待才能知道结果。

对此或许有人会说:可以使用更快速的计算机来加快验证,但这其实是鸡与蛋的问题,计算机效能提升其实是因为芯片效能愈来愈高,芯片效能愈来愈高原因可用摩尔定律来解释,在摩尔定律下,芯片开发速度变快、同时也让芯片更复杂,所以「计算机的更快速」与「芯片的更复杂」是连动的,使用了更快速的计算机,也意味着要推演、验证更复杂设计的芯片,最根本的问题并还没有真正解决。

不过,由于FPGA的电路密度、运作效能在近年来大幅提升,所以开始有人提议用FPGA来取代纯计算机执行的验证软件,如此推演速度就可以获得大幅提升。举例来说,IBM、Sony、Toshiba三家业者所共同合作开发的Cell芯片,当芯片还在开发阶段时就已经使用FPGA来推演验证,以加速了解设计上的正确性。更具体来说,就是将新芯片的逻辑电路加载到FPGA,让FPGA充当新芯片来执行。

改采FPGA方式来验证,其优点不仅是加速验证程序,也可以节省验证成本,过去为了加速验证,必须动用大量的计算机,让众多的计算机同时都执行验证程序,才能让验证速度提升,有时其计算机的用量甚至要用及整个运算机房内的计算机,而今改成FPGA方式验证后,计算机用量就可大幅减少。

要注意的是,由于芯片的电路愈来愈复杂,即便使用高阶、大容量(逻辑闸)的FPGA,都很难单独用一颗FPGA就仿真出整个新芯片,所以通常是同时用上多颗FPGA芯片,每颗FPGA芯片仿真部份的新芯片电路,然后再将多个FPGA芯片进行串连,用多个芯片来同时仿真一颗新芯片。

另外,FPGA虽可以进行芯片设计的功效验证,但并不代表整个芯片的设计开发流程都可以加速,芯片电路设计的部份依旧需要工程师人工设计,只有功效验证上可以获得加速。再者,功效验证完全正确后并不代表芯片就此设计完成(除非该芯片确定直接以FPGA方式出货),后续在正式投产之前,还要经过频率收敛、电路化简等其它实体电路特性的调修,这方面FPGA也无从给予帮助。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top