英特爾最強FPGA的全面解讀

英特爾最強FPGA的全面解讀

在今年的FPGA國際研討會(ISFPGA’20)上,英特爾發表了一篇名為《Architectural Enhancements in Intel Agilex FPGAs》的論文,它在技術層面詳細介紹了英特爾的新旗艦FPGA - Agilex系列的若干重大的架構創新。

英特尔最强FPGA的全面解读

相比Altera時代的頂級FPGA系列Stratix、特別是2016年推出的Stratix10 FPGA,Agilex在FPGA架構層面做出了諸多根本性的改變。總結起來主要有以下六個方面:

  • 全新的芯片佈局
  • ALM微架構的優化設計
  • 重新設計的佈線架構
  • 新一代HyperFlex寄存器結構
  • 多樣的時序優化方法
  • 更加靈活的DSP微架構

有了這些新型架構的加持,Agilex相比Stratix10 FPGA取得了超過40%的性能提升。同時,它在設計的靈活性和穩定性等方面也取得了可觀的提升。在接下來的文章中,老石將分別對這幾點架構創新做深入解析。

這篇論文的全文,已上傳至知識星球“老石談芯進階版”,請於文末掃碼進入星球查看。

Agilex FPGA簡介

在之前的文章《英特爾10納米Agilex FPGA核心技術分析》中,老石曾對Agilex FPGA在系統層面的重要創新做過深度梳理。與進化多年的Stratix、Arria、Cyclone、Max等FPGA產品系列相比,Agiliex是英特爾收購Altera後推出的第一個全新的高端FPGA系列。正因如此,Agilex也被英特爾寄予了很高的期望。

Agilex這個名稱源於Agile(敏捷)和Flexible(靈活)的合二為一,這兩個特點也是現代FPGA技術最為核心的要素。作為新一代旗艦FPGA,Agilex上自然也裝備了很多英特爾專屬的“黑科技”。在半導體工藝上,Agilex是首個使用英特爾10納米量產工藝的FPGA產品,它基於第三代FinFET晶體管技術進行製造,並在物理實現時對FPGA架構進行了針對性優化。

在系統層面,Agilex引入了對UPI、CXL以及PCIe Gen4/5的硬核支持。CXL全稱是Compute Express Link,它是英特爾發起的一個緩存一致性標準。CXL的主要目的在於明確定義硬件加速器與處理器之間的互聯標準。CXL在2019年3月提出,它的主要創始成員見下圖。從中可以看出,CXL的主要發起者中除了英特爾之外,還有有四個互聯網公司、兩個服務器設備製造商,以及兩個網絡設備製造商。這也清晰的呈現出CXL的目標應用領域:網絡數據中心、通信基礎設施、雲計算與雲服務等等。而這些領域也正是當前FPGA大展身手的平臺。關於CXL的更多介紹,可以參考之前的文章。

英特尔最强FPGA的全面解读

接下來,老石就對Agilex FPGA在架構方面的主要升級做詳細介紹。

全新的芯片佈局

相比Stratix10 FPGA,Agilex在芯片佈局和微架構設計上做出了多個重要改變。Agilex的芯片佈局如下圖所示。與現有的英特爾FPGA相似,Agilex也使用了EMIB(嵌入式多管芯互聯橋接)技術,用來提供多個異構硅片之間的高速互聯,特別是可編程邏輯部分與不同速度的收發器Tile之間的連接。在下圖中可以看到,收發器固定位於芯片的東西兩側,而其他的非可編程邏輯結構,諸如通用IO接口、存儲器接口、嵌入式SRAM、4核ARM CPU等等,都將固定位於芯片的南北兩側。

英特尔最强FPGA的全面解读

Agilex在芯片佈局上的一個重大變化,就是將原本位於芯片中間的很多通用I/O、存儲器I/O、硬核處理器等部分移到了芯片兩端

在英特爾之前的幾代FPGA中,例如Arria10和Stratix10 FPGA中,可編程邏輯陣列、I/O單元、存儲器、DSP等邏輯結構都是按列間隔排列,如下圖所示。事實上,這也是包括賽靈思在內的其他FPGA廠商所常用的芯片佈局方法。

英特尔最强FPGA的全面解读

Arria10 FPGA的芯片佈局

這種間隔排列的結構最大的優點在於,它能簡化FPGA設計過程中的佈局規劃,特別是與I/O相關的佈局。這是因為每個邏輯單元與I/O的距離近似,所以在佈局和放置時有著比較高的靈活性。

