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