理解HyperFlex架構如何支援實現下一代高效能系統

才智咖 人氣:7.23K

高效能檔案系統 (High Performance File System ,HPFS),HPFS是Microsoft的LAN Manager中的檔案系統,同時也是IBM的LAN Server和OS/2產品。在OS/2中,它就是HPFS,但是在LAN Manager和LAN Server產品中,它是HPFS386,這是HPFS的改進版本。HPFS提供了DOS檔案系統中的檔案分配表(FAT)所沒有的長檔名和效能增強特性。另外,HPSF還能訪問較大的硬碟驅動器,提供更多的組織特性並改善了檔案系統的安全特性。HPFS386增加了對HPFS檔案系統的32位訪問,另外還增加了容錯和安全性功能。

理解HyperFlex架構如何支援實現下一代高效能系統

下一代高效能系統對頻寬的需求越來越大。為滿足這一需求,促使設計人員使用各種方法來優化其設計,提高時鐘頻率。雖然傳統的FPGA核心體系結構支援這些優化,但是,所能夠提高的頻率有限。與傳統的方法不同,Stratix10 FPGA和SoC使用HyperFlex新體系結構,核心時鐘頻率可達到前一代高效能FPGA的兩倍。

一、傳統FPGA架構的困惑

為滿足下一代高效能系統越來越高的頻寬要求,FPGA供應商一直在對其器件體系結構逐步進行改進。即使是採用了先進的體系結構,設計人員通常會使用非常寬的片內匯流排實現其設計。實際上,512、1024或者2048位寬的片內匯流排的應用越來越普遍了。

這一方法雖然提高了FPGA核心的資料吞吐量,但是寬匯流排佔用了大量的架構資源,功耗也大。而且,隨著FPGA資源不斷被填滿,佈線資源會出現擁塞,核心時鐘頻率會受限。

提高頻寬的另一方法是在使用最先進工藝節點製造的FPGA中實現設計,期望能夠受益幹最新技術較高的電晶體開關速率。但是,隨著工藝尺寸的不斷減小,邏輯單元之間的互聯延時成為FPGA中總延時的主要因素,這限制了進一步提高電晶體開關速率。基本上,傳統的FPGA體系結構無法滿足未來的效能需求。

二、高效能系統對頻寬的需求

光傳送網(OTN)、固網、軍事和高效能計算應用對頻寬的需求越來越大。傳送大量資料的需求導致FPGA中的資料通路寬度越來越寬。通過佈線體系結構傳送的資料量與所使用的走線數量和走線速度(fMAX)有關。能夠使用的走線數量取決於技術;與器件大小以及所採用技術的最小走線間距有關。

