詳解FPGA(人工智能時(shí)代的驅(qū)動(dòng)引擎)_第1頁
詳解FPGA(人工智能時(shí)代的驅(qū)動(dòng)引擎)_第2頁
詳解FPGA(人工智能時(shí)代的驅(qū)動(dòng)引擎)_第3頁
詳解FPGA(人工智能時(shí)代的驅(qū)動(dòng)引擎)_第4頁
詳解FPGA(人工智能時(shí)代的驅(qū)動(dòng)引擎)_第5頁
已閱讀5頁,還剩117頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

詳解FPGA(人工智能時(shí)代的驅(qū)動(dòng)引擎)目錄\h第1章延續(xù)摩爾定律——FPGA的架構(gòu)革新\h1.1什么是FPGA\h1.2從無到有,從小到大,從大到強(qiáng)——FPGA發(fā)展的三個(gè)階段\h1.2.1發(fā)明階段:歷史的必然\h1.2.2擴(kuò)張階段:設(shè)計(jì)自動(dòng)化的興起\h1.2.3累積階段:復(fù)雜片上系統(tǒng)的形成\h1.3超越維度的限制——3DFPGA\h1.3.1賽靈思堆疊硅片互聯(lián)(SSI)技術(shù)\h1.3.2SSI技術(shù)的主要缺點(diǎn)\h1.3.3SSI技術(shù)小結(jié)\h1.3.4英特爾EMIB技術(shù)\h1.3.5基于EMIB技術(shù)的異構(gòu)FPGA的潛在問題\h1.3.6EMIB技術(shù)小結(jié)\h1.4突破集成度的邊界——從FPGA到ACAP\h1.4.1ACAP概述\h1.4.2芯片架構(gòu):在傳統(tǒng)中變革\h1.4.3CLB微結(jié)構(gòu):翻天覆地\h1.4.4第四代SSI技術(shù):3DFPGA的進(jìn)一步優(yōu)化\h1.4.5片上網(wǎng)絡(luò):高帶寬數(shù)據(jù)傳輸?shù)娜吕鱘h1.5靈活與敏捷共存——英特爾AgilexFPGA\h1.5.1英特爾10nm工藝能否后發(fā)制人\h1.5.2全新的芯片布局與微架構(gòu)優(yōu)化\h1.5.3CXL:CPU與FPGA互連的終極方案\h1.5.4可變精度DSP:全力支持AI應(yīng)用\h1.5.5增強(qiáng)版HyperFlex架構(gòu)\h1.5.6oneAPI:英特爾的雄心\h1.6本章小結(jié)\h第2章?lián)肀Т髷?shù)據(jù)洪流——云中的FPGA\h2.1第一個(gè)吃螃蟹的人——微軟Catapult項(xiàng)目\h2.1.1Catapult項(xiàng)目的產(chǎn)生背景\h2.1.2在數(shù)據(jù)中心里部署硬件加速單元的考慮因素\h2.1.3幾類硬件加速模塊的對比\h2.1.4Catapult項(xiàng)目的三個(gè)階段\h2.1.5微軟Catapult項(xiàng)目小結(jié)\h2.2FPGA即服務(wù)(FPGAasaService)\h2.2.1亞馬遜AWS-F1實(shí)例:FPGA云服務(wù)的首次嘗試\h2.2.2AWSFPGA云服務(wù)的技術(shù)概述\h2.2.3其他公有云提供商的FPGA加速服務(wù)\h2.3下一代電信網(wǎng)絡(luò):SDN、NFV與FPGA\h2.3.1網(wǎng)絡(luò)功能虛擬化(NFV)與軟件定義網(wǎng)絡(luò)(SDN)的意義\h2.3.2使用FPGA加速虛擬網(wǎng)絡(luò)功能的實(shí)現(xiàn)\h2.4系統(tǒng)級(jí)解決方案:FPGA加速卡\h2.4.1FPGA應(yīng)用方案的轉(zhuǎn)型\h2.4.2英特爾的FPGA加速卡布局\h2.4.3賽靈思的FPGA加速卡布局\h2.4.4第三方FPGA加速卡\h2.5虛擬與現(xiàn)實(shí)之間——FPGA虛擬化\h2.5.1為什么要進(jìn)行FPGA虛擬化\h2.5.2FPGA虛擬化的主要目標(biāo)\h2.5.3FPGA虛擬化的層次劃分\h2.5.4常見的FPGA虛擬化實(shí)現(xiàn)方法\h2.5.5FPGA虛擬化的未來研究方向\h2.6本章小結(jié)\h第3章FPGA在人工智能時(shí)代的獨(dú)特優(yōu)勢\h3.1實(shí)時(shí)AI處理:微軟腦波項(xiàng)目\h3.1.1FPGA資源池化的主要優(yōu)點(diǎn)\h3.1.2腦波項(xiàng)目系統(tǒng)架構(gòu)\h3.1.3腦波項(xiàng)目的性能分析\h3.2AI加速引擎:FPGA與深度神經(jīng)網(wǎng)絡(luò)的近似算法\h3.2.1使用低精度定點(diǎn)數(shù)代替浮點(diǎn)數(shù)\h3.2.2網(wǎng)絡(luò)剪枝\h3.2.3深度壓縮\h3.3下一個(gè)BigThing:FPGA公司在AI時(shí)代的布局\h3.3.1賽靈思\h3.3.2英特爾\h3.3.3Achronix\h3.4路在何方:FPGA在AI時(shí)代未來的發(fā)展方向\h3.5本章小結(jié)\h第4章更簡單也更復(fù)雜——FPGA開發(fā)的新方法\h4.1難上加難:現(xiàn)代FPGA開發(fā)的痛點(diǎn)\h4.2讓軟件工程師開發(fā)FPGA——高層次綜合\h4.2.1FPGA高層次綜合的前世今生\h4.2.2高層次綜合的主要工作原理:以AutoPilot為例\h4.2.3高層次綜合工具常用的優(yōu)化方法\h4.2.4高層次綜合的發(fā)展前景\h4.3商業(yè)級(jí)開源開發(fā)工具:賽靈思Vitis\h4.4一個(gè)晶體管也不能少:英特爾oneAPI\h4.5本章小結(jié)\h第5章站在巨人的肩上——FPGA發(fā)展的新趨勢\h5.1百花齊放、百家爭鳴:FPGA學(xué)術(shù)研究概況\h5.1.1多倫多大學(xué)\h5.1.2加州大學(xué)洛杉磯分校(UCLA)\h5.1.3帝國理工學(xué)院\h5.1.4清華大學(xué)\h5.1.5FPGA領(lǐng)域的主要學(xué)術(shù)會(huì)議\h5.2FPGA20年最有影響力的25項(xiàng)研究成果\h5.2.1FPGA系統(tǒng)架構(gòu)篇\h5.2.2FPGA微架構(gòu)篇\h5.2.3FPGA布局布線算法篇\h5.2.4其他EDA/CAD算法篇\h5.2.5FPGA應(yīng)用篇\h5.3這是最好的時(shí)代——FPGA未來的發(fā)展方向\h5.4本章小結(jié)第1章

