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