乙太網交換晶片中幀信息物理複製方法與系統與流程
2023-05-06 03:26:02

本發明涉及乙太網交換機技術領域,特別是涉及乙太網交換晶片中幀信息物理複製方法與系統。
背景技術:
在乙太網交換機晶片的設計中,多播和廣播方式的幀傳輸模式是必須具備的基本功能。在設計中將源幀信息進行複製,並將其目的埠信息包含於複製後的幀信息中向出口(egress)方向傳遞,是一種合理可行的物理複製方式。
在物理複製階段,需要控制複製處理帶寬。由於egress處理器會存在一定的帶寬上限,因此,一般的太網交換晶片中幀信息物理複製方式會受到帶寬瓶頸限制的問題,導致幀信息物理複製效率低。
技術實現要素:
基於此,有必要針對乙太網交換晶片中幀信息物理複製方式複製效率低的問題,提供一種效率高的乙太網交換晶片中幀信息物理複製方法與系統。
一種乙太網交換晶片中幀信息物理複製方法,包括步驟:
接收乙太網幀信息,將乙太網幀信息存儲至乙太網交換晶片中存儲單元,並記錄存儲地址;
根據乙太網幀信息攜帶的控制欄位,判斷是否丟棄乙太網幀信息;
當不丟棄乙太網幀信息時,根據控制欄位,計數複製次數,獲得複製計數值,將複製計數值寫入乙太網交換晶片中複製計數器存儲表;
當丟棄乙太網幀信息時,將預設第一值寫入複製計數器存儲表;
根據乙太網幀信息生成多個幀複製信息,發出多個幀複製信息,並每發出單個幀複製信息時,將乙太網幀信息對應的複製計數值減去預設第二值;
當存儲單元中某一存儲地址所對應的在複製計數器存儲表中複製計數值達到預設第三值時,將該存儲地址所對應的乙太網幀信息在存儲單元佔用的空間釋放。
一種乙太網交換晶片中幀信息物理複製系統,包括:
存儲記錄模塊,用於接收乙太網幀信息,將乙太網幀信息存儲至乙太網交換晶片中存儲單元,並記錄存儲地址;
判斷模塊,用於根據乙太網幀信息攜帶的控制欄位,判斷是否丟棄乙太網幀信息;
第一處理模塊,用於當不丟棄乙太網幀信息時,根據控制欄位,計數複製次數,獲得複製計數值,將複製計數值寫入乙太網交換晶片中複製計數器存儲表;
第二處理模塊,用於當丟棄乙太網幀信息時,將預設第一值寫入複製計數器存儲表;
計數模塊,用於根據乙太網幀信息生成多個幀複製信息,發出多個幀複製信息,並每發出單個幀複製信息時,將乙太網幀信息對應的複製計數值減去預設第二值;
空間釋放模塊,用於當存儲單元中某一存儲地址所對應的在複製計數器存儲表中複製計數值達到預設第三值時,將該存儲地址所對應的乙太網幀信息在存儲單元佔用的空間釋放。
本發明乙太網交換晶片中幀信息物理複製方法與系統,接收並存儲乙太網幀信息,記錄存儲地址,根據乙太網幀信息攜帶的控制欄位,判斷是否丟棄乙太網幀信息,當不丟棄時,根據控制欄位,計數複製次數,將複製計數值寫入複製計數器存儲表,當丟棄時,將預設第一值寫入複製計數器存儲表,生成多個幀複製信息,每發出單個幀複製信息時,將複製計數值減去預設第二值,當某一存儲地址對應的複製計數值達到預設第三值時,將該存儲地址所對應的乙太網幀信息在存儲單元佔用的空間釋放。整個過程中,乙太網幀信息的複製過程由其攜帶的控制欄位控制,複製動作能夠達到每個時鐘周期一個幀信息的速率,處理帶寬由太網交換晶片中時鐘頻率決定,不受帶寬瓶頸限制,另外還將已完成的乙太網幀信息佔用的存儲空間釋放,提高乙太網幀信息物理複製效率。
附圖說明
圖1為本發明乙太網交換晶片中幀信息物理複製方法第一個實施例的流程示意圖;
圖2為本發明乙太網交換晶片中幀信息物理複製方法第二個實施例的流程示意圖;
圖3為乙太網交換晶片中入口幀信息欄位示意圖;
圖4為乙太網交換晶片中存儲單元存儲方式示意圖;
圖5為本發明乙太網交換晶片中幀信息物理複製系統第一個實施例的結構示意圖;
圖6為本發明乙太網交換晶片中幀信息物理複製系統第二個實施例的結構示意圖。
具體實施方式
如圖1所示,一種乙太網交換晶片中幀信息物理複製方法,包括步驟:
S100:接收乙太網幀信息,將乙太網幀信息存儲至乙太網交換晶片中存儲單元,並記錄存儲地址。
乙太網交換晶片接收來自交換機入口(ingress)處理器的乙太網幀信息,將接收到的乙太網幀信息暫時存儲至乙太網交換晶片的存儲單元中,記錄下此時存儲地址。存儲地址用於表徵乙太網幀信息在存儲單元的存儲位置,基於存儲地址即可在存儲單元中讀取乙太網幀信息。另外由於不同的乙太網幀信息是存儲在不同位置中的,所以存儲地址還可以當成乙太網幀信息的唯一身份識別碼。假設乙太網幀信息存儲地址為ABCDF,存儲地址ABCDF與乙太網幀信息形成唯一且嚴謹的對應關係。
S200:根據乙太網幀信息攜帶的控制欄位,判斷是否丟棄乙太網幀信息。
在乙太網幀信息中攜帶有控制欄位,該控制欄位是根據乙太網交換機行業規範協議方式預先寫入至乙太網幀信息中的,基於行業準則,每個乙太網幀信息都會攜帶這部分信息,根據控制欄位可以判斷是否丟棄乙太網幀信息。
非必要的,在步驟S200之前還包括:判斷乙太網幀信息存儲FIFO(First Input First Output,先入先出隊列)是否達到預設存儲閾值上限,當達到時,丟棄乙太網幀信息;當未達到時,進入步驟S200。在本實施例中,乙太網幀信息採用FIFO方式在乙太網晶片中進行存儲與讀取,當乙太網晶片中專門劃設的存儲FIFO達到上限值時,無法對乙太網幀信息進行FIFO存儲,即直接丟棄乙太網幀信息,當未達到時,可以對乙太網幀信息進行FIFO存儲與讀取,即進入步驟S200。
S300:當不丟棄乙太網幀信息時,根據控制欄位,計數複製次數,獲得複製計數值,將複製計數值寫入乙太網交換晶片中複製計數器存儲表。
若乙太網幀信息不被丟棄,則根據乙太網幀信息中的控制欄位計算複製次數,並將此數值寫入複製計數存儲表中。具體來說,這裡是根據控制欄位中的幀複製控制欄位部分來計算複製次數的。計算得到的複製計數值會寫入至乙太網交換晶片中複製計數器存儲表。
S400:當丟棄乙太網幀信息時,將預設第一值寫入複製計數器存儲表。
預設第一值是預先設定的值,一般來說,針對「當丟棄乙太網幀信息」這種應用場景時,預設第一值為0,乙太網幀信息已經被丟棄無需複製。
S500:根據乙太網幀信息生成多個幀複製信息,發出多個幀複製信息,並每發出單個幀複製信息時,將乙太網幀信息對應的複製計數值減去預設第二值。
針對乙太網幀信息生成多個幀複製信息,將生成的幀複製信息發出,在每發出單個幀複製信息時,將複製計數器存儲表中與乙太網幀信息對應的複製計數值減去預設第二值。具體來說,預設第二值是預先設定的,例如可以設置為1或2等。一般而言預設第二值設定為1。假設在步驟S300計算得到乙太網幀信息的複製計數值為5,在本步驟S500當發出一次幀複製信息,即將複製計數值從5-1=4,即複製計數值變為4。
S600:當存儲單元中某一存儲地址所對應的在複製計數器存儲表中複製計數值達到預設第三值時,將該存儲地址所對應的乙太網幀信息在存儲單元佔用的空間釋放。
預設第三值是預先設定的值,一般來說其可以設置為0。對於不同的乙太網幀信息在執行步驟S100至步驟S500操作後,會有相應的存儲地址以及複製計數值。例如有M乙太網幀信息執行步驟S100至步驟S500操作後,其存儲地址為ABCDE,其複製計數值為3;有N乙太網幀信息執行步驟S100至步驟S500操作後,其存儲地址為ABCDF,其複製計數值為1;有PN乙太網幀信息執行步驟S100至步驟S500操作後,其存儲地址為ABCDG,其複製計數值為0。由於P乙太網幀信息對應的複製計數值為0,在步驟S600中即從上述M、N以及P三個乙太網幀信息中識別出P乙太網幀信息,將P乙太網幀信息在存儲單元佔用的空間釋放。在實際應用中,當存儲單元中某一存儲地址所對應的在複製計數器存儲表中複製計數值達到0時,將該地址所對應的乙太網幀信息在存儲單元中的頭指針與尾指針返回給交換機入口端幀存儲單元控制器,用於釋放該乙太網幀信息所佔用的存儲空間。
本發明乙太網交換晶片中幀信息物理複製方法,接收並存儲乙太網幀信息,記錄存儲地址,根據乙太網幀信息攜帶的控制欄位,判斷是否丟棄乙太網幀信息,當不丟棄時,根據控制欄位,計數複製次數,將複製計數值寫入複製計數器存儲表,當丟棄時,將預設第一值寫入複製計數器存儲表,生成多個幀複製信息,每發出單個幀複製信息時,將複製計數值減去預設第二值,當某一存儲地址對應的複製計數值達到預設第三值時,將該存儲地址所對應的乙太網幀信息在存儲單元佔用的空間釋放。整個過程中,乙太網幀信息的複製過程由其攜帶的控制欄位控制,複製動作能夠達到每個時鐘周期一個幀信息的速率,處理帶寬由太網交換晶片中時鐘頻率決定,不受帶寬瓶頸限制,另外還將已完成的乙太網幀信息佔用的存儲空間釋放,提高乙太網幀信息物理複製效率。
在其中一個實施例中,將複製計數值寫入乙太網交換晶片中複製計數器存儲表的步驟包括:以存儲地址為寫入地址,將複製計數值寫入乙太網交換晶片中複製計數器存儲表。
將預設第一值寫入複製計數器存儲表的步驟包括:以存儲地址為寫入地址,將預設第一值寫入複製計數器存儲表。
在本實施例中,複製計數值以存儲地址為寫入地址寫入複製計數器存儲表,預設第一值也以存儲地址為寫入地址寫入複製計數器存儲表。乙太網幀信息的複製計數值在複製計數器存儲表的地址與乙太網幀信息在存儲單元中的存儲地址一致,能夠保證準確地在複製結束後釋放存儲空間。
如圖2所示,在其中一個實施例中,步驟S100之前還包括:
S120:初始化乙太網交換晶片,將複製計數器存儲表清零。
為了確保乙太網交換晶片中幀信息物理複製過程準確與高效,在每次對新的乙太網幀信息執行操作之前需要初始化乙太網交換晶片,將乙太網交換晶片中的複製計數器存儲表清零。
在其中一個實施例中,根據乙太網幀信息生成多個幀複製信息,發出多個幀複製信息,並每發出單個幀複製信息時,將乙太網幀信息對應的複製計數值減去預設第二值的步驟包括:
步驟一:採用FIFO方式讀取乙太網幀信息,根據乙太網幀信息中攜帶的幀複製欄位以及與幀複製欄位相關的欄位,生成對應個數的幀複製信息。
步驟二:發送對應個數的幀複製信息至乙太網晶片的出口端。
步驟三:接收出口端返回的幀處理信息,幀處理信息攜帶已完成的乙太網幀信息在存儲單元中的存儲地址。
步驟四:查詢已完成的乙太網幀信息在存儲單元中的存儲地址所對應的在複製計數器存儲表中的複製計數值,並將查詢到的複製計數值減去預設第二值。
讀取乙太網晶片入口端FIFO中的幀信息,根據幀信息中的幀複製欄位以及其他相關欄位,產生對應個數的幀複製信息並發送至出口端幀存儲單元控制器,以FIFO形式接收出口端幀存儲單元控制器返回的幀處理信息。該信息表示該幀的一次完整的處理已經完成。根據其中包含的幀存儲地址欄位,讀取幀複製計數存儲單元中的計數值,並將此數值減1,當幀複製計數器存儲單元的某一地址所存儲的計數值計數至0時,將該地址所對應的乙太網幀信息在存儲單元中的頭指針與尾指針返回給入口端幀存儲單元控制器,用於釋放該幀所佔用的存儲空間。
為了更進一步詳細解釋本發明乙太網交換晶片中幀信息物理複製方法的技術方案以及帶來的效果,下面將採用一具體應用實例進行詳細說明。
步驟一:初始化乙太網交換晶片,清零複製計數存儲表。
步驟二:如圖3所示,入口(ingress)幀信息欄位示意圖所示,設計所接收的幀信息中主要包含的欄位中必須反映該幀的存儲信息以及該幀的複製信息。通過相關複製信息欄位必須能夠的出複製次數以及目的埠信息。
步驟三:如圖4存儲單元存儲方式示意圖所示,幀在存儲單元中以鍊表方式將該幀以一個個緩存(BUFFER)的方式串接。FrameMem(框架)框架分配信息存儲該幀每一個BUFFER的有效負荷(payload);MemLink(鏈路)鏈路分配信息表項用於存儲該幀在FrameMem中BUFFER的順序存儲地址。根據該幀的幀信息中的頭尾指針,存儲單元控制器能夠完整地在最後將該鍊表所對應FrameMem表項中的所有存儲空間釋放。
步驟四:接收ingress端的幀信息,存儲於入口段FIFO中,由狀態機控制器負責讀取FIFO中的幀信息,按幀信息欄位內容逐一複製並發送至出口(egress)端處理器。egress端存儲單元控制器返回的幀處理結果信息被接收並用於更新幀複製計數存儲表的內容。當一個源幀對應的所有複製操作全部完成後,發送包含幀在存儲單元中的頭尾指針的信息至ingress端幀存儲單元控制器用於釋放存儲空間。每一個幀的複製過程為阻塞方式,亦即只有當一個幀的物理複製全部完成後,才會進行下一個幀的物理複製過程。
如圖5所示,一種乙太網交換晶片中幀信息物理複製系統,包括:
存儲記錄模塊100,用於接收乙太網幀信息,將乙太網幀信息存儲至乙太網交換晶片中存儲單元,並記錄存儲地址。
判斷模塊200,用於根據乙太網幀信息攜帶的控制欄位,判斷是否丟棄乙太網幀信息。
第一處理模塊300,用於當不丟棄乙太網幀信息時,根據控制欄位,計數複製次數,獲得複製計數值,將複製計數值寫入乙太網交換晶片中複製計數器存儲表。
第二處理模塊400,用於當丟棄乙太網幀信息時,將預設第一值寫入複製計數器存儲表。
計數模塊500,用於根據乙太網幀信息生成多個幀複製信息,發出多個幀複製信息,並每發出單個幀複製信息時,將乙太網幀信息對應的複製計數值減去預設第二值。
空間釋放模塊600,用於當存儲單元中某一存儲地址所對應的在複製計數器存儲表中複製計數值達到預設第三值時,將該存儲地址所對應的乙太網幀信息在存儲單元佔用的空間釋放。
本發明乙太網交換晶片中幀信息物理複製系統,存儲記錄模塊100接收並存儲乙太網幀信息,記錄存儲地址,判斷模塊200根據乙太網幀信息攜帶的控制欄位,判斷是否丟棄乙太網幀信息,當不丟棄時,第一處理模塊300根據控制欄位,計數複製次數,將複製計數值寫入複製計數器存儲表,當丟棄時,第二處理模塊400將預設第一值寫入複製計數器存儲表,計數模塊500生成多個幀複製信息,每發出單個幀複製信息時,將複製計數值減去預設第二值,當某一存儲地址對應的複製計數值達到預設第三值時,空間釋放模塊600將該存儲地址所對應的乙太網幀信息在存儲單元佔用的空間釋放。整個過程中,乙太網幀信息的複製過程由其攜帶的控制欄位控制,複製動作能夠達到每個時鐘周期一個幀信息的速率,處理帶寬由太網交換晶片中時鐘頻率決定,不受帶寬瓶頸限制,另外還將已完成的乙太網幀信息佔用的存儲空間釋放,提高乙太網幀信息物理複製效率。
在其中一個實施例中,第一處理模塊300以存儲地址為寫入地址,將複製計數值寫入乙太網交換晶片中複製計數器存儲表。第二處理模塊400以存儲地址為寫入地址,將預設第一值寫入複製計數器存儲表。
在其中一個實施例中,乙太網交換晶片中幀信息物理複製系統還包括:
第三處理模塊,用於當乙太網幀信息存儲FIFO達到預設存儲閾值上限時,丟棄乙太網幀信息。
如圖6所示,在其中一個實施例中,乙太網交換晶片中幀信息物理複製系統還包括:
初始模塊120,用於初始化乙太網交換晶片,將複製計數器存儲表清零。
在其中一個實施例中,計數模塊500包括:
幀複製信息生成單元,用於採用FIFO方式讀取乙太網幀信息,根據乙太網幀信息中攜帶的幀複製欄位以及與幀複製欄位相關的欄位,生成對應個數的幀複製信息。
發送單元,用於發送對應個數的幀複製信息至乙太網晶片的出口端。
接收單元,用於接收出口端返回的幀處理信息,幀處理信息攜帶已完成的乙太網幀信息在存儲單元中的存儲地址。
查詢單元,用於查詢已完成的乙太網幀信息在存儲單元中的存儲地址所對應的在複製計數器存儲表中的複製計數值,並將查詢到的複製計數值減去預設第二值。
以上所述實施例僅表達了本發明的幾種實施方式,其描述較為具體和詳細,但並不能因此而理解為對發明專利範圍的限制。應當指出的是,對於本領域的普通技術人員來說,在不脫離本發明構思的前提下,還可以做出若干變形和改進,這些都屬於本發明的保護範圍。因此,本發明專利的保護範圍應以所附權利要求為準。