一種隨機存儲器的檢測方法及系統的制作方法
【專利摘要】本發明提供了一種隨機存儲器的檢測方法及系統,所述方法包括:第二處理器監聽第一處理器和主用隨機存儲器的連接端口;若監聽到所述第一處理器向所述主用隨機存儲器的第一地址寫入數據,獲取所述數據,并將所述數據取反后寫入備用隨機存儲器的第二地址;若監聽到所述第一處理器從所述主用隨機存儲器的第一地址讀取數據,獲取所述第一處理器從所述第一地址讀取的數據,并從所述第二地址讀取數據,將從所述第一地址讀取的數據與從所述第二地址讀取的數據進行比較,根據比較結果輸出檢測信號。可見,本發明能夠實時地對主用隨機存儲器的數據傳輸進行檢測,而且不需要在所有地址都寫入數據,從而減少耗時。并且能夠很好地避免共因失效因素。
【專利說明】
一種隨機存儲器的檢測方法及系統
技術領域
[0001]本發明涉及工業控制領域,尤其是涉及一種隨機存儲器的檢測方法及系統。
【背景技術】
[0002]同步動態隨機存儲器(英文:SynchronousDynamic Random Access Memory,簡稱SDRAM)等隨機存儲器具有價格低、數據傳輸率高、制造工藝簡單等特點,廣泛應用于數字電路系統中。
[0003]然而,由于電磁干擾或工藝缺陷等影響,隨機存儲器在數據傳輸時存在一定的單比特狀態翻轉錯誤的機率,錯誤的數據傳輸可能會導致系統運行出現錯誤,甚至威脅系統的安全。由于隨機存儲器通常沒有自檢功能,如何對隨機存儲器的數據傳輸進行檢測,是保障系統安全運行的關鍵因素。
[0004]—種常用的檢測方式是,在隨機存儲器正式使用之前,向隨機存儲器的所有地址寫入數據并讀取寫入的數據,通過將讀取的數據與寫入的數據進行比較,檢測隨機存儲器的數據傳輸是否正常。
[0005]然而,這種檢測方式只能在隨機存儲器正式使用之前進行檢測,實時性很差,不能檢測出使用過程中出現的翻轉錯誤。而且檢測時需要在隨機存儲器的所有地址都寫入數據,檢測耗時較長。
【發明內容】
[0006]本發明解決的技術問題在于提供一種隨機存儲器的檢測方法及系統,以實現能夠實時地對隨機存儲器的數據傳輸進行檢測,而且不需要在隨機存儲器的所有地址都寫入數據,從而減少耗時。
[0007]為此,本發明解決技術問題的技術方案是:
[0008]本發明提供了一種隨機存儲器的檢測方法,所述方法包括:
[0009]第二處理器監聽第一處理器和主用隨機存儲器的連接端口 ;
[0010]若監聽到所述第一處理器向所述主用隨機存儲器的第一地址寫入數據,所述第二處理器獲取所述數據,并將所述數據取反后寫入備用隨機存儲器的第二地址;
[0011]若監聽到所述第一處理器從所述主用隨機存儲器的第一地址讀取數據,所述第二處理器獲取所述第一處理器從所述第一地址讀取的數據,并從所述備用隨機存儲器的第二地址讀取數據;
[0012]所述第二處理器將獲取的、所述第一處理器從所述第一地址讀取的數據,與從所述第二地址讀取的數據進行比較,根據比較結果輸出檢測信號。
[0013]可選的,若所述比較結果表示從所述第二地址讀取的數據,與從所述第一地址讀取的數據取反后相匹配,所述檢測信號為初始信號;
[0014]若所述比較結果表示從所述第二地址讀取的數據,與從所述第一地址讀取的數據取反后不匹配,所述檢測信號為異常信號。
[0015]可選的,所述根據比較結果輸出檢測信號包括:
[0016]根據比較結果向所述第一處理器輸出檢測信號。
[0017]可選的,若所述檢測信號為異常信號;所述方法還包括:
[0018]所述第二處理器接收到所述第一處理器發送的清除信號;
[0019]所述第二處理器向所述第一處理器輸出初始信號。
[0020]可選的,所述第二地址根據所述第一地址確定出。
[0021]可選的,還包括:
[0022]若監聽到所述第一處理器向所述主用隨機存儲器的第三地址寫入數據并接收到錯誤注入信號時,所述第二處理器獲取向所述第三地址寫入的數據,并直接寫入所述備用隨機存儲器的第四地址;
[0023]若監聽到所述第一處理器從所述主用隨機存儲器的第三地址讀取數據,所述第二處理器獲取所述第一處理器從所述第三地址讀取的數據,并從所述備用隨機存儲器的第四地址讀取數據;
[0024]所述第二處理器將獲取的、所述第一處理器從所述第三地址讀取的數據,與從所述第四地址讀取的數據進行比較,根據比較結果生成檢測結果。
[0025]本發明提供了一種隨機存儲器的檢測系統,第一處理器和主用隨機存儲器相連,第二處理器與第一處理器和主用隨機存儲器的連接端口相連,并且與備用隨機存儲器相連;所述系統包括:所述第二處理器和所述備用隨機存儲器;
[0026]所述第二處理器用于監聽所述連接端口;若監聽到所述第一處理器向所述主用隨機存儲器的第一地址寫入數據,獲取所述數據,并將所述數據取反后寫入所述備用隨機存儲器的第二地址;若監聽到所述第一處理器從所述主用隨機存儲器的第一地址讀取數據,獲取所述第一處理器從所述第一地址讀取的數據,并從所述備用隨機存儲器的第二地址讀取數據;
[0027]所述第二處理器還用于,將獲取的、所述第一處理器從所述第一地址讀取的數據,與從所述第二地址讀取的數據進行比較,根據比較結果輸出檢測信號。
[0028]可選的,若所述比較結果表示從所述第二地址讀取的數據,與從所述第一地址讀取的數據取反后相匹配,所述檢測信號為初始信號;
[0029]若所述比較結果表示從所述第二地址讀取的數據,與從所述第一地址讀取的數據取反后不匹配,所述檢測信號為異常信號。
[0030]可選的,所述第二處理器還與所述第一處理器的第一端口相連,所述第一端口不同于所述連接端口;
[0031]當根據比較結果輸出檢測信號時,所述第二處理器具體用于根據比較結果向所述第一處理器的所述第一端口輸出檢測信號。
[0032]可選的,所述第二處理器還與所述第一處理器的第二端口相連,所述第二端口不同于所述連接端口;
[0033]若所述檢測信號為異常信號,所述第二處理器還用于接收到所述第一處理器的所述第二端口發送的清除信號,向所述第一處理器的所述第一端口輸出初始信號。
[0034]可選的,所述第二地址根據所述第一地址確定出。
[0035]可選的,所述第二處理器還與所述第一處理器的第三端口相連,所述第三端口不同于所述連接端口;
[0036]所述第二處理器還用于,若監聽到所述第一處理器向所述主用隨機存儲器的第三地址寫入數據并接收到所述第三端口發送的錯誤注入信號時,獲取向所述第三地址寫入的數據,并直接寫入所述備用隨機存儲器的第四地址;若監聽到所述第一處理器從所述主用隨機存儲器的第三地址讀取數據,獲取所述第一處理器從所述第三地址讀取的數據,并從所述備用隨機存儲器的第四地址讀取數據;
[0037]所述第二處理器還用于,將獲取的、所述第一處理器從所述第三地址讀取的數據,與從所述第四地址讀取的數據進行比較,根據比較結果生成檢測結果。
[0038]通過上述技術方案可知,本發明實施例中,第二處理器會監聽第一處理器和主用隨機存儲器的連接端口,當監聽到所述第一處理器向所述主用隨機存儲器的第一地址寫入數據,會將所述數據取反后寫入備用隨機存儲器的第二地址,當監聽到所述第一處理器從所述主用隨機存儲器的第一地址讀取數據,所述第二處理器會獲取所述第一處理器從所述第一地址讀取的數據,并從所述備用隨機存儲器的第二地址讀取數據,并將從所述第一地址和所述第二地址讀取的數據進行比較,根據比較結果輸出檢測信號。可見,本發明實施例中能夠實時地對隨機存儲器的數據傳輸進行檢測,而且不需要在所有地址都寫入數據,從而減少耗時。另外,本發明實施例在向備用隨機存儲器存儲數據時,會對數據進行取反操作后再進行存儲,能夠避免共因失效因素。
【附圖說明】
[0039]為了更清楚地說明本發明實施例中的技術方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對于本領域普通技術人員來講,還可以根據這些附圖獲得其它的附圖。
[0040]圖1為現有技術中的一種傳輸系統;
[0041 ]圖2為本發明實施例提供的一種方法實施例的流程示意圖;
[0042]圖3為本發明實施例提供的一種存儲系統的結構示意圖;
[0043]圖4為本發明實施例提供的另一種方法實施例的流程示意圖;
[0044]圖5為本發明實施例提供的另一種存儲系統的結構示意圖;
[0045]圖6為本發明實施例提供的CPLD的數據流向示意圖。
【具體實施方式】
[0046]隨機存儲器的傳輸系統如圖1所示,可以由第一處理器101向隨機存儲器102寫入數據,也可以由第一處理器101從隨機存儲器102中讀取數據。由于隨機存儲器通常沒有自檢功能,如何對隨機存儲器的數據傳輸進行檢測,是保障系統安全運行的關鍵因素。
[0047]—種常用的檢測方式是,在隨機存儲器使用之前,向隨機存儲器的所有地址寫入數據并讀取寫入的數據,通過將讀取的數據與寫入的數據進行比較,檢測隨機存儲器的數據傳輸是否正常。然而,這種檢測方式實時性很差,不能檢測出使用過程中出現的翻轉錯誤。而且檢測耗時較長。此外還有兩種檢測方式,一種是利用嵌入式操作系統的地址映射功能實現隨機存儲器的自檢,另一種是利用嵌入式處理器體系結構內建的差錯檢測和報告機制進行檢測。這兩種方式都需要依賴于嵌入式處理系統,開發成本高,廣泛適用性差。
[0048]本發明實施例提供一種隨機存儲器的檢測方法及系統,以實現能夠實時地對隨機存儲器的數據傳輸進行檢測,而且不需要在隨機存儲器的所有地址都寫入數據,從而減少耗時。并且,不需要借助于嵌入式處理系統,開發成功低從而廣泛適用性高。另外其采用的是旁路檢測方式,即使檢測功能出錯也不會對隨機存儲器的正常使用造成影響。
[0049]為了使本技術領域的人員更好地理解本發明中的技術方案,下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有作出創造性勞動前提下所獲得的所有其他實施例,都應當屬于本發明保護的范圍。
[0050]請參閱圖2,本發明實施例提供了隨機存儲器的檢測方法的一種方法實施例。
[0051]本實施例可以用于如圖3所示的存儲系統中,該系統包括第一處理器301、主用隨機存儲器302、第二處理器303和備用隨機存儲器304。其中,第一處理器301與主用隨機存儲器302相連,從而第一處理器301與主用隨機存儲器302可以進行數據傳輸,例如,第一處理器301向主用隨機存儲器302寫入數據,或者第一處理器301從主用隨機存儲器302讀取數據。
[0052]本實施例的所述方法包括:
[0053]S201:第二處理器303監聽第一處理器301和主用隨機存儲器302的連接端口。
[0054]其中,第二處理器303與第一處理器301和主用隨機存儲器302的連接端口相連,從而監聽所述連接端口,確定第一處理器301是否與主用隨機處理器302進行數據傳輸。
[0055]S202:若監聽到第一處理器301向主用隨機存儲器302的第一地址寫入數據,第二處理器303獲取第一處理器301向所述第一地址寫入的數據,并將該數據取反后寫入備用隨機存儲器304的第二地址。
[0056]本發明實施例中,若第一處理器301向主用隨機存儲器302寫入數據,第二處理器303會監聽到該寫入操作,并獲取到該寫入操作的寫入地址(即第一地址),并將所述數據取反后寫入備用隨機存儲器304的第二地址。其中,第二地址可以根據第一地址確定。例如,第一地址與第二地址相同,第一地址可以為第O位到第15位,第二地址也可以為第O位到第15位。第二處理器303對應存儲所述第一地址和所述第二地址。
[0057]其中,第二處理器303并不是直接將數據寫入到備用隨機存儲器304,而是會對數據進行取反后再進行存儲,能夠很好地避免共因失效因素(由于相同問題造成的錯誤)。取反操作指的是將數據中的高低電平反轉。
[0058]S203:若監聽到第一處理器301從主用隨機存儲器302的第一地址讀取數據,第二處理器303獲取第一處理器301從主用隨機存儲器302的第一地址讀取的數據,并從備用隨機存儲器304的第二地址讀取數據。
[0059]若第一處理器301從主用隨機存儲器302讀取已經寫入的數據,第二處理器303會監聽到該讀取操作,獲取到該讀取操作的第一地址,并獲取該讀取操作讀取的數據。此外,第二處理器303還會獲取到第一地址對應的第二地址,并從備用隨機存儲器304的第二地址讀取數據。
[0060]S204:第二處理器303將獲取的、第一處理器301從主用隨機存儲器302的第一地址讀取的數據,與第二處理器303從備用隨機存儲器304的第二地址讀取的數據進行比較,根據比較結果輸出檢測信號。
[0061]其中,若所述比較結果表示從所述第二地址讀取的數據,與從所述第一地址讀取的數據取反后相匹配,所述檢測信號為初始信號,即表示本次傳輸正常。相匹配可以指的是完全相同或者相同的比例達到預定百分比等。若所述比較結果表示從所述第二地址讀取的數據,與從所述第一地址讀取的數據取反后不匹配,所述檢測信號為異常信號err0r_flag,即表示本次傳輸出現錯誤。
[0062]通過上述技術方案可知,本發明實施例中,第二處理器203會監聽第一處理器201和主用隨機存儲器202的連接端口,當監聽到第一處理器201向主用隨機存儲器202的第一地址寫入數據,會將所述數據取反后寫入備用隨機存儲器204的第二地址,當監聽到第一處理器201從主用隨機存儲器202的第一地址讀取數據,第二處理器203會獲取第一處理器201從所述第一地址讀取的數據,從備用隨機存儲器204的第二地址讀取數據,并將從所述第一地址和所述第二地址讀取的數據進行比較,根據比較結果輸出檢測信號。可見,本發明實施例中用于主用隨機存儲器202的使用過程中,能夠實時地對主用隨機存儲器202的數據傳輸進行檢測,而且不需要在所有地址都寫入數據,從而減少耗時。另外,本發明實施例在向備用隨機存儲器204存儲數據時,會對數據進行取反操作后再進行存儲,能夠很好地避免共因失效因素。
[0063]此外,本發明實施例提供的方法不需要借助于嵌入式處理系統,開發成功低從而廣泛適用性高。另外其采用的是旁路檢測方式,即使檢測功能出錯也不會對主用隨機存儲器的正常使用造成影響,從而避免第一處理器讀寫操作的中斷。若第二處理器或者備用隨機存儲器出現異常時,可以采用錯誤檢測糾錯(Error Correcting Code,ECC)模塊代替,從而實現錯誤數據的檢測及恢復。
[0064]本實施例中,第一處理器301可以為中央處理器(Central Processing Unit,CPU)等,而第二處理器304可以為現場可編程門陣列(Field — Programmable Gate Array ,FPGA)、復雜可編程邏輯器件(Complex Programmable Logic Device,CPLD)等。本實施例中,主用隨機存儲器302和備用隨機存儲器304可以為任一種隨機存儲設備,例如靜態隨機存儲器(Static Random Access Memory,SRAM)、同步動態隨機存儲器(SynchronousDynamic Random Access Memory,SDRAM)、雙倍速率同步動態隨機存儲器(Double DataRate ,DDR)、DDR2、DDR3等。
[0065]本發明實施例中,第二處理器303可以向第一處理器301輸出檢測信號。例如,若第二處理器303向第一處理器301輸出初始信號(例如O),表不本次傳輸正常,若第二處理器303向第一處理器302輸出異常信號error_flag(例如I),表不本次傳輸異常。其中,第一處理器301可以通過中斷的方式處理檢測信號。
[0066]若第二處理器303向第一處理器301輸出異常信號,則第一處理器301接收到異常信號后做出對應的處理方式,例如報警等,保證數據傳輸異常時能夠及時發現。其中,第一處理器301還可以向第二處理器303發送清除信號,第二處理器303接收到清除信號后,根據該清除信號輸出初始信號。例如,第二處理器303輸出I,接收到清除信號后,輸出O。
[0067]本實施例中還支持錯誤注入模式,也就是說第二處理器303向備用隨機存儲器304寫入數據前不進行取反操作,而是直接將數據進行寫入。從而使得第二處理器303輸出的檢測信號一定為異常信號,用于檢測第二處理器303和備用隨機存儲器304實現的旁路檢測功能是否正常。
[0068]具體地,所述方法還可以包括:若監聽到第一處理器301向主用隨機存儲器302的第三地址寫入數據并接收到錯誤注入信號時,第二處理器303獲取向第三地址寫入的數據,并直接寫入備用隨機存儲器304的第四地址;若監聽到第一處理器301從主用隨機存儲器302的第三地址讀取數據,第二處理器303獲取第一處理器301從主用隨機存儲器302的第三地址讀取的數據,并從備用隨機存儲器304的第四地址讀取數據;第二處理器303將獲取的、第一處理器301從第三地址讀取的數據,與從第四地址讀取的數據進行比較,根據比較結果生成檢測結果。
[0069]下面本發明通過一個具體的實施例進行說明。
[0070]請參閱圖4,本發明實施例提供了隨機存儲器的檢測方法的另一種方法實施例。
[0071]本實施例以圖5所示的系統為例加以介紹,該系統包括CPU501、SDRAM502、CPLD503和SDRAM504。其中,CPLD可以包括解析模塊、數據控制模塊和診斷模塊。可見,本實施例中以第一處理器具體為CPU,第二處理器具體為CPLD,隨機存儲器具體為SDRAM進行示例性介紹,而本發明實施例中對此并不加以限定。
[0072]本實施例的所述方法包括:
[0073]S401:解析模塊監聽CPU501和SDRAM502的連接端口。
[0074]S402:若解析模塊監聽到CPU501向SDRAM502發送控制信號01,將該控制信號01解析后作為控制信號02發送至SDRAM504,確保SDRAM504與SDRAM502執行相同的動作。
[0075]例如圖6所示,控制信號01包括地址信號addr_bi[12:0]、行選通信號cas_1、列選通信號res_i和寫使能信號we_i。控制信號02包括:地址信號backup_addr_bo [ 12:0 ]、行選通信號cas_o、列選通信號:res_o和寫使能信號we_o。其中,寫使能信號we_i和we_o用于使能寫操作,地址信號addr_bi [ 12:0]用于表示將數據寫入第一地址,例如第O位到第15位,地址信號baCkup_addr_bO[12:0]用于表示將數據寫入第二地址,例如第O位到第15位。行選通信號和列選通信號用于使能行地址選通和列地址選通。
[0076]S403:解析模塊監聽到CPU501向SDRAM502發送控制信號01時,數據控制模塊獲取CPU501向SDRAM502發送的數據dq[ 15:0],并將該數據dq[ 15:0]取反后得到backup_dq[ 15:
O],將數據backup_dq [15:0]發送至SDRAM504。SDRAM502會根據控制信號OI將接收到的數據寫入第一地址。SDRAM504會根據控制信號02將接收到的數據寫入第二地址。
[0077]本實施例中,CPU501可以對SDRAM502進行8比特、16比特、24比特或者突發模式的讀寫操作,CPLD503對SDRAM504進行相同模式的讀寫操作。
[0078]S404:若解析模塊監聽到CPU501向SDRAM502發送控制信號03,將該控制信號03解析后作為控制信號04發送至SDRAM504。
[0079]控制信號03包括地址信號addr_bi [ 12:0]、行選通信號cas_1、列選通信號^8_1和讀使能信號:rd_i。控制信號04包括:地址信號backup_addr_bo [12:0]、行選通信號cas_o、列選通信號res_o和讀使能信號rd_o。其中,讀使能信號rd_i^Prd_o用于使能讀操作,地址信號addr_bi [12:0 ]用于表示從第一地址讀取數據,地址信號backup_addr_bo [12:0 ]用于表示從第二地址讀取數據。行選通信號和列選通信號用于表示使能行地址選通和列地址選通。
[0080]S405:解析模塊監聽到CPU501向SDRAM502發送控制信號03時,數據控制模塊獲取CPU501從SDRAM502讀取的數據,并且數據控制模塊從SDRAM504讀取數據。由于SDRAM502和S D RAM 5 O 4分別接收到控制信號O 3和控制信號O 4,此時數據控制模塊獲取到的分別是從SDRAM502的第一地址和SDRAM504的第二地址讀取的數據,并把從這兩個地址讀取的數據發送到診斷模塊。
[0081]S406:診斷模塊將分別從第一地址和第二地址讀取的數據進行比較,若比較結果表示從這兩個地址讀取的數據高低電平相反,則表示本次傳輸正常,向CPU501輸出初始信號,否則表示本次傳輸異常,向CPU501輸出異常信號。例如圖6所示,診斷模塊輸出異常信號error_f I ag。當診斷模塊接收到CPU5OI的清除信號后,診斷模塊輸出初始信號,而不再輸出異常信號err or_f I ag。
[0082]其中,解析模塊還可以監聽到CPU501向SDRAM502發送的除控制信號之外的其他信號,例如配置信號(包括初始化配置)、自刷新信號。此時解析模塊會將配置信號、自刷新信號等解析后發送至SDRAM504。
[0083]本實施例還支持錯誤注入模式。若CPU501向CPLD503發送錯誤注入信號時,數據控制模塊會將讀取的數據直接寫入SDRAM504,不進行取反操作。
[0084]對應上述方法實施例,本發明還提供了隨機存儲器的檢測系統的一種方法實施例。
[0085]如圖3所示,本實施例中第一處理器301和主用隨機存儲器302相連,第二處理器303與第一處理器301和主用隨機存儲器302的連接端口相連,并且第二處理器303與備用隨機存儲器304相連;本實施例的所述檢測系統包括:第二處理器303和備用隨機存儲器304。
[0086]本實施例中,第二處理器303用于監聽第一處理器301和主用隨機存儲器302的連接端口。從而確定第一處理器301是否與主用隨機處理器302進行數據傳輸。
[0087]第二處理器303還用于,若監聽到第一處理器301向主用隨機存儲器302的第一地址寫入數據,第二處理器303獲取所述數據,并將所述數據取反后寫入備用隨機存儲器304的第二地址。
[0088]其中,第二地址可以根據第一地址確定。例如,第一地址與第二地址相同,第一地址可以為第O位到第15位,第二地址也可以為第O位到第15位。第二處理器303還用于對應存儲所述第一地址和所述第二地址。
[0089]本實施例中第二處理器303并不是直接將數據寫入到備用隨機存儲器304,而是會對數據進行取反后再進行存儲,能夠很好地避免共因失效因素。
[0090]第二處理器303還用于,若監聽到第一處理器301從主用隨機存儲器302的第一地址讀取數據,第二處理器303獲取第一處理器301從主用隨機存儲器302的第一地址讀取的數據,并從備用隨機存儲器304的第二地址讀取數據。
[0091]第二處理器303還用于,將獲取的、第一處理器301從主用隨機存儲器302的第一地址讀取的數據,與從備用隨機存儲器304的第二地址讀取的數據進行比較,根據比較結果輸出檢測信號。
[0092]其中,若所述比較結果表示從所述第二地址讀取的數據,與從所述第一地址讀取的數據取反后相匹配,所述檢測信號為初始信號,即表示本次傳輸正常。相匹配可以指的是完全相同或者相同的比例達到預定百分比等。若所述比較結果表示從所述第二地址讀取的數據,與從所述第一地址讀取的數據取反后不匹配,所述檢測信號為異常信號err0r_flag,即表示本次傳輸出現錯誤。
[0093]可見,本實施例的檢測系統用于主用隨機存儲器202的使用過程中,能夠實時地對主用隨機存儲器202的數據傳輸進行檢測,而且不需要在所有地址都寫入數據,從而減少耗時。另外,本發明實施例在向備用隨機存儲器204存儲數據時,會對數據進行取反操作后再進行存儲,能夠很好地避免共因失效因素。
[0094]此外,本發明實施例提供的檢測系統不需要借助于嵌入式處理系統,開發成功低從而廣泛適用性高。另外其采用的是旁路檢測電路,即使檢測功能出錯也不會對主用隨機存儲器的正常使用造成影響,從而避免第一處理器讀寫操作的中斷。若第二處理器或者備用隨機存儲器出現異常時,可以采用ECC模塊代替,從而實現錯誤數據的檢測及恢復。
[0095]本實施例中,第一處理器301可以為CPU等,而第二處理器304可以為FPGA、CPLD等。本實施例中,主用隨機存儲器302和備用隨機存儲器304可以為任一種隨機存儲設備,例如SRAM、SDRAM、DDR、DDR2、DDR3 等。
[0096]本發明實施例中,第二處理器303還可以與第一處理器301的第一端口相連,所述第一端口不同于所述連接端口。第二處理器303可以向第一處理器301的第一端口輸出檢測信號。例如,若第二處理器303向第一端口輸出初始信號(例如O),表不本次傳輸正常,若第二處理器303向第一端口輸出異常信號error_flag(例如I),表不本次傳輸異常。其中,第一處理器301可以通過中斷的方式處理檢測信號。
[0097]若第二處理器303向第一處理器301的第一端口輸出異常信號,則第一處理器301接收到異常信號后做出對應的處理方式,例如報警等,保證數據傳輸異常時能夠及時發現。其中,第二處理器303還可以與第一處理器301的第二端口相連,所述第二端口不同于所述連接端口,第一處理器301還可以向第二處理器303的第二端口發送清除信號,第二處理器303接收到清除信號后,根據該清除信號向第一端口輸出初始信號。例如,第二處理器303向第一端口輸出I,接收到清除信號后,向第一端口輸出O。
[0098]本實施例中還支持錯誤注入模式,也就是說第二處理器303向備用隨機存儲器304寫入數據前不進行取反操作,而是直接將數據進行寫入。從而使得第二處理器303輸出的檢測信號一定為異常信號,用于檢測本實施例的檢測系統是否正常工作。
[0099]具體地,第二處理器303還與第一處理器301的第三端口相連,所述第三端口不同于所述連接端口。第二處理器303還用于,若監聽到第一處理器301向主用隨機存儲器302的第三地址寫入數據并接收到所述第三端口發送的錯誤注入信號時,獲取向所述第三地址寫入的數據,并直接寫入備用隨機存儲器304的第四地址;若監聽到第一處理器301從主用隨機存儲器302的第三地址讀取數據,獲取第一處理器301從主用隨機存儲器302的第三地址讀取的數據,并從備用隨機存儲器304的第四地址讀取數據;第二處理器303還用于,將從所述第三地址讀取的數據,與從所述第四地址讀取的數據進行比較,根據比較結果生成檢測結果。
[0100]所屬領域的技術人員可以清楚地了解到,為描述的方便和簡潔,上述描述的系統,裝置和單元的具體工作過程,可以參考前述方法實施例中的對應過程,在此不再贅述。
[0101]在本發明所提供的幾個實施例中,應該理解到,所揭露的系統,裝置和方法,可以通過其它的方式實現。例如,以上所描述的裝置實施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現時可以有另外的劃分方式,例如多個單元或組件可以結合或者可以集成到另一個系統,或一些特征可以忽略,或不執行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機械或其它的形式。
[0102]所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網絡單元上。可以根據實際的需要選擇其中的部分或者全部單元來實現本實施例方案的目的。
[0103]另外,在本發明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實現,也可以采用軟件功能單元的形式實現。
[0104]所述集成的單元如果以軟件功能單元的形式實現并作為獨立的產品銷售或使用時,可以存儲在一個計算機可讀取存儲介質中。基于這樣的理解,本發明的技術方案本質上或者說對現有技術做出貢獻的部分或者該技術方案的全部或部分可以以軟件產品的形式體現出來,該計算機軟件產品存儲在一個存儲介質中,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網絡設備等)執行本發明各個實施例所述方法的全部或部分步驟。而前述的存儲介質包括:U盤、移動硬盤、只讀存儲器(ROM,Read-OnlyMemory)、隨機存取存儲器(RAM,Random Access Memory)、磁碟或者光盤等各種可以存儲程序代碼的介質。
[0105]以上所述,以上實施例僅用以說明本發明的技術方案,而非對其限制;盡管參照前述實施例對本發明進行了詳細的說明,本領域的普通技術人員應當理解:其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分技術特征進行等同替換;而這些修改或者替換,并不使相應技術方案的本質脫離本發明各實施例技術方案的精神和范圍。
【主權項】
1.一種隨機存儲器的檢測方法,其特征在于,所述方法包括: 第二處理器監聽第一處理器和主用隨機存儲器的連接端口; 若監聽到所述第一處理器向所述主用隨機存儲器的第一地址寫入數據,所述第二處理器獲取所述數據,并將所述數據取反后寫入備用隨機存儲器的第二地址; 若監聽到所述第一處理器從所述主用隨機存儲器的第一地址讀取數據,所述第二處理器獲取所述第一處理器從所述第一地址讀取的數據,并從所述備用隨機存儲器的第二地址讀取數據; 所述第二處理器將獲取的、所述第一處理器從所述第一地址讀取的數據,與從所述第二地址讀取的數據進行比較,根據比較結果輸出檢測信號。2.根據權利要求1所述的方法,其特征在于,若所述比較結果表示從所述第二地址讀取的數據,與從所述第一地址讀取的數據取反后相匹配,所述檢測信號為初始信號; 若所述比較結果表示從所述第二地址讀取的數據,與從所述第一地址讀取的數據取反后不匹配,所述檢測信號為異常信號。3.根據權利要求1所述的方法,其特征在于,所述根據比較結果輸出檢測信號包括: 根據比較結果向所述第一處理器輸出檢測信號。4.根據權利要求3所述的方法,其特征在于,若所述檢測信號為異常信號;所述方法還包括: 所述第二處理器接收到所述第一處理器發送的清除信號; 所述第二處理器向所述第一處理器輸出初始信號。5.根據權利要求1所述的方法,其特征在于,所述第二地址根據所述第一地址確定出。6.根據權利要求1所述的方法,其特征在于,還包括: 若監聽到所述第一處理器向所述主用隨機存儲器的第三地址寫入數據并接收到錯誤注入信號時,所述第二處理器獲取向所述第三地址寫入的數據,并直接寫入所述備用隨機存儲器的第四地址; 若監聽到所述第一處理器從所述主用隨機存儲器的第三地址讀取數據,所述第二處理器獲取所述第一處理器從所述第三地址讀取的數據,并從所述備用隨機存儲器的第四地址讀取數據; 所述第二處理器將獲取的、所述第一處理器從所述第三地址讀取的數據,與從所述第四地址讀取的數據進行比較,根據比較結果生成檢測結果。7.—種隨機存儲器的檢測系統,其特征在于,第一處理器和主用隨機存儲器相連,第二處理器與第一處理器和主用隨機存儲器的連接端口相連,并且與備用隨機存儲器相連;所述系統包括:所述第二處理器和所述備用隨機存儲器; 所述第二處理器用于監聽所述連接端口;若監聽到所述第一處理器向所述主用隨機存儲器的第一地址寫入數據,獲取所述數據,并將所述數據取反后寫入所述備用隨機存儲器的第二地址;若監聽到所述第一處理器從所述主用隨機存儲器的第一地址讀取數據,獲取所述第一處理器從所述第一地址讀取的數據,并從所述備用隨機存儲器的第二地址讀取數據; 所述第二處理器還用于,將獲取的、所述第一處理器從所述第一地址讀取的數據,與從所述第二地址讀取的數據進行比較,根據比較結果輸出檢測信號。8.根據權利要求7所述的系統,其特征在于,若所述比較結果表示從所述第二地址讀取的數據,與從所述第一地址讀取的數據取反后相匹配,所述檢測信號為初始信號; 若所述比較結果表示從所述第二地址讀取的數據,與從所述第一地址讀取的數據取反后不匹配,所述檢測信號為異常信號。9.根據權利要求7所述的系統,其特征在于,所述第二處理器還與所述第一處理器的第一端口相連,所述第一端口不同于所述連接端口 ; 當根據比較結果輸出檢測信號時,所述第二處理器具體用于根據比較結果向所述第一處理器的所述第一端口輸出檢測信號。10.根據權利要求9所述的系統,其特征在于,所述第二處理器還與所述第一處理器的第二端口相連,所述第二端口不同于所述連接端口; 若所述檢測信號為異常信號,所述第二處理器還用于接收到所述第一處理器的所述第二端口發送的清除信號,向所述第一處理器的所述第一端口輸出初始信號。11.根據權利要求7所述的系統,其特征在于,所述第二地址根據所述第一地址確定出。12.根據權利要求7所述的系統,其特征在于,所述第二處理器還與所述第一處理器的第三端口相連,所述第三端口不同于所述連接端口; 所述第二處理器還用于,若監聽到所述第一處理器向所述主用隨機存儲器的第三地址寫入數據并接收到所述第三端口發送的錯誤注入信號時,獲取向所述第三地址寫入的數據,并直接寫入所述備用隨機存儲器的第四地址;若監聽到所述第一處理器從所述主用隨機存儲器的第三地址讀取數據,獲取所述第一處理器從所述第三地址讀取的數據,并從所述備用隨機存儲器的第四地址讀取數據; 所述第二處理器還用于,將獲取的、所述第一處理器從所述第三地址讀取的數據,與從所述第四地址讀取的數據進行比較,根據比較結果生成檢測結果。
【文檔編號】G06F11/10GK105824719SQ201610150312
【公開日】2016年8月3日
【申請日】2016年3月16日
【發明人】俞堅才, 章維, 林鑫, 謝偉軍, 李向前
【申請人】浙江中控技術股份有限公司