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