FPGA最有影响力的25个研究成果 – 系统架构篇
2020-03-02
来源:老石谈芯
很多世界顶尖的“建筑师”可能是你从未听说过的人,他们设计并创造出了很多你可能从未见过的神奇结构,比如在芯片内部的复杂体系。制造芯片的基本材料源于沙子,但芯片本身已经成为人们当代生活不可或缺的东西。如果你使用手机、电脑,或者通过互联网收发信息,那么你就无时无刻不在受益于这些建筑师们的伟大工作。
FPGA是芯片的其中一种,从上世纪八十年代诞生起,FPGA已经从简单的可编程门阵列,发展成为了有着大量可编程逻辑的复杂片上系统。除了硬件结构之外,FPGA的开发工具和应用场景也都取得了长足的进步和扩展,FPGA在整个半导体行业的重要性也在不断增强。FPGA芯片的演进,离不开这些“建筑师”的不断发明创造。
几年前,这些FPGA的顶级建筑师们选出了自上世纪九十年代起的20年以来FPGA领域最有影响力的25个研究成果。通过这些重要的成果,我们会理解FPGA是如何发展至今,并且知道FPGA技术未来将会发展向何处。
这25个研究成果按研究领域分为架构、EDA工具、电路、应用等大类,每项成果都由一名该领域的顶级学者做推介。接下来,我将在几篇文章里,分别介绍这这些改变了FPGA发展进程的重要研究成果。本文是系统架构篇。
(本文介绍的5项成果原文,均已上传至知识星球:老石谈芯进阶版,请在文末扫码进入星球查看)
01
FPGA与SIMD阵列的结合与统一
一句话总结:FPGA作为并行计算加速器的开山之作
英文名:Unifying FPGAs and SMID Arrays
作者:Michael Bolotski, Andre? DeHon, Thomas F. Knight, Jr.
发表时间:1994年
推介人:Jonathan Rose(多伦多大学)
Andre? DeHon(现任宾夕法尼亚大学教授)
这项成果在哲学的角度重新审视了FPGA这种计算“介质”,并将其与单指令多数据(SIMD)方法联系起来,以进行常规计算的并行加速。这个工作最早揭示了FPGA和SIMD这两种计算方法如何被看成是一个连续的整体,并在某种意义上将二者结合和统一。
这项成果提出了一种混合架构,名为“动态可编程门阵列(DPGA)”。在这种架构中,用来配置逻辑和布线的比特流(bitstream)位于特殊设计过的本地存储单元中,并会不断的快速变化。在DPGA里,有一个中央上下文标识器(central context identifier),负责决定从本地内存中加载哪些配置,如下图所示。
通过使用这种方法,使DPGA架构在某种程度上类似于SIMD。具体来说,如果这些本地内存里的内容相同,那么就会执行相同的“指令”;反之,如果本地内存中的内容不同,那么每个处理单元就会各自为战。这使得DPGA既可以并行处理数据,也可以串行处理数据。
此外,这项成果还对这种新的计算体系架构的成本和收益进行了深入的分析。
这项成果是关于DPGA的一系列富有影响力的成果的开山之作,也是第一批探讨FPGA编程里上下文的工作之一。虽然这种可编程架构并未成为业界主流,但它启发了诸多后续的高质量工作,并为来者奠定了坚实的理论基础。
02
一种高速的层次化同步可编程阵列
一句话总结:高性能、高时钟频率FPGA架构设计与时序优化算法的开创性探索
英文名:HSRA: High-Speed, Hierarchical Synchronous Reconfigurable Array
作者:William Tsu, Kip Macy, Atul Joshi, Randy Huang, Tony Tung, Omid Rowhani, Varghese George, John Wawrzynek, Andre? DeHon
发表时间:1999年
推介人:Carl Ebeling(华盛顿大学)
这项工作专注于解答这样的一个问题:是否有可能设计一个FPGA架构,使其能和处理器或ASIC的时钟频率一较高下?
通常情况下,FPGA比CPU或ASIC的时钟频率要慢5到10倍,这主要受制于于FPGA内部的逻辑延时与互连延时。而这项工作则希望通过结合FPGA架构创新和CAD工具创新两方面,使得FPGA的性能上升到一个新的台阶。
总体而言,这项工作采用的方法是根据特定的时钟频率设计系统架构。事实上,这与传统的FPGA设计方法完全相左。然而通过这种方式,设计者可以精确的定义一个时钟周期中逻辑层的数量、互联和距离等,这样可以得到一个包括可编程互联在内的高度流水化的结构。
HSRA最新颖的地方在于它的树形分层互联结构,如下图所示。这种架构允许连接通过点对点的方式完成,因此就可以得到任意两点间的距离和延时。利用这些信息,就可以从时序的角度解决很多布局和布线问题。
另一方面,并不是所有设计都可以按照HSRA架构进行深度流水线优化。为了解决这个问题,这项工作创造性的采用了名为C-slowing的方法,通过在电路中引入额外的并行性,来处理和补偿当设计中包含较大反馈时带来的延时。C-slowing也在后来逐渐成为了retiming的主流方法之一。
综上所述,这项工作在FPGA体系结构这个领域中开拓出了一个新的方向,那就是针对时序和高性能的FPGA架构设计。HSRA架构本身由于与传统FPGA的差别太大,从而没有在商业化的道路上走远,但这个工作中的很多思路和方法,都对现代FPGA架构的演进产生了深远的影响。
03
Virtex-II FPGA的动态功耗
一句话总结:现代FPGA动态功耗分析、建模与优化方法的开山之作
英文名:Dynamic Power Consumption in Virtex-II FPGA Family
作者:Li Shang, Alireza Kaviani, Kusuma Bathala
发表时间:2002年
推介人:Russ Tessier(马萨诸塞大学)
在这项工作之前,很少有研究专门讨论FPGA的功耗问题。因此,这项成果为研究者深入理解FPGA的功耗、并进行功耗优化迈出了重要的第一步。
关于功耗,业界一直假设互联功耗是FPGA动态功耗的主要来源。这项工作通过实验证明了这一假设是正确的。在对动态功耗的分析过程中,这项工作研究了FPGA中不同结构对功耗的影响,从而为后来针对功耗优化的CAD算法的出现提供了理论基础。同时,通过仿真和物理实测,这项成果提出的功耗分布结果是非常可信的,见下图。
业界对于FPGA功耗优化的兴趣始于大约十年之前,在当时FPGA的功耗优化刚刚成为仅次于面积和延时优化之外的另一个主要的优化方向。这项工作不仅提供了在FPGA上动态功耗的分布结果,还为今后十年间的功耗分析和优化算法提供了详细的方法论支持。
这项工作还是一个工业界与学术界紧密合作的典型代表。在这项工作中,赛灵思提供了FPGA器件的模型和数据集,并提供了先进的动态功耗分析方法和技术。由于学术界对Virtex II FPGA架构比较熟悉,因此不需要FPGA厂商公布额外的机密信息,使得这项工作使用的方法论有着很强的通用性。
04
Stratix FPGA的布线和逻辑架构
一句话总结:奠定五代Stratix核心架构的基石之作
英文名:The Stratix Routing and Logic Architecture
作者:David Lewis, Vaughn Betz, David Jefferson, Andy Lee, Chris Lane, Paul Leventis, Sandy Marquardt, Cameron McClintock, Bruce Pedersen, Giles Powell, Srinivas Reddy, Chris Wysocki, Richard Cliff, Jonathan Rose
发表时间:2003年
推介人:Herman Schmit(卡耐基梅隆大学)
Vaughn Betz(现任多伦多大学教授)
在过去的很多年中,由Jonathan Rose教授领导的多伦多大学团队构建了名为VPR的FPGA设计工具套件,并用来设计和探索简化过的FPGA系统架构和微架构。VPR包含FPGA后端设计的很多算法和流程,包含逻辑封装、布局和布线等等,这使得很多的FPGA架构问题都可以借助VPR进行量化分析。而这也使得多伦多大学成为了全球最重要的FPGA学术研究中心之一。
在1998年,Jonathan Rose教授创办了一个名为RightTrack CAD的初创公司,其主旨就是将VPR进行商业转化。与此同时,Altera也在努力改进他们的FPGA架构,以应对赛灵思成功的Virtex系列带来的竞争。在2000年,Altera收购了RightTrack,并开发了Altera FPGA建模工具包(Modelling Toolkit),用来优化他们的第一代Stratix FPGA架构。
这项成果就详细介绍了Stratix架构的技术细节,见下图。更重要的是,它系统阐述了架构师在设计Stratix时所作决策的具体过程。这项工作证明了VPR所采用的定量分析方法同样适用于分析实际的性能和设计指标,如FPGA的物理面积和关键路径延时等。这些方法和工具已经被用于至少5代Stratix FPGA的设计。而这项工作也成功的展示了学术研究与工业界技术发展之间的紧密联系与合作。
05
量化FPGA与ASIC的区别
一句话总结:FPGA基准测试的标杆之作
英文名:Measuring the Gap between FPGAs and ASICs
作者:Ian Kuon, Jonathan Rose
发表年份:2006
推介人:Herman Schmit(卡耐基梅隆大学)
Jonathan Rose(现任多伦多大学教授)
自发表以来,这项工作已被引用超过1400次。它的最主要贡献之一,就是对可编程性的成本进行了量化。这项工作表明,FPGA的核心面积要比一个标准的ASIC单元大40倍。对于所有致力于提升和改进FPGA架构的工作来说,这就是它们最主要的动力之一。
在这项工作之前,FPGA与ASIC之间大多数的比较都基于小型电路,并且倾向于比较FPGA与掩膜可编程门阵列(mask-programmable gate arrays)。在这种情况下,FPGA只消耗大概10倍的额外面积。然而,到了2006年,ASIC CAD工具已经得到了长足的发展和进步。基于可综合的逻辑单元的ASIC设计已经成为了业界的常见选择。
从客观上讲,这里所说的40倍面积大小实际上不够合理,因为这里只考虑了FPGA核心区域的面积,同时很多逻辑和算术运算单元都没有使用固化的乘法器帮助实现。在这项成果中,它根据电路中是否包含算术运算、内存单元、结构化逻辑以及寄存器,将待研究的基准电路集分成了四大类,见下图。在包含逻辑单元和算术运算单元的电路设计中,如果FPGA架构里包含固化的乘法器,那么相比ASIC而言FPGA的面积会大28倍。
这项工作更重要的贡献是向人们揭示了FPGA的架构特性(如固化的内存单元和DSP等)与基准测试结果的相关性。同时,这项工作深入分析了FPGA里固化的逻辑结构对性能和成本的影响与关联,而这也直接对现代FPGA的架构设计产生了深远影响。在现代FPGA中,关于将哪些IP或逻辑电路采用硬核的方式实现已经成为了影响FPGA发展的重要命题。这与诸如LUT大小、布线拓扑结构等传统FPGA架构问题同样重要。
在学术界,像这样的基准测试工作总是充满争议的。因为它们要么在比较时采用了不同的衡量标准,要么对比较的标准进行了抽象,使得结果不具有扩展性和通用性。然而,这项成果为这类工作树立了典范,它展示了如何客观的做比较,以及如何细致的描述比较的具体细节,这样使得研究者可以从结果中得到自己的结论,并将这种思想应用到今后的研究工作中。
结语
这五个FPGA系统架构的重要工作,有的奠定了现代商用FPGA的基础架构,如赛灵思的Virtex和Altera的Stratix,有的开创了FPGA作为并行硬件加速器的重要使用方向,有的统一了FPGA架构基准测试的规范和标准。更重要的是,这些工作所采用的方法论、思维方式、前瞻性与实用性的结合、以及严谨的治学态度,都为之后的学术和工业研究树立了最高的典范。