延續(xù)摩爾定律——FPGA的架構(gòu)革新20世紀(jì)60年代中期,英特爾公司的創(chuàng)始人之一,時(shí)任仙童半導(dǎo)體工程師的戈登·摩爾在《電子學(xué)》雜志發(fā)表了一篇論文,他在這篇論文中指出,芯片上晶體管的密度會(huì)每年提升一倍。在1975年,他進(jìn)一步修改了這個(gè)規(guī)律,將晶體管翻倍的周期由每年改為每兩年,這個(gè)規(guī)律在后來被人們稱為“摩爾定律”。如同摩爾定律預(yù)測的那樣,在過去的50年中,每隔一年半到兩年,芯片內(nèi)晶體管的密度都會(huì)翻倍,形成指數(shù)級(jí)的增長。同時(shí),芯片的性能也隨之取得指數(shù)級(jí)的增長,使用晶體管電路進(jìn)行計(jì)算的成本和功耗也都在這50年間呈現(xiàn)指數(shù)級(jí)的下降。摩爾定律見證了半導(dǎo)體與集成電路技術(shù)的突破性發(fā)展,而這也是驅(qū)動(dòng)人類社會(huì)和現(xiàn)代文明在這半個(gè)世紀(jì)里飛速前進(jìn)的根本動(dòng)力。FPGA的發(fā)展,一直完美符合摩爾定律的描述。自1984年FPGA面世至今,F(xiàn)PGA的容量增長超過1萬倍、運(yùn)行速度增長超過100倍,同時(shí)其成本和功耗均降低并超過1000倍。這些發(fā)展一方面歸功于半導(dǎo)體制造工藝的不斷進(jìn)步,另一方面,F(xiàn)PGA本身也在不斷創(chuàng)造和設(shè)計(jì)新穎的芯片架構(gòu)和系統(tǒng),以不斷延續(xù)這樣的指數(shù)級(jí)發(fā)展軌跡。隨著半導(dǎo)體工藝突破10nm節(jié)點(diǎn),并繼續(xù)不斷向原子極限推進(jìn),芯片架構(gòu)設(shè)計(jì)的思路和方法也要隨之不斷更新和變革。對于FPGA來說,它的架構(gòu)在未來應(yīng)該如何繼續(xù)發(fā)展,已經(jīng)成為工業(yè)界和學(xué)術(shù)界一直在探討的重要課題。那么,F(xiàn)PGA究竟是什么?它從發(fā)明至今經(jīng)歷了哪些發(fā)展階段?它的未來發(fā)展階段在何處?FPGA能否繼續(xù)跟隨摩爾定律的發(fā)展腳步?需要何種技術(shù)才能繼續(xù)支撐摩爾定律的延續(xù)?接下來,就請跟隨筆者的文字,在本章中尋找和探討這些問題的答案。1.1什么是FPGAFPGA的英文全稱是FieldProgrammableGateArray,翻譯成中文則是“現(xiàn)場可編程門陣列”。初聽起來,這個(gè)名字的確有些拗口。從FPGA的本質(zhì)上看,它實(shí)際上就是半導(dǎo)體芯片的一種。從這個(gè)意義上講,它和我們更加熟悉的中央處理器CPU,或者圖形處理器GPU等芯片并無二致。顧名思義,從FPGA的名字上就能體現(xiàn)出它的三個(gè)最主要的特點(diǎn):門陣列、可編程、現(xiàn)場。首先,F(xiàn)PGA芯片由大量的邏輯門陣列組成。我們知道,邏輯門是數(shù)字電路的基本組成單元,它們基于“布爾代數(shù)”對二進(jìn)制數(shù)0和1進(jìn)行操作,并完成不同的邏輯運(yùn)算,例如與、或、非、異或,等等。舉例來說,“非”就是把0變成1,或者把1變成0;把一個(gè)0和一個(gè)1進(jìn)行“或”操作就會(huì)得到1;把一個(gè)0和一個(gè)1進(jìn)行“與”操作就會(huì)得到0。在圖1-1中,就列舉了一些常見邏輯門的電路符號(hào)。圖1-1幾個(gè)常見的邏輯門通過對這些邏輯門的排列組合,可以得到一些稍微復(fù)雜的運(yùn)算單元,例如執(zhí)行算術(shù)運(yùn)算的加法器和乘法器等。圖1-2就是一個(gè)二進(jìn)制加法器,它的功能是完成一位二進(jìn)制加法的運(yùn)算,這個(gè)運(yùn)算只需要五個(gè)邏輯門就可以實(shí)現(xiàn)。圖1-2全加器(fulladder)的邏輯結(jié)構(gòu)圖有了這些基于邏輯門的通用運(yùn)算單元,就能進(jìn)一步用它們設(shè)計(jì)出更加復(fù)雜的功能模塊,并最終形成一個(gè)個(gè)功能各異的IP(IntellectualProperty)。對于大部分?jǐn)?shù)字芯片來說,它們都是通過使用不同的IP,實(shí)現(xiàn)特定的邏輯功能,然后經(jīng)過驗(yàn)證、集成、優(yōu)化等過程,最終將設(shè)計(jì)流片,制造得到最終的芯片產(chǎn)品。我們應(yīng)該注意到的是,這些芯片一旦被生產(chǎn)出來,它的邏輯功能就已經(jīng)被“固化”在芯片上了。也就是說,這些功能已經(jīng)成為了芯片的一部分。盡管很多芯片都可以通過對片上的寄存器進(jìn)行編程,但這種編程更多的是改變芯片的配置,并不會(huì)改變它本身的邏輯功能。如果想要對它的邏輯功能進(jìn)行更改,或者發(fā)現(xiàn)設(shè)計(jì)的缺陷和漏洞,就要重新對芯片進(jìn)行設(shè)計(jì)、驗(yàn)證和制造,而這些過程都需要耗費(fèi)大量的時(shí)間、人力、金錢,這樣的投入和風(fēng)險(xiǎn)是很多公司無法承擔(dān)的。在這個(gè)大背景下,芯片設(shè)計(jì)者們提出,與其將邏輯固化在芯片中,不如設(shè)計(jì)一種更加通用的芯片,在其中只包含最基本的邏輯門,并通過某種方式對這些邏輯門進(jìn)行排列組合,使之能夠通過編程改變它的邏輯結(jié)構(gòu)。這樣,就可以使用一種芯片實(shí)現(xiàn)許多不同芯片的功能了。這個(gè)想法,就是FPGA的前身。FPGA最主要的組成部分就是海量的“邏輯門”,它們通過特定的方式組合成邏輯門陣列,并通過互連單元進(jìn)行連接。由于邏輯門可以任意組成更加復(fù)雜的電路單元,這就使得FPGA在理論上可以實(shí)現(xiàn)任意的數(shù)字邏輯功能。隨著FPGA技術(shù)的不斷發(fā)展,在現(xiàn)代FPGA中集成了上千萬個(gè)這樣的邏輯單元,因此人們可以使用FPGA完成很多非常復(fù)雜的功能,它甚至在某些領(lǐng)域替代了專用芯片,這一點(diǎn)在之后的章節(jié)里會(huì)深入介紹。值得一提的是,這里的“邏輯門”加上了引號(hào),是因?yàn)镕PGA里的邏輯門是通過查找表(Lookup-Table,LUT)的方式實(shí)現(xiàn)的。簡單來說,就是將某個(gè)簡單邏輯功能的全部可能結(jié)果寫到一個(gè)存儲(chǔ)單元中,并根據(jù)輸入的變化直接查找結(jié)果并輸出。除了部分中低端以及較早的FPGA采用了4輸入LUT結(jié)構(gòu)之外,在大部分的現(xiàn)代FPGA中,例如英特爾的Arria10、Stratix10和Agilex,以及賽靈思的6系、7系、UltraScale及UltraScale+系列等,查找表LUT的輸入通常有6個(gè),也就是說,這樣的查找表結(jié)構(gòu)最多可以實(shí)現(xiàn)任意6輸入、1輸出的邏輯功能。除了查找表之外,F(xiàn)PGA的最小邏輯單元里還包括寄存器、選擇器,甚至一些算術(shù)運(yùn)算單元,例如加法的進(jìn)位鏈,等等。不同的廠商對于FPGA的這個(gè)最小邏輯單元的命名都不盡相同,例如英特爾將其稱為ALM(AdaptiveLogicModule,自適應(yīng)邏輯單元),賽靈思稱之為CLB(ConfigurableLogicBlock,可配置邏輯模塊)。雖然名稱有所差異,但它們的主要組成部分都很類似,也都包含上面所說的這幾個(gè)主要組成部分。圖1-3展示了英特爾Stratix10FPGA芯片的最小邏輯單元ALM的結(jié)構(gòu)示意圖。FPGA的第二個(gè)主要特點(diǎn)是可編程性。很多人有這樣的疑問:CPU、GPU,以及很多專用芯片都可以進(jìn)行編程,那么FPGA的可編程性又有什么獨(dú)特之處?事實(shí)上,F(xiàn)PGA的可編程性,指的是可以對邏輯陣列進(jìn)行編程,從而改變FPGA實(shí)現(xiàn)的邏輯功能,這與其他芯片的可編程性有著本質(zhì)區(qū)別。相比之下,用戶對專用芯片的編程大都是通過改變芯片上各種寄存器的配置實(shí)現(xiàn)的,而這并不會(huì)改變芯片的主要功能,打個(gè)簡單的比方,這種編程并不能使一個(gè)網(wǎng)絡(luò)交換芯片變成視頻處理芯片。圖1-3Stratix10FPGA的ALM邏輯結(jié)構(gòu)示意圖正是由于FPGA可以對邏輯門陣列進(jìn)行重復(fù)編程,使得FPGA可以在邏輯層面改變自身實(shí)現(xiàn)的硬件結(jié)構(gòu),從而有著極高的靈活性。從理論上講,如果FPGA的可編程資源足夠多,一個(gè)FPGA就可以實(shí)現(xiàn)任何數(shù)字電路的邏輯功能。FPGA的一個(gè)重要應(yīng)用領(lǐng)域,就是用來構(gòu)建專用芯片ASIC流片前的硬件仿真或原型驗(yàn)證平臺(tái),即emulation或prototyping,而這正是利用了FPGA的可編程性。在這個(gè)過程中,芯片設(shè)計(jì)者使用FPGA實(shí)現(xiàn)目標(biāo)功能,與真實(shí)的軟硬件系統(tǒng)進(jìn)行交互和仿真,并且可以不斷地進(jìn)行迭代和修改。待設(shè)計(jì)滿足要求后,再進(jìn)行流片生產(chǎn)。這極大降低了因設(shè)計(jì)疏漏導(dǎo)致流片失敗的風(fēng)險(xiǎn),還能在芯片尚未流片之前就啟動(dòng)固件、驅(qū)動(dòng)、應(yīng)用程序的開發(fā),進(jìn)一步縮短了項(xiàng)目開發(fā)周期。FPGA的第三個(gè)主要特點(diǎn),就是它的“現(xiàn)場”可編程性?!艾F(xiàn)場”這個(gè)詞指的是,F(xiàn)PGA可以在使用時(shí)進(jìn)行編程,而無須將芯片拆下并返回生產(chǎn)廠家完成編程。這個(gè)特點(diǎn)在現(xiàn)在看起來有些理所當(dāng)然,畢竟目前的大部分芯片都有著現(xiàn)場編程能力,而且這也并非FPGA專有的特點(diǎn)。事實(shí)上,現(xiàn)場可編程這個(gè)特點(diǎn)的存在有著背后的歷史原因。在20世紀(jì)80年代以前,芯片的固件大都是保存在掩膜ROM(maskROM)或者基于熔絲的PROM里,只能讀取而不能寫入,更不用說多次寫入了。后來出現(xiàn)了能擦寫的PROM(EPROM),但擦寫過程非常復(fù)雜,需要使用特殊設(shè)備,對芯片進(jìn)行長時(shí)間的強(qiáng)紫外線照射,這個(gè)過程并不能在芯片的使用現(xiàn)場完成。在20世紀(jì)80年代之后,人們發(fā)明了EEPROM和閃存(Flashmemory),這才使得現(xiàn)場可編程成為可能。對于現(xiàn)代FPGA而言,人們可以每隔幾秒就改變一次FPGA芯片上運(yùn)行的硬件設(shè)計(jì),這也使得FPGA有著極大的靈活性。由此我們知道了,F(xiàn)PGA作為一種包含大量邏輯門陣列的芯片,可以在使用現(xiàn)場通過編程改變自身的硬件邏輯,并在理論上可以實(shí)現(xiàn)任何數(shù)字電路的功能。人們對于FPGA有著很多形象的比喻,有人把它比成樂高積木,通過很多基本的積木單元,可以組成汽車、高樓和飛船;也有人把它比成活字印刷,使用一個(gè)個(gè)字膜,就可以排列組合成任意的詩詞歌賦。這些比喻都形象地突出了FPGA的最大特點(diǎn):靈活性和通用性。隨著半導(dǎo)體和芯片技術(shù)飛速發(fā)展至今,F(xiàn)PGA早已不再是面世之初的簡單的可編程門陣列。除了可編程邏輯單元之外,F(xiàn)PGA芯片逐漸變得越來越復(fù)雜,并結(jié)合最新的半導(dǎo)體制造技術(shù),衍生出了很多不同的架構(gòu)和設(shè)計(jì)。在本章接下來的部分,我們將首先回顧FPGA發(fā)展的三個(gè)重要階段,以及當(dāng)前最新的FPGA架構(gòu)變革與技術(shù)突破,特別是3D芯片封裝技術(shù)在FPGA上的使用。最后,我們將以賽靈思和英特爾最新的高端FPGA產(chǎn)品為例,詳細(xì)分析這些FPGA上采用了哪些當(dāng)代最新的尖端科技。通過這些內(nèi)容,相信大家會(huì)對FPGA的發(fā)展脈絡(luò)建立一個(gè)完整而清晰的認(rèn)識(shí),并深入了解當(dāng)前FPGA芯片采用的新工藝、新架構(gòu)和新技術(shù)。1.2從無到有,從小到大,從大到強(qiáng)——FPGA發(fā)展的三個(gè)階段FPGA的架構(gòu)一直伴隨著摩爾定律不斷演進(jìn),與其他類型的芯片相比,F(xiàn)PGA可以說是當(dāng)前最先進(jìn)半導(dǎo)體技術(shù)的集大成者。1984年,賽靈思(Xilinx)推出了第一款商用FPGA-XC2064,如圖1-4所示。在這個(gè)FPGA上,只有64個(gè)可編程邏輯單元、2個(gè)3輸入查找表(LUT)、總共800個(gè)邏輯門。35年后,英特爾在2019年底推出了當(dāng)今世界上最大的FPGA,這款名為Stratix10GX10M的FPGA芯片,基于英特爾14nm工藝制造,有著433億只晶體管、1020萬個(gè)可編程邏輯單元,以及2304個(gè)可編程I/O。圖1-4世界上首枚商用FPGA-XC2064可以看到,在這35年間,F(xiàn)PGA的芯片架構(gòu)發(fā)生了極其巨大的變化,用翻天覆地來形容也不為過。在這期間,有多次根本性的架構(gòu)變革,它們奠定了現(xiàn)代FPGA架構(gòu)的核心和發(fā)展方向。這些架構(gòu)變革發(fā)生的根本原因,都是基于FPGA新興應(yīng)用的驅(qū)動(dòng)。前賽靈思院士,在FPGA和芯片架構(gòu)領(lǐng)域擁有超過200項(xiàng)專利的SteveTrimberger博士曾把FPGA的發(fā)展歷程大致劃分為三個(gè)階段,即發(fā)明階段(theageofinvention)、擴(kuò)張階段(theageofexpansion)、累積階段(theageofaccumulation)。這三個(gè)發(fā)展階段,也分別代表了FPGA技術(shù)從無到有、從小到大、從大到強(qiáng)的發(fā)展過程,見證了FPGA從單純的可編程邏輯單元,逐漸發(fā)展到擁有成百上千萬個(gè)可編程邏輯單元的大型陣列,再發(fā)展到集成了各類硬件資源、IP核,甚至處理器內(nèi)核的復(fù)雜片上系統(tǒng),并形成當(dāng)前豐富的FPGA產(chǎn)品門類,在各類應(yīng)用場景中得到越來越廣泛的使用?!?.2.1發(fā)明階段:歷史的必然FPGA的發(fā)明階段橫跨20世紀(jì)80年代和90年代。當(dāng)時(shí)的芯片設(shè)計(jì)與生產(chǎn)模式與現(xiàn)在有著較大的不同。在當(dāng)時(shí),無晶圓廠模式尚未興起,ASIC公司只有在客戶的設(shè)計(jì)投入生產(chǎn)時(shí)才賺錢。然而由于開發(fā)過程中需求的變化、流片失敗,或者存在無法通過固件升級(jí)進(jìn)行修復(fù)的設(shè)計(jì)漏洞,往往只有1/3的芯片設(shè)計(jì)實(shí)際投入生產(chǎn)。也就是說,在當(dāng)時(shí)有2/3的芯片項(xiàng)目是賠錢的。由于芯片的流片成本巨大,業(yè)界急需一種通用的半導(dǎo)體器件,用來進(jìn)行流片前的測試、驗(yàn)證等工作,從而減少流片失敗的可能性。在這個(gè)大環(huán)境下,可編程邏輯器件應(yīng)運(yùn)而生,而這也是FPGA的前身。正如前文提到的那樣,F(xiàn)PGA的本質(zhì)也是一種芯片,它的主要特殊之處是當(dāng)制造出來后,可以根據(jù)不同用戶的需求,通過編程來改變自身的邏輯功能,而且這個(gè)過程可以重復(fù)進(jìn)行。同時(shí),F(xiàn)PGA使用固定的開發(fā)工具和開發(fā)環(huán)境,而不需要像ASIC那樣開發(fā)定制化的工具鏈。這樣一來,不同的ASIC芯片可以在流片前使用相同的FPGA進(jìn)行測試和驗(yàn)證,這使得ASIC廠商流片前的成本和風(fēng)險(xiǎn)得到了大幅降低。以現(xiàn)在的標(biāo)準(zhǔn)來看,賽靈思推出的業(yè)界第一款FPGA-XC2064更像是一個(gè)“玩具”。這個(gè)售價(jià)55美元的芯片由2.5μm工藝制造,只有64個(gè)邏輯單元,以及不超過1000個(gè)邏輯門。也就是說,實(shí)現(xiàn)一個(gè)簡單的64位移位寄存器就會(huì)占用XC2064的全部片上邏輯。然而在當(dāng)時(shí)看來,作為ASIC流片前的硬件仿真與驗(yàn)證平臺(tái),F(xiàn)PGA本身的性能并沒有那么重要。此時(shí)業(yè)界需要的,只是一堆相互連接的可編程邏輯門而已。因此,XC2064的問世,在當(dāng)時(shí)依然引發(fā)了不小的轟動(dòng)。到了20世紀(jì)90年代,F(xiàn)PGA芯片的主體架構(gòu)也在慢慢發(fā)展,并逐漸演變成為了現(xiàn)在我們熟悉的可編程邏輯陣列的結(jié)構(gòu),如圖1-5所示。圖1-5FPGA的基本架構(gòu)■1.2.2擴(kuò)張階段:設(shè)計(jì)自動(dòng)化的興起20世紀(jì)末是摩爾定律大放異彩的時(shí)代。在摩爾定律的指引下,半導(dǎo)體行業(yè)在這十幾年里經(jīng)歷了飛速發(fā)展。與之對應(yīng)的,F(xiàn)PGA在1992年到1999年之間迎來了自己的擴(kuò)張階段。此時(shí)由于芯片制程技術(shù)的持續(xù)突破,制造大尺寸的芯片已經(jīng)不像以前那么困難了。對于FPGA來說,不斷提升自身的容量就成為了自然而然的選擇。FPGA包含的邏輯單元、I/O引腳、時(shí)鐘和布線等片上資源的數(shù)量都在持續(xù)增加。伴隨著FPGA容量的增長,曾經(jīng)非常寶貴的芯片面積也逐漸變得相對廉價(jià),這也直接影響了很多電路設(shè)計(jì)方法論的發(fā)展。例如,在此時(shí)就出現(xiàn)了“面積換性能”之類的電路設(shè)計(jì)方法。更大的芯片面積也給FPGA的架構(gòu)創(chuàng)新提供了更多的想象空間。例如,F(xiàn)PGA可編程單元中的LUT查找表結(jié)構(gòu),從最初的三輸入,開始變成四輸入和六輸入,甚至更多。在這些基本的可編程單元內(nèi)部,還逐漸增加了寄存器和多路選擇器等更多額外功能。漸漸地,這些FPGA片上資源的互連復(fù)雜性已經(jīng)開始取代邏輯結(jié)構(gòu)的復(fù)雜性,并成為FPGA廠商需要優(yōu)先解決的問題。與前一個(gè)階段相比,在擴(kuò)張階段發(fā)生的另一個(gè)主要的變化就是FPGA自動(dòng)設(shè)計(jì)工具和軟件的興起。由于FPGA結(jié)構(gòu)變得越來越復(fù)雜,出現(xiàn)了針對FPGA進(jìn)行優(yōu)化設(shè)計(jì)的自動(dòng)綜合、布局和布線的EDA工具,使用這些工具進(jìn)行FPGA設(shè)計(jì),也逐漸成為了FPGA開發(fā)的主流方法。和ASIC設(shè)計(jì)不同的是,F(xiàn)PGA廠商并沒有依賴傳統(tǒng)EDA公司提供的這些設(shè)計(jì)工具,而是走了自主研發(fā)的道路。這是由于FPGA公司敏銳地認(rèn)識(shí)到,只有將EDA技術(shù)掌握在自己手中,才能牢牢把握FPGA發(fā)展的未來。而這個(gè)看法,現(xiàn)在已被證明是絕對的真理。FPGA廠商針對自家FPGA產(chǎn)品開發(fā)的設(shè)計(jì)自動(dòng)化工具,如英特爾(原Altera)的Quartus系列、賽靈思的ISE和Vivado系列等,一直被認(rèn)為是這些公司“皇冠上的明珠”。早年間,由于各個(gè)廠商FPGA主體架構(gòu)都比較相似,如何優(yōu)化自家的設(shè)計(jì)工具,以取得更加出色的性能,就成為了FPGA廠商努力競爭的主戰(zhàn)場。這些EDA工具中包含的各種專利與技術(shù)機(jī)密,也為這些公司構(gòu)建了深厚的技術(shù)護(hù)城河。■1.2.3累積階段:復(fù)雜片上系統(tǒng)的形成進(jìn)入21世紀(jì),F(xiàn)PGA的發(fā)展進(jìn)入了累積階段。人們發(fā)現(xiàn),F(xiàn)PGA的發(fā)展此時(shí)遭遇了瓶頸,因?yàn)閱渭兲嵘鼺PGA的容量已經(jīng)不能滿足各類應(yīng)用的需求。同時(shí),很多客戶開始追求更高的性價(jià)比,并不愿意為過大的FPGA買單。在這個(gè)大環(huán)境下,F(xiàn)PGA開始從單純的可編程門陣列,逐步轉(zhuǎn)變?yōu)閾碛袕?fù)雜功能的可編程片上系統(tǒng)。除了進(jìn)一步改進(jìn)可編程邏輯單元本身的微架構(gòu)之外,F(xiàn)PGA廠商還在FPGA的易用性上做足了功夫。例如,它們推動(dòng)定義了諸多標(biāo)準(zhǔn)化的數(shù)據(jù)傳輸協(xié)議,方便不同設(shè)計(jì)和模塊之間的互連與通信。它們還為很多重要而常見的功能開發(fā)了可以重復(fù)使用的IP核,例如軟核微處理器(英特爾/Altera的NIOS,賽靈思的MicroBlaze)、存儲(chǔ)控制器和各種通信協(xié)議棧等,可以供客戶直接調(diào)用而無須再從頭制造輪子。與此同時(shí),很多專用的邏輯單元也被添加到FPGA器件中,并逐漸成為現(xiàn)代FPGA的“標(biāo)配”。例如,用于數(shù)學(xué)計(jì)算的加法進(jìn)位鏈、乘法器、定點(diǎn)與浮點(diǎn)DSP單元,固定容量的片上存儲(chǔ)器,以及各種速率的串行收發(fā)器和物理接口等。隨著人工智能的興起,AI引擎、可變精度的DSP等針對AI應(yīng)用開發(fā)的IP核也被固化到FPGA中??梢钥吹?,現(xiàn)代FPGA已經(jīng)成為了各類全新科技的集大成者,而這也會(huì)反過來促使FPGA在更多應(yīng)用場景里被使用。那么,隨著半導(dǎo)體技術(shù)的進(jìn)一步發(fā)展,F(xiàn)PGA下一步會(huì)如何進(jìn)化,以不斷突破芯片維度和集成度的限制,并進(jìn)一步為摩爾定律續(xù)命?當(dāng)摩爾定律行將終結(jié)的時(shí)候,F(xiàn)PGA的架構(gòu)又會(huì)發(fā)生怎樣的改變,以適應(yīng)下一個(gè)半導(dǎo)體行業(yè)發(fā)展的全新周期?在本章接下來的部分,我們將繼續(xù)深入探究這些問題。1.3超越維度的限制——3DFPGA在過去的幾十年中,半導(dǎo)體和芯片技術(shù)在摩爾定律的指引下得到了飛速發(fā)展,然而近年來,人們注意到這種增長速度有逐漸放緩的趨勢,很多人因此開始質(zhì)疑摩爾定律在目前是否仍然有效,“摩爾定律已死”的聲浪也不絕于耳。從單一晶體管的角度來說,半導(dǎo)體技術(shù)的革新從未停歇,例如,科學(xué)家已經(jīng)制造出了單原子甚至單電子的晶體管,也可以對單個(gè)原子的位置進(jìn)行移動(dòng)和調(diào)整,以取得更好的晶體管性能。但從整個(gè)半導(dǎo)體產(chǎn)業(yè)的角度來看,這未必是下一步的發(fā)展方向。當(dāng)前人們遇到的問題并不是能不能造出來這樣小尺寸的單一晶體管,而是能否造出一個(gè)包含100億個(gè)這樣晶體管的芯片。也就是說,這本質(zhì)上是個(gè)經(jīng)濟(jì)問題。因?yàn)樵诶碚撋希覀兪强梢灾圃旄〉脑O(shè)備和器件的,但能否讓這些設(shè)備穩(wěn)定工作,并以足夠低的成本進(jìn)行生產(chǎn)和銷售,則是當(dāng)前產(chǎn)業(yè)亟待思考的問題。當(dāng)晶體管的尺寸逐漸接近原子極限時(shí),再使用傳統(tǒng)的晶體管制造技術(shù)已經(jīng)幾乎不可能了。傳統(tǒng)的晶體管結(jié)構(gòu)曾經(jīng)非常簡單,而現(xiàn)在已經(jīng)演變成了以FinFET晶體管為代表的非常復(fù)雜的3D結(jié)構(gòu)。此外,制造芯片的半導(dǎo)體材料、設(shè)備、封裝與測試等全產(chǎn)業(yè)鏈都需要同步發(fā)展。同樣地,由這些晶體管組成的芯片架構(gòu)也要不斷進(jìn)化,從而繼續(xù)保持芯片性能的不斷進(jìn)步。例如,當(dāng)芯片在水平維度的擴(kuò)展逼近技術(shù)極限之后,科學(xué)家和工程師們就開始探索在垂直方向上對芯片密度進(jìn)行擴(kuò)展的可能,并由此發(fā)明了3D芯片封裝技術(shù)。在FPGA領(lǐng)域,廠商采用的3D芯片技術(shù)主要有兩種:賽靈思的堆疊硅片互聯(lián)(SSI)技術(shù),以及英特爾的嵌入式多管芯互聯(lián)橋接(EMIB)技術(shù)?!?.3.1賽靈思堆疊硅片互聯(lián)(SSI)技術(shù)在每一代半導(dǎo)體工藝早期,工藝和生產(chǎn)技術(shù)尚未成熟,因此良率往往較低,對于面積較大的芯片而言更是如此。研究表明,如果硅片面積為6cm2,使用泊松良率模型推斷后,其在工藝早期的良率僅為0.25%。也就是說,此時(shí)在一個(gè)12英寸的晶圓上僅能產(chǎn)出0.3個(gè)能正常工作的芯片。然而,如果硅片面積只有1.5cm2,良率則會(huì)高達(dá)22%。此時(shí),在同樣的一個(gè)12英寸的晶圓上會(huì)產(chǎn)出107個(gè)能正常工作的芯片,如圖1-6所示。由此可見,在工藝早期,不同硅片面積大小會(huì)帶來巨大的良率落差。圖1-6工藝早期不同面積的裸晶良率與產(chǎn)量的關(guān)系有意思的是,如果可以將上例中的4個(gè)1.5cm2的硅片通過某種方式“組合”成一枚6cm2的芯片,那么同樣的晶圓就可以產(chǎn)出平均26.75枚芯片,并隨之帶來超過100倍的產(chǎn)能提升。這便是賽靈思采用的堆疊硅片互聯(lián)(StackedSiliconInterconnect,SSI)技術(shù)產(chǎn)生的主要背景。堆疊硅片互聯(lián)(SSI)技術(shù)示意圖如圖1-7所示。和傳統(tǒng)封裝技術(shù)相比,SSI技術(shù)在封裝基板(PackageSubstrate)和FPGA硅片之間加入了一層無源硅中介層(SiliconInterposer)。在硅中介層上可以放置多枚FPGA硅片。這些硅片通過在中介層里的硅通孔(ThroughSiliconVias,TSV)、微凸塊(Microbumps)以及大量連線進(jìn)行相互連接。圖1-7堆疊硅片互聯(lián)(SSI)技術(shù)示意圖在這個(gè)結(jié)構(gòu)里,微凸塊用來連接FPGA硅片上的各類引腳;硅通孔負(fù)責(zé)將硅片的電源、接地以及I/O接口通過C4凸塊連接到封裝基板;在硅中介層中,有著上萬條連線將相鄰的兩枚FPGA硅片進(jìn)行互連。在SSI技術(shù)中,硅通孔是它的核心創(chuàng)新點(diǎn)與技術(shù)難點(diǎn)。由于TSV通過蝕刻工藝制造,而非激光鉆孔,因此對制造工藝有著嚴(yán)格要求。為了降低系統(tǒng)的制造難度,中介層會(huì)使用已經(jīng)十分成熟的工藝而非最新的工藝制程進(jìn)行加工,例如65nm工藝等。在硅中介層中,也不包含晶體管等有源器件,這樣可以保證較高的良率,降低制造風(fēng)險(xiǎn)和系統(tǒng)的靜態(tài)功耗。使用SSI技術(shù)最主要的優(yōu)點(diǎn):能在每代半導(dǎo)體制造工藝的早期,快速生產(chǎn)出良率高的大型FPGA器件,加快了產(chǎn)品面世周期,從而能快速搶占市場,尤其是高端市場。此外,當(dāng)制造工藝逐漸成熟,并可以生產(chǎn)良率較高的大型單硅片F(xiàn)PGA器件時(shí),使用SSI這種基于硅中介層的技術(shù)也能通過組合多枚硅片集成更多的可編程邏輯單元。在2017年的HotChips大會(huì)上,賽靈思發(fā)布了VirtexUltraScale+HBM系列FPGA,其中仍然使用了基于第四代硅中介層的技術(shù)來組合3枚16nmFPGA,以及2枚32GB的高帶寬存儲(chǔ)芯片(HighBandwidthMemory,HBM),如圖1-8所示。圖1-8VirtexUltraScale+HBMFPGA結(jié)構(gòu)圖(圖片來自賽靈思)■1.3.2SSI技術(shù)的主要缺點(diǎn)盡管SSI技術(shù)能在半導(dǎo)體制造工藝初期大幅提升良率,它的缺點(diǎn)也同樣明顯??偨Y(jié)起來主要有以下4點(diǎn)。(1)如前文所述,SSI技術(shù)特別適用于每代半導(dǎo)體制造工藝的早期。此時(shí)制造大型硅片的工藝并不成熟,以至于良率較低。不過,當(dāng)工藝成熟后,良率會(huì)明顯上升,這時(shí)采用SSI技術(shù)的好處就不明顯了。在開頭的例子中,當(dāng)工藝成熟后,制造6cm2硅片的良率會(huì)從一開始的0.25%猛增至55%,制造1.5cm2硅片的良率會(huì)從22%上升至86%。這樣一來,一塊12英寸的晶圓可以產(chǎn)出66.9片6cm2的硅片,以及104.6片4×1.5cm2的硅片,產(chǎn)量差別已然不大。同時(shí),制造硅中介層、TSV以及在同一封裝內(nèi)組裝多枚硅片的成本就會(huì)在此時(shí)逐步顯現(xiàn),導(dǎo)致整體的成本優(yōu)勢進(jìn)一步減弱。(2)和一片完整的大型FPGA硅片相比,將多枚FPGA硅片通過硅中間層組合可能會(huì)顯著降低芯片的性能。這里對性能的影響來自于很多方面,例如在垂直方向上,由于硅中間層的引入,為了連接硅片引腳和封裝引腳,就需要先后經(jīng)過包括TSV在內(nèi)的很多額外結(jié)構(gòu),這勢必造成延時(shí)的增加。相比之下,在單芯片結(jié)構(gòu)里由于沒有這些額外結(jié)構(gòu),信號(hào)只需經(jīng)過封裝基板內(nèi)的導(dǎo)線即可。在水平方向上,硅中介層中的導(dǎo)線和微凸塊也會(huì)帶來額外的延遲開銷。研究表明,對于一個(gè)尺寸為7mm×12mm的硅片而言,其中的微凸塊可能分布在距離芯片邊界為2.25mm的“遠(yuǎn)方”。此時(shí)如果將兩個(gè)硅片進(jìn)行互連,在中介層中的導(dǎo)線長度會(huì)非??捎^,從而可能帶來1ns左右的線路延時(shí)。相比之下,F(xiàn)PGA片上的延時(shí)才不過幾百ps,大概只是前者的1/10。在2014年,多倫多大學(xué)AndrePereira和VaughnBetz等人在FPGA國際研討會(huì)發(fā)表的研究結(jié)果指出,硅片間由中介層帶來的延時(shí)會(huì)對系統(tǒng)性能帶來消極影響。例如,當(dāng)中介層的互連延時(shí)造成關(guān)鍵路徑增加0.5ns,1ns或1.5ns時(shí),系統(tǒng)性能會(huì)分別下降約20%,35%和50%。此外,硅通孔TSV也可能會(huì)降低系統(tǒng)性能。對于一個(gè)大型的FPGA,可能存在成百上千只I/O引腳,而每只都需要有TSV與之對應(yīng),這樣會(huì)大大增加芯片的制造難度。同時(shí),高密度TSV也可能對信號(hào)一致性造成干擾,引發(fā)串?dāng)_和耦合,尤其對于高速模擬信號(hào)而言,這極大增加了設(shè)計(jì)和控制的難度和復(fù)雜性。(3)SSI技術(shù)對FPGA配置的靈活性也可能會(huì)造成很大影響。采用多枚FPGA硅片相當(dāng)于人為地劃分了多個(gè)設(shè)計(jì)區(qū)域和硬邊界。為了優(yōu)化實(shí)現(xiàn)一個(gè)較大的FPGA設(shè)計(jì),就可能需要對系統(tǒng)進(jìn)行額外的邏輯劃分,盡量使每個(gè)邏輯區(qū)域不會(huì)散落在多個(gè)硅片上,而這勢必會(huì)增加項(xiàng)目周期和設(shè)計(jì)難度。此外,這些無法改動(dòng)的設(shè)計(jì)區(qū)域和邊界也可能會(huì)造成額外的片上資源的使用,從而導(dǎo)致功耗的增加和性能的降低。如圖1-9所示,假設(shè)原本有一個(gè)設(shè)計(jì)包含模塊A到模塊D,其中D為內(nèi)存控制器,并連接了大量并行I/O。在單芯片系統(tǒng)中,該設(shè)計(jì)只使用2/3的芯片面積即可實(shí)現(xiàn),如圖1-9上半部分所示。然而在SSI器件中,由于兩個(gè)硅片間的互連延時(shí)增加,將模塊D分布于兩個(gè)硅片已無法滿足時(shí)序要求,因此只能將其放于單個(gè)硅片中。這樣一來,模塊A、B、C要重新布局到整個(gè)芯片,造成不必要的資源使用,見圖1-9下半部分。(4)SSI技術(shù)的第四個(gè)缺點(diǎn)是,為了適應(yīng)這種新的多硅片F(xiàn)PGA架構(gòu),F(xiàn)PGA設(shè)計(jì)工具需要進(jìn)行一定程度的改動(dòng)和優(yōu)化。對于時(shí)序優(yōu)化工具而言,片間延時(shí)的增加使得時(shí)序收斂的難度增加。對于布局布線工具而言,由于片間只存在相對有限的布局布線資源,因此增加了布局擁堵的可能性。和傳統(tǒng)FPGA設(shè)計(jì)流程相比,在布局映射(Mapping)和布線(Routing)兩個(gè)步驟之間,可能會(huì)需要加入額外步驟實(shí)現(xiàn)設(shè)計(jì)區(qū)域劃分,以協(xié)調(diào)各個(gè)硅片的資源使用和時(shí)序收斂。另外,由于硅片間硬邊界的存在,在設(shè)計(jì)工具中可能會(huì)需要加入額外的設(shè)計(jì)區(qū)域劃分,以協(xié)調(diào)各個(gè)硅片的資源使用和時(shí)序收斂,這也使得全局的時(shí)序和布局布線的協(xié)同優(yōu)化變得更加復(fù)雜。圖1-9多硅片模型對FPGA配置靈活性的影響■1.3.3SSI技術(shù)小結(jié)賽靈思的堆疊硅片互聯(lián)(SSI)技術(shù)自2012年發(fā)布至今,已經(jīng)完成了多代的演進(jìn),時(shí)至今日仍然用于賽靈思最新的FPGA器件中。作為一種多芯片的集成和互聯(lián)技術(shù),SSI能在每代半導(dǎo)體工藝的發(fā)展初期,迅速提升大型芯片的良率,縮短產(chǎn)品面世的時(shí)間,快速搶占市場份額。然而,SSI技術(shù)最主要的問題就是人為引入了硅片間的“硬邊界”,并且會(huì)給芯片性能造成不可逆的負(fù)面影響,也給FPGA設(shè)計(jì)和優(yōu)化工具帶來了更大的挑戰(zhàn)?!?.3.4英特爾EMIB技術(shù)英特爾從基于14nm制造的Stratix10系列FPGA開始,就采用了“異構(gòu)3D系統(tǒng)級(jí)封裝(SysteminPackage,SiP)技術(shù)”。該技術(shù)產(chǎn)生的背景,與半導(dǎo)體制造工藝的發(fā)展也有密切聯(lián)系,最主要的因素有以下兩點(diǎn):第一,對于不同功能的IP,它們所對應(yīng)的成熟或性價(jià)比更高的制造工藝不盡相同。例如,對于邏輯電路而言,工藝越先進(jìn)通常會(huì)帶來更好的性能和功耗,這也是為何CPU、GPU、FPGA等芯片產(chǎn)品不斷追求新工藝的原因。然而對于很多其他類型的IP,如DRAM、Flash、傳感器和模擬器件等,它們都適合或只能使用已成熟的工藝進(jìn)行制造。這樣就需要提供一種全新的硅片互連方式,將不同代的IP進(jìn)行異構(gòu)整合。第二,不同IP的更新迭代速度不同。這里最典型的例子就是各類收發(fā)器IP與FPGA的整合。對于相同的FPGA,例如Stratix10,可能需要集成不同類型的收發(fā)器,由此形成多種FPGA的子產(chǎn)品門類。這些FPGA產(chǎn)品可能需要支持不同的協(xié)議和標(biāo)準(zhǔn),如PCIe、以太網(wǎng)等,也可能有不同的數(shù)據(jù)速率的發(fā)展和迭代,如從10.3Gbps到28Gbps,再到56Gbps等。但是如果將收發(fā)器和FPGA進(jìn)行同構(gòu)集成,也就是做在同一枚硅片上,那么每次收發(fā)器進(jìn)行功能迭代和發(fā)展,都要重新進(jìn)行整枚芯片的流片過程。同時(shí),如果需要支持不同的速率或標(biāo)準(zhǔn),就需要制造多個(gè)不同的完整芯片。因此,需要一種全新的硅片集成方式,既能保持FPGA硅片獨(dú)立不變,又能異構(gòu)連接多種收發(fā)器IP以組成完整系統(tǒng)。為了應(yīng)對這兩個(gè)問題,英特爾提出了一個(gè)名為“嵌入式多硅片互聯(lián)橋接(EmbeddedMulti-dieInterconnectBridge,EMIB)”的技術(shù)。EMIB技術(shù)的示意圖和封裝切面圖如圖1-10所示。可以看到,和賽靈思的SSI技術(shù)不同,EMIB沒有引入額外的硅中介層,而是只在兩枚硅片邊緣連接處加入了一條硅橋接層(SiliconBridge),并重新定制化硅片邊緣的I/O引腳以配合橋接標(biāo)準(zhǔn)。圖1-10EMIB技術(shù)示意圖與SSI這樣使用硅中介層的技術(shù)相比,EMIB最大的優(yōu)點(diǎn)在于它降低了系統(tǒng)的制造復(fù)雜度,并降低了不同硅片間的傳輸延時(shí)。由于無須制造覆蓋整個(gè)芯片的硅中介層,以及遍布在硅中介層上的大量硅通孔,EMIB只需使用較小的硅橋在硅片間進(jìn)行互連就可以滿足硅片間的互聯(lián)需求。同樣地,由芯片I/O至封裝引腳的連接和普通封裝技術(shù)相比并未變化,因而無須再通過TSV或硅中介層進(jìn)行走線。此外,硅橋接只需在硅片邊緣進(jìn)行,不需要在中介層中使用長導(dǎo)線。對于模擬器件(如收發(fā)器)而言,由于不存在通用的中介層,因此對高速信號(hào)的干擾明顯降低。在英特爾的Stratix10系列FPGA中,EMIB目前主要被用來進(jìn)行FPGA與收發(fā)器以及高帶寬存儲(chǔ)器HBM的連接,如圖1-11所示。這些由EMIB與FPGA互連的部分,英特爾將其稱為不同的“Tiles”(子模塊)。Stratix10系列FPGA和賽靈思的3DFPGA最大的不同點(diǎn),在于它的可編程邏輯陣列部分使用了一枚完整的FPGA硅片,而非多個(gè)分立的小型FPGA硅片,這使其理論上可以規(guī)避上文提到的多硅片模型的各種缺點(diǎn)。圖1-11使用EMIB技術(shù)進(jìn)行FPGA的異構(gòu)集成在2019年的HotChips大會(huì)上,一家名為AyarLabs的初創(chuàng)公司展示了一款名為TeraPHY的硅光學(xué)收發(fā)器。這個(gè)硅光收發(fā)器以芯粒(Chiplet)的形式,通過EMIB技術(shù)集成在英特爾Stratix10FPGA上,并完成異構(gòu)芯片封裝。相比傳統(tǒng)的電氣收發(fā)器,這個(gè)光學(xué)收發(fā)器的最高數(shù)據(jù)帶寬可達(dá)2Tbps,傳輸距離最高可達(dá)2km,而每比特的傳輸功耗則不超過1pJ(10-12J)。除了收發(fā)器和HBM外,EMIB還可以用來直接連接多個(gè)FPGA硅片。例如在前文提到的目前世界上最大的FPGA-Stratix10GX10M中,英特爾首次將兩個(gè)擁有510萬可編程邏輯單元的大型FPGA硅片通過EMIB相連,由此形成一個(gè)超大FPGA。這兩個(gè)FPGA硅片通過25920個(gè)EMIB數(shù)據(jù)接口進(jìn)行互連,其中每個(gè)數(shù)據(jù)連接可以提供2Gbps的吞吐量,因此系統(tǒng)整體的通信吞吐量高達(dá)6.5TBps。這事實(shí)上是在印證EMIB技術(shù)完全可以勝任處理超高帶寬的吞吐量需求。從另一個(gè)角度看,這種異構(gòu)集成技術(shù)解耦了FPGA與各種IP單元的開發(fā)周期,形成了一種模塊化的系統(tǒng)集成方案。這種基于EMIB的橋接方式,能夠?qū)PGA與其他不同功能的IP,以及不同的制造工藝進(jìn)行混合集成。這樣使得不同的IP可以在最優(yōu)的制造工藝下實(shí)現(xiàn),并分別進(jìn)行工藝迭代。這進(jìn)一步擴(kuò)展了FPGA的應(yīng)用場景,加速了細(xì)分產(chǎn)品的面市時(shí)間。在簡化芯片本身開發(fā)的同時(shí),研發(fā)資源也可以逐漸轉(zhuǎn)移到軟件和生態(tài)層面,相對而言降低了開發(fā)門檻,使得更多開發(fā)者加入,有助于擴(kuò)大整個(gè)生態(tài)系統(tǒng)?!?.3.5基于EMIB技術(shù)的異構(gòu)FPGA的潛在問題值得注意的是,基于EMIB的異構(gòu)FPGA集成方式也有一些潛在的問題和風(fēng)險(xiǎn)。首先,當(dāng)使用單枚較大的FPGA硅片時(shí),每代工藝早期的良率將可能會(huì)成為很大的問題,這會(huì)直接影響產(chǎn)品的面世時(shí)間。在當(dāng)前激烈的市場競爭下,誰的產(chǎn)品優(yōu)先面世,誰就能搶占更多的市場。不過,隨著半導(dǎo)體制造工藝不斷推進(jìn),技術(shù)難度不斷增加,兩代工藝的間隔會(huì)被逐漸拉長,這樣會(huì)使得每代工藝的成熟時(shí)間也對應(yīng)增長,從而在一定程度上緩解工藝早期的良率問題。第二,通過EMIB連接不同硅片后,可能會(huì)形成一個(gè)不規(guī)則的芯片結(jié)構(gòu),由此可能引發(fā)一系列潛在的問題。在英特爾Stratix10MXFPGA中(如圖1-12所示),可以看到FPGA與HBM以及收發(fā)器的布局排列并不規(guī)則。由于EMIB是無源器件,且FPGA和其他外置位IP的制作工藝、集成方法都不盡相同,例如Stratix10MX中的高帶寬存儲(chǔ)器HBM是基于TSV制造的3D芯粒。那么,在芯片工作時(shí),EMIB兩端的一致性可能會(huì)成為問題,如發(fā)熱不均衡導(dǎo)致的應(yīng)力、連接和可靠性問題等。圖1-12Stratix10MXFPGA芯片圖(圖片來自英特爾)■1.3.6EMIB技術(shù)小結(jié)EMIB是英特爾在芯片互連和集成領(lǐng)域的殺手锏,它能夠?qū)⒍喾N不同工藝、不同功能、不同大小的硅片進(jìn)行互連集成,同時(shí)提供高帶寬、低延時(shí)的數(shù)據(jù)傳輸性能。除了FPGA之外,EMIB已經(jīng)被廣泛用于英特爾的其他芯片產(chǎn)品,如旗下的NervanaAI芯片NNP-I等。值得注意的是,EMIB并不是英特爾唯一的3D互連和集成技術(shù)。事實(shí)上,上文介紹的SSI和EMIB技術(shù)也并非是真正意義上的3D芯片技術(shù),這是因?yàn)楦鱾€(gè)硅片仍然只是排列在二維平面,而只是通過額外的中介層或橋接進(jìn)行互連和集成。在業(yè)界,這種集成技術(shù)通常被稱為2.5D技術(shù),即介于二維芯片和三維芯片之間。在2019年初,英特爾就公布了一項(xiàng)名為Foveros的“真·3D”封裝技術(shù),它可以將CPU、GPU、DRAM、Cache等不同功能的硅片堆疊在一起,然后再封裝成為一枚完整的芯片。Foveros將在英特爾基于10nm工藝的LakefieldCPU上使用。值得相信,隨著半導(dǎo)體集成與封裝技術(shù)的不斷推進(jìn),諸如Foveros的3D芯片技術(shù)也必將用于FPGA上,3DFPGA芯片也終將面世并逐漸成為主流,將來也必然會(huì)出現(xiàn)更大、更復(fù)雜的FPGA器件。而驅(qū)動(dòng)它出現(xiàn)的技術(shù),也將不斷推動(dòng)科技和文明的延續(xù)。1.4突破集成度的邊界——從FPGA到ACAP■1.4.1ACAP概述2018年,賽靈思推出了名為ACAP的芯片產(chǎn)品。在發(fā)布伊始,賽靈思CEOVictorPeng就再三強(qiáng)調(diào),ACAP并不是FPGA,而是整合了硬件可編程邏輯單元、軟件可編程處理器,以及軟件可編程加速引擎的下一代計(jì)算平臺(tái),是賽靈思“發(fā)明FPGA以來最卓越的工程成就”,足可見這個(gè)產(chǎn)品系列的重要性。與其說ACAP是某種具體的芯片產(chǎn)品,不如說它像FPGA一樣,代指一種芯片架構(gòu)。在2019年,賽靈思公布了基于ACAP架構(gòu)的首款產(chǎn)品:Versal。相比傳統(tǒng)的FPGA架構(gòu),VersalACAP在系統(tǒng)架構(gòu)、電路結(jié)構(gòu)、互連方式等很多方面進(jìn)行了大膽革新。在本節(jié)中,筆者將對Versal和ACAP的各項(xiàng)技術(shù)創(chuàng)新進(jìn)行詳細(xì)的介紹與解讀?!?.4.2芯片架構(gòu):在傳統(tǒng)中變革VersalACAP基于臺(tái)積電的7nm工藝制造,它的芯片布局如圖1-13所示??傮w來看,它與傳統(tǒng)FPGA結(jié)構(gòu)非常類似,主要包含可編程邏輯部分、高速I/O與收發(fā)器、嵌入式處理器、存儲(chǔ)器控制等FPGA的常見硬件資源與模塊。圖1-13VersalACAP芯片資源布局與傳統(tǒng)FPGA相比,ACAP架構(gòu)有兩點(diǎn)主要的不同:第一,芯片中固化了一組AI加速引擎陣列,如圖1-14所示。在Versal中,包含400個(gè)AI引擎單元(AIEngine),并按橫豎兩個(gè)方向分布排列。這些AI加速引擎主要用來加速神經(jīng)網(wǎng)絡(luò)的推斷計(jì)算和無線網(wǎng)絡(luò)等應(yīng)用中常見的數(shù)學(xué)計(jì)算和信號(hào)處理,其峰值INT8性能可以達(dá)到133TOPs。在每個(gè)AI加速引擎中,包含兩種內(nèi)置處理器,一個(gè)是32位的RISC處理器,另外一個(gè)是有著512位數(shù)據(jù)總線的向量處理器,可以進(jìn)行單指令多數(shù)據(jù)(SIMD)的定點(diǎn)數(shù)與浮點(diǎn)數(shù)并行計(jì)算。此外,每個(gè)AI引擎有32KB分布式內(nèi)存,其中L1緩存有12.5MB。每個(gè)AI引擎的內(nèi)存單元也可以和臨近的AI引擎以DMA的方式共享。ACAP架構(gòu)的第二個(gè)創(chuàng)新點(diǎn)是在傳統(tǒng)FPGA片上互連技術(shù)的基礎(chǔ)上,采用了固化的片上網(wǎng)絡(luò)(NetworkonChip,NoC)技術(shù),這主要是針對高帶寬、高吞吐量的應(yīng)用場景。NoC一方面可以提供超高的數(shù)據(jù)傳輸帶寬,另一方面減少了布局布線的壓力。因此,相比于傳統(tǒng)的FPGA互連方法,NoC可以提供高達(dá)8倍的能效優(yōu)化。圖1-14VersalACAP中的AI加速引擎陣列(圖片來自賽靈思)相比基于CPU或GPU的開發(fā),F(xiàn)PGA開發(fā)最大的痛點(diǎn)之一就是編譯時(shí)間過長。通常情況下,編譯一個(gè)中等規(guī)模的FPGA設(shè)計(jì)往往需要幾個(gè)小時(shí)之久。為此,VersalACAP架構(gòu)采用了更加規(guī)整的可編程邏輯陣列和時(shí)鐘域分布。通過這種方式,大大提升了IP接口的復(fù)用性。也就是說,把一個(gè)IP從一個(gè)位置移動(dòng)到另一個(gè)位置時(shí),不需要對整個(gè)設(shè)計(jì)重新編譯,只需要單獨(dú)處理修改的部分即可。這樣一來,用戶可以重復(fù)使用已經(jīng)完成布局布線的“半成品”或“模板”,只需要在事先保留的區(qū)域內(nèi)加入新設(shè)計(jì)即可,這樣可以極大地減少編譯時(shí)間?!?.4.3CLB微結(jié)構(gòu):翻天覆地CLB是可編程邏輯塊(ConfigurableLogicBlock)的縮寫,它包含了多個(gè)可編程邏輯單元及其互連,是FPGA體系架構(gòu)中的主要組成部分。與傳統(tǒng)FPGA相比,VersalACAP對它的CLB微結(jié)構(gòu)進(jìn)行了“翻天覆地”式的重大革新。其中,最主要的架構(gòu)變化有以下4點(diǎn)。第一,與賽靈思現(xiàn)有的UltraScaleFPGA架構(gòu)相比,ACAP中的CLB面積擴(kuò)大了4倍,如圖1-15所示。也就是說,在新的CLB中包含32個(gè)LUT和64個(gè)寄存器。這樣做的主要目的,是為了減少全局布線資源的使用。ACAP為每個(gè)CLB設(shè)置了單獨(dú)的內(nèi)部高速互連,與全局布線相比,這些內(nèi)部互連更加快速,布線邏輯也更簡單,從而減輕了全局布線的壓力與擁擠。采用了大CLB后,有18%的布線可以直接通過內(nèi)部互連完成。而對于傳統(tǒng)FPGA,只有7%的布線能在CLB內(nèi)完成,而其他的布線都需要通過占用全局布線資源。圖1-15VersalACAP的新CLB結(jié)構(gòu)第二,每個(gè)查找表結(jié)構(gòu)LUT增加了一個(gè)額外的輸出,這是一個(gè)重要的架構(gòu)變化,如圖1-16所示。傳統(tǒng)FPGA的LUT結(jié)構(gòu)曾經(jīng)只有4個(gè)輸入,當(dāng)前的大部分FPGA已經(jīng)將其增加為6輸入、2輸出,從而可以實(shí)現(xiàn)任意的6輸入邏輯,或者兩個(gè)5輸入邏輯。當(dāng)添加了一個(gè)新的輸出之后,就可以在一個(gè)LUT內(nèi)實(shí)現(xiàn)兩個(gè)獨(dú)立的6輸入邏輯功能。這種結(jié)構(gòu)的另外一個(gè)好處是允許更多的邏輯功能進(jìn)行合并,以減少LUT的使用量。FPGA設(shè)計(jì)工具會(huì)根據(jù)兩個(gè)LUT的距離,判斷這兩個(gè)LUT里的邏輯能否進(jìn)行合并。例如,與UltraScale架構(gòu)相比,當(dāng)兩個(gè)LUT之間的距離小于5個(gè)Slice網(wǎng)格距離時(shí),VersalACAP架構(gòu)能多合并21.5%的邏輯功能,從而減少相應(yīng)的硬件資源使用。圖1-16VersalACAP的新LUT結(jié)構(gòu)作為代價(jià),在UltraScale架構(gòu)中的寬函數(shù)功能被移走。因此如果需要實(shí)現(xiàn)例如32選1的選擇器時(shí),可能就會(huì)將邏輯擴(kuò)展到多個(gè)邏輯片,而這將對時(shí)序造成負(fù)面影響,并且需要額外的硬件資源支持。第三,每個(gè)邏輯片的進(jìn)位鏈邏輯結(jié)構(gòu)進(jìn)行了徹底修改。在這其中,一直是現(xiàn)代FPGA標(biāo)配的加法器進(jìn)位鏈被完全移除,取而代之的是使用LUT中新增加的“進(jìn)位輸入”信號(hào)和查找表邏輯完成加法和進(jìn)位傳輸。第四,引入了名為“Imux寄存器”的新結(jié)構(gòu)。這種結(jié)構(gòu)與英特爾Stratix10和Agilex系列FPGA中的HyperFlex架構(gòu)有著異曲同工之妙,它們的主要目的都是用于在關(guān)鍵路徑中引入額外的寄存器和流水線層級(jí),從而實(shí)現(xiàn)流水線重定時(shí)(Retiming),加速時(shí)序收斂的過程。關(guān)于英特爾HyperFlex架構(gòu)的細(xì)節(jié)介紹,將會(huì)在1.5節(jié)給出。值得注意的是,與HyperFlex架構(gòu)相比,賽靈思的Imux結(jié)構(gòu)有著它的不同之處。例如,這些Imux寄存器包含了復(fù)位、初始化、時(shí)鐘使能等常見的寄存器功能,而不是HyperFlex里采用的鎖存器(Latch)結(jié)構(gòu)。此外,Imux只存在于CLB之前,且并沒有在全部的布線資源上都設(shè)置寄存器,因此引入的額外延時(shí)會(huì)更小。但在深度流水線設(shè)計(jì)中,這種結(jié)構(gòu)的絕對性能應(yīng)該不如HyperFlex?!?.4.4第四代SSI技術(shù):3DFPGA的進(jìn)一步優(yōu)化ACAP采用了賽靈思的第四代硅片堆疊技術(shù)SSI。SSI的技術(shù)細(xì)節(jié)和主要優(yōu)缺點(diǎn)在前文已經(jīng)詳細(xì)介紹過。針對SSI技術(shù)延時(shí)較高的主要缺點(diǎn),ACAP在架構(gòu)層面進(jìn)行了大量優(yōu)化。例如,在Versal架構(gòu)中,采用了更多的硅片間的互聯(lián)通道(SLLChannel)。同時(shí),這些互聯(lián)通道的傳輸延時(shí)也得到了進(jìn)一步優(yōu)化,相比傳統(tǒng)連線的延時(shí)下降了30%。■1.4.5片上網(wǎng)絡(luò):高帶寬數(shù)據(jù)傳輸?shù)娜吕髟谥T如DDR存儲(chǔ)器、高速網(wǎng)絡(luò)、PCIe等高速接口與應(yīng)用中,通常有著很高的帶寬要求。為了應(yīng)對這個(gè)問題,一方面需要采用高位寬的總線,另一方面需要高速時(shí)鐘。因此,傳統(tǒng)的FPGA設(shè)計(jì)方法都是通過對總線進(jìn)行深度流水線來實(shí)現(xiàn)高帶寬和高吞吐量。但是,對于一個(gè)大型設(shè)計(jì)而言,這種方法會(huì)很快造成FPGA片上布線資源的擁擠,繼而導(dǎo)致時(shí)序收斂困難和性能下降。這就需要尋找有效的方法,同時(shí)解決高速數(shù)據(jù)傳輸和低擁堵布線兩個(gè)問題。ACAP帶來的答案就是片上網(wǎng)絡(luò)NoC技術(shù),它的結(jié)構(gòu)示意圖如圖1-17所示。在傳統(tǒng)的FPGA布線資源之外,ACAP引入了固化的NoC網(wǎng)絡(luò),將需要進(jìn)行高速數(shù)據(jù)傳輸?shù)膬?nèi)容轉(zhuǎn)化成基于數(shù)據(jù)包的形式,通過片上網(wǎng)絡(luò)的交換機(jī)邏輯實(shí)現(xiàn)數(shù)據(jù)交換。這種方法最大的優(yōu)點(diǎn)是,在系統(tǒng)層面將數(shù)據(jù)傳輸與數(shù)據(jù)計(jì)算進(jìn)行了分離,從而在保證帶寬的基礎(chǔ)上,緩解了系統(tǒng)的布局布線壓力。例如,數(shù)據(jù)計(jì)算可以在AI引擎或片上其他部分實(shí)現(xiàn),而不需緊靠DDR控制器等高速接口。同時(shí),與網(wǎng)絡(luò)應(yīng)用類似,這種片上網(wǎng)絡(luò)也能對各類的傳輸進(jìn)行服務(wù)質(zhì)量控制(QoS)。圖1-17ACAP采用的片上網(wǎng)絡(luò)NoC結(jié)構(gòu)示意圖不過,在FPGA上采用片上網(wǎng)絡(luò)的主要問題是引入了額外的傳輸延時(shí),這對于需要固定延時(shí)或者低延時(shí)的應(yīng)用可能會(huì)有影響。此外,片上網(wǎng)絡(luò)的位寬是固定的,無法對應(yīng)用進(jìn)行優(yōu)化,這也有可能對不同應(yīng)用的系統(tǒng)性能造成負(fù)面影響。1.5靈活與敏捷共存——英特爾AgilexFPGA伴隨著英特爾10nm工藝的逐漸成熟,基于10nm工藝的FPGA也終于揭開了它神秘的面紗。2019年4月,曾經(jīng)代號(hào)為FalconMesa的英特爾最新一代10nmFPGA正式亮相,并命名為“Agilex”。Agilex是Agile(敏捷)和Flexible(靈活)的結(jié)合,而這兩個(gè)特點(diǎn)正是現(xiàn)代FPGA技術(shù)最為核心的兩大要點(diǎn)。具體來說,“靈活性”就是指可編程性,它基于FPGA的核心技術(shù)——可編程邏輯陣列,可以靈活地針對不同應(yīng)用場景進(jìn)行編程,并改變FPGA的邏輯結(jié)構(gòu)和功能。“敏捷性”指的是異構(gòu),它既可以是不同邏輯單元之間的異構(gòu),也可以是不同工藝的異構(gòu),或者兩者兼而有之。前文曾提到,不同類型的IP所對應(yīng)的成熟工藝與迭代時(shí)間都不盡相同,只有采用異構(gòu)的模式,才能充分發(fā)揮不同IP和不同工藝節(jié)點(diǎn)的優(yōu)勢,取長補(bǔ)短,在性能和成本上取得良好的平衡。正因如此,異構(gòu)FPGA也是未來FPGA架構(gòu)發(fā)展和研究的主要方向。在這個(gè)大背景下,AgilexFPGA應(yīng)運(yùn)而生。它既包含了傳統(tǒng)FPGA靈活的可編程性,又結(jié)合了現(xiàn)代FPGA基于異構(gòu)架構(gòu)的敏捷性,因此能夠同時(shí)適用于眾多應(yīng)用領(lǐng)域,并針對不同的應(yīng)用場景進(jìn)行配置和快速迭代。與進(jìn)化多年的Stratix、Arria、Cyclone、Max等FPGA產(chǎn)品系列相比,Agilex是原FPGA巨頭Altera在2015年底被英特爾收購,并成為其可編程方案事業(yè)部(PSG)后正式推出的一個(gè)全新的FPGA系列。正因如此,Agilex無疑被英特爾寄予了更多的期待。在這些期待背后,離不開來自英特爾的核心技術(shù)的加持。而這也將是區(qū)分Agilex與它的前代產(chǎn)品,以及其他競爭產(chǎn)品的最主要的優(yōu)勢?!?.5.1英特爾10nm工藝能否后發(fā)制人英特爾在半導(dǎo)體領(lǐng)域稱雄幾十年,靠的就是兩個(gè)獨(dú)門絕技:第一是眾所周知的x86架構(gòu),第二則是曾經(jīng)遙遙領(lǐng)先競爭對手的半導(dǎo)體制造工藝。這也促成了英特爾著名的“Tick-Tock”戰(zhàn)略,即架構(gòu)和工藝的更新逐年交錯(cuò)進(jìn)行,同時(shí)還能保持處理器性能的穩(wěn)步增長?,F(xiàn)已退休的MarkBohr(馬克·波爾)曾是負(fù)責(zé)英特爾工藝研發(fā)的靈魂人物之一,他是英特爾資深院士(SeniorFellow)和美國工程院院士,并曾任英特爾半導(dǎo)體科技與制造業(yè)務(wù)部總監(jiān)。在40余年的英特爾職業(yè)生涯中,波爾和他的同事們不斷的突破物理學(xué)極限,使計(jì)算機(jī)系統(tǒng)在不斷縮小的同時(shí),性能卻成倍增強(qiáng)。這使得在過去的幾十年時(shí)間內(nèi),英特爾的半導(dǎo)體工藝技術(shù)一直處于世界的絕對領(lǐng)先位置。因此,波爾在業(yè)界享有盛名,被譽(yù)為是不斷推動(dòng)摩爾定律前進(jìn)的人。在2017年9月,波爾曾在英特爾的“精尖制造日”上發(fā)表了名為“工藝領(lǐng)導(dǎo)者”的主旨演講。這個(gè)演講最重要的內(nèi)容之一,就是發(fā)布了英特爾的10nm工藝路線圖。波爾認(rèn)為,相比于前幾代工藝發(fā)展的時(shí)間節(jié)點(diǎn),10nm的研發(fā)周期將會(huì)更久,但同時(shí)也會(huì)帶來更高的性能提升,由此在整體上保持摩爾定律的延續(xù)。后來的故事我們都知道了,英特爾這家芯片巨頭在10nm工藝上遇到了阻礙。后來,波爾也承認(rèn)說“我認(rèn)為,我們在10nm工藝上有些沖動(dòng)了”,“也許我們應(yīng)該下調(diào)一些我們的目標(biāo),這樣過渡起來就會(huì)容易得多”。這次受阻的結(jié)果是,曾經(jīng)被遠(yuǎn)遠(yuǎn)甩在身后的競爭者們紛紛在10nm這個(gè)工藝節(jié)點(diǎn)完成了超車。在過去的幾年中,臺(tái)積電和三星都逐漸將自家的10nm工藝投入量產(chǎn),并已經(jīng)開始布局7nm甚至更小制程的研發(fā)和路線圖規(guī)劃。終于,在2019年初,痛定思痛的英特爾一口氣發(fā)布了4款基于10nm工藝的芯片產(chǎn)品,包括“IceLake”和“Lakefiled”CPU,以及“SnowRidge”網(wǎng)絡(luò)處理器等。這些新產(chǎn)品涵蓋了個(gè)人計(jì)算平臺(tái)、數(shù)據(jù)中心、5G網(wǎng)絡(luò)等多個(gè)應(yīng)用領(lǐng)域。而這次發(fā)布的Agilex系列FPGA,也正是基于英特爾10nm工藝的旗艦級(jí)FPGA產(chǎn)品。在Agilex系列FPGA中,使用了基于10nm工藝的第二代EMIB技術(shù),用來連接可編程邏輯陣列以及周圍的各類芯粒(Chiplet)。前文介紹過,與賽靈思采用的SSI技術(shù)相比,EMIB不需要引入額外的硅中介層,因此也不需要SSI技術(shù)中不可或缺的大量硅通孔,這樣顯著降低了系統(tǒng)的制造復(fù)雜度。EMIB不需要在中介層中使用長導(dǎo)線,因此降低了不同晶片間的傳輸延時(shí),減少了信號(hào)的傳輸干擾。另外,EMIB可以將不同的子芯片集進(jìn)行快速連接和互換,從而實(shí)現(xiàn)芯片的快速迭代?!?.5.2全新的芯片布局與微架構(gòu)優(yōu)化相比目前的英特爾旗艦FPGA系列Stratix10,Agilex在芯片布局和微架構(gòu)設(shè)計(jì)上都做出了多個(gè)重要改變。Agilex的芯片布局如圖1-18所示。與現(xiàn)有的英特爾FPGA相似,Agilex也使用了EMIB技術(shù)提供多個(gè)異構(gòu)硅片之間的高速互連,特別是可編程邏輯部分與不同速度的收發(fā)器Tile之間的連接。在圖1-18中可以看到,收發(fā)器固定位于芯片的東西兩側(cè),而其他的非可編程邏輯結(jié)構(gòu),例如通用I/O接口、存儲(chǔ)器接口、嵌入式SRAM、4核ARMCPU等,都將固定位于芯片的南北兩側(cè)。Agilex在芯片布局上的一個(gè)重大變化,就是將原本位于芯片中間的很多通用I/O、存儲(chǔ)器I/O、硬核處理器等部分移到了芯片兩端。在英特爾之前的幾代FPGA中,例如Arria10系列和Stratix10系列FPGA,可編程邏輯陣列、I/O單元、存儲(chǔ)器、DSP等邏輯結(jié)構(gòu)都是按列為單位進(jìn)行間隔排列的,如圖1-19所示。事實(shí)上,這也是包括賽靈思在內(nèi)的其他FPGA廠商所常用的FPGA芯片布局方法。圖1-18AgilexFPGA的芯片布局示意圖圖1-19英特爾Arria10系列FPGA的芯片布局這種間隔排列的結(jié)構(gòu)最大的優(yōu)點(diǎn)在于,它能簡化FPGA設(shè)計(jì)過程中對硬件資源的布局規(guī)劃,特別是與I/O引腳相關(guān)的布局。這是因?yàn)樵谶@種架構(gòu)中,每個(gè)邏輯單元與I/O單元的距離近似,所以在布局和放置時(shí)有著比較高的靈活性。然而,這種結(jié)構(gòu)最突出的缺點(diǎn)是,它相當(dāng)于人為地將一整片可編程邏輯陣列分成了很多區(qū)域,這就極大地增加了跨區(qū)域的布線延時(shí)。同時(shí),對于高速且大型的設(shè)計(jì)而言,這種結(jié)構(gòu)很有可能造成局部的布局擁塞。相信對于很多有經(jīng)驗(yàn)的FPGA工程師來說,他們在很多實(shí)際的項(xiàng)目中都可以看到這樣一種情況,即FPGA片上有很多區(qū)域的設(shè)計(jì)擁堵嚴(yán)重,而其他區(qū)域卻有著大量可用資源。造成這個(gè)問題的根源之一,就是FPGA的這種列型結(jié)構(gòu)。在Agilex里,這些I/O單元被移到了整個(gè)邏輯陣列的上下兩側(cè),從而在中間形成了一個(gè)更加規(guī)整的可編程陣列布局,如圖1-20所示。由于消除了I/O單元對邏輯陣列帶來的區(qū)隔,系統(tǒng)性能得到了提升,這也會(huì)極大簡化時(shí)序計(jì)算,并提升對硬件資源布局與放置的靈活性。圖1-20英特爾AgilexFPGA的芯片布局在微架構(gòu)方面,Agilex對其中的自適應(yīng)邏輯模塊ALM進(jìn)行了設(shè)計(jì)優(yōu)化,以進(jìn)一步降低其傳輸延時(shí)。ALM是英特爾FPGA的基本可編程單元,在Stratix10FPGA中,它的ALM結(jié)構(gòu)如圖1-21所示??梢钥吹剑饕粋€(gè)6輸入LUT,一個(gè)加法器進(jìn)位鏈,以及4個(gè)輸出寄存器。多個(gè)ALM可以組成更大的可編程陣列,名為邏輯陣列塊(LogicArrayBlock,LAB)。圖1-21Stratix10FPGA的ALM結(jié)構(gòu)和Stratix10相比,Agilex對ALM做了不少架構(gòu)升級(jí),如圖1-22所示。其中,增加了兩個(gè)LUT的快速輸出端口,使得LUT的輸出可以直連HyperFlex寄存器,而無須再通過ALM內(nèi)部的寄存器中轉(zhuǎn)。這顯然是針對利用HyperFlex對關(guān)鍵路徑進(jìn)行重定時(shí)(Retiming)的應(yīng)用場景而進(jìn)行的優(yōu)化。同時(shí),ALM內(nèi)部的寄存器靈活性得到了極大增強(qiáng),可以看到,AgilexALM的每個(gè)寄存器輸入都增加了一個(gè)4輸入選擇器,用來選通不同的輸入信號(hào)。同時(shí),ALM里的4個(gè)寄存器都可以通過兩個(gè)獨(dú)立的時(shí)鐘進(jìn)行控制。圖1-22AgilexFPGA的ALM結(jié)構(gòu)除了ALM之外,Agilex還特別增加了片上內(nèi)存MLAB(MemoryLAB)的邏輯密度。與Stratix10相比,單位面積內(nèi)Agilex有著雙倍的MLAB密度,而且50%的LAB可以配置成存儲(chǔ)器模式。這個(gè)優(yōu)化很明顯是針對高帶寬需求的應(yīng)用領(lǐng)域,如AI相關(guān)的計(jì)算加速等。圖1-23Agilex的布線節(jié)點(diǎn)(圖片來自英特爾)Agilex還對FPGA的布線單元進(jìn)行了重新設(shè)計(jì),如圖1-23所示。其中,DIM(DriverInputMux)、LIM(LogicInputMux)、LEIM(LogicElementInputMux)如圖1-23所示??梢钥吹?,每個(gè)交換節(jié)點(diǎn)都只連接一個(gè)邏輯功能單元(可以是LAB、RAM、DSP等),但可以連接多個(gè)其他的布線單元或者其他的交換節(jié)點(diǎn)。在之前的FPGA架構(gòu)中,通常情況下一個(gè)交換節(jié)點(diǎn)會(huì)和左右兩側(cè)的兩個(gè)邏輯功能單元進(jìn)行連接。這樣的簡化設(shè)計(jì)使得Agilex整體的布線架構(gòu)更加簡潔,也在很大程度上減少了交換節(jié)點(diǎn)MUX的輸入,從而在保證布線靈活性的基礎(chǔ)上,有效地降低容抗,并提升性能。事實(shí)上,之前就有研究表明,F(xiàn)PGA的布線節(jié)點(diǎn)并不需要保持全連接。而Agilex則更進(jìn)一步,直接做成了1對1連接,相信這也對FPGA設(shè)計(jì)工具和布局布線算法提出了更高的要求。此外,Agilex對各個(gè)邏輯單元之間延時(shí)的統(tǒng)一性做了針對性的優(yōu)化。在之前的FPGA中,由于存在不可避免的工藝和時(shí)序變化(Variation),會(huì)特意對芯片上的各種硬件資源做差異化處理。也就是說,同樣的硬件資源可能有著不同的延時(shí)分布。從理論上講,F(xiàn)PGA設(shè)計(jì)工具會(huì)在優(yōu)化設(shè)計(jì)時(shí)自動(dòng)避免將慢速資源分配到關(guān)鍵路徑上。但在實(shí)際應(yīng)用中,這并非總是可行的。例如,在高速設(shè)計(jì)或深度流水線設(shè)計(jì)中,就可能存在多條與關(guān)鍵路徑有著類似延時(shí)的路徑,即“NearCriticalPath”,而這就會(huì)給資源分配造成很大的限制,也會(huì)極大增加EDA工具的計(jì)算難度。圖1-24Stratix10與Agilex的延時(shí)分布對比(圖片來自英特爾)為了應(yīng)對這個(gè)問題,Agilex使用了基本同化的硬件資源,以及對應(yīng)的布線方法,從而使得各個(gè)硬件資源的延時(shí)趨于近似。從圖1-24中可以清楚地看到,相比Stratix10FPGA,Agilex的延時(shí)分布非常平坦。這樣就簡化了布局布線工具對資源分配的過程,從而提升了開發(fā)效率和系統(tǒng)性能?!?.5.3CXL:CPU與FPGA互連的終極方案當(dāng)前,F(xiàn)PGA的一個(gè)主要應(yīng)用場景是在數(shù)據(jù)中心里作為CPU的硬件加速器,用來加速各類應(yīng)用,如深度學(xué)習(xí)的模型訓(xùn)練、金融計(jì)算、網(wǎng)絡(luò)功能卸載等,這在本書后面的章節(jié)將會(huì)詳細(xì)介紹。在數(shù)據(jù)中心的CPU領(lǐng)域,英特爾的XeonCPU一直是最強(qiáng)王者,占據(jù)著大多數(shù)的市場份額。雖然大量競爭對手都不斷嘗試從中分一杯羹,例如x86陣營的AMD,或者ARM陣營的高通等,但至少目前還沒有對英特爾的支配地位形成足夠的威脅。在這種情況下,作為數(shù)據(jù)中心加速器的FPGA,首先需要考慮的就是與XeonCPU的兼容性問題。很明顯,作為具有“純正血統(tǒng)”的AgilexFPGA,從出生就相比競爭對手占據(jù)了天時(shí)和地利的優(yōu)勢。緩存一致性問題一直是硬件加速器領(lǐng)域亟待解決的核心問題之一。解決這個(gè)問題的主要方法,就是明確和標(biāo)準(zhǔn)化普及CPU與硬件加速器之間的內(nèi)存互聯(lián)協(xié)議,就好比大家熟知的用于CPU和加速器通信的PCIe協(xié)議等?;诖耍芏喟雽?dǎo)體公司與設(shè)備廠商發(fā)起了多種多樣的緩存一致性協(xié)議,具有代表性的包括AMD、高通等公司發(fā)起的CCIX,見圖1-25,以及IBM發(fā)起的OpenCAPI等,見圖1-26。每個(gè)協(xié)議陣營都包含了CPU廠商,以及加速器廠商,負(fù)責(zé)提供FPGA或網(wǎng)絡(luò)加速器等方案??梢钥吹?,英特爾并不屬于這兩個(gè)陣營中的任何一個(gè)。在2019年3月,英特爾宣布聯(lián)合微軟、阿里、思科、戴爾EMC、Facebook、谷歌、惠普企業(yè)HPE和華為等公司,共同組建一個(gè)全新的緩存一致性標(biāo)準(zhǔn),名為CXL(ComputeExpressLink),如圖1-27所示。值得注意的是,與OpenCAPI和CCIX的主要發(fā)起公司多為半導(dǎo)體公司不同,CXL的發(fā)起者中有4個(gè)互聯(lián)網(wǎng)巨頭、兩個(gè)服務(wù)器設(shè)備制造商,以及兩個(gè)網(wǎng)絡(luò)設(shè)備制造商。這種多元性立體地呈現(xiàn)了CXL的目標(biāo)應(yīng)用領(lǐng)域:互聯(lián)網(wǎng)數(shù)據(jù)中心、通信基礎(chǔ)設(shè)施、云計(jì)算與云服務(wù),等等。而這些領(lǐng)域也正是FPGA大顯身手的重要平臺(tái)。圖1-25CCIX的主要成員圖1-26OpenCAPI的主要成員對于AgilexFPGA,它將原生支持CXL協(xié)議,并將成為業(yè)界首款面向Xeon可擴(kuò)展處理器的內(nèi)存一致性硬件加速器。值得注意的是,CXL協(xié)議基于第五代PCIe協(xié)議進(jìn)行設(shè)計(jì)和擴(kuò)展,這樣可以完全復(fù)用PCIePHY和通道,與其他類似的協(xié)議相比有著更好的易用性。這在天時(shí)和地利的基礎(chǔ)上,勢必為Agilex在數(shù)據(jù)中心的使用帶來巨大的人和優(yōu)勢。圖1-27CXL的主要成員■1.5.4可變精度DSP:全力支持AI應(yīng)用在人工智能應(yīng)用中,F(xiàn)PGA的最大優(yōu)勢之一就是可以在運(yùn)算時(shí)采用可變精度,而不是CPU等芯片中采用的固定字長,從而帶來巨大的性能提升。在現(xiàn)有的英特爾FPGA中,就以硬核的方式固化了定點(diǎn)數(shù)及雙精度浮點(diǎn)數(shù)(FP32)的DSP單元,以提升相應(yīng)操作的性能,并降低功耗。在AgilexFPGA中,又加入了對FP8、單精度浮點(diǎn)數(shù)FP16和塊浮點(diǎn)數(shù)BFLOAT16的支持,同時(shí)也增加了DSP中不同精度乘法器的數(shù)量、并擴(kuò)展了乘法器的配置方式。一些常用的DSP配置結(jié)構(gòu)示意圖如圖1-28所示,請注意這里是簡化過的結(jié)構(gòu)圖,更多細(xì)節(jié)可以去英特爾官方的AgilexFPGA可變精度DSP支持文檔里查看。通過支持不同精度的DSP配置,使得FPGA既可以使用浮點(diǎn)數(shù)進(jìn)行AI模型的訓(xùn)練,也可以使用更低精度的定點(diǎn)數(shù)進(jìn)行AI模型的推斷。可以說,這些針對AI應(yīng)用的革新,勢必會(huì)極大地?cái)U(kuò)大未來FPGA在AI領(lǐng)域的使用范圍。圖1-28Agilex可變精度DSP的一些配置模式■1.5.5增強(qiáng)版HyperFlex架構(gòu)與CPU或GPU相比,F(xiàn)PGA的時(shí)鐘頻率很低,通常只有200~400MHz。因此,為了達(dá)到一定的吞吐量需求,F(xiàn)PGA需要使用更高的數(shù)據(jù)總線寬度,以彌補(bǔ)時(shí)鐘頻率的不足。但過寬的數(shù)據(jù)總線會(huì)帶來布局布線的擁擠,以及時(shí)序的收斂問題。所以,在現(xiàn)代FPGA架構(gòu)中,如何不斷提升FPGA的工作頻率,一直是業(yè)界研究的重點(diǎn)。HyperFlex架構(gòu)是英特爾在Stratix10系列FPGA上采用的一項(xiàng)主要架構(gòu)創(chuàng)新。它的主要思想就是在FPGA的布線網(wǎng)絡(luò)上,加入很多名為Hyper-Register的小型寄存器,這樣可以把原本比較長的時(shí)序路徑分割成多個(gè)較短的路徑,從而達(dá)到提升工作頻率的目的。但是,理想很豐滿,現(xiàn)實(shí)很骨感。這樣的設(shè)計(jì)有著很好的初衷,但在實(shí)際應(yīng)用中還是存在著很多的問題。在很多情況下,不是所有的Hyper-Register都會(huì)被使用,這就需要每個(gè)寄存器都配備一個(gè)2:1選擇器用來選通,以控制Hyper-Register的使用。然而,這樣的架構(gòu)反而會(huì)帶來較大的額外延時(shí),也使FPGA設(shè)計(jì)工具中的重定時(shí)和自動(dòng)流水線算法變得更加復(fù)雜。此外,每個(gè)Hyper-Register并非由邊沿驅(qū)動(dòng)的“寄存器”(flip-flop),而是由脈沖驅(qū)動(dòng)的“鎖存器”(latch),這就使得它的時(shí)序特性較差,并且非常容易受工藝變化(ProcessVariation)的影響。顯然,英特爾也意識(shí)到了這些問題。在AgilexFPGA中,采用了“第二代”HyperFlex架構(gòu),并對上面的問題進(jìn)行了大幅改進(jìn)。新一代的Hyper-Register把鎖存器替換成了寄存器,并對驅(qū)動(dòng)節(jié)點(diǎn)進(jìn)行了重新設(shè)計(jì),使得Hyper-Register的旁路延時(shí)最高降低了40%。同時(shí),Agilex在布線網(wǎng)絡(luò)中移除了近2/3的Hyper-Register,這無論對于面積、功耗,或是設(shè)計(jì)工具的優(yōu)化來說,都是極為有利的。與Stratix10相比,Agilex可以取得平均41%的性能提升。在英特爾公布的基準(zhǔn)測試數(shù)據(jù)中,AgilexFPGA工程樣片最高時(shí)鐘頻率的平均值是566MHz,最小值是284MHz,而最高的時(shí)鐘頻率則達(dá)到了951MHz。相比于傳統(tǒng)FPGA設(shè)計(jì)的300MHz左右的時(shí)鐘頻率,這組數(shù)據(jù)也標(biāo)志著FPGA的時(shí)鐘頻率提升到了一個(gè)全新的高度。同時(shí)應(yīng)該注意到,盡管Agilex使用了10nm工藝,但相比Stratix10而言,Agilex使用了更低的電壓以降低功耗。在這個(gè)背景下,這些頻率的提升很多都?xì)w功于Agilex的架構(gòu)創(chuàng)新。這也讓人們對Agilex量產(chǎn)并交付后的表現(xiàn)更加期待。■1.5.6oneAPI:英特爾的雄心oneAPI是英特爾在生態(tài)布局中最重要的一環(huán),這已經(jīng)不是什么秘密了。在2018年底舉行的英特爾架構(gòu)日上,英特爾的芯片首席架構(gòu)師RajaKoduri對外公布了公司正在著力研發(fā)的一件“大事”:oneAPI的軟件編程框架,而AgilexFPGA也將成為首款支持oneAPI的FPGA產(chǎn)品。顧名思義,oneAPI將會(huì)為英特爾旗下的各類芯片產(chǎn)品,包括CPU、GPU、FPGA,以及各種AI和其他應(yīng)用的硬件加速器等,提供一個(gè)統(tǒng)一的軟件編程接口,使得開發(fā)者可以隨意在底層硬件之間進(jìn)行切換和優(yōu)化,而無須太多關(guān)心具體的電路結(jié)構(gòu)和細(xì)節(jié)。除了編程接口外,oneAPI還包含一個(gè)完整的開發(fā)環(huán)境、軟件庫、驅(qū)動(dòng)程序等。這個(gè)跨平臺(tái)的編程框架代表了英特爾最大的野心,就是將旗下所有的芯片和硬件產(chǎn)品通過這個(gè)軟件系統(tǒng)連接起來,實(shí)現(xiàn)無縫切換,并適用于各類主流應(yīng)用。同時(shí),可以預(yù)見英特爾還將圍繞這個(gè)軟件系統(tǒng)逐步構(gòu)建生態(tài)環(huán)境。因此這個(gè)系統(tǒng)一旦實(shí)現(xiàn),將成為其他競爭對手難以匹敵的優(yōu)勢。有關(guān)oneAPI的更多內(nèi)容,將在第4章中詳細(xì)介紹。1.6本章小結(jié)很多人將FPGA比作積木,是因?yàn)镕PGA就像積木那樣,可以用來搭建和實(shí)現(xiàn)各種應(yīng)用。然而,制造和設(shè)計(jì)FPGA本身卻不像搭積木那樣簡單。FPGA從發(fā)明到興起已超過30年的時(shí)間。作為摩爾定律的完美體現(xiàn),F(xiàn)PGA見證了半導(dǎo)體行業(yè)從小到大、從弱到強(qiáng)的不斷演進(jìn)。我們現(xiàn)在正處于一個(gè)充滿變數(shù)的時(shí)代。隨著摩爾定律進(jìn)入黃昏,集成電路在性能、功耗和成本上的進(jìn)步可能會(huì)越來越慢,半導(dǎo)體行業(yè)的發(fā)展也進(jìn)入了重要的十字路口。如何延續(xù)發(fā)展,如何尋找下一個(gè)行業(yè)爆發(fā)點(diǎn),已經(jīng)成為業(yè)界努力追求的目標(biāo)。值得欣喜的是,F(xiàn)PGA再一次成為了最早實(shí)踐全新

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論