專利名稱:一種應用于片上網絡的二維Mesh雙緩沖容錯路由單元的制作方法
技術領域:
本發明涉及集成電路領域,尤其設計片上互連網絡設計領域。
背景技術:
隨著深亞微米超大規模集成電路工藝技術的成熟及進一步發展,片上系統(System on Chip, SoC)的設計面臨著嚴峻的問題,主要表現在三個方面連線延遲與全局
時鐘的同步問題,有限地址空間和無法支持多組設備并行通信等結構性問題,以及系統擴展問題。為了解決SoC設計中遇到的問題,歐洲一些研究機構于2000年提出了片上網絡(Network on Chip7NoC)的概念,其核心思想就是將計算機網絡技術移植到芯片設計中來,將片上系統分割為執行通信的多個子系統,子系統之間通過網絡互連,從體系結構上徹底解決總線架構帶來的缺陷。片上網絡故障按照故障的持續時間長短,可以分為永久故障和瞬時故障。片目前上網絡中80%的故障都由瞬時故障引起。瞬時故障,又稱軟故障,它通常由干擾引起,如串擾、耦合噪聲、電源噪聲,甚至是宇宙射線、地球磁場產生的干擾等,從而導致位出錯、位丟失等。瞬時故障的產生帶有隨機性和偶然性,無干擾時故障不會發生,干擾消失時故障也隨之消失。目前,瞬時故障已被認為是當前片上網絡結構中的主要故障,再加上它的不可預測性和不可重復性的特點,使得瞬時故障在片上網絡可靠性研究領域上得到了極大的關注。為保證NoC中數據傳輸的可靠性,針對片上網絡的瞬時故障,必須采用相應的容錯機制。目前,容錯機制一般分為基于檢錯糾錯編碼的重傳機制和隨機通信機制。在隨機通信機制中,源節點以一定的概率向它的相鄰節點以廣播的形式發送數據包,所有收到這個數據包的節點以相同的概率再向其相鄰的節點發送數據包,直到目的節點收到數據包為止。然而,隨機通信會使網絡中存在大量的冗余包,可能會造成網絡的擁塞,且帶來較大的傳輸開銷。在基于檢錯糾錯編碼的重傳機制中,目的節點根據數據包校驗結果判定接收的數據是否正確,并發送反饋包通知源節點;而源節點則根據接收到的反饋包決定是否重傳該數據包,直到數據包被正確接收。端到端請求重傳機制的面積功耗開銷相對較小,但由于只有數據包到達目的節點后才能確定數據包的正確性,因此增加了傳輸延時。因此,從優化系統延時和功耗性能的角度,結合基于檢錯糾錯編碼的重傳機制和隨機通信機制的優點,采用雙緩沖和XYX路由技術,在保證路由單元容錯性能的基礎上降低系統延時和功耗,是優化和改善片上網絡通信性能的一種重要手段。
發明內容
本發明公開了一種應用于片上網絡的的二維Mesh雙緩沖容錯路由單元,該方法采用雙緩沖機制輪流發送冗余數據,并采用XYX路由機制動態選擇數據路由路徑。本發明能在面積開銷有限提升的前提下,保證片上網絡容錯性能,完成數據的高可靠性傳輸;同時減少數據包發送等待時間,并能夠均衡網絡負載,有助于解決網絡擁塞問題。實現本發明的技術方案如下
—種用于片上網絡的二維Mesh雙緩沖容錯路由單元,該路由單元包括四個接收控制器、四個發送控制器、一個本地接收控制器、一個本地發送控制器、一個仲裁與交換控制器;路由單元還包括五個端口 本地端口、東端口、西端口、北端口、南端口,東端口、西端口、北端口、南端口包含“應答發送”、“應答接收”、“數據接收”和“數據發送”四個信號,本地端口包含“本地數據接收”和“本地數據發送”兩個信號;本地端口用于連接本地資源節點;東端口、西端口、北端口、南端口用于連接其他路由單元; “應答發送”信號和“數據接收”信號與接收控制器相接,“應答接收”信號和“數據發送”信號與發送控制器相接;接收控制器通過“應答發送”信號對接收數據的請求進行應答,通過“數據接收”信號接收前一級路由單元發送的數據,通過“待收數據”和“路由控制”信號將接收到的數據發送給仲裁與交換控制器;發送控制器通過“應答接收”信號接收后一級路由單元對發送數據的許可,通過“數據發送”信號向后一級路由單元發送數據,通過“待發數據”信號接收仲裁與交換控制器發送來的數據。本地發送控制器通過“本地數據接收”信號接收本地資源節點發送的數據,通過“數據校驗”信號接收本地接收控制器發送的校驗結果信號,通過“待收數據”和“路由控制”信號將接收到的數據發送給仲裁與交換控制器;本地接收控制器通過“本地數據接收”信號向本地資源節點發送數據,通過“待發 數據”信號接收仲裁與交換控制器發送來的數據,通過“數據校驗”信號發送接收數據包中的校驗結果信號。仲裁與交換控制器通過“待收數據”和“路由控制”信號接收網絡接收控制器和本地接收控制器發送來的數據,通過“待發數據”信號向網絡發送控制器和本地發送控制器發送數據。接收控制器進一步包括端口控制器、數據緩沖區、路由計算和狀態控制器;端口控制器通過“應答發送”信號對接收數據的請求進行應答,通過“接收數據”信號接收前一級路由單元發送的數據;端口控制器將接收的數據送入數據緩沖區;端口控制器輸入狀態控制器送來的控制信號;數據緩沖區輸入從端口控制器送來的數據,輸出數據分為兩路,一路通過“待收數據”直接送給仲裁與交換控制器,一路送入路由計算;數據緩沖區輸入狀態控制器送來的控制信號;路由計算輸入從數據緩沖區送來的數據,通過“路由控制”將路由選擇信號送給仲裁與交換控制器;路由計算輸入狀態控制器送來的控制信號;狀態控制器將控制信號分別送給端口控制器、數據緩沖區和路由計算器。本地發送控制器進一步包括端口控制器、編碼組包模塊、數據雙緩沖區、路由計算、數據選擇和狀態控制器。端口控制器通過“本地數據接收”信號接收本地資源節點發送的數據;輸入控制器將接收的數據送入編碼組包模塊;端口控制器輸入狀態控制器送來的控制信號;
編碼組包模塊輸入從端口控制器送來的數據,輸出數據送入數據雙緩沖區;編碼組包模塊輸入狀態控制器送來的控制信號;數據雙緩沖區輸入從編碼組包模塊送來的數據,輸出數據分為兩路,一路送給數據選擇,一路送入路由計算;數據雙緩沖區輸入狀態控制器送來的控制信號;數據選擇輸入從數據雙緩沖區送來的數據,通過“待發數據”將數據送給仲裁與交換控制器;路由計算輸入從數據雙緩沖區送來的數據,通過“路由控制”將路由選擇信號送給仲裁與交換控制器;路由計算輸入狀態控制器送來的控制信號;狀態控制器通過“數據校驗”信號輸入發送數據包的數據傳輸結果,通過控制信號分別控制端口控制器、數據雙緩沖區、編碼組包模塊和路由計算。為了正確發送數據并協調與后一級路由單元的收發關系,路由單元發送控制器發送數據的方法為I)發送控制器等待仲裁與交換控制器的發送數據請求;2)如果出現發送數據請求,發送控制器通過“數據發送”信號線向后一級路由單元發送數據傳輸請求;3)通過“應答接收”信號線接收后一級路由單元發送的應答信號,如果發送控制器沒有接收到應答信號,則繼續等待直至后以及路由單元響應;4)如果發送控制器在“應答接收”端接收到應答信號,則通過總裁與交換控制器將本地接收控制器中數據緩沖區的數據發送給后一級路由單元;如果在數據發送過程中接收到后一級路由單元通過“應答接收”發送的非應答信號,則重新發送當前數據,直到整個數據包發送完畢。5)返回到等待狀態。為了實現數據的隨機冗余發送功能并通過校驗增強數據的容錯性能,路由單元本地發送控制器發送本地數據的方法為I)本地發送控制器等待發送數據;2)本地在以下情況下發送數據2. I)當端口控制器通過“本地數據接收”信號線接收到本地待發送數據時,則控制方法進一步為2. I. I)端口控制器將數據送入編碼組包模塊進行編碼和組包,然后由編碼組包模塊同時存入緩沖區A和緩沖區B,2. I. 2)數據選擇模塊首先選擇緩沖區A的數據并通過“待發數據”發送給仲裁與交換控制器,同時路由計算置數據微片的路由選擇信號為0,并通過“路由控制”信號通知仲裁與交換控制器要使用的發送控制器,開始數據微片傳輸直到整個數據包發送完畢;2. I. 3)繼續選擇緩沖區B的數據發送,同時路由計算置數據微片的路由選擇信號為I,然后發送給仲裁與交換控制器,直到整個數據包發送完畢;2. I. 4)通過“數據校驗”信號線接收本地接收控制器發送的發送數據校驗結果,如果結果正確則將數據包從緩沖區中移除,否則忽略該信號; 2. 2)當狀態控制器通過“數據校驗”信號線接收到本地接收控制器發送的接收數據校驗信號,并且端口控制器的“本地數據接收”信號線沒有本地待發送數據時,則控制方法進一步為2. 2. I)狀態控制器根據信號在雙緩沖區內生成校驗應答數據包發送給數據選擇;2. 2. 2)由數據選擇通過“待發數據”信號發送給仲裁與交換控制器請求發送;3)返回到等待狀態。
為了正確接收數據并協調與前一級路由單元的收發關系,路由單元接收控制器接收數據的方法為I)接收控制器等待前一級路由單元的數據發送請求;2)端口控制器接收到數據發送請求后,檢查當前數據緩沖區的狀態,如果當前緩沖區還存在上一數據包的數據,則接收控制器通過“應答發送”信號線發送等待信號,要求前一級路由單元暫緩發送,否則接收控制器通過“應答發送”信號線發送應答信號接收請求并開始接收數據;3)接收控制器中的狀態控制器對接收到的微片順序進行檢查,如果收到的微片和當前緩沖區中已經暫存的微片不構成順序關系,則丟棄當前微片,同時通過“應答發送”信號線向前一級路由單元發送本微片的非應答信號,直至整個數據包接收完畢;4)根據數據包的路由選擇信息計算路由路徑,通過“待收數據”發送接收到的數據包,并通過“路由控制”信號通知仲裁與交換控制器請求相應的發送控制器或本地接收控制器轉發或接收數據。5)返回到等待狀態。為了正確檢測接收數據的正確性并能夠給數據源正確的校驗應答,路由單元本地接收控制器接收本地數據的方法為I)等待仲裁與交換控制器的數據接收請求;2)如果仲裁與交換控制器的數據接收到數據接收請求,則通過“數據接收”信號讀入接收的數據包;3)如果收到的是普通數據包,則將接收到的數據進行數據校驗,如果數據校驗正確,則通過“本地數據接收”信號傳輸給本地端口,并通過“數據校驗”信號通知本地發送控制器發送校驗正確應答數據包,否則通過“數據校驗”信號通知本地發送控制器發送校驗錯誤應答數據包,同時丟棄該微片。4)如果收到的是發送數據校驗結果應答數據包,則將校驗結果通過“數據校驗”信號發送給本地發送控制器通知發送結果。5)返回到等待狀態。為了實現隨機路由功能,均衡網絡負載并降低阻塞概率,路由計算所使用的路由計算方法為路由計算根據數據包頭微片的路由選擇信號選擇路由算法如果路由選擇信號為0,則選擇XY路由算法,使數據包先按照X方向路由,直至當前節點和目的節點在X方向上距離為零;再按照Y方向路由,直至數據包到達目的節點;如果路由選擇信號為1,則選擇YX路由算法,使數據包先按照Y方向路由,直至當前節點和目的節點在Y方向上距離為零;再按照X方向路由,直至數據包到達目的節點。為了實現各控制器公平征用交換開關的功能,仲裁與交換控制器所使用的控制方法為1)仲裁與交換控制器等待接收控制器或本地發送控制器對發送控制器的使用請求;2)如果接收到請求,并且當前只有一個請求,則響應該請求,即根據“路由控制”信號生成相應的接收控制器或本地發送控制器與發送控制器之間的交換路徑,并進行數據傳輸;如果接收到請求,并且當前存在多個請求,則控制方法進一步為2. I)按照東、南、西、北、本地端口的順序將接收控制器或本地發送控制器申請請求進行排隊,并按照隊列進行響應,即根據“路由控制”信號生成相應的接收控制器或本地發送控制器與發送控制器之間的交換路徑,并進行數據傳輸,響應后的端口記錄到響應端口隊列;2. 2)如果當前請求隊列尚未處理完畢,而又有新的端口申請請求,則在響應端口隊列中查詢該申請端口有無響應記錄,如果沒有則優先響應該申請請求,即生成相應的接收控制器或本地發送控制器與發送控制器之間的交換路徑,并進行數據傳輸,否則將申請請求排入響應隊列的末尾;2. 3)如果當前請求隊列處理完畢,清空響應端口隊列;3)返回等待狀態。綜上所述,本發明的應用于片上網絡的的二維Mesh雙緩沖容錯路由單元,采用雙緩沖機制輪流發送冗余數據,并采用XYX路由機制動態選擇數據路由路徑,可以在面積開銷有限提升的前提下,保證片上網絡容錯性能,完成數據的高可靠性傳輸;同時減少數據包發送等待時間,并能夠均衡網絡負載,有助于解決網絡擁塞問題。應用所述的路由單元設計的片上網絡可以實現上述的功能。以下結合附圖
,通過具體實施方式
對本發明進行詳細描述。圖I是雙緩沖容錯路由單元結構圖;圖2是基于雙緩沖和XYX路由的檢錯重傳不意圖;圖3是發送接口模塊的數據處理流程圖;圖4是接收接口模塊的數據處理流程圖;圖5是本地輸入端口存儲數據的狀態轉換圖;圖6是XYX路由模塊算法的實現流程圖;圖7是仲裁模塊算法流程圖;圖8是包頭微片、數據微片以及反饋包的具體結構圖。
具體實施例方式應用于片上網絡的二維Mesh雙緩沖容錯路由單元是在端到端的重傳機制基礎上結合隨機路由思想實現的。該路由器具有5組輸入輸出端口,其中東、西、南、北四組輸入輸出端口同其他的路由器相連,本地輸入輸出端口與資源節點相連。路由器結構如圖I所示。基于雙緩沖和XYX路由的檢錯重傳機制和端到端隨機路由算法一樣,將數據包拆分成與緩沖區大小相等的微片集,每個發送端有兩個數據緩沖區,分別設為緩沖區A和緩沖區B,將兩個微片集分別存儲在兩個緩沖區中。發送端首先發送緩沖區A中的數據,當緩沖區A中的數據發送完畢之后,繼續發送緩沖區B中的數據,當緩沖區B中的數據發送完后,又發送緩沖區A中的數據,依此循環。當發送端收到一個緩沖區的ACK反饋包時,清空該緩沖區并存入新的微片集。接收端不斷接收微片,當收到完整正確的微片集后,立即發送ACK反饋包,如果收到錯誤的微片,則丟棄該微片以及隨后收到的其他微片。具體接收和發送示意圖如圖2所示。下面分別從發送端接口與接收端接口對算法進行詳細描述。在發送接口模塊,兩個微片集分別存儲在兩個數據緩沖區中。首先,發送接口發送緩沖區A中的數據,當緩沖區A中的數據發送完畢后,接著發送緩沖區B中的數據,由于此后隨時有可能收到來自接收端的對應緩沖區A中的ACK反饋包,所以發送接口在發送緩沖區B中的每一個微片時,需要判斷是否有對應緩沖區A的ACK反饋包到達。如果發送接口接收到對應緩沖區A的ACK反饋包,則立即清空緩沖區A,并將下一個新的微片集放入緩沖 區A中,當緩沖區B中的數據發送完畢后,又開始發送緩沖區A中的數據,同時也需要判斷緩沖區B中的ACK反饋包是否到達。如果緩沖區B中的數據發送完畢之后,仍然沒有收到來自接收端的對應緩沖區A的ACK反饋包,則重新開始發送緩沖區A中的數據,同時判斷是否有ACK反饋包到達。如果此時發送端接收到對應緩沖區A的ACK反饋包,則發送端停止發送緩沖區A中的數據,轉而發送緩沖區B中的數據,并立即清空緩沖區A,將下一個新的微片集放入緩沖區A中;如果此時接收到對應緩沖區B的ACK反饋包,則立即清空緩沖區B,并將下一個新的微片集放入緩沖區B中。發送接口模塊的處理流程圖如圖3所示。在接收接口模塊,微片到達接收端之后,首先判斷是否是順序到達的微片,如果為錯誤的或者亂序的微片,則直接丟棄該微片,并丟棄隨后接收到的屬于同一微片集中的所有微片,直到正確接收到新的微片集。當接收接口模塊收到一個完整正確的微片集后,接收端將立即發送對應微片集的ACK反饋包。接口中采用三模冗余模型發送ACK反饋包,從而提高網絡通信的可靠性。接收端的處理流程圖如圖4所示。在本地輸入端口有兩個數據緩沖區A和B,它們都用來緩存數據包,其中緩沖區A的優先級較高。本地輸入端口存儲數據的狀態轉換圖如圖5所示。當本地有數據需要傳送時,首先判斷緩沖區A是否為空,如果緩沖區A為空,則將數據存入緩沖區A,如果緩沖區A不空,則繼續判斷緩沖區B是否為空,如果緩沖區B為空,則將數據存入緩沖區B,如果緩沖區B也不為空,則等待,直至有緩沖區為空為止。當本地接收到ACK確認反饋包,首先判斷ACK確認反饋包對應哪一個緩沖區,如果為緩沖區A,則清空緩沖區A中的數據,如果為緩沖區B,則清空緩沖區B中的數據。數據緩沖區模塊主要用于根據當前數據緩沖區的狀態,對發送到當前路由器的數據進行緩存。因此,可以通過建立一個ram_hl類來實現數據緩沖區模塊的功能。ram_hl定義為template〈class T>class ram—hi :public sc—module,public ram—if〈T>{unsigned m—size ;
unsigned m_read_pointer ;unsigned m_write_pointer ;T*mem ;} 其中ram_if〈T>為ram_hl的接口函數,m_size用來表示數據緩沖區的深度,m_read_pointer用來表示數據緩沖區的讀地址,m_write_pointer用來表示數據緩沖區的寫地址,mem為指向存放數據的數組的指針。ram_hl 通過調用函數 read、write、reset、sub_readpointer> reset_readpointer、isempty、isfull來實現數據緩沖區的數據讀寫以及重置。路由計算模塊是路由器的核心模塊之一。路由計算模塊根據不同的路由算法,對目的節點地址進行計算,確定數據的轉發方向。發送端在路由緩沖區中的微片時,采用的是XYX路由算法,發送端通過循環采用XY路由策略和YX路由策略,實現數據的傳輸。因此需要對發送端中XYX路由算法的實現進行說明。XYX路由算法是指發送端首先采用XY路由策略發送緩沖區中的數據,當一定時間之后,如果沒有收到對應的ACK反饋包,則采用YX路由策略重新發送緩沖區中的微片。一定時間后,如果還是沒有收到ACK反饋包,則再采用XY路由策略重新發送緩沖區中的微片,直到收到來自接收端的對應緩沖區的ACK反饋包為止。發送端接收到ACK反饋包后,立即清空緩沖區并存入新的數據微片。XYX路由模塊算法的實現流程圖如圖6所示。XY路由策略是指源節點在向目的節點發送數據包時,首先比較目的節點與當前路由節點的地址,計算它們的X維與Y維地址偏移量,然后優先根據X維的地址偏移量選擇路由方向,直到X維地址偏移量為O后,再根據Y維的地址偏移量選擇路由方向,當且僅當X維與Y維的地址偏移量均為O時,表明數據傳輸到達目的節點。XY路由策略的偽代碼如下輸入Iocalx為本地X維偏移量,Iocaly為本地Y維偏移量,tempx為目標節點X維偏移量,tempy為目標節點Y維偏移量輸出output_dir為輸出方向過程if (tempx > localx)output_dir = east ;else if (tempx < localx) output_dir = west ;else if ((tempx == localx)&(tempy > localy))output_dir = south ;else if ((tempx == localx)&(tempy < localy))output_dir = north ;else if ((tempx == localx)&(tempy == localy))output_dir = local ;elseoutput_dir = none ;YX路由策略是指源節點在向目的節點發送數據包時,優先根據Y維的地址偏移量選擇路由方向,直到Y維地址偏移量為O后,再根據X維的地址偏移量選擇路由方向,當且僅當Y維與X維的地址偏移量均為O時,表明數據傳輸到達目的節點。YX路由策略的偽代碼如下輸入=Iocalx為本地X維偏移量,localy為本地Y維偏移量,tempx為目標節點X維偏移量,tempy為目標節點Y維偏移量輸出output_dir為輸出方向
過程if (tempy > localy)output_dir = south ;else if(tempy < localy) output_dir = north ;else if ((tempy == localy)&(tempx > localx)) output_dir = east ;else if ((tempy == locay)&(tempx < localx)) output_dir = west ;else if ((tempy == localy)&(tempx == localx)) output_dir = local ;elseoutput_dir = none ;
發送端首先檢測數據緩沖區中是否有數據等待發送,如果有數據,則讀取包頭微片中的XYX標識符,判斷是按照XY路由策略還是YX路由策略發送微片。選定路由策略后,發送端開始發送數據,在發送數據的同時不斷檢測是否有ACK反饋包到達,如果有ACK反饋包到達,則立即清空數據緩沖區,如果沒有ACK反饋包到達,則繼續按當前路由策略發送微片,直到微片集發送完畢。當微片集發送完畢之后,將包頭微片中的XYX標志位置反,以另一種路由策略重新發送微片集。仲裁模塊也是路由器模塊的核心模塊之一。仲裁模塊根據來自各個端口的數據傳輸請求,仲裁確定響應的輸入端口,賦予該輸入端口數據輸出的權限。基于片上網絡簡單高效的需求,仲裁模塊采用輪詢仲裁機制進行仲裁。路由器共有東、西、南、北以及本地5個輸入端口,路由器記錄每次仲裁得到輸出端口使用權的輸入端口,在下一次仲裁時,根據記錄的結果從當前的請求中選擇還未曾得到輸出權限的輸入端口,使其獲得輸出端口使用權。若某一仲裁中,僅有唯一的請求,即不存在競爭情況,則清除歷史記錄,將輸出權限賦予此輸入端口,并記錄該輸入端口。若仲裁中發現當前的多個請求在之前都已經響應過,那么清空記錄,并從請求中選擇優先級較高的輸入端口進行響應。仲裁算法流程圖如圖7所示。交換陣列模塊根據仲裁模塊的輸出結果為路由器的各個輸入輸出端口建立連接,將數據包轉發給下一級路由器。在交換陣列控制矩陣中,行表示輸入端口,列表示輸出端口,矩陣中的“O”表示其所在行與所在列沒有連接,“ I”則表示其所在行與所在列建立了連接,數據包將從其所在行的輸入端口傳送到所在列的輸出端口。組解包模塊和編解碼控制器負責將數據包進行編解碼。發送端中將發送的數據包拆分為兩種微片,分別是包頭微片和數據微片。包頭微片、數據微片以及反饋包的具體結構如圖8所示。在包頭微片中,31至28位為目的地址,用于存儲數據發送的目的節點地址;27至24位為源地址,用于存儲發送數據的源節點地址;第11位為XYX標識符,用于確定數據微片是按照XY路由策略還是YX路由策略來進行路由,如果XYX為0,則按照XY路由策略路由,如果XYX為1,則按照YX路由策略路由;10至8位為數據包編號,用于記錄數據包的編號代碼,幫助接收端區分數據包;第7位為緩沖區編號,用于記錄微片存儲在哪個緩沖區,以便接收端識別ACK反饋包對應哪一個緩沖區;6至3位為數據包包長,用于記錄數據包被拆分成微片的數目,由于數據包包長只用4個bit進行記錄,所以數據包被拆分成微片的數據不得大于16 ;2至I位為標識符,用來標識微片是包頭微片,還是包負載微片或者尾片。包頭微片的最后一位為奇偶校驗碼。在數據微片中,31至3位為有效數據信息,2至I位為標識符,最后一位為奇偶校驗碼。
在反饋包中,31至28位為目的地址,用于存儲接收端收到的數據的源節點地址;27至24位為源地址,用于存儲當前節點地址;23至3位為有效數據,發送的反饋包只有ACK,所以用全I表示ACK 反饋包;最后三位同包頭微片中的最后三位。應用上述路由單元可以構成二維容錯片上網絡,實現片上網絡對數據傳輸過程中產生的瞬時錯誤的糾正,并有效均衡網絡中數據的傳輸負載。
權利要求
1.一種用于片上網絡的二維Mesh雙緩沖容錯路由單元,其特征在于 所述的路由單元包括四個接收控制器、四個發送控制器、一個本地接收控制器、一個本地發送控制器、一個仲裁與交換控制器; 所述的路由單元還包括五個端口 本地端口、東端口、西端口、北端口、南端口 ;所述的東端口、西端口、北端口、南端口包含“應答發送”、“應答接收”、“數據接收”和“數據發送”四個信號;所述的本地端口包含“本地數據接收”和“本地數據發送”兩個信號; 所述的本地端口用于連接本地資源節點; 所述的東端口、西端口、北端口、南端口用于連接其他路由單元; 所述的“應答發送”信號和“數據接收”信號與接收控制器相接,“應答接收”信號和“數據發送”信號與發送控制器相接; 所述的接收控制器通過“應答發送”信號對接收數據的請求進行應答,通過“數據接收”信號接收前一級路由單元發送的數據,通過“待收數據”和“路由控制”信號將接收到的數據發送給仲裁與交換控制器; 所述的發送控制器通過“應答接收”信號接收后一級路由單元對發送數據的許可,通過“數據發送”信號向后一級路由單元發送數據,通過“待發數據”信號接收仲裁與交換控制器發送來的數據; 所述的本地發送控制器通過“本地數據接收”信號接收本地資源節點發送的數據,通過“數據校驗”信號接收本地接收控制器發送的校驗結果信號,通過“待收數據”和“路由控制”信號將接收到的數據發送給仲裁與交換控制器; 所述的本地接收控制器通過“本地數據接收”信號向本地資源節點發送數據,通過“待發數據”信號接收仲裁與交換控制器發送來的數據,通過“數據校驗”信號向本地發送控制器發送數據包中的校驗結果信號。
所述的仲裁與交換控制器通過“待收數據”和“路由控制”信號接收網絡接收控制器和本地接收控制器發送來的數據,通過“待發數據”信號向網絡發送控制器和本地發送控制器發送數據。
2.根據權利要求I所述的路由單元,其特征在于 所述的接收控制器進一步包括端口控制器、數據緩沖區、路由計算和狀態控制器;所述的端口控制器通過“應答發送”信號對接收數據的請求進行應答,通過“接收數據”信號接收前一級路由單元發送的數據;端口控制器將接收的數據送入數據緩沖區;端口控制器輸入狀態控制器送來的控制信號; 所述的數據緩沖區輸入從端口控制器送來的數據,輸出數據分為兩路,一路通過“待收數據”直接送給仲裁與交換控制器,一路送入路由計算;數據緩沖區輸入狀態控制器送來的控制信號; 所述的路由計算輸入從數據緩沖區送來的數據,通過“路由控制”將路由選擇信號送給仲裁與交換控制器;路由計算輸入狀態控制器送來的控制信號; 所述的狀態控制器將控制信號分別送給端口控制器、數據緩沖區和路由計算器。
3.根據權利要求I所述的路由單元,其特征在于 所述的本地發送控制器進一步包括端口控制器、編碼組包模塊、數據雙緩沖區、路由計算、數據選擇和狀態控制器。所述的端口控制器通過“本地數據接收”信號接收本地資源節點發送的數據;輸入控制器將接收的數據送入編碼組包模塊;端口控制器輸入狀態控制器送來的控制信號; 所述的編碼組包模塊輸入從端口控制器送來的數據,輸出數據送入數據雙緩沖區;編碼組包模塊輸入狀態控制器送來的控制信號; 所述的數據雙緩沖區輸入從編碼組包模塊送來的數據,輸出數據分為兩路,一路送給數據選擇,一路送入路由計算;數據雙緩沖區輸入狀態控制器送來的控制信號; 所述的數據選擇輸入從數據雙緩沖區送來的數據,通過“待發數據”將數據送給仲裁與交換控制器; 所述的路由計算輸入從數據雙緩沖區送來的數據,通過“路由控制”將路由選擇信號送給仲裁與交換控制器;路由計算輸入狀態控制器送來的控制信號; 所述的狀態控制器通過“數據校驗”信號輸入發送數據包的數據傳輸結果,通過控制信號分別控制端口控制器、數據雙緩沖區、編碼組包模塊和路由計算。
4.根據權利要求I、權利要求2和權利要求3所述的路由單元,其特征在于 所述的路由單元發送控制器發送數據的方法為 1)發送控制器等待仲裁與交換控制器的發送數據請求; 2)當出現發送數據請求時,發送控制器通過“數據發送”信號線向后一級路由單元發送數據傳輸請求; 3)通過“應答接收”信號線接收后一級路由單元發送的應答信號,如果發送控制器沒有接收到應答信號,則繼續等待直至后以及路由單元響應; 4)如果發送控制器在“應答接收”端接收到應答信號,則通過總裁與交換控制器將本地接收控制器中數據緩沖區的數據發送給后一級路由單元; 如果在數據發送過程中接收到后一級路由單元通過“應答接收”發送的非應答信號,則重新發送當前數據,直到整個數據包發送完畢。
5)返回到等待狀態。
5.根據權利要求I、權利要求2和權利要求3所述的路由單元,其特征在于 所述的路由單元本地發送控制器發送本地數據的方法為 1)本地發送控制器等待發送數據; 2)本地在以下情況下發送數據 ·2. I)當端口控制器通過“本地數據接收”信號線接收到本地待發送數據時,則控制方法進一步為 ·2. I. I)端口控制器將數據送入編碼組包模塊進行編碼和組包,然后由編碼組包模塊同時存入緩沖區A和緩沖區B, ·2. I. 2)數據選擇模塊首先選擇緩沖區A的數據并通過“待發數據”發送給仲裁與交換控制器,同時路由計算置數據微片的路由選擇信號為O,并通過“路由控制”信號通知仲裁與交換控制器要使用的發送控制器,開始數據微片傳輸直到整個數據包發送完畢; ·2. I. 3)繼續選擇緩沖區B的數據發送,同時路由計算置數據微片的路由選擇信號為1,然后發送給仲裁與交換控制器,直到整個數據包發送完畢; ·2. 1.4)通過“數據校驗”信號線接收本地接收控制器發送的發送數據校驗結果,如果結果正確則將數據包從緩沖區中移除,否則忽略該信號;·2. 2)當狀態控制器通過“數據校驗”信號線接收到本地接收控制器發送的接收數據校驗信號,并且端口控制器的“本地數據接收”信號線沒有本地待發送數據時,則控制方法進一步為 ·2. 2. I)狀態控制器根據信號在雙緩沖區內生成校驗應答數據包發送給數據選擇; ·2. 2. 2)由數據選擇通過“待發數據”信號發送給仲裁與交換控制器請求發送; ·3)返回到等待狀態。
6.根據權利要求I、權利要求2和權利要求3所述的路由單元,其特征在于 所述的路由單元接收控制器接收數據的方法為 ·1)接收控制器等待前一級路由單元的數據發送請求;· 2)端口控制器接收到數據發送請求后,檢查當前數據緩沖區的狀態,如果當前緩沖區還存在上一數據包的數據,則接收控制器通過“應答發送”信號線發送等待信號,要求前一級路由單元暫緩發送,否則接收控制器通過“應答發送”信號線發送應答信號接收請求并開始接收數據; 3)接收控制器中的狀態控制器對接收到的微片順序進行檢查,如果收到的微片和當前緩沖區中已經暫存的微片不構成順序關系,則丟棄當前微片,同時通過“應答發送”信號線向前一級路由單元發送本微片的非應答信號,直至整個數據包接收完畢; 4)根據數據包的路由選擇信息計算路由路徑,通過“待收數據”發送接收到的數據包,并通過“路由控制”信號通知仲裁與交換控制器請求相應的發送控制器或本地接收控制器轉發或接收數據; 5)返回到等待狀態。
7.根據權利要求I、權利要求2和權利要求3所述的路由單元,其特征在于 所述的路由單元本地接收控制器接收本地數據的方法為 1)等待仲裁與交換控制器的數據接收請求; 2)如果仲裁與交換控制器的數據接收到數據接收請求,則通過“數據接收”信號讀入接收的數據包; 3)如果收到的是普通數據包,則將接收到的數據進行數據校驗,如果數據校驗正確,則通過“本地數據接收”信號傳輸給本地端口,并通過“數據校驗”信號通知本地發送控制器發送校驗正確應答數據包,否則通過“數據校驗”信號通知本地發送控制器發送校驗錯誤應答數據包,同時丟棄該微片; 4)如果收到的是發送數據校驗結果應答數據包,則將校驗結果通過“數據校驗”信號發送給本地發送控制器通知發送結果; 5)返回到等待狀態。
8.根據權利要求I、權利要求2和權利要求3所述的路由單元,其特征在于 所述的路由計算所使用的路由計算方法為 路由計算根據數據包頭微片的路由選擇信號選擇路由算法 如果路由選擇信號為O,則選擇XY路由算法,使數據包先按照X方向路由,直至當前節點和目的節點在X方向上距離為零;再按照Y方向路由,直至數據包到達目的節點; 如果路由選擇信號為1,則選擇YX路由算法,使數據包先按照Y方向路由,直至當前節點和目的節點在Y方向上距離為零;再按照X方向路由,直至數據包到達目的節點。
9.根據權利要求I、權利要求2和權利要求3所述的路由單元,其特征在于 所述的仲裁與交換控制器所使用的控制方法為 1)仲裁與交換控制器等待接收控制器或本地發送控制器對發送控制器的使用請求; 2)如果接收到請求,并且當前只有一個請求,則響應該請求,即根據“路由控制”信號生成相應的接收控制器或本地發送控制器與發送控制器之間的交換路徑,并進行數據傳輸; 如果接收到請求,并且當前存在多個請求,則控制方法進一步為 .2.I)按照東、南、西、北、本地端口的順序將接收控制器或本地發送控制器申請請求進行排隊,并按照隊列進行響應,即根據“路由控制”信號生成相應的接收控制器或本地發送控制器與發送控制器之間的交換路徑,并進行數據傳輸,響應后的端口記錄到響應端口隊列; .2.2)如果當前請求隊列尚未處理完畢,而又有新的端口申請請求,則在響應端口隊列中查詢該申請端口有無響應記錄,如果沒有則優先響應該申請請求,即生成相應的接收控制器或本地發送控制器與發送控制器之間的交換路徑,并進行數據傳輸,否則將申請請求排入響應隊列的末尾; .2.3)如果當前請求隊列處理完畢,清空響應端口隊列; 3)返回到等待狀態。
全文摘要
本發明公開了一種應用于片上網絡的的二維Mesh雙緩沖容錯路由單元,該方法采用雙緩沖機制輪流發送冗余數據,并采用XYX路由機制動態選擇數據路由路徑。本發明能在面積開銷有限提升的前提下,保證片上網絡容錯性能,完成數據的高可靠性傳輸;同時減少數據包發送等待時間,并能夠均衡網絡負載,有助于解決網絡擁塞問題。
文檔編號H04L12/803GK102868604SQ20121038915
公開日2013年1月9日 申請日期2012年9月28日 優先權日2012年9月28日
發明者周磊, 吳寧, 楊愛良, 葛芬, 張肖強, 徐文濤, 李信超, 陳一帆 申請人:中國航空無線電電子研究所, 南京航空航天大學