張錦林
(杭州師范大學錢江學院 計算機科學與技術系,浙江 杭州 310012)
近年來,人們圍繞可伸縮互連結構和NoC展開大量的研究。推動著這項新技術發展的重要單位有美國的斯坦福大學、普林斯頓大學、KTH,法國的Pierre et Marie Curie大學等。中國在NoC研究領域中滯后國際先進水平,從這個意義上看,國內對NoC進行研究己經到了刻不容緩的地步,NoC作為一個嶄新的多核發展領域,我國若能成功開展NoC學術領域的前沿工作,將為大量創新新成果的出現提供一個空間。
作為性能評測的重要手段,模擬器對于驗證理論分析的正確性和準確性,評價系統改進方案具有重要的作用。下面紹了幾種NoC模擬器,它們在一定程度上可以對片上網絡的性能進行模擬,但針對性較強、擴展比較困難等問題,需要設計出模塊化更好并且性能更優的NoC模擬器。
Pacman是針對多核處理器的精確周期模擬器,支持蟲孔路由、全鏈接的交叉開關,拓撲結構支持:mesh,torus、和星型等。片上通信結構(OCA=On-chip Communication Architecture)模型都用工作狀態機 (Operation State Machine)來描述,這樣做的好處是提供了處理器單元和路由單元模型一致性,提高了仿真的效率和為以后進一步驗證模型的正確性提供了巨大的潛力。
使用C/C++來寫的一個精確周期模擬器,可重用的庫文件:buffers,arbiters,crossbar,仿真速度快。Pacman采用層次的描述結構,第一級:TOP層,系統級設計者只需要規定針對特殊應用的基本參數。例如,一個9核的NoC,采用2D的torus網絡結構虛擬路由,TOP層將完成這些特征比如:topology,network,PEtype等等。第二級,Middle層,從TOP層轉化為特殊的應用網表,包括PEs和OCAs。如果設計者想減少torus中的一個鏈接,可以直接從表文件中刪除連接。第三級:LOW層,這一層,OCA設計者可能會調整OCA組件的微體系結構,例如:流水線開關的類型和參數,總線仲裁器的請求與發送之間的時間戳等可以看出三者之間的關系,從上到下,復雜度增加,抽象度減小。利用基于綜合的工具套件,在LOW級的描述產生后,這個仿真綜合器讀取描述一一有效的OSM模型,并且自動產生一個用戶自定義的模擬器。
NoCsim是Texas A&M大學的Narayanan Swaminathan開發的一款基于IP核的NoC模擬器,支持2D-Torus拓撲結構,支持蟲孔路由。模擬器可配置選項是:虛信道VCs的數量和buffe:的深度,網絡大小。另外功耗模型基于90nm技術建立。支持不變的比特率和隨機的Poisson分布,產生有限的通信統計量,模擬器主要用于學術機構研究使用。
模擬器Chaos可以模擬片上網絡下的包交換和蟲孔路由切換機制、自適應或維序路由算法和大量的負載模式。Chaos模擬器主要模擬消息在網絡結點上的傳輸延遲。分析其結構,可以發現它的四大模塊:a.機構說明模塊,說明網絡的拓撲結構以及網絡中使用的一些常量。例如網絡的IP數目,網絡的拓撲結構以及VC虛信道的數目和大小。b.消息產生模塊,包括消息產生的結點以及網絡的負載特性。c.擬器控制模塊,該模塊中包含了隨機數產生器、模擬器的測試與幫助信息、數據的統計報告以及圖形化的人機接口GUI。d.路由排隊模塊,控制消息在NoC中的傳輸及選擇路徑的路由算法。模擬器框架的關鍵技術研究。
模擬器主要由模擬器對象、初始化程序、負載特性與程序執行控制子程序以及統計報告子程序與圖形化用戶界面構成,結構如下圖所示。

