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