用RISC-V提升FPGA的可用性!今年FPGA技术大会,英特尔带来的创新思考还有哪些
关于芯片行业,有一个灵魂拷问:什么是推动芯片发展的最根本动力?这个问题看起来是个送分题,答案绝大部分人都会脱口而出:摩尔定律。
每隔18-24个月,芯片上的晶体管数量就会增加一倍。但是,“晶体管数量本身并没有太多意义,有意义的是如何把这些多出来的晶体管用起来”,芯片大神Jim Keller曾经这样说过。所以晶体管数量的变化,其实反映着功耗、性能、面积、成本的变化。明确了这一点,就可以衍生出很多相关的推论,比如晶体管数量如果不变,芯片面积就会缩小一半、或者功耗缩减一半;面积如果不变,性能就会提升一倍,价格会降低一半,等等等等。
但是很多人也都在考虑另外一个问题:摩尔定律究竟描述的是表象,还是本质?上世纪六七十年代,戈登摩尔提出这个“定律”的时候,其实是在总结和描述芯片发展的规律。他的本意,并不是用这个规律来指导整个产业的发展。与其说摩尔定律像个指挥千军万马的将军,它更像是一面旗帜,代表了人们对于芯片产业不断发展的信心。
那么,究竟什么是推动芯片发展的根本动力?
从本质上来看,是需求。供需关系是经济学里最基础的概念,芯片行业几乎所有大大小小的创新与进步,其实都是基于需求的驱动。拿FPGA来举例,我们一直说它是延续摩尔定律最好的例子。并不是因为FPGA在盲目增加晶体管数量,而是它根据不同的需求,很好的把这些额外的晶体管利用起来了。
FPGA从最早期的逻辑验证芯片,发展到网络通信设备中的重要组成部分,再发展到今天数据中心里的核心单元,这个过程就是在不断发现需求、满足需求、创造需求的循环。
2021年12月7号-10号,英特尔举行了2021英特尔 FPGA技术大会,并且分享了很多FPGA技术与产品的最新进展。从这次的活动里,我们就能非常清楚的看到,需求如何改变了FPGA芯片发展的轨迹。我们接下来就一个一个的说。
1、FPGA的新作用
提到FPGA的用途,很多人还停留在原型验证和硬件仿真上,这未免有些一叶障目了。拨开眼前这片树叶,你会发现FPGA已经用在太多地方了。用英特尔公司副总裁,FPGA 和电源产品事业部、数据中心和人工智能事业部、可编程解决方案事业部总经理Patrick Dorsey的话说,FPGA可以用来加速云、端、及其中间的全部应用。
这就是FPGA的现状,远远不止原型验证,也远不止网络通信,而是作为高吞吐量、高能耗比的硬件加速单元,去加速你能想到的所有应用。当然,FPGA只是整个链条中的一个环节。如果从更高的高度往下看,英特尔的另外一句很有名的口号,就很好的概括了所有需求:“移动更快、存储更多、处理一切。Move fast, Store more, Process everything.”
为了满足这样的需求,必然不能通过一种架构、一种产品、一种方案来实现。我们需要芯片、需要板卡、需要IP、需要开发软件,也需要健康的生态,这些都是FPGA不断进化的方向。
2、Agilex FPGA的新提升
如果穿越回N年前(N大于等于5),给当时的工程师说FPGA现在长这样,估计绝大部分人都会惊掉下巴。特别是Agilex FPGA,更是和传统的FPGA架构有着巨大差别。
Agilex这个名称源于Agile(敏捷)和Flexible(灵活)的合二为一。相比于其他指标,比如性能、功耗、成本,Agile + Fexible这两点才是业界对现代FPGA的最迫切需求。
也就是说,人们不仅需要一个高吞吐量、高带宽、高逻辑单元的性能猛兽,更需要一个灵活性强、适用性广,开发简单高效的器件。只有这样,才能更好的履行“硬件加速器”的职责,才能符合前面说的大方向:移动更快、存储更多、处理一切。
从架构和技术的角度详细分析Agilex的改进与提升,总结起来主要有6个主要方面:
1、全新的芯片布局
2、新一代HyperFlex寄存器架构
3、多样的时序优化方法
4、英特尔10纳米SuperFin工艺
5、系统级3D芯片
6、更灵活的DSP和布线微架构
举例来说,Agilex的芯片布局进行了大修,把通用I/O、存储器I/O、SRAM等等单元都移到了芯片的上下两端。原本这些单元都在芯片中间按列分布,这会把芯片分割成很多个小的设计区域,容易造成布线拥堵和延时。Agilex的新型芯片布局,就从根本上规避了这些问题,从而加速设计的时序收敛。
另外一个例子就是Agilex的HyperFlex寄存器架构。这种结构从Stratix10 FPGA里首次获得采用,到Agilex已经发展到了第二代。事实上,HyperFlex的想法是非常理想的,也就是在FPGA的布线资源上插入很多小寄存器,可以将时序路径分割成更小的部分,从而极大提升系统的工作频率。
但是这种方案实施起来,就遇到很多问题。比如HyperFlex寄存器本身会引入额外的延时,每个小寄存器的扇出数量,也会对系统性能造成负面影响。另外加入了这么多额外的单元,又对设计软件的自动化算法提出了挑战。其实,这些问题很多都在Stratix10里真实存在。
也就是说,HyperFlex的思路没错,但是实施方式出现了问题。所以,Agilex改进了Stratix10里第一代HyperFlex的设计缺陷,从原本更宽的多扇出设计,改成了现在更窄的少扇出设计,同时简化了HyperFlex寄存器本身的设计,减少了旁路延时。FPGA的基本组成单元ALM,也进行了重新设计,单独增加了额外的输出端口,可以直连HyperFlex寄存器。这些优化设计,都让Agilex的性能取得了大幅提升。根据英特尔的数据,仅是HyperFlex相关的改进,就将延时降低了超过20%。
当然还值得一提的是Agilex的制造工艺。它采用了英特尔的10纳米SuperFin工艺。它比英特尔的基础10纳米工艺取得了进一步提升。相比14纳米的Stratix10,Agilex更是取得了平均50%的性能提升、以及高达40%的功耗降低。
和赛灵思的7纳米旗舰产品Versal相比,Agilex也可以取得1.42倍的性能提升,以及超过30瓦的功耗降低。
那么,什么是驱动这些提升的根本动力?就是数据中心对算力的需求、是边缘计算对延时的需求、是各种数据和应用对存储容量、数据传输速度的需求。
归根到底,都是各种需求。于是,FPGA上集成了更多晶体管、更多IP、更强大的收发器,原本的架构不够用,就设计新的架构,更好的利用这些多出来的晶体管。
所有这些,又会进一步延续摩尔定律的发展。
3、如何编程FPGA
还想简单说说FPGA的编程方法。基于RTL的设计仍然是开发FPGA的主流手段,但是更多高层次开发方法也在不断发展。
Quartus软件变的越来越智能,它不再把所有芯片一视同仁,也不再把芯片上的所有位置和部分一视同仁,而是根据大量的测试数据,分区域进行功耗和时序的优化。把更长的时序路径,放在更快的区域,把不那么长的路径,放在稍微慢一点的位置,从而实现整体的优化提升。
这些技术进步,说起来就寥寥几句,但实现起来又何其复杂。只有能用起来的芯片,才有价值。EDA软件一直是FPGA厂商“皇冠上的明珠”,因为它的使命就是让芯片更好用。
为了提升可用性,英特尔又把RISC-V放到了FPGA里,提出了名叫Nios V的软核处理器。它有5级流水线和AXI4接口,比之前的NiosII处理器性能提升了5倍。但更重要的是,用户可以直接基于RISC-V生态进行软件开发,而不需要额外学习Nios了,这才是Nios V的最大意义。
结语
现在或许是从事FPGA行业最好的时代,不管是FPGA芯片本身,还是FPGA的应用,都有太多新的机会。我们完全不必纠结摩尔定律是否已经临近终结,只要需求还在,技术的进步就不会停息。
英特尔FPGA线上技术大会(12月7~10)正在进行,欢迎前往英特尔FPGA技术大会官网注册报名。