曾 光,黃玉萍,史陸星
(廣東交通職業(yè)技術(shù)學(xué)院,廣東 廣州 510000)
交換結(jié)構(gòu)是影響交換效率的關(guān)鍵因素之一,良好的交換結(jié)構(gòu)設(shè)計(jì)有助于提升系統(tǒng)的交換效率。從其構(gòu)成而言,可分為單級(jí)交換結(jié)構(gòu)和多級(jí)交換結(jié)構(gòu),其中單級(jí)交換結(jié)構(gòu)主要包括共享總線結(jié)構(gòu)、共享緩存結(jié)構(gòu)、單級(jí)Crossbar結(jié)構(gòu)等,多級(jí)交換結(jié)構(gòu)主要包括Banyan網(wǎng)絡(luò)、Benes網(wǎng)絡(luò)、Clos網(wǎng)絡(luò)等[1]。
本文通過對(duì)單級(jí)交換結(jié)構(gòu)和多級(jí)交換結(jié)構(gòu)的比較分析,結(jié)合兩者優(yōu)勢(shì),改進(jìn)相關(guān)交換結(jié)構(gòu),使其結(jié)構(gòu)性能與交換系統(tǒng)的適配度最高,并在交換結(jié)構(gòu)設(shè)計(jì)完畢后,在基于Xilinx公司Virtex-6系列FPGA平臺(tái)上搭建交換系統(tǒng),將新設(shè)計(jì)的交換結(jié)構(gòu)應(yīng)用其中,進(jìn)行仿真實(shí)現(xiàn)。
單級(jí)交換結(jié)構(gòu),即整個(gè)交換系統(tǒng)中只有一個(gè)交換單元的結(jié)構(gòu),主要包括共享總線結(jié)構(gòu),共享緩存結(jié)構(gòu),單級(jí)Crossbar結(jié)構(gòu)等,綜合論文[1-4]的內(nèi)容,這三種類型的單級(jí)交換結(jié)構(gòu)各自的優(yōu)劣性如表1所示。
多級(jí)交換結(jié)構(gòu),即由多個(gè)單級(jí)結(jié)構(gòu)的交換單元聯(lián)合成的多級(jí)交換陣列,從而獲得交換機(jī)端口和吞吐量成倍增加的效果,常用的多級(jí)交換結(jié)構(gòu)主要有Banyan網(wǎng)絡(luò)、Benes網(wǎng)絡(luò)、三級(jí)Clos網(wǎng)絡(luò)等,綜合論文[1,5]的內(nèi)容,這三種類型的多級(jí)交換結(jié)構(gòu)各自的優(yōu)劣性如表2所示。
表1 單級(jí)交換結(jié)構(gòu)優(yōu)劣性比較
表2 多級(jí)交換結(jié)構(gòu)優(yōu)劣性比較
通過上述內(nèi)容中對(duì)各單級(jí)、多級(jí)交換結(jié)構(gòu)的比較分析,我們可以知道多級(jí)交換結(jié)構(gòu)的平均時(shí)延較大,而單級(jí)交換結(jié)構(gòu)及其配套的調(diào)度算法已相對(duì)成熟,因此,結(jié)合本系統(tǒng)的目標(biāo)數(shù)據(jù)包為變長數(shù)據(jù)包,最終選擇的交換結(jié)構(gòu)是改進(jìn)版的Crossbar交換結(jié)構(gòu):緩沖交叉式交換結(jié)構(gòu)(Buffered Crossbar)。
Buffered Crossbar交換結(jié)構(gòu)所做的主要改進(jìn)就是在Crossbar交換結(jié)構(gòu)的每一個(gè)交換節(jié)點(diǎn)增加了一個(gè)緩存,即每一個(gè)輸入端口傳輸數(shù)據(jù)包到對(duì)應(yīng)的所有輸出端口都需要經(jīng)過一個(gè)對(duì)應(yīng)的緩存,其結(jié)構(gòu)如圖1所示[6]。
圖1 6×6的Buffered Crossbar交換結(jié)構(gòu)
數(shù)據(jù)包通過Buffered Crossbar交換結(jié)構(gòu)實(shí)現(xiàn)交換的過程大體可描述為以下三個(gè)步驟:
1) 數(shù)據(jù)包首先進(jìn)入交換系統(tǒng)的輸入端,然后通過輸入緩存機(jī)制,將數(shù)據(jù)包分類放置在對(duì)應(yīng)的輸入緩存中;
2) 輸入仲裁器根據(jù)調(diào)度算法,將對(duì)應(yīng)輸入緩存的數(shù)據(jù)包存儲(chǔ)到Buffered Crossbar交換結(jié)構(gòu)中對(duì)應(yīng)的交叉節(jié)點(diǎn)的緩存中;
3) 輸出仲裁器根據(jù)調(diào)度算法,讀取對(duì)應(yīng)Buffered Crossbar交換結(jié)構(gòu)中交叉節(jié)點(diǎn)緩存的數(shù)據(jù)包傳輸至輸出端口,實(shí)現(xiàn)輸入端口與輸出端口之間的數(shù)據(jù)包傳輸。
正因?yàn)锽uffered Crossbar交換結(jié)構(gòu)的緩存功能,使其具有類似于提升了對(duì)隊(duì)頭阻塞的容忍能力的優(yōu)良性能,從而被認(rèn)為此交換結(jié)構(gòu)更適用于變長數(shù)據(jù)包的交換,并且能夠極大的簡(jiǎn)化調(diào)度算法。
以Xilinx公司的Virtex-6為核心的FPGA單板,是交換系統(tǒng)整體實(shí)現(xiàn)的物理平臺(tái),交換系統(tǒng)的緩存機(jī)制、路由查表、系統(tǒng)結(jié)構(gòu)、調(diào)度算法等核心模塊均在此平臺(tái)上實(shí)現(xiàn),是決定和體現(xiàn)交換系統(tǒng)整體性能的核心板塊。
交換系統(tǒng)相關(guān)的緩存機(jī)制、路由查表等核心模塊的原理與設(shè)計(jì)等內(nèi)容,由于篇幅限制,不再展開介紹其中核心的調(diào)度算法[7]。在交換結(jié)構(gòu)之前,我們先對(duì)數(shù)據(jù)緩存機(jī)制進(jìn)行選擇。
輸出緩存機(jī)制的局限性就在于對(duì)高速數(shù)據(jù)的限制,在這方面的提升或者改進(jìn)等都會(huì)增加交換結(jié)構(gòu)、調(diào)度算法的復(fù)雜度,而輸入緩存機(jī)制適應(yīng)于高速的交換系統(tǒng),其隊(duì)頭阻塞的局限性可以通過已有的虛擬輸出隊(duì)列(Virtual Output Queueing,VOQ)緩存策略來得以解決[8],因此,最終本系統(tǒng)所選擇的緩存機(jī)制為輸入緩存機(jī)制VOQ。
VOQ與Buffered Crossbar結(jié)構(gòu)可以采用的存儲(chǔ)單元有隨機(jī)存儲(chǔ)器(RAM)和先進(jìn)先出存儲(chǔ)器(FIFO)兩種,其中RAM的地址管理較為復(fù)雜,而VOQ與Buffered Crossbar結(jié)構(gòu)中對(duì)存儲(chǔ)單元的操作主要就是通過控制地址指針來讀取對(duì)應(yīng)存儲(chǔ)單元的內(nèi)容,因此,為了降低設(shè)計(jì)的復(fù)雜度與提升交換效率,需要選擇地址管理較為簡(jiǎn)單的存儲(chǔ)單元。FIFO是常用的數(shù)據(jù)緩存單元,按照先進(jìn)先出的次序?qū)?shù)據(jù)進(jìn)行堆棧操作,地址管理簡(jiǎn)單,并且集成的FIFO核已經(jīng)很成熟,對(duì)讀寫控制、空滿狀態(tài)等的實(shí)現(xiàn),已變的很簡(jiǎn)單,所以,結(jié)合Virtex-6本身的優(yōu)良性能,在本系統(tǒng)的VOQ與Buffered Crossbar結(jié)構(gòu)中,我們采用FIFO作為它們的存儲(chǔ)單元。圖2所示為FIFO模塊。
圖2 FIFO模塊
圖2所示的din[7:0]為8位的數(shù)據(jù)輸入總線,rd_clk為FIFO讀取數(shù)據(jù)的控制時(shí)鐘輸入端,rd_en為FIFO讀取數(shù)據(jù)的使能信號(hào),高電平有效,wr_clk為FIFO讀取數(shù)據(jù)的控制時(shí)鐘輸入端,wr_en為FIFO讀取數(shù)據(jù)的使能信號(hào),高電平有效,empty為FIFO為空的狀態(tài)指示信號(hào),高電平表示為空,full為FIFO為滿的狀態(tài)指示信號(hào),高電平表示為滿,dout[7:0]表示8位的數(shù)據(jù)輸出總線。FIFO各信號(hào)之間的控制邏輯如圖3所示。
圖3 FIFO內(nèi)部邏輯框圖
按照上述邏輯對(duì)FIFO進(jìn)行功能仿真,可以得到如圖4所示的仿真結(jié)果。
圖4 FIFO仿真波形
如上圖所示:
1) 當(dāng)wr_en為高電平時(shí),din開始輸入數(shù)據(jù),并且隨著din數(shù)據(jù)的輸入,empty跳轉(zhuǎn)為低電平,即表示此時(shí)FIFO為非空;
2) 當(dāng)rd_en為高電平時(shí),dout開始輸出數(shù)據(jù),并且當(dāng)數(shù)據(jù)輸出完畢之后,empty信號(hào)跳轉(zhuǎn)為高電平,表明FIFO為空,此時(shí)FIFO的輸出保持著最后一個(gè)輸出的狀態(tài)(16’hff),直至empty再次跳轉(zhuǎn)為低電平時(shí),繼續(xù)開始輸出FIFO中的數(shù)據(jù)。
3) 因?yàn)镕IFO一直沒有被存儲(chǔ)滿,所以full狀態(tài)一直為低電平,即表示還可以繼續(xù)寫入數(shù)據(jù)。
因此,我們可以根據(jù)此仿真結(jié)果知道,F(xiàn)IFO的各項(xiàng)功能正常,即VOQ與Buffered Crossbar結(jié)構(gòu)的存儲(chǔ)單元模塊功能正常。
本文通過對(duì)單級(jí)交換網(wǎng)絡(luò)和多級(jí)交換網(wǎng)絡(luò)的比較分析后,采用了改進(jìn)版的Crossbar交換結(jié)構(gòu),即緩沖交叉式交換結(jié)構(gòu)(Buffered Crossbar),然后在基于Xilinx公司Virtex-6系列的FPGA平臺(tái)上,對(duì)這個(gè)交換結(jié)構(gòu)進(jìn)行仿真實(shí)現(xiàn),仿真的結(jié)果表明此方案在本系統(tǒng)具有確實(shí)可行性。但由于交換系統(tǒng)的限制,暫未搭建大量數(shù)據(jù)交換的實(shí)驗(yàn)進(jìn)行優(yōu)劣性比較,這將會(huì)在后續(xù)的實(shí)踐過程中進(jìn)行完善。