Achronix白皮書(shū) 引言 自從幾十年前首次推出FPGA以來(lái),每種新架構都繼續在采用按位(bit-wise)的布線(xiàn)結構。雖然這種方法一直是成功的,但是隨著(zhù)高速通信標準的興起,總是要求不斷增加片上總線(xiàn)位寬,以支持這些新的數據速率。這種限制的一個(gè)后果是,設計人員經(jīng);ㄙM大量的開(kāi)發(fā)時(shí)間來(lái)嘗試實(shí)現時(shí)序收斂,犧牲性能來(lái)為他們的設計布局布線(xiàn)。 傳統的FPGA布線(xiàn)基于整個(gè)FPGA中水平和垂直方向上運行的多個(gè)獨立分段互連線(xiàn)(segment),在水平和垂直布線(xiàn)的交叉點(diǎn)處帶有開(kāi)關(guān)盒(switch box)以實(shí)現通路的連接。通過(guò)這些獨立段和開(kāi)關(guān)盒可以在FPGA上構建從任何源到任何目的地的通路。FPGA布線(xiàn)的這種統一結構為實(shí)現任何邏輯功能提供了極大的靈活性,可用于FPGA邏輯陣列內的任何數據路徑位寬。 盡管在FPGA中的按位來(lái)布線(xiàn)非常靈活,但其缺點(diǎn)是每個(gè)段都會(huì )給任何給定的信號通路增加延遲。需要在FPGA中進(jìn)行長(cháng)距離傳輸的信號會(huì )導致分段之間的連接延遲,從而降低了功能的性能。按位布線(xiàn)的另一個(gè)挑戰是擁塞,它要求信號路徑繞過(guò)擁塞,這會(huì )導致更多的延遲,并造成性能的進(jìn)一步降低。 Achronix將此挑戰視為一個(gè)開(kāi)發(fā)全新架構的機會(huì ),以消除傳統FPGA的設計挑戰并提高系統性能。Achronix的解決方案是在傳統分段式FPGA布線(xiàn)結構之上,再為其全新的Speedster7t FPGA系列器件創(chuàng )建一個(gè)革命性的二維(2D)高速片上網(wǎng)絡(luò )(NoC)。Speedster7t NoC連接到所有片上高速接口:400G以太網(wǎng)、PCIe Gen5、GDDR6和DDR4 / 5的多個(gè)端口。 NoC的內部由一組行和列組成,它們在整個(gè)FPGA邏輯陣列中將網(wǎng)絡(luò )數據流量從水平和垂直方向上進(jìn)行分發(fā)。主NoC接入(NAP)點(diǎn)和從NoC接入點(diǎn)位于NoC的每一行和每一列交叉的位置。這些NAP可以是NoC和可編程邏輯陣列之間的源或目的地。 ![]() 圖1:Speedster7t的片上網(wǎng)絡(luò )(NoC)和接口 Ethernet:以太網(wǎng) Security:安全性 Configuration:配置 each direction:每個(gè)方向 Speedster7t的NoC似乎只對FPGA內部的布線(xiàn)總線(xiàn)有所幫助;但是,這種新型架構可以顯著(zhù)提高設計人員的工作效率,實(shí)現全新的設計功能,并提供了輕松實(shí)現密集型數據處理應用的能力。下面列舉了在效率提高、設計變更和性能提升方面最顯著(zhù)的八種應用場(chǎng)景。 在整個(gè)FPGA的邏輯陣列中簡(jiǎn)化高速數據分發(fā) 在傳統的各種FPGA架構中,對連接到FPGA的片外存儲器以及與之相連的外部高速數據源進(jìn)行雙向的讀/寫(xiě)操作,需要數據在FPGA邏輯架構中經(jīng)過(guò)一條較長(cháng)且分段的路由路徑。這種制約不僅限制了帶寬,而且還會(huì )消耗在邏輯陣列中的用戶(hù)設計所需的布線(xiàn)資源,這給FPGA設計人員在時(shí)序收斂方面帶來(lái)了挑戰,尤其是其他邏輯功能對器件利用率提高的時(shí)候。 使用Speedster7t的NoC將數據從外部源傳輸到FPGA和存儲器,比使用傳統的FPGA架構完成同樣的工作要容易得多。Speedster7t NoC增強了FPGA陣列中傳統的可編程互連,其中的NoC就像一個(gè)疊加在城市街道系統上的高速公路網(wǎng)絡(luò )。雖然Speedster7t FPGA中傳統的、可編程互連矩陣仍然適用于較慢的本地數據流量,但NoC可以處理更具挑戰性的、高速的數據流。 NoC中的每一行或每一列都被實(shí)現為兩個(gè)256位的、以2 Ghz固定時(shí)鐘速率運行的單向數據通道。行具有東/西通道,列具有北/南通道,從而允許每個(gè)NoC行或列可以同時(shí)處理每個(gè)方向上512 Gbps的數據流量?偠灾,這些通道可以通過(guò)編寫(xiě)簡(jiǎn)單的Verilog或VHDL代碼,在FPGA陣列中傳輸大量的數據,這些代碼支持FPGA與NAP通信并連接到NoC高速公路網(wǎng)絡(luò )上。 下圖顯示了NoC中各個(gè)點(diǎn)之間的數據傳輸。點(diǎn)1和點(diǎn)2的邏輯分別實(shí)例化了一個(gè)水平NAP。NAP可以發(fā)送和接收數據,但是每個(gè)單獨的數據流都只是朝向一個(gè)方向。類(lèi)似地,點(diǎn)3和點(diǎn)4的邏輯實(shí)例化了一個(gè)垂直NAP,并且可以在彼此之間發(fā)送數據流。 ![]() 圖2:NoC上跨越器件邏輯陣列的數據流 自動(dòng)將PCIe接口連接到存儲器 在現在的FPGA中,設計人員在將高速接口連接至連有FPGA的存儲器件進(jìn)行讀寫(xiě)時(shí),必須考慮在器件內由于連接邏輯、進(jìn)行布線(xiàn)、以及輸入和輸出信號的位置而產(chǎn)生的延遲。為了實(shí)現基本的接口功能,在設計過(guò)程中構建一個(gè)簡(jiǎn)單的存儲接口通常就要花費大量的時(shí)間。 在Speedster7t架構中,將嵌入式PCIe Gen5接口連接到已連接的GDDR6或DDR4存儲器這項工作,可由外圍NoC自動(dòng)處理,不需要設計人員編寫(xiě)任何RTL來(lái)建立這些連接。由于NoC連接到所有的外圍IP接口,因此設計人員在將PCIe連接到GDDR6或DDR4的任何一個(gè)存儲器接口時(shí),都具有極大的靈活性。在下面的示例中,NoC能夠提供足夠的帶寬,以持續支持PCIe Gen 5通信流連接到GDDR6內存的任意兩個(gè)通道。這種高帶寬連接無(wú)需消耗任何FPGA邏輯陣列資源即可實(shí)現,并且設計所需時(shí)間幾乎為零。用戶(hù)只需要啟用PCIe和GDDR6接口即可在NoC上發(fā)送事務(wù)。 ![]() 圖3:將PCIe直接連接到GDDR6接口 在獨立的FPGA邏輯陣列模塊上實(shí)現安全的局部重新配置 與其他基于靜態(tài)隨機存取存儲器(SRAM)的FPGA一樣,Speedster7t FPGA必須在通電時(shí)進(jìn)行配置。Speedster7t FPGA具有一個(gè)片上FPGA配置單元(FCU),用于管理FPGA的初始配置和任何后續的局部重新配置。FCU還被連接到NoC,從而在配置FPGA時(shí)提供了更高的靈活性。使用NoC將配置位流傳輸到Speedster7t FCU,可以使用以前不可用的新方法來(lái)對FPGA進(jìn)行配置。 在器件配置之前,Speedster7t NoC可用于某些讀/寫(xiě)事務(wù):PCIe至GDDR6、PCIe至DDR4、最后是PCIe至FCU。一旦PCIe接口被設置好,FPGA就可以通過(guò)PCIe接口接收配置比特流(bitstream),并將其發(fā)送給FCU以配置器件的其余部分。一旦到達FCU,配置比特流被寫(xiě)入FPGA可編程邏輯以配置器件。在器件被配置完成后,設計人員可以靈活地重新配置FPGA的某些部分(局部重新配置),以增加新的功能或提高加速性能,而無(wú)需關(guān)閉FPGA。 新的局部重新配置比特流可以通過(guò)PCIe接口發(fā)送到FCU,來(lái)重新配置器件的任何部分。當部分器件被重新配置時(shí),通過(guò)在所需的區域中實(shí)例化一個(gè)NAP與NoC進(jìn)行通信,任何進(jìn)出新配置區域的數據都可以在Speedster7t1500器件中被輕松訪(fǎng)問(wèn)。NoC消除了傳統FPGA局部重新配置的復雜性,因為用戶(hù)不必擔心圍繞現有邏輯功能進(jìn)行布線(xiàn)并影響性能,也不必擔心由于該區域中的現有邏輯而無(wú)法訪(fǎng)問(wèn)某些器件的引腳。該功能節省了設計人員的時(shí)間,并在使用局部重新配置時(shí)提供了更大的靈活性。 此外,局部重新配置允許設計人員在工作負載變化時(shí)調整器件內的邏輯。例如,如果FPGA正在對輸入的數據執行壓縮算法,并且不再需要壓縮,則主機CPU可以告訴FPGA重新配置,并加載經(jīng)過(guò)優(yōu)化的新設計以處理下一個(gè)工作負載。在器件仍處于運行狀態(tài)時(shí),局部重新配置可以在邏輯陣列集群(cluster)級別上獨立完成。一個(gè)聰明的用例是開(kāi)發(fā)一個(gè)具有自我感知的FPGA,該FPGA通過(guò)使用一個(gè)軟CPU來(lái)監測器件操作以實(shí)時(shí)啟動(dòng)局部重新配置,來(lái)關(guān)閉邏輯從而節省功耗,或在FPGA架構中添加更多加速器模塊,以臨時(shí)處理大量的輸入數據。這些功能為設計人員提供了前所未有的配置靈活性。 輕松支持硬件虛擬化 Speedster7t NoC通過(guò)利用NAP及其AXI接口,為設計人員提供了在單個(gè)FPGA中創(chuàng )建虛擬化安全硬件的獨特能力。將可編程邏輯設計直接連接到NoC只需要在邏輯設計中實(shí)例化一個(gè)NAP及其AXI4接口即可。每個(gè)NAP還具有一個(gè)相關(guān)的地址轉換表(ATT),該表將NAP上的邏輯地址轉換為NoC上的物理地址。NAP的ATT允許可編程邏輯模塊使用本地地址,同時(shí)將NoC定向事務(wù)映射到NoC全局存儲映射所分配的地址。此項重新映射功能可以以多種方式使用。例如,它可以用于允許加速引擎的所有相同副本使用基于零的虛擬尋址,同時(shí)將數據流量從每個(gè)加速引擎發(fā)送到不同的物理存儲位置。 每個(gè)ATT條目還包含一個(gè)訪(fǎng)問(wèn)保護位,以防止該節點(diǎn)訪(fǎng)問(wèn)被禁止的地址范圍。該功能提供了一種重要的進(jìn)程間安全機制,可防止同時(shí)在一個(gè)Speedster7t FPGA上運行的多個(gè)應用或多個(gè)任務(wù)干擾分配給其他應用或任務(wù)的存儲模塊。這種安全機制還有助于防止由于意外、偶然甚至是故意的存儲地址沖突而導致系統崩潰。此外,設計人員可以使用此方案阻止邏輯功能訪(fǎng)問(wèn)整個(gè)存儲設備。 ![]() 圖4:使用Speedster7t NoC實(shí)現硬件虛擬化 Memory Space:存儲空間 簡(jiǎn)化團隊協(xié)同設計 基于團隊的協(xié)同化FPGA設計并不是一個(gè)新的概念,但是底層架構和布線(xiàn)依賴(lài)于FPGA的其他部分,從而使得實(shí)現這個(gè)簡(jiǎn)單概念非常具有挑戰性。一旦一個(gè)團隊完成了設計的一部分,另一個(gè)設計其他部分的團隊在嘗試訪(fǎng)問(wèn)設備另一端的資源時(shí),通常會(huì )遇到挑戰,因為需要在已經(jīng)完成的設計部分進(jìn)行布線(xiàn)。同樣,對一部分已進(jìn)行設計布線(xiàn)的FPGA的區域或大小進(jìn)行更改,可能會(huì )對所有其他FPGA設計模塊產(chǎn)生連鎖影響。 使用Speedster7t NoC,可以將設計模塊映射到FPGA的任何部分,并且可以對資源分配進(jìn)行更改,而不會(huì )影響其他FPGA模塊的時(shí)序、布局或布線(xiàn)。由于器件中所有的NAP都支持每個(gè)設計模塊無(wú)限制地訪(fǎng)問(wèn)NoC進(jìn)行通信,因此使得基于團隊的設計成為可能。因此,如果一個(gè)設計的某個(gè)部分在規模上有所增大,只要有足夠的FPGA資源可用,數據流就會(huì )由NoC自動(dòng)管理,從而使設計人員不必擔心是否滿(mǎn)足時(shí)序,以及對其他團隊成員正在進(jìn)行的設計的其他部分可能帶來(lái)的后續影響。 ![]() 圖5:致力于開(kāi)發(fā)同一個(gè)FPGA的多個(gè)設計團隊 Design Team:設計團隊 通過(guò)獨立的接口和邏輯驗證加快設計速度 Speedster7t NoC的另一個(gè)獨特功能是支持設計人員獨立于用戶(hù)邏輯去配置和驗證I/O連接。例如,一個(gè)設計團隊可以驗證PCIe至GDDR6的接口,而另一個(gè)設計團隊可以獨立地驗證內部邏輯功能。這種獨立操作之所以能夠實(shí)現,是因為NoC的外圍部分連接了PCIe、GDDR6、DDR4和FCU,而不會(huì )消耗任何FPGA資源。這些連接可以在不使用任何HDL代碼的情況下進(jìn)行測試,從而可以同時(shí)獨立地驗證接口和邏輯。該功能消除了驗證步驟之間的依賴(lài)關(guān)系,并實(shí)現了比傳統FPGA架構更快的總體驗證速度。 ![]() 圖6:獨立的I/O和邏輯驗證 Design Team 1: I/O Verification:設計團隊1:I/O驗證 Design Team 2: Logic Verification:設計團隊2:邏輯驗證 采用分組模式(Packet Mode)簡(jiǎn)化400 Gbps以太網(wǎng)應用 在FPGA中實(shí)現高速400 Gbps以太網(wǎng)數據通路所面臨的挑戰是找到一種能夠滿(mǎn)足FPGA性能要求的總線(xiàn)位寬。對于400G以太網(wǎng),全帶寬運行的唯一可行選擇是運行在724 MHz的1,024位總線(xiàn),或運行在642 MHz的2,048位總線(xiàn)。如此寬的總線(xiàn)難以布線(xiàn),因為它們在FPGA架構內消耗了大量的邏輯資源,即使在最先進(jìn)的FPGA中也會(huì )在這樣的速率要求下產(chǎn)生時(shí)序收斂挑戰。 但是,在Speedster7t架構中,設計人員可以使用一種稱(chēng)為分組模式(packet mode)的新型處理模式,其中傳入的以太網(wǎng)流被重新排列為四個(gè)較窄的32字節數據包,或者四條獨立的以506 MHz頻率運行的256位總線(xiàn)。這種模式的優(yōu)點(diǎn)包括:當數據包結束時(shí)減少了字節的浪費,并且可以并行傳輸數據,而不必等到第一個(gè)數據包完成后才開(kāi)始第二個(gè)數據包的傳輸。Speedster7t FPGA架構的設計旨在通過(guò)將以太網(wǎng)MAC直接連接到特定的NoC列,然后使用用戶(hù)實(shí)例化的NAP從NoC列連接到邏輯陣列中,從而啟用分組模式。使用NoC列,數據可以沿著(zhù)該列被發(fā)送到FPGA架構中的任何位置,以便進(jìn)一步處理。使用ACE設計工具配置分組模式,可大大簡(jiǎn)化用戶(hù)設計,并在處理400 Gbps以太網(wǎng)數據流時(shí)提高了效率。 ![]() 圖7:分組模式下的數據總線(xiàn)重排 Packet:數據包 Byte:字節 ![]() 圖8:使用分組模式的400 Gbps以太網(wǎng) 降低邏輯占用并提高整體FPGA性能 與以前的傳統FPGA相比,Speedster7t NoC具有更大的靈活性和更簡(jiǎn)單的設計方法。一個(gè)潛在的好處是NoC會(huì )自動(dòng)減少給定設計所需的邏輯量,設計可以使用NoC代替FPGA邏輯陣列來(lái)進(jìn)行模塊間布線(xiàn)。ACE設計工具自動(dòng)管理將設計單元連接到Speedster7t NoC的復雜性,因此設計人員無(wú)需編寫(xiě)HDL代碼即可實(shí)現生產(chǎn)率。這種方法簡(jiǎn)化了實(shí)現時(shí)序收斂的耗時(shí)挑戰,同時(shí)又不會(huì )由于FPGA邏輯陣列內的布線(xiàn)擁塞而降低整體應用性能。NoC還可以在不犧牲FPGA性能的情況下提高器件利用率,并且可以顯著(zhù)增加可用于計算的查找表(LUT)數量。 為了強調這一優(yōu)勢,我們創(chuàng )建了一個(gè)支持二維輸入圖像卷積的示例設計。每個(gè)模塊都使用Speedster7t機器學(xué)習處理器(MLP)和BRAM模塊,每個(gè)MLP在一個(gè)周期內執行12次int8乘法。將40個(gè)二維卷積模塊鏈接在一起,以利用器件中幾乎所有可用的BRAM和MLP資源?偣灿40個(gè)二維卷積示例設計實(shí)例并行運行,使用了94%的MLP、97%的BRAM、但僅使用了8%的LUT。在總的可用LUT中,其余92%的LUT仍可被用于其他功能。 隨著(zhù)更多的實(shí)例被內置于器件中,單個(gè)單元模塊的最高頻率(FMAX)不會(huì )降低。該設計能夠保持性能,因為進(jìn)出每個(gè)二維卷積模塊的數據可以直接從連接到NoC的NAP訪(fǎng)問(wèn)GDDR6內存,而無(wú)需通過(guò)FPGA邏輯陣列進(jìn)行布線(xiàn)。 ![]() 圖9:一個(gè)帶有40個(gè)二維卷積模塊實(shí)例的Speedster7t器件 結論 Speedster7t NoC實(shí)現了FPGA設計過(guò)程的根本轉變。Achronix是第一家實(shí)現二維片上網(wǎng)絡(luò )(2D NoC)的FPGA公司,該2D NoC可以連接所有的系統接口和FPGA邏輯陣列。這種新型架構使Achronix公司的FPGA特別適用于高帶寬應用,同時(shí)顯著(zhù)提高了設計人員的生產(chǎn)率。由于NoC管理了FPGA中設計的數據加速器和高速數據接口之間的所有網(wǎng)絡(luò )功能,因此設計人員只需要設計其數據加速器并將其連接到NAP原語(yǔ)即可。ACE和NoC負責其他所有事務(wù)。通過(guò)使用NoC,FPGA設計人員將受益于: 在整個(gè)FPGA邏輯陣列中簡(jiǎn)化高速數據分發(fā) 自動(dòng)將PCIe接口連接到存儲器 在獨立的FPGA邏輯陣列模塊上實(shí)現安全的局部重新配置 輕松支持硬件虛擬化 簡(jiǎn)化團隊化設計 通過(guò)獨立的接口和邏輯驗證加快設計速度 采用分組模式簡(jiǎn)化400 Gbps以太網(wǎng)應用 降低邏輯占用并提高整體FPGA性能 要了解有關(guān)Speedster7t FPGA的更多信息,請訪(fǎng)問(wèn)www.achronix.com/speedster7t。 |