佈線體系結構使用分層(例如,邏輯陣列模組(LAB)中的本地佈線,以及水平和垂直互聯導線的全域性佈線)和優化方法,提高了走線效率。但是,提高走線數量會增大芯片面積,也增大了功耗。走線速度與技術有關(走線上的`RC延時),受到FPGA體系結構和設計實現的影響。例如,對設計進行流水線處理會提高時鐘速率,而不會增加走線數量,在同樣的資源情況下,提高了頻寬。

三、高效能系統對效率的需求

當設計人員對設計進行流水線處理以提高效能時,他們會在設計中增加暫存器。傳統的構建暫存器查詢表(LUT)對的方法意味著要犧牲邏輯以實現更多的流水線暫存器,所有現有FPGA核心體系結構中都有這些暫存器查詢表對。採用傳統體系結構中的流水線需要訊號輸入邏輯模組然後再輸出,帶來了延時成本。結果是流水線方法的效果逐漸變差,特別是佈線延時是總延時的主要因素。圖1顯示了採用傳統流水線之前和之後的例項,由於增加暫存器帶來的輸入和輸出走線導致延時增大。

四、高效能系統對提高時鐘的需求

隨著時鐘速率的提高,時鐘偏移也越來越重要了。傳統的FPGA核心體系結構重點放在平衡時鐘樹上,這能夠減小確定性偏移。這一方法對於500MHz以下的設計能夠很好的工作,但是要突破500MHz瓶頸,速度達到1GHz,那麼則需要下一代時鐘解決方案。解決方案必須將時鐘本地化以減小本地差異和偏移,還能夠提供靈活的網路,用於高效能設計中常用的大量的時鐘。

五、HyperFlex體系結構

為克服上述這些挑戰,Altera的Stratix 10 FPGA和SoC引入了全新的核心體系結構,即HyperFlex體系結構。創新的HyperFlex體系結構所實現的效能是以前無法想象的:核心效能是前一代高效能FPGA的兩倍。為發揮HyperFlex體系結構的優勢,使用者可以使用熟悉的方法:暫存器時序重排、流水線和設計優化。這些方法能夠加速傳統體系結構上的設計。但是,與HyperFlex體系結構相結合後,結果是,設計能夠以極快的速度執行,核心時鐘速率提升至高達1GHz。

Stratix10器件重新設計了核心體系結構,包括了更多的暫存器,即超級暫存器,分佈在核心架構的各個地方。每一互聯佈線段以及所有功能模組的輸入上都有這些暫存器。超級暫存器提供了精細粒度解決方案,解決了怎樣提高頻寬和麵積以及功效等問題。由於能夠輕鬆的訪問更多的暫存器,使用者可以對暫存器時序重排,以消除關鍵通路,對暫存器進行流水線處理,去掉佈線延時,優化使用者的設計,實現理想效能。當採用超級暫存器實現這些方法時,所有FPGA邏輯資源都能夠用於實現邏輯功能,而不是犧牲用作直通單元以連線傳統的LUT暫存器。

為能夠跟上核心架構的高效能,重新設計了FPGA核心中的專用功能模組――例如,M20K儲存器和浮點數字訊號處理(DSP)模組,以支援時鐘速率高達1GHz的操作。

為方便超級暫存器的使用,Quartus II軟體包括了超感知設計流程,提供:

佈局佈線後效能優化,加速了時序收斂。

超感知綜合和佈局佈線,提高了流水線效率。

快速前向編譯,提供了效能增強選擇。

為滿足對靈活的時鐘網路的需求,Stratix 10 FPGA和SoC包括了可程式時鐘樹綜合功能。這一類似ASIC時鐘幫助降低了偏移和不確定性,而且可以智慧的使能時鐘網路分支,降低了功耗。

Stratix 10 FPGA和SoC使用了Intel的14nm三柵極(FinFET)工藝技術。HyperFlex新體系結構與業界領先的FinFET工藝技術相結合,與前一代高效能FPGA相比,Stratix10器件的核心效能提高了兩倍。

六、超級暫存器

從90 nm Stratix II FPGA開始,Altera就開始率先採用6輸入LUT降低關鍵通路深度。在28nm Stratix VFPGA,Altera引入了時間借用鎖存功能,對時鐘和資料訊號自動進行微小的時序重排處理。

對於14nm Stratix 10器件,Altera引入了全新的“暫存器無處不在”核心體系結構,這一體系結構佈滿了可旁路的時序重排和流水線暫存器。這一方法斷開了自適應邏輯模組(ALM)本身功能暫存器之間的關聯,使用了超級暫存器對關鍵通路進行時序重排和流水線處理,從而提高了設計效率。

HyperFlex體系結構可用於對高效能設計進行時序重排和流水線處理。所有佈線段都有可選超級暫存器,構建到可程式佈線複用器中,使得佈線段能夠被寄存或者進行組合處理。如圖2所示,這些超級暫存器分佈在核心架構的各個地方。在每一水平和垂直佈線段的交叉點上,以小方塊表示超級暫存器。

採用這一體系結構,不再需要使用ALM來找到流水線暫存器。器件中的每一水平和垂直互聯線都含有超級暫存器,通過配置FPGA可以關斷或者開啟它們。

超級暫存器是簡單的一路輸入一路輸出可旁路暫存器,輸入上沒有佈線複用器。使用者可以通過配置位元來控制這些暫存器。其成本不高,不會明顯增加器件的矽片面積。由於超級暫存器在核心架構中無處不在,因此,設計人員不會受限於設計中暫存器的數量。可以根據需要對它們時序重排和流水線處理,不會佔用額外的LAB資源。在很多情況下,使用佈線中的超級暫存器來實現暫存器,而不是僅為了使用ALM的暫存器而部分佔用ALM,因此,使用了較少的LAB資源。

七、HyperFlex的優點

由於互聯佈線體系結構中含有超級暫存器,因此可以在佈局佈線之後優化時序,這不會改變設計的佈線。Quartus II軟體在時序重排操作過程中,能夠很容易找到並使用超級暫存器。圖3對比了傳統的佈線複用器和HyperFlex佈線複用器,以及所包含的超級暫存器。

超級暫存器支援使用者充分發揮增強效能的傳統方法的優勢――時序重排、流水線和優化,以更新更好的方式實現。使用超級暫存器而不是ALM暫存器來實現時,這些方法被稱為超級時序重排、超級流水線和超級優化。表1總結了當順序使用這些方法時所提高的效能,其3個步驟使用HyperFlex體系結構提高了效能。

八、超級時序重排

在傳統的體系結構中,軟體通過找到附近未使用的ALM暫存器,使其含在電路中,進行時序重排。這一時序重排方法受限於ALM暫存器佈局的粒度:

未使用的ALM所處的位置不一定方便,導致設計中出現額外的延時。

通過ALM連線至暫存器有佈線延時開銷。

如果軟體嘗試對寬匯流排(512位、1024位,或者更寬)時序重排,那麼時序重排需要大量的其他邏輯單元。

確定時序重排暫存器最佳位置所需要的演算法比較難。

圖4顯示了傳統體系結構時序重排之前和之後的佈線例項。

在HyperFlex核心新體系結構中,使用了超級暫存器來實現精細粒度超級時序重排。Quartus II軟體通過將暫存器移出邏輯單元,放到互聯中對通路時序重排。每一佈線段上都有超級暫存器,因此,有很多可以使用的暫存器位置,方便了進行優化。

採用超級暫存器,時序重排粒度非常精細;每一段佈線的延時,只有幾十皮秒。在傳統體系結構中,當嘗試確定時序重排暫存器位置時需要有所折中,如圖4所示,而這在HyperFlex體系結構中是不需要的。因此,在超級時序重排期間,可以很好的分開幾奈秒長的通路,如圖5所示。

超級時序重排不會影響已有的LAB和ALM,意味著不需要漸進式佈局或者佈線,對編譯時間沒有很大的影響。對暫存器時序重排,佈局佈線之後,暫存器位置被推入到佈線中能夠自然達到平衡的最終位置(見圖5)。

在傳統體系結構中,對於需要成百上千個額外的ALM才能達到時序重排而且通常需要大量重新佈線的寬資料匯流排而言,這一特性具有很大的優勢。

九、超級流水線

傳統的流水線受困於和傳統時序重排遇到的同樣的難題,缺少暫存器粒度降低了優化的效率。

由於在設計開始時並不知道需要的流水線級數量以及其最優位置,因此,傳統的流水線本質上是一個迭代過程。所以,當流水線解決方案嘗試滿足效能目標時,必須對設計進行多次佈局佈線。圖6顯示了傳統流水線處理之前和之後的簡單例項。

當使用HyperFlex體系結構時,使用者可以使用超級暫存器,根據需要進行流水線處理,而且不會增大設計容量。這一過程稱為超級流水線。在很多情況下,使用大量暫存器的設計由於不需要“孤立”暫存器,因此,實現設計所需要的ALM數量減少了。

由於流水線的低成本,使用者可以儘量使用這一方法,特別是在資料通路和前饋邏輯中。圖7顯示了一個超級流水線的例項。

由於軟體能夠將暫存器移動到互聯中,自動對邏輯時序重排,因此,使用者只需要設定時鐘域輸入或者子設計引腳邏輯上所需要的流水線暫存器數量。Quartus II軟體能夠根據需要,在佈局佈線之後將暫存器移動到佈線中,解決了傳統體系結構中存在的流水線多次迭代問題。當智慧財產權(IP)庫面向多個時鐘頻率(fMAX)時,在RTL中把暫存器放到一起也方便了對邏輯進行引數賦值。

十、超級優化

完成了超級時序重排和超級流水線之後,設計的某些部分的效能會非常好,而其他部分可能成為瓶頸,很難再提高效能。這些瓶頸可能是長反饋環或者複雜狀態機等電路,需要在每一時鐘週期進行評估。

提高設計效能一種常用的方法是優化設計中的某些部分。例如,具有長反饋環的設計會受限於最大頻率(fMAX)。重新設計電路,預先計算可能的反饋值,使用短反饋環在其中進行選擇,以提高頻率。採用超級暫存器,這一過程能夠實現的速率要高於傳統的體系結構,這是因為可以使用超級時序重排和超級流水線優化預計算通路。圖8顯示了一個超級優化的例項;進行夏農分解(或者布林因數分解)以縮短環路,從而提高最大頻率。一般而言,可以在控制環上進行這類優化,獲得的效能增益要遠遠超出實現因數分解所需要的額外邏輯帶來的面積成本代價。

十一、靈活的高速可程式時鐘樹綜合

高效能FPGA設計中的時鐘給設計人員帶來了很大的挑戰。傳統的FPGA有固定的全域性時鐘樹網路,設計用於支援大扇出、晶片級全域性時鐘域。但是,在GHz效能,時鐘樹對靈活性的要求非常高。設計人員希望針對性能均衡和時鐘交叉建立時移時鐘,為速率匹配和系統電源管理生成動態選通時鐘。

為滿足這些需求,HyperFlex體系結構含有全新的時鐘結構,包括了經過預先佈線的時鐘通路,設計的時鐘區域在其上進行綜合(常見於ASIC時鐘樹綜合)。這一結構能夠前所未有的靈活的建立小規模本地時鐘域。這還可以讓軟體管理偏移;利用好偏移,需要時降低偏移。此外,需要時,可以使用這一時鐘結構來綜合傳統的全域性和區域性均衡H樹時鐘,以便後向相容。

Quartus II軟體管理可程式時鐘樹綜合;在佈局佈線期間,它以整合方式來綜合時鐘樹。

十二、更高的功效和效能

Stratix 10 FPGA和SoC的功耗比前幾代系列有很大的進步,主要是因為使用了Intel的14nm三柵極(FinFET)工藝技術來製造器件。而且,HyperFlex體系結構也極大的降低了功耗。效能越來越高的HyperFlex體系結構實現了1024位元資料通路,時鐘速率達到350MHz,512位元資料通路的時鐘速率達到700MHz。結果,適配到器件中的設計只佔用了一半的器件。這種變化對動態功耗的影響不大,但是靜態功耗降低了一半,使用更小的器件,大幅度降低了成本。或者,設計人員可以自由的發揮性能優勢,部分用於提高時鐘速率,剩餘的部分效能用於通過降低核心電源供電電壓或者使用速率等級較慢的器件來降低功耗。

不僅僅是通過提升核心的執行時鐘速率,HyperFlex體系結構能夠提供更多的效能優勢;很容易實現時序收斂,提高設計團隊的效能,縮短產品面市時間。