路由器模塊本身由端口模塊(一個端口模塊包含一個輸入和一個輸出端口)、仲裁器模塊和交換單元等模塊構成,共有n(大小一定)個輸入控制器對應n個路由器輸入,每個輸入控制器包括路由控制邏輯、虛信道狀態寄存器和由buffers組成的v路的虛信道,虛信道仲裁器會根據虛信道的當前狀態對于達到的flits進行虛信道的選擇,交叉開關仲裁器對來自虛信道的不同的輸入選擇不同的輸出。在OMNeT++模型中應該定義為復合模塊。所有的處理器結點采用均勻分布進行發包;路由器采用2或4路虛信道且不允許虛信道切換,buffe:長度是32flits,包的大小8flits,不同的路由算法,處理器發包速率,虛信道數目,buffe:和包的大小均可以進行參數配置。在包含虛信道的路由器中,對報文使用分布式仲裁方式,即每個輸出端口對各自的請求分別執行仲裁(包括虛信道仲裁和物理信道仲裁),因此路由器頂層模塊的兩個子模塊為:端口模塊:負責報文的輸入/輸出。交叉開關模塊:是路由結點的核心組成部分,它將輸入端口的報文發送到正確的輸出端口。
目前采用的仲裁策略主要有輪轉法、先來先服務和短消息優先三種。a.輪轉法是最流行的仲裁策略之一。仲裁器首先掃瞄所有的通道,第一個準備好傳送的稱為通道i,被選擇來傳送一個片。下一個過程,掃瞄從通道i+1開始。這種方法顯然是公平的,不會發生餓死。然而,對于所有的微包,網絡延遲有一個均勻上升的趨勢。為了緩解負面影響,僅在當前VC正好送出一個尾片后才讓掃瞄過程移到下一個準備好的VC上。當這個報文完全流出后,就使用這個簡單的Round-Robin策略。b.先來先服務,最老的微包有更高的優先權。一個可能的實現如下:與每個VC都關聯著一個“age”計數器。當一個新的微包進入一個VC,age計數器復位。以后,age以一個可編程的速率增加。仲裁器更喜歡帶最大age的微包。本質上這個仲裁策略是無餓死的。像Round-Robin的情況一樣,我們可以有FCFSKeep Flow方法,其中當前流出交換開關的微包被給予優先權。Spider芯片使用一個8位的age計數器來實現FCFS。然而,他們的實現與我們的不同,因為age由微包帶著向前并且當flits進入一個新的交換開關時并不復位。分析了虛信道和自適應路由對2-D Mesh性能帶來的影響,發現Switch帶來的性能提升大于降低網絡擁塞帶來的性能提升。中比較了MIN中四種不同的Switch實現(交換技術、緩沖深度和虛信道數目),作者將各層的延遲進行了分解,發現長報文在網絡入口處的延遲是最關鍵的。c.短消息優先從進程調度理論來講,最短工作優先可以獲得非常好的響應時間。對仲裁來一說等價的策略是最短消息優先SMF,它優先考慮帶最少傳輸片的微包,因此可以最小化消息延遲。SMF策略的第二個動機是增加虛通道的可用性,當輸入緩沖相當大并且一次僅有一個微包可以使用一個VC時,SMF的優點才能得到體現。這種交換開關可能存在這樣的情況,即使有足夠的緩沖可用,由于下一個開關沒有空的VC而導致頭片被阻塞。因此,仲裁器應當嘗試盡可能快的釋放虛通道,這恰好是SMF所做的。然而,這種方法不公平,如果不采取特殊措施的話會發生餓死,因此在交換開關中未被使用。
傳輸延遲是指從消息源結點產生頭包到該消息的尾微包到達目標結點的這段時間,以時鐘周期數表示。消息要到達目的結點,微片fl1tS需要經過一系列由開關和連線構成的路徑,稱為Stages。源/目的結點的位置和路由算法影響網絡的延遲。另外,源/目的結點的其他因素對總延遲也有影響。因此,對給定的不同的消息有不同的延遲:Li二發送延遲+傳輸延遲+接受延遲。當然在評價系統性能時,一般采用平均延遲作為衡量性能的標準。
在前面模擬器仲裁策略中詳細說明了不同的仲裁策略。在模擬中我們采用本文中提出的基于信用值與輪轉法結合的低延遲仲裁策略和輪轉法仲裁策略進行比較。無論交叉開關有2路或者4路虛信道時,Spin的網絡延遲明顯比2DMesh的要小,并且兩種拓撲結構下的4路虛信道的性能都超過2路信道;兩種拓撲結構下網絡延遲都隨著處理器結點數目的增加而增加;無論那種情況下,采用本文提出的信用值與輪轉法結合的仲裁策略使得網絡延遲明顯減少。
[1]周干民,NoC基礎研究,合肥工業大學博士論文,2005年
[2]都政,羅莉,彭元喜,于正澎,徐秀成,通信局部性提高NoC性能,計算機應用與研究,2007年