一種基于流水線的SpaceWire路由器研究
如果路由器中有兩個以上輸入端向同一個輸出端發(fā)送數(shù)據(jù)時,就會對路由器內(nèi)部的讀寫操作產(chǎn)生爭奪。這時,路由器應提供仲裁機制進行發(fā)送優(yōu)先級的確定。仲裁后,得到發(fā)送權的輸入端向輸出端口發(fā)送一個包。也就是說,在同一時間內(nèi),路由器中只能有一個輸入端進行數(shù)據(jù)的發(fā)送。當這個輸入端發(fā)送完畢后,其他輸入端再進行數(shù)據(jù)的發(fā)送。這樣極大地降低了路由器的工作效率。
為了改善路由器的傳輸速度,研究設計了一種基于流水線技術的Spacewire路由器。關鍵技術是設計一個基于流水線技術的無阻塞的并行交換開關(如圖5)。
對于SpaceWire路由器內(nèi)部數(shù)據(jù)流包頭的檢測和數(shù)據(jù)重排電路的設計復雜、規(guī)模較大。為了簡化電路設計的復雜度、降低電路功耗、提高系統(tǒng)工作可靠性,針對輸入數(shù)據(jù)流的包頭檢測及數(shù)據(jù)重排電路,采用事務處理流水線技術實現(xiàn)電路方案設計。圖6為采用事務處理流水線技術實現(xiàn)包頭檢測及數(shù)據(jù)重排電路方案框圖。采用此設計方案進行電路設計的實驗結(jié)果表明,采用流水線設計技術實現(xiàn)的電路其規(guī)模比原來電路減少了50%。
圖6所示的為并行交換體系結(jié)構(gòu),設計用FPGA實現(xiàn)K個M×M的無緩存的交叉開關作為交換模塊。這個體系結(jié)構(gòu)是由M個輸入共享存儲器模塊、K個交叉開關和M個輸出共享存儲模塊組成。每個輸入/輸出共享存儲器模塊有V個外部線路接口,同時與所有交叉開關相連接。
輸入共享存儲器模塊包含(M*V)個VOQ(虛擬輸出隊列),保存輸出到不同目的端口的信元。輸出共享存儲器模塊包含V個輸出隊列,保存等待輸出的信元。在每個仲裁周期,輸入端口從(M*V)個VOQ隊列中隨機選擇M個隊列,向交換開關提交調(diào)度請求。交換開關以輪詢方式為各隊列提供服務,根據(jù)調(diào)度結(jié)果將授權信息反饋給輸入端口。授權信息指定的VOQ隊列頭信元通過交換開關直接到達輸出隊列,完成報文重組等處理后,發(fā)送到外部鏈路。為了避免輸出端發(fā)生緩沖區(qū)溢出,可采用反壓機制及時阻止輸入端發(fā)送過量信元。
在多個輸入端向一個輸出端發(fā)送數(shù)據(jù)時,在交換開關中利用流水線技術讓多個輸入端分時向輸出端發(fā)送數(shù)據(jù)。也可以在每個輸入端都復制一個路由查找表,這樣在就不需要仲裁機制了。當數(shù)據(jù)流進入輸入端后,根據(jù)包頭地址查找路由表,確定要發(fā)送的輸出端,然后進行發(fā)送,當多個輸入端進行傳送時,就會給每個輸入端分配一個時間令牌,當自己的時間令牌有效時,就進行傳輸,當時間令牌失效時,停止傳輸,直到將所有數(shù)據(jù)傳輸完畢。而時間令牌的分配,由路由算法來控制?;舅枷胧抢昧魉€將時間令牌輪流分給每個輸入節(jié)點,還可根據(jù)具體的一些情況對路由算法進行優(yōu)化。此項工作目前正在進行中。基于這種流水線技術設計的SpaceWire路由器,速度將會達到200 Mb/s。從而使SpaceWire網(wǎng)絡的數(shù)據(jù)傳輸更加快速,也會實現(xiàn)各輸入端到輸出端的同時訪問。
3 結(jié) 語
介紹了SpaceWire路由器的基本原理,重點闡述了一種基于流水線技術的SpaceWire路由器的研究,關鍵技術是用FPGA設計一種基于流水線技術的交換開關。SpaceWire路由器符合未來航天航空領域的發(fā)展需求,所以spaceWire路由器速度是非常關鍵的指標。本文就是介紹了一種改善Spacewire路由器的速度的方法,具有很高的研究價值。目前此項研究正在實現(xiàn)過程中。
評論