本發(fā)明屬于時間觸發(fā)以太網(wǎng)通信領(lǐng)域,具體涉及一種面向時間觸發(fā)通信的動態(tài)鎖定時槽方法。
背景技術(shù):
在時間觸發(fā)以太網(wǎng)(簡稱tte)中,傳輸?shù)膸愋桶╰t幀,rc幀和be幀。由于tt幀在整個網(wǎng)絡(luò)傳輸中具有最高優(yōu)先級,而rc幀和be幀是在tt數(shù)據(jù)傳輸完成的基礎(chǔ)上,利用網(wǎng)絡(luò)剩余的帶寬進行傳輸。故為了保證tt幀的優(yōu)先傳輸,發(fā)送端在進行時槽分配時采用無論是否存在tt通信皆預(yù)留tt時槽,即時槽鎖定的方法。
該方法是在tt幀時槽到來前的一段時間信道鎖定,該時間段不可以發(fā)送幀,等到tt幀時槽到達(dá)時有tt幀則發(fā)送tt幀,沒有則按照優(yōu)先級先后發(fā)送rc幀或者be幀。
這種機制使得無論是否有tt幀需要傳輸,靜態(tài)時槽鎖定時間均不能發(fā)幀,這樣會造成帶寬浪費。而底層在tt幀時槽到達(dá)前夕需要監(jiān)控信道以判斷是否有tt幀需要傳送,根據(jù)信道情況與能夠傳輸?shù)膸愋秃烷L度來判斷適宜傳輸?shù)膸_@樣的仲裁機制也相對復(fù)雜。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的在于克服上述不足,提供一種面向時間觸發(fā)通信的動態(tài)鎖定時槽方法,能夠在不改變幀長的前提下,按照需求動態(tài)分配tt時槽,在tt幀負(fù)載較低的情況下能夠有效提高網(wǎng)絡(luò)帶寬利用率。
為了達(dá)到上述目的,本發(fā)明包括以下步驟:
步驟一,在發(fā)送端,軟件配置tt幀寄存器時,配置下一個tt幀時槽是否有tt幀需要傳輸?shù)男畔ⅲ?/p>
步驟二,tt幀組幀時,需要傳輸?shù)男畔⑻畛湓谀康牡刂返膶?yīng)字節(jié)內(nèi),同時,該信息會被存儲在發(fā)送調(diào)度模塊的本地fifo中;
步驟三,當(dāng)tt幀時槽到來時,軟件會將本幀發(fā)送,同時,讀取發(fā)送調(diào)度模塊存儲下一個tt幀是否有效的本地存儲單元,如果有效,則將下一時槽留給下一個tt幀進行發(fā)送;如果無效,則根據(jù)優(yōu)先級由高到低的原則,判斷此時如果有rc幀,則該tt時槽留給rc幀,沒有rc幀,則將該tt幀時槽留給be幀進行發(fā)送;
步驟四,當(dāng)交換機收到tt幀時,解析幀的目的地址為填充有需要傳輸?shù)男畔⒌淖止?jié);
步驟五,判斷下一個tt時槽是否還是tt幀,若是,則返回步驟二,若否,則所有tt幀發(fā)送完成。
所述發(fā)送端包括主機內(nèi)存、邏輯儲存和發(fā)送仲裁,邏輯儲存和發(fā)送仲裁均為fpga。
步驟一中,fpga解析tt幀的信息位,如果為1,則將該幀寫入fpga緩存中,同時,將信息位寫入標(biāo)志tt幀有無的緩存空間。
步驟二中,發(fā)送端在tt幀組幀時,在目的地址段的常數(shù)域中加入下一幀tt幀時槽是否有tt幀需要傳輸?shù)臉?biāo)志位,在下一幀發(fā)送時解析該標(biāo)志位,若有tt幀需要傳送,則在tt幀時槽傳送tt幀,如果沒有,則該時槽傳輸rc幀或be幀。
步驟三中,fpga控制發(fā)送時,在tt幀的時槽,先查找信息位,如果信息位為1,則在下一個tt幀時槽讀取tt幀緩存,發(fā)送到鏈路;如果為0,則查看rc幀,如果有,則在下一個tt幀時槽發(fā)送rc幀,若無,則發(fā)送be幀。
步驟四中,接收端的fpga根據(jù)接收到信息的幀頭攜帶的幀類型信息將tt、rc和be分別接收緩存。
步驟五中,軟件在配置tt幀寄存器時遇到下一幀無幀發(fā)送的情況時,將tt幀中有無信息的位置標(biāo)識為0,隨后傳遞給fpga,fpga檢測到該幀信息位為0,則該幀不被寫入fpga緩存中,信息位寫入fpga中標(biāo)志tt幀有無的緩存空間。
交換機設(shè)備在轉(zhuǎn)發(fā)數(shù)據(jù)幀時,同樣采取動態(tài)時槽分配原則。
交換機設(shè)備接收到tt、rc和be幀時會分類存儲。
與現(xiàn)有技術(shù)相比,本發(fā)明按照需求動態(tài)分配tt時槽,在tt幀時槽到來前,能夠持續(xù)進行幀傳送,帶寬利用率得到提升,在tt幀負(fù)載較低且有多個交換機存在的級聯(lián)系統(tǒng)中,帶寬利用率提升顯著。本發(fā)明在軟件發(fā)送tt幀時候就已經(jīng)知道是否有tt幀需要傳送,仲裁機制得到簡化。
附圖說明
圖1為本發(fā)明發(fā)送幀的格式示意圖;
圖2為本發(fā)明中發(fā)送調(diào)度框圖;
圖3為本發(fā)明中接收調(diào)度框圖。
具體實施方式
下面結(jié)合附圖對本發(fā)明做進一步說明。
參見圖2和圖3,本發(fā)明包括以下步驟:
步驟一,在發(fā)送端,軟件配置tt幀寄存器時,配置下一個tt幀時槽是否有tt幀需要傳輸?shù)男畔ⅲ?/p>
步驟二,tt幀組幀時,需要傳輸?shù)男畔⑻畛湓谀康牡刂返膶?yīng)字節(jié)內(nèi),同時,該信息會被存儲在發(fā)送調(diào)度模塊的本地fifo中;
步驟三,當(dāng)tt幀時槽到來時,軟件會將本幀發(fā)送,同時,讀取發(fā)送調(diào)度模塊存儲下一個tt幀是否有效的本地存儲單元,如果有效,則將下一時槽留給下一個tt幀進行發(fā)送;如果無效,則根據(jù)優(yōu)先級由高到低的原則,判斷此時如果有rc幀,則該tt時槽留給rc幀,沒有rc幀,則將該tt幀時槽留給be幀進行發(fā)送;
步驟四,當(dāng)交換機收到tt幀時,解析幀的目的地址為填充有需要傳輸?shù)男畔⒌淖止?jié);
步驟五,判斷下一個tt時槽是否還是tt幀,若是,則返回步驟二,若否,則所有tt幀發(fā)送完成。
步驟六,交換機設(shè)備接收到tt、rc和be幀時會分類存儲;需要發(fā)送時,按照前面所述端系統(tǒng)的動態(tài)鎖定時槽方法進行轉(zhuǎn)發(fā)。
本發(fā)明的發(fā)送端包括主機內(nèi)存、邏輯儲存和發(fā)送仲裁,邏輯儲存和發(fā)送仲裁均為fpga。其中主機內(nèi)存是在軟件層面做的,邏輯存儲和發(fā)送仲裁是fpga做的。軟件在發(fā)送tt幀時遇到下一幀無幀發(fā)送的情況就將標(biāo)識tt幀有無的信息位置0,隨后傳遞給fpga,fpga先解析該信息位,如果為1,則將該幀寫入fpga緩存中,同時,將信息位寫入標(biāo)志tt幀有無的緩存空間;信息位如果為0,則將該幀不被寫入fpga緩存中,但信息位仍會寫入fpga中標(biāo)志tt幀有無的緩存空間。與此同時,需要發(fā)送的rc幀和be幀會被寫入各自的緩存空間。fpga控制發(fā)送時,在tt幀的時槽,先查找信息位,如果信息位為1,則在下一個tt幀時槽讀取tt幀緩存,發(fā)送到鏈路;如果為0,則查看rc幀,如果有,則在下一個tt幀時槽發(fā)送rc幀,若無,則發(fā)送be幀。如果是sm發(fā)到cm的幀,接收時還按照原先接收方式接收,在cm發(fā)送時,會按照新的鏈路號重新分配鏈路,同時按照tt幀的有無,綜合上述機制,將tt幀和標(biāo)志位分別寫入緩存,發(fā)送即可。
參見圖1,軟件在配置tt幀寄存器時遇到下一幀無幀發(fā)送的情況時,將tt幀中有無信息的位置標(biāo)識為0,隨后傳遞給fpga,fpga檢測到該幀信息位為0,則該幀不被寫入fpga緩存中,信息位寫入fpga中標(biāo)志tt幀有無的緩存空間。
幀格式中目的地址的高4字節(jié)中有30個比特位都是沒有定義的,因此,可以用這些位來作為下一幀tt幀時槽是否有tt幀需要傳輸?shù)臉?biāo)識,這樣,對現(xiàn)有幀的長度和基本幀內(nèi)容不作改變,對已經(jīng)存在的成熟設(shè)計,只需要在發(fā)送端進行較小改動,接收端不需要改動即可。
根據(jù)上述方案,用veriloghdl語言對控制器的邏輯設(shè)計進行描述,并完成邏輯綜合與布局布線;同時,設(shè)計一套tte發(fā)送接收板,將控制器設(shè)計映射到可編程邏輯器件中實現(xiàn),并對控制器的功能進行測試。測試結(jié)果表明本發(fā)明具有很好的可實施性,且性能滿足預(yù)期。