專利名稱:片上網絡蟲洞路由容錯方法
技術領域:
本發明屬于片上網絡技術領域,涉及一種容錯方法,尤其涉及一種片上網絡蟲洞路由容錯方法。
背景技術:
隨著IC制程向深亞微米階段發展,單個芯片集成的IP越來越多,傳統的總線不能滿足帶寬和時延需求,片上網絡NoC(Network on Chip)因此被提出。在特征尺寸減小時, 芯片更容易受到串擾,電磁干擾,電子遷移等因素引起頻繁的軟錯誤,NoC可靠性成為亟待解決的問題。軟錯誤主要是由于干擾引起的,比如SEU(Single Event Upset),阿爾法射線、 電子遷移,噪聲等引起的路由節點或鏈路中數據或控制信息的暫時出錯,干擾消失的時候, 暫時性故障也會隨之消失,即這種錯誤是瞬時的,通過一定機制是可以恢復的。現有的容錯機制大多是針對硬錯誤的,對于軟錯誤的容錯,一般有糾錯碼和檢錯重傳以及泛洪。其中糾錯碼的硬件開銷和功耗比較大,而且容錯能力一般,檢錯重傳具有較高的延時,泛洪算法容錯能力高,但是功耗很大,且降低網絡吞吐。容錯機制的研究就是在功耗、面積、延時以及可靠性之間取平衡。針對不同的應用和不同的數據,對于可靠性的需求也有差別,利用這個一般性,可以對上述因素取一個更好的折中,滿足應用的設計要求。
發明內容
本發明所要解決的技術問題是提供一種片上網絡蟲洞路由容錯方法,可提高片上網絡數據傳輸的可靠性、靈活性。為解決上述技術問題,本發明采用如下技術方案一種片上網絡蟲洞路由容錯方法,所述方法包括如下步驟對于片上網絡NoC的每個NoC塊tile,NI接口是連接IP核IP Core與路由器的接口 ;在發送端,IP Core將數據包發送到NI接口,在NI接口將數據包分解為flit進行傳輸,數據包由head flit、一個或多個data flit, tail flit組成;對于head flit,對目的地址部分采用三模冗余;如果是關鍵的數據包,對于data flit,每個data flit都連續發送2次或2次以上;如果不是關鍵的數據包,則data flit只發送一次;在接收端,路由器首先接收head flit,對head flit的目的地址部分進行三模冗余判斷,確定此數據包的目的地是當前NoC塊tile ;接著接收data flit,如果是關鍵數據包,則每個data flit都是雙模冗余的,路由器在接收時進行奇偶校驗和雙模冗余校驗,將正確的結果提交給NI接口 ;如果發現全部data flit都是錯誤的,則報告NI接口該數據包出錯,將錯誤恢復交給上層協議處理。作為本發明的一種優選方案,在發送端,所有的flit都加上簡單的奇偶校驗或者循環冗余校驗。在發送端,對于tail flit不做修改。作為本發明的一種優選方案,在接收端,對于head flit和tail flit的校驗依賴奇偶校驗或者循環冗余校驗。作為本發明的一種優選方案,在發送端,如果是關鍵的數據包,對于data flit,每個data flit都連續發送2次。進一步地,在接收端,對于關鍵數據包,如果第一個data flit出錯,選擇第二個 data flit ;如果兩個都出錯,則標識該數據包為錯誤數據包。作為本發明的一種優選方案,數據包是否是關鍵數據的標記設置在head flit的 payload ψ 0本發明的有益效果在于本發明提出的片上網絡蟲洞路由容錯方法,將片上網絡傳輸的關鍵數據進行雙模冗余,在接收端進行校驗,獲得正確的值,相比重傳和泛洪的方法,在相同可靠性下,可以降低硬件開銷,并具有更好的性能。本發明可提高片上網絡數據傳輸的可靠性、靈活性。
圖1為傳統片上網絡packet結構的示意圖。圖2為傳統的head flit結構的示意圖。圖3為本發明中數據包packet結構的示意圖。圖4為本發明中head flit結構的示意圖。
具體實施例方式下面結合附圖詳細說明本發明的優選實施例。實施例一本發明揭示了一種片上網絡蟲洞路由容錯方法。每個數據包packet,都由head flit、data flit 和 tail flit 組成。在接收端,對于head flit,對目的地址部分采用三模冗余。在head flit中指明該數據包是否是關鍵的數據包,如果不是關鍵的數據包就使用圖1中傳統的數據包格式; 如果是關鍵的數據包,就采用圖3中的數據包格式,增強數據的抗干擾能力。IP core生成上述帶有關鍵數據標記符的數據后,將數據傳入網絡接口 NI中,NI接口根據標記信息,將數據包分解成flit,關鍵數據的標記放在head flit的payload中,如果是關鍵數據,就生成圖4中的head flit格式,如果是非關鍵數據,就生成圖2中傳統的head flit。路由器從NI接口中取得分解為flit的數據,若發現該數據是關鍵數據,則啟動計數器,對于data flit需要連續傳輸兩次;否則只需要傳輸一次。在網絡中傳統的數據包由 m個data flit和1個head flit以及1個tail flit構成,本發明提出的關鍵數據包則由an個data flit和lfhead flit以及1個tail flit構成;數據的可靠性因此達到提尚ο在接收端,接收過程是上述過程的逆過程,路由器根據head flit的關鍵信息標識,正確接收余下的data flit和tail flit。將接收到的flit進行校驗,如果是關鍵數據,則可以有兩次選擇的機會,如果第一個data flit出錯,可以選擇第二個data flit。如果兩個都出錯,則標識該數據包為錯誤數據包(實驗證明此概率非常小)。本發明有助于提高片上網絡數據傳輸的可靠性,靈活性高,適用于多種路由算法和流控制方法,對現有的片上網絡結構只需要很小的修改,可以實現對程序可見和非可見的配置,容錯性能顯著。實施例二本實施例與實施例一的區別在于,本實施例中,在發送端,對于關鍵的數據包,每個data flit都連續發送2次以上;如果不是關鍵的數據包,則data flit只發送一次;這里本發明的描述和應用是說明性的,并非想將本發明的范圍限制在上述實施例中。這里所披露的實施例的變形和改變是可能的,對于那些本領域的普通技術人員來說實施例的替換和等效的各種部件是公知的。本領域技術人員應該清楚的是,在不脫離本發明的精神或本質特征的情況下,本發明可以以其它形式、結構、布置、比例,以及用其它組件、 材料和部件來實現。在不脫離本發明范圍和精神的情況下,可以對這里所披露的實施例進行其它變形和改變。
權利要求
1.一種片上網絡蟲洞路由容錯方法,其特征在于,所述方法包括如下步驟對于片上網絡NoC的每個NoC塊tile,NI接口是連接IP核IP Core與路由器的接口 ;在發送端,IP Core將數據包發送到NI接口,在NI接口將數據包分解為flit進行傳輸,數據包由head flit、一個或多個data flit、tail flit組成;對于head flit,對目的地址部分采用三模冗余;如果是關鍵的數據包,對于data flit,每個data flit都連續發送2次或2次以上;如果不是關鍵的數據包,則data flit只發送一次;在接收端,路由器首先接收head flit Jfhead flit的目的地址部分進行三模冗余判斷,確定此數據包的目的地是當前NoC塊tile ;接著接收data flit,如果是關鍵數據包,則每個data flit都是雙模冗余的,路由器在接收時進行奇偶校驗和雙模冗余校驗,將正確的結果提交給NI接口 ;如果發現全部data flit都是錯誤的,則報告NI接口該數據包出錯, 將錯誤恢復交給上層協議處理。
2.根據權利要求1所述的片上網絡蟲洞路由容錯方法,其特征在于在發送端,所有的flit都加上簡單的奇偶校驗或者循環冗余校驗。
3.根據權利要求1所述的片上網絡蟲洞路由容錯方法,其特征在于在發送端,對于tail flit不做修改。
4.根據權利要求1所述的片上網絡蟲洞路由容錯方法,其特征在于在接收端,對于head flit和tail flit的校驗依賴奇偶校驗或者循環冗余校驗。
5.根據權利要求1所述的片上網絡蟲洞路由容錯方法,其特征在于在發送端,如果是關鍵的數據包,對于data flit,每個data flit都連續發送2次。
6.根據權利要求5所述的片上網絡蟲洞路由容錯方法,其特征在于在接收端,對于關鍵數據包,如果第一個data flit出錯,選擇第二個data flit ;如果兩個都出錯,則標識該數據包為錯誤數據包。
7.根據權利要求1所述的片上網絡蟲洞路由容錯方法,其特征在于數據包是否是關鍵數據的標記設置在head flit的payload中。
全文摘要
本發明揭示了一種片上網絡蟲洞路由容錯方法,所述方法包括如下步驟在發送端,IP Core將數據包發送到NI接口,在NI接口將數據包分解為flit進行傳輸;如果是關鍵的數據包,對于data flit,每個data flit都連續發送2次或2次以上;如果不是關鍵的數據包,則data flit只發送一次;在接收端,路由器首先接收head flit,對head flit的目的地址部分進行三模冗余判斷,確定此數據包的目的地是當前NoC塊tile;接著接收data flit,如果是關鍵數據包,則每個data flit都是雙模冗余的,路由器在接收時進行奇偶校驗和雙模冗余校驗,將正確的結果提交給NI接口;如果發現全部data flit都是錯誤的,則報告NI接口該數據包出錯,將錯誤恢復交給上層協議處理。本發明可提高片上網絡數據傳輸的可靠性、靈活性。
文檔編號H04L1/00GK102387080SQ20111032149
公開日2012年3月21日 申請日期2011年10月21日 優先權日2011年10月21日
發明者付宇卓, 劉婷, 宋向明, 蔣江 申請人:上海交通大學