很多世界頂尖的“建筑師”可能是你從未聽說過的人,,他們設(shè)計(jì)并創(chuàng)造出了很多你可能從未見過的神奇結(jié)構(gòu),,比如在芯片內(nèi)部的復(fù)雜體系,。制造芯片的基本材料源于沙子,但芯片本身已經(jīng)成為人們當(dāng)代生活不可或缺的東西。如果你使用手機(jī),、電腦,,或者通過互聯(lián)網(wǎng)收發(fā)信息,,那么你就無時(shí)無刻不在受益于這些建筑師們的偉大工作。
FPGA是芯片的其中一種,,從上世紀(jì)八十年代誕生起,,F(xiàn)PGA已經(jīng)從簡單的可編程門陣列,發(fā)展成為了有著大量可編程邏輯的復(fù)雜片上系統(tǒng),。除了硬件結(jié)構(gòu)之外,,F(xiàn)PGA的開發(fā)工具和應(yīng)用場景也都取得了長足的進(jìn)步和擴(kuò)展,,F(xiàn)PGA在整個(gè)半導(dǎo)體行業(yè)的重要性也在不斷增強(qiáng)。FPGA芯片的演進(jìn),離不開這些“建筑師”的不斷發(fā)明創(chuàng)造,。
幾年前,,這些FPGA的頂級(jí)建筑師們選出了自上世紀(jì)九十年代起的20年以來FPGA領(lǐng)域最有影響力的25個(gè)研究成果,。通過這些重要的成果,,我們會(huì)理解FPGA是如何發(fā)展至今,并且知道FPGA技術(shù)未來將會(huì)發(fā)展向何處,。
這25個(gè)研究成果按研究領(lǐng)域分為架構(gòu),、EDA工具、電路,、應(yīng)用等大類,,每項(xiàng)成果都由一名該領(lǐng)域的頂級(jí)學(xué)者做推介。接下來,,我將在幾篇文章里,,分別介紹這這些改變了FPGA發(fā)展進(jìn)程的重要研究成果。本文是系統(tǒng)架構(gòu)篇,。
?。ū疚慕榻B的5項(xiàng)成果原文,均已上傳至知識(shí)星球:老石談芯進(jìn)階版,,請?jiān)谖哪叽a進(jìn)入星球查看)
01
FPGA與SIMD陣列的結(jié)合與統(tǒng)一
一句話總結(jié):FPGA作為并行計(jì)算加速器的開山之作
英文名:Unifying FPGAs and SMID Arrays
作者:Michael Bolotski, Andre? DeHon, Thomas F. Knight, Jr.
發(fā)表時(shí)間:1994年
推介人:Jonathan Rose(多倫多大學(xué))
Andre? DeHon(現(xiàn)任賓夕法尼亞大學(xué)教授)
這項(xiàng)成果在哲學(xué)的角度重新審視了FPGA這種計(jì)算“介質(zhì)”,,并將其與單指令多數(shù)據(jù)(SIMD)方法聯(lián)系起來,以進(jìn)行常規(guī)計(jì)算的并行加速,。這個(gè)工作最早揭示了FPGA和SIMD這兩種計(jì)算方法如何被看成是一個(gè)連續(xù)的整體,,并在某種意義上將二者結(jié)合和統(tǒng)一,。
這項(xiàng)成果提出了一種混合架構(gòu),,名為“動(dòng)態(tài)可編程門陣列(DPGA)”。在這種架構(gòu)中,,用來配置邏輯和布線的比特流(bitstream)位于特殊設(shè)計(jì)過的本地存儲(chǔ)單元中,,并會(huì)不斷的快速變化,。在DPGA里,有一個(gè)中央上下文標(biāo)識(shí)器(central context identifier),,負(fù)責(zé)決定從本地內(nèi)存中加載哪些配置,,如下圖所示。
通過使用這種方法,,使DPGA架構(gòu)在某種程度上類似于SIMD,。具體來說,如果這些本地內(nèi)存里的內(nèi)容相同,,那么就會(huì)執(zhí)行相同的“指令”,;反之,如果本地內(nèi)存中的內(nèi)容不同,,那么每個(gè)處理單元就會(huì)各自為戰(zhàn),。這使得DPGA既可以并行處理數(shù)據(jù),也可以串行處理數(shù)據(jù),。
此外,,這項(xiàng)成果還對這種新的計(jì)算體系架構(gòu)的成本和收益進(jìn)行了深入的分析。
這項(xiàng)成果是關(guān)于DPGA的一系列富有影響力的成果的開山之作,,也是第一批探討FPGA編程里上下文的工作之一,。雖然這種可編程架構(gòu)并未成為業(yè)界主流,但它啟發(fā)了諸多后續(xù)的高質(zhì)量工作,,并為來者奠定了堅(jiān)實(shí)的理論基礎(chǔ),。
02
一種高速的層次化同步可編程陣列
一句話總結(jié):高性能、高時(shí)鐘頻率FPGA架構(gòu)設(shè)計(jì)與時(shí)序優(yōu)化算法的開創(chuàng)性探索
英文名: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
發(fā)表時(shí)間:1999年
推介人:Carl Ebeling(華盛頓大學(xué))
這項(xiàng)工作專注于解答這樣的一個(gè)問題:是否有可能設(shè)計(jì)一個(gè)FPGA架構(gòu),,使其能和處理器或ASIC的時(shí)鐘頻率一較高下,?
通常情況下,F(xiàn)PGA比CPU或ASIC的時(shí)鐘頻率要慢5到10倍,,這主要受制于于FPGA內(nèi)部的邏輯延時(shí)與互連延時(shí),。而這項(xiàng)工作則希望通過結(jié)合FPGA架構(gòu)創(chuàng)新和CAD工具創(chuàng)新兩方面,使得FPGA的性能上升到一個(gè)新的臺(tái)階,。
總體而言,,這項(xiàng)工作采用的方法是根據(jù)特定的時(shí)鐘頻率設(shè)計(jì)系統(tǒng)架構(gòu)。事實(shí)上,,這與傳統(tǒng)的FPGA設(shè)計(jì)方法完全相左,。然而通過這種方式,設(shè)計(jì)者可以精確的定義一個(gè)時(shí)鐘周期中邏輯層的數(shù)量,、互聯(lián)和距離等,,這樣可以得到一個(gè)包括可編程互聯(lián)在內(nèi)的高度流水化的結(jié)構(gòu)。
HSRA最新穎的地方在于它的樹形分層互聯(lián)結(jié)構(gòu),,如下圖所示,。這種架構(gòu)允許連接通過點(diǎn)對點(diǎn)的方式完成,,因此就可以得到任意兩點(diǎn)間的距離和延時(shí)。利用這些信息,,就可以從時(shí)序的角度解決很多布局和布線問題,。
另一方面,并不是所有設(shè)計(jì)都可以按照HSRA架構(gòu)進(jìn)行深度流水線優(yōu)化,。為了解決這個(gè)問題,,這項(xiàng)工作創(chuàng)造性的采用了名為C-slowing的方法,通過在電路中引入額外的并行性,,來處理和補(bǔ)償當(dāng)設(shè)計(jì)中包含較大反饋時(shí)帶來的延時(shí),。C-slowing也在后來逐漸成為了retiming的主流方法之一。
綜上所述,,這項(xiàng)工作在FPGA體系結(jié)構(gòu)這個(gè)領(lǐng)域中開拓出了一個(gè)新的方向,,那就是針對時(shí)序和高性能的FPGA架構(gòu)設(shè)計(jì)。HSRA架構(gòu)本身由于與傳統(tǒng)FPGA的差別太大,,從而沒有在商業(yè)化的道路上走遠(yuǎn),,但這個(gè)工作中的很多思路和方法,都對現(xiàn)代FPGA架構(gòu)的演進(jìn)產(chǎn)生了深遠(yuǎn)的影響,。
03
Virtex-II FPGA的動(dòng)態(tài)功耗
一句話總結(jié):現(xiàn)代FPGA動(dòng)態(tài)功耗分析,、建模與優(yōu)化方法的開山之作
英文名:Dynamic Power Consumption in Virtex-II FPGA Family
作者:Li Shang, Alireza Kaviani, Kusuma Bathala
發(fā)表時(shí)間:2002年
推介人:Russ Tessier(馬薩諸塞大學(xué))
在這項(xiàng)工作之前,很少有研究專門討論FPGA的功耗問題,。因此,,這項(xiàng)成果為研究者深入理解FPGA的功耗、并進(jìn)行功耗優(yōu)化邁出了重要的第一步,。
關(guān)于功耗,,業(yè)界一直假設(shè)互聯(lián)功耗是FPGA動(dòng)態(tài)功耗的主要來源。這項(xiàng)工作通過實(shí)驗(yàn)證明了這一假設(shè)是正確的,。在對動(dòng)態(tài)功耗的分析過程中,,這項(xiàng)工作研究了FPGA中不同結(jié)構(gòu)對功耗的影響,從而為后來針對功耗優(yōu)化的CAD算法的出現(xiàn)提供了理論基礎(chǔ),。同時(shí),,通過仿真和物理實(shí)測,這項(xiàng)成果提出的功耗分布結(jié)果是非??尚诺?,見下圖。
業(yè)界對于FPGA功耗優(yōu)化的興趣始于大約十年之前,,在當(dāng)時(shí)FPGA的功耗優(yōu)化剛剛成為僅次于面積和延時(shí)優(yōu)化之外的另一個(gè)主要的優(yōu)化方向,。這項(xiàng)工作不僅提供了在FPGA上動(dòng)態(tài)功耗的分布結(jié)果,還為今后十年間的功耗分析和優(yōu)化算法提供了詳細(xì)的方法論支持,。
這項(xiàng)工作還是一個(gè)工業(yè)界與學(xué)術(shù)界緊密合作的典型代表,。在這項(xiàng)工作中,賽靈思提供了FPGA器件的模型和數(shù)據(jù)集,,并提供了先進(jìn)的動(dòng)態(tài)功耗分析方法和技術(shù),。由于學(xué)術(shù)界對Virtex II FPGA架構(gòu)比較熟悉,因此不需要FPGA廠商公布額外的機(jī)密信息,,使得這項(xiàng)工作使用的方法論有著很強(qiáng)的通用性,。
04
Stratix FPGA的布線和邏輯架構(gòu)
一句話總結(jié):奠定五代Stratix核心架構(gòu)的基石之作
英文名: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
發(fā)表時(shí)間:2003年
推介人:Herman Schmit(卡耐基梅隆大學(xué))
Vaughn Betz(現(xiàn)任多倫多大學(xué)教授)
在過去的很多年中,由Jonathan Rose教授領(lǐng)導(dǎo)的多倫多大學(xué)團(tuán)隊(duì)構(gòu)建了名為VPR的FPGA設(shè)計(jì)工具套件,,并用來設(shè)計(jì)和探索簡化過的FPGA系統(tǒng)架構(gòu)和微架構(gòu),。VPR包含F(xiàn)PGA后端設(shè)計(jì)的很多算法和流程,包含邏輯封裝,、布局和布線等等,,這使得很多的FPGA架構(gòu)問題都可以借助VPR進(jìn)行量化分析。而這也使得多倫多大學(xué)成為了全球最重要的FPGA學(xué)術(shù)研究中心之一,。
在1998年,,Jonathan Rose教授創(chuàng)辦了一個(gè)名為RightTrack CAD的初創(chuàng)公司,其主旨就是將VPR進(jìn)行商業(yè)轉(zhuǎn)化,。與此同時(shí),,Altera也在努力改進(jìn)他們的FPGA架構(gòu),以應(yīng)對賽靈思成功的Virtex系列帶來的競爭,。在2000年,,Altera收購了RightTrack,并開發(fā)了Altera FPGA建模工具包(Modelling Toolkit),,用來優(yōu)化他們的第一代Stratix FPGA架構(gòu),。
這項(xiàng)成果就詳細(xì)介紹了Stratix架構(gòu)的技術(shù)細(xì)節(jié),見下圖,。更重要的是,,它系統(tǒng)闡述了架構(gòu)師在設(shè)計(jì)Stratix時(shí)所作決策的具體過程。這項(xiàng)工作證明了VPR所采用的定量分析方法同樣適用于分析實(shí)際的性能和設(shè)計(jì)指標(biāo),,如FPGA的物理面積和關(guān)鍵路徑延時(shí)等,。這些方法和工具已經(jīng)被用于至少5代Stratix FPGA的設(shè)計(jì)。而這項(xiàng)工作也成功的展示了學(xué)術(shù)研究與工業(yè)界技術(shù)發(fā)展之間的緊密聯(lián)系與合作,。
05
量化FPGA與ASIC的區(qū)別
一句話總結(jié):FPGA基準(zhǔn)測試的標(biāo)桿之作
英文名:Measuring the Gap between FPGAs and ASICs
作者:Ian Kuon, Jonathan Rose
發(fā)表年份:2006
推介人:Herman Schmit(卡耐基梅隆大學(xué))
Jonathan Rose(現(xiàn)任多倫多大學(xué)教授)
自發(fā)表以來,,這項(xiàng)工作已被引用超過1400次。它的最主要貢獻(xiàn)之一,,就是對可編程性的成本進(jìn)行了量化,。這項(xiàng)工作表明,F(xiàn)PGA的核心面積要比一個(gè)標(biāo)準(zhǔn)的ASIC單元大40倍,。對于所有致力于提升和改進(jìn)FPGA架構(gòu)的工作來說,,這就是它們最主要的動(dòng)力之一,。
在這項(xiàng)工作之前,F(xiàn)PGA與ASIC之間大多數(shù)的比較都基于小型電路,,并且傾向于比較FPGA與掩膜可編程門陣列(mask-programmable gate arrays),。在這種情況下,F(xiàn)PGA只消耗大概10倍的額外面積,。然而,,到了2006年,ASIC CAD工具已經(jīng)得到了長足的發(fā)展和進(jìn)步,?;诳删C合的邏輯單元的ASIC設(shè)計(jì)已經(jīng)成為了業(yè)界的常見選擇。
從客觀上講,,這里所說的40倍面積大小實(shí)際上不夠合理,,因?yàn)檫@里只考慮了FPGA核心區(qū)域的面積,同時(shí)很多邏輯和算術(shù)運(yùn)算單元都沒有使用固化的乘法器幫助實(shí)現(xiàn),。在這項(xiàng)成果中,,它根據(jù)電路中是否包含算術(shù)運(yùn)算、內(nèi)存單元,、結(jié)構(gòu)化邏輯以及寄存器,,將待研究的基準(zhǔn)電路集分成了四大類,見下圖,。在包含邏輯單元和算術(shù)運(yùn)算單元的電路設(shè)計(jì)中,,如果FPGA架構(gòu)里包含固化的乘法器,那么相比ASIC而言FPGA的面積會(huì)大28倍,。
這項(xiàng)工作更重要的貢獻(xiàn)是向人們揭示了FPGA的架構(gòu)特性(如固化的內(nèi)存單元和DSP等)與基準(zhǔn)測試結(jié)果的相關(guān)性,。同時(shí),這項(xiàng)工作深入分析了FPGA里固化的邏輯結(jié)構(gòu)對性能和成本的影響與關(guān)聯(lián),,而這也直接對現(xiàn)代FPGA的架構(gòu)設(shè)計(jì)產(chǎn)生了深遠(yuǎn)影響,。在現(xiàn)代FPGA中,關(guān)于將哪些IP或邏輯電路采用硬核的方式實(shí)現(xiàn)已經(jīng)成為了影響FPGA發(fā)展的重要命題,。這與諸如LUT大小,、布線拓?fù)浣Y(jié)構(gòu)等傳統(tǒng)FPGA架構(gòu)問題同樣重要。
在學(xué)術(shù)界,,像這樣的基準(zhǔn)測試工作總是充滿爭議的,。因?yàn)樗鼈円丛诒容^時(shí)采用了不同的衡量標(biāo)準(zhǔn),要么對比較的標(biāo)準(zhǔn)進(jìn)行了抽象,,使得結(jié)果不具有擴(kuò)展性和通用性,。然而,這項(xiàng)成果為這類工作樹立了典范,它展示了如何客觀的做比較,,以及如何細(xì)致的描述比較的具體細(xì)節(jié),,這樣使得研究者可以從結(jié)果中得到自己的結(jié)論,并將這種思想應(yīng)用到今后的研究工作中,。
結(jié)語
這五個(gè)FPGA系統(tǒng)架構(gòu)的重要工作,,有的奠定了現(xiàn)代商用FPGA的基礎(chǔ)架構(gòu),如賽靈思的Virtex和Altera的Stratix,,有的開創(chuàng)了FPGA作為并行硬件加速器的重要使用方向,,有的統(tǒng)一了FPGA架構(gòu)基準(zhǔn)測試的規(guī)范和標(biāo)準(zhǔn),。更重要的是,,這些工作所采用的方法論、思維方式,、前瞻性與實(shí)用性的結(jié)合,、以及嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度,都為之后的學(xué)術(shù)和工業(yè)研究樹立了最高的典范,。