然而,這種結構最突出的缺點是,它相當於人為的將可編程邏輯陣列分成了很多區域,這就極大的增加了跨區域的佈線延時。同時,對於高速且大型的設計而言,這種結構很有可能造成局部的佈局擁塞。相信有經驗的FPGA工程師在很多實際項目中都遇到過這樣的問題,那就是在一個設計中,可能有很多區域的設計擁堵嚴重,而其他區域卻有著大量可用資源。這一問題的根源之一就是由於這種FPGA結構所致。

在Agilex裡,這些I/O被移出了可編程邏輯陣列,並挪到了芯片的上下兩側,從而形成了一個更加規整的可編程陣列布局,如下圖所示。由於消除了I/O單元對邏輯陣列帶來的區隔,系統性能會得到提升,也會極大簡化時序計算,並提升佈局與放置的靈活性。

英特尔最强FPGA的全面解读

ALM微架構的設計優化

在微架構方面,Agilex對其中的ALM(Adaptive Logic Module)進行了設計優化,以進一步降低其傳輸延時。

ALM是FPGA的基本可編程單元,Stratix10 的ALM結構如下圖所示。它主要包含一個6輸入LUT,一個加法器進位鏈,以及4個輸出寄存器。多個ALM可以組成更大的可編程陣列,名為LAB(Logic Array Block)。

英特尔最强FPGA的全面解读

Stratix 10 FPGA的ALM結構

和Stratix10相比,Agilex對ALM做了不少架構升級,如下圖所示。其中,增加了兩個LUT的快速輸出端口,使得LUT的輸出可以直連HyperFlex寄存器,而無需通過ALM內部的寄存器中轉。這顯然是針對利用HyperFlex對關鍵路徑進行retiming的應用場景。同時,ALM內部的寄存器靈活性得到了極大增強,可以看到在Agilex的ALM裡,每個寄存器的輸入都增加了一個4輸入MUX,同時寄存器可以通過兩個獨立的時鐘進行控制。

英特尔最强FPGA的全面解读

Agilex FPGA的ALM結構

除了ALM之外,Agilex還特別增加了片上內存MLAB的邏輯密度。與Stratix10相比,單位面積內Agilex有著雙倍的MLAB密度,而且50%的LAB可以配置成存儲器模式。這個優化很明顯是針對高帶寬需求的應用領域,如AI相關的計算加速等。

重新設計的佈線架構

Agilex對FPGA的佈線單元進行了重新設計。在下圖中可以看到,每個交換節點都只連接一個邏輯功能單元(可以是LAB、RAM、DSP等),但可以連接多個其他的佈線單元或者其他的交換節點。

相比之下,在之前的FPGA架構中,通常情況下一個交換節點會和左右兩側的兩個邏輯功能單元進行連接。Agilex這樣的簡化設計使得它的整體佈線架構更加簡潔,也在很大程度上減少了交換節點MUX的輸入,從而在保證佈線靈活性的基礎上,有效的降低容抗、並提升性能。事實上,在之前的研究中就表明,FPGA的佈線節點並不需要保持全連接,這在之前的文章中有過詳細解析。而Agilex則更進一步,直接做成了1對1連接,相信這也對FPGA設計工具和佈局佈線算法提出了更高的要求。

英特尔最强FPGA的全面解读

此外,Agilex對延時的同一性做了針對性的優化。在之前的FPGA中,由於存在不可避免的工藝和時序變化(variation),會特意對芯片上的各種硬件資源做差異化處理。也就是說,同樣的硬件資源可能有著不同的延時分佈。從理論上講,FPGA設計工具會避免將慢速資源分配到關鍵路徑上。但在實際應用中,這並非總是可行的。例如,在高速設計或深度流水線設計中,可能存在多條near critical path,這就給資源分配造成很大負擔和限制。

在Agilex中,使用了基本同化的硬件資源,以及對應的佈線方法,從而使得各個硬件資源的延時趨於近似。從下圖中可以清楚的看到,相比Stratix10 FPGA,Agilex的延時分佈非常平坦。這樣就簡化了佈局佈線工具對資源分配的過程,從而提升了開發效率和系統性能。

英特尔最强FPGA的全面解读

新一代HyperFlex寄存器結構

Stratix10 FPGA中首次引入了HyperFlex架構。它的主要思想就是在FPGA的佈線網絡上,加入很多名為Hyper-Register的小型寄存器,這樣可以把原本比較長的時序路徑分割成多個較短的路徑,從而提升FPGA的時鐘頻率。

