在日前召開的FPGA領(lǐng)域的學(xué)術(shù)頂會(huì)--2019年“FPGA國(guó)際研討會(huì)”上,賽靈思發(fā)表了兩篇長(zhǎng)論文,詳細(xì)介紹了賽靈思“自適應(yīng)計(jì)算加速平臺(tái)”ACAP的系統(tǒng)架構(gòu)和技術(shù)細(xì)節(jié)。本文將對(duì)ACAP的主要架構(gòu)創(chuàng)新進(jìn)行深入解讀,讓各位先睹為快。
ACAP是賽靈思在2018年推出的新一代計(jì)算平臺(tái)。在發(fā)布伊始,賽靈思新任掌門人Victor Peng就再三強(qiáng)調(diào),ACAP并不是FPGA,而是整合了硬件可編程邏輯單元、軟件可編程處理器、以及軟件可編程加速引擎的計(jì)算平臺(tái)產(chǎn)品,是賽靈思“發(fā)明FPGA以來(lái)最卓越的工程成就”,足可見(jiàn)這個(gè)產(chǎn)品系列的重要性。
與其說(shuō)ACAP是某種具體的芯片產(chǎn)品,不如說(shuō)它像FPGA一樣,代指一種芯片架構(gòu)。而賽靈思這次發(fā)表的論文,主要介紹的是基于ACAP架構(gòu)的首款產(chǎn)品,名為Versal,并將基于臺(tái)積電的7納米工藝制造。相比傳統(tǒng)的FPGA架構(gòu),Versal ACAP在系統(tǒng)架構(gòu)、電路結(jié)構(gòu)、互聯(lián)方式等很多方面進(jìn)行了大膽革新,這也是本文將要討論的重點(diǎn)。
芯片架構(gòu)
Versal ACAP的芯片布局如下圖所示??傮w來(lái)看,它與傳統(tǒng)FPGA結(jié)構(gòu)非常類似,主要包含可編程邏輯部分、高速I/O與收發(fā)器、嵌入式處理器、存儲(chǔ)器控制等FPGA的常見(jiàn)硬件資源與模塊。
值得注意的是,ACAP架構(gòu)與傳統(tǒng)FPGA有兩點(diǎn)主要區(qū)別:
芯片頂端(北側(cè))包含了AI加速引擎陣列,它們主要用來(lái)加速機(jī)器學(xué)習(xí)和無(wú)線網(wǎng)絡(luò)等應(yīng)用中常見(jiàn)的數(shù)學(xué)計(jì)算。然而,關(guān)于AI引擎的具體結(jié)構(gòu),在這篇論文中并未提及。
在傳統(tǒng)FPGA片上互聯(lián)技術(shù)的基礎(chǔ)上,ACAP采用了固化的片上網(wǎng)絡(luò)(NoC),這主要是針對(duì)高帶寬、高吞吐量的應(yīng)用場(chǎng)景,如存儲(chǔ)器控制和AI應(yīng)用等,在上圖中也可以清晰的看到NoC與這些應(yīng)用模塊的緊密互聯(lián)。
關(guān)于NoC的具體技術(shù)細(xì)節(jié),在本次會(huì)議有另外一篇論文進(jìn)行詳細(xì)闡述,見(jiàn)下圖。本文將對(duì)其進(jìn)行簡(jiǎn)單概述,并會(huì)在下篇文章中深入解析。
除NoC以外,ACAP選擇將很多常用的IP固化在芯片上,以提高性能、穩(wěn)定性,并減少額外的可編程邏輯資源的使用。除了常見(jiàn)的PCIe、DDR控制器、以太網(wǎng)MAC之外,ACAP還選擇將嵌入式處理器和芯片管理單元進(jìn)行固化,這令人有些意外。
在論文中介紹,在亞馬遜AWS F1實(shí)例中使用的片上管理單元占據(jù)了芯片面積的很大部分,如下圖所示,而這也是賽靈思選擇在ACAP上對(duì)這類邏輯進(jìn)行固化的主要原因。
在可編程芯片上固化邏輯其實(shí)是一把雙刃劍,在提升性能和降低邏輯單元使用率的同時(shí),犧牲的是被固化單元的靈活性。因此,往往只會(huì)選擇固化已經(jīng)由成熟標(biāo)準(zhǔn)的邏輯單元,比如上文提到的通信接口與內(nèi)存控制器等。對(duì)于芯片管理單元,固化后是否仍能適用于不同的應(yīng)用場(chǎng)景?是否比集成ARM等硬核處理器更有效?這些問(wèn)題就需要通過(guò)實(shí)際使用得到答案。
Versal ACAP架構(gòu)的一個(gè)主要的創(chuàng)新之處,就是采用了非常規(guī)整的可編程邏輯陣列和時(shí)鐘域分布。老石之前曾介紹過(guò)一種名為“Overlay”的FPGA虛擬化技術(shù),它的本質(zhì)就是在FPGA的硬件層之上,抽象出一層虛擬的Overlay結(jié)構(gòu),如下圖所示。Overlay層基于CGRA等規(guī)整的邏輯結(jié)構(gòu),對(duì)應(yīng)用層非常友好,但對(duì)不規(guī)整的FPGA底層架構(gòu)而言,實(shí)現(xiàn)起來(lái)勢(shì)必會(huì)造成資源的浪費(fèi)和性能的損失。
ACAP架構(gòu)采用了更加規(guī)整的可編程邏輯陣列,以及分布均勻的時(shí)鐘域,理論上這是極其有用的創(chuàng)新,特別是對(duì)于布局布線后的設(shè)計(jì)而言。通過(guò)這種方式,使得IP接口可以復(fù)用,即把一個(gè)IP從一個(gè)位置挪到另一個(gè)位置時(shí),不需要對(duì)整個(gè)設(shè)計(jì)重新編譯,只需要單獨(dú)處理修改的部分即可。
更重要的是,這使得用戶可以重復(fù)使用已經(jīng)完成布局布線的“半成品”或“模板”,只需要在事先保留的區(qū)域內(nèi)加入新設(shè)計(jì)即可,這樣可以極大的減少編譯時(shí)間。這個(gè)創(chuàng)新與目前FPGA已有的劃分可編程區(qū)域等技術(shù)類似,但更進(jìn)一步。只可惜,在這篇論文中沒(méi)有給出這個(gè)創(chuàng)新的任何實(shí)例或數(shù)據(jù),因此很難確定這項(xiàng)技術(shù)是否已經(jīng)實(shí)現(xiàn),還是僅僅停留在理論層面。
CLB微結(jié)構(gòu)
CLB是可編程邏輯塊的縮寫,它包含了多個(gè)可編程邏輯單元及其互聯(lián)。與傳統(tǒng)FPGA相比,Versal ACAP對(duì)它的CLB微結(jié)構(gòu)進(jìn)行了重大革新,用“翻天覆地”來(lái)形容也不為過(guò)。其中,最主要的架構(gòu)變化有以下四點(diǎn)。
首先,CLB的容量相較UltraScale FPGA架構(gòu)擴(kuò)大了四倍,包含32個(gè)LUT和64個(gè)寄存器,見(jiàn)下圖。
這樣做的主要目的,是為了減少全局布線資源的使用。ACAP為每個(gè)CLB設(shè)置了單獨(dú)的內(nèi)部高速互聯(lián),與全局布線相比,這些內(nèi)部互聯(lián)更加快速,布線邏輯也更簡(jiǎn)單,從而減輕了全局布線的壓力與擁擠。如下圖所示,采用了大CLB后,有18%的布線可以通過(guò)內(nèi)部互聯(lián)完成。而對(duì)于傳統(tǒng)FPGA,只有7%的布線能在CLB內(nèi)完成,其他都需要占用全局布線資源。
第二,每個(gè)查找表結(jié)構(gòu)(LUT)增加了一個(gè)額外的輸出,這是一個(gè)重要的架構(gòu)變化。傳統(tǒng)FPGA的LUT結(jié)構(gòu)為6輸入、2輸出,如下圖所示,可以實(shí)現(xiàn)任意的6輸入邏輯,或者兩個(gè)5輸入邏輯。當(dāng)添加了一個(gè)新的輸出O5_2之后,就可以實(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í),Versal ACAP架構(gòu)能多合并21.5%的邏輯功能,從而減少相應(yīng)的硬件資源使用。
作為代價(jià),在UltraScale架構(gòu)中存在的Wide Function功能被移走。因此如果需要實(shí)現(xiàn)諸如32:1的選擇器時(shí),就可能會(huì)擴(kuò)展到多個(gè)Slice,對(duì)時(shí)序造成負(fù)面影響,并且需要額外的硬件資源支持。
第三,每個(gè)Slice的進(jìn)位鏈邏輯結(jié)構(gòu)進(jìn)行了徹底修改,如下圖所示。事實(shí)上,一直是現(xiàn)代FPGA標(biāo)配的固化進(jìn)位鏈被完全移除,取而代之的是使用LUT中新增加的cascade_in和LUT邏輯完成加法結(jié)構(gòu)。
論文中對(duì)這部分的討論過(guò)于簡(jiǎn)單,對(duì)這個(gè)重要的架構(gòu)改變沒(méi)有給出詳細(xì)原因,對(duì)上圖中Versal進(jìn)位鏈的具體實(shí)現(xiàn)結(jié)構(gòu)也含糊不清。老石猜測(cè),這個(gè)改變的主要原因還是由于新增加的第二個(gè)LUT輸出,如果繼續(xù)保留進(jìn)位鏈邏輯,會(huì)導(dǎo)致LUT間延時(shí)過(guò)大,從而影響時(shí)序。但是,這種新的進(jìn)位鏈結(jié)構(gòu)是否會(huì)對(duì)算術(shù)運(yùn)算的性能產(chǎn)生負(fù)面影響,賽靈思并未在論文中給出數(shù)據(jù)佐證。
第四,引入了名為“Imux寄存器”的新結(jié)構(gòu)。這種新寄存器架構(gòu)很明顯是用來(lái)對(duì)標(biāo)英特爾的HyperFlex架構(gòu)。Imux寄存器共有四種模式,如下圖所示。
這種架構(gòu)只在CLB之前引入了用于優(yōu)化時(shí)序、增加流水線的寄存器。同時(shí),這些寄存器包含了復(fù)位、初始化、時(shí)鐘使能等常見(jiàn)寄存器功能。這與HyperFlex的海量寄存器架構(gòu)有著明顯不同,如下圖。Imux沒(méi)有在全部布線資源上都設(shè)置寄存器,因此引入的額外延時(shí)會(huì)更小。但在深度流水線設(shè)計(jì)中,這種結(jié)構(gòu)的絕對(duì)性能應(yīng)該不如HyperFlex架構(gòu)。
上面的四種Imux使用模式在本文中不再贅述,例如下圖展示了其中的Time Borrowing、Pipelining、以及二者結(jié)合的模式。但這幾種方式與傳統(tǒng)的流水線和Retiming方式并沒(méi)有本質(zhì)區(qū)別。
關(guān)于Imux寄存器架構(gòu),這篇論文最嚴(yán)重的問(wèn)題在于實(shí)測(cè)數(shù)據(jù)和對(duì)比很少。這樣的實(shí)驗(yàn)和論述,使得這部分內(nèi)容更像一篇白皮書,而非高端學(xué)術(shù)論文。嚴(yán)謹(jǐn)?shù)膶W(xué)術(shù)方法是需要兼顧可重復(fù)性和標(biāo)準(zhǔn)性,例如,選取一些標(biāo)準(zhǔn)的參考設(shè)計(jì)和Benchmark,分別使用英特爾的HyperFlex架構(gòu)、賽靈思的UltraScale架構(gòu),以及這里提出的Imux架構(gòu),進(jìn)行實(shí)現(xiàn),并測(cè)量這些在這些架構(gòu)上分別能得到多快的運(yùn)行頻率。很顯然,這篇論文在很多地方都存在這樣的問(wèn)題。
3D芯片制造技術(shù)SSIT
ACAP采用了賽靈思的第四代硅片堆疊技術(shù)SSIT。關(guān)于這個(gè)技術(shù)的細(xì)節(jié),老石在之前的文章中詳細(xì)介紹過(guò)。這個(gè)技術(shù)本質(zhì)上是將多個(gè)小型硅片,放置在一個(gè)大的無(wú)源硅中介層上,然后通過(guò)硅通孔和芯片連線進(jìn)行互聯(lián),從而組成一個(gè)大芯片。
這種技術(shù)非常適合在每代半導(dǎo)體工藝的發(fā)展早期,特別是制造大型硅片的良率較低的情況。另外,SSIT的靈活性比較高,技術(shù)思路比較直接,發(fā)展至今已有四代,已經(jīng)比較成熟。
不過(guò),這種技術(shù)的主要問(wèn)題非常明顯,主要有以下幾點(diǎn):
當(dāng)工藝成熟后,這種方式帶來(lái)的良率提升就不甚明顯,綜合成本反而會(huì)上升。
將多枚硅片通過(guò)硅中間層組合,可能會(huì)帶來(lái)明顯的性能降低。這主要受制于硅片間的互聯(lián)資源,以及互聯(lián)導(dǎo)線的巨大延遲。
該技術(shù)會(huì)限制FPGA配置的靈活性,因?yàn)樗喈?dāng)于人為的增加了多個(gè)設(shè)計(jì)區(qū)域和邊界。這也對(duì)設(shè)計(jì)工具的優(yōu)化能力造成了很大的挑戰(zhàn)。
在這篇論文中,Versal ACAP主要針對(duì)上面的第二和第三點(diǎn)進(jìn)行了優(yōu)化和改進(jìn)。例如,在Versal架構(gòu)中,采用了更多的硅片間的互聯(lián)通道(SLL channel),如下圖所示。同時(shí),這些互聯(lián)通道的傳輸延時(shí)也得到了進(jìn)一步優(yōu)化,相比傳統(tǒng)連線的延時(shí)下降了30%。
片上網(wǎng)絡(luò)NoC
片上網(wǎng)絡(luò)是ACAP的主要技術(shù)革新之一。對(duì)于諸如DDR、高速網(wǎng)絡(luò)、PCIe等高速接口與應(yīng)用來(lái)說(shuō),通常有著很高的帶寬要求。這一方面需要采用高位寬的總線,另一方面需要高速時(shí)鐘。因此,傳統(tǒng)的FPGA設(shè)計(jì)方法都是通過(guò)對(duì)總線進(jìn)行深度流水線來(lái)實(shí)現(xiàn)。但對(duì)于一個(gè)大型設(shè)計(jì)而言,這種方法會(huì)很快造成片上布線資源的擁擠。這就需要尋找有效的方法,同時(shí)解決高速數(shù)據(jù)傳輸和低擁堵布線兩個(gè)問(wèn)題。
ACAP采用了片上網(wǎng)絡(luò)(Network-on-Chip,NoC)技術(shù)應(yīng)對(duì)上述問(wèn)題。在傳統(tǒng)的FPGA布線資源之外,引入了NoC網(wǎng)絡(luò),將需要進(jìn)行高速數(shù)據(jù)傳輸?shù)膬?nèi)容轉(zhuǎn)化成基于數(shù)據(jù)包的形式,通過(guò)NoC的交換機(jī)邏輯實(shí)現(xiàn)數(shù)據(jù)交換,如下圖所示。與網(wǎng)絡(luò)應(yīng)用類似,這種片上網(wǎng)絡(luò)也能對(duì)各類的傳輸進(jìn)行服務(wù)質(zhì)量控制(QoS)。
這種方法最大的優(yōu)點(diǎn)是在系統(tǒng)層面,將數(shù)據(jù)傳輸與數(shù)據(jù)計(jì)算進(jìn)行了分離,從而在保證帶寬的基礎(chǔ)上,緩解了系統(tǒng)的布局布線壓力。例如,數(shù)據(jù)計(jì)算可以在AI引擎或片上其他部分實(shí)現(xiàn),而不需緊靠DDR控制器等高速接口。
不過(guò),這種方法的主要問(wèn)題是引入了額外的傳輸延時(shí),這對(duì)于需要固定延時(shí)或者低延時(shí)的應(yīng)用可能會(huì)有影響。在這篇論文中,并沒(méi)有提及延時(shí)的數(shù)據(jù)。此外,片上網(wǎng)絡(luò)的位寬是固定的,無(wú)法對(duì)應(yīng)用進(jìn)行優(yōu)化,這也有可能對(duì)不同應(yīng)用的系統(tǒng)性能造成負(fù)面影響。
結(jié)語(yǔ)
ACAP作為賽靈思重磅推出的下一代計(jì)算平臺(tái),從發(fā)布之初就備受矚目。究竟ACAP是不是FPGA,這個(gè)問(wèn)題其實(shí)并不重要,重要的是ACAP的本質(zhì)仍然是基于可編程邏輯陣列的異構(gòu)計(jì)算芯片。與傳統(tǒng)FPGA架構(gòu)相比,ACAP帶來(lái)了諸多系統(tǒng)和微結(jié)構(gòu)的換代和革新,這也讓人們看到了業(yè)界為了延續(xù)摩爾定律的發(fā)展所做的不懈努力。
就這篇論文而言,雖然很多地方的學(xué)術(shù)嚴(yán)謹(jǐn)性有待提高,但瑕不掩瑜。作為第一篇完整的介紹Versal ACAP架構(gòu)細(xì)節(jié)的論文,它還是為我們帶來(lái)了很多對(duì)ACAP新結(jié)構(gòu)、新技術(shù)的詳細(xì)闡述和討論,也讓我們得以一窺ACAP的技術(shù)細(xì)節(jié)。
原文標(biāo)題:賽靈思計(jì)算平臺(tái)ACAP技術(shù)細(xì)節(jié)全揭秘
文章出處:【微信公眾號(hào):FPGA技術(shù)江湖】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
責(zé)任編輯:haq
-
FPGA
+關(guān)注
關(guān)注
1629文章
21729瀏覽量
602986 -
賽靈思
+關(guān)注
關(guān)注
32文章
1794瀏覽量
131246 -
ACAP
+關(guān)注
關(guān)注
1文章
54瀏覽量
8162
原文標(biāo)題:賽靈思計(jì)算平臺(tái)ACAP技術(shù)細(xì)節(jié)全揭秘
文章出處:【微信號(hào):HXSLH1010101010,微信公眾號(hào):FPGA技術(shù)江湖】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論