一種fifo異常處理方法及裝置的制造方法
【技術領域】
[0001]本發明涉及存儲器領域,尤其涉及一種FIFO異常處理方法及裝置。
【背景技術】
[0002]隨著新技術的演進和發展,相關業務的處理速率變得越來越高,芯片內部所使用的FIFO (First Input First Output,先進先出寄存器)數量越來越多,以往使用單個FIFO來處理的模式已經不能滿足現代數據業務處理的需求,這種情況下,我們往往需要使用一組或者多組FIFO來同時處理相關業務,例如在存在多個FIFO時,一般地,技術人員會對多個FIFO分組,采用多個FIFO組來處理相關業務。而伴隨使用多組FIFO處理相關業務時,FIFO組內的某個FIFO存在異常時,比如一定概率出現比如偶發性空滿、同組FIFO讀寫地址不同步,由于各個FIFO的地址都是獨立控制的,采用單獨對異常FIFO進行同步復位,也不能保證同組FIFO中數據傳輸的正確,現有技術中并沒有有效的對多個FIFO組進行異常檢測的方法。
【發明內容】
[0003]本發明要解決的主要技術問題是,提供一種FIFO異常處理方法及裝置,能夠對多個FIFO組進行有效的異常檢測,保證各個FIFO數據傳輸的正確性。
[0004]為解決上述技術問題,本發明提供一種FIFO異常處理方法,其特征在于,包括如下步驟:
[0005]在至少一個FIFO組的工作過程中,對各個FIFO組中的FIFO進行異常檢測;
[0006]當檢測到FIFO存在異常時,對異常FIFO所在的FIFO組進行同步復位。
[0007]進一步地,所述異常檢測包括:檢測FIFO是否存在地址不同步,或者檢測FIFO是否出現空或滿狀態。
[0008]進一步地,所述檢測FIFO是否存在地址不同步的過程包括:
[0009]在對當前FIFO進行檢測時,獲取當前時刻所有FIFO的地址;
[0010]獲取當前FIFO所在FIFO組的第一個FIFO當前時刻的地址;
[0011]比較當前FIFO的地址與所述第一個FIFO當前時刻的地址,如果不同,則該FIFO存在地址不同步;
[0012]所述對異常FIFO所在的FIFO組進行同步復位的過程包括:
[0013]獲取與該異常FIFO同組的所有FIFO ;
[0014]對該異常FIFO所在FIFO組中所有FIFO同時進行同步復位。
[0015]進一步地,所述方法在對各個FIFO組中的FIFO進行異常檢測之前還包括:配置各個FIFO組中FIFO的控制標識信息;
[0016]所述對各個FIFO組中的FIFO進行異常檢測步驟包括:
[0017]根據所述控制標識信息對同一個FIFO組中的FIFO進行異常檢測;
[0018]所述獲取當前FIFO所在FIFO組的第一個FIFO當前時刻的地址的步驟包括:
[0019]根據所述控制標識信息獲取當前FIFO所在FIFO組的第一個FIFO當前時刻的地址;
[0020]所述獲取與該異常FIFO同組的所有FIFO的步驟包括:
[0021]根據所述控制標識信息獲取與該異常FIFO同組的所有FIFO。
[0022]進一步地,所述方法在獲取當前時刻所有FIFO的地址之前還包括:鎖存所有FIFO當前時刻的地址
[0023]進一步地,所述方法還包括:對各個FIFO進行讀寫使能的初始化處理;
[0024]所述方法在獲取當前時刻所有FIFO的地址之前還包括:
[0025]檢測當前FIFO的初始化是否已經完成,若完成,則獲取當前時刻所有FIFO的地址。
[0026]同樣為了解決上述的技術問題,本發明還提供了一種FIFO異常處理裝置,包括:檢測模塊和同步復位模塊;
[0027]所述檢測模塊用于在至少一個FIFO組的工作過程中,對各個FIFO組中的FIFO進行異常檢測;
[0028]所述同步復位模塊用于當所述檢測模塊檢測到FIFO存在異常時,對異常FIFO所在的FIFO組進行同步復位。
[0029]進一步地,所述異常檢測包括:檢測FIFO是否存在地址不同步,或者檢測FIFO是否出現空或滿狀態。
[0030]進一步地,所述檢測模塊用于檢測檢測FIFO是否存在地址不同步的過程包括:
[0031]在對當前FIFO進行檢測時,獲取當前時刻所有FIFO的地址;
[0032]獲取當前FIFO所在FIFO組的第一個FIFO當前時刻的地址;
[0033]比較當前FIFO的地址與所述第一個FIFO當前時刻的地址,如果不同,則該FIFO存在地址不同步;
[0034]所述同步復位模塊用于獲取與該異常FIFO同組的所有FIF0,對該異常FIFO所在FIFO組中所有FIFO同時進行同步復位。
[0035]進一步地,所述裝置還包括配置模塊;
[0036]所述配置模塊用于在對各個FIFO組中的FIFO進行異常檢測之前,配置各個FIFO組中FIFO的控制標識信息;
[0037]所述檢測模塊用于根據所述控制標識信息對同一個FIFO組中的FIFO進行異常檢測,在異常檢測過程中,根據所述控制標識信息獲取當前FIFO所在FIFO組的第一個FIFO當前時刻的地址;
[0038]所述同步復位模塊用于根據所述控制標識信息獲取與該異常FIFO同組的所有FIFO。
[0039]進一步地,所述檢測模塊還用于在獲取當前時刻所有FIFO的地址之前鎖存所有FIFO當前時刻的地址。
[0040]進一步地,所述裝置還包括:初始化處理模塊;
[0041]所述初始化處理模塊用于對各個FIFO進行讀寫使能的初始化處理;
[0042]所述檢測模塊還用于在獲取當前時刻所有FIFO的地址之前檢測當前FIFO的初始化是否已經完成,若完成,則獲取當前時刻所有FIFO的地址。
[0043]本發明的有益效果是:
[0044]本發明提供了一種FIFO異常處理方法及裝置可以對多個FIFO組進行有效的異常檢測,保證各個FIFO數據傳輸的正確性。具體地,本發明的異常處理方法包括:在至少一個FIFO組的工作過程中,對各個FIFO組中的FIFO進行異常檢測;當檢測到FIFO存在異常時,對異常FIFO所在的FIFO組進行同步復位;本發明的方法可以對每個FIFO組中所有的FIFO進行實時異常檢測,當發現有FIFO存在異常時,對該異常FIFO所在的FIFO組進行同步復位,即對該FIFO組內所有的FIFO同步復位,這樣保證了該FIFO組傳輸數據的正確性,與現有技術相比,本發明的方法可以實現多個FIFO組的異常檢測和同步復位,從而保證同組FIFO數據傳輸的正確性。
【附圖說明】
[0045]圖1本發明實施例一提供的一種FIFO異常處理方法的流程示意圖;
[0046]圖2為本發明實施例一提供的另一種FIFO異常處理方法的流程示意圖;
[0047]圖3為本發明實施例二提供的第一種FIFO異常處理裝置的結構示意圖;
[0048]圖4為本發明實施例二提供的第二種FIFO異常處理裝置的結構示意圖;
[0049]圖5為本發明實施例二提供的第三種FIFO異常處理裝置的結構示意圖;
[0050]圖6為本發明實施例三提供的一種FIFO異常處理系統的結構示意圖;
[0051]圖7為本發明實施例三提供的狀態機九種狀態的表格;
[0052]圖8為本發明實施例收納提供的一種地址檢測模塊檢測FIFO異常的流程示意圖。
【具體實施方式】
[0053]下面通過【具體實施方式】結合附圖對本發明作進一步詳細說明。
[0054]實施例一:
[0055]如圖1所示,本實施例提供了一種FIFO異常處理方法,具體包括如下步驟:
[0056]步驟101:在至少一個FIFO組的工作過程中,各個FIFO組中的FIFO進行異常檢測。
[0057]本實施例方法適用于一組或者多組FIF0,其可以對所有FIFO進行檢測,例如可以輪詢檢測所有FIFO組中的FIFO進行異常檢測。
[0058]本實施例方法可以是在對多個FIFO進行分組后,對FIFO組中FIFO進行異常檢測。
[0059]本實施例方法中異常檢測的內容可以包括:檢測FIFO是否存在地址不同步,或者檢測FIFO是否出現空或滿狀態。例如可以檢測:FIF0偶發性空滿、FIFO讀寫地址是否同步以及其他FIFO可能出現的異常情況。
[0060]步驟102:當檢測到FIFO存在異常時,對異常FIFO所在的FIFO組進行同步復位。
[0061]本實施例對異常FIFO所在的FIFO組進行同步復位具體為:對與異常FIFO在同一組的所有FIFO以及異常FIFO本身進行同步復位。
[0062]以下以異常檢測包括:檢測FIFO是否存在地址不同步為例來說明本實施例的方法,具體地,本實施例方法中檢測FIFO是否存在地址不同步的過程可以包括:
[0063]在對當前FIFO進行檢測時,獲取當前時刻所有FIFO的地址;
[0064]獲取當前FIFO所在FIFO組的第一個FIFO當前時刻的地址;
[0065]比較當前FIFO的地址與所述第一個FIFO當前時刻的地址,如果不同,則該FIFO存在地址不同步;
[0066]此時,本實施例方法中對異常FIFO所在的FIFO組進行同步復位的過程可以包括:
[0067]獲取與該異