摘要:多核處理器已經成為處理器的主流,并發展成為各種通信與媒體應用的主流處理平臺。通訊結構是多核系統中的核心技術之一,核間通信的效率是影響多核處理器性能的重要指標。目前有3種主要的通訊架構:總線系統結構、交叉開關網絡和片上網絡。總線結構設計相對方便、硬件消耗較少、成本較低;交叉開關是適合用于構建大容量系統的交換網絡結構;而片上網絡是更高層次、更大規模的片上網絡系統,目前可以解決多核體系結構問題,是多核系統最有前途的解決方案之一。文中在分析了NoC結構的基本原理、系統結構和功能的同時,也提供了部分單元的設計實現。
關鍵詞:多核處理器;核間通信;總線結構;交叉開關;片上網絡
在處理器的發展中,提高處理器主頻的實現愈加困難,市場上難以看到芯片主頻率高于4 CHz的傳統單處理器。以Intel、AMD公司為代表,依靠不斷提高處理器頻率提升系統性能的時代即將成為過去。究其原因有3點:首先僅依靠提升主頻難以大幅度提升CPU的性能,從而減緩了消費者對高頻CPU的熱衷;其次當CPU主頻達到2 GHz以上時,處理器功耗也達到了近100 W,這是目前風冷散熱技術的極限;第三,在嵌入式產品領域,傳統的單核處理器結構,不能滿足呈幾何級數增長的計算規模的需求。單核模式下,利用局部性能提升整體性能的發展越來越慢,而基于多核的線程級并行技術卻為性能提高提供了動力,為達到更高的處理效能,多核處理器體系結構應運而生。
多核處理器是一個芯片內含有兩個或兩個以上的“執行內核”。多核處理器在進行體系結構的技術研究時,比單核處理器,要面臨更多的挑戰,諸如核間通訊、存儲器體系、低功耗、軟硬件協調等。如何實現多核內核之間相互協作和通信,確保提高處理速度、提高芯片處理器性能,是核間通訊結構研究的主要內容。在多核通訊方式中,目前除繼續沿用單核SoC中的總線結構,如AMBA,CoreConnect,Wishbone,OCP,C*BUS等,主要有交叉開關(Crossbar Switch)、片上網絡(NoC,Network on-Chip)等結構。其中NoC結構是更高層次、更大規模的片上網絡系統,目前可以解決多核體系結構問題,是多核系統有效的解決方案之一。
1?? NoC解決的問題及其優點
隨著工藝的進步,產品的性能、面積、功耗以及上市時間的限制,使設計開發的要求越來越高。深亞微米設計帶來的問題,使得設計中保證時序收斂更加困難。NoC(Network on-Chip)的出現為深亞微米的SoC帶來了持續發展的動力。NoC是更高層次、更大規模的片上系統,是片上的網絡系統。NoC技術的核心思想是將計算機網絡技術移植到芯片設計中,解決多CPU的體系結構問題。由于網絡結構本質就是多CPU系統,因此基于網絡的體系結構是多CPU系統最有前途的解決方案之一。片上網絡繼承了分布式系統與計算機網絡的概念,互連結構具有各通信模塊之間并行通信,數據的通信帶寬高,擴展性好,吞吐量大,并可以在一定程度上改善深/超深亞微米條件下信號傳輸線延遲等優點,有人稱NoC會成為下一代多核的主流互連結構。
1.1 NoC解決的問題
NoC解決的問題主要體現在通訊模塊的可重用性和通訊性能的可預測性上。
(1)增加通訊模塊的可重用性。一般SoC概念中,可重用性是IP模塊的復用。基于模塊的設計方法,能夠增強設計的可重用性,進而減小制造工藝同設計能力之間的差距。可重用技術的優越性在于以基于模塊的設計,搭建整個系統,減少單獨開發每個部件的設計時間,同時減少人為設計的出錯可能,因此降低了系統的設計和驗證時間。但是當制造工藝發展到0.13μm以下后,模塊間的互連延遲成為限制系統整體性能的瓶頸,僅靠IP模塊的復用已遠不能滿足整體性能的需求,片上網絡結構正是利用通信部件的可重用技術,將不同資源單元之間的路由連接通過規則的通信部件進行連接,為深亞微米技術帶來的問題提供解決方案。
(2)加強通訊性能的可預測性。片上網絡因其規則的物理布局和通信網絡結構,通信性能變得可預測。從物理性能的角度分析,片上網絡結構決定了其版圖物理性能的可預測性。除時鐘、電源布線外,交換單元間的互連長度以及帶寬都是同定不變的,而設計的不確定性和不規則性都限制在資源單元內部,對于其他資源單元沒有造成影響;從設計和驗證時間角度分析,片上網絡基于模塊的可重用性使得設計和驗證的時間都可預測,由于片上網絡結構的規則性,將任務分配等設計問題劃分到了資源單元內部,進而將整體應用劃分為獨立任務。這樣使得片上網絡系統的設計在較大程度上獨立于具體的實現階段,更好地進行模塊化沒計,增加了通訊性能的可預測性。
1.2 NoC的優點
NoC設計采用全局異步局部同步的方式解決了整個芯片全局同步面臨的問題,有較好的可重用性和可擴展性,平均通信帶寬較高。在NoC中,處理核與網絡的通訊是通過簡單的握手協議來完成的,因此網絡與各處理器的電氣參數、時鐘信號都可以相對獨立處理,容易控制。此外網絡與處理器間也可以使用異步通訊,這就不需要系統時鐘的全局同步,避免了龐大時鐘樹所帶來的時鐘和面積問題,而局部時鐘線的大量采用可以大幅降低系統功耗。
NoC的各同步單元在遵守通信協議的前提下協同工作,如有NoC系統有擴展的需要,只需增加一個系統中已經存在的通信開關的副本,同時設計一個通信接口,把擴展的功能單元集成到NoC的網絡拓撲中就可完成。NoC有可復用可擴展的通信機制,同時改用全局異步局部同(Glo bal Asynohronized Local Synchronized,GALS)方式工作,沒有全局的控制信號的干預,所以NoC的可擴展性好。
衡量NoC性能的主要指標就是通信帶寬。NoC采用全局異步局部同步的通信方式,雖然得到了一些好處,但缺點也明顯,例如實時通信帶寬不能達理想高度。但從整個NoC的平均通信帶寬上看,全局的平均通信帶寬比基于總線方式的平均通信帶寬高。總之隨著工藝集成度的逐漸提高,NoC在解決全局時鐘同步問題、深亞微米效應、擴展性和設計與生產之間的鴻溝上都優于傳統設計方法。
2?? NoC的拓撲結構
拓撲結構關心的是節點的布局和互連。NoC拓撲結構的選擇對系統性能和芯片面積有明顯的影響。NoC可根據應用的需要采用不同的拓撲結構,可分為規則結構、非規則結構等。相對于規則拓撲結構,不規則拓撲結構可以提高性能、降低功耗、減小面積,但同時產生版圖設計、不均勻的線長等設計問題。拓撲結構的衡量標準通常是以理論上影響路由成本和性能為基礎,除了要考慮普通網絡中所關心的節點數量、邊的數量、網絡維度、網絡直徑、平均距離、對分寬度之外,還要考慮通信模式的嵌入屬性,例如消息吞吐量、傳輸延遲、功耗、芯片而積等。
圖1是簡單的NoC拓撲結構,拓撲結構體現NoC中通訊節點在芯片中的分布和連接。由于系統需求、節點模塊的尺寸和位置不同,需要不同類型的拓撲結構,有很多種可供選擇的拓撲結構。良好的拓撲結構必須考慮以下因素:路由節點與處理器節點或者路由節點之間的通信帶有明顯的局部性特征;NoC中資源節點的物理尺寸與通訊節點的物理尺寸相互影響;NoC使用物理連線作為通信信道,因此節點之間的連接不能太復雜,且要具有易擴展性。
片上網絡結構常用的為直接型結構,即網絡中每個節點與相鄰節點之間以點對點方式或直接互聯的方式連接,如網格(Mesh)結構,Mesh結構足規則的NoC拓撲結構,具備硬件實現簡單、網絡擴展性好等優點,因此做為NoC以最為常用拓撲結構。包括了規則的Mesh結構、不規則的Mesh結構、多層Mesh結構、稀疏的Mesh結構,二維環狀Mesh結構,還有胖樹結構、八角形網絡等。圖2所示為采用二維網格結構的片上網絡,這是較常用的系統結構。該二維網格結構由資源單元和網絡結構構成,其中網絡結構包括交換單元、通信通道和資源與網絡的接口,資源單元由嵌入式系統或者存儲器系統構成。圖中S表示交換單元,P與C分別表示處理器單元與緩沖存儲器,D表示DSP單元,re表示可配置單元,如FPGA單元。mi表示資源與網絡的接口,M表示存儲單元。圖中每一個方形區域(Region)用于映射不同結構的系統,例如處理器子系統和存儲器子系統合成的區域,區域的規模可以大于一般的資源單元,但區域與片上網絡其他部分的互連需要通過交換單元進行。
法國Pierre et Marie Curie大學的Pierre Guerrier等人在2000年提出了稱為胖樹(Fat-tree)結構的網絡結構,如圖3所示。r是通訊節點,p是資源節點,其在設計一種可升級、可編程的集成網絡時采用了這種結構。與二維網狀網絡相比,胖樹結構中樹的深度決定了點對點的延遲,兩個資源結點間的通訊最多需要經過3個通訊結點。
與此同時,F.Karim等人在設計網絡處理器時提出了八角形網絡結構,如圖4所示。類似于胖樹網絡,該網絡中兩個資源結點間的點對點的延遲取決于源點與終點的相對位置。任意兩個資源結點間的通訊最多需要通過兩個內部連線。
3? NoC的通訊協議
NoC是片上通信基礎結構,借鑒網絡中的分層思想,NoC設計采用普通的通信分層方法,定義5個協議層:物理層、數據鏈路層、網絡層、傳輸層和系統層。圖5是NoC一個典型的層次結構。
(1)物理層。物理層實現連接處理器資源與網絡的鏈路寬度和鏈路方向,因此帶寬負載能力、數據包大小及在兩節點之間的傳輸延遲等物理信息都是檢驗物理層設計質量的評估標準。片上網絡的物理層通訊采用握手協議完成,而握手協議可以分為同步協議與異步協議兩種。圖6為同步握手協議的示意圖,圖6(a)為物理通道信號。與計算機網絡多采用串行通訊方式不同,由于片上連線資源豐富,NoC可以使用并行通訊方式。因此同步方式和異步方式的Data信號寬度n,為》1的整數。握手協議需要請求信號Req和應答信號Ack完成通訊雙方握手操作,除此以外,同步方式需要時鐘信號Clock同步其余信號。
(2)數據鏈路層。數據鏈路層的功能就是將信息的每一個字準確地從一個節點傳輸到相鄰的節點上,定義了資源節點、通訊節點以及兩個通訊節點之間的傳輸協議,保證物理連接之間可靠的信息傳輸。由于兩個相鄰的節點可能以異步傳輸模式工作,因此需要考慮數據的出錯檢測與糾錯外,數據鏈路層還需要注意硬件同步問題,同時實現數據編碼和更好地控制數據傳輸率以及功耗管理。物理層和數據鏈路層均與工藝有關,即如采用新工藝,必須重新定義這兩個層。
報文格式的定義如圖7所示。報文由若干個幀組成。幀可分為頭幀、尾幀和實體幀3類。所有3類幀的組成相同,如圖8所示,均由頭標識位,尾標識位和幀負載位組成。
(3)網絡層。負責建立互連鏈接以及路由策略,因此片上網絡中各傳輸路徑的利用情況,在較大程度上取決于網絡層的設計結果。不同的鏈接建立方式在不同的網絡拓撲結構中性能各不相同,因此針對不同的應用和片上網絡結構,需要制定相應的鏈接建立方式。
(4)傳輸層。負責監視網絡流量、對數據包進行拆分及組裝,因此數據包發送速度、掉包率以及解決方案是衡量傳輸層設計質量的標準。另外傳輸層對網絡傳輸路徑上的流量控制,直接影響到數據傳輸的吞吐量,這也是衡量傳輸層性能的指標。
(5)系統層。該層的重要功能包括信息的同步和管理、接收端數據格式的轉換以及一些與應用相關的功能等。
4? 路由算法
路由策略的研究是NoC中的一個重要內容,在給定的網絡拓撲結構下,決定數據包在網絡中的投遞路徑。其目的是使數據包的網絡延時、數據吞吐率、數據包投遞所需的功耗和可靠性都達到指標。
NoC路由算法的分類:依照路由結果的計算位置、路徑選擇方式、路徑距離等方法,由算法決定數據包在網絡結構中傳輸的方向,把傳輸路徑集合限制為合理的路徑子集。如果消息的路由完全由它的源和目的地址決定,與網絡中其他流量無關,這種路由算法稱為確定性路由,對于每一個源節點和目的節點之間,采用確定性路由得到一條路徑計算結果。而自適應路由算法是允許路徑上的其它流量影響數據包的路由策略,對于每一對源和目的節點,算法可根據網絡的擁堵狀況給出多條的路徑計算結果。路由計算模塊是一個相對獨立的處理單元,通常需要根據不同的算法改變交換節點中的路由計算模塊,就可以實現NoC路由算法的改變。
維序路由采用較為廣泛的路由算法,應用了確定性路由的方法,數據包無論其路徑上的鏈路是否阻塞都要沿該路徑走下去。該算法的思想是數據包先在低維上投遞,直至數據包在該維度上相對于目的節點的偏移量為0,然后轉移到下一維度以相同的模式進行投遞,直到達到目的節點。因此維序路由是分布式路由,也是一種較小距離路由。
圖9是二維Mesh網格中維序路由的一種算法,稱為xy路由。表示不同源節點、目的節點下維序路由算法得出的路由路徑結果以及在二維Mesh網絡中,路由路徑的可能轉向。數據包先在x維度上投遞,然后在y維度上投遞,直至達到目的節點,該路由算法不會出現死鎖現象。
5? 交換技術
交換技術是按照某種方式動態地分配傳輸線路和接口的資源,是影響網絡性能,決定交換節點結構的重要技術。NoC中運用的交換技術可分為兩類:面向連接的和無連接的。面向連接的交換方式主要有電路交換,無連接的方式主要有存儲交換、虛切通和蟲孔交換。
(1)電路交換(Circuit Switching)是一種面向連接的交換機制。在通信之前,要通過信息頭按照路由規則選路,然后建立路徑,同時預定所經過路徑的信道資源。目的端在成功收到此信息頭后將沿原路返回一個應答,源節點收到此應答后便開始傳輸數據。數據傳輸之前源節點和目的節點之間建立直接的連接路徑,一旦數據開始傳輸,消息的傳輸不會阻塞。數據部分在網絡中傳輸時將獨占此路徑中各段鏈路的整個帶寬,無需做路由選擇。
(2)存儲交換(Store and Forward Switching)是先將數據完全存儲,然后進行路南決策,最后再轉發到下一節點的一種交換機制。NoC中的存儲交換主要以分組為流控單元,每個分組有一個分組頭,含有源、目的節點地址以及其它控制信息。路由節點接收到一個分組后,先將整個分組存儲在緩存器中,從分組頭中獲取路由信息由路由器的路南決策單元選擇一條輸出通道后,置位交叉矩陣中的內部連接,如果下一路由節點中有足夠的空間存放此分組,就將此分組轉發到下一路由節點。存儲交換的優點是通道只在一個數據包需要傳輸的時候才被占用。
(3)虛切通交換(Virtual Cut-throuth Switching)將分組進一步劃分為更小的片,并按順序排好,將所需的路由信息放入第一個片中,在無阻塞的情況下,路由節點收到頭片后,從中讀取路由信息,然后由路由決策單元負責選路,如果輸出通道空閑,則將頭片轉發出去,后續片緊隨頭片向前路由,從而在較大程度上縮小了存儲交換的時延。由于在任何一個節點上都可能有多條消息被阻塞,每一個節點都要提供能存儲所要通過他的數據的存儲空間。所以每一個節點都需要較大的存儲空間。
(4)蟲孔交換(Wormhole Switching)是目前NoC中的主流交換機制。它和虛切通交換的思想基本相同,只是二者在發生阻塞時所表現出的行為不同。在蟲孔交換中,數據包也被細分成片,以流水的方式在網絡上傳輸,并且允許一個分組由一個片組成。頭片中包含路由信息,其他數據片都跟隨頭片在他確定的路徑上流動,就像蟲子一樣。當頭片發生阻塞時,分組中的所有片都將停止前進,頭片緩存在當前節點,數據片就地緩存在其后的若干個中間節點中。每個路由節點只需提供一個片大小的緩存資源。蟲孔交換對數據包大小和路徑長度不敏感,資源占用少,實現代價小,且效率高,適合NoC使用。蟲孔交換的示意圖如圖10所示。
蟲孔交換結構的處理過程如下:數據包的片段到達蟲孔交換結構,存儲在輸入通道緩存單元中,并進行路由計算。得到路由信息后,數據包提出傳輸請求,仲裁器根據請求進行帶寬資源分配,一旦該數據片被允許傳輸,它將被交換到目的端口并投遞出去,直到數據包的最后一個片段離開交換節點。根據此處理過程,蟲孔交換電路的結構如圖11所示,由緩存單元、路由計算單元、仲裁請求管理單元、交換分配和交換陣列5部分組成。
在VLSI實現中,NoC交換節點多采用流水結構設計,一般流水處理結構分為路由計算、通道分配、交換分配、數據交換和傳輸等5級。在NoC設計中,總是希望得到良好的網絡性能,從交換節點設計角度考慮,減少交換結構的流水處理級數是縮短網絡延時的有效方法,流水處理級數越少,數據包通過交換節點的時間就越短。
不同的NoC交換技術,對應著不同的網絡性能和實現代價,要根據實際要求進行選擇。
6? 片上網絡面臨的挑戰
為提高片上網絡的資源單元處理速度,降低通信通路間以及資源單元互連問的通信延遲,片上網絡的設計面臨以下幾方面挑戰:
(1)任務分配與調度,片上網絡將通信任務分配到合適的處理單元,并且盡量以最佳方式為這些任務進行排序,此步驟是典型的多處理器系統的關鍵設計步驟。
(2)網絡分配,包括處理單元映射與路徑分配。處理單元映射對系統功耗起著決定性的影響,路徑分配則是對執行性能產生直接影響。
(3)動態網絡最佳化路徑分配,對靜態通信路徑分配時,由于對即時性的要求較低,因此只要對現有的最短路徑進行確認即可。但對于片上網絡的動態通信而言,需要將計算機網絡中的動態網絡調度算法進行調整,應用到片上網絡應用中。
7 結束語
NoC通訊方式是目前多核系統通訊結構中研究最為廣泛的結構,也使得NoC成為當前研究熱點,部分大學、研究所以及工業界的研究單位正積極從事NoC研究工作,但是NoC依然面臨著許多技術挑戰。在實際應用中,應根據系統的實際要求,選擇合適的拓撲結構和交換技術,避免一味追求最新的技術而帶來其他的問題。
評論