一種基于共享緩存的fc網絡余度發送控制方法
【技術領域】
[0001 ]本發明涉及一種FC網絡余度發送控制方法,特別涉及一種基于共享緩存的FC網絡余度發送控制方法。
【背景技術】
[0002]在FC網絡通信領域,往往會采用增加余度網絡的方式來保證數據傳輸的可靠性,在這種情況下,發送設備會根據余度網絡的數量增加相應的發送通道,并且會為每個發送通道設置單獨的發送緩存,每條發送數據均會復制到每個發送通道的發送緩存中,當發送通道空閑時再將數據發出,這種方法雖然能使各發送通道獨立工作,但卻不能滿足將數據同時發送到工作網絡和余度網絡上的要求。
【發明內容】
[0003]本發明的目的是提供一種共享緩存的FC網絡余度發送控制方法,通過使各發送通道共享發送緩存,來達到控制余度發送模式且各余度網絡中數據一致的目的。
[0004]為達到以上目的,本發明是采取如下技術方案予以實現的:
[0005]第一種技術方案:
[0006]—種基于共享緩存的FC網絡余度發送控制系統,如圖1,
[0007]包括發送緩存、控制狀態機、通道同步單元、數據傳輸單元和Μ個同步超時檢測計數器,Μ與發送通道數量相同;
[0008]所述發送緩存由多個大小相同的數據緩存單元組成,每個數據緩存單元存儲待發送數據;
[0009]控制狀態機包括30、31、32、33、34和35六種狀態,狀態間的跳轉關系如圖3,具體為:
[0010]1)狀態機初始狀態為S0狀態;當處于S0狀態時,若發送緩存非空指示有效則跳轉到S1狀態,否則保持S0狀態;
[0011]2)當處于S1狀態時,跳轉到S2狀態;
[0012]3)當處于S2狀態時,若余度模式編碼為0則跳轉到S5狀態,產生數據丟棄信號給數據傳輸單元,若余度模式編碼不為0則跳轉到S3狀態;
[0013]4)當處于S3狀態時,若同步失敗則跳轉到S5狀態,產生數據丟棄信號給數據傳輸單元,若同步成功則跳轉到S4狀態,否則保持S3狀態;
[0014]5)當處于S4狀態時,若傳輸完成則跳轉到S0狀態,否則保持S4狀態;
[0015]6)當處于S5狀態時,跳轉到S0狀態;
[0016]同步超時檢測計數器為自減計數器,用于判斷相應的發送通道是否超時,并將超時結果反饋給通道同步單元;
[0017]通道同步單元在控制狀態機的控制下檢測各發送通道的同步狀態,并反饋同步結果及可用發送通道編碼;
[0018]數據傳輸單元在控制狀態機的控制下將發送數據中的余度模式編碼讀出并傳送給控制狀態機和通道同步單元;當數據傳輸單元接收到啟動傳輸信號,則根據通道同步單元反饋的可用發送通道編碼將數據從發送緩存讀出傳輸給對應的發送通道,并更新發送緩沖讀指針;當數據傳輸單元接收到數據丟棄信號,則不發送數據,直接更新發送緩沖讀指針。
[0019]上述通道同步單元在控制狀態機的控制下檢測各發送通道的同步狀態的具體檢測方法如下:
[0020]通道同步單元在控制狀態機的控制下向各發送通道發出占用請求信號,并檢測各發送通道的允許占用信號和同步超時信號,
[0021]當檢測到允許占用信號時,表明該發送通道處于同步狀態,當未檢測到允許占用信號卻檢測到超時信號時,表明該發送通道處于超時狀態,否則表明該發送通道處于檢測狀態,當所有的目標發送通道均不處于檢測狀態且至少有一個發送通道處于同步狀態時,通道同步單元產生同步完成信號,并產生可用發送通道編碼傳送給數據傳輸單元,該編碼為Μ位,每一位對應一個通道,置1表示對應發送通道處于同步狀態,置0表示對應發送通道不可用,當所有的目標發送通道均處于超時狀態,則產生同步失敗信號。
[0022]上述同步超時檢測計數器判斷相應的發送通道是否超時的具體方法如下:
[0023]當通道同步單元向某一個發送通道發出占用請求時,啟動對應的同步超時檢測計數器,若在同步超時檢測計數器自減到0之前接收到允許占用信號,則同步超時檢測計數器停止計數并恢復到初始值,若在同步超時檢測計數器自減到0時還未接收到允許占用信號,則輸出對應的超時信號。
[0024]上述待發送數據格式如圖2所示,在FC幀的S0F前增加兩個32位的數據,第一個32位數據為余度模式編碼,第二個32位數據為整個FC幀的長度值,其中余度模式編碼的每一位對應一個發送通道,若需要使用某發送通道則將對應位置1,否則置0。
[0025]第二種技術方案
[0026]利用上述基于共享緩存的FC網絡余度發送控制系統的FC網絡余度發送控制方法,如圖4,包括以下步驟:
[0027]1)檢測發送緩存非空指示信號,此時,控制狀態機處于S0狀態,
[0028]2)當檢測到發送緩存非空指示時,表示有數據需要發送,控制狀態機跳轉到S1狀態,并向數據傳輸單元發出讀余度編碼信號;
[0029]當未檢測到發送緩存非空指示時,轉步驟1);
[0030]3)數據傳輸單元將發送數據中的余度模式編碼讀出并傳送給控制狀態機和通道同步單元;
[0031 ] 4)控制狀態機跳轉到S2狀態,并檢測余度模式編碼;
[0032]5)當余度模式編碼為0時,控制狀態機跳轉到S5狀態并產生數據丟棄信號,數據傳輸單元檢測到數據丟棄信號后,直接更新發送緩沖讀指針,控制狀態機跳轉到S0狀態;
[0033]當余度模式編碼不為0時,啟動通道同步單元,控制狀態機跳轉到S3狀態;
[0034]6)通道同步單元根據余度模式編碼向對應的發送通道發出請求占用信號,并啟動對應的同步超時檢測計數器;
[0035]7)通道同步單元檢測允許占用信號和同步超時信號,當所有目標發送通道均處于超時狀態時,產生同步失敗信號,控制狀態機檢測到同步失敗信號則跳轉到S5狀態并產生數據丟棄信號,當數據傳輸單元檢測到數據丟棄信號后,直接更新發送緩沖讀指針,控制狀態機跳轉到SO狀態;
[0036]當所有目標發送通道均不處于檢測狀態和超時狀態時,產生同步完成信號并將可用發送通道編碼傳送給數據傳輸單元,控制狀態機檢測到同步完成信號則跳轉到S4狀態并啟動數據傳輸單元進行數據傳輸;
[0037]8)當數據傳輸完成后,數據傳輸單元產生傳輸完成信號,控制狀態機檢測到傳輸完成信號則跳轉到S0狀態。
[0038]本發明的有益效果是:
[0039]a)減少緩存使用。所有發送通道共享發送緩存,有效減少緩存的使用,提高緩存的利用率。
[0040]b)能夠單獨控制每條發送數據使用的發送通道。
[0041]c)僅需在發送數據前附加上余度模式編碼即可,使用簡單。
【附圖說明】
[0042]圖1是本發明的技術方案示意圖;
[0043]圖2是本發明發送緩存中數據格式示意圖;
[0044]圖3是本發明控制狀態機狀態轉移示意圖;
[0045]圖4是本發明的流程不意圖。
【具體實施方式】
[0046]本發明提出了一種共享緩存的FC網絡余度發送控制系統及方法,采用各發送通道共享發送緩存的方式,在發送數據填入發送緩存時,將設置的余度模式編碼附加在發送數據前,當檢查到余度模式編碼對應的發送通道均準備就緒時,再開始數據發送。本發明不僅能夠靈活的控制余度發送模式,而且能夠保證在各余度網絡上的數據均完全相同。
[0047]下面結合附圖及具體實例對本發明做進一步的詳細說明。
[0048]如圖1所示,本發明提出的一種基于共享緩存的FC網絡余度發送控制系統,包括
[0049]1、發送緩存
[0050]由5個深1024、寬32b的緩存單元組成,每個數據緩沖單元能夠存儲一包完整的FC數據,發送數據依次循環寫入各數據緩沖單元,通過讀寫指針進行管理,寫入數據時寫指針累加,讀出數據時讀指針累加,當讀寫指針不相等時輸出非空指示信號,待發送數據需按照如圖2所示格式組織好后再寫入,其中余度模式編碼的每一位對應一個發送通道,若需要使用某發送通道則將對應的位置1,否則置0;
[0051]2、控制狀態機
[0052]控制狀態機