才 華 劉廣文 陳廣秋 姜 俊
(長春理工大學電子信息工程學院,吉林 長春 130022)
技術能力和實際應用的復雜性使得基于總線的片上系統(SoC,system-on-chip)向片上網絡(NoC,network-on-chip)發展。NoC提供了一個整體的多層次的通信平臺,允許網絡節點之間的通信傳輸。
片上網絡有能力解決總線在帶寬,時鐘頻率,功率的可擴展性方面的問題。然而由于網絡中通道和緩沖資源的共享,數據包的傳輸帶來了不可預測的情況。為了解決片上網絡數據包傳輸過程中帶來的不確定性,提出了多種資源預約和基于優先級的調度機制,提供延遲和帶寬的保證。?thereal[1]和Nostrum[2]采用資源預留策略以提供有保證的服務。具體來說,在網絡同步運行中都確定有時分多路復用(TDM,time-division-multiplexing)的虛擬電路(VC,virtual circuit)。VC上的數據包是通過VC路線節點在通道中連續傳輸的。
總的來說,一個VC可能包括多個源節點和目標節點(多向性的)。配置VCs包含以下方面。
(1)路徑選擇:設計網絡路徑的多樣性
(2)時隙分配:交換器為每個VC分配一個間隙
本文提出基于LN時隙分配方法的多級時隙控制分配方法,根據網絡不同情況下的數據傳輸路徑設置提供更好的選擇。

圖1.系統運行示意圖
片上TDM VC假設網絡是分組交換和有時間時隙的,VC數據包在每一個時間間隙前進一跳。如圖1所示,VC v通過交換機SW1,SW2和SW3{b1→b2→b3}。在v上,每六個間隙網絡中會注入兩個數據包(我們說窗口的大小為6)。最開始,通過數據包流在第一個被占用的交換機SW1的緩沖區b1間隙是0和2。之后,重復這個模式,b1的間隙6和8,12和14,等等被占用。在第二個交換機SW2,數據包占用b2的間隙1和3,7和9,13和15,等等。在交換機SW3,它們占用了b3的間隙2和4,8和10,14和16,等等。
這是VC的配置模式,為VC數據包確定確切的準許進入形式,并在節點中設定路徑選擇表。在這種情況下,VC數據包在頭文件中不需要攜帶路由信息??梢怨澥∶恳粋€VC數據包的通訊能量消耗。
LN是一個相關函數的集合(時間間隙,緩沖區),其與一個給定的VC(虛擬通道)上的緩沖區是相對應的。即VC中一組緩沖區邏輯網絡的間隙集合作為一個LN。
多節點VC配置的步驟,包括兩個順序階段:路徑選擇和間隙分配及間隙映射。在第一個階段,VC的路徑是確定的。在第二個階段,基于VC路徑,分配給VC的間隙取決于是否可以避免相互干擾以及帶寬是否可以滿足。我們在圖2中利用一對封閉式 VCs(v1,v2)來描述它們。

(1)間隙分配:由于在一個共享緩沖區中可能發生沖突,我們有規律地將共享緩沖區的間隙分隔成間隙組。在圖2中,b0是v1和v2唯一的共享緩沖區,v1∩v2={b0}。我們把b0的間隙分隔成兩組,一個偶數集s20(b0)關于t=2k和一個奇數集s21(b0)關于t=2k+1。
(2)間隙映射:分段的間隙組可以規律和準備地被映射到VC上其他緩沖區的間隙組。例如,在緩沖區b0間隙t的一個v1數據包,即(t,b0),將連續占據間隙t+1在b1(狀態(t+1,b1)),間隙 t+2在 b2(狀態(t+2,b2)),間隙 t+3 在 b3(狀態(t+3,b3))。在v1和v2分別映射完間隙組s20(b0)和s21(b0)后,我們得到兩個狀態集{s20(b0),s21(b1),s20(b2)s21(b3)}以及{s21(b0),s21(b4)}。我們指在 VC中一組緩沖區邏輯網絡的間隙集合作為一個LN。因此,LN是一個在VC相關緩沖區上由(時間間隙,緩沖區)相關聯的組成。
總結來說,就是1)通過配置間隙細化路由表建立VC;2)分隔間隙并映射進LN;3)分配不同的LN到VC。這些步驟必須承諾保證無沖突和提供足夠的帶寬。
本文提出了基于LN時隙分配的多級控制VC設置。該方法根據網絡中的實時情況在數據傳輸中設置更加準確的間隙配置,以避免網絡中的數據傳輸擁堵情況,更好的利用網絡資源,提升網絡效率。
下面為基于LN時隙分配方法的多級控制VC設置。步驟如下:
(1)給定一個多節點VC網絡。
(2)根據數據傳輸要求進行路徑選擇。
(3)對下一步節點發送訪問命令,檢查節點狀態。
(4)假定下一節點有兩個方向,判斷X/Y方向節點擁擠情況。若為輕度擁擠,選擇擁擠度較輕的路徑。若為中度以及重度擁擠,比較X/Y方向的等待時間。若大于設定值,則選擇等待時間短的路徑。若小于設定值,則根據網絡狀況進行等待或回溯,或沿相對較輕方向傳輸。
(5)選定VC后,進行間隙映射,同時避免VC之間的沖突。
(6)若映射未完成,則返回路徑選擇重新開始配置。
(7)若映射完成,則VC設置完成。
VC的設置是一個基本問題,我們采用[9]中給出的方法予以解決。
算法 VC配置算法的偽代碼
輸入:I:所有可能設置的VC隊列
輸出:O:VC設置可以采用的隊列(s:一個可用vc設置)
初始狀態,cur_level=0;O.size=m;O 和 s初始為空;即暫時沒有可用VC設置;利用優先標準對O進行分類排序;


在構建VC時,設置與VC相對應的LN是關鍵的一步。如果VC到LN的設置對所有VC都能夠成功執行,則返回1;否則返回0。
在NoC的應用設計中,關于TDM的服務保證和VC設置是一個普遍的問題。它的復雜性產生于網絡路徑的多樣性和各種路徑重疊的情景,以及網絡資源利用情況的變化。研究結果表明,使用基于LN時隙分配方法的多級控制VC設置能夠更好地適應網絡中復雜情況,有效地利用網絡資源,提升系統效率。
[1]K.Goossens,J.Dielissen,and A.R?adulescu,"The ?thereal network on chip:Concepts,architectures,and im-plementations,"IEEE Des.Test Comput.,vol.22,no.5,pp.21-31,Sep.-Oct.2005.
[2]M.Millberg,E.Nilsson,R.Thid,and A.Jantsch,"Guaranteed bandwidth using looped containers in temporally disjoint networks within the Nostrum network on chip,"in Proc.Design Automation and Test in Europe Conf.,Feb.2004.