- 相關(guān)推薦
理解HyperFlex架構(gòu)如何支持實(shí)現(xiàn)下一代高性能系統(tǒng)
高性能文件系統(tǒng) (High Performance File System ,HPFS),HPFS是Microsoft的LAN Manager中的文件系統(tǒng),同時(shí)也是IBM的LAN Server和OS/2產(chǎn)品。在OS/2中,它就是HPFS,但是在LAN Manager和LAN Server產(chǎn)品中,它是HPFS386,這是HPFS的改進(jìn)版本。HPFS提供了DOS文件系統(tǒng)中的文件分配表(FAT)所沒(méi)有的長(zhǎng)文件名和性能增強(qiáng)特性。另外,HPSF還能訪問(wèn)較大的硬盤(pán)驅(qū)動(dòng)器,提供更多的組織特性并改善了文件系統(tǒng)的安全特性。HPFS386增加了對(duì)HPFS文件系統(tǒng)的32位訪問(wèn),另外還增加了容錯(cuò)和安全性功能。
下一代高性能系統(tǒng)對(duì)帶寬的需求越來(lái)越大。為滿足這一需求,促使設(shè)計(jì)人員使用各種方法來(lái)優(yōu)化其設(shè)計(jì),提高時(shí)鐘頻率。雖然傳統(tǒng)的FPGA內(nèi)核體系結(jié)構(gòu)支持這些優(yōu)化,但是,所能夠提高的頻率有限。與傳統(tǒng)的方法不同,Stratix10 FPGA和SoC使用HyperFlex新體系結(jié)構(gòu),內(nèi)核時(shí)鐘頻率可達(dá)到前一代高性能FPGA的兩倍。
一、傳統(tǒng)FPGA架構(gòu)的困惑
為滿足下一代高性能系統(tǒng)越來(lái)越高的帶寬要求,F(xiàn)PGA供應(yīng)商一直在對(duì)其器件體系結(jié)構(gòu)逐步進(jìn)行改進(jìn)。即使是采用了先進(jìn)的體系結(jié)構(gòu),設(shè)計(jì)人員通常會(huì)使用非常寬的片內(nèi)總線實(shí)現(xiàn)其設(shè)計(jì)。實(shí)際上,512、1024或者2048位寬的片內(nèi)總線的應(yīng)用越來(lái)越普遍了。
這一方法雖然提高了FPGA內(nèi)核的數(shù)據(jù)吞吐量,但是寬總線占用了大量的架構(gòu)資源,功耗也大。而且,隨著FPGA資源不斷被填滿,布線資源會(huì)出現(xiàn)擁塞,內(nèi)核時(shí)鐘頻率會(huì)受限。
提高帶寬的另一方法是在使用最先進(jìn)工藝節(jié)點(diǎn)制造的FPGA中實(shí)現(xiàn)設(shè)計(jì),期望能夠受益干最新技術(shù)較高的晶體管開(kāi)關(guān)速率。但是,隨著工藝尺寸的不斷減小,邏輯單元之間的互聯(lián)延時(shí)成為FPGA中總延時(shí)的主要因素,這限制了進(jìn)一步提高晶體管開(kāi)關(guān)速率;旧,傳統(tǒng)的FPGA體系結(jié)構(gòu)無(wú)法滿足未來(lái)的性能需求。
二、高性能系統(tǒng)對(duì)帶寬的需求
光傳送網(wǎng)(OTN)、固網(wǎng)、軍事和高性能計(jì)算應(yīng)用對(duì)帶寬的需求越來(lái)越大。傳送大量數(shù)據(jù)的需求導(dǎo)致FPGA中的數(shù)據(jù)通路寬度越來(lái)越寬。通過(guò)布線體系結(jié)構(gòu)傳送的數(shù)據(jù)量與所使用的走線數(shù)量和走線速度(fMAX)有關(guān)。能夠使用的走線數(shù)量取決于技術(shù);與器件大小以及所采用技術(shù)的最小走線間距有關(guān)。
布線體系結(jié)構(gòu)使用分層(例如,邏輯陣列模塊(LAB)中的本地布線,以及水平和垂直互聯(lián)導(dǎo)線的全局布線)和優(yōu)化方法,提高了走線效率。但是,提高走線數(shù)量會(huì)增大芯片面積,也增大了功耗。走線速度與技術(shù)有關(guān)(走線上的RC延時(shí)),受到FPGA體系結(jié)構(gòu)和設(shè)計(jì)實(shí)現(xiàn)的影響。例如,對(duì)設(shè)計(jì)進(jìn)行流水線處理會(huì)提高時(shí)鐘速率,而不會(huì)增加走線數(shù)量,在同樣的資源情況下,提高了帶寬。
三、高性能系統(tǒng)對(duì)效率的需求
當(dāng)設(shè)計(jì)人員對(duì)設(shè)計(jì)進(jìn)行流水線處理以提高性能時(shí),他們會(huì)在設(shè)計(jì)中增加寄存器。傳統(tǒng)的構(gòu)建寄存器查找表(LUT)對(duì)的方法意味著要犧牲邏輯以實(shí)現(xiàn)更多的流水線寄存器,所有現(xiàn)有FPGA內(nèi)核體系結(jié)構(gòu)中都有這些寄存器查找表對(duì)。采用傳統(tǒng)體系結(jié)構(gòu)中的流水線需要信號(hào)輸入邏輯模塊然后再輸出,帶來(lái)了延時(shí)成本。結(jié)果是流水線方法的效果逐漸變差,特別是布線延時(shí)是總延時(shí)的主要因素。圖1顯示了采用傳統(tǒng)流水線之前和之后的實(shí)例,由于增加寄存器帶來(lái)的輸入和輸出走線導(dǎo)致延時(shí)增大。
四、高性能系統(tǒng)對(duì)提高時(shí)鐘的需求
隨著時(shí)鐘速率的提高,時(shí)鐘偏移也越來(lái)越重要了。傳統(tǒng)的FPGA內(nèi)核體系結(jié)構(gòu)重點(diǎn)放在平衡時(shí)鐘樹(shù)上,這能夠減小確定性偏移。這一方法對(duì)于500MHz以下的設(shè)計(jì)能夠很好的工作,但是要突破500MHz瓶頸,速度達(dá)到1GHz,那么則需要下一代時(shí)鐘解決方案。解決方案必須將時(shí)鐘本地化以減小本地差異和偏移,還能夠提供靈活的網(wǎng)絡(luò),用于高性能設(shè)計(jì)中常用的大量的時(shí)鐘。
五、HyperFlex體系結(jié)構(gòu)
為克服上述這些挑戰(zhàn),Altera的Stratix 10 FPGA和SoC引入了全新的內(nèi)核體系結(jié)構(gòu),即HyperFlex體系結(jié)構(gòu)。創(chuàng)新的HyperFlex體系結(jié)構(gòu)所實(shí)現(xiàn)的性能是以前無(wú)法想象的:內(nèi)核性能是前一代高性能FPGA的兩倍。為發(fā)揮HyperFlex體系結(jié)構(gòu)的優(yōu)勢(shì),用戶(hù)可以使用熟悉的方法:寄存器時(shí)序重排、流水線和設(shè)計(jì)優(yōu)化。這些方法能夠加速傳統(tǒng)體系結(jié)構(gòu)上的設(shè)計(jì)。但是,與HyperFlex體系結(jié)構(gòu)相結(jié)合后,結(jié)果是,設(shè)計(jì)能夠以極快的速度運(yùn)行,內(nèi)核時(shí)鐘速率提升至高達(dá)1GHz。
Stratix10器件重新設(shè)計(jì)了內(nèi)核體系結(jié)構(gòu),包括了更多的寄存器,即超級(jí)寄存器,分布在內(nèi)核架構(gòu)的各個(gè)地方。每一互聯(lián)布線段以及所有功能模塊的輸入上都有這些寄存器。超級(jí)寄存器提供了精細(xì)粒度解決方案,解決了怎樣提高帶寬和面積以及功效等問(wèn)題。由于能夠輕松的訪問(wèn)更多的寄存器,用戶(hù)可以對(duì)寄存器時(shí)序重排,以消除關(guān)鍵通路,對(duì)寄存器進(jìn)行流水線處理,去掉布線延時(shí),優(yōu)化用戶(hù)的設(shè)計(jì),實(shí)現(xiàn)理想性能。當(dāng)采用超級(jí)寄存器實(shí)現(xiàn)這些方法時(shí),所有FPGA邏輯資源都能夠用于實(shí)現(xiàn)邏輯功能,而不是犧牲用作直通單元以連接傳統(tǒng)的LUT寄存器。
為能夠跟上內(nèi)核架構(gòu)的高性能,重新設(shè)計(jì)了FPGA內(nèi)核中的專(zhuān)用功能模塊――例如,M20K存儲(chǔ)器和浮點(diǎn)數(shù)字信號(hào)處理(DSP)模塊,以支持時(shí)鐘速率高達(dá)1GHz的操作。
為方便超級(jí)寄存器的使用,Quartus II軟件包括了超感知設(shè)計(jì)流程,提供:
布局布線后性能優(yōu)化,加速了時(shí)序收斂。
超感知綜合和布局布線,提高了流水線效率。
快速前向編譯,提供了性能增強(qiáng)選擇。
為滿足對(duì)靈活的時(shí)鐘網(wǎng)絡(luò)的需求,Stratix 10 FPGA和SoC包括了可編程時(shí)鐘樹(shù)綜合功能。這一類(lèi)似ASIC時(shí)鐘幫助降低了偏移和不確定性,而且可以智能的使能時(shí)鐘網(wǎng)絡(luò)分支,降低了功耗。
Stratix 10 FPGA和SoC使用了Intel的14nm三柵極(FinFET)工藝技術(shù)。HyperFlex新體系結(jié)構(gòu)與業(yè)界領(lǐng)先的FinFET工藝技術(shù)相結(jié)合,與前一代高性能FPGA相比,Stratix10器件的內(nèi)核性能提高了兩倍。
六、超級(jí)寄存器
從90 nm Stratix II FPGA開(kāi)始,Altera就開(kāi)始率先采用6輸入LUT降低關(guān)鍵通路深度。在28nm Stratix VFPGA,Altera引入了時(shí)間借用鎖存功能,對(duì)時(shí)鐘和數(shù)據(jù)信號(hào)自動(dòng)進(jìn)行微小的時(shí)序重排處理。
對(duì)于14nm Stratix 10器件,Altera引入了全新的“寄存器無(wú)處不在”內(nèi)核體系結(jié)構(gòu),這一體系結(jié)構(gòu)布滿了可旁路的時(shí)序重排和流水線寄存器。這一方法斷開(kāi)了自適應(yīng)邏輯模組(ALM)本身功能寄存器之間的關(guān)聯(lián),使用了超級(jí)寄存器對(duì)關(guān)鍵通路進(jìn)行時(shí)序重排和流水線處理,從而提高了設(shè)計(jì)效率。
HyperFlex體系結(jié)構(gòu)可用于對(duì)高性能設(shè)計(jì)進(jìn)行時(shí)序重排和流水線處理。所有布線段都有可選超級(jí)寄存器,構(gòu)建到可編程布線復(fù)用器中,使得布線段能夠被寄存或者進(jìn)行組合處理。如圖2所示,這些超級(jí)寄存器分布在內(nèi)核架構(gòu)的各個(gè)地方。在每一水平和垂直布線段的交叉點(diǎn)上,以小方塊表示超級(jí)寄存器。
采用這一體系結(jié)構(gòu),不再需要使用ALM來(lái)找到流水線寄存器。器件中的每一水平和垂直互聯(lián)線都含有超級(jí)寄存器,通過(guò)配置FPGA可以關(guān)斷或者打開(kāi)它們。
超級(jí)寄存器是簡(jiǎn)單的一路輸入一路輸出可旁路寄存器,輸入上沒(méi)有布線復(fù)用器。用戶(hù)可以通過(guò)配置比特來(lái)控制這些寄存器。其成本不高,不會(huì)明顯增加器件的硅片面積。由于超級(jí)寄存器在內(nèi)核架構(gòu)中無(wú)處不在,因此,設(shè)計(jì)人員不會(huì)受限于設(shè)計(jì)中寄存器的數(shù)量?梢愿鶕(jù)需要對(duì)它們時(shí)序重排和流水線處理,不會(huì)占用額外的LAB資源。在很多情況下,使用布線中的超級(jí)寄存器來(lái)實(shí)現(xiàn)寄存器,而不是僅為了使用ALM的寄存器而部分占用ALM,因此,使用了較少的LAB資源。
七、HyperFlex的優(yōu)點(diǎn)
由于互聯(lián)布線體系結(jié)構(gòu)中含有超級(jí)寄存器,因此可以在布局布線之后優(yōu)化時(shí)序,這不會(huì)改變?cè)O(shè)計(jì)的布線。Quartus II軟件在時(shí)序重排操作過(guò)程中,能夠很容易找到并使用超級(jí)寄存器。圖3對(duì)比了傳統(tǒng)的布線復(fù)用器和HyperFlex布線復(fù)用器,以及所包含的超級(jí)寄存器。
超級(jí)寄存器支持用戶(hù)充分發(fā)揮增強(qiáng)性能的傳統(tǒng)方法的優(yōu)勢(shì)――時(shí)序重排、流水線和優(yōu)化,以更新更好的方式實(shí)現(xiàn)。使用超級(jí)寄存器而不是ALM寄存器來(lái)實(shí)現(xiàn)時(shí),這些方法被稱(chēng)為超級(jí)時(shí)序重排、超級(jí)流水線和超級(jí)優(yōu)化。表1總結(jié)了當(dāng)順序使用這些方法時(shí)所提高的性能,其3個(gè)步驟使用HyperFlex體系結(jié)構(gòu)提高了性能。
八、超級(jí)時(shí)序重排
在傳統(tǒng)的體系結(jié)構(gòu)中,軟件通過(guò)找到附近未使用的ALM寄存器,使其含在電路中,進(jìn)行時(shí)序重排。這一時(shí)序重排方法受限于ALM寄存器布局的粒度:
未使用的ALM所處的位置不一定方便,導(dǎo)致設(shè)計(jì)中出現(xiàn)額外的延時(shí)。
通過(guò)ALM連接至寄存器有布線延時(shí)開(kāi)銷(xiāo)。
如果軟件嘗試對(duì)寬總線(512位、1024位,或者更寬)時(shí)序重排,那么時(shí)序重排需要大量的其他邏輯單元。
確定時(shí)序重排寄存器最佳位置所需要的算法比較難。
圖4顯示了傳統(tǒng)體系結(jié)構(gòu)時(shí)序重排之前和之后的布線實(shí)例。
在HyperFlex內(nèi)核新體系結(jié)構(gòu)中,使用了超級(jí)寄存器來(lái)實(shí)現(xiàn)精細(xì)粒度超級(jí)時(shí)序重排。Quartus II軟件通過(guò)將寄存器移出邏輯單元,放到互聯(lián)中對(duì)通路時(shí)序重排。每一布線段上都有超級(jí)寄存器,因此,有很多可以使用的寄存器位置,方便了進(jìn)行優(yōu)化。
采用超級(jí)寄存器,時(shí)序重排粒度非常精細(xì);每一段布線的延時(shí),只有幾十皮秒。在傳統(tǒng)體系結(jié)構(gòu)中,當(dāng)嘗試確定時(shí)序重排寄存器位置時(shí)需要有所折中,如圖4所示,而這在HyperFlex體系結(jié)構(gòu)中是不需要的。因此,在超級(jí)時(shí)序重排期間,可以很好的分開(kāi)幾納秒長(zhǎng)的通路,如圖5所示。
超級(jí)時(shí)序重排不會(huì)影響已有的LAB和ALM,意味著不需要漸進(jìn)式布局或者布線,對(duì)編譯時(shí)間沒(méi)有很大的影響。對(duì)寄存器時(shí)序重排,布局布線之后,寄存器位置被推入到布線中能夠自然達(dá)到平衡的最終位置(見(jiàn)圖5)。
在傳統(tǒng)體系結(jié)構(gòu)中,對(duì)于需要成百上千個(gè)額外的ALM才能達(dá)到時(shí)序重排而且通常需要大量重新布線的寬數(shù)據(jù)總線而言,這一特性具有很大的優(yōu)勢(shì)。
九、超級(jí)流水線
傳統(tǒng)的流水線受困于和傳統(tǒng)時(shí)序重排遇到的同樣的難題,缺少寄存器粒度降低了優(yōu)化的效率。
由于在設(shè)計(jì)開(kāi)始時(shí)并不知道需要的流水線級(jí)數(shù)量以及其最優(yōu)位置,因此,傳統(tǒng)的流水線本質(zhì)上是一個(gè)迭代過(guò)程。所以,當(dāng)流水線解決方案嘗試滿足性能目標(biāo)時(shí),必須對(duì)設(shè)計(jì)進(jìn)行多次布局布線。圖6顯示了傳統(tǒng)流水線處理之前和之后的簡(jiǎn)單實(shí)例。
當(dāng)使用HyperFlex體系結(jié)構(gòu)時(shí),用戶(hù)可以使用超級(jí)寄存器,根據(jù)需要進(jìn)行流水線處理,而且不會(huì)增大設(shè)計(jì)容量。這一過(guò)程稱(chēng)為超級(jí)流水線。在很多情況下,使用大量寄存器的設(shè)計(jì)由于不需要“孤立”寄存器,因此,實(shí)現(xiàn)設(shè)計(jì)所需要的ALM數(shù)量減少了。
由于流水線的低成本,用戶(hù)可以盡量使用這一方法,特別是在數(shù)據(jù)通路和前饋邏輯中。圖7顯示了一個(gè)超級(jí)流水線的實(shí)例。
由于軟件能夠?qū)⒓拇嫫饕苿?dòng)到互聯(lián)中,自動(dòng)對(duì)邏輯時(shí)序重排,因此,用戶(hù)只需要設(shè)定時(shí)鐘域輸入或者子設(shè)計(jì)引腳邏輯上所需要的流水線寄存器數(shù)量。Quartus II軟件能夠根據(jù)需要,在布局布線之后將寄存器移動(dòng)到布線中,解決了傳統(tǒng)體系結(jié)構(gòu)中存在的流水線多次迭代問(wèn)題。當(dāng)知識(shí)產(chǎn)權(quán)(IP)庫(kù)面向多個(gè)時(shí)鐘頻率(fMAX)時(shí),在RTL中把寄存器放到一起也方便了對(duì)邏輯進(jìn)行參數(shù)賦值。
十、超級(jí)優(yōu)化
完成了超級(jí)時(shí)序重排和超級(jí)流水線之后,設(shè)計(jì)的某些部分的性能會(huì)非常好,而其他部分可能成為瓶頸,很難再提高性能。這些瓶頸可能是長(zhǎng)反饋環(huán)或者復(fù)雜狀態(tài)機(jī)等電路,需要在每一時(shí)鐘周期進(jìn)行評(píng)估。
提高設(shè)計(jì)性能一種常用的方法是優(yōu)化設(shè)計(jì)中的某些部分。例如,具有長(zhǎng)反饋環(huán)的設(shè)計(jì)會(huì)受限于最大頻率(fMAX)。重新設(shè)計(jì)電路,預(yù)先計(jì)算可能的反饋值,使用短反饋環(huán)在其中進(jìn)行選擇,以提高頻率。采用超級(jí)寄存器,這一過(guò)程能夠?qū)崿F(xiàn)的速率要高于傳統(tǒng)的體系結(jié)構(gòu),這是因?yàn)榭梢允褂贸?jí)時(shí)序重排和超級(jí)流水線優(yōu)化預(yù)計(jì)算通路。圖8顯示了一個(gè)超級(jí)優(yōu)化的實(shí)例;進(jìn)行香農(nóng)分解(或者布爾因數(shù)分解)以縮短環(huán)路,從而提高最大頻率。一般而言,可以在控制環(huán)上進(jìn)行這類(lèi)優(yōu)化,獲得的性能增益要遠(yuǎn)遠(yuǎn)超出實(shí)現(xiàn)因數(shù)分解所需要的額外邏輯帶來(lái)的面積成本代價(jià)。
十一、靈活的高速可編程時(shí)鐘樹(shù)綜合
高性能FPGA設(shè)計(jì)中的時(shí)鐘給設(shè)計(jì)人員帶來(lái)了很大的挑戰(zhàn)。傳統(tǒng)的FPGA有固定的全局時(shí)鐘樹(shù)網(wǎng)絡(luò),設(shè)計(jì)用于支持大扇出、芯片級(jí)全局時(shí)鐘域。但是,在GHz性能,時(shí)鐘樹(shù)對(duì)靈活性的要求非常高。設(shè)計(jì)人員希望針對(duì)性能均衡和時(shí)鐘交叉建立時(shí)移時(shí)鐘,為速率匹配和系統(tǒng)電源管理生成動(dòng)態(tài)選通時(shí)鐘。
為滿足這些需求,HyperFlex體系結(jié)構(gòu)含有全新的時(shí)鐘結(jié)構(gòu),包括了經(jīng)過(guò)預(yù)先布線的時(shí)鐘通路,設(shè)計(jì)的時(shí)鐘區(qū)域在其上進(jìn)行綜合(常見(jiàn)于ASIC時(shí)鐘樹(shù)綜合)。這一結(jié)構(gòu)能夠前所未有的靈活的建立小規(guī)模本地時(shí)鐘域。這還可以讓軟件管理偏移;利用好偏移,需要時(shí)降低偏移。此外,需要時(shí),可以使用這一時(shí)鐘結(jié)構(gòu)來(lái)綜合傳統(tǒng)的全局和局部均衡H樹(shù)時(shí)鐘,以便后向兼容。
Quartus II軟件管理可編程時(shí)鐘樹(shù)綜合;在布局布線期間,它以集成方式來(lái)綜合時(shí)鐘樹(shù)。
十二、更高的功效和效能
Stratix 10 FPGA和SoC的功耗比前幾代系列有很大的進(jìn)步,主要是因?yàn)槭褂昧薎ntel的14nm三柵極(FinFET)工藝技術(shù)來(lái)制造器件。而且,HyperFlex體系結(jié)構(gòu)也極大的降低了功耗。性能越來(lái)越高的HyperFlex體系結(jié)構(gòu)實(shí)現(xiàn)了1024比特?cái)?shù)據(jù)通路,時(shí)鐘速率達(dá)到350MHz,512比特?cái)?shù)據(jù)通路的時(shí)鐘速率達(dá)到700MHz。結(jié)果,適配到器件中的設(shè)計(jì)只占用了一半的器件。這種變化對(duì)動(dòng)態(tài)功耗的影響不大,但是靜態(tài)功耗降低了一半,使用更小的器件,大幅度降低了成本;蛘撸O(shè)計(jì)人員可以自由的發(fā)揮性能優(yōu)勢(shì),部分用于提高時(shí)鐘速率,剩余的部分性能用于通過(guò)降低內(nèi)核電源供電電壓或者使用速率等級(jí)較慢的器件來(lái)降低功耗。
不僅僅是通過(guò)提升內(nèi)核的運(yùn)行時(shí)鐘速率,HyperFlex體系結(jié)構(gòu)能夠提供更多的性能優(yōu)勢(shì);很容易實(shí)現(xiàn)時(shí)序收斂,提高設(shè)計(jì)團(tuán)隊(duì)的效能,縮短產(chǎn)品面市時(shí)間。
【理解HyperFlex架構(gòu)如何支持實(shí)現(xiàn)下一代高性能系統(tǒng)】相關(guān)文章:
支持多系統(tǒng)網(wǎng)絡(luò)批量安裝的服務(wù)器實(shí)現(xiàn)03-08
如何實(shí)現(xiàn)金融系統(tǒng)聯(lián)網(wǎng)監(jiān)控03-22
支持語(yǔ)音的教師上課點(diǎn)名系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)DEPHI+SQL03-08
無(wú)線巡更系統(tǒng)技術(shù)的實(shí)現(xiàn)03-18
利用Directshow進(jìn)行流媒體播放架構(gòu)的研究與實(shí)現(xiàn)03-08
機(jī)車(chē)視頻監(jiān)控系統(tǒng)的研究與實(shí)現(xiàn)03-07
組件機(jī)制與操作系統(tǒng)的實(shí)現(xiàn)03-18
JAVA實(shí)現(xiàn)電子商務(wù)系統(tǒng)03-22