一種基于流水線的SpaceWire路由器研究
SpaceWire路由器將數據從輸入端傳遞到輸出端的過程一般需要進過三個階段:首先,從輸入端讀數據,將數據包中包頭所包含的目標地址發送給路由查找表;再次,由路由查找表對目標地址進行查找,確定該數據包所要發送的輸出端;最后,將數據包發送到目標地址所指的輸出端。具體結構如圖4所示。

如果路由器中有兩個以上輸入端向同一個輸出端發送數據時,就會對路由器內部的讀寫操作產生爭奪。這時,路由器應提供仲裁機制進行發送優先級的確定。仲裁后,得到發送權的輸入端向輸出端口發送一個包。也就是說,在同一時間內,路由器中只能有一個輸入端進行數據的發送。當這個輸入端發送完畢后,其他輸入端再進行數據的發送。這樣極大地降低了路由器的工作效率。
為了改善路由器的傳輸速度,研究設計了一種基于流水線技術的Spacewire路由器。關鍵技術是設計一個基于流水線技術的無阻塞的并行交換開關(如圖5)。

對于SpaceWire路由器內部數據流包頭的檢測和數據重排電路的設計復雜、規模較大。為了簡化電路設計的復雜度、降低電路功耗、提高系統工作可靠性,針對輸入數據流的包頭檢測及數據重排電路,采用事務處理流水線技術實現電路方案設計。圖6為采用事務處理流水線技術實現包頭檢測及數據重排電路方案框圖。采用此設計方案進行電路設計的實驗結果表明,采用流水線設計技術實現的電路其規模比原來電路減少了50%。
圖6所示的為并行交換體系結構,設計用FPGA實現K個M×M的無緩存的交叉開關作為交換模塊。這個體系結構是由M個輸入共享存儲器模塊、K個交叉開關和M個輸出共享存儲模塊組成。每個輸入/輸出共享存儲器模塊有V個外部線路接口,同時與所有交叉開關相連接。

輸入共享存儲器模塊包含(M*V)個VOQ(虛擬輸出隊列),保存輸出到不同目的端口的信元。輸出共享存儲器模塊包含V個輸出隊列,保存等待輸出的信元。在每個仲裁周期,輸入端口從(M*V)個VOQ隊列中隨機選擇M個隊列,向交換開關提交調度請求。交換開關以輪詢方式為各隊列提供服務,根據調度結果將授權信息反饋給輸入端口。授權信息指定的VOQ隊列頭信元通過交換開關直接到達輸出隊列,完成報文重組等處理后,發送到外部鏈路。為了避免輸出端發生緩沖區溢出,可采用反壓機制及時阻止輸入端發送過量信元。
在多個輸入端向一個輸出端發送數據時,在交換開關中利用流水線技術讓多個輸入端分時向輸出端發送數據。也可以在每個輸入端都復制一個路由查找表,這樣在就不需要仲裁機制了。當數據流進入輸入端后,根據包頭地址查找路由表,確定要發送的輸出端,然后進行發送,當多個輸入端進行傳送時,就會給每個輸入端分配一個時間令牌,當自己的時間令牌有效時,就進行傳輸,當時間令牌失效時,停止傳輸,直到將所有數據傳輸完畢。而時間令牌的分配,由路由算法來控制。基本思想是利用流水線將時間令牌輪流分給每個輸入節點,還可根據具體的一些情況對路由算法進行優化。此項工作目前正在進行中。基于這種流水線技術設計的 SpaceWire路由器,速度將會達到200 Mb/s。從而使SpaceWire網絡的數據傳輸更加快速,也會實現各輸入端到輸出端的同時訪問。
3 結 語
介紹了SpaceWire路由器的基本原理,重點闡述了一種基于流水線技術的SpaceWire路由器的研究,關鍵技術是用FPGA設計一種基于流水線技術的交換開關。SpaceWire路由器符合未來航天航空領域的發展需求,所以spaceWire路由器速度是非常關鍵的指標。本文就是介紹了一種改善 Spacewire路由器的速度的方法,具有很高的研究價值。目前此項研究正在實現過程中。
路由器相關文章:路由器工作原理
路由器相關文章:路由器工作原理
塵埃粒子計數器相關文章:塵埃粒子計數器原理
評論