但是,理想很豐滿,現實很骨感。HyperFlex這樣的設計有著很好的初衷,但在實際應用中還是存在著很多的問題。比如,很多情況下並不會用到所有的hyper-register,這就需要每個寄存器都配備一個2:1選擇器用來選通。然而這樣的架構反而會帶來較大的額外延時。此外,每個Hyper-Register並非由邊沿驅動的“寄存器”(flip-flop),而是由脈衝驅動的“鎖存器”(latch),這就使得它的時序特性較差,並且非常容易受工藝變化(process variation)的影響。

值得注意的是,在賽靈思推出的ACAP中,也採用了類似的設計理念。ACAP引入了名為“Imux寄存器”的新結構,並且對上述問題進行了針對性的改進。有關ACAP的詳細技術解讀,請參考這篇文章《賽靈思下一代計算平臺ACAP技術細節全揭秘》。

顯然,英特爾也意識到了這些問題,並在Agilex FPGA中採用了“第二代”HyperFlex架構,並對上面的問題進行了大幅改進。新一代Hyper-Register的結構如下圖所示,可以看到它把鎖存器替換成了寄存器,並對驅動節點進行了重新設計。同時,Agilex在佈線網絡中移除了近三分之二的Hyper-Register

,這無論對於面積、功耗、或是設計工具的優化來說,都是極為有利的。

英特尔最强FPGA的全面解读

多樣的時序優化方法

Agilex主要採用了三種時序優化方法:retiming、clock skewing和time borrowing。例如,retiming可以在不改變邏輯功能的前提下,重新分配寄存器在延時路徑中的位置,從而實現“取長補短”,降低整體的路徑延時。這實際上與所謂的“木桶理論”類似,而retiming就是將其他更長的木板拆開,並將短板補齊,如下圖所示。由於篇幅所限,有關clock skewing和timing borrowing的具體內容在本文不再詳述,老石之後會在知識星球和微博裡進一步解讀。

英特尔最强FPGA的全面解读

更加靈活的DSP微架構

之前的文章曾經多次介紹過,FPGA在人工智能應用中的最大優勢之一就是可以採用可變精度的字長表示和數學運算,從而帶來巨大的性能提升。相比Stratix10 FPGA,Agilex的DSP單元增加了對FP16、FP19、BFLOAT16的支持,同時也保留了對FP32、INT9等多種數據表達方式的支持,這極大提升了DSP的配置靈活性,使其更加適用於AI相關的應用。

Agilex 的DSP邏輯架構如下圖所示,它可以配置成多種結構,同時也可以在水平方向上進行擴展,從而支持向量和矩陣操作。

英特尔最强FPGA的全面解读

結語

下圖展示了Agilex的工程樣片與Stratix10的基準測試比較結果。可以看到,Agilex可以取得平均41%的性能提升。在這些基準測試的設計中,最高時鐘頻率的平均值是566MHz,其中最小284MHz,最高的時鐘頻率達到了951MHz!相比於傳統FPGA設計的300MHz左右的時鐘頻率,這組數據也標誌著FPGA的時鐘頻率提升到了一個全新的高度。同時應該注意到,儘管Agilex使用了10納米工藝,但相比Stratix10而言,Agilex使用了更低的電壓以降低功耗。在這個背景下,這些頻率的提升大部分都歸功於Agilex的架構創新。

英特尔最强FPGA的全面解读

這次發表的Agilex論文很好的介紹了英特爾新旗艦FPGA的重要架構創新,讓人對Agilex量產並交付後的表現更加的期待。然而,這篇論文並沒有過多介紹Quartus工具為了這些架構創新而做的改進。在Agilex發佈之初,英特爾就宣佈它將成為首款支持oneAPI的FPGA產品。那麼,Agilex實際開發的靈活性、編譯效率、實際性能、以及如何利用oneAPI對FPGA進行編程和開發,也都值得我們繼續關注。

(注:本文僅代表作者個人觀點,與任職單位無關。)

*免責聲明:本文由作者原創。文章內容系作者個人觀點,半導體行業觀察轉載僅為了傳達一種不同的觀點,不代表半導體行業觀察對該觀點贊同或支持,如果有任何異議,歡迎聯繫半導體行業觀察。

今天是《半導體行業觀察》為您分享的第2266期內容,歡迎關注。

★CIS會迎來拐點嗎?

★為什麼我看中的人都想去華為海思?

★中國存儲產業的另一面

存儲|傳感器|IGBT|ARM|FPGA|中興|蘋果|半導體股價|IP


分享到:


相關文章: