基于cioq結構的千兆afdx交換機及其交換方法
【專利摘要】一種基于CIOQ結構的千兆AFDX交換機,包括N個輸入端口、對應每個輸入端口下的輸入虛擬隊列、虛擬鏈路配置表、集中調度模塊、K個并行交叉開關矩陣、對應每個交叉開關矩陣下的單信元寄存器、輸出端口控制器、N個輸出端口和對應每個輸出端口下的輸出緩存隊列。本發明不僅可以滿足現有AFDX交換機的全線速、單播多播、確定性延時、兩級優先級等要求,并且可以實現24口全千兆交換;減少了共享緩存結構對內部存儲帶寬的限制,在不增大存儲器位寬情況下總體交換容量可以達到48Gbps;本發明中涉及的存儲和緩沖單元為片上存儲資源,不需要外部存儲器和接口,降低了硬件消耗,節省成本。
【專利說明】
基于C1Q結構的千兆AFDX交換機及其交換方法
技術領域
:
[0001 ]本發明涉及航空電子技術領域,特別涉及一種千兆AFDX交換機及其交換方法。
【背景技術】
:
[0002]在高速數據交換領域,交換式以太網數據傳輸速率已經達到40G甚至10GbpsJS是由于802.3協議的非確定性、數據包沒有優先級機制、地址表的學習老化機制等缺陷,造成數據傳輸的實時性、時延、可靠性難以得到保證。為此,ARINC 664規范的第七部分定義了名為AFDX的全雙工、確定性、可擴充、通道冗余的數據網絡,廣泛用于航空數據交換領域。
[0003]根據緩沖區位置的不同,交換芯片的結構可以分為輸入緩沖隊列(IQ)、輸出緩沖隊列(OQ)以及組合輸入輸出緩沖(C1Q)結構。IQ結構為每個輸入端口都設置有緩沖區。輸入端口進入的數據幀先緩存于輸入端口緩沖區中形成輸入隊列。交換控制邏輯根據輸出端口的狀態異步地從輸入隊列中取出數據幀轉發輸出;OQ交換機結構為每個輸出端口分配一定大小的輸出緩沖區。輸入端口進入的數據幀直接通過交換控制邏輯送入輸出緩沖區中形成輸出隊列。交換機的輸出端口異步地從輸出隊列中取出數據幀,從通信端口中輸出。
[0004]IQ交換機邏輯簡單,交叉開關復雜度低(N X N,N為端口數)、存儲器帶寬要求低(2X B,B為端口帶寬),缺點是系統吞吐量只能達到60%左右。OQ交換機系統吞吐量達到100%,缺點是控制邏輯時序要求高,交叉開關復雜度為2 X N X N,共享存儲器帶寬要求為2X N X B,總體交換容量受限。現有的AFDX交換機基于共享緩存結構,理論上為OQ交換機,即到達輸入端口的數據幀通過交換邏輯控制,直接送入位于輸出端口的輸出緩沖區如SRAM中。交換機的輸出端口控制邏輯異步地從輸出緩沖區隊列中取出數據幀,送到輸出端口輸出。但是這種結構最大的局限在于其速度受限于內存訪問速度。例如對于24口千兆AFDX交換機,總收發帶寬為24 X IGbps X 2 = 48Gbps,即使存儲器位寬為256位,仍需要交換機內部工作頻率為48Gbps/256bits?200MHz,這在FPGA原型設計中難以實現。因此,由于共享緩存AFDX結構的局限性,目前國內外尚無24口全千兆AFDX交換機產品問世。伴隨航空電子系統對數據交換速度和吞吐量要求的持續提高,有必要研究一種新的全千兆AFDX交換機架構。
【發明內容】
:
[0005]本發明的目的在于:提供一種全千兆AFDX交換機設計方案,旨在解決現有的共享緩存架構帶寬無法滿足全千兆AFDX設計需求的問題。
[0006]本發明的發明目的通過以下技術方案實現。
[0007]一種基于C1Q結構的千兆AFDX交換機,包括N個輸入端口、對應每個輸入端口下的輸入虛擬隊列、虛擬鏈路配置表、集中調度模塊、K個并行交叉開關矩陣、對應每個交叉開關矩陣下的單信元寄存器、輸出端口控制器、N個輸出端口和對應每個輸出端口下的輸出緩存隊列,其特征在于:
[0008]所述輸入端口用于將接收到的數據幀緩存到輸入虛擬隊列并向集中調度模塊發起資源請求;
[0009]所述集中調度模塊用于對各資源請求進行輪詢仲裁,對輸出端口的輸出緩存隊列的狀態進行判斷,若輸出端口緩存隊列為可用狀態,則接通交叉開關矩陣的輸入端,從輸入虛擬隊列中讀出數據幀的頭信元送入交叉開關矩陣下的單信元寄存器中,并向該頭信元需要轉發的輸出端口控制器發起輸出申請;
[0010]所述輸出端口控制器用于對所述輸出申請進行輪流應答,接通交叉開關矩陣的輸出端,將頭信元從單信元寄存器輸出到輸出緩存隊列,并記錄幀長、時標和丟幀信息;
[0011]所述虛擬鏈路配置表用于保存基于虛擬鏈路的數據轉發、優先級、幀過濾和流量控制所需信息,并由交換機終端負責加載更新;
[0012]所述輸出端口根據幀信息從輸出緩存隊列讀取數據幀進行輸出。
[0013]優選地,所述輸入端口包括輸入控制模塊、校驗模塊、以及錯誤和幀信息統計模塊;
[0014]所述的輸入控制模塊用于控制數據幀寫入輸入虛擬隊列;
[0015]所述的校驗模塊用于對輸入虛擬隊列中的數據幀進行CRC、長度、完整性和VL校驗,如果校驗正確則寫地址指針跳到下一幀起始地址,并向集中調度模塊發起資源請求;如果校驗錯誤,則寫地址指針不變;
[0016]所述錯誤和幀信息統計模塊用于記錄幀信息、統計幀錯誤。
[0017]優選地,所述輸入虛擬隊列包括第一輸入虛擬隊列、第二輸入虛擬隊列,所述輸入端口將接收到的數據幀交替寫入第一輸入虛擬隊列和第二輸入虛擬隊列。
[0018]優選地,所述的集中調度模塊包含集中調度器、輸出端口狀態寄存器0QN、Crossbar狀態寄存器Ck ;
[0019]所述輸出端口狀態寄存器OQn用于存儲各輸出緩存隊列的狀態信息;
[0020]所述Crossbar狀態寄存器Ck用于存儲各單信元寄存器的狀態信息;
[0021]所述集中調度器用于先根據輸出端口狀態寄存器OQn對輸出緩存隊列的狀態進行判斷,若輸出緩存隊列為可用狀態則查詢Crossbar狀態寄存器并對資源請求按照輪詢仲裁策略分配交叉開關矩陣。
[0022]優選地,所述多個并行交叉開關矩陣中,交叉開關矩陣的個數為:N/6S交叉開關矩陣數目彡N/3,N為輸入端口數目。
[0023]優選地,所述輸出端口緩存隊列包含一個高優先級隊列和一個低優先級隊列,用于緩存相應優先級的頭信元;
[0024]集中調度模塊用于根據頭信元的優先級對對應的高優先級隊列或低優先級隊列的狀態進行判斷。
[0025]優選地,所述輸入虛擬隊列、單信元寄存器的輸出緩存隊列的讀寫位寬相同,頭信元大小等于輸入虛擬隊列的讀寫位寬的值。
[0026]優選地,每N/4個輸入端口共享一個虛擬鏈路配置表。
[0027]本發明還提供了一種用于基于C1Q結構的千兆AFDX交換機的交換方法,包含以下步驟:
[0028]a.數據幀到達輸入端口 i,輸入端口接收數據幀并交替寫入該輸入端口的兩個輸入虛擬隊列,同時對數據幀進行CRC、長度、完整性校驗,通過校驗的數據幀進行VL校驗;輸入虛擬隊列中的通過所有校驗的合法數據幀向集中調度模塊發起資源申請;其中,OSiSN-1,N為輸入端口數;
[0029 ] b.集中調度模塊根據數據幀的優先級以及申請的輸出端口查詢相應輸出端口的輸出緩存隊列的狀態,若該數據幀申請的輸出端口的輸出緩存隊列不可用,則丟棄該數據幀并在對應輸出端口中記錄該丟幀信息;否則,集中調度模塊按照輪詢仲裁策略分配交叉開關矩陣,接通交叉開關矩陣的輸入端;
[0030]c.若輸入虛擬隊列中的數據幀未得到交叉開關矩陣,則在輸入虛擬隊列中繼續等待下一次輪詢;得到交叉開關矩陣的輸入虛擬隊列,則把數據幀的頭信元送入單信元寄存器中,并向該數據幀需要轉發的輸出端口發起輸出申請,待整個數據幀發送完成之后釋放交叉開關矩陣;
[0031 ] d.輸出端口控制器對有數據傳輸的交叉開關矩陣進行輪流應答和接收,如果該輸出端口資源不可用則丟棄由交叉開關矩陣發送過來的頭信元,并記錄丟幀信息;否則,判別頭信元,記錄幀長信息和時標,并把頭信元從單信元寄存器寫入相應優先級的輸出緩沖隊列,整個數據幀完整接收后重新等待下一幀的頭信元;
[0032]e.輸出端口根據輸出緩存隊列中幀的信息判斷對應幀是否超過最大延時,如果超過,則丟幀并記錄丟幀信息,否則從輸出端口發送該數據幀。
[0033]優選地,步驟d中,輸出端口控制器把頭信元從單信元寄存器寫入輸出緩沖隊列時為頭信元附加數據幀長度和輸出端口信息。
[0034]本發明設計了基于C1Q結構的AFDX交換機,根據上述技術方案設計的AFDX交換機可以滿足現有AFDX交換機的全線速、單播多播、確定性延時、兩級優先級等要求,并且可以實現24 口全千兆交換;減少了共享緩存結構對內部存儲帶寬的限制,在不增大存儲器位寬情況下總體交換容量可以達到48Gbps;本發明中涉及的存儲和緩沖單元為片上存儲資源,不需要外部存儲器和接口,降低了硬件消耗,節省成本。
【附圖說明】
:
[0035]圖1為本發明基于C1Q結構的AFDX交換機結構框圖;
[0036]圖2為本發明AFDX交換機輸入端口結構框圖;
【具體實施方式】
:
[0037]下面通過附圖和具體實施例對本發明做進一步的詳細說明,以下所述是對本發明的解釋而不是限定。
[0038]根據說明書所述的基于C1Q結構的AFDX交換機結構框圖如圖1所示,以24口交換機為例,主要組成部分包括:24個輸入端口、每個輸入端口下的二個輸入虛擬隊列(第一輸入虛擬隊列、第二輸入虛擬隊列)、虛擬鏈路配置表(VL)、集中調度模塊、8個并行交叉開關矩陣、每個交叉開關矩陣下的單信元寄存器、輸出端口控制器、24個輸出端口,每個輸出端口下的二個輸出緩存隊列(高優先級隊列、低優先級隊列)。本實施例是在FPGA上來實現,輸入輸出端口都是高速收發端口,隊列為FPGA片上存儲空間,其他功能模塊都是通過編寫verilog代碼自動綜合實現的。
[0039]如圖2所示,輸入端口具體包括輸入控制模塊、校驗模塊、錯誤和幀信息統計模塊,輸入端口接收數據幀,經過輸入控制模塊交替寫入兩個輸入虛擬隊列,同時校驗模塊對輸入虛擬隊列中的數據幀進行CRC、長度、完整性,如果校驗正確則進行下一步的VL校驗,如果校驗正確則寫地址指針會跳到下一幀起始地址,并向集中調度器發出資源請求,如果校驗錯誤,則寫地址指針不變(相當于該幀被丟棄)并由錯誤和幀信息統計模塊記錄錯誤信息。
[0040]輸入端虛擬隊列采用兩路雙口 RAM實現,為了降低頭阻塞發生的概率,在一路輸入虛擬隊列已滿且長時間等待資源仲裁的情況下,另一路輸入虛擬隊列中的數據幀可以同時發起輸出申請。輸入虛擬隊列用于緩存等待輪詢仲裁的數據幀或暫存因內部鏈路被占用而無法發送到Crossbar單信元寄存器的數據幀;
[0041 ]虛擬鏈路配置表保存基于虛擬鏈路的數據轉發、優先級、幀過濾和流量控制信息,由交換機終端負責加載更新。為滿足每個輸入端口在線速情況下能完成VL校驗且不占用大量的片上資源,本設計中配置4個VL表,每6個輸入端口共享一個VL表。
[0042 ]集中調度模塊包含集中調度器、輸出端口狀態寄存器OQn、Cro s sbar狀態寄存器Ck。集中調度器接收資源請求,完成輪詢仲裁,接收所有輸出緩存隊列的狀態反饋,更新輸出端口狀態寄存器OQNXrossbar狀態寄存器&。在收到資源請求時,首先根據數據幀的優先級以及請求的輸出端口在輸出端口狀態寄存器OQn查詢對應的輸出緩沖隊列,例如,數據幀的優先級為高,請求的輸出端口為O,則在輸出端口狀態寄存器OQn查詢輸出端口 O的高優先級隊列。若該數據幀申請的輸出端口資源全部不可用,則丟棄整個數據幀并在對應輸出端口中記錄該丟幀信息;否則,集中調度器查詢Crossbar狀態寄存器Ck(0<k<K-l ,K為Crossbar數目)狀態寄存器并對該申請按照輪詢仲裁策略分配交叉開關矩陣;若輸入虛擬隊列中的數據幀未得到交叉開關矩陣,則在輸入虛擬隊列中繼續等待下一次輪詢;若得到Crossbar資源,集中調度器接通交叉開關矩陣的輸入端,把數據幀頭信元從輸入虛擬隊列送入單信元寄存器中,并在頭信元后附加數據幀長度和輸出端口信息并向輸出端口控制器發出輸出請求,更新Crossbar狀態寄存器Ck的狀態。
[0043]多個并行交叉開關矩陣從輸入端虛擬隊列接收并轉發合法數據幀信元,由單信元寄存器暫存未得到輸出端口應答輸出的信元,本例選擇交叉開關矩陣數目為8,交叉開關矩陣,由輸入端、輸出端和內部交叉點開關組成。交叉點開關的作用是為任意輸入端和輸出端搭建數據通路。
[0044]輸出端口控制器用于對有數據傳輸的交叉開關矩陣進行輪流應答,接通交叉開關矩陣的輸出端,將單信元寄存器中的頭信元數據送入相應優先級的輸出緩存隊列,更新Crossbar狀態寄存器Ck的狀態。如果該輸出緩存隊列不可用則丟棄由單信元寄存器發送過來的頭信元,并記錄丟幀信息;否則,判別頭信元,記錄幀長信息和時標,并把數據寫入相應優先級的輸出端口緩沖隊列,整個數據幀完整接收后重新等待下一幀的頭信元;
[0045]輸出端口緩存隊用于緩存相應優先級的數據幀,包含一個高優先級隊列和一個低優先級隊列,根據優先級隊列中幀的信息判斷對應幀是否超過最大延時,如果超過,則丟幀并記錄丟幀信息,輸出模塊根據幀信息控制輸出數據幀,高優先級隊列中的數據幀優先輸出。
[0046]下面以24口全千兆交換機為例,計算基于C1Q結構的AFDX交換機所需緩沖區大小和傳輸延時。AFDX協議數據幀最長為1518Bytes。設置每個輸出端最多緩存128幀1518Bytes的數據幀,總共需要空間為128 X 24 X 1518Bytes X 8?36Mb;根據計算,輸入端設置6個數據幀緩沖區大小即可防止申請資源過程中幀丟失,本例在每個輸入端緩存64幀1518Bytes的數據幀,總共需要空間64\24\151887七68\8?181?3;4個共享的¥1^表所占空間為4103\128X 2 = IMb ; 8個Crossbar每個占有I個信元大小的緩沖區,即128bits X 8 = 1024bits;還包括輸入端口幀信息記錄、OQn狀態寄存器、Ck狀態寄存器等寄存器組,共需要空間約2Mb;總體需要5 8Mb片上存儲資源。現有的FPGA最大片內資源為68Mb,可以滿足FPGA原型設計需求。在C1Q結構的AFDX交換機內,數據幀傳輸延時分為VL校驗延時tVL、輪詢延時tR、內部幀傳輸延時t。、輸出端口輸出延時t。。設定FPGA內部工作頻率為125MHz,一個時鐘周期為8ns,內部位寬為128bits,則每個周期寫入16Bytes。在AFDX交換機中不考慮資源競爭,則tVL?12clk,tR= 3clk,在寫入Ck緩沖區過程中,由于Ck需要傳輸完完整一幀后才能釋放資源,所以延時為tc= 1518Bytes/16Bytes.elk—1;^95clk,1:。= 0,最短延時為(tvL+tR+tc+t。) X8ns = 0.88us0考慮競爭情況,在VL校驗過程中,由于6個輸入端口共享一個VL表,所以最后一個端口最長需要等待tvL X 6 = 72clk才能完成校驗。此外,由于24個口共用8個Crossbar,所以最長需要等待3次完整的傳輸過程,延時為(tR+tc)X3 = 294clk。在輸出端口,以IGbps速率發送數據幀,考慮所有輸出隊列全部填滿最長數據幀,則最后一幀等待發送總共需要等待127 X1518clk=192786clk,總體延時為(72+294+192786) X8ns?1.5ms,可以滿足AFDX延時確定性需求。
[0047]可以理解的是,對本領域普通技術人員來說,可以根據本發明的技術方案及其發明構思加以等同替換或改變,而所有這些改變或替換都應屬于本發明所附的權利要求的保護范圍。
【主權項】
1.一種基于C1Q結構的千兆AFDX交換機,包括N個輸入端口、對應每個輸入端口下的輸入虛擬隊列、虛擬鏈路配置表、集中調度模塊、K個并行交叉開關矩陣、對應每個交叉開關矩陣下的單信元寄存器、輸出端口控制器、N個輸出端口和對應每個輸出端口下的輸出緩存隊列,其特征在于: 所述輸入端口用于將接收到的數據幀緩存到輸入虛擬隊列并向集中調度模塊發起資源請求; 所述集中調度模塊用于對各資源請求進行輪詢仲裁,對輸出端口的輸出緩存隊列的狀態進行判斷,若輸出端口緩存隊列為可用狀態,則接通交叉開關矩陣的輸入端,從輸入虛擬隊列中讀出數據幀的頭信元送入交叉開關矩陣下的單信元寄存器中,并向該頭信元需要轉發的輸出端口控制器發起輸出申請; 所述輸出端口控制器用于對所述輸出申請進行輪流應答,接通交叉開關矩陣的輸出端,將頭信元從單信元寄存器輸出到輸出緩存隊列,并記錄幀長、時標和丟幀信息; 所述虛擬鏈路配置表用于保存基于虛擬鏈路的數據轉發、優先級、幀過濾和流量控制所需信息,并由交換機終端負責加載更新; 所述輸出端口根據幀信息從輸出緩存隊列讀取數據幀進行輸出。2.根據權利要求1所述的一種基于C1Q結構的千兆AFDX交換機,其特征在于所述輸入端口包括輸入控制模塊、校驗模塊、以及錯誤和幀信息統計模塊; 所述的輸入控制模塊用于控制數據幀寫入輸入虛擬隊列; 所述的校驗模塊用于對輸入虛擬隊列中的數據幀進行CRC、長度、完整性和VL校驗,如果校驗正確則寫地址指針跳到下一幀起始地址,并向集中調度模塊發起資源請求;如果校驗錯誤,則寫地址指針不變; 所述錯誤和幀信息統計模塊用于記錄幀信息、統計幀錯誤。3.根據權利要求1所述的一種基于C1Q結構的千兆AFDX交換機,其特征在于所述輸入虛擬隊列包括第一輸入虛擬隊列、第二輸入虛擬隊列,所述輸入端口將接收到的數據幀交替寫入第一輸入虛擬隊列和第二輸入虛擬隊列。4.根據權利要求1所述的一種基于C1Q結構的千兆AFDX交換機,其特征在于所述的集中調度模塊包含集中調度器、輸出端口狀態寄存器0QN、CroSSbar狀態寄存器Ck; 所述輸出端口狀態寄存器OQn用于存儲各輸出緩存隊列的狀態信息; 所述Crossbar狀態寄存器Ck用于存儲各單信元寄存器的狀態信息; 所述集中調度器用于先根據輸出端口狀態寄存器OQn對輸出緩存隊列的狀態進行判斷,若輸出緩存隊列為可用狀態則查詢Crossbar狀態寄存器并對資源請求按照輪詢仲裁策略分配交叉開關矩陣。5.根據權利要求1所述的一種基于C1Q結構的千兆AFDX交換機,其特征在于所述多個并行交叉開關矩陣中,交叉開關矩陣的個數為:N/6S交叉開關矩陣數目<N/3,N為輸入端口數目。6.根據權利要求1所述的一種基于C1Q結構的千兆AFDX交換機,其特征在于所述輸出端口緩存隊列包含一個高優先級隊列和一個低優先級隊列,用于緩存相應優先級的頭信元; 集中調度模塊用于根據頭信元的優先級對對應的高優先級隊列或低優先級隊列的狀態進行判斷。7.根據權利要求1所述的一種基于C1Q結構的千兆AFDX交換機,其特征在于,所述輸入虛擬隊列、單信元寄存器的輸出緩存隊列的讀寫位寬相同,頭信元的大小等于輸入虛擬隊列的讀寫位寬的值。8.根據權利要求1所述的一種基于C1Q結構的千兆AFDX交換機,其特征在于,每N/4個輸入端口共享一個虛擬鏈路配置表。9.一種用于基于C1Q結構的千兆AFDX交換機的交換方法,包含以下步驟: a.數據幀到達輸入端口i,輸入端口接收數據幀并交替寫入該輸入端口的兩個輸入虛擬隊列,同時對數據幀進行CRC、長度、完整性校驗,通過校驗的數據幀進行VL校驗;輸入虛擬隊列中的通過所有校驗的合法數據幀向集中調度模塊發起資源申請;其中,OSiSN-1,N為輸入端口數; b.集中調度模塊根據數據幀的優先級以及申請的輸出端口查詢相應輸出端口的輸出緩存隊列的狀態,若該數據幀申請的輸出端口的輸出緩存隊列不可用,則丟棄該數據幀并在對應輸出端口中記錄該丟幀信息;否則,集中調度模塊按照輪詢仲裁策略分配交叉開關矩陣,接通交叉開關矩陣的輸入端; c.若輸入虛擬隊列中的數據幀未得到交叉開關矩陣,則在輸入虛擬隊列中繼續等待下一次輪詢;得到交叉開關矩陣的輸入虛擬隊列,則把數據幀的頭信元送入單信元寄存器中,并向該數據幀需要轉發的輸出端口發起輸出申請,待整個數據幀發送完成之后釋放交叉開關矩陣; d.輸出端口控制器對有數據傳輸的交叉開關矩陣進行輪流應答和接收,如果該輸出端口資源不可用則丟棄由交叉開關矩陣發送過來的頭信元,并記錄丟幀信息;否則,判別頭信元,記錄幀長信息和時標,并把頭信元從單信元寄存器寫入相應優先級的輸出緩沖隊列,整個數據幀完整接收后重新等待下一幀的頭信元; e.輸出端口根據輸出緩存隊列中幀的信息判斷對應幀是否超過最大延時,如果超過,則丟幀并記錄丟幀信息,否則從輸出端口發送該數據幀。10.根據權利要求9所述的交換方法,其特征在于,步驟d中,輸出端口控制器把頭信元從單信元寄存器寫入輸出緩沖隊列時為頭信元附加數據幀長度和輸出端口信息。
【文檔編號】H04L12/931GK105897621SQ201610512921
【公開日】2016年8月24日
【申請日】2016年7月1日
【發明人】王榮陽, 李修杰, 楊愛良, 周偉
【申請人】中國航空無線電電子研究所