專利名稱:隨機(jī)存儲器失效的檢測處理方法及其系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及檢測領(lǐng)域,尤其涉及一種CPU/DSP的RAM存儲空間失效的檢測處理方法及其系統(tǒng)。
背景技術(shù):
帶有隨機(jī)存儲器(Random Access Memory,RAM)的器件在其生命周期中,會由于各種各樣的原因?qū)е鹿δ苁?,一般而言,硬件本身發(fā)生損壞的,我們稱之為器件硬失效(Firm Error),否則,稱之為器件軟失效(Soft Error)。
軟失效主要是由于帶電粒子撞擊器件的存儲單元RAM引起的,這些高能粒子和半導(dǎo)體存儲器的原子相互作用產(chǎn)生電子空穴對,該電子空穴對導(dǎo)致存儲單元中存儲信息的改變,進(jìn)而導(dǎo)致器件功能錯誤。
上世紀(jì)70年代末的時候,工程人員就發(fā)現(xiàn)了軟失效的現(xiàn)象,當(dāng)時的原因是器件封裝材料放射性雜質(zhì)衰變發(fā)出α粒子,引起了電離效應(yīng),導(dǎo)致存儲單元狀態(tài)發(fā)生改變。隨著半導(dǎo)體技術(shù)的發(fā)展、器件工藝尺寸的降低、工作電壓的減少,現(xiàn)在發(fā)現(xiàn)宇宙射線同樣也能引起器件軟失效,且其影響的程度將比以往嚴(yán)重的多,因此現(xiàn)在器件軟失效再次受到業(yè)界的關(guān)注。
所有帶RAM的器件都有可能發(fā)生軟失效,不過迄今為止業(yè)界關(guān)注較多的是基于RAM的現(xiàn)場可編程門陣列(Field Programmable Gate Array,F(xiàn)PGA)和專用集成電路(Application Specific Integrated Circuit,ASIC)等邏輯器件出現(xiàn)的軟失效問題,而且在設(shè)計和防護(hù)上已經(jīng)積累了一定的經(jīng)驗(yàn),但對于應(yīng)用更廣泛的CPU/DSP的靜態(tài)隨機(jī)存儲器(Static Random Access Memory,SRAM)和動態(tài)隨機(jī)存儲器(Dynamic Random Access Memory,DRAM)的軟失效問題則關(guān)注甚少。
實(shí)際上,CPU/DSP的SRAM和DRAM儲存器照樣存在嚴(yán)重的軟失效情況,而且根據(jù)多個器件廠商提供的數(shù)據(jù),折合成年失效率,1兆比特SRAM中出現(xiàn)1比特空間軟失效的概率是千分之幾的級別,對于通訊、航天和軍用等對穩(wěn)定性要求很嚴(yán)的產(chǎn)品而言,這是一個很高的失效率。
通過實(shí)際應(yīng)用所捕獲的軟失效案例不在少數(shù),某通訊廠商曾對某個特定產(chǎn)品的年度返修板進(jìn)行統(tǒng)計,發(fā)現(xiàn)近80%的返修板在擦除存儲器內(nèi)的數(shù)據(jù)庫并重下主機(jī)軟件后可以修復(fù),經(jīng)過分析,里面很大概率是由于SRAM器件軟失效導(dǎo)致的。在另外一個產(chǎn)品的某問題定位過程中,研發(fā)人員捕獲到DSP內(nèi)存中僅有某個程序比特位信息異常丟失的情況,而分析代碼,是絕對不可能出現(xiàn)更改該比特位的情況,基本可以確定是由于DSP的SRAM存放程序比特位軟失效導(dǎo)致的問題。
可以確定的是,在那些對CPU/DSP使用很頻繁的商用產(chǎn)品中,出現(xiàn)SRAM或DRAM軟失效的概率很大。其中有一些可以通過內(nèi)存分析找到并確認(rèn)是軟失效引起的,但是絕大多數(shù)都會表現(xiàn)為一些無法重現(xiàn)的故障,比如復(fù)位、死機(jī)、無異常記錄情況下部分功能錯誤等等。這一方面會影響產(chǎn)品的可靠性,另一方面為了定位這些問題會投入大量的人力,因此有必要將軟失效的影響限制在最低的限度。
發(fā)明內(nèi)容
本發(fā)明提供一種RAM失效的檢測處理方法,用以及早發(fā)現(xiàn)CPU/DSP的RAM失效故障和減少RAM失效的發(fā)生。
基于上述方法,本發(fā)明還提供了一種RAM失效的檢測處理系統(tǒng)。
本發(fā)明方法包括A、讀取所述RAM中的程序內(nèi)容;B、將讀取的程序內(nèi)容與正確的程序內(nèi)容進(jìn)行比對,當(dāng)兩者不一致時,判斷所述RAM失效并進(jìn)行數(shù)據(jù)修復(fù);或者將讀取的程序內(nèi)容采用設(shè)定的校驗(yàn)方法進(jìn)行數(shù)據(jù)校驗(yàn),并與正確的校驗(yàn)結(jié)果進(jìn)行比對,當(dāng)兩者不一致時,判斷所述RAM失效并報警。
根據(jù)本發(fā)明的上述方法,若所述RAM可被CPU/DSP的高層控制實(shí)體訪問,則由該高層控制實(shí)體讀取所述RAM中的程序內(nèi)容并將其與該高層控制實(shí)體本地存儲的正確的程序內(nèi)容進(jìn)行比對,當(dāng)兩者不一致時,該高層控制實(shí)體將所述正確的程序內(nèi)容加載到所述RAM中進(jìn)行數(shù)據(jù)修復(fù)。
若所述RAM不能被CPU/DSP的高層控制實(shí)體訪問,則由所述CPU/DSP讀取所述RAM中的程序內(nèi)容進(jìn)行校驗(yàn);或者預(yù)先在所述RAM中備份正確的程序內(nèi)容;CPU/DSP將所述RAM中的程序內(nèi)容與所述備份的程序內(nèi)容進(jìn)行比對,當(dāng)兩者不一致時,根據(jù)所述備份的程序內(nèi)容修復(fù)所述RAM中的程序內(nèi)容。
上述方法中,對所述RAM中的程序內(nèi)容進(jìn)行校驗(yàn)或比對,采用低優(yōu)先級的任務(wù)觸發(fā)。
根據(jù)本發(fā)明的上述方法,在進(jìn)行程序內(nèi)容比對時,將RAM中存儲程序內(nèi)容的數(shù)據(jù)單元與存儲正確程序內(nèi)容的數(shù)據(jù)單元逐一進(jìn)行比對,并逐一對所述數(shù)據(jù)單元中的比特位進(jìn)行比對。
根據(jù)本發(fā)明的上述方法,在進(jìn)行數(shù)據(jù)修復(fù)后判斷修復(fù)是否成功,若修復(fù)成功,則判斷所述RAM發(fā)生軟失效,并記錄軟失效相關(guān)信息;否則,重復(fù)修復(fù)過程;當(dāng)重復(fù)修復(fù)次數(shù)達(dá)到預(yù)設(shè)閾值時,判斷所述RAM發(fā)生硬失效,并上報硬件故障告警。
根據(jù)本發(fā)明的上述方法,對所述RAM中的程序內(nèi)容按設(shè)定周期分批進(jìn)行所述比對或校驗(yàn)。
上述方法中,分批對所述RAM中的程序內(nèi)容進(jìn)行校驗(yàn),包括將上一批數(shù)據(jù)的校驗(yàn)結(jié)果值與下一批數(shù)據(jù)一起進(jìn)行校驗(yàn),得到下一批數(shù)據(jù)的校驗(yàn)結(jié)果值;
將最后一批數(shù)據(jù)的校驗(yàn)結(jié)果值作為所述RAM中的程序內(nèi)容的最終校驗(yàn)結(jié)果。
上述方法中,采用循環(huán)冗余或奇偶校驗(yàn)方法對所述RAM中的程序內(nèi)容進(jìn)行校驗(yàn)。
根據(jù)本發(fā)明的上述方法,按照設(shè)定的間隔時間,重復(fù)所述步驟A和B。
本發(fā)明提供的RAM失效的檢測處理系統(tǒng),包括檢測判斷模塊和失效處理模塊;所述檢測判斷模塊讀取所述RAM中的程序內(nèi)容;將讀取的程序內(nèi)容與正確的程序內(nèi)容進(jìn)行比對,當(dāng)兩者不一致時,判斷所述RAM失效,發(fā)送修復(fù)指令到所述失效處理模塊;或者將讀取的程序內(nèi)容采用設(shè)定的校驗(yàn)方法進(jìn)行數(shù)據(jù)校驗(yàn),并與正確的校驗(yàn)結(jié)果進(jìn)行比對,當(dāng)兩者不一致時,判斷所述RAM失效,發(fā)送報警指令到所述失效處理模塊;所述失效處理模塊接收到修復(fù)指令后,對所述RAM中的程序內(nèi)容進(jìn)行數(shù)據(jù)修復(fù)處理;接收到報警指令后,進(jìn)行報警處理。
根據(jù)本發(fā)明的上述系統(tǒng),若所述RAM能被CPU/DSP的高層控制實(shí)體訪問,則所述檢測判斷模塊和失效處理模塊位于所述CPU/DSP的高層控制實(shí)體;所述檢測判斷模塊讀取所述RAM中的程序內(nèi)容;將讀取的程序內(nèi)容與所述CPU/DSP的高層控制實(shí)體本地存儲的正確的程序內(nèi)容進(jìn)行比對,當(dāng)兩者不一致時,判斷所述RAM失效,發(fā)送修復(fù)指令到所述失效處理模塊;所述失效處理模塊接收到修復(fù)指令后,對所述RAM中的程序內(nèi)容進(jìn)行數(shù)據(jù)修復(fù)處理。
根據(jù)本發(fā)明的上述系統(tǒng),若所述RAM不能被CPU/DSP的高層控制實(shí)體訪問,則所述檢測判斷模塊和失效處理模塊位于所述CPU/DSP中;所述檢測判斷模塊讀取所述RAM中的程序內(nèi)容;
將讀取的程序內(nèi)容采用設(shè)定的校驗(yàn)方法進(jìn)行數(shù)據(jù)校驗(yàn),并與正確的校驗(yàn)結(jié)果進(jìn)行比對,當(dāng)兩者不一致時,判斷所述RAM失效,發(fā)送報警指令到所述失效處理模塊;或者將讀取的程序內(nèi)容與在所述RAM中備份的正確程序內(nèi)容進(jìn)行比對,當(dāng)兩者不一致時,判斷所述RAM失效,發(fā)送修復(fù)指令到所述失效處理模塊;所述失效處理模塊接收到報警指令后,進(jìn)行報警處理;接收到修復(fù)指令后,對所述RAM中的程序內(nèi)容進(jìn)行數(shù)據(jù)修復(fù)處理。
本發(fā)明的有益效果如下(1)本發(fā)明方法對CPU/DSP RAM中的程序內(nèi)容進(jìn)行周期性實(shí)時檢測,可及時檢測CPU/DSP中出現(xiàn)的程序空間RAM失效的情況,可以節(jié)省大量對RAM失效進(jìn)行定位和分析的工作量。
(2)本發(fā)明針對可被高層控制實(shí)體訪問的RAM,采用數(shù)據(jù)比對的方法,將RAM中運(yùn)行的程序內(nèi)容與高層控制實(shí)體中保存的正確的程序內(nèi)容進(jìn)行比對,在發(fā)現(xiàn)失效時,可自動進(jìn)行數(shù)據(jù)修復(fù),大大減少RAM失效發(fā)生所造成的影響;針對不可被高層控制實(shí)體訪問的RAM,采用數(shù)據(jù)校驗(yàn)的方法,對RAM中的程序內(nèi)容進(jìn)行校驗(yàn),當(dāng)發(fā)現(xiàn)失效時,及時報警,以便及時采取相應(yīng)的措施,將失效引起的影響降到最低。
(3)本發(fā)明簡單可行,不需要增加額外的投資增強(qiáng)系統(tǒng)可靠性,既能及時檢測失效情況,又不占用過多的系統(tǒng)處理資源,不影響正常業(yè)務(wù)。
圖1為A類型CPU/DSP RAM失效的檢測處理流程圖;圖2為B類型CPU/DSP RAM失效的檢測處理流程圖;圖3為A類型CPU/DSP RAM失效的檢測處理系統(tǒng)結(jié)構(gòu)示意圖;圖4為B類型CPU/DSP RAM失效的檢測處理系統(tǒng)結(jié)構(gòu)示意圖。
具體實(shí)施例方式
本發(fā)明針對存放在CPU/DSP RAM中的程序內(nèi)容,采用周期不間斷地與正確數(shù)據(jù)進(jìn)行比對或者進(jìn)行數(shù)據(jù)校驗(yàn)的方法,及時檢測RAM存儲器的失效情況;如果出現(xiàn)失效則啟動程序下載修復(fù)、異常信息上報、告警指示等方法進(jìn)行處置,盡量減少器件失效對系統(tǒng)的影響。
對于實(shí)際的產(chǎn)品,按照其存儲空間是否可受高層訪問的特性,CPU/DSP可以分為兩種應(yīng)用類型一類CPU/DSP的存儲空間可以被高層控制實(shí)體訪問,為了描述方便,簡稱其為A類;另一類CPU/DSP的存儲空間不可被高層控制實(shí)體訪問,簡稱其為B類。針對兩類CPU/DSP的存儲空間,需要采用不同的檢測和處置方法。
對于A類型的CPU/DSP存儲空間,CPU/DSP的片內(nèi)外RAM可以直接被高層控制實(shí)體(一般也是采用高層的CPU或DSP作為控制實(shí)體)訪問,在這種情況下,CPU/DSP的程序一般而言也是由高層控制實(shí)體下發(fā)加載的,高層控制實(shí)體自身的存儲器中存儲有CPU/DSP的正確程序代碼。A類型CPU/DSPRAM的失效檢測處理方法如圖1所示。
參見圖1,為A類型CPU/DSP RAM失效的檢測處理流程圖,具體包括步驟S1、初始化設(shè)置一個周期觸發(fā)任務(wù),并設(shè)定每個檢測周期的數(shù)據(jù)單元的檢測量。為了既能及時發(fā)現(xiàn)失效問題,又能保證不占用過多的高層控制實(shí)體處理能力,對檢測周期時間和每周期檢測規(guī)模的設(shè)置,需要平衡考慮檢測及時性和高層控制實(shí)體處理能力,如以1秒為周期,一個周期內(nèi)檢測100個32比特位的數(shù)據(jù)。此外,還要設(shè)定最大重復(fù)修復(fù)次數(shù);步驟S2、在檢測周期內(nèi),高層控制實(shí)體不間斷地逐個數(shù)據(jù)單元讀取CPU/DSP RAM中的程序代碼,并與自身存儲器保存的正確程序代碼的相應(yīng)數(shù)據(jù)單元進(jìn)行比對,對于每個存儲單元要逐個數(shù)據(jù)比特位進(jìn)行比對;步驟S3、在進(jìn)行數(shù)據(jù)比對的過程中判斷RAM中的程序代碼是否與正確的程序代碼一致,若發(fā)現(xiàn)不一致,則執(zhí)行步驟S4,啟動后續(xù)的處置措施;
否則,繼續(xù)進(jìn)行數(shù)據(jù)比對,在本周期結(jié)束或達(dá)到本周期設(shè)定的數(shù)據(jù)檢測量時,記錄本周期已檢測的數(shù)據(jù)單元的最大地址,等進(jìn)入下一個檢測周期時,從該地址后的第一個地址處開始檢測數(shù)據(jù)。一般情況下,程序代碼在CPU/DSPRAM中順序存儲,因此可以通過記錄本周期檢測完成的數(shù)據(jù)單元的最大地址,得到下一個周期數(shù)據(jù)單元檢測的起始地址。
步驟S4、高層控制實(shí)體將存儲于其中的正確程序代碼重新下發(fā)到RAM中出現(xiàn)數(shù)據(jù)錯誤的數(shù)據(jù)單元,進(jìn)行修復(fù);步驟S5、數(shù)據(jù)修復(fù)后,高層控制實(shí)體通過回讀等方式判斷修復(fù)是否成功,如果修復(fù)成功,則執(zhí)行步驟S6,如果修復(fù)不成功,執(zhí)行步驟S7;步驟S6、判斷數(shù)據(jù)錯誤由軟失效引起,在后臺記錄相關(guān)軟失效信息,如軟失效的數(shù)據(jù)單元地址,以備后續(xù)分析參考;然后,返回步驟S2,等待進(jìn)入下一個檢測周期;步驟S7、判斷是否達(dá)到預(yù)先設(shè)定的最大重復(fù)修復(fù)次數(shù),若未達(dá)到,則執(zhí)行步驟S4,再次對出現(xiàn)數(shù)據(jù)錯誤的數(shù)據(jù)單元進(jìn)行修復(fù);若達(dá)到最大重復(fù)修復(fù)次數(shù),則執(zhí)行步驟S8;步驟S8、達(dá)到最大重復(fù)修復(fù)次數(shù)時仍未修復(fù)成功,則高層控制實(shí)體判斷數(shù)據(jù)錯誤為器件硬失效引起,高層控制實(shí)體上報器件故障告警,觸發(fā)系統(tǒng)更高層進(jìn)行故障處理。
對于B類型的CPU/DSP存儲空間,CPU/DSP的片內(nèi)外RAM不能被外部直接訪問,一般是通過郵箱的方式(即各在發(fā)送與接收數(shù)據(jù)的CPU/DSP中開辟共享內(nèi)存空間,通過某種通訊機(jī)制進(jìn)行信息傳遞的方式)或者外設(shè)通訊的方式與外部進(jìn)行消息交互。B類型CPU/DSP存儲空間中的應(yīng)用程序要么在復(fù)位啟動時通過郵箱加載,要么固化在RAM里面,通過包括不掉電等方式保證其信息不丟失。該類型的CUP/DSP向外部反饋異常信息的方式一般有兩種,一是通過通訊通道向系統(tǒng)高層上報異常/告警信息,另一種是通過外設(shè)驅(qū)動告警設(shè)備產(chǎn)生聲、光、電等類型的告警。B類型CPU/DSP RAM的失效檢測處理方法如圖2所示。
參見圖2,為B類型CPU/DSP RAM失效的檢測處理流程圖,具體包括步驟S1、初始化設(shè)置一個周期觸發(fā)任務(wù),并設(shè)定每周期的數(shù)據(jù)單元的檢測量。為了既能及時發(fā)現(xiàn)失效問題,又能保證不占用過多的CPU/DSP的處理能力,對周期時間和每周期檢測規(guī)模的設(shè)置,需要平衡考慮檢測及時性和CPU/DSP處理能力,如以1秒為周期,一個周期內(nèi)檢測100個32比特位的數(shù)據(jù)。為了保證CPU/DSP的關(guān)鍵任務(wù)的運(yùn)行,可將該周期觸發(fā)任務(wù)設(shè)置較低的優(yōu)先級。
此外,還要設(shè)置一個理想的校驗(yàn)結(jié)果值,即事先對正確程序內(nèi)容進(jìn)行數(shù)據(jù)校驗(yàn),并將得到的校驗(yàn)結(jié)果值作為理想的校驗(yàn)結(jié)果值。如,采用偶校驗(yàn)方法進(jìn)行數(shù)據(jù)校驗(yàn)時,首先將正確程序代碼的所有數(shù)據(jù)進(jìn)行偶校驗(yàn),即將所有數(shù)據(jù)單元中的數(shù)據(jù)的相應(yīng)比特位進(jìn)行異或運(yùn)算,得到一個結(jié)果值,該結(jié)果值即為理想的校驗(yàn)結(jié)果值。
步驟S2、在檢測周期內(nèi),CPU/DSP不間斷地逐個數(shù)據(jù)單元讀取CPU/DSPRAM中的程序代碼,并進(jìn)行數(shù)據(jù)校驗(yàn);校驗(yàn)方法可以采用循環(huán)冗余校驗(yàn)(CyclicRedundancy Check,CRC)或者奇偶校驗(yàn)。CRC校驗(yàn)漏檢率低,但所需的時間較長,偶校驗(yàn)所需的時間較短,但比CRC校驗(yàn)的漏檢率高;如,采用偶校驗(yàn)方法時,在第一個檢測周期內(nèi),讀取100個32比特位的數(shù)據(jù)單元的數(shù)據(jù),對這些數(shù)據(jù)的相應(yīng)比特位進(jìn)行異或運(yùn)算,得到一個校驗(yàn)結(jié)果值;在以后的檢測周期內(nèi),將上個周期的校驗(yàn)結(jié)果值和本周期的100個32位檢測數(shù)據(jù)進(jìn)行比特位異或運(yùn)算,生成本周期的校驗(yàn)結(jié)果值;同時,在每個檢測周期結(jié)束時,記錄已檢測過的數(shù)據(jù)單元的最大地址,CPU/DSP將記錄的數(shù)據(jù)單元地址的下一個地址作為下一個檢測周期的檢測數(shù)據(jù)起始地址;步驟S3、在每個檢測周期結(jié)束時,根據(jù)已檢測完成的數(shù)據(jù)單元的最大地址判斷RAM中的程序代碼是否已經(jīng)檢測完一遍;若還沒檢測完一遍,則返回步驟S2,繼續(xù)下個檢測周期的數(shù)據(jù)校驗(yàn);否則,執(zhí)行步驟S4;步驟S4、若已將RAM中的程序內(nèi)容檢測完一遍,則CPU/DSP將最終的檢驗(yàn)結(jié)果值與預(yù)設(shè)的理想結(jié)果值進(jìn)行比較,若一致,則表示RAM中的程序內(nèi)容正確,返回步驟S2,繼續(xù)周期對RAM中的程序內(nèi)容進(jìn)行數(shù)據(jù)校驗(yàn);若不一致,表示程序內(nèi)容出現(xiàn)數(shù)據(jù)錯誤,則執(zhí)行步驟S5;步驟S5、最終的校驗(yàn)結(jié)果值與預(yù)設(shè)的理想結(jié)果值不一致,則CPU/DSP判斷是由于RAM失效造成的,此時,CPU/DSP根據(jù)系統(tǒng)需求通過通訊通道向系統(tǒng)高層上報異常/告警信息,或者通過外設(shè)驅(qū)動觸發(fā)外部告警設(shè)備告警,或者同時通過上述兩種途徑進(jìn)行報警。
對于B類型的CPU/DSP存儲空間,如果CPU/DSP剩余內(nèi)外存空間足夠大,則可以在加載啟動時將程序拷貝一份存放在CPU/DSP的剩余空間中,在周期任務(wù)中用數(shù)據(jù)比對而不是校驗(yàn)的方式進(jìn)行失效檢測,其比對方法同圖1的流程,區(qū)別在于,由該CPU/DSP進(jìn)行數(shù)據(jù)比對和修復(fù),而不是高層控制實(shí)體。為了保證CPU/DSP的關(guān)鍵任務(wù)的運(yùn)行,可將進(jìn)行數(shù)據(jù)比對的任務(wù)設(shè)置較低的優(yōu)先級。
對于A類型的CPU/DSP存儲空間,雖然也可采用數(shù)據(jù)校驗(yàn)的方式進(jìn)行失效的檢測,但無論是CRC校驗(yàn)還是奇偶校驗(yàn),都會對少數(shù)錯誤模式存在漏檢現(xiàn)象,不會像數(shù)據(jù)比對那么完備,并且不能自動修復(fù)錯誤數(shù)據(jù),因此對于A類型的CPU/DSP存儲空間首選采用數(shù)據(jù)比對的方式進(jìn)行失效的檢測和處理。
針對A類型的CPU/DSP存儲空間的失效檢測處理流程,本發(fā)明提供了相應(yīng)的檢測處理系統(tǒng)。
參見圖3,為A類型CPU/DSP RAM失效的檢測處理系統(tǒng)結(jié)構(gòu)示意圖,具體包括位于CPU/DSP的高層控制實(shí)體中的檢測判斷模塊和失效處理模塊。
檢測判斷模塊讀取RAM中的程序內(nèi)容,將讀取的程序內(nèi)容與高層控制實(shí)體本地存儲的正確程序內(nèi)容進(jìn)行比對。檢測判斷模塊在進(jìn)行數(shù)據(jù)比對過程中,逐個將RAM中的存儲程序內(nèi)容的數(shù)據(jù)單元與正確程序內(nèi)容的相應(yīng)的數(shù)據(jù)單元進(jìn)行比對,并逐個對數(shù)據(jù)單元中的數(shù)據(jù)比特位進(jìn)行比對,并在發(fā)現(xiàn)數(shù)據(jù)不一致時,判斷RAM失效,并發(fā)送修復(fù)指令到失效處理模塊,攜帶RAM中出現(xiàn)問題的數(shù)據(jù)單元地址和與其相應(yīng)的正確程序內(nèi)容數(shù)據(jù)單元的地址;失效處理模塊接收到修復(fù)指令后,按照接收到的數(shù)據(jù)單元的地址,將指定的高層控制實(shí)體中的正確程序內(nèi)容加載到指定的RAM中的數(shù)據(jù)單元進(jìn)行數(shù)據(jù)修復(fù),并記錄或輸出所述RAM中出現(xiàn)問題的數(shù)據(jù)單元地址,以備后繼分析參考。
針對B類型的CPU/DSP存儲空間的效檢測和處理流程,本發(fā)明提供了相應(yīng)的檢測處理系統(tǒng)。
參見圖4,為B類型CPU/DSPRAM失效的檢測處理系統(tǒng)結(jié)構(gòu)示意圖,具體包括位于CPU/DSP中的檢測判斷模塊和失效處理模塊。
檢測判斷模塊讀取RAM中的程序內(nèi)容,將讀取的程序內(nèi)容采用CRC校驗(yàn)方法或奇偶校驗(yàn)方法進(jìn)行數(shù)據(jù)校驗(yàn),并將得到的校驗(yàn)結(jié)果與對正確的程序內(nèi)容采用同樣校驗(yàn)方法得到的校驗(yàn)結(jié)果進(jìn)行比對,當(dāng)兩者不一致時,判斷RAM失效,并發(fā)送報警指令到失效判斷模塊;失效處理模塊收到報警指令后進(jìn)行報警處理。
若B類型CPU/DSPRAM有足夠大的存儲空間,則在啟動該RAM時,可將正確的程序內(nèi)容備份到RAM中,檢測判斷模塊讀取RAM中的程序內(nèi)容,將讀取的程序內(nèi)容與在RAM加載啟動時備份的正確程序內(nèi)容進(jìn)行比對,當(dāng)兩者不一致時,判斷RAM失效,發(fā)送修復(fù)指令到失效處理模塊;失效處理模塊接收到修復(fù)指令后,對RAM中的程序內(nèi)容進(jìn)行數(shù)據(jù)修復(fù)處理。
通過以上流程描述可知,本發(fā)明方法對CPU/DSP RAM中的程序內(nèi)容進(jìn)行周期性實(shí)時檢測,可及時檢測CPU/DSP中出現(xiàn)的程序空間RAM失效的情況,可以節(jié)省大量對RAM失效進(jìn)行定位和分析的工作量。當(dāng)檢測到RAM失效后,自動啟動對應(yīng)的處理措施,將失效引起的影響降到最低。本發(fā)明針對可被高層控制實(shí)體訪問的RAM,采用數(shù)據(jù)比對的方法,將RAM中的程序內(nèi)容與高層控制實(shí)體中保存的正確程序內(nèi)容進(jìn)行比較,在發(fā)現(xiàn)RAM失效時,可自動進(jìn)行數(shù)據(jù)修復(fù),大大減少RAM失效發(fā)生所造成的影響;針對不可被高層控制實(shí)體訪問的RAM,采用數(shù)據(jù)校驗(yàn)的方法,對RAM中的程序內(nèi)容進(jìn)行校驗(yàn),當(dāng)發(fā)現(xiàn)RAM失效時,及時報警,以便及時采取相應(yīng)的措施。本發(fā)明簡單可行,不需要增加額外的投資增強(qiáng)系統(tǒng)可靠性,既能及時檢測失效情況,又不占用過多的系統(tǒng)處理資源,不影響正常業(yè)務(wù)。
顯然,本領(lǐng)域的技術(shù)人員可以對本發(fā)明進(jìn)行各種改動和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。
權(quán)利要求
1.一種隨機(jī)存儲器RAM失效的檢測處理方法,應(yīng)用于對中央處理器CPU/數(shù)字信號處理器DSP的RAM失效的檢測處理,該方法包括A、讀取所述RAM中的程序內(nèi)容;B、將讀取的程序內(nèi)容與正確的程序內(nèi)容進(jìn)行比對,當(dāng)兩者不一致時,判斷所述RAM失效并進(jìn)行數(shù)據(jù)修復(fù);或者將讀取的程序內(nèi)容采用設(shè)定的校驗(yàn)方法進(jìn)行數(shù)據(jù)校驗(yàn),并與正確的校驗(yàn)結(jié)果進(jìn)行比對,當(dāng)兩者不一致時,判斷所述RAM失效并報警。
2.如權(quán)利要求1所述的方法,其特征在于,若所述RAM可被CPU/DSP的高層控制實(shí)體訪問,則由該高層控制實(shí)體讀取所述RAM中的程序內(nèi)容并將其與該高層控制實(shí)體本地存儲的正確的程序內(nèi)容進(jìn)行比對,當(dāng)兩者不一致時,該高層控制實(shí)體將所述正確的程序內(nèi)容加載到所述RAM中進(jìn)行數(shù)據(jù)修復(fù)。
3.如權(quán)利要求2所述的方法,其特征在于,若所述RAM不能被CPU/DSP的高層控制實(shí)體訪問,則由所述CPU/DSP讀取所述RAM中的程序內(nèi)容進(jìn)行校驗(yàn);或者預(yù)先在所述RAM中備份正確的程序內(nèi)容;CPU/DSP將所述RAM中的程序內(nèi)容與所述備份的程序內(nèi)容進(jìn)行比對,當(dāng)兩者不一致時,根據(jù)所述備份的程序內(nèi)容修復(fù)所述RAM中的程序內(nèi)容。
4.如權(quán)利要求3所述的方法,其特征在于,對所述RAM中的程序內(nèi)容進(jìn)行校驗(yàn)或比對,采用低優(yōu)先級的任務(wù)觸發(fā)。
5.如權(quán)利要求1所述的方法,其特征在于,在進(jìn)行程序內(nèi)容比對時,將RAM中存儲程序內(nèi)容的數(shù)據(jù)單元與存儲正確程序內(nèi)容的數(shù)據(jù)單元逐一進(jìn)行比對,并逐一對所述數(shù)據(jù)單元中的比特位進(jìn)行比對。
6.如權(quán)利要求1所述的方法,其特征在于,在進(jìn)行數(shù)據(jù)修復(fù)后判斷修復(fù)是否成功,若修復(fù)成功,則判斷所述RAM發(fā)生軟失效,并記錄軟失效相關(guān)信息;否則,重復(fù)修復(fù)過程;當(dāng)重復(fù)修復(fù)次數(shù)達(dá)到預(yù)設(shè)閾值時,判斷所述RAM發(fā)生硬失效,并上報硬件故障告警。
7.如權(quán)利要求1所述的方法,其特征在于,對所述RAM中的程序內(nèi)容按設(shè)定周期分批進(jìn)行所述比對或校驗(yàn)。
8.如權(quán)利要求7所述的方法,其特征在于,分批對所述RAM中的程序內(nèi)容進(jìn)行校驗(yàn),包括將上一批數(shù)據(jù)的校驗(yàn)結(jié)果值與下一批數(shù)據(jù)一起進(jìn)行校驗(yàn),得到下一批數(shù)據(jù)的校驗(yàn)結(jié)果值;將最后一批數(shù)據(jù)的校驗(yàn)結(jié)果值作為所述RAM中的程序內(nèi)容的最終校驗(yàn)結(jié)果。
9.如權(quán)利要求1所述的方法,其特征在于,采用循環(huán)冗余或奇偶校驗(yàn)方法對所述RAM中的程序內(nèi)容進(jìn)行校驗(yàn)。
10.如權(quán)利要求1所述的方法,其特征在于,按照設(shè)定的間隔時間,重復(fù)所述步驟A和B。
11.一種RAM失效的檢測處理系統(tǒng),應(yīng)用于對CPU/DSP的RAM失效的檢測處理,其特征在于包括檢測判斷模塊和失效處理模塊;所述檢測判斷模塊讀取所述RAM中的程序內(nèi)容;將讀取的程序內(nèi)容與正確的程序內(nèi)容進(jìn)行比對,當(dāng)兩者不一致時,判斷所述RAM失效,發(fā)送修復(fù)指令到所述失效處理模塊;或者將讀取的程序內(nèi)容采用設(shè)定的校驗(yàn)方法進(jìn)行數(shù)據(jù)校驗(yàn),并與正確的校驗(yàn)結(jié)果進(jìn)行比對,當(dāng)兩者不一致時,判斷所述RAM失效,發(fā)送報警指令到所述失效處理模塊;所述失效處理模塊接收到修復(fù)指令后,對所述RAM中的程序內(nèi)容進(jìn)行數(shù)據(jù)修復(fù)處理;接收到報警指令后,進(jìn)行報警處理。
12.如權(quán)利要求11所述的系統(tǒng),其特征在于,若所述RAM能被CPU/DSP的高層控制實(shí)體訪問,則所述檢測判斷模塊和失效處理模塊位于所述CPU/DSP的高層控制實(shí)體;所述檢測判斷模塊讀取所述RAM中的程序內(nèi)容;將讀取的程序內(nèi)容與所述CPU/DSP的高層控制實(shí)體本地存儲的正確的程序內(nèi)容進(jìn)行比對,當(dāng)兩者不一致時,判斷所述RAM失效,發(fā)送修復(fù)指令到所述失效處理模塊;所述失效處理模塊接收到修復(fù)指令后,對所述RAM中的程序內(nèi)容進(jìn)行數(shù)據(jù)修復(fù)處理。
13.如權(quán)利要求11所述的系統(tǒng),其特征在于,若所述RAM不能被CPU/DSP的高層控制實(shí)體訪問,則所述檢測判斷模塊和失效處理模塊位于所述CPU/DSP中;所述檢測判斷模塊讀取所述RAM中的程序內(nèi)容;將讀取的程序內(nèi)容采用設(shè)定的校驗(yàn)方法進(jìn)行數(shù)據(jù)校驗(yàn),并與正確的校驗(yàn)結(jié)果進(jìn)行比對,當(dāng)兩者不一致時,判斷所述RAM失效,發(fā)送報警指令到所述失效處理模塊;或者將讀取的程序內(nèi)容與在所述RAM中備份的正確程序內(nèi)容進(jìn)行比對,當(dāng)兩者不一致時,判斷所述RAM失效,發(fā)送修復(fù)指令到所述失效處理模塊;所述失效處理模塊接收到報警指令后,進(jìn)行報警處理;接收到修復(fù)指令后,對所述RAM中的程序內(nèi)容進(jìn)行數(shù)據(jù)修復(fù)處理。
全文摘要
本發(fā)明公開了一種RAM失效的檢測處理方法,應(yīng)用于對CPU/DSP的RAM失效的檢測處理,包括讀取所述RAM中的程序內(nèi)容;將讀取的程序內(nèi)容與正確的程序內(nèi)容進(jìn)行比對,當(dāng)兩者不一致時,判斷RAM失效并進(jìn)行數(shù)據(jù)修復(fù);或者將讀取的程序內(nèi)容采用設(shè)定的校驗(yàn)方法進(jìn)行數(shù)據(jù)校驗(yàn),并與正確的校驗(yàn)結(jié)果進(jìn)行比對,當(dāng)兩者不一致時,判斷RAM失效并報警。采用本發(fā)明方法,可及時檢測CPU/DSP RAM失效的情況,及時采取相應(yīng)的處理措施,將RAM失效引起的影響降到最低。
文檔編號G06F11/28GK1851826SQ200610001749
公開日2006年10月25日 申請日期2006年1月25日 優(yōu)先權(quán)日2006年1月25日
發(fā)明者李強(qiáng) 申請人:華為技術(shù)有限公司