在日前召开的fpga领域的学术顶会--2019年“fpga国际研讨会”上,赛灵思发表了两篇长论文,详细介绍了赛灵思“自适应计算加速平台”acap的系统架构和技术细节。本文将对acap的主要架构创新进行深入解读,让各位先睹为快。
acap是赛灵思在2018年推出的新一代计算平台。在发布伊始,赛灵思新任掌门人victor peng就再三强调,acap并不是fpga,而是整合了硬件可编程逻辑单元、软件可编程处理器、以及软件可编程加速引擎的计算平台产品,是赛灵思“发明fpga以来最卓越的工程成就”,足可见这个产品系列的重要性。
与其说acap是某种具体的芯片产品,不如说它像fpga一样,代指一种芯片架构。而赛灵思这次发表的论文,主要介绍的是基于acap架构的首款产品,名为versal,并将基于台积电的7纳米工艺制造。相比传统的fpga架构,versal acap在系统架构、电路结构、互联方式等很多方面进行了大胆革新,这也是本文将要讨论的重点。
芯片架构
versal acap的芯片布局如下图所示。总体来看,它与传统fpga结构非常类似,主要包含可编程逻辑部分、高速i/o与收发器、嵌入式处理器、存储器控制等fpga的常见硬件资源与模块。
值得注意的是,acap架构与传统fpga有两点主要区别:
芯片顶端(北侧)包含了ai加速引擎阵列,它们主要用来加速机器学习和无线网络等应用中常见的数学计算。然而,关于ai引擎的具体结构,在这篇论文中并未提及。
在传统fpga片上互联技术的基础上,acap采用了固化的片上网络(noc),这主要是针对高带宽、高吞吐量的应用场景,如存储器控制和ai应用等,在上图中也可以清晰的看到noc与这些应用模块的紧密互联。
关于noc的具体技术细节,在本次会议有另外一篇论文进行详细阐述,见下图。本文将对其进行简单概述,并会在下篇文章中深入解析。
除noc以外,acap选择将很多常用的ip固化在芯片上,以提高性能、稳定性,并减少额外的可编程逻辑资源的使用。除了常见的pcie、ddr控制器、以太网mac之外,acap还选择将嵌入式处理器和芯片管理单元进行固化,这令人有些意外。
在论文中介绍,在亚马逊aws f1实例中使用的片上管理单元占据了芯片面积的很大部分,如下图所示,而这也是赛灵思选择在acap上对这类逻辑进行固化的主要原因。
在可编程芯片上固化逻辑其实是一把双刃剑,在提升性能和降低逻辑单元使用率的同时,牺牲的是被固化单元的灵活性。因此,往往只会选择固化已经由成熟标准的逻辑单元,比如上文提到的通信接口与内存控制器等。对于芯片管理单元,固化后是否仍能适用于不同的应用场景?是否比集成arm等硬核处理器更有效?这些问题就需要通过实际使用得到答案。
versal acap架构的一个主要的创新之处,就是采用了非常规整的可编程逻辑阵列和时钟域分布。老石之前曾介绍过一种名为“overlay”的fpga虚拟化技术,它的本质就是在fpga的硬件层之上,抽象出一层虚拟的overlay结构,如下图所示。overlay层基于cgra等规整的逻辑结构,对应用层非常友好,但对不规整的fpga底层架构而言,实现起来势必会造成资源的浪费和性能的损失。
acap架构采用了更加规整的可编程逻辑阵列,以及分布均匀的时钟域,理论上这是极其有用的创新,特别是对于布局布线后的设计而言。通过这种方式,使得ip接口可以复用,即把一个ip从一个位置挪到另一个位置时,不需要对整个设计重新编译,只需要单独处理修改的部分即可。
更重要的是,这使得用户可以重复使用已经完成布局布线的“半成品”或“模板”,只需要在事先保留的区域内加入新设计即可,这样可以极大的减少编译时间。这个创新与目前fpga已有的划分可编程区域等技术类似,但更进一步。只可惜,在这篇论文中没有给出这个创新的任何实例或数据,因此很难确定这项技术是否已经实现,还是仅仅停留在理论层面。
clb微结构
clb是可编程逻辑块的缩写,它包含了多个可编程逻辑单元及其互联。与传统fpga相比,versal acap对它的clb微结构进行了重大革新,用“翻天覆地”来形容也不为过。其中,最主要的架构变化有以下四点。
首先,clb的容量相较ultrascale fpga架构扩大了四倍,包含32个lut和64个寄存器,见下图。
这样做的主要目的,是为了减少全局布线资源的使用。acap为每个clb设置了单独的内部高速互联,与全局布线相比,这些内部互联更加快速,布线逻辑也更简单,从而减轻了全局布线的压力与拥挤。如下图所示,采用了大clb后,有18%的布线可以通过内部互联完成。而对于传统fpga,只有7%的布线能在clb内完成,其他都需要占用全局布线资源。
第二,每个查找表结构(lut)增加了一个额外的输出,这是一个重要的架构变化。传统fpga的lut结构为6输入、2输出,如下图所示,可以实现任意的6输入逻辑,或者两个5输入逻辑。当添加了一个新的输出o5_2之后,就可以实现两个独立的6输入逻辑功能。
这种结构的另外一个好处,是允许更多的逻辑功能进行合并,以减少lut的使用量。fpga设计工具会根据两个lut的距离,判断这两个lut里的逻辑能否进行合并。例如,与ultrascale架构相比,当两个lut之间的距离小于5个slice网格距离时,versal acap架构能多合并21.5%的逻辑功能,从而减少相应的硬件资源使用。
作为代价,在ultrascale架构中存在的wide function功能被移走。因此如果需要实现诸如32:1的选择器时,就可能会扩展到多个slice,对时序造成负面影响,并且需要额外的硬件资源支持。
第三,每个slice的进位链逻辑结构进行了彻底修改,如下图所示。事实上,一直是现代fpga标配的固化进位链被完全移除,取而代之的是使用lut中新增加的cascade_in和lut逻辑完成加法结构。
论文中对这部分的讨论过于简单,对这个重要的架构改变没有给出详细原因,对上图中versal进位链的具体实现结构也含糊不清。老石猜测,这个改变的主要原因还是由于新增加的第二个lut输出,如果继续保留进位链逻辑,会导致lut间延时过大,从而影响时序。但是,这种新的进位链结构是否会对算术运算的性能产生负面影响,赛灵思并未在论文中给出数据佐证。
第四,引入了名为“imux寄存器”的新结构。这种新寄存器架构很明显是用来对标英特尔的hyperflex架构。imux寄存器共有四种模式,如下图所示。
这种架构只在clb之前引入了用于优化时序、增加流水线的寄存器。同时,这些寄存器包含了复位、初始化、时钟使能等常见寄存器功能。这与hyperflex的海量寄存器架构有着明显不同,如下图。imux没有在全部布线资源上都设置寄存器,因此引入的额外延时会更小。但在深度流水线设计中,这种结构的绝对性能应该不如hyperflex架构。
上面的四种imux使用模式在本文中不再赘述,例如下图展示了其中的time borrowing、pipelining、以及二者结合的模式。但这几种方式与传统的流水线和retiming方式并没有本质区别。
关于imux寄存器架构,这篇论文最严重的问题在于实测数据和对比很少。这样的实验和论述,使得这部分内容更像一篇白皮书,而非高端学术论文。严谨的学术方法是需要兼顾可重复性和标准性,例如,选取一些标准的参考设计和benchmark,分别使用英特尔的hyperflex架构、赛灵思的ultrascale架构,以及这里提出的imux架构,进行实现,并测量这些在这些架构上分别能得到多快的运行频率。很显然,这篇论文在很多地方都存在这样的问题。
3d芯片制造技术ssit
acap采用了赛灵思的第四代硅片堆叠技术ssit。关于这个技术的细节,老石在之前的文章中详细介绍过。这个技术本质上是将多个小型硅片,放置在一个大的无源硅中介层上,然后通过硅通孔和芯片连线进行互联,从而组成一个大芯片。
这种技术非常适合在每代半导体工艺的发展早期,特别是制造大型硅片的良率较低的情况。另外,ssit的灵活性比较高,技术思路比较直接,发展至今已有四代,已经比较成熟。
不过,这种技术的主要问题非常明显,主要有以下几点:
当工艺成熟后,这种方式带来的良率提升就不甚明显,综合成本反而会上升。
将多枚硅片通过硅中间层组合,可能会带来明显的性能降低。这主要受制于硅片间的互联资源,以及互联导线的巨大延迟。
该技术会限制fpga配置的灵活性,因为它相当于人为的增加了多个设计区域和边界。这也对设计工具的优化能力造成了很大的挑战。
在这篇论文中,versal acap主要针对上面的第二和第三点进行了优化和改进。例如,在versal架构中,采用了更多的硅片间的互联通道(sll channel),如下图所示。同时,这些互联通道的传输延时也得到了进一步优化,相比传统连线的延时下降了30%。
片上网络noc
片上网络是acap的主要技术革新之一。对于诸如ddr、高速网络、pcie等高速接口与应用来说,通常有着很高的带宽要求。这一方面需要采用高位宽的总线,另一方面需要高速时钟。因此,传统的fpga设计方法都是通过对总线进行深度流水线来实现。但对于一个大型设计而言,这种方法会很快造成片上布线资源的拥挤。这就需要寻找有效的方法,同时解决高速数据传输和低拥堵布线两个问题。
acap采用了片上网络(network-on-chip,noc)技术应对上述问题。在传统的fpga布线资源之外,引入了noc网络,将需要进行高速数据传输的内容转化成基于数据包的形式,通过noc的交换机逻辑实现数据交换,如下图所示。与网络应用类似,这种片上网络也能对各类的传输进行服务质量控制(qos)。
这种方法最大的优点是在系统层面,将数据传输与数据计算进行了分离,从而在保证带宽的基础上,缓解了系统的布局布线压力。例如,数据计算可以在ai引擎或片上其他部分实现,而不需紧靠ddr控制器等高速接口。
不过,这种方法的主要问题是引入了额外的传输延时,这对于需要固定延时或者低延时的应用可能会有影响。在这篇论文中,并没有提及延时的数据。此外,片上网络的位宽是固定的,无法对应用进行优化,这也有可能对不同应用的系统性能造成负面影响。
结语
acap作为赛灵思重磅推出的下一代计算平台,从发布之初就备受瞩目。究竟acap是不是fpga,这个问题其实并不重要,重要的是acap的本质仍然是基于可编程逻辑阵列的异构计算芯片。与传统fpga架构相比,acap带来了诸多系统和微结构的换代和革新,这也让人们看到了业界为了延续摩尔定律的发展所做的不懈努力。
就这篇论文而言,虽然很多地方的学术严谨性有待提高,但瑕不掩瑜。作为第一篇完整的介绍versal acap架构细节的论文,它还是为我们带来了很多对acap新结构、新技术的详细阐述和讨论,也让我们得以一窥acap的技术细节。
原文标题:赛灵思计算平台acap技术细节全揭秘
文章出处:【微信公众号:fpga技术江湖】欢迎添加关注!文章转载请注明出处。
面向CEP分销中心的自动导引运输车传感器解决方案
比特币是否会成为主导性的全球货币
尼康对D850 1.20 版固件进行更新
横河电机DTSX分布式温度传感器产品特点
ADC究竟是什么
揭秘赛灵思计算平台ACAP技术细节
变电站投运前多间隔CT向量极性检查
四款基于MIPS CPU面向物联网应用的连接设备
搜狗地图正在通过AR导航技术对地图行业进行变革
面向2.4GHz和1GHz以下频段的ZigBee技术
借助5G技术实现煤炭智能化的全面感知和全面控制
隆利科技:Mini LED车载背光业务占比逐步提升
iRobotRoomba961扫地机器人评测 外观设计出众清扫功能高效卓异
同心同行,共赢威来,迈威通信荣膺阳光电源2022年度“优秀供应商”奖
变压器铁芯的接地及结构
数据、算法、算力成为数字经济时代的关键词
苹果春季发布会何时开?多款iPad蓄势待发 MacBook 会更新吗?
树莓派与蓝牙音箱怎么实现对接
福建移动联合中兴通讯对泉州申遗实现5G网络全覆盖
同时满足音频功能与播放时间的功能模块介绍