使用帶有片上高速網(wǎng)絡(luò)的FPGA的八大好處
引言
本文引用地址:http://2s4d.com/article/202006/413858.htm自從幾十年前首次推出FPGA以來(lái),每種新架構(gòu)都繼續(xù)在采用按位(bit-wise)的布線結(jié)構(gòu)。雖然這種方法一直是成功的,但是隨著高速通信標(biāo)準(zhǔn)的興起,總是要求不斷增加片上總線位寬,以支持這些新的數(shù)據(jù)速率。這種限制的一個(gè)后果是,設(shè)計(jì)人員經(jīng)常花費(fèi)大量的開(kāi)發(fā)時(shí)間來(lái)嘗試實(shí)現(xiàn)時(shí)序收斂,犧牲性能來(lái)為他們的設(shè)計(jì)布局布線。
傳統(tǒng)的FPGA布線基于整個(gè)FPGA中水平和垂直方向上運(yùn)行的多個(gè)獨(dú)立分段互連線(segment),在水平和垂直布線的交叉點(diǎn)處帶有開(kāi)關(guān)盒(switch box)以實(shí)現(xiàn)通路的連接。通過(guò)這些獨(dú)立段和開(kāi)關(guān)盒可以在FPGA上構(gòu)建從任何源到任何目的地的通路。FPGA布線的這種統(tǒng)一結(jié)構(gòu)為實(shí)現(xiàn)任何邏輯功能提供了極大的靈活性,可用于FPGA邏輯陣列內(nèi)的任何數(shù)據(jù)路徑位寬。
盡管在FPGA中的按位來(lái)布線非常靈活,但其缺點(diǎn)是每個(gè)段都會(huì)給任何給定的信號(hào)通路增加延遲。需要在FPGA中進(jìn)行長(zhǎng)距離傳輸?shù)男盘?hào)會(huì)導(dǎo)致分段之間的連接延遲,從而降低了功能的性能。按位布線的另一個(gè)挑戰(zhàn)是擁塞,它要求信號(hào)路徑繞過(guò)擁塞,這會(huì)導(dǎo)致更多的延遲,并造成性能的進(jìn)一步降低。
Achronix將此挑戰(zhàn)視為一個(gè)開(kāi)發(fā)全新架構(gòu)的機(jī)會(huì),以消除傳統(tǒng)FPGA的設(shè)計(jì)挑戰(zhàn)并提高系統(tǒng)性能。Achronix的解決方案是在傳統(tǒng)分段式FPGA布線結(jié)構(gòu)之上,再為其全新的Speedster7t FPGA系列器件創(chuàng)建一個(gè)革命性的二維(2D)高速片上網(wǎng)絡(luò)(NoC)。Speedster7t NoC連接到所有片上高速接口:400G以太網(wǎng)、PCIe Gen5、GDDR6和DDR4 / 5的多個(gè)端口。
NoC的內(nèi)部由一組行和列組成,它們?cè)谡麄€(gè)FPGA邏輯陣列中將網(wǎng)絡(luò)數(shù)據(jù)流量從水平和垂直方向上進(jìn)行分發(fā)。主NoC接入(NAP)點(diǎn)和從NoC接入點(diǎn)位于NoC的每一行和每一列交叉的位置。這些NAP可以是NoC和可編程邏輯陣列之間的源或目的地。
Ethernet:以太網(wǎng)
Security:安全性
Configuration:配置
each direction:每個(gè)方向
Speedster7t的NoC似乎只對(duì)FPGA內(nèi)部的布線總線有所幫助;但是,這種新型架構(gòu)可以顯著提高設(shè)計(jì)人員的工作效率,實(shí)現(xiàn)全新的設(shè)計(jì)功能,并提供了輕松實(shí)現(xiàn)密集型數(shù)據(jù)處理應(yīng)用的能力。下面列舉了在效率提高、設(shè)計(jì)變更和性能提升方面最顯著的八種應(yīng)用場(chǎng)景。
圖1:Speedster7t的片上網(wǎng)絡(luò)(NoC)和接口
在整個(gè)FPGA的邏輯陣列中簡(jiǎn)化高速數(shù)據(jù)分發(fā)
在傳統(tǒng)的各種FPGA架構(gòu)中,對(duì)連接到FPGA的片外存儲(chǔ)器以及與之相連的外部高速數(shù)據(jù)源進(jìn)行雙向的讀/寫(xiě)操作,需要數(shù)據(jù)在FPGA邏輯架構(gòu)中經(jīng)過(guò)一條較長(zhǎng)且分段的路由路徑。這種制約不僅限制了帶寬,而且還會(huì)消耗在邏輯陣列中的用戶設(shè)計(jì)所需的布線資源,這給FPGA設(shè)計(jì)人員在時(shí)序收斂方面帶來(lái)了挑戰(zhàn),尤其是其他邏輯功能對(duì)器件利用率提高的時(shí)候。
使用Speedster7t的NoC將數(shù)據(jù)從外部源傳輸?shù)紽PGA和存儲(chǔ)器,比使用傳統(tǒng)的FPGA架構(gòu)完成同樣的工作要容易得多。Speedster7t NoC增強(qiáng)了FPGA陣列中傳統(tǒng)的可編程互連,其中的NoC就像一個(gè)疊加在城市街道系統(tǒng)上的高速公路網(wǎng)絡(luò)。雖然Speedster7t FPGA中傳統(tǒng)的、可編程互連矩陣仍然適用于較慢的本地?cái)?shù)據(jù)流量,但NoC可以處理更具挑戰(zhàn)性的、高速的數(shù)據(jù)流。
NoC中的每一行或每一列都被實(shí)現(xiàn)為兩個(gè)256位的、以2 Ghz固定時(shí)鐘速率運(yùn)行的單向數(shù)據(jù)通道。行具有東/西通道,列具有北/南通道,從而允許每個(gè)NoC行或列可以同時(shí)處理每個(gè)方向上512 Gbps的數(shù)據(jù)流量??偠灾?,這些通道可以通過(guò)編寫(xiě)簡(jiǎn)單的Verilog或VHDL代碼,在FPGA陣列中傳輸大量的數(shù)據(jù),這些代碼支持FPGA與NAP通信并連接到NoC高速公路網(wǎng)絡(luò)上。
下圖顯示了NoC中各個(gè)點(diǎn)之間的數(shù)據(jù)傳輸。點(diǎn)1和點(diǎn)2的邏輯分別實(shí)例化了一個(gè)水平NAP。NAP可以發(fā)送和接收數(shù)據(jù),但是每個(gè)單獨(dú)的數(shù)據(jù)流都只是朝向一個(gè)方向。類似地,點(diǎn)3和點(diǎn)4的邏輯實(shí)例化了一個(gè)垂直NAP,并且可以在彼此之間發(fā)送數(shù)據(jù)流。
圖2:NoC上跨越器件邏輯陣列的數(shù)據(jù)流
自動(dòng)將PCIe接口連接到存儲(chǔ)器
在現(xiàn)在的FPGA中,設(shè)計(jì)人員在將高速接口連接至連有FPGA的存儲(chǔ)器件進(jìn)行讀寫(xiě)時(shí),必須考慮在器件內(nèi)由于連接邏輯、進(jìn)行布線、以及輸入和輸出信號(hào)的位置而產(chǎn)生的延遲。為了實(shí)現(xiàn)基本的接口功能,在設(shè)計(jì)過(guò)程中構(gòu)建一個(gè)簡(jiǎn)單的存儲(chǔ)接口通常就要花費(fèi)大量的時(shí)間。
在Speedster7t架構(gòu)中,將嵌入式PCIe Gen5接口連接到已連接的GDDR6或DDR4存儲(chǔ)器這項(xiàng)工作,可由外圍NoC自動(dòng)處理,不需要設(shè)計(jì)人員編寫(xiě)任何RTL來(lái)建立這些連接。由于NoC連接到所有的外圍IP接口,因此設(shè)計(jì)人員在將PCIe連接到GDDR6或DDR4的任何一個(gè)存儲(chǔ)器接口時(shí),都具有極大的靈活性。在下面的示例中,NoC能夠提供足夠的帶寬,以持續(xù)支持PCIe Gen 5通信流連接到GDDR6內(nèi)存的任意兩個(gè)通道。這種高帶寬連接無(wú)需消耗任何FPGA邏輯陣列資源即可實(shí)現(xiàn),并且設(shè)計(jì)所需時(shí)間幾乎為零。用戶只需要啟用PCIe和GDDR6接口即可在NoC上發(fā)送事務(wù)。
圖3:將PCIe直接連接到GDDR6接口
在獨(dú)立的FPGA邏輯陣列模塊上實(shí)現(xiàn)安全的局部重新配置
與其他基于靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM)的FPGA一樣,Speedster7t FPGA必須在通電時(shí)進(jìn)行配置。Speedster7t FPGA具有一個(gè)片上FPGA配置單元(FCU),用于管理FPGA的初始配置和任何后續(xù)的局部重新配置。FCU還被連接到NoC,從而在配置FPGA時(shí)提供了更高的靈活性。使用NoC將配置位流傳輸?shù)絊peedster7t FCU,可以使用以前不可用的新方法來(lái)對(duì)FPGA進(jìn)行配置。
在器件配置之前,Speedster7t NoC可用于某些讀/寫(xiě)事務(wù):PCIe至GDDR6、PCIe至DDR4、最后是PCIe至FCU。一旦PCIe接口被設(shè)置好,F(xiàn)PGA就可以通過(guò)PCIe接口接收配置比特流(bitstream),并將其發(fā)送給FCU以配置器件的其余部分。一旦到達(dá)FCU,配置比特流被寫(xiě)入FPGA可編程邏輯以配置器件。在器件被配置完成后,設(shè)計(jì)人員可以靈活地重新配置FPGA的某些部分(局部重新配置),以增加新的功能或提高加速性能,而無(wú)需關(guān)閉FPGA。
新的局部重新配置比特流可以通過(guò)PCIe接口發(fā)送到FCU,來(lái)重新配置器件的任何部分。當(dāng)部分器件被重新配置時(shí),通過(guò)在所需的區(qū)域中實(shí)例化一個(gè)NAP與NoC進(jìn)行通信,任何進(jìn)出新配置區(qū)域的數(shù)據(jù)都可以在Speedster7t1500器件中被輕松訪問(wèn)。NoC消除了傳統(tǒng)FPGA局部重新配置的復(fù)雜性,因?yàn)橛脩舨槐負(fù)?dān)心圍繞現(xiàn)有邏輯功能進(jìn)行布線并影響性能,也不必?fù)?dān)心由于該區(qū)域中的現(xiàn)有邏輯而無(wú)法訪問(wèn)某些器件的引腳。該功能節(jié)省了設(shè)計(jì)人員的時(shí)間,并在使用局部重新配置時(shí)提供了更大的靈活性。
此外,局部重新配置允許設(shè)計(jì)人員在工作負(fù)載變化時(shí)調(diào)整器件內(nèi)的邏輯。例如,如果FPGA正在對(duì)輸入的數(shù)據(jù)執(zhí)行壓縮算法,并且不再需要壓縮,則主機(jī)CPU可以告訴FPGA重新配置,并加載經(jīng)過(guò)優(yōu)化的新設(shè)計(jì)以處理下一個(gè)工作負(fù)載。在器件仍處于運(yùn)行狀態(tài)時(shí),局部重新配置可以在邏輯陣列集群(cluster)級(jí)別上獨(dú)立完成。一個(gè)聰明的用例是開(kāi)發(fā)一個(gè)具有自我感知的FPGA,該FPGA通過(guò)使用一個(gè)軟CPU來(lái)監(jiān)測(cè)器件操作以實(shí)時(shí)啟動(dòng)局部重新配置,來(lái)關(guān)閉邏輯從而節(jié)省功耗,或在FPGA架構(gòu)中添加更多加速器模塊,以臨時(shí)處理大量的輸入數(shù)據(jù)。這些功能為設(shè)計(jì)人員提供了前所未有的配置靈活性。
圖4:使用Speedster7t NoC實(shí)現(xiàn)硬件虛擬化
評(píng)論