比较Altera时期的顶级FPGA系列Stratix、特殊是2016年推出的Stratix10 FPGA,Agilex在FPGA架构层面做出了诸多根本性的改变。总结起来紧张有以下六个方面:
全新的芯片布局ALM微架构的优化设计重新设计的布线架构新一代HyperFlex寄存器构造多样的时序优化方法更加灵巧的DSP微架构有了这些新型架构的加持,Agilex比较Stratix10 FPGA取得了超过40%的性能提升。同时,它在设计的灵巧性和稳定性等方面也取得了可不雅观的提升。在接下来的文章中,老石将分别对这几点架构创新做深入解析。

这篇论文的全文,已上传至知识星球“老石谈芯进阶版”,请于文末扫码进入星球查看。

Agilex FPGA简介
在之前的文章《英特尔10纳米Agilex FPGA核心技能剖析》中,老石曾对Agilex FPGA在系统层面的主要创新做过深度梳理。与进化多年的Stratix、Arria、Cyclone、Max等FPGA产品系列比较,Agiliex是英特尔收购Altera后推出的第一个全新的高端FPGA系列。正因如此,Agilex也被英特尔寄予了很高的期望。
Agilex这个名称源于Agile(敏捷)和Flexible(灵巧)的合二为一,这两个特点也是当代FPGA技能最为核心的要素。作为新一代旗舰FPGA,Agilex上自然也装备了很多英特尔专属的“黑科技”。在半导体工艺上,Agilex是首个利用英特尔10纳米量产工艺的FPGA产品,它基于第三代FinFET晶体管技能进行制造,并在物理实现时对FPGA架构进行了针对性优化。
在系统层面,Agilex引入了对UPI、CXL以及PCIe Gen4/5的硬核支持。CXL全称是Compute Express Link,它是英特尔发起的一个缓存同等性标准。CXL的紧张目的在于明确定义硬件加速器与处理器之间的互联标准。CXL在2019年3月提出,它的紧张创始成员见下图。从中可以看出,CXL的紧张发起者中除了英特尔之外,还有有四个互联网公司、两个做事器设备制造商,以及两个网络设备制造商。这也清晰的呈现出CXL的目标运用领域:网络数据中央、通信根本举动步伐、云打算与云做事等等。而这些领域也正是当前FPGA大展技艺的平台。关于CXL的更多先容,可以参考之前的文章。
接下来,老石就对Agilex FPGA在架构方面的紧张升级做详细先容。
全新的芯片布局
比较Stratix10 FPGA,Agilex在芯片布局和微架构设计上做出了多个主要改变。Agilex的芯片布局如下图所示。与现有的英特尔FPGA相似,Agilex也利用了EMIB(嵌入式多管芯互联桥接)技能,用来供应多个异构硅片之间的高速互联,特殊是可编程逻辑部分与不同速率的收发器Tile之间的连接。不才图中可以看到,收发器固定位于芯片的东西两侧,而其他的非可编程逻辑构造,诸如通用IO接口、存储器接口、嵌入式SRAM、4核ARM CPU等等,都将固定位于芯片的南北两侧。
Agilex在芯片布局上的一个重大变革,便是将原来位于芯片中间的很多通用I/O、存储器I/O、硬核处理器等部分移到了芯片两端。
在英特尔之前的几代FPGA中,例如Arria10和Stratix10 FPGA中,可编程逻辑阵列、I/O单元、存储器、DSP等逻辑构造都是按列间隔排列,如下图所示。事实上,这也是包括赛灵思在内的其他FPGA厂商所常用的芯片布局方法。
Arria10 FPGA的芯片布局
这种间隔排列的构造最大的优点在于,它能简化FPGA设计过程中的布局方案,特殊是与I/O干系的布局。这是由于每个逻辑单元与I/O的间隔近似,以是在布局和放置时有着比较高的灵巧性。
然而,这种构造最突出的缺陷是,它相称于人为的将可编程逻辑阵列分成了很多区域,这就极大的增加了跨区域的布线延时。同时,对付高速且大型的设计而言,这种构造很有可能造成局部的布局拥塞。相信有履历的FPGA工程师在很多实际项目中都碰着过这样的问题,那便是在一个设计中,可能有很多区域的设计拥堵严重,而其他区域却有着大量可用资源。这一问题的根源之一便是由于这种FPGA构造所致。
在Agilex里,这些I/O被移出了可编程逻辑阵列,并挪到了芯片的高下两侧,从而形成了一个更加规整的可编程阵列布局,如下图所示。由于肃清了I/O单元对逻辑阵列带来的区隔,系统性能会得到提升,也会极大简化时序打算,并提升布局与放置的灵巧性。
ALM微架构的设计优化
在微架构方面,Agilex对个中的ALM(Adaptive Logic Module)进行了设计优化,以进一步降落其传输延时。
ALM是FPGA的基本可编程单元,Stratix10 的ALM构造如下图所示。它紧张包含一个6输入LUT,一个加法器进位链,以及4个输出寄存器。多个ALM可以组成更大的可编程阵列,名为LAB(Logic Array Block)。
Stratix 10 FPGA的ALM构造
和Stratix10比较,Agilex对ALM做了不少架构升级,如下图所示。个中,增加了两个LUT的快速输出端口,使得LUT的输出可以直连HyperFlex寄存器,而无需通过ALM内部的寄存器中转。这显然是针对利用HyperFlex对关键路径进行retiming的运用处景。同时,ALM内部的寄存器灵巧性得到了极大增强,可以看到在Agilex的ALM里,每个寄存器的输入都增加了一个4输入MUX,同时寄存器可以通过两个独立的时钟进行掌握。
Agilex FPGA的ALM构造
除了ALM之外,Agilex还特殊增加了片上内存MLAB的逻辑密度。与Stratix10比较,单位面积内Agilex有着双倍的MLAB密度,而且50%的LAB可以配置成存储器模式。这个优化很明显是针对高带宽需求的运用领域,如AI干系的打算加速等。
重新设计的布线架构
Agilex对FPGA的布线单元进行了重新设计。不才图中可以看到,每个交流节点都只连接一个逻辑功能单元(可以是LAB、RAM、DSP等),但可以连接多个其他的布线单元或者其他的交流节点。
比较之下,在之前的FPGA架构中,常日情形下一个交流节点会和旁边两侧的两个逻辑功能单元进行连接。Agilex这样的简化设计使得它的整体布线架构更加简洁,也在很大程度上减少了交流节点MUX的输入,从而在担保布线灵巧性的根本上,有效的降落容抗、并提升性能。事实上,在之前的研究中就表明,FPGA的布线节点并不须要保持全连接,这在之前的文章中有过详细解析。而Agilex则更进一步,直接做成了1对1连接,相信这也对FPGA设计工具和布局布线算法提出了更高的哀求。
此外,Agilex对延时的同一性做了针对性的优化。在之前的FPGA中,由于存在不可避免的工艺和时序变革(variation),会特意对芯片上的各种硬件资源做差异化处理。也便是说,同样的硬件资源可能有着不同的延时分布。从理论上讲,FPGA设计工具会避免将慢速资源分配到关键路径上。但在实际运用中,这并非总是可行的。例如,在高速设计或深度流水线设计中,可能存在多条near critical path,这就给资源分配造成很大包袱和限定。
在Agilex中,利用了基本同化的硬件资源,以及对应的布线方法,从而使得各个硬件资源的延时趋于近似。从下图中可以清楚的看到,比较Stratix10 FPGA,Agilex的延时分布非常平坦。这样就简化告终构布线工具对资源分配的过程,从而提升了开拓效率和系统性能。
新一代HyperFlex寄存器构造
Stratix10 FPGA中首次引入了HyperFlex架构。它的紧张思想便是在FPGA的布线网络上,加入很多名为Hyper-Register的小型寄存器,这样可以把原来比较长的时序路径分割成多个较短的路径,从而提升FPGA的时钟频率。
但是,空想很丰满,现实很骨感。HyperFlex这样的设计有着很好的初衷,但在实际运用中还是存在着很多的问题。比如,很多情形下并不会用到所有的hyper-register,这就须要每个寄存器都配备一个2:1选择器用来选通。然而这样的架构反而会带来较大的额外延时。此外,每个Hyper-Register并非由边沿驱动的“寄存器”(flip-flop),而是由脉冲驱动的“锁存器”(latch),这就使得它的时序特性较差,并且非常随意马虎受工艺变革(process variation)的影响。
值得把稳的是,在赛灵思推出的ACAP中,也采取了类似的设计理念。ACAP引入了名为“Imux寄存器”的新构造,并且对上述问题进行了针对性的改进。有关ACAP的详细技能解读,请参考这篇文章《赛灵思下一代打算平台ACAP技能细节全揭秘》。
显然,英特尔也意识到了这些问题,并在Agilex FPGA中采取了“第二代”HyperFlex架构,并对上面的问题进行了大幅改进。新一代Hyper-Register的构造如下图所示,可以看到它把锁存器更换成了寄存器,并对驱动节点进行了重新设计。同时,Agilex在布线网络中移除了近三分之二的Hyper-Register,这无论对付面积、功耗、或是设计工具的优化来说,都是极为有利的。
多样的时序优化方法
Agilex紧张采取了三种时序优化方法:retiming、clock skewing和time borrowing。例如,retiming可以在不改变逻辑功能的条件下,重新分配寄存器在延时路径中的位置,从而实现“取长补短”,降落整体的路径延时。这实际上与所谓的“木桶理论”类似,而retiming便是将其他更长的木板拆开,并将短板补齐,如下图所示。由于篇幅所限,有关clock skewing和timing borrowing的详细内容在本文不再详述,老石之后会在知识星球和微博里进一步解读。
更加灵巧的DSP微架构
之前的文章曾经多次先容过,FPGA在人工智能运用中的最大上风之一便是可以采取可变精度的字长表示和数学运算,从而带来巨大的性能提升。比较Stratix10 FPGA,Agilex的DSP单元增加了对FP16、FP19、BFLOAT16的支持,同时也保留了对FP32、INT9等多种数据表达办法的支持,这极大提升了DSP的配置灵巧性,使其更加适用于AI干系的运用。
Agilex 的DSP逻辑架构如下图所示,它可以配置成多种构造,同时也可以在水平方向上进行扩展,从而支持向量和矩阵操作。
结语
下图展示了Agilex的工程样片与Stratix10的基准测试比较结果。可以看到,Agilex可以取得均匀41%的性能提升。在这些基准测试的设计中,最高时钟频率的均匀值是566MHz,个中最小284MHz,最高的时钟频率达到了951MHz!比较于传统FPGA设计的300MHz旁边的时钟频率,这组数据也标志着FPGA的时钟频率提升到了一个全新的高度。同时该当把稳到,只管Agilex利用了10纳米工艺,但比较Stratix10而言,Agilex利用了更低的电压以降落功耗。在这个背景下,这些频率的提升大部分都归功于Agilex的架构创新。
这次揭橥的Agilex论文很好的先容了英特尔新旗舰FPGA的主要架构创新,让人对Agilex量产并交付后的表现更加的期待。然而,这篇论文并没有过多先容Quartus工具为了这些架构创新而做的改进。在Agilex发布之初,英特尔就宣告它将成为首款支持oneAPI的FPGA产品。那么,Agilex实际开拓的灵巧性、编译效率、实际性能、以及如何利用oneAPI对FPGA进行编程和开拓,也都值得我们连续关注。
(注:本文仅代表作者个人不雅观点,与任职单位无关。)
免责声明:本文由作者原创。文章内容系作者个人不雅观点,半导体行业不雅观察转载仅为了传达一种不同的不雅观点,不代表半导体行业不雅观察对该不雅观点赞许或支持,如果有任何异议,欢迎联系半导体行业不雅观察。
本日是《半导体行业不雅观察》为您分享的第2266期内容,欢迎关注。
★CIS会迎来拐点吗?
★为什么我看中的人都想去华为海思?
★中国存储家当的另一壁
存储|传感器|IGBT|ARM|FPGA|复兴|苹果|半导体股价|IP










