鄭靜雅,安軍社
(1.中國科學(xué)院國家空間科學(xué)中心 中國科學(xué)院復(fù)雜航天系統(tǒng)電子信息技術(shù)重點(diǎn)實(shí)驗(yàn)室,北京 100190;2.中國科學(xué)院大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,北京 100190)
隨著空間技術(shù)的不斷發(fā)展,衛(wèi)星有效載荷數(shù)據(jù)的數(shù)量和速率[1,2]日益增加,歐洲航天局提出SpaceFibre[3]超高速數(shù)據(jù)通信技術(shù)。該技術(shù)將端口劃分為若干虛擬通道(virtual channel,VC),每條VC被分配唯一的虛擬網(wǎng)絡(luò)(virtual network,VN)號,協(xié)議[3]稱這種映射關(guān)系為VC-VN映射。
虛擬網(wǎng)絡(luò)增加了路由器設(shè)計(jì)的復(fù)雜度,目前關(guān)于SpaceFibre路由器設(shè)計(jì)的研究較少。文獻(xiàn)[4]設(shè)計(jì)了路由器原理樣機(jī);文獻(xiàn)[5]和文獻(xiàn)[6]實(shí)現(xiàn)了具有基本功能的SpaceFibre路由器;文獻(xiàn)[7]公開了一種擴(kuò)展性較強(qiáng)的交叉開關(guān)方案。但上述設(shè)計(jì)存在組自適應(yīng)路由功能或多播功能缺省的問題,不能滿足部分?jǐn)?shù)據(jù)網(wǎng)絡(luò)的應(yīng)用需求。文獻(xiàn)[8]設(shè)計(jì)了一種功能完善的路由器并在多種FPGA型號上進(jìn)行了驗(yàn)證,但該路由器的性能可進(jìn)一步提升以確保超高速數(shù)據(jù)的高效交換。
為適應(yīng)多種航天應(yīng)用場景、提高數(shù)據(jù)網(wǎng)絡(luò)中數(shù)據(jù)交換的效率,本文設(shè)計(jì)了一種SpaceFibre路由器結(jié)構(gòu),該結(jié)構(gòu)采用多模式包頭識別狀態(tài)機(jī)以支持組自適應(yīng)路由和數(shù)據(jù)包多播功能,利用并行映射降低了VC-VN映射延時,通過可重構(gòu)混合機(jī)制仲裁器增加了仲裁方式的多樣性、降低了硬件資源消耗。
SpaceFibre的虛擬通道為雙向,用于緩存和傳輸數(shù)據(jù)。雙向VC分別稱為輸入VC和輸出VC,輸入虛擬通道是指到達(dá)路由器方向的通路,反之為輸出VC。SpaceFibre路由器使用的是基于靜態(tài)路由表的蟲孔交換方式[3],主要用于將數(shù)據(jù)包和廣播消息從輸入端口的輸入VC傳輸?shù)捷敵龆丝诘腣C。輸入端口的輸入虛擬通道,以下簡稱為輸入端口虛擬通道。相應(yīng)地,輸出端口的輸出虛擬通道,簡稱為輸出端口虛擬通道。當(dāng)數(shù)據(jù)包到達(dá)輸入端口VC時,該數(shù)據(jù)包在網(wǎng)絡(luò)中的虛擬網(wǎng)絡(luò)號已由該VC確定。在SpaceFibre網(wǎng)絡(luò)中,數(shù)據(jù)包只能在具有相同虛擬網(wǎng)絡(luò)號的VC之間傳輸,每個VN類獨(dú)立運(yùn)行、互不干擾。此外,協(xié)議規(guī)定同一端口不同虛擬通道的虛擬網(wǎng)絡(luò)號互不相同。
SpaceFibre協(xié)議規(guī)定數(shù)據(jù)包的長度可以為任意大小,其數(shù)據(jù)包由地址段、數(shù)據(jù)包內(nèi)容和數(shù)據(jù)包結(jié)束標(biāo)志或數(shù)據(jù)包錯誤結(jié)束字符組成,該數(shù)據(jù)包格式與SpaceWire相同。
采用路徑尋址方式時,輸出端口是由數(shù)據(jù)包的首地址決定的,經(jīng)過VC-VN映射可直接進(jìn)行仲裁連接,無需訪問路由表。仲裁連接建立后,需要刪除數(shù)據(jù)包的首地址再進(jìn)行數(shù)據(jù)發(fā)送。
當(dāng)數(shù)據(jù)包的地址段為邏輯地址時,需要經(jīng)過訪問路由表獲取物理地址、VC-VN映射、仲裁連接和包頭刪除等操作。若邏輯尋址從路由表獲取多個輸出端口,則查詢該邏輯地址對應(yīng)多播還是組自適應(yīng)路由功能。對于具有組自適應(yīng)路由功能的路由器來說,數(shù)據(jù)包首先訪問路由表獲取物理地址,然后查詢每個輸出端口中處于同一VN的虛擬通道的占用狀態(tài),最后在空閑的虛擬通道中建立連接。進(jìn)行多播操作時,路由器首先從路由表中獲取物理地址,然后查詢每個輸出端口中相應(yīng)虛擬通道的占用狀態(tài),僅當(dāng)所有端口中相應(yīng)VC為空閑態(tài)時才發(fā)送數(shù)據(jù)。
同一VN中有多個VC同時發(fā)出請求時,需要使用仲裁機(jī)制來實(shí)現(xiàn)請求的篩選。協(xié)議中對路由器的仲裁機(jī)制沒有強(qiáng)制約束,目前產(chǎn)品[5-8]使用輪詢仲裁或基于雙優(yōu)先級的輪詢仲裁。
圖1為SpaceFibre路由器整體架構(gòu),該路由器主要由內(nèi)部配置模塊、路由表控制模塊、VC-VN并行映射模塊、全相連交換矩陣模塊、廣播控制模塊和SpaceFibre編解碼器模塊構(gòu)成。m個SpaceFibre編解碼器模塊在SpaceFibre路由器中被稱為端口并被記為Port0~Portm-1。 每個端口包含n條VC。該架構(gòu)不局限于具體的端口數(shù)目和虛擬通道數(shù)目,可根據(jù)實(shí)際應(yīng)用需求進(jìn)行數(shù)目選擇,具有一定的可擴(kuò)展性。
圖1 SpaceFibre路由器整體架構(gòu)
內(nèi)部配置模塊主要用于路由表、VC-VN映射表和各端口虛擬通道寄存器的存取操作,上位機(jī)可通過該模塊實(shí)時地配置路由參數(shù)、映射參數(shù)和反饋路由狀態(tài)。路由表控制模塊主要功能是配置、存儲和反饋路由信息。VC-VN并行映射模塊實(shí)現(xiàn)VC-VN映射表的配置、存儲和讀取操作。路由表和VC-VN映射表的配置都在是內(nèi)部配置模塊的控制下完成的,已配置的路由信息和映射信息分別存儲在路由表中和VC-VN映射表中。
全相連交換矩陣模塊是一種無阻塞的全相連結(jié)構(gòu)。由于VC-VN映射是可配置的,所以全相連結(jié)構(gòu)不僅包含端口之間,還包含各端口的虛擬通道之間。該模塊主要包含若干多模式包頭識別模塊和可重構(gòu)仲裁連接模塊。包頭識別模塊對輸入端口VC的數(shù)據(jù)包進(jìn)行包頭解析并發(fā)出仲裁請求信號。請求信號傳送至仲裁連接模塊后,仲裁連接模塊按照仲裁機(jī)制選擇合適的VC進(jìn)行仲裁響應(yīng)。包頭識別模塊接收到仲裁響應(yīng)信號時,發(fā)出仲裁確認(rèn)信號。仲裁連接模塊接收到仲裁確認(rèn)信號后,建立輸出端口VC與輸入端口VC之間的連接以進(jìn)行數(shù)據(jù)包傳輸。
SpaceFibre技術(shù)在網(wǎng)絡(luò)層與SpaceWire[9]向后兼容,所以在尋址過程中虛擬網(wǎng)絡(luò)和虛擬通道的概念對數(shù)據(jù)包來說是透明的,即數(shù)據(jù)包地址信息的最小粒度為端口。因此,數(shù)據(jù)包到達(dá)輸入端口VC后,需經(jīng)過VC-VN映射才能在虛擬網(wǎng)絡(luò)中傳輸。
在FPGA中寄存器資源比較寶貴,所以采用RAM進(jìn)行VC-VN映射信息的存儲,采用這種方式,無需占用觸發(fā)器資源即可實(shí)現(xiàn)映射表的讀寫操作。若路由器包含m個端口,每個端口有n條虛擬通道,則所需RAM大小為 (mn)×1, RAM中每一行記錄的是本端口各VC對應(yīng)的VN號。
圖2為VC-VN串行映射方式[4-8],該方式的設(shè)計(jì)原理為:路由器中所有端口的VC-VN映射信息均存儲于大小為 (mn)×1的單一RAM塊中。該方案,同一時刻至多允許某一端口的單條虛擬通道進(jìn)行映射表的訪問操作,當(dāng)前映射操作完成后才可進(jìn)行下一次操作。多個端口請求訪問映射表時,各端口按照端口編號遞增的順序依次獲取映射表的訪問權(quán)。同一端口的多條虛擬通道同時請求訪問映射表時,編號較小的先于編號較大的VC進(jìn)行訪問。在極端情況下, Portm-1的虛擬通道n-1需要等待mn個時鐘周期才能獲得VC-VN映射表的訪問權(quán)。
圖2 VC-VN串行映射
VC-VN映射的速度直接影響路由器對到達(dá)數(shù)據(jù)包的響應(yīng)速度,進(jìn)而影響有效載荷通信的性能。為降低VC-VN映射延時,本文提出了如圖3所示的VC-VN并行映射方案。該方案的設(shè)計(jì)原理為:按端口編號將整個路由器的VC-VN映射信息進(jìn)行劃分,每個目的端口的VC-VN映射表分別存儲在容量為n×1的m個RAM塊中;該方案中,每個RAM對應(yīng)的讀信號為相應(yīng)目的端口各虛擬通道的讀請求信號相或;當(dāng)目的端口映射表的讀信號有效時,地址信號不斷加1,否則地址信號保持不變。同一時刻不同輸入端口可并行訪問不同目的端口的映射表,不同目的端口映射表的讀取操作互不影響,降低了路由器的響應(yīng)延時。多個輸入端口虛擬通道同時請求訪問同一輸出端口的映射表時,任一輸入端口虛擬通道獲得該輸出端口映射表的訪問權(quán),其它輸入端口虛擬通道均可使用該輸出端口VC-VN映射表所讀出的虛擬網(wǎng)絡(luò)信息。該方案有效避免了頻繁訪問映射表的問題,提高了映射表的讀取效率。在極端情況下,輸入端口VC最大等待時間為n個時鐘周期。
圖3 VC-VN并行映射
因此,在占用相同RAM資源的基礎(chǔ)上,VC-VN并行映射降低了多端口訪問映射表的沖突概率,加快了虛擬通道與虛擬網(wǎng)絡(luò)間的映射速度,降低了SpaceFibre路由器生成仲裁請求信號的延時,提高了路由器的響應(yīng)速度。
SpaceFibre路由器端口的每條輸入虛擬通道都配置了多模式包頭識別模塊。數(shù)據(jù)包到達(dá)輸入端口虛擬通道后,該模塊首先識別包頭地址類型,然后生成該數(shù)據(jù)包的仲裁請求信號和優(yōu)先級信號,輸出到相應(yīng)輸出端口虛擬通的仲裁連接模塊。在接收到仲裁連接模塊的仲裁響應(yīng)信號后,該模塊對仲裁響應(yīng)信號進(jìn)行判讀,發(fā)送仲裁確認(rèn)信號并選擇相應(yīng)輸出端口虛擬通道進(jìn)行數(shù)據(jù)傳輸。傳輸數(shù)據(jù)時,該模塊將輸入端口虛擬通道緩沖區(qū)中的數(shù)據(jù)字依次傳輸至輸出端口的虛擬通道緩沖區(qū)。
包頭識別模塊的主要功能由圖4所示的多模式包頭識別狀態(tài)機(jī)實(shí)現(xiàn),該態(tài)機(jī)包含空閑態(tài)、包頭尋找態(tài)、邏輯尋址態(tài)、VC-VN映射態(tài)、請求生成態(tài)、仲裁等待態(tài)、仲裁成功態(tài)、數(shù)據(jù)發(fā)送態(tài)和異常態(tài)共9種狀態(tài)??紤]到可靠性設(shè)計(jì)因素,該狀態(tài)機(jī)待機(jī)情況下處于空閑態(tài),該狀態(tài)主要用于初始化的處理。當(dāng)相應(yīng)輸入虛擬通道緩沖區(qū)為非空時,該狀態(tài)機(jī)進(jìn)入包頭尋找態(tài)。
圖4 多模式包頭識別狀態(tài)機(jī)
在包頭尋找狀態(tài),若數(shù)據(jù)包的首地址為物理地址,則直接進(jìn)入VC-VN映射態(tài),進(jìn)行VC-VN映射;若為邏輯尋址,則進(jìn)入邏輯尋址態(tài)。在邏輯尋址態(tài),狀態(tài)機(jī)根據(jù)數(shù)據(jù)包的首地址在路由表中獲取相應(yīng)物理地址和優(yōu)先級信息。本設(shè)計(jì)中的路由表存儲格式如圖5所示,0至m-1比特區(qū)間為物理地址信息段。若該比特區(qū)間某位為1,則表示相應(yīng)端口為數(shù)據(jù)包的輸出端口。第m位為多播標(biāo)志位,若該位為1則表示當(dāng)前地址支持多播功能,否則表示不支持。 [m+1,m+k] 區(qū)間段表示數(shù)據(jù)包優(yōu)先級信息,該區(qū)間段的數(shù)值越大相應(yīng)的優(yōu)先級越高。其中,k(k≥1) 為優(yōu)先級信號的比特?cái)?shù)。m+1+k位為保留位,用于路由器功能的擴(kuò)展。最高位為非法地址標(biāo)志位,用于指示非法的地址信息。若路由器的端口數(shù)目為4且數(shù)據(jù)包的路由信息為1AH,則該信息表示此數(shù)據(jù)包需進(jìn)行目的端口為端口1和3的多播操作。
圖5 路由表存儲格式
由于存在VC-VN映射態(tài),該狀態(tài)機(jī)僅對處于同一VN的輸出端口虛擬通道生成仲裁請求,仲裁連接模塊無需對屬于非相同虛擬網(wǎng)絡(luò)的仲裁請求進(jìn)行屏蔽,避免了仲裁連接模塊的二次判斷,簡化了仲裁連接模塊的結(jié)構(gòu),減少了硬件資源的消耗。
該狀態(tài)機(jī)在請求生成態(tài)可直接進(jìn)入仲裁等待態(tài)。在非多播模式下,只要有輸出端口生成仲裁響應(yīng)信號,即可進(jìn)入仲裁成功態(tài)。在多播功能中,僅當(dāng)所請求的全部輸出端口生成仲裁響應(yīng)信號,包頭識別狀態(tài)機(jī)才可以從仲裁等待態(tài)進(jìn)入仲裁成功態(tài)。狀態(tài)機(jī)進(jìn)入仲裁成功態(tài)后,進(jìn)行優(yōu)先級信號和仲裁請求信號的清除并轉(zhuǎn)入數(shù)據(jù)發(fā)送態(tài)。當(dāng)接受到數(shù)據(jù)包結(jié)束字時,狀態(tài)機(jī)回到空閑態(tài)以確保正常運(yùn)轉(zhuǎn)。
為避免由于設(shè)備故障而導(dǎo)致的狀態(tài)機(jī)長期處于仲裁等待狀態(tài)的情況,多模式包頭識別模塊中包含虛擬通道超時機(jī)制。當(dāng)仲裁等待狀態(tài)持續(xù)時間到達(dá)規(guī)定時長,則狀態(tài)機(jī)自動退出該狀態(tài)進(jìn)入異常態(tài)。狀態(tài)機(jī)進(jìn)入異常態(tài)后,進(jìn)行刪除數(shù)據(jù)包操作并向上位機(jī)記錄、反饋錯誤信息。
相比其它路由器[5-7]中類似功能的模塊,多模式包頭識別狀態(tài)機(jī)可使用較少的工作狀態(tài)支持路徑尋址、邏輯尋址、組自適應(yīng)路由功能和數(shù)據(jù)包多播功能。該狀態(tài)機(jī)僅對相同VN中的輸出端口虛擬通道生成仲裁請求,簡化了仲裁連接模塊的邏輯。VC超時機(jī)制的加入,增加了該狀態(tài)機(jī)的可靠性。
可重構(gòu)仲裁連接模塊的主體是一種可重構(gòu)混合機(jī)制仲裁器,每條輸出虛擬通道均包含該仲裁器。當(dāng)檢測到包頭識別模塊發(fā)送的仲裁請求信號后,該模塊結(jié)合輸入的優(yōu)先級信息發(fā)起仲裁操作,仲裁結(jié)果作為仲裁響應(yīng)信號返回包頭識別模塊。當(dāng)接收到來自包頭識別模塊的仲裁確認(rèn)信號后,該模塊將相應(yīng)的輸入端口VC和輸出端口VC進(jìn)行連接,直至緩沖區(qū)中的數(shù)據(jù)全部輸出。傳輸結(jié)束后,該模塊進(jìn)行輸入端口虛擬通道的優(yōu)先級輪轉(zhuǎn),為下次的仲裁操作做準(zhǔn)備。
若同一虛擬網(wǎng)絡(luò)中數(shù)據(jù)源較多且緊急程度各不相同,僅使用輪詢仲裁或雙優(yōu)先級仲裁是不能滿足應(yīng)用需求的。因此,該仲裁器采用基于多優(yōu)先級的輪詢仲裁方案。輪詢仲裁功能通過仲裁使能窗口實(shí)現(xiàn)[10],輪詢仲裁機(jī)制中編號較小的端口優(yōu)先獲得數(shù)據(jù)發(fā)送權(quán)。當(dāng)請求信號的輸入優(yōu)先級不同時,首先響應(yīng)高優(yōu)先級的仲裁請求,待高優(yōu)先級的數(shù)據(jù)傳輸結(jié)束后,再響應(yīng)優(yōu)先級較低的端口請求。多優(yōu)先級仲裁機(jī)制中共支持2k(k≥1) 個優(yōu)先級,實(shí)現(xiàn)上述功能的仲裁單元如圖6所示。requ_in為輸入的仲裁請求信號,enable為仲裁窗口使能信號,pri_in為kbit輸入端口虛擬通道的優(yōu)先級信號,pri_h為kbit輸出端口的優(yōu)先級信號。若pri_h的某一位為1且pri_in的相應(yīng)比特位為0,則該請求信號被屏蔽。當(dāng)且僅當(dāng)仲裁窗口使能信號和仲裁請求信號有效,pri_h的每bit位均與pri_in相應(yīng)比特位相同,請求輸出信號grant_out為有效狀態(tài)。當(dāng)高優(yōu)先級數(shù)據(jù)包發(fā)送完成,pri_h的值需要根據(jù)當(dāng)前最高優(yōu)先級進(jìn)行更新。若k=2, 則路由器中共存在4個優(yōu)先級:0、1、2與3,此時pri_h為2比特11。假設(shè)優(yōu)先級為2的端口進(jìn)入多優(yōu)先級仲裁單元且requ_in、enable均置位,由于pri_h的最低bit位與pri_in相應(yīng)比特位相異,此端口請求信號被屏蔽。當(dāng)具有最高優(yōu)先級3的相應(yīng)端口數(shù)據(jù)發(fā)送完畢后,路由器更新pri_h 為2比特10,優(yōu)先級為2的端口獲得仲裁響應(yīng)信號。
圖6 多優(yōu)先級仲裁單元
由于交叉矩陣是全相連的,每個仲裁器中均需包含 (m-1)mn2個多優(yōu)先級仲裁單元。若采用傳統(tǒng)的仲裁器,則整個路由器共包含 (m-1)m2n3個仲裁單元。當(dāng)端口數(shù)目較大或端口所包含的虛擬通道數(shù)目較多時,傳統(tǒng)仲裁器[5-7,10]的硬件資源占用率會顯著增加。為降低硬件資源的消耗,本設(shè)計(jì)根據(jù)SpaceFibre虛擬網(wǎng)絡(luò)的特點(diǎn),提出了一種可重構(gòu)仲裁器。根據(jù)VC-VN映射表,該仲裁器可改變?nèi)噙B交叉矩陣的內(nèi)部結(jié)構(gòu)和仲裁單元相互之間的連接關(guān)系,僅包含與本仲裁模塊處于相同虛擬網(wǎng)絡(luò)的m個仲裁單元。至多整個交叉開關(guān)矩陣僅需包含m2n個仲裁單元,該結(jié)構(gòu)顯著降低了仲裁單元的數(shù)目,有效簡化了仲裁模塊的組合邏輯。由于減少了仲裁單元的數(shù)目,仲裁器僅需判斷至多m個仲裁單元即可產(chǎn)生仲裁響應(yīng)信號,可有效降低最大仲裁延時。
圖7為可重構(gòu)仲裁器,圖中箭頭的左側(cè)為仲裁單元構(gòu)成的全相連交叉矩陣。假設(shè)端口1虛擬通道1對應(yīng)的仲裁模塊等待重構(gòu),當(dāng)路由器的VC-VN映射表配置完成后,可重構(gòu)仲裁器根據(jù)映射信息在全相連交叉矩陣中選擇與Port1的VC1處于同一VN的仲裁單元。
圖7 可重構(gòu)仲裁器
因此,相比傳統(tǒng)仲裁器[5-7,10],可重構(gòu)混合機(jī)制仲裁器中全相連交叉矩陣的仲裁單元數(shù)目由 (m-1)m2n3減少至m2n, 有效降低了資源占用率,提高了整個路由器的工作頻率。該模塊采用基于多優(yōu)先級的輪詢仲裁方式,該仲裁方式實(shí)現(xiàn)簡單、擴(kuò)展性強(qiáng)且應(yīng)用范圍較廣。
在Vivado 2017.4開發(fā)環(huán)境中,使用Verilog硬件描述語言對上述路由器進(jìn)行RTL級描述并建立仿真平臺以驗(yàn)證其功能的正確性。驗(yàn)證過程中路由器共支持4個優(yōu)先級,端口數(shù)目和虛擬通道數(shù)目均為4。所有端口的VC0均屬于VN0,VN1包含所有端口的VC1,任意端口的VC2均屬于VN2,所有端口的VC3虛擬網(wǎng)絡(luò)編號均為3。實(shí)驗(yàn)過程中的路由表信息見表1。
表1 虛擬網(wǎng)絡(luò)參數(shù)
圖8為VC-VN并行映射仿真結(jié)果,仿真過程中輸入端口0的VC1和VC3、輸入端口2虛擬通道1同時訪問目的端口1的映射表,輸入端口3的VC2訪問目的端口2映射表。圖8中組1、組2分別對應(yīng)端口0的兩虛擬通道,組3和組4依次對應(yīng)端口2和端口3。映射延時是指從映射使能信號en_ram生成到映射成功信號flag_find置位的時間。
圖8 VC-VN并行映射仿真結(jié)果
觀察組1和組3波形圖可知:不同輸入端口0和端口2同時請求訪問目的端口1的映射表時,若端口0的VC1獲得輸出端口1映射表的訪問權(quán),輸入端口2可共享輸出端口1的VC-VN映射表信息data_ram1,端口2僅需2個時鐘周期即可完成VC-VN映射操作,無需等待輸入端口0映射完畢后再獲得映射表訪問權(quán)。對比組1和組4可知,不同目的端口的輸入端口0和端口3可并行進(jìn)行VC-VN映射操作且互不影響。觀察組2可知,當(dāng)輸入端口的虛擬通道映射信息存儲在相應(yīng)映射表的末尾位置時,VC-VN并行映射方案的映射延時最大,最大映射周期為4個時鐘周期。因此,VC-VN并行映射方案可同時進(jìn)行多個VC-VN映射操作,有效降低各端口的VC-VN映射時間。
圖9為仲裁響應(yīng)仿真結(jié)果,仿真過程中輸入端口0的VC1、VC2和VC3數(shù)據(jù)包地址分別為25H、29H和02H,Port3的VC2數(shù)據(jù)包地址為21H。圖9中組1~組4與上述輸入端口的虛擬通道一一對應(yīng)。仲裁延時是指路由器從仲裁請求信號requ_arb生成到仲裁響應(yīng)信號grant_tx產(chǎn)生的時間間隔。觀察圖9中各組波形圖可知:在組自適應(yīng)尋址、多播、路徑尋址和邏輯尋址中,可重構(gòu)仲裁機(jī)制均可在3個時鐘周期內(nèi)完成仲裁響應(yīng)。相比傳統(tǒng)仲裁器[5-7,10],可重構(gòu)仲裁器縮短了2~6個時鐘周期,有效降低了仲裁延時。
圖9 仲裁響應(yīng)仿真結(jié)果
對該路由器的仿真包含以下測試項(xiàng)目:路徑尋址、邏輯尋址的單路數(shù)據(jù)包交換;路徑尋址、邏輯尋址多路地址不沖突的數(shù)據(jù)包交換;路徑尋址、邏輯尋址多路地址沖突的交換測試;帶優(yōu)先級的路徑尋址、邏輯尋址多路地址沖突的數(shù)據(jù)包交換測試;帶端口占用的、無端口占用的組自適應(yīng)路由測試;無端口占用的、帶端口占用的多播功能測試;邏輯地址錯誤測試;VC-VN映射錯誤測試;仲裁等待超時測試;廣播幀測試。由于篇幅限制,僅對帶優(yōu)先級的路徑尋址多路地址沖突的數(shù)據(jù)包交換測試和帶端口占用的多播功能測試的仿真結(jié)果進(jìn)行分析。
帶優(yōu)先級的路徑尋址多路地址沖突測試中,輸入端口0的VC3、輸入端口2的VC3和輸入端口3的VC3均有數(shù)據(jù)包達(dá)到且數(shù)據(jù)包首地址均指向端口1。端口0的優(yōu)先級為0,端口2和端口3的優(yōu)先級分別為2和3。圖10為該測試的功能仿真結(jié)果,仿真波形自上至下依次為端口0、2、3和輸出端口1的相應(yīng)虛擬通道緩沖區(qū)輸出數(shù)據(jù)。從波形圖中可以看出,Port1的虛擬通道3按照優(yōu)先級遞減的順序依次接收來自輸入端口3、2和1的數(shù)據(jù)包??梢姡撀酚善鲗?shí)現(xiàn)了多優(yōu)先級仲裁功能且在接收過程中完成了數(shù)據(jù)包的首地址刪除操作。
圖10 帶優(yōu)先級的路徑尋址多路地址沖突仿真結(jié)果
圖11為帶端口占用的多播測試的功能仿真結(jié)果。在該測試中,輸入端口0的VC3中到達(dá)的數(shù)據(jù)包向輸出端口1和輸出端口3進(jìn)行多播,輸入端口2的VC3數(shù)據(jù)包先于端口0的數(shù)據(jù)包到達(dá)輸出端口1。從仿真波形中可看出,輸入端口2數(shù)據(jù)包的首地址為邏輯地址且到達(dá)時間早于端口0,輸出端口1首先傳輸來自輸入端口2的數(shù)據(jù)包。輸入端口0的數(shù)據(jù)包在等待輸出端口1解除占用后,進(jìn)行輸出端口1和輸出端口3的多播操作。因此,該路由器實(shí)現(xiàn)了數(shù)據(jù)包的多播操作。
圖11 帶端口占用的多播功能仿真結(jié)果
在XILINX型號為XC7Z100FFG900-2的FPGA上進(jìn)行了實(shí)現(xiàn)并進(jìn)行布局布線后時序仿真。仿真結(jié)果表明,上述測試項(xiàng)的結(jié)果均正確,進(jìn)一步驗(yàn)證了本設(shè)計(jì)功能的正確性。與相同平臺的相同功能路由器設(shè)計(jì)方案[8]相比,本設(shè)計(jì)中的寄存器資源由1.7%下降至0.5%,查找表資源由5.9%降低至2.02%,最高時鐘頻率由205.3 MHz提升至240.96 MHz。
本文提出了一種功能完備的低延時可重構(gòu)SpaceFibre路由器設(shè)計(jì)方案,該方案通過VC-VN映射,提高了映射效率;該方案利用多模式包頭識別狀態(tài)機(jī)滿足了不同尋址方式的應(yīng)用需求;該方案采用可重構(gòu)混合機(jī)制仲裁器,簡化了硬件邏輯,兼顧了數(shù)據(jù)傳輸?shù)墓叫耘c優(yōu)先性。在型號為XC7Z100FFG900-2的FPGA上對該設(shè)計(jì)進(jìn)行了實(shí)現(xiàn),實(shí)驗(yàn)結(jié)果表明:該設(shè)計(jì)符合SpaceFibre協(xié)議標(biāo)準(zhǔn);相比具有相同功能和實(shí)現(xiàn)平臺的其它方案,該方案寄存器資源和查找表資源的占用率顯著下降,最大工作頻率有所提高,具有良好的高效性、可靠性和工程實(shí)用性。