專利名稱:一種利用奇偶校驗碼進行故障在線糾錯裝置及方法
技術領域:
本發(fā)明涉及一種利用奇偶校驗碼進行故障在線糾錯裝置及方法,屬于在線測試領 域。
背景技術:
集成電路自問世以來,一直遵循著摩爾定律以驚人的地速度發(fā)展。目前,集成電路 已經進入超深亞微米時代,集成電路電子器件越來越小,芯片規(guī)模越來越大。伴隨著集成電 路工藝水平的飛速提高,集成電路的設計工具也有了大幅飛躍。在這些技術背景下,單一 硅片上能夠集成上億個晶體管,這樣就使原來有多個芯片協(xié)作才能實現(xiàn)的復雜系統(tǒng),通過 單一芯片就可實現(xiàn)。這種以單一硅片替代原有多個芯片組成復雜系統(tǒng)的芯片即系統(tǒng)芯片 (S0C,SyStem-0n-a-Chip),又稱片上系統(tǒng)。隨著SoC的出現(xiàn),傳統(tǒng)的電路測試方法已經難以 滿足需求,電路測試的難度越來越大,測試時間和成本日趨提高,測試維修保障費用在產品 “全壽命周期成本”中所占比重增大,甚至出現(xiàn)測試成本與研制成本倒掛的局面。因此,人們 越來越認識到研究測試方法以及進行可測性設計的迫切性和重要性。
在現(xiàn)代的SoC中,存儲器占據(jù)了最大部分的片上空間。目前在芯片中,存儲器已占 到50% 60%,而在常用微處理器中,嵌入的高速緩存(cache)所占用的面積也超過30%, 混合信號電路幾乎占不到芯片面積的5 %,據(jù)ITRS預測,到2014年,系統(tǒng)芯片中存儲器所占 比例將達到94%。因此,芯片的可靠性在很大程度上取決于存儲器的可靠性。
為了提高存儲器的可靠性,除了首先提高其的設計和生產的質量外,另一個極其 重要的措施就是在存儲器工作過程中,周期性的進行測試,它包括啟動測試以及在線測試。 啟動測試類似于離線測試,使用的是傳統(tǒng)的嵌入式存儲器測試方法。而在線測試一般用于 檢測特殊用途或高可靠性應用存儲器中,在系統(tǒng)無法停機的情況下進行測試,其目的是檢 測出故障并采取合適的措施。它是在不影響存儲器正常工作的前提下,測試嵌入式存儲器 功能正確性的一種方法。
嵌入式存儲器在線測試的幾個關鍵性問題是在保障存儲單元內所存儲的數(shù)據(jù)不 改變的前提下,對嵌入式存儲器施加測試;在盡可能低的硬件開銷下,提高在線測試的故障 覆蓋率,這也是所要研究的重點。
對于嵌入式存儲器的在線測試,由于待測存儲器處于工作過程中,存儲器中的數(shù) 據(jù)不可丟失,所以對其施加測試向量受到了很大的限制,利用傳統(tǒng)的內建自測試(BIST, Built-inSelf-Test)方法就不再奏效。最常見的解決辦法就是利用糾錯碼(ECC,error correctingcode)。糾錯碼可以實現(xiàn)存儲器在線檢測以及糾錯功能,但是該方法帶來的硬件 冗余十分龐大,并不是用于大規(guī)模使用。發(fā)明內容
本發(fā)明目的是為了解決現(xiàn)有利用糾錯碼對嵌入式存儲器進行在線測試時,帶來的 冗余開銷過于龐大的問題,提供了一種利用奇偶校驗碼進行故障在線糾錯裝置及方法。
本發(fā)明一種利用奇偶校驗碼進行故障在線糾錯裝置,它包括信號分析器、控制器、 RAM存儲器、奇偶校驗碼存儲器、新輸入數(shù)據(jù)奇偶編碼器、存儲數(shù)據(jù)奇偶編碼器、校驗碼比較 器、故障標志位存儲器、數(shù)據(jù)選擇器和漢明碼糾錯器,
讀寫控制信號和地址信號addr發(fā)送給信號分析器,所述讀寫控制信號r_w同 時發(fā)送給控制器和數(shù)據(jù)選擇器,所述地址信號addr同時發(fā)送給RAM存儲器、奇偶校驗碼存 儲器、故障標志位存儲器和漢明碼糾錯器,
信號分析器將新信號輸入標識Signalcheck輸出給控制器,控制器輸出讀寫標 識信號r_W_flag和故障標識信號data_in_flag給故障標志位存儲器,控制器還輸出存儲 器讀寫控制信號r_w_Control給RAM存儲器,控制器還輸出糾錯控制信號hanming^ontrol 給漢明碼糾錯器,控制器還輸出編碼使能信號encoderl_en和encoder2_en,分別給新輸入 數(shù)據(jù)奇偶編碼器以及存儲數(shù)據(jù)奇偶編碼器,
新輸入數(shù)據(jù)data_in同時發(fā)送給RAM存儲器、新輸入數(shù)據(jù)奇偶編碼器和數(shù)據(jù)選擇 器,新輸入數(shù)據(jù)奇偶編碼器輸出編碼后的新輸入數(shù)據(jù)校驗碼code_in給奇偶校驗碼存儲 器,奇偶校驗碼存儲器輸出新輸入數(shù)據(jù)校驗碼code_OUt2給校驗碼比較器;
RAM存儲器輸出存儲數(shù)據(jù)data_0Ut_temp給存儲數(shù)據(jù)奇偶編碼器;存儲數(shù)據(jù)奇偶 編碼器輸出存儲數(shù)據(jù)校驗碼code_OUtl給校驗碼比較器;
校驗碼比較器的比較結果信號反饋給控制器,
數(shù)據(jù)選擇器輸出錯誤數(shù)據(jù)faUlt_data給漢明碼糾錯器,漢明碼糾錯器輸出糾錯 后的數(shù)據(jù)data_out。
漢明碼糾錯器包括漢明碼控制器、地址寄存器、地址生成器、故障地址存儲器、第 一比較器、第二比較器、漢明碼編碼器、漢明碼存儲器和漢明碼譯碼器,漢明碼控制器接收 糾錯控制信號hanming^ontrol,漢明碼控制器輸出寄存器使能信號reg_en給地址寄存 器,漢明碼控制器還輸出地址使能信號addr_en給地址生成器,地址生成器輸出生成地址 信號addrl同時給地址寄存器、故障地址存儲器和第一比較器,地址寄存器輸出寄存器地 址信號addr2給第一比較器,第一比較器輸出第一比較器結果resultl返回給漢明碼控制 器,
地址信號addr同時發(fā)送給故障地址存儲器和第二比較器,
漢明碼控制器輸出故障讀寫控制信號rw_a和故障地址使能信號en_a給故障地 址存儲器,故障地址存儲器輸出錯誤地址信號給第二比較器,第二比較器第二比較器結果 result2返回給漢明碼控制器,
漢明碼控制器輸出漢明編碼讀寫控制信號rw_h和漢明碼存儲器使能信號en_h給 漢明碼存儲器,
漢明碼控制器輸出漢明碼編碼器使能信號encodeLen給漢明碼編碼器,
漢明碼控制器輸出漢明碼解碼器使能信號dncodeLen給漢明碼譯碼器,
漢明碼編碼器接收錯誤數(shù)據(jù)fault_data,并輸出漢明編碼數(shù)據(jù)Code_in_h同時給 漢明碼存儲器和漢明碼譯碼器,漢明碼存儲器輸出漢明校驗碼code_OUt_h給漢明碼譯碼 器,漢明碼譯碼器接收錯誤數(shù)據(jù)fault_data,并輸出糾錯后數(shù)據(jù)data_0Ut。
基于上述一種利用奇偶校驗碼進行故障在線糾錯裝置的在線糾錯方法分為讀、寫 兩部分操作,
寫操作時檢測方法包括以下步驟
步驟一、信號分析器檢測分析是否有新的寫信號輸入,
如果檢測到有新的寫信號輸入,信號分析器將其輸出的將新信號輸入標識 signal_check= (IOO)b,然后執(zhí)行步驟二 ;如果檢測沒有新的寫信號輸入,信號分析器將其 輸出的新信號輸入標識signalcheck = (OOO)b,繼續(xù)檢測;
步驟二、數(shù)據(jù)選擇器選擇新輸入數(shù)據(jù)datajn作為錯誤數(shù)據(jù)faUlt_data輸出,并 作為漢明碼糾錯器的輸入,
步驟三、控制器接收新信號輸入標識signalcheck = (IOO)b,控制器輸出存儲器 讀寫控制信號r_w_control給RAM存儲器,RAM存儲器根據(jù)輸入的地址信號addr將輸入數(shù) 據(jù)datajn寫入該地址對應的存儲單元中,
同時,新輸入數(shù)據(jù)奇偶編碼器根據(jù)控制器發(fā)送的編碼使能信號encoderl_en對新 輸入數(shù)據(jù)datajn進行編碼,輸出新輸入數(shù)據(jù)校驗碼codejn,然后再由奇偶校驗碼存儲器 進行存儲,奇偶校驗碼存儲器與RAM存儲器使用相同的輸入地址;
步驟四、根據(jù)控制器發(fā)送的讀寫控制信號r_w_C0ntr0l將RAM存儲器中的數(shù)據(jù) data_out_temp讀出,送入存儲數(shù)據(jù)奇偶編碼器進行編碼,得到輸出已存數(shù)據(jù)校驗碼Code_ outl ;
步驟五、奇偶校驗碼存儲器輸出新輸入數(shù)據(jù)校驗碼COde_OUt2,并和已存數(shù)據(jù)校驗 碼COde_OUtl在校驗碼比較器中比較,并將比較結果反饋給控制器;
步驟六、當比較結果為不同時,表明此時與addr對應的存儲單元存在錯誤,控制 器根據(jù)步驟五獲取的比較結果輸出故障標志位給故障標志位存儲器中,故障標志位存儲器 與RAM存儲器使用相同的地址信號,
同時,控制器發(fā)出糾錯控制信號hanming^ontrol給漢明碼糾錯器,漢明碼糾錯 器開始糾錯,糾錯過程為
步驟七、漢明碼控制器根據(jù)接收的糾錯控制信號hanmingjontrol,漢明碼控制器 將此時接收的地址信號存入故障地址存儲器,存儲過程為
步驟71、漢明碼控制器發(fā)出地址使能信號addr_en給地址生成器,生成地址信 號addrl,故障地址存儲器根據(jù)地址信號addrl調取該地址存儲的故障數(shù)據(jù)的地址信息 fault_addr_out,并與此時的地址信號addr進行比較,反饋給漢明碼控制器,
當 fault_addr_out = addr 時,第二比較結果 result2 = 1,
若不等,則第二比較結果result2 = 0 ;
步驟72、同時,發(fā)出寄存器使能信號reg_en = 0給地址寄存器,地址寄存器輸出已 存寄存器地址信號addr2,
步驟73、將地址信號addrl和寄存器地址信號addr2進行比較,第一比較結果 resultl反饋給漢明碼控制器,
當 addrl = addr2 時,第一比較結果 resultl = 1,
若不等,則第二比較結果resultl = 0 ;
當?shù)诙容^結果result2 = 1,且addrl < addr2時,表示地址信號addr已存于故 障地址存儲器,返回空狀態(tài),等待下一糾錯控制信號hanmingjontrol輸入;
當addrl = addr2時,表示地址信號addr未存于故障地址存儲器內,然后執(zhí)行步驟74 ;
步驟74、漢明碼控制器發(fā)出漢明碼編碼器使能信號encodeLen給漢明碼編碼器, 對錯誤數(shù)據(jù)fault_data進行編碼,此時的錯誤數(shù)據(jù)faUlt_data由數(shù)據(jù)選擇器選擇為新輸 入數(shù)據(jù)data_in,
同時,漢明碼控制器(10-1)發(fā)出寄存器使能信號reg_en= 1給地址寄存器 (10-2),地址寄存器(10- 保存addr 1+1,然后執(zhí)行步驟八;
步驟八、漢明碼控制器發(fā)出故障讀寫控制信號rw_a和故障地址使能信號en_a給 故障地址存儲器,控制故障地址存儲器將地址信號addr存儲;
同時,漢明碼控制器發(fā)出漢明編碼讀寫控制信號rw_h和漢明碼存儲器使能信號 en_h給漢明碼存儲器,控制漢明碼存儲器將漢明碼編碼器輸出的漢明編碼數(shù)據(jù)Code_in_h 存儲;
讀操作時檢測方法包括以下步驟
步驟一、信號分析器檢測分析是否有新的讀信號輸入,
如果檢測到有新的讀信號輸入,信號分析器輸出的將新信號輸入標識signal check = (OIO)b,然后執(zhí)行步驟二 ;如果檢測沒有新的讀信號輸入,信號分析器就其輸出的 將新信號輸入標識signalcheck = (000)B,繼續(xù)檢測;
步驟二、控制器接收新信號輸入標識signalcheck = (OIO)b,控制器輸出讀寫標 識信號r_W_flag給故障標志位存儲器,控制故障標志位存儲器根據(jù)輸入地址信號addr讀 取該地址已存儲的故障標志位,并將該故障標志位送給控制器;
步驟三、判斷所述故障標識位是否為1,
如果故障標識位為1,標志該地址對應存儲單元在寫數(shù)據(jù)的過程中存在故障,執(zhí)行 步驟五;如果故障標識位為0,則該地址對應存儲單元在寫數(shù)據(jù)的過程中無故障,執(zhí)行步驟 四;
步驟四、控制器輸出存儲器讀寫控制信號r_W_C0ntr0l給RAM存儲器,將RAM存儲 器中該地址的存儲數(shù)據(jù)data_0Ut_temp讀出,作為數(shù)據(jù)輸出,然后返回執(zhí)行步驟一;
步驟五、控制器輸出存儲器讀寫控制信號r_W_C0ntr0l給RAM存儲器,讀出已存儲 數(shù)據(jù)作為錯誤數(shù)據(jù)fault_data送入漢明碼糾錯器,
同時,控制器發(fā)出糾錯控制信號hanming^ontrol給漢明碼糾錯器,漢明碼糾錯 器開始糾錯,糾錯過程為
步驟51、漢明碼控制器發(fā)出地址使能信號addr_en給地址生成器,生成地址信 號addrl,故障地址存儲器根據(jù)地址信號addrl調取該地址存儲的故障數(shù)據(jù)的地址信息 fault_addr_0ut,并與此時的地址信號addr進行比較,第二比較結果result2反饋給漢明 碼控制器,
步驟52、當?shù)诙容^結果result2 = 1時,說明已經查找到該地址信號addr所對 應地址信號addrl,同時將該地址信號送入漢明碼存儲器;
步驟53、漢明碼控制器發(fā)出漢明編碼讀寫控制信號rw_h和漢明編碼使能信號en_ h給漢明碼存儲器,控制漢明碼存儲器輸出的漢明校驗碼c0de_0Ut_h給漢明碼譯碼器;
步驟M、漢明碼譯碼器根據(jù)存儲數(shù)據(jù)data_out_temp和漢明校驗碼code_out_h進 行糾錯,輸出糾錯后的數(shù)據(jù)data_0Ut。
本發(fā)明的優(yōu)點本發(fā)明可直接應用于嵌入式存儲器在線測試領域,可以在不影響 嵌入式存儲器正常工作狀態(tài)下,檢測出嵌入式存儲器內所有的單一位故障,并將其糾正。這 種方法所產生的信息冗余遠小于應用漢明碼以及其他糾錯碼產生的信息冗余。
圖1是本發(fā)明所述利用奇偶校驗碼進行故障在線糾錯裝置的原理框圖2是漢明碼糾錯器的原理框圖3是糾錯狀態(tài)圖,Idle為空閑狀態(tài)。
具體實施方式
具體實施方式
一下面結合圖1至圖3說明本實施方式,本實施方式所述一種利用 奇偶校驗碼進行故障在線糾錯裝置,它包括信號分析器1、控制器2、RAM存儲器3、奇偶校驗 碼存儲器4、新輸入數(shù)據(jù)奇偶編碼器5、存儲數(shù)據(jù)奇偶編碼器6、校驗碼比較器7、故障標志位 存儲器8、數(shù)據(jù)選擇器9和漢明碼糾錯器10,
讀寫控制信號和地址信號addr發(fā)送給信號分析器1,所述讀寫控制信號r_w 同時發(fā)送給控制器2和數(shù)據(jù)選擇器9,所述地址信號addr同時發(fā)送給RAM存儲器3、奇偶校 驗碼存儲器4、故障標志位存儲器8和漢明碼糾錯器10,
信號分析器1將新信號輸入標識signalcheck輸出給控制器2,控制器2輸出 讀寫標識信號r_w_flag和故障標識信號data_in_flag給故障標志位存儲器8,控制器2 還輸出存儲器讀寫控制信號r_w_C0ntr0l給RAM存儲器3,控制器2還輸出糾錯控制信 號hanmingjontrol給漢明碼糾錯器10,控制器2還輸出編碼使能信號encoderlen和 enC0der2_en,分別給新輸入數(shù)據(jù)奇偶編碼器5以及存儲數(shù)據(jù)奇偶編碼器6,
新輸入數(shù)據(jù)data_in同時發(fā)送給RAM存儲器3、新輸入數(shù)據(jù)奇偶編碼器5和數(shù)據(jù)選 擇器9,新輸入數(shù)據(jù)奇偶編碼器5輸出編碼后的新輸入數(shù)據(jù)校驗碼codejn給奇偶校驗碼存 儲器4,奇偶校驗碼存儲器4輸出新輸入數(shù)據(jù)校驗碼COde_OUt2給校驗碼比較器7 ;
RAM存儲器3輸出存儲數(shù)據(jù)data_0ut_temp給存儲數(shù)據(jù)奇偶編碼器6 ;存儲數(shù)據(jù)奇 偶編碼器6輸出存儲數(shù)據(jù)校驗碼COde_OUtl給校驗碼比較器7 ;
校驗碼比較器7的比較結果信號反饋給控制器2,
數(shù)據(jù)選擇器9輸出錯誤數(shù)據(jù)faUlt_data給漢明碼糾錯器10,漢明碼糾錯器10輸 出糾錯后的數(shù)據(jù)data_0ut。
漢明碼糾錯器10包括漢明碼控制器10-1、地址寄存器10-2、地址生成器10_3、故 障地址存儲器10-4、第一比較器10-5、第二比較器10-6、漢明碼編碼器10-7、漢明碼存儲器 10-8和漢明碼譯碼器10-9,漢明碼控制器10-1接收糾錯控制信號hanmingjontrol,漢明 碼控制器10-1輸出寄存器使能信號reg_en給地址寄存器10-2,漢明碼控制器10_1還輸出 地址使能信號addr_en給地址生成器10-3,地址生成器10_3輸出生成地址信號addrl同時 給地址寄存器10-2、故障地址存儲器10-4和第一比較器10-5,地址寄存器10-2輸出寄存 器地址信號addr2給第一比較器10-5,第一比較器10_5輸出第一比較器結果resultl返回 給漢明碼控制器10-1,
地址信號addr同時發(fā)送給故障地址存儲器10_4和第二比較器10_6,
漢明碼控制器10-1輸出故障讀寫控制信號rw_a和故障地址使能信號en_a給故 障地址存儲器10-4,故障地址存儲器10-4輸出錯誤地址信號給第二比較器10-6,第二比較 器10-6第二比較器結果result2返回給漢明碼控制器10_1,
漢明碼控制器10-1輸出漢明編碼讀寫控制信號rw_h和漢明碼存儲器使能信號 en_h給漢明碼存儲器10-8,
漢明碼控制器10-1輸出漢明碼編碼器使能信號encodeLen給漢明碼編碼器 10-7,
漢明碼控制器10-1輸出漢明碼解碼器使能信號dnCOder_en給漢明碼譯碼器 10-9,
漢明碼編碼器10-7接收錯誤數(shù)據(jù)fault_data,并輸出漢明編碼數(shù)據(jù)code_in_h同 時給漢明碼存儲器10-8和漢明碼譯碼器10-9,漢明碼存儲器10-8輸出漢明校驗碼code_ out_h給漢明碼譯碼器10-9,漢明碼譯碼器10-9接收錯誤數(shù)據(jù)fault_data,并輸出糾錯后 數(shù)據(jù) data_outo
具體實施方式
二基于實施方式一所述的一種利用奇偶校驗碼進行故障在線糾錯 裝置的在線糾錯方法,其特征在于,該方法分為讀、寫兩部分操作,
寫操作時檢測方法包括以下步驟
步驟一、信號分析器1檢測分析是否有新的寫信號輸入,
如果檢測到有新的寫信號輸入,信號分析器1將其輸出的將新信號輸入標識 signalcheck= (IOO)b,然后執(zhí)行步驟二 ;如果檢測沒有新的寫信號輸入,信號分析器1將 其輸出的新信號輸入標識signalcheck = (OOO)b,繼續(xù)檢測;
步驟二、數(shù)據(jù)選擇器9選擇新輸入數(shù)據(jù)datajn作為錯誤數(shù)據(jù)faUlt_data輸出, 并作為漢明碼糾錯器10的輸入,
步驟三、控制器2接收新信號輸入標識signalcheck = (100)B,控制器2輸出存 儲器讀寫控制信號r_w_control給RAM存儲器3,RAM存儲器3根據(jù)輸入的地址信號addr 將輸入數(shù)據(jù)data_in寫入該地址對應的存儲單元中,
同時,新輸入數(shù)據(jù)奇偶編碼器5根據(jù)控制器2發(fā)送的編碼使能信號encoderl_en 對新輸入數(shù)據(jù)datajn進行編碼,輸出新輸入數(shù)據(jù)校驗碼codejn,然后再由奇偶校驗碼存 儲器4進行存儲,奇偶校驗碼存儲器4與RAM存儲器3使用相同的輸入地址;
步驟四、根據(jù)控制器2發(fā)送的讀寫控制信號r_w_C0ntr0l將RAM存儲器3中的數(shù) 據(jù)data_0Ut_temp讀出,送入存儲數(shù)據(jù)奇偶編碼器6進行編碼,得到輸出已存數(shù)據(jù)校驗碼 code_outl ;
步驟五、奇偶校驗碼存儲器4輸出新輸入數(shù)據(jù)校驗碼COde_OUt2,并和已存數(shù)據(jù)校 驗碼COde_OUtl在校驗碼比較器7中比較,并將比較結果反饋給控制器2 ;
步驟六、當比較結果為不同時,表明此時與addr對應的存儲單元存在錯誤,控制 器2根據(jù)步驟五獲取的比較結果輸出故障標志位給故障標志位存儲器8中,故障標志位存 儲器8與RAM存儲器3使用相同的地址信號,
同時,控制器2發(fā)出糾錯控制信號hanming^ontrol給漢明碼糾錯器10,漢明碼糾 錯器10開始糾錯,糾錯過程為
步驟七、漢明碼控制器10-1根據(jù)接收的糾錯控制信號hanmingjontrol,漢明碼控制器10-1將此時接收的地址信號存入故障地址存儲器10-4,存儲過程為
步驟71、漢明碼控制器10-1發(fā)出地址使能信號addr_en給地址生成器10_3,生 成地址信號addrl,故障地址存儲器10-4根據(jù)地址信號addrl調取該地址存儲的故障數(shù)據(jù) 的地址信息fault_addr_0ut,并與此時的地址信號addr進行比較,反饋給漢明碼控制器 10-1,
當 fault_addr_out = addr 時,第二比較結果 result2 = 1,
若不等,則第二比較結果result2 = 0 ;
步驟72、同時,發(fā)出寄存器使能信號reg_en = 0給地址寄存器10_2,地址寄存器 10-2輸出已存寄存器地址信號addr2,
步驟73、將地址信號addrl和寄存器地址信號addr2進行比較,第一比較結果 resultl反饋給漢明碼控制器10_1,
當 addrl = addr2 時,第一比較結果 resultl = 1,
若不等,則第二比較結果resultl = 0 ;
當?shù)诙容^結果result2 = 1,且addrl < addr2時,表示地址信號addr已存于故 障地址存儲器10-4,返回空狀態(tài),等待下一糾錯控制信號hanming^ontrol輸入;
當addrl = addr2時,表示地址信號addr未存于故障地址存儲器10_4內,然后執(zhí) 行步驟74 ;
步驟74、漢明碼控制器10-1發(fā)出漢明碼編碼器使能信號encodeLen給漢明碼編 碼器10-7,對錯誤數(shù)據(jù)fault_data進行編碼,此時的錯誤數(shù)據(jù)faUlt_data由數(shù)據(jù)選擇器9 選擇為新輸入數(shù)據(jù)datajn,
同時,漢明碼控制器(10-1)發(fā)出寄存器使能信號reg_en= 1給地址寄存器 (10-2),地址寄存器(10- 保存addr 1+1,然后執(zhí)行步驟八;
步驟八、漢明碼控制器10-1發(fā)出故障讀寫控制信號和故障地址使能信號en_ a給故障地址存儲器10-4,控制故障地址存儲器10-4將地址信號addr存儲;
同時,漢明碼控制器10-1發(fā)出漢明編碼讀寫控制信號rw_h和漢明碼存儲器使能 信號en_h給漢明碼存儲器10-8,控制漢明碼存儲器10_8將漢明碼編碼器10_7輸出的漢明 編碼數(shù)據(jù)code_in_h存儲;
讀操作時檢測方法包括以下步驟
步驟一、信號分析器1檢測分析是否有新的讀信號輸入,
如果檢測到有新的讀信號輸入,信號分析器1輸出的將新信號輸入標識Signal_ check = (OIO)b,然后執(zhí)行步驟二 ;如果檢測沒有新的讀信號輸入,信號分析器1就其輸出 的將新信號輸入標識signalcheck = (000)B,繼續(xù)檢測;
步驟二、控制器2接收新信號輸入標識signalcheck = (010)B,控制器2輸出讀 寫標識信號r_W_flag給故障標志位存儲器8,控制故障標志位存儲器8根據(jù)輸入地址信號 addr讀取該地址已存儲的故障標志位,并將該故障標志位送給控制器2 ;
步驟三、判斷所述故障標識位是否為1,
如果故障標識位為1,標志該地址對應存儲單元在寫數(shù)據(jù)的過程中存在故障,執(zhí)行 步驟五;如果故障標識位為0,則該地址對應存儲單元在寫數(shù)據(jù)的過程中無故障,執(zhí)行步驟 四;
步驟四、控制器2輸出存儲器讀寫控制信號r_W_C0ntr0l給RAM存儲器3,將RAM 存儲器3中該地址的存儲數(shù)據(jù)data_0Ut_temp讀出,作為數(shù)據(jù)輸出,然后返回執(zhí)行步驟一;
步驟五、控制器2輸出存儲器讀寫控制信號r_w_C0ntr0l給RAM存儲器3,讀出已 存儲數(shù)據(jù)作為錯誤數(shù)據(jù)fault_data送入漢明碼糾錯器10,
同時,控制器2發(fā)出糾錯控制信號hanming_C0ntr0l給漢明碼糾錯器10,漢明碼糾 錯器10開始糾錯,糾錯過程為
步驟51、漢明碼控制器10-1發(fā)出地址使能信號addr_en給地址生成器10_3,生成 地址信號addrl,故障地址存儲器10-4根據(jù)地址信號addrl調取該地址存儲的故障數(shù)據(jù)的 地址信息fault_addr_out,并與此時的地址信號addr進行比較,第二比較結果result2反 饋給漢明碼控制器10-1,
步驟52、當?shù)诙容^結果result2 = 1時,說明已經查找到該地址信號addr所對 應地址信號addrl,同時將該地址信號送入漢明碼存儲器10-8 ;
步驟53、漢明碼控制器10-1發(fā)出漢明編碼讀寫控制信號rw_h和漢明編碼使能信 號en_h給漢明碼存儲器10-8,控制漢明碼存儲器10_8輸出的漢明校驗碼Code_out_h給漢 明碼譯碼器10-9 ;
步驟M、漢明碼譯碼器10-9根據(jù)存儲數(shù)據(jù)data_0ut_temp和漢明校驗碼code_ out_h進行糾錯,輸出糾錯后的數(shù)據(jù)data_0Ut。
具體實施方式
三本實施方式對實施方式二進一步說明,寫操作時漢明碼編碼器 10-7進行編碼的過程為
輸入數(shù)據(jù)為: …漢明碼數(shù)據(jù)為=H ;
步驟a、構造最佳奇權碼的校驗矩陣H
權利要求
1.一種利用奇偶校驗碼進行故障在線糾錯裝置,其特征在于,它包括信號分析器(1)、 控制器0)、RAM存儲器(3)、奇偶校驗碼存儲器G)、新輸入數(shù)據(jù)奇偶編碼器(5)、存儲數(shù)據(jù) 奇偶編碼器(6)、校驗碼比較器(7)、故障標志位存儲器(8)、數(shù)據(jù)選擇器(9)和漢明碼糾錯 器(10),讀寫控制信號r_w和地址信號addr發(fā)送給信號分析器(1),所述讀寫控制信號r_w同 時發(fā)送給控制器( 和數(shù)據(jù)選擇器(9),所述地址信號addr同時發(fā)送給RAM存儲器(3)、奇 偶校驗碼存儲器G)、故障標志位存儲器( 和漢明碼糾錯器(10),信號分析器(1)將新信號輸入標識signalcheck輸出給控制器O),控制器(2)輸 出讀寫標識信號r_w_flag和故障標識信號data_in_flag給故障標志位存儲器(8),控 制器⑵還輸出存儲器讀寫控制信號r_w_C0ntr0l給RAM存儲器(3),控制器⑵還輸出 糾錯控制信號hanming^ontrol給漢明碼糾錯器(10),控制器(2)還輸出編碼使能信號 encoderlen和encoderfjn,分別給新輸入數(shù)據(jù)奇偶編碼器(5)以及存儲數(shù)據(jù)奇偶編碼器 (6),新輸入數(shù)據(jù)data_in同時發(fā)送給RAM存儲器(3)、新輸入數(shù)據(jù)奇偶編碼器( 和數(shù)據(jù) 選擇器(9),新輸入數(shù)據(jù)奇偶編碼器( 輸出編碼后的新輸入數(shù)據(jù)校驗碼codejn給奇偶校 驗碼存儲器,奇偶校驗碼存儲器(4)輸出新輸入數(shù)據(jù)校驗碼COde_OUt2給校驗碼比較器 (7);RAM存儲器( 輸出存儲數(shù)據(jù)data_0Ut_temp給存儲數(shù)據(jù)奇偶編碼器(6);存儲數(shù)據(jù)奇 偶編碼器(6)輸出存儲數(shù)據(jù)校驗碼c0de_0Utl給校驗碼比較器(7);校驗碼比較器(7)的比較結果信號反饋給控制器0),數(shù)據(jù)選擇器(9)輸出錯誤數(shù)據(jù)fault_data給漢明碼糾錯器(10),漢明碼糾錯器(10) 輸出糾錯后的數(shù)據(jù)data_0ut。
2.根據(jù)權利要求1所述的一種利用奇偶校驗碼進行故障在線糾錯裝置,其特征在于, 在寫操作時,數(shù)據(jù)選擇器(9)輸出新輸入數(shù)據(jù)data_in ;在讀操作時,數(shù)據(jù)選擇器(9)輸出 存儲數(shù)據(jù) data_out_temp。
3.根據(jù)權利要求1或2所述的一種利用奇偶校驗碼進行故障在線糾錯裝置,其特 征在于,漢明碼糾錯器(10)包括漢明碼控制器(10-1)、地址寄存器(10-2)、地址生成器 (10-3)、故障地址存儲器(10-4)、第一比較器(10-5)、第二比較器(10-6)、漢明碼編碼器 (10-7)、漢明碼存儲器(10-8)和漢明碼譯碼器(10-9),漢明碼控制器(10-1)接收糾錯控 制信號hanming^ontrol,漢明碼控制器(10_1)輸出寄存器使能信號reg_en給地址寄存 器(10-2),漢明碼控制器(10-1)還輸出地址使能信號addr_en給地址生成器(10_3),地 址生成器(10- 輸出生成地址信號addrl同時給地址寄存器(10-2)、故障地址存儲器 (10-4)和第一比較器(10-5),地址寄存器(10- 輸出寄存器地址信號addr2給第一比較 器(10-5),第一比較器(10-5)輸出第一比較器結果resultl返回給漢明碼控制器(10_1),地址信號addr同時發(fā)送給故障地址存儲器(10-4)和第二比較器(10_6),漢明碼控制器(10-1)輸出故障讀寫控制信號rw_a和故障地址使能信號en_a給故障 地址存儲器(10-4),故障地址存儲器(10-4)輸出錯誤地址信號給第二比較器(10-6),第二 比較器(10-6)第二比較器結果result2返回給漢明碼控制器(10_1),漢明碼控制器(10-1)輸出漢明編碼讀寫控制信號rw_h和漢明碼存儲器使能信號en_h給漢明碼存儲器(10-8),漢明碼控制器(10-1)輸出漢明碼編碼器使能信號encodeLen給漢明碼編碼器 (10-7),漢明碼控制器(10-1)輸出漢明碼解碼器使能信號dnCOder_en給漢明碼譯碼器 (10-9),漢明碼編碼器(10-7)接收錯誤數(shù)據(jù)fault_data,并輸出漢明編碼數(shù)據(jù)Code_in_h同 時給漢明碼存儲器(10- 和漢明碼譯碼器(10-9),漢明碼存儲器(10- 輸出漢明校驗碼 C0de_0ut_h給漢明碼譯碼器(10-9),漢明碼譯碼器(10-9)接收錯誤數(shù)據(jù)fault_data,并輸 出糾錯后數(shù)據(jù)data_0ut。
4.基于權利要求3所述的一種利用奇偶校驗碼進行故障在線糾錯裝置的在線糾錯方 法,其特征在于,該方法分為讀、寫兩部分操作, 寫操作時檢測方法包括以下步驟 步驟一、信號分析器(1)檢測分析是否有新的寫信號輸入,如果檢測到有新的寫信號輸入,信號分析器⑴將其輸出的將新信號輸入標識 signal_check = (IOO)b,然后執(zhí)行步驟二 ;如果檢測沒有新的寫信號輸入,信號分析器(1) 將其輸出的新信號輸入標識signaljheck = (OOO)b,繼續(xù)檢測;步驟二、數(shù)據(jù)選擇器(9)選擇新輸入數(shù)據(jù)datajn作為錯誤數(shù)據(jù)faUlt_data輸出,并 作為漢明碼糾錯器(10)的輸入,步驟三、控制器( 接收新信號輸入標識signaljheck = (100)B,控制器( 輸出存 儲器讀寫控制信號r_w_C0ntr0l給RAM存儲器(3),RAM存儲器( 根據(jù)輸入的地址信號 addr將輸入數(shù)據(jù)datajn寫入該地址對應的存儲單元中,同時,新輸入數(shù)據(jù)奇偶編碼器( 根據(jù)控制器( 發(fā)送的編碼使能信號encoderlen 對新輸入數(shù)據(jù)datajn進行編碼,輸出新輸入數(shù)據(jù)校驗碼codejn,然后再由奇偶校驗碼存 儲器(4)進行存儲,奇偶校驗碼存儲器(4)與RAM存儲器( 使用相同的輸入地址;步驟四、根據(jù)控制器( 發(fā)送的讀寫控制信號r_w_C0ntr0l將RAM存儲器(3)中的數(shù) 據(jù)data_0Ut_temp讀出,送入存儲數(shù)據(jù)奇偶編碼器(6)進行編碼,得到輸出已存數(shù)據(jù)校驗碼 code_outl ;步驟五、奇偶校驗碼存儲器(4)輸出新輸入數(shù)據(jù)校驗碼COde_OUt2,并和已存數(shù)據(jù)校驗 碼COde_OUtl在校驗碼比較器(7)中比較,并將比較結果反饋給控制器(2);步驟六、當比較結果為不同時,表明此時與addr對應的存儲單元存在錯誤,控制器(2) 根據(jù)步驟五獲取的比較結果輸出故障標志位給故障標志位存儲器(8)中,故障標志位存儲 器(8)與RAM存儲器(3)使用相同的地址信號,同時,控制器⑵發(fā)出糾錯控制信號hanming^ontrol給漢明碼糾錯器(10),漢明碼糾 錯器(10)開始糾錯,糾錯過程為步驟七、漢明碼控制器(10-1)根據(jù)接收的糾錯控制信號hanming^ontrol,漢明碼控 制器(10-1)將此時接收的地址信號存入故障地址存儲器(10-4),存儲過程為步驟71、漢明碼控制器(10-1)發(fā)出地址使能信號addr_en給地址生成器(10_3),生 成地址信號addrl,故障地址存儲器(10-4)根據(jù)地址信號addrl調取該地址存儲的故障數(shù) 據(jù)的地址信息fault_addr_0ut,并與此時的地址信號addr進行比較,反饋給漢明碼控制器(10-1),當 fault_addr_out = addr 時,第二比較結果 result2 = 1, 若不等,則第二比較結果result2 = 0 ;步驟72、同時,發(fā)出寄存器使能信號reg_en = 0給地址寄存器(10_2),地址寄存器 (10-2)輸出已存寄存器地址信號addr2,步驟73、將地址信號addrl和寄存器地址信號addr2進行比較,第一比較結果resultl 反饋給漢明碼控制器(10-1),當 addrl = addr2 時,第一比較結果 resultl = 1, 若不等,則第二比較結果resultl = 0 ;當?shù)诙容^結果result2 = 1,且addrl < addr2時,表示地址信號addr已存于故障地 址存儲器(10-4),返回空狀態(tài),等待下一糾錯控制信號hanming^ontrol輸入;當addrl = addr2時,表示地址信號addr未存于故障地址存儲器(10_4)內,然后執(zhí)行 步驟74 ;步驟74、漢明碼控制器(10-1)發(fā)出漢明碼編碼器使能信號encodeLen給漢明碼編碼 器(10-7),對錯誤數(shù)據(jù)faUlt_data進行編碼,此時的錯誤數(shù)據(jù)faUlt_data由數(shù)據(jù)選擇器 (9)選擇為新輸入數(shù)據(jù)datajn,同時,漢明碼控制器(10-1)發(fā)出寄存器使能信號reg_en = 1給地址寄存器(10_2),地 址寄存器(10- 保存addr 1+1,然后執(zhí)行步驟八;步驟八、漢明碼控制器(10-1)發(fā)出故障讀寫控制信號rw_a和故障地址使能信號en_a 給故障地址存儲器(10-4),控制故障地址存儲器(10-4)將地址信號addr存儲;同時,漢明碼控制器(10-1)發(fā)出漢明編碼讀寫控制信號rw_h和漢明碼存儲器使能信 號en_h給漢明碼存儲器(10-8),控制漢明碼存儲器(10- 將漢明碼編碼器(10-7)輸出的 漢明編碼數(shù)據(jù)code_in_h存儲;讀操作時檢測方法包括以下步驟步驟一、信號分析器(1)檢測分析是否有新的讀信號輸入,如果檢測到有新的讀信號輸入,信號分析器(1)輸出的將新信號輸入標識Signal_ check = (010)B,然后執(zhí)行步驟二;如果檢測沒有新的讀信號輸入,信號分析器(1)就其輸 出的將新信號輸入標識signaljheck = (OOO)b,繼續(xù)檢測;步驟二、控制器( 接收新信號輸入標識signaljheck = (010)B,控制器( 輸出讀 寫標識信號r_W_flag給故障標志位存儲器(8),控制故障標志位存儲器(8)根據(jù)輸入地址 信號addr讀取該地址已存儲的故障標志位,并將該故障標志位送給控制器O); 步驟三、判斷所述故障標識位是否為1,如果故障標識位為1,標志該地址對應存儲單元在寫數(shù)據(jù)的過程中存在故障,執(zhí)行步驟 五;如果故障標識位為0,則該地址對應存儲單元在寫數(shù)據(jù)的過程中無故障,執(zhí)行步驟四; 步驟四、控制器( 輸出存儲器讀寫控制信號r_w_C0ntr0l給RAM存儲器(3) JfRAM存儲器(3)中該地址的存儲數(shù)據(jù)data_0Ut_temp讀出,作為數(shù)據(jù)輸出,然后返回執(zhí)行步驟 步驟五、控制器( 輸出存儲器讀寫控制信號r_w_C0ntr0l給RAM存儲器(3),讀出已 存儲數(shù)據(jù)作為錯誤數(shù)據(jù)fault_data送入漢明碼糾錯器(10),同時,控制器⑵發(fā)出糾錯控制信號hanming^ontrol給漢明碼糾錯器(10),漢明碼糾 錯器(10)開始糾錯,糾錯過程為步驟51、漢明碼控制器(10-1)發(fā)出地址使能信號addr_en給地址生成器(10_3),生成 地址信號addrl,故障地址存儲器(10-4)根據(jù)地址信號addrl調取該地址存儲的故障數(shù)據(jù) 的地址信息fault_addr_out,并與此時的地址信號addr進行比較,第二比較結果result2 反饋給漢明碼控制器(10-1),步驟52、當?shù)诙容^結果result2 = 1時,說明已經查找到該地址信號addr所對應地 址信號addrl,同時將該地址信號送入漢明碼存儲器(10-8);步驟53、漢明碼控制器(10-1)發(fā)出漢明編碼讀寫控制信號rw_h和漢明編碼使能信號 en_h給漢明碼存儲器(10-8),控制漢明碼存儲器(10_8)輸出的漢明校驗碼code_out_h給 漢明碼譯碼器(10-9);步驟M、漢明碼譯碼器(10-9)根據(jù)存儲數(shù)據(jù)data_0ut_temp和漢明校驗碼Code_out_ h進行糾錯,輸出糾錯后的數(shù)據(jù)data_0Ut。
5.根據(jù)權利要求4所述的一種利用奇偶校驗碼進行故障在線糾錯裝置的在線糾錯方 法,其特征在于,寫操作時漢明碼編碼器(10-7)進行編碼的過程為 輸入數(shù)據(jù)為 …a^,漢明碼數(shù)據(jù)為氏氏…!^ ; 步驟a、構造最佳奇權碼的校驗矩陣H
6.根據(jù)權利要求4所述的一種利用奇偶校驗碼進行故障在線糾錯裝置的在線糾錯方 法,其特征在于,寫操作時漢明碼譯碼器(10-9)進行糾錯的過程為 輸入數(shù)據(jù)為 …a^,漢明碼數(shù)據(jù)為Η。Η?!ぁ? 步驟a、構造最佳奇權碼的校驗矩陣H
全文摘要
一種利用奇偶校驗碼進行故障在線糾錯裝置及方法,屬于在線測試領域,本發(fā)明為解決現(xiàn)有利用糾錯碼對嵌入式存儲器進行在線測試時,帶來的冗余開銷過于龐大的問題。本發(fā)明它的分為檢錯和糾錯兩個過程,其中檢錯的步驟如下檢測是否有新的地址輸入或者讀寫信號改變;對數(shù)據(jù)計算器校驗碼;讀出數(shù)據(jù)并與已存校驗碼比較;將比較的結果寫入故障標志位存儲器;將故障地址以及糾錯碼跟別寫入相應存儲器。糾錯的過程檢測是否有新的地址輸入或者讀寫信號改變;判斷故障標志位;查找糾錯碼;本發(fā)明是在不改變存儲器以存儲數(shù)據(jù),不影響存儲器正常讀寫操作的條件下對嵌入式存儲器進行在線測試,保證檢測到所有奇數(shù)個故障。
文檔編號G11C29/42GK102034555SQ20111002167
公開日2011年4月27日 申請日期2011年1月19日 優(yōu)先權日2011年1月19日
發(fā)明者喬立巖, 付寧, 俞洋, 彭喜元, 李嘉銘, 楊智明 申請人:哈爾濱工業(yè)大學