基于Crossbar架構(gòu)的AFDX交換機(jī)數(shù)據(jù)總線結(jié)構(gòu)及數(shù)據(jù)交換方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及AFDX交換機(jī)數(shù)據(jù)總線和交換機(jī)內(nèi)部數(shù)據(jù)存儲(chǔ)轉(zhuǎn)發(fā)的方法,具體為基于Crossbar架構(gòu)的AFDX交換機(jī)數(shù)據(jù)總線結(jié)構(gòu)及數(shù)據(jù)交換方法。
【背景技術(shù)】
[0002]目前AFDX交換機(jī)廣泛使用共享存儲(chǔ)的交換方式來實(shí)現(xiàn)其數(shù)據(jù)幀的交換功能,數(shù)據(jù)總線是連接交換機(jī)端口和共享存儲(chǔ)器的重要部分。目前基于共享存儲(chǔ)的AFDX交換機(jī)中都只有一個(gè)共享存儲(chǔ)器,數(shù)據(jù)總線實(shí)現(xiàn)了共享存儲(chǔ)器和各個(gè)端口的連接,各個(gè)端口的數(shù)據(jù)幀均在這唯一的存儲(chǔ)器中進(jìn)行存儲(chǔ)或轉(zhuǎn)發(fā)。
[0003]—種基于Wishbone總線的AFDX交換機(jī)數(shù)據(jù)總線結(jié)構(gòu)(王斌文.航空全雙工以太網(wǎng)交換機(jī)若干關(guān)鍵技術(shù)研究與實(shí)現(xiàn)[D].西安:西安電子科技大學(xué),2008.)米用一主多從的方式,主機(jī)控制相應(yīng)的共享存儲(chǔ)器,從機(jī)控制各個(gè)端口的輸入輸出緩存,實(shí)現(xiàn)了多個(gè)端口與共享存儲(chǔ)器的連接通路。這種方案的主要缺陷是:在任一時(shí)刻只允許最多有一對(duì)主設(shè)備和從設(shè)備通過總線進(jìn)行通信,即同一時(shí)刻只能有一個(gè)端口的數(shù)據(jù)進(jìn)行存儲(chǔ)或轉(zhuǎn)發(fā),從而限制了交換機(jī)內(nèi)部數(shù)據(jù)存儲(chǔ)轉(zhuǎn)發(fā)的速率。
[0004]一種采用雙端口共享存儲(chǔ)器的AFDX交換機(jī)(中國(guó)專利CN201410268433),通過提高數(shù)據(jù)總線的位寬,采用雙端口存儲(chǔ)器實(shí)現(xiàn)讀寫操作,提高了數(shù)據(jù)存儲(chǔ)轉(zhuǎn)發(fā)的速率。這種方案的主要缺陷是:數(shù)據(jù)總線位寬太大(512位),數(shù)據(jù)總線控制信號(hào)太多,易造成后續(xù)布局布線的困難,同是也會(huì)影響系統(tǒng)整體可靠性。
[0005]一種具有時(shí)空分離特性的AFDX網(wǎng)絡(luò)交換機(jī)(中國(guó)專利CN201310037668)提出對(duì)交換機(jī)的每一個(gè)輸出端口配一塊內(nèi)存和一個(gè)子調(diào)度器,將每個(gè)輸出端口的數(shù)據(jù)幀由對(duì)應(yīng)于該輸出端口的子調(diào)度器進(jìn)行調(diào)度,然后存放于對(duì)應(yīng)于該輸出端口的內(nèi)存中,最后從該輸出端口發(fā)送出去。這種方案的主要缺陷是:硬件消耗較大,對(duì)于N個(gè)端口的交換機(jī)需要N塊內(nèi)存和2N個(gè)DMA ;對(duì)傳統(tǒng)調(diào)度算法進(jìn)行了改動(dòng),因此數(shù)據(jù)總線結(jié)構(gòu)較為復(fù)雜。
[0006]在現(xiàn)有的技術(shù)中,基于共享存儲(chǔ)的設(shè)計(jì)方案結(jié)構(gòu)方便,硬件成本低且硬件利用率高,所以其技術(shù)發(fā)展十分成熟?;诠蚕泶鎯?chǔ)方式的AFDX交換機(jī)中,在不改變調(diào)度算法的情況下,通過改進(jìn)數(shù)據(jù)總線結(jié)構(gòu)來提高交換機(jī)數(shù)據(jù)存儲(chǔ)轉(zhuǎn)發(fā)速率的方案,考慮到成本和工程實(shí)用性,還是有一定缺陷,且可實(shí)施性較差。
【發(fā)明內(nèi)容】
[0007]針對(duì)現(xiàn)有技術(shù)中存在的問題,本發(fā)明提供一種針對(duì)共享存儲(chǔ)方式的AFDX交換機(jī),提高了交換機(jī)內(nèi)部數(shù)據(jù)存儲(chǔ)轉(zhuǎn)發(fā)的速率,減小了數(shù)據(jù)幀通過交換機(jī)的時(shí)間,保證了 AFDX交換機(jī)的服務(wù)質(zhì)量的基于Crossbar架構(gòu)的AFDX交換機(jī)數(shù)據(jù)總線結(jié)構(gòu)及數(shù)據(jù)交換方法。
[0008]本發(fā)明是通過以下技術(shù)方案來實(shí)現(xiàn):
[0009]本發(fā)明基于Crossbar架構(gòu)的AFDX交換機(jī)數(shù)據(jù)總線結(jié)構(gòu),包括與交換機(jī)端口數(shù)量相等的總線從機(jī)模塊,一個(gè)總線互連模塊,數(shù)量相等的總線主機(jī)模塊,存儲(chǔ)器控制模塊和存儲(chǔ)器模塊,以及一個(gè)調(diào)度選擇模塊;總線主機(jī)模塊的數(shù)量不多于總線從機(jī)模塊的數(shù)量;
[0010]每個(gè)總線主機(jī)模塊通過總線互連模塊采用Crossbar架構(gòu)與每個(gè)總線從機(jī)模塊互連;每個(gè)總線主機(jī)模塊分別通過存儲(chǔ)器控制模塊連接對(duì)應(yīng)的存儲(chǔ)器模塊;每個(gè)總線主機(jī)模塊均通過調(diào)度選擇模塊連接交換機(jī)調(diào)度結(jié)果FIFO。
[0011]優(yōu)選的,調(diào)度選擇模塊包括依次連接在交換機(jī)調(diào)度結(jié)果FIFO上的地址判別模塊和指令發(fā)送模塊;
[0012]地址判別模塊用于從交換機(jī)調(diào)度結(jié)果FIFO中提取調(diào)度結(jié)果,得到要進(jìn)行交換的端口和存儲(chǔ)器模塊;
[0013]指令發(fā)送模塊用于將得到的調(diào)度結(jié)果發(fā)送給對(duì)應(yīng)端口的總線主機(jī)模塊3。
[0014]優(yōu)選的,交換機(jī)端口數(shù)為16個(gè),總線主機(jī)模塊的數(shù)量為4個(gè);存儲(chǔ)器模塊內(nèi)的存儲(chǔ)空間分為若干個(gè)頁,每頁容量為2KBytes。
[0015]本發(fā)明基于Crossbar架構(gòu)的AFDX交換機(jī)數(shù)據(jù)總線結(jié)構(gòu)的數(shù)據(jù)交換方法,采用本發(fā)明所述的數(shù)據(jù)總線結(jié)構(gòu),包括如下步驟,
[0016]步驟一,調(diào)度選擇模塊根據(jù)交換機(jī)調(diào)度結(jié)果FIFO中的信息,讀取AFDX交換機(jī)產(chǎn)生的調(diào)度結(jié)果,判斷出要進(jìn)行交換的端口和存儲(chǔ)器模塊,并將包含存儲(chǔ)器地址信號(hào)的調(diào)度結(jié)果發(fā)送給對(duì)應(yīng)該存儲(chǔ)器模塊的總線主機(jī)模塊;
[0017]步驟二,完成發(fā)送后調(diào)度選擇模塊判斷下一個(gè)調(diào)度結(jié)果;若當(dāng)前要進(jìn)行交換的端口號(hào)和存儲(chǔ)器模塊與前一次的調(diào)度結(jié)果均不相同,且相應(yīng)的主機(jī)模塊空閑,則直接將當(dāng)前調(diào)度結(jié)果發(fā)送給相應(yīng)的總線主機(jī)模塊,然后重復(fù)步驟二;否則,等待相應(yīng)的總線主機(jī)模塊空閑,再對(duì)調(diào)度結(jié)果進(jìn)行發(fā)送處理;
[0018]步驟三,收到調(diào)度結(jié)果的總線主機(jī)模塊通過存儲(chǔ)器控制模塊完成對(duì)存儲(chǔ)器模塊的控制訪問,完成數(shù)據(jù)的存儲(chǔ)或轉(zhuǎn)發(fā);在完成一次操作后會(huì)給調(diào)度選擇模塊一個(gè)反饋信號(hào),標(biāo)志其狀態(tài)為空閑。
[0019]優(yōu)選的,除第一個(gè)總線主機(jī)模塊外,剩余總線主機(jī)模塊通過存儲(chǔ)器控制模塊完成對(duì)存儲(chǔ)器模塊的控制訪問時(shí),按如下公式轉(zhuǎn)換接收到的存儲(chǔ)器地址信息,
[0020]存儲(chǔ)器模塊的新地址=存儲(chǔ)器模塊的原始地址_*存儲(chǔ)器模塊的最大地址;
[0021]其中,m為存儲(chǔ)器模塊對(duì)應(yīng)總線主機(jī)模塊的編號(hào),存儲(chǔ)器模塊的原始地址為調(diào)度結(jié)果FIFO中的存儲(chǔ)起始地址。
[0022]優(yōu)選的,交換機(jī)調(diào)度結(jié)果FIFO中包括讀操作信號(hào)、寫操作信號(hào)、端口號(hào)、緩存號(hào)、幀長(zhǎng)以及存儲(chǔ)起始地址信號(hào)。
[0023]與現(xiàn)有技術(shù)相比,本發(fā)明具有以下有益的技術(shù)效果:
[0024]本發(fā)明在不改變其調(diào)度算法的情況下,采用Crossbar架構(gòu),配合對(duì)原有整體存儲(chǔ)器的分離并與總線主機(jī)模塊的一一對(duì)應(yīng),實(shí)現(xiàn)每一個(gè)總線主機(jī)模塊可以訪問到任意的總線從機(jī)模塊,即每個(gè)主機(jī)模塊均可以與每個(gè)交換機(jī)端口構(gòu)成數(shù)據(jù)通路;總線從機(jī)模塊與每個(gè)端口的接收、發(fā)送緩存相連,其操作均由總線主機(jī)模塊發(fā)起,完成對(duì)緩存的讀或?qū)?;存?chǔ)器模塊的數(shù)量越多,存儲(chǔ)轉(zhuǎn)發(fā)速率會(huì)越高,且在最理想的情況下,最大加速比S = M,從而能夠顯著提高了 AFDX交換機(jī)內(nèi)部數(shù)據(jù)存儲(chǔ)轉(zhuǎn)發(fā)的速率;能夠應(yīng)用于基于共享存儲(chǔ)的AFDX交換機(jī)內(nèi)部,實(shí)現(xiàn)交換機(jī)端口和共享存儲(chǔ)器的多條數(shù)據(jù)通路,從而實(shí)現(xiàn)多個(gè)端口數(shù)據(jù)的并行傳輸。
[0025]進(jìn)一步的,由于本發(fā)明中調(diào)度選擇模塊對(duì)調(diào)度結(jié)果進(jìn)行了分析,通過主動(dòng)選擇機(jī)制,使得在采用的Crossbar架構(gòu)實(shí)現(xiàn)交換時(shí),不再需要仲裁模塊,只需實(shí)現(xiàn)主從機(jī)之間的通路即可,極大的降低了硬件消耗,節(jié)省了成本。
[0026]進(jìn)一步的,通過在對(duì)應(yīng)總線主機(jī)模塊中實(shí)現(xiàn)對(duì)相應(yīng)地址的轉(zhuǎn)換,從而不影響原有系統(tǒng)的算法結(jié)構(gòu),并且提高了數(shù)據(jù)讀取和轉(zhuǎn)存速度,結(jié)構(gòu)簡(jiǎn)單,操作方便。
【附圖說明】
[0027]圖1為本發(fā)明實(shí)例中所述的數(shù)據(jù)總線結(jié)構(gòu)的結(jié)構(gòu)框圖。
[0028]圖2為本發(fā)明所述的Crossbar架構(gòu)的交換結(jié)構(gòu)邏輯框圖。
[0029]圖中:I為總線從機(jī)模塊,2為總線互連模塊,3為總線主機(jī)模塊,4為存儲(chǔ)器控制模塊,5為存儲(chǔ)器模塊,6為調(diào)度選擇模塊,6A為地址判別模塊,6B為指令發(fā)送模塊。
【具體實(shí)施方式】
[0030]下面結(jié)合具體的實(shí)施例對(duì)本發(fā)明做進(jìn)一步的詳細(xì)說明,所述是對(duì)本發(fā)明的解釋而不是限定。
[0031]本發(fā)明基于Crossbar架構(gòu)的AFDX交換機(jī)數(shù)據(jù)總線結(jié)構(gòu),在不改變其調(diào)度算法的情況下,考慮到硬件成本和設(shè)計(jì)復(fù)雜度,基于Crossbar和分塊存儲(chǔ)技術(shù)對(duì)數(shù)據(jù)總線結(jié)構(gòu)進(jìn)行了改進(jìn)。如圖1所示,包括以下模塊個(gè)總線主機(jī)模塊(Bus Master),N個(gè)總線從機(jī)模塊(Bus Slave,其數(shù)量與交換機(jī)端口數(shù)相等),一個(gè)總線互連模塊(Bus Interconnect1n),M個(gè)存儲(chǔ)器控制模塊(Memory Controller), M個(gè)存儲(chǔ)器模塊(Memory)以及一個(gè)調(diào)度選擇模塊(Scheduler)。
[0032]其中,總線從機(jī)模塊I數(shù)量為N,與交換機(jī)端口數(shù)相同,與總線互連模塊和端口發(fā)送、接收緩存相連??偩€互連模塊2數(shù)量為1,內(nèi)部采用Crossbar交換結(jié)構(gòu)連接各個(gè)總線從機(jī)模塊I和總線主機(jī)模塊3。總線主機(jī)模塊3數(shù)量為M,與存儲(chǔ)器控制模,4、總線互連模塊2和調(diào)度選擇模塊6相連。存儲(chǔ)器控制模塊4數(shù)量為M,與主機(jī)模塊和存儲(chǔ)器模塊相連。存儲(chǔ)器模塊5數(shù)量為M,由存儲(chǔ)器控制模,4對(duì)其進(jìn)行控制。調(diào)度選擇模塊6數(shù)量為I,與調(diào)度結(jié)果FIFO和各個(gè)總線主機(jī)模塊3相連;其內(nèi)部的地址判別模塊6A輸出端分別連接各個(gè)總線主機(jī)模塊3,指令發(fā)送模塊6B的輸入端調(diào)度結(jié)果FIFO連接。虛線內(nèi)部結(jié)構(gòu)為本發(fā)明所提出的數(shù)據(jù)總線結(jié)構(gòu),虛線外部為與其連接的交換機(jī)內(nèi)部的其它模塊,其中Buffer指交換機(jī)端口的發(fā)送、接收緩存,F(xiàn)IFO指交換機(jī)內(nèi)調(diào)度模塊產(chǎn)生的調(diào)度結(jié)果FIFO。
[0033]為了更準(zhǔn)確、更清楚地描述本總線結(jié)構(gòu)和技術(shù)構(gòu)思,以交換機(jī)端口數(shù)N = 16,總線主機(jī)模塊數(shù)M = 4為例來說明。為了實(shí)現(xiàn)同一時(shí)間有多個(gè)端口的數(shù)據(jù)可以與共享存儲(chǔ)器進(jìn)行交換,采用4個(gè)總線主機(jī)模塊3連接在同一個(gè)總線互連模塊2上,16個(gè)總線從機(jī)模塊I也連接在該模塊上。每個(gè)總線主機(jī)模塊3與總線從機(jī)模塊I采用Crossbar的方式進(jìn)行互連。在這樣的結(jié)構(gòu)中,如圖2所示,每一個(gè)總線主機(jī)模塊3可以訪問到任意的總線從機(jī)模塊I,即每個(gè)總線主機(jī)模塊3均可以與每個(gè)交換機(jī)端口構(gòu)成數(shù)據(jù)通路??偩€從機(jī)模塊I與每個(gè)端口的接收、發(fā)送緩存相連,其操作均由總線主機(jī)模塊3發(fā)起,完成對(duì)緩存的讀或?qū)憽?br>[0034]采用分塊存儲(chǔ)的思想對(duì)共享存儲(chǔ)器進(jìn)行分塊。存儲(chǔ)器分塊是指用若干塊較小的存儲(chǔ)器來代替之前的一塊較大的存儲(chǔ)器,我們稱分塊后的存儲(chǔ)器為子存儲(chǔ)器,即分別與總線主機(jī)模塊3對(duì)應(yīng)的存儲(chǔ)器模塊5。存儲(chǔ)器分塊的數(shù)量需與總線主機(jī)模塊3數(shù)量相同。在16端口的交換機(jī)中,根據(jù)ARINC 664協(xié)議規(guī)定可得到16M的存儲(chǔ)器即可滿足要求,因此采用4塊4M的存儲(chǔ)器模塊5分別與4個(gè)總線主機(jī)模塊3相連,由總線主機(jī)模塊3通過存儲(chǔ)器控制模塊4完成對(duì)存儲(chǔ)器模塊5的控制。將每個(gè)存儲(chǔ)器空間分為若干個(gè)頁,每頁容量為2KBytes,足夠存儲(chǔ)一個(gè)AFDX最長(zhǎng)幀(最長(zhǎng)幀為1518Bytes),這樣每次訪問存儲(chǔ)器時(shí),只要知道頁的起始地址和幀長(zhǎng)度就可以進(jìn)行讀出或?qū)懭氩僮髁恕?br>[0035]調(diào)度選擇模塊6分別與4個(gè)總線主機(jī)模塊3和交換機(jī)的調(diào)度結(jié)果FIFO相連。調(diào)度結(jié)果FIFO中一般包含的信息有:讀操作、寫操