一種基于共享存儲的以太網(wǎng)終端發(fā)送實現(xiàn)方法及終端裝置制造方法
【專利摘要】本發(fā)明公開了一種基于共享存儲的以太網(wǎng)終端發(fā)送實現(xiàn)方法,包括將待發(fā)送數(shù)據(jù)寫入共享存儲區(qū),將存儲的地址及數(shù)據(jù)長度寫入寫指針緩沖區(qū)、通過查詢寫指針緩沖區(qū)的內(nèi)容來實現(xiàn)終端數(shù)據(jù)的發(fā)送。本發(fā)明根據(jù)協(xié)議規(guī)定的發(fā)送數(shù)據(jù)包的過程,設(shè)計了基于共享存儲的終端發(fā)送實現(xiàn)方法。在保證ARINC664協(xié)議規(guī)定的終端發(fā)送的性能的同時,通過存儲資源的共享,可以大大縮小存儲空間的利用,減少設(shè)計面積,降低功耗,節(jié)省資源。
【專利說明】—種基于共享存儲的以太網(wǎng)終端發(fā)送實現(xiàn)方法及終端裝置【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及以太網(wǎng)終端設(shè)備發(fā)送的方法,特別涉及一種基于共享存儲的以太網(wǎng)終端發(fā)送實現(xiàn)方法。
【背景技術(shù)】
[0002]AFDXCAvionics Full Duplex Switched Ethernet)網(wǎng)絡(luò)作為新興的航空電子總線標(biāo)準(zhǔn),以太網(wǎng)終端設(shè)備在航電系統(tǒng)中的已被廣泛應(yīng)用,并應(yīng)用于交換機中以維護交換機。如圖1所示,ARINC664協(xié)議交換引擎的核心是一個N*N的交換結(jié)構(gòu),它可以支持N個10M/100M輸入端口和N個10M/100M輸出端口。數(shù)據(jù)可以從任意輸入端口進入交換引擎,經(jīng)過交換引擎轉(zhuǎn)發(fā)后從任意端口輸出。終端用來維護和監(jiān)測端口數(shù)據(jù),如加載交換機配置表,上報交換機狀態(tài)信息等。如圖2所示ARINC664的終端發(fā)送流程。終端發(fā)送端如果支持n條虛擬鏈路(VL),且每條VL隊列由最多4條子虛擬鏈路(SubVL)隊列組成,那么終端需要有4*n個發(fā)送隊列和I個發(fā)送隊列。如果按照常規(guī)的發(fā)送機制進行設(shè)計,每條SubVL需要用一個隊列緩沖區(qū)來存儲發(fā)送隊列,那么上述發(fā)送流程中共需要4*n+l個隊列緩沖區(qū),對存儲器的資源要求非常大,因此不能支持太多的發(fā)送VL。
【發(fā)明內(nèi)容】
[0003]本發(fā)明的發(fā)明目的在于提供一種基于共享存儲的以太網(wǎng)終端發(fā)送實現(xiàn)方法,在保證ARINC664協(xié)議規(guī)定的終端發(fā)送的性能的同時,通過存儲資源的共享,可以大大縮小存儲空間的利用,減少設(shè)計面積,降低功耗,節(jié)省資源。
[0004]本發(fā)明的發(fā)明目的通過以下技術(shù)方案實現(xiàn):
[0005]一種基于共享存儲的以太網(wǎng)終端發(fā)送實現(xiàn)方法,包括以下步驟:
[0006]A、ES CPU將各SubVL的發(fā)送的包打包后寫入共享存儲區(qū)中對應(yīng)的SubVL的幀緩沖區(qū),并將該幀的起始地址和長度寫入緩沖區(qū)寫指針RING BUFFER的對應(yīng)SubVL的寫指針緩存區(qū),同時計數(shù)單元中對應(yīng)的VL緩沖幀數(shù)的計數(shù)同時累加I ;
[0007]B、輪詢模塊先依次輪詢緩沖區(qū)寫指針RING BUFFER的計數(shù)單元,查看各寫指針緩存區(qū)是否有數(shù)據(jù)要發(fā)送,如果有數(shù)據(jù),查詢發(fā)送時間和subVL序號寄存器組中該VL上一幀發(fā)送的時間和幀間隔設(shè)置以及當(dāng)前的定時器地時間來判斷是否滿足幀間隔,如果不滿足則跳到下一條VL ;如果滿足幀間隔,則從上一次發(fā)送的SubVL序號開始輪詢判斷該VL中哪一條SubVL有數(shù)據(jù)發(fā)送;
[0008]C、輪詢模塊將有數(shù)據(jù)發(fā)送的SubVL序號和當(dāng)前的定時器時間紀(jì)錄在對應(yīng)的發(fā)送時間和SubVL序號寄存器中,并讀出該SubVL的寫指針緩存區(qū)中的數(shù)據(jù)寫入發(fā)送指針FIFO中,讀的同時將計數(shù)單元中對應(yīng)的VL緩沖幀數(shù)的計數(shù)同時減I ;
[0009]D、發(fā)送模塊讀出發(fā)送指針FIFO的數(shù)據(jù),根據(jù)起始地址和長度將共享存儲區(qū)中對應(yīng)的數(shù)據(jù)幀發(fā)送出去。
[0010]依據(jù)上述特征,所述查看各寫指針緩存區(qū)是否有數(shù)據(jù)要發(fā)送具體為:如果計數(shù)單元中對應(yīng)的VL緩沖巾貞數(shù)的計數(shù)為0,表示無待發(fā)數(shù)據(jù);計數(shù)大于0小于該VL對應(yīng)的subVL的個數(shù),表示有數(shù)據(jù)要發(fā);計數(shù)等于該VL對應(yīng)的subVL的個數(shù)時表示對應(yīng)的VL緩沖巾貞數(shù)達到緩沖的最大值,則通知ES CPU終止向該VL的發(fā)送數(shù)據(jù)。
[0011]本發(fā)明的另一目的在于提供一種基于共享存儲的以太網(wǎng)終端發(fā)送實現(xiàn)方法的終端裝置,包含共享存儲區(qū)、緩沖區(qū)寫指針RING BUFFER、發(fā)送時間和subVL序號寄存器組、輪詢模塊、發(fā)送指針FIFO、發(fā)送模塊:
[0012]所述共享存儲區(qū)用于存儲發(fā)送隊列,提供一條以上的VL緩沖區(qū),每條VL緩存區(qū)包含一條以上的SubVL幀緩沖區(qū);
[0013]所述緩沖區(qū)寫指針RING BUFFER包含一個以上的寫指針緩沖區(qū)和計數(shù)單元,每個寫指針緩沖區(qū)對應(yīng)一條SubVL,記錄該SubVL的存儲發(fā)送隊列的起始位置及長度,計數(shù)單元分別對各個VL緩沖幀數(shù)的個數(shù)進行統(tǒng)計;
[0014]所述發(fā)送時間和SubVL序號寄存器組用于在輪詢模塊向發(fā)送指針FIFO寫入SubVL的寫指針緩沖區(qū)的數(shù)據(jù)時記錄該SubVL序號和當(dāng)前的定時器時間紀(jì)錄;
[0015]所述輪詢模塊用于先依次輪詢計數(shù)單元查看各VL是否有數(shù)據(jù)要發(fā)送,如果有數(shù)據(jù),查詢發(fā)送時間和subVL序號寄存器組中該VL上一幀發(fā)送的時間和幀間隔設(shè)置以及當(dāng)前的定時器地時間來判斷是否滿足幀間隔,如果滿足幀間隔,則從上一次發(fā)送的SubVL序號開始輪詢判斷該VL中哪一條SubVL有數(shù)據(jù)發(fā)送,將有數(shù)據(jù)發(fā)送的SubVL序號和當(dāng)前的定時器時間紀(jì)錄送至發(fā)送時間和subVL序號寄存器組,以及讀出SubVL的寫指針緩沖區(qū)的數(shù)據(jù)寫入發(fā)送指針FIFO中;
[0016]所述發(fā)送指針FIFO按照先入先出的規(guī)則將寫指針緩沖區(qū)中的數(shù)據(jù)進行排隊;
[0017]所述發(fā)送模塊依次讀取發(fā)送指針FIFO中的數(shù)據(jù),并根據(jù)該數(shù)據(jù)讀取共享存儲器中數(shù)據(jù)進行發(fā)送。
[0018]與現(xiàn)有技術(shù)相比,本發(fā)明設(shè)計了一種基于共享存儲的終端發(fā)送機制,在保證滿足ARINC664協(xié)議要求的前提下,該設(shè)計大大縮小存儲空間的利用,減少設(shè)計得面積,降低功耗,節(jié)省資源。同時該專利的應(yīng)用獨立于硬件平臺,適用范圍廣,具有顯著的市場前景和經(jīng)濟效益。
【專利附圖】
【附圖說明】
[0019]圖1是ARINC664交換引擎示意圖
[0020]圖2是傳統(tǒng)的基于共享存儲的終端發(fā)送機制的結(jié)構(gòu)
[0021]圖3是本發(fā)明基于共享存儲的終端發(fā)送機制的結(jié)構(gòu);
[0022]圖4是緩沖區(qū)寫指針RING BUFFER的結(jié)構(gòu)框圖。
[0023]【專利附圖】
【附圖說明】
[0024]下面結(jié)合附圖對本發(fā)明作一步的詳細描述。
[0025]如圖3所述首先ES CPU將各SubVL的發(fā)送的包打包后寫入對應(yīng)的SubVL的幀緩沖區(qū),并將該幀的起始地址和長度寫入緩沖區(qū)寫指針RING BUFFER的對應(yīng)SubVL的寫指針緩沖區(qū),同時將計數(shù)單元中對應(yīng)的VL緩沖幀數(shù)的計數(shù)累加I。輪詢模塊先依次輪詢計數(shù)單元查看各VL是否有數(shù)據(jù)發(fā)送,如果有數(shù)據(jù),則根據(jù)該VL上一幀發(fā)送的時間和幀間隔(BAG)設(shè)置以及當(dāng)前的定時器地時間來判斷是否滿足BAG,如果不滿足則跳到下一條VL。如果滿足BAG,則從上一次發(fā)送的SubVL序號開始輪詢判斷看那一條SubVL有數(shù)據(jù)發(fā)送。將有數(shù)據(jù)發(fā)送的SubVL序號和當(dāng)前的定時器時間紀(jì)錄在對應(yīng)的發(fā)送時間和SubVL序號寄存器中,并讀出該SubVL的寫指針緩沖的數(shù)據(jù)寫入發(fā)送指針FIFO中,讀的同時對應(yīng)計數(shù)單元的計數(shù)同時減I。發(fā)送模塊讀出發(fā)送指針FIFO中的數(shù)據(jù),根據(jù)起始地址和長度將共享存儲區(qū)中對應(yīng)的數(shù)據(jù)幀發(fā)送出去。
[0026]其中,寫指針緩沖區(qū)的環(huán)形緩沖區(qū)的結(jié)構(gòu)如圖4所示,每一條SubVL擁有一個寫指針緩沖區(qū),當(dāng)寫入數(shù)據(jù)到緩沖區(qū)寫指針RING BUFFER的對應(yīng)SUBVL的寫指針緩沖區(qū),那么計數(shù)單元對應(yīng)VL的緩沖幀數(shù)的計數(shù)同時累加I。讀出該SubVL的寫指針緩沖區(qū)的數(shù)據(jù)時,讀的同時計數(shù)單元對應(yīng)的VL緩沖巾貞數(shù)的計數(shù)同時減I。當(dāng)計數(shù)單元對應(yīng)的VL緩沖巾貞數(shù)的計數(shù)為0時,表示VL緩沖區(qū)中沒有發(fā)送包,計數(shù)達到緩沖的最大值時,通知ES.CPU終止向該VL發(fā)送發(fā)送包。
[0027]該方法在幀發(fā)送過程中可以實現(xiàn)背靠背發(fā)送。
【權(quán)利要求】
1.一種基于共享存儲的以太網(wǎng)終端發(fā)送實現(xiàn)方法,包括以下步驟: A、ESCPU將各SubVL的發(fā)送的包打包后寫入共享存儲區(qū)中對應(yīng)的SubVL的幀緩沖區(qū),并將該幀的起始地址和長度寫入緩沖區(qū)寫指針RING BUFFER的對應(yīng)SubVL的寫指針緩存區(qū),同時計數(shù)單元中對應(yīng)的VL緩沖幀數(shù)的計數(shù)同時累加I ; B、輪詢模塊先依次輪詢緩沖區(qū)寫指針RINGBUFFER的計數(shù)單元,查看各寫指針緩存區(qū)是否有數(shù)據(jù)要發(fā)送,如果有數(shù)據(jù),查詢發(fā)送時間和subVL序號寄存器組中該VL上一幀發(fā)送的時間和幀間隔設(shè)置以及當(dāng)前的定時器地時間來判斷是否滿足幀間隔,如果不滿足則跳到下一條VL ;如果滿足幀間隔,則從上一次發(fā)送的SubVL序號開始輪詢判斷該VL中哪一條SubVL有數(shù)據(jù)發(fā)送; C、輪詢模塊將查詢到的Su b V L序號和當(dāng)前的定時器時間紀(jì)錄在對應(yīng)的發(fā)送時間和SubVL序號寄存器中,并讀出該SubVL的寫指針緩存區(qū)中的數(shù)據(jù)寫入發(fā)送指針FIFO中,讀的同時將計數(shù)單元中對應(yīng)的VL緩沖幀數(shù)的計數(shù)同時減I ; D、發(fā)送模塊讀出發(fā)送指針FIFO的數(shù)據(jù),根據(jù)起始地址和長度將共享存儲區(qū)中對應(yīng)的數(shù)據(jù)幀發(fā)送出去。
2.根據(jù)權(quán)利要求1所述的一種基于共享存儲的以太網(wǎng)終端發(fā)送實現(xiàn)方法,其特征在于所述查看各寫指針緩存區(qū)是否有數(shù)據(jù)要發(fā)送具體為:如果計數(shù)單元中對應(yīng)的VL緩沖幀數(shù)的計數(shù)為0,表示無待發(fā)數(shù)據(jù);計數(shù)大于0小于該VL對應(yīng)的SUbVL的個數(shù),表示有數(shù)據(jù)要發(fā);計數(shù)等于該VL對應(yīng)的subVL的個數(shù)時表示對應(yīng)的VL緩沖幀數(shù)達到緩沖的最大值,則通知ES CPU終止向該VL的發(fā)送數(shù)據(jù)。
3.根據(jù)權(quán)利要求1所述一種基于共享存儲的以太網(wǎng)終端發(fā)送實現(xiàn)方法的終端裝置,包含共享存儲區(qū)、緩沖區(qū)寫指針RING BUFFER、發(fā)送時間和subVL序號寄存器組、輪詢模塊、發(fā)送指針FIFO、發(fā)送模塊,其特征在于: 所述共享存儲區(qū)用于存儲發(fā)送隊列,提供一條以上的VL緩沖區(qū),每條VL緩存區(qū)包含一條以上的SubVL幀緩沖區(qū); 所述緩沖區(qū)寫指針RING BUFFER包含一個以上的寫指針緩沖區(qū)和計數(shù)單元,每個寫指針緩沖區(qū)對應(yīng)一條SubVL,記錄該SubVL的存儲發(fā)送隊列的起始位置及長度,計數(shù)單元分別對各個VL緩沖幀數(shù)的個數(shù)進行統(tǒng)計; 所述發(fā)送時間和SubVL序號寄存器組用于在輪詢模塊向發(fā)送指針FIFO寫入SubVL的寫指針緩沖區(qū)的數(shù)據(jù)時記錄該SubVL序號和當(dāng)前的定時器時間紀(jì)錄; 所述輪詢模塊用于先依次輪詢計數(shù)單元查看各VL是否有數(shù)據(jù)要發(fā)送,如果有數(shù)據(jù),查詢發(fā)送時間和subVL序號寄存器組中該VL上一幀發(fā)送的時間和幀間隔設(shè)置以及當(dāng)前的定時器地時間來判斷是否滿足幀間隔,如果滿足幀間隔,則從上一次發(fā)送的SubVL序號開始輪詢判斷該VL中哪一條SubVL有數(shù)據(jù)發(fā)送,將查詢到的SubVL序號和當(dāng)前的定時器時間紀(jì)錄送至發(fā)送時間和subVL序號寄存器組,以及讀出SubVL的寫指針緩沖區(qū)的數(shù)據(jù)寫入發(fā)送指針FIFO中; 所述發(fā)送指針FIFO按照先入先出的規(guī)則將寫指針緩沖區(qū)中的數(shù)據(jù)進行排隊; 所述發(fā)送模塊依次讀取發(fā)送指針FIFO中的數(shù)據(jù),并根據(jù)該數(shù)據(jù)讀取共享存儲器中數(shù)據(jù)進行發(fā)送。
4.根據(jù)權(quán)利要求2所述的終端裝置,其特征在于所述VL緩存區(qū)為I至32條,每條VL緩存區(qū)的大小為32KB,所述Sub`VL緩存區(qū)為I至4條。
【文檔編號】G06F5/10GK103617132SQ201310630065
【公開日】2014年3月5日 申請日期:2013年11月29日 優(yōu)先權(quán)日:2013年11月29日
【發(fā)明者】楊愛良, 李修杰 申請人:中國航空無線電電子研究所