Speedster 7t FPGA上的二維片上網(wǎng)絡(luò )(2D NoC)支持高帶寬數據加速應用 作者:黃侖,Achronix資深現場(chǎng)應用工程師 1. 概述 在摩爾定律的推動(dòng)下,集成電路工藝取得了高速發(fā)展,單位面積上的晶體管數量不斷增加。片上系統(System-on-Chip,SoC)具有集成度高、功耗低、成本低等優(yōu)勢,已經(jīng)成為大規模集成電路系統設計的主流方向,解決了通信、圖像、計算、消費電子等領(lǐng)域的眾多挑戰性的難題。 隨著(zhù)片上系統SoC的應用需求越來(lái)越豐富,SoC需要集成越來(lái)越多的不同應用的IP(Intellectual Property)。另外,片上多核系統MPSoC(MultiProcessor-System-on-Chip)也已經(jīng)成為必然的發(fā)展趨勢。 隨著(zhù)SoC的高度集成以及MPSoC的高速發(fā)展,對片上通信提出了更高的要求。片上網(wǎng)絡(luò )技術(shù)(Network-on-Chip,NoC)在這個(gè)時(shí)候也得到了極大的應用,它本質(zhì)上就是提供一種解決芯片內不同IP或者不同核心之間數據傳輸的片上通信方案。 片上網(wǎng)絡(luò )技術(shù)從發(fā)明至今已有20多年的歷史,在SoC中已經(jīng)有了廣泛的應用。針對片上網(wǎng)絡(luò )高帶寬、低延遲的特性,主流FPGA公司也開(kāi)始考慮將NoC用于高端FPGA中來(lái)解決數據傳輸的高帶寬需求。Achronix的新一代7nm工藝的Speedster 7t便是最早集成了NoC的高端FPGA之一。如圖1所示。 ![]() 圖1 Speedster 7t FPGA結構圖 2. 片上互連架構的發(fā)展 片上互聯(lián)架構的發(fā)展主要經(jīng)歷了三個(gè)階段:共享總線(xiàn)(Bus)、Crossbar以及片上網(wǎng)絡(luò )(NoC)[1]。 (1) 傳統的SoC片上通信結構一般采用共享總線(xiàn)的方式。在共享總線(xiàn)結構中,所有的處理器和IP模塊共享一條或多條總線(xiàn)。當有多個(gè)處理器同時(shí)訪(fǎng)問(wèn)一條總線(xiàn)時(shí)候需要有仲裁機制來(lái)決定總線(xiàn)的所有權。共享總線(xiàn)片上通信系統結構一般比較簡(jiǎn)單,且硬件代價(jià)也小。但是帶寬有限,而且帶寬也沒(méi)法隨著(zhù)IP的增多而進(jìn)行擴展。1996年,ARM公司提出的AMBA總線(xiàn)廣泛應用于嵌入式微處理器的片上總線(xiàn),現在已經(jīng)成為事實(shí)上的工業(yè)標準。 ![]() 圖2 典型的AMBA總線(xiàn)系統[2] (2) 對于傳統的共享總線(xiàn),當多個(gè)處理器同時(shí)去訪(fǎng)問(wèn)不同的IP的時(shí)候,因為需要仲裁機制去決定總線(xiàn)的所有權,所以傳統的總線(xiàn)方式在這種情況下就會(huì )造成一定的瓶頸,最大的問(wèn)題就是訪(fǎng)問(wèn)的延時(shí)。在這種情況下,為了滿(mǎn)足多處理同時(shí)訪(fǎng)問(wèn)的需求同時(shí)提高整個(gè)系統的帶寬,一種新的解決方案Crossbar孕育而生,如圖3所示一個(gè)典型的Crossbar結構。 Crossbar保證了多路通信同時(shí)進(jìn)行的實(shí)時(shí)性,只要不是訪(fǎng)問(wèn)同一個(gè)目標設備,就不需要用到仲裁,大大減少了因為仲裁帶來(lái)的瓶頸問(wèn)題。但是隨著(zhù)設備數的增加,Crossbar的規模會(huì )以幾何級數增長(cháng)。所以通常我們通過(guò)橋接設備去級聯(lián)多個(gè)Crossbar來(lái)支持設備的擴展。但是橋接設備可能會(huì )成為系統的瓶頸,增加傳輸的延遲。 ![]() 圖3 典型的單向8x8 Crossbar 實(shí)際應用中,我們通常也會(huì )采用Crossbar和共享總線(xiàn)相結合的方式,用橋接器將Crossbar網(wǎng)絡(luò )和共享總線(xiàn)網(wǎng)絡(luò )連接起來(lái),如圖4所示一個(gè)典型的混合型拓撲結構。 ![]() 圖4 典型的混合拓撲網(wǎng)絡(luò ) (3) 片上網(wǎng)絡(luò )NoC帶來(lái)了一種全新的片上通信方法,顯著(zhù)優(yōu)于傳統的總線(xiàn)式和Crossbar的性能。NoC是一種可擴展性更好的設計。在NoC架構中,每一個(gè)模塊都連接到片上路由器,模塊傳輸的數據則是形成了一個(gè)個(gè)數據包,通過(guò)路由器去送達數據包的目標模塊。如圖5所示是一個(gè)典型的NoC結構,圖中的R表示Router, 所有的Router可以是同步,但每個(gè)Router所連接的PE(Processing Element)與Router異步,自成一個(gè)時(shí)鐘域(Clock Domain)。所以基于NoC的系統能更好地適應在復雜多核SoC設計中使用的全局異步局部同步時(shí)鐘機制。另外,NoC可以支持各種擴展功能,比如流量控制(flow control)、服務(wù)質(zhì)量(QoS)等等。 因此,NoC是多核系統的最佳互聯(lián)機制。 ![]() 圖5 典型的片上網(wǎng)絡(luò )NoC結構 3. NoC在高端FPGA的應用 FPGA在日益增長(cháng)的數據加速需求上正在發(fā)揮越來(lái)越重要的作用。為了滿(mǎn)足云計算和邊緣計算中各種高性能應用的需求,FPGA作為一種可編程可定制化的高性能的器件逐步成為一條部署高吞吐量數據加速的快捷途徑。但同時(shí)這些高性能的加速應用也對高端FPGA提出了更高的要求,高算力、高帶寬的數據傳輸以及高帶寬的存儲器。 片上網(wǎng)絡(luò )技術(shù)已經(jīng)比較廣泛的用于SoC中,并取得了比較好的效果。近年來(lái)才慢慢用于FPGA中,Achronix創(chuàng )建了一種可最大限度地提高系統吞吐量的Speedster 7t FPGA芯片,創(chuàng )新地將二維片上網(wǎng)絡(luò )(2D NoC)運用到了FPGA中,可以在邏輯陣列內的處理單元與各種片上高速接口和存儲器接口之間高速地傳輸數據,真正實(shí)現了數據密集型應用吞吐量的最大化。有了片上網(wǎng)絡(luò )的FPGA如虎添翼,帶來(lái)了傳統FPGA所不及的很多優(yōu)勢,勢必在各種數據加速應用中發(fā)揮巨大的作用。 4. NoC給Speedster 7t FPGA帶來(lái)的優(yōu)勢 Achronix Speedster 7t FPGA擁有支持單通道速率112Gbps的SerDes、400G以太網(wǎng)MAC、PCIe GEN5控制器以及帶寬高達4Tbps帶寬的GDDR6控制器,為各種數據加速應用提供了高帶寬的I/O接口和高帶寬的存儲器。在這類(lèi)應用中,會(huì )有大量的數據進(jìn)入FPGA進(jìn)行處理,處理后的數據會(huì )通過(guò)FPGA輸出,所以除了FPGA算力以外,數據移動(dòng)速度直接決定了器件的性能以及用戶(hù)的體驗。為了提高數據傳輸速率,Achronix在Speedster 7t FPGA中專(zhuān)門(mén)設計了不同于傳統FPGA數據移動(dòng)通道的片上網(wǎng)絡(luò )。如圖6所示。這是一個(gè)可橫跨和垂直跨越FPGA邏輯陣列的創(chuàng )新性的、高帶寬的二維片上網(wǎng)絡(luò )(2D NoC),它不僅可以連接到所有FPGA高速接口、高帶寬存儲器接口,還可以作為內部邏輯之間的互連。 ![]() 圖6 Speedster 7t片上網(wǎng)絡(luò )(NoC)結構 Speedster 7t FPGA上的二維片上網(wǎng)絡(luò )(2D NoC)不是由可編程邏輯搭建,而是固化的ASIC邏輯實(shí)現,固定運行頻率為2GHz,每一行或者每一列的NoC都可以作為兩個(gè)單向256位實(shí)現雙向的通路,所以每個(gè)方向可提供512Gbps的帶寬,整個(gè)網(wǎng)絡(luò )總帶寬則能達到27Tbps。 下面的表格列出了Speedster 7t FPGA中NoC的特性。 表1 Speedster 7t FPGA中NoC特性
NoC為FPGA提供了以下幾項重要優(yōu)勢: (1) 大幅提高設計性能,解決一些高性能應用如400G以太網(wǎng)的性能瓶頸:通常在數據流經(jīng)過(guò)400G以太網(wǎng)MAC解包以后會(huì )是一個(gè)超高位寬且需要運行在很高頻率的處理,這在傳統FPGA邏輯單元里面是無(wú)法實(shí)現的,而NoC就能解決性能瓶頸。我們會(huì )在后續文章具體說(shuō)明。 (2) NoC是在傳統可編程邏輯之外額外增加的走線(xiàn)資源,所以在高資源占用設計中可以降低布局布線(xiàn)擁塞的風(fēng)險。 (3) NoC包含了異步時(shí)鐘轉換,仲裁控制等邏輯,可以去替代傳統的邏輯去做高速接口和總線(xiàn)管理等,所以利用NoC可以簡(jiǎn)化用戶(hù)設計節省一部分傳統資源(LE、FIFO和布線(xiàn)等)的使用。 (4) NoC部分是ASIC固化邏輯,功耗比傳統的FPGA可編程邏輯實(shí)現要低很多。 (5) 利用NoC可以實(shí)現真正的模塊化設計。傳統高端FPGA設計通常是需要一個(gè)FPGA工程師團隊來(lái)完成,每個(gè)工程師設計自己模塊,在FPGA整個(gè)芯片里調試驗證自己模塊,然后再把各個(gè)模塊連接成更大的完整設計,這時(shí)候會(huì )由于資源占用上升,通常需要花很多時(shí)間去優(yōu)化布局甚至去修改設計以達到目標性能。而在A(yíng)chronix Speedster7t 中可以讓模塊之間通過(guò)NOC互聯(lián),再借助對于單個(gè)模塊功能性能調試完成后固定布局技術(shù),甚至可以達到NoC互聯(lián)后整體設計不需要額外聯(lián)調的可能。這樣可以大幅減少研發(fā)工作量和時(shí)間。 后面我們會(huì )繼續深入了解Speedster 7t FPGA上的二維片上網(wǎng)絡(luò )(2D NoC),并且會(huì )用一些具體的設計來(lái)講解如何在Speedster 7t FPGA上使用NoC以及NoC給FPGA設計帶來(lái)的好處,敬請期待。 如需更多信息或者有任何疑問(wèn)您可以通過(guò)Achronix公眾號里聯(lián)系方式聯(lián)系我們,也可訪(fǎng)問(wèn)Achronix公司官方網(wǎng)站 http://www.achronix.com 參考文獻: 1. The SoC Interconnect Fabric: A Brief History by Kurt Shuler 2013 2. AMBA specification 2.0 3. A comparison of Network-on-Chip and Busses by Arteris 4. 片上通信結構-共享總線(xiàn)和NoC的分析與比較 周文彪,張巖,毛志剛 2007 5. Achronix website www.achronix.com |