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