本發(fā)明涉及一種應(yīng)用于以太網(wǎng)協(xié)議的網(wǎng)絡(luò)設(shè)備中的數(shù)據(jù)處理的網(wǎng)絡(luò)數(shù)據(jù)通信技術(shù),特別是涉及一種在交換控制電路中巨幀的控制系統(tǒng)及方法。
背景技術(shù):
隨著以太網(wǎng)技術(shù)的日新月異,交換機的速率也從10Mbps、100Mbps到1Gbps、10Gbps甚至更高。起初IEEE認(rèn)可的以太網(wǎng)標(biāo)準(zhǔn)的最大幀長度為1518字節(jié),這一標(biāo)準(zhǔn)已經(jīng)越來越成為數(shù)據(jù)傳輸效率的掣肘。巨幀(Jumbo Frame),這是一種廠商標(biāo)準(zhǔn)的超長幀格式,專門為超過1Gbps的以太網(wǎng)而設(shè)計,長度各廠商有所不同,從9000字節(jié)~64000字節(jié)不等。采用巨幀能夠使以太網(wǎng)傳輸數(shù)據(jù)性能充分發(fā)揮,是數(shù)據(jù)傳輸效率提高50%~100%。
在交換控制電路設(shè)計中,描述符管理有極其重要的作用,直接影響交換機的性能。它管理著幀存儲地址和目的端口的映射關(guān)系以及高低優(yōu)先級的出隊列次序。以太網(wǎng)交換機的主要工作是存儲轉(zhuǎn)發(fā),當(dāng)數(shù)據(jù)幀經(jīng)過PHY層、MAC層解析后,對MAC地址表進(jìn)行查找,找到轉(zhuǎn)發(fā)端口,產(chǎn)生相應(yīng)的描述符派發(fā)到各個發(fā)送端口,描述符中記載著幀的各類信息。標(biāo)準(zhǔn)的二層幀結(jié)構(gòu)和巨幀結(jié)構(gòu)分別如圖5和圖6所示。
在描述符的設(shè)計中,若以256字節(jié)為一頁為前提,在最長幀只支持1518字節(jié)的交換機中,設(shè)計一個描述符或一個擴(kuò)展類型的描述符對應(yīng)一個幀就能滿足要求,而對于支持巨幀的設(shè)備,此種設(shè)計已不滿足要求,單個描述符已不可能包含巨幀數(shù)據(jù)的所有頁地址。
技術(shù)實現(xiàn)要素:
本發(fā)明所要解決的技術(shù)問題是提供一種在交換控制電路中巨幀的控制系統(tǒng)及方法,是一種用兩級鏈表實現(xiàn)的巨幀控制方法,通過兩級鏈表對幀存儲的控制,有效的解決了描述符與存儲地址的映射關(guān)系,理論上可以擴(kuò)展到巨幀甚至超巨幀。
本發(fā)明是通過下述技術(shù)方案來解決上述技術(shù)問題的:一種在交換控制電路中巨幀的控制系統(tǒng),其特征在于,包括:
描述優(yōu)先級調(diào)度模塊:根據(jù)調(diào)度策略,在多個優(yōu)先級隊列中挑選最先被調(diào)度的隊列,把該隊列的首個描述符地址提供給發(fā)送隊列管理模塊;
發(fā)送隊列管理模塊:根據(jù)接收或發(fā)送數(shù)據(jù),對描述符發(fā)送隊列進(jìn)行寫或度操作,并且根據(jù)優(yōu)先級信息,對各優(yōu)先級隊列進(jìn)行鏈表式管理;
緩存標(biāo)簽隊列管理模塊:通過存儲在發(fā)送隊列中的描述符所含的緩存標(biāo)簽,對每個數(shù)據(jù)幀所占用的緩存進(jìn)行鏈表式管理;
空閑隊列管理模塊:釋放和回收發(fā)送隊列表項和緩存標(biāo)簽表項的存儲地址。
本發(fā)明還提供一種在交換控制電路中巨幀的控制方法,其特征在于,所述在交換控制電路中巨幀的控制方法包括以下步驟:
步驟一,寄存器堆模塊存儲系統(tǒng)工作所需要的配置和狀態(tài)信息;
步驟二,千兆MAC模塊實現(xiàn)千兆以太網(wǎng)數(shù)據(jù)鏈路層功能,完成MAC接口數(shù)據(jù)格式與數(shù)據(jù)總線數(shù)據(jù)格式之間的轉(zhuǎn)換;
步驟三,通過數(shù)據(jù)總線,數(shù)據(jù)幀頭由數(shù)據(jù)表管理模塊進(jìn)行學(xué)習(xí)、解析及老化,數(shù)據(jù)幀內(nèi)容存儲在數(shù)據(jù)緩存內(nèi);
步驟四,數(shù)據(jù)緩存模塊對接收數(shù)據(jù)進(jìn)行分配空閑內(nèi)存,對發(fā)送數(shù)據(jù)進(jìn)行釋放數(shù)據(jù)內(nèi)存;
步驟五,根據(jù)地址表管理模塊提供的目的端口轉(zhuǎn)發(fā)表生成多個對應(yīng)端口的發(fā)送描述符,其中發(fā)送描述符根據(jù)QOS屬性進(jìn)入對應(yīng)優(yōu)先級隊列排隊;
步驟六,根據(jù)數(shù)據(jù)緩存模塊提供的數(shù)據(jù)內(nèi)存地址信息生成多個緩存標(biāo)簽,每個標(biāo)簽對應(yīng)一個頁地址;
步驟七,對各個優(yōu)先級隊列進(jìn)行調(diào)度,從發(fā)送隊列調(diào)度成功的描述符向數(shù)據(jù)緩存模塊提供發(fā)送幀的頭地址,然后根據(jù)緩存標(biāo)簽鏈表依次向數(shù)據(jù)緩存模塊提供發(fā)送幀的后續(xù)地址;
步驟八,數(shù)據(jù)緩存模塊根據(jù)描述符管理模塊提供的數(shù)據(jù)內(nèi)存地址,從數(shù)據(jù)緩存中把數(shù)據(jù)傳輸至數(shù)據(jù)總線,然后通過千兆MAC模塊把數(shù)據(jù)交換出去。
優(yōu)選地,所述在交換控制電路中巨幀的控制方法應(yīng)用于巨幀,巨幀所對應(yīng)的數(shù)據(jù)存儲地址的處理采用兩級鏈表,第一級是發(fā)送隊列鏈表,第二級是緩存標(biāo)簽鏈表。
優(yōu)選地,所述發(fā)送隊列鏈表記載著該發(fā)送端口各個幀的發(fā)送次序、幀信息以及對應(yīng)的緩存標(biāo)簽。
優(yōu)選地,所述發(fā)送端口為實現(xiàn)QOS可支持多個發(fā)送隊列,每個發(fā)送隊列大小可動態(tài)調(diào)整,每個發(fā)送隊列表項就是一個描述符,對應(yīng)一幀數(shù)據(jù);所述緩存標(biāo)簽管理每一頁緩存,對于超過256字節(jié)長度的幀,需要多個緩存標(biāo)簽表示,并且通過鏈表來控制管理。
優(yōu)選地,所述緩存標(biāo)簽鏈表記載著每幀存放的緩存地址。
優(yōu)選地,所述發(fā)送隊列表項和緩存標(biāo)簽表項的設(shè)計是通過下一個描述符地址和下一個緩存標(biāo)簽地址來維護(hù)鏈表的連續(xù)性,并通過增加頭標(biāo)識和尾標(biāo)識來快速判斷鏈表的狀態(tài);所述發(fā)送隊列中的描述符通過鏈表來控制管理;所述幀數(shù)據(jù)的寫入,緩存標(biāo)簽鏈表都會更新,維護(hù)著每個描述符對應(yīng)幀存放的所有頁地址。
本發(fā)明的積極進(jìn)步效果在于:本發(fā)明的發(fā)送隊列鏈表和緩存標(biāo)簽共同管理,讀寫發(fā)送隊列描述符和緩存標(biāo)簽都采用雙端口RAM,能同時讀寫不同地址的數(shù)據(jù),提高讀寫描述符和緩存標(biāo)簽的效率;兩級鏈表有效的解決了巨幀的存儲問題,而且硬件結(jié)構(gòu)上的實現(xiàn)也不復(fù)雜。
附圖說明
圖1為發(fā)送隊列鏈表和緩存標(biāo)簽鏈表的組織結(jié)構(gòu)圖。
圖2為發(fā)送隊列表項結(jié)構(gòu)圖。
圖3為緩存標(biāo)簽表項結(jié)構(gòu)圖。
圖4為交換控制電路結(jié)構(gòu)框圖。
圖5為描述符管理模塊結(jié)構(gòu)框圖。
圖6為標(biāo)準(zhǔn)的二層幀結(jié)構(gòu)的示意圖。
圖7為巨幀結(jié)構(gòu)的示意圖。
具體實施方式
下面結(jié)合附圖給出本發(fā)明較佳實施例,以詳細(xì)說明本發(fā)明的技術(shù)方案。
本發(fā)明在交換控制電路中巨幀的控制系統(tǒng)包括:
描述優(yōu)先級調(diào)度模塊:根據(jù)調(diào)度策略,在多個優(yōu)先級隊列中挑選最先被調(diào)度的隊列,把該隊列的首個描述符地址提供給發(fā)送隊列管理模塊;
發(fā)送隊列管理模塊:根據(jù)接收或發(fā)送數(shù)據(jù),對描述符發(fā)送隊列進(jìn)行寫或度操作,并且根據(jù)優(yōu)先級信息,對各優(yōu)先級隊列進(jìn)行鏈表式管理;
緩存標(biāo)簽隊列管理模塊:通過存儲在發(fā)送隊列中的描述符所含的緩存標(biāo)簽,對每個數(shù)據(jù)幀所占用的緩存進(jìn)行鏈表式管理;
空閑隊列管理模塊:釋放和回收發(fā)送隊列表項和緩存標(biāo)簽表項的存儲地址。
本發(fā)明在交換控制電路中巨幀的控制方法包括以下步驟:
步驟一,寄存器堆模塊存儲系統(tǒng)工作所需要的配置和狀態(tài)信息;
步驟二,千兆MAC模塊實現(xiàn)千兆以太網(wǎng)數(shù)據(jù)鏈路層功能,完成MAC接口數(shù)據(jù)格式與數(shù)據(jù)總線數(shù)據(jù)格式之間的轉(zhuǎn)換;
步驟三,通過數(shù)據(jù)總線,數(shù)據(jù)幀頭由數(shù)據(jù)表管理模塊進(jìn)行學(xué)習(xí)、解析及老化,數(shù)據(jù)幀內(nèi)容存儲在數(shù)據(jù)緩存內(nèi);
步驟四,數(shù)據(jù)緩存模塊對接收數(shù)據(jù)進(jìn)行分配空閑內(nèi)存,對發(fā)送數(shù)據(jù)進(jìn)行釋放數(shù)據(jù)內(nèi)存;
步驟五,根據(jù)地址表管理模塊提供的目的端口轉(zhuǎn)發(fā)表生成多個對應(yīng)端口的發(fā)送描述符,其中發(fā)送描述符根據(jù)QOS屬性進(jìn)入對應(yīng)優(yōu)先級隊列排隊,排隊形式如圖1的第一級鏈表;
步驟六,根據(jù)數(shù)據(jù)緩存模塊提供的數(shù)據(jù)內(nèi)存地址信息生成多個緩存標(biāo)簽,每個標(biāo)簽對應(yīng)一個頁地址,排隊形式如圖1的第二級鏈表;
步驟七,對各個優(yōu)先級隊列進(jìn)行調(diào)度,從發(fā)送隊列調(diào)度成功的描述符向數(shù)據(jù)緩存模塊提供發(fā)送幀的頭地址,然后根據(jù)緩存標(biāo)簽鏈表依次向數(shù)據(jù)緩存模塊提供發(fā)送幀的后續(xù)地址;
步驟八,數(shù)據(jù)緩存模塊根據(jù)描述符管理模塊提供的數(shù)據(jù)內(nèi)存地址,從數(shù)據(jù)緩存中把數(shù)據(jù)傳輸至數(shù)據(jù)總線,然后通過千兆MAC模塊把數(shù)據(jù)交換出去。
如圖1至圖4所示,本發(fā)明是一種在交換控制電路中巨幀的控制方法,每個端口都有兩級鏈表用于維護(hù)該端口的發(fā)送隊列。巨幀所對應(yīng)的數(shù)據(jù)存儲地址的處理采用兩級鏈表,第一級是發(fā)送隊列鏈表,第二級是緩存標(biāo)簽鏈表。
發(fā)送隊列鏈表記載著該發(fā)送端口各個幀的發(fā)送次序、幀信息以及對應(yīng)的緩存標(biāo)簽。緩存標(biāo)簽鏈表記載著每幀存放的緩存地址。
每個發(fā)送端口為實現(xiàn)QOS可支持多個發(fā)送隊列(TXQ),每個發(fā)送隊列大小可動態(tài)調(diào)整,每個發(fā)送隊列表項就是一個描述符,對應(yīng)一幀數(shù)據(jù)。對于同一發(fā)送隊列中的描述符,通過鏈表來控制管理。
每一頁緩存由一個緩存標(biāo)簽(Buffer Tag)管理,對于超過256字節(jié)長度的幀,需要多個緩存標(biāo)簽表示,并且通過鏈表來控制管理。若一個9728字節(jié)的巨幀,需要38個緩存標(biāo)簽,此38個標(biāo)簽通過下一個緩存標(biāo)簽地址進(jìn)行鏈表式管理。
兩級鏈表的維護(hù)分別通過讀寫描述符狀態(tài)機和讀寫緩存標(biāo)簽狀態(tài)機來實現(xiàn)。
每頁幀數(shù)據(jù)的寫入,緩存標(biāo)簽鏈表都會更新,維護(hù)著每個描述符對應(yīng)幀存放的所有頁地址。當(dāng)收到長幀的第一頁內(nèi)容,會寫一個緩存標(biāo)簽,記錄該256字節(jié)的頁地址,同時幀頭狀態(tài)置1,幀尾狀態(tài)置0,下一個緩存標(biāo)簽地址指向空閑的緩存標(biāo)簽鏈表的頭指針;等收到下一頁內(nèi)容,另外寫一個緩存標(biāo)簽,記錄剩余字節(jié)存放的頁地址,幀頭狀態(tài)置0,幀尾狀態(tài)置1,同時把該幀的前一個緩存標(biāo)簽的下一個緩存標(biāo)簽地址域更新為當(dāng)前緩存標(biāo)簽地址。
當(dāng)需要發(fā)送長幀時,通過描述符的緩存標(biāo)簽域找到緩存標(biāo)簽鏈表的位置,從中找到發(fā)送幀的頁地址,若讀到幀尾標(biāo)識為1,根據(jù)下一個緩存標(biāo)簽地址繼續(xù)讀下一個緩存標(biāo)簽,直至讀取到幀尾標(biāo)識為1,此幀才讀取完畢。
在描述符的設(shè)計中,若以256字節(jié)為一頁為前提,在最長幀只支持1518字節(jié)的交換機中,設(shè)計一個描述符或一個擴(kuò)展類型的描述符對應(yīng)一個幀就能滿足要求,而對于支持巨幀的設(shè)備,此種設(shè)計已不滿足要求,單個描述符已不可能包含巨幀數(shù)據(jù)的所有頁地址。
描述符管理模塊是交換控制電路中的重要功能模塊,主要負(fù)責(zé)幀存儲地址的管理和優(yōu)先級隊列的調(diào)度,而兩級鏈表是幀存儲地址管理的一種實現(xiàn)方式。
綜上所述,本發(fā)明的發(fā)送隊列鏈表和緩存標(biāo)簽共同管理,讀寫發(fā)送隊列描述符和緩存標(biāo)簽都采用雙端口RAM,能同時讀寫不同地址的數(shù)據(jù),提高讀寫描述符和緩存標(biāo)簽的效率;兩級鏈表有效的解決了巨幀的存儲問題,而且硬件結(jié)構(gòu)上的實現(xiàn)也不復(fù)雜。
以上所述的具體實施例,對本發(fā)明的解決的技術(shù)問題、技術(shù)方案和有益效果進(jìn)行了進(jìn)一步詳細(xì)說明,所應(yīng)理解的是,以上所述僅為本發(fā)明的具體實施例而已,并不用于限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。