專利名稱:一種多端口存儲器的測試方法
技術(shù)領(lǐng)域:
本發(fā)明涉及電子或通信領(lǐng)域的測試技術(shù),具體指一種多端口存儲器的測試方法。
背景技術(shù):
多端口存儲器具有多個獨(dú)立的訪問端口,每一個端口具有獨(dú)立的控制、地址、數(shù)據(jù)引腳,容許從每一端獨(dú)立地讀寫存儲器中任意單元。而常見的又是具備兩個端口的雙端口存儲器(也稱為郵箱),如圖1所示。雙端口存儲器(郵箱)一般由以下部分組成存儲陣列、旗標(biāo)仲裁器以及兩側(cè)的地址譯碼器、輸入/輸出控制器,還有進(jìn)行總線仲裁的BUSY信號線和INT信號線。
控制線的故障主要包含固定邏輯故障、固定開路故障和橋接短路故障。由于控制線相對比較少,而且控制線的故障非常明顯。控制線的故障在對數(shù)據(jù)線和地址線進(jìn)行基本測試時就能被發(fā)現(xiàn),所以可以一般不單獨(dú)對控制線進(jìn)行測試。
數(shù)據(jù)線、地址線和控制線的故障也都是外圍互連線的故障,一般都是建立固定故障模型。所以數(shù)據(jù)線和地址線的故障主要也是固定邏輯故障、固定開路故障和橋接短路故障(Short fault)。橋接短路故障又包括0-支配型短路故障和1-支配型短路故障兩種。
仲裁器故障產(chǎn)生的原因可能多種多樣,但是統(tǒng)一表現(xiàn)為無法對讀寫操作權(quán)限進(jìn)行正確控制。仲裁器故障也是非常明顯的,而且在以后的測試內(nèi)容中能夠檢測到仲裁器中的故障,所以對仲裁器的故障一般也可以不作專門測試。
存儲陣列的故障主要?dú)w結(jié)為六類故障固定邏輯故障、固定開路故障、狀態(tài)轉(zhuǎn)換故障、數(shù)據(jù)保持故障、狀態(tài)耦合故障和多重寫入故障。
地址譯碼器的故障主要表現(xiàn)為沒選中任一存儲單元或者選中被選單元同時選中了其他單元。譯碼器中的故障可等效為存儲單元陣列中的故障。
輸入/輸出控制器的故障主要有輸入、輸出導(dǎo)線中一位或多位固定邏輯故障;緩沖器或鎖存器中一位或多位固定開路故障;緩沖器或鎖存器中任意兩位之間的狀態(tài)耦合故障。讀寫邏輯電路中的故障也可等效為存儲單元陣列中的故障。
由于對存儲陳列的完備測試能夠完全覆蓋數(shù)據(jù)線、地址線、控制線和仲裁器的故障;而且地址譯碼器、輸入/輸出控制器的故障又等同于存儲器陳列的故障,所以測試多端口存儲器的方法也就是測試多端口存儲器陣列的方法。
而且主要的多端口存儲器就是郵箱,對于郵箱的測試方法可以很自然地推廣應(yīng)用到多端口存儲器的測試上。
現(xiàn)在一般的測試方法和過程如下1)初始化郵箱;2)郵箱左側(cè)系統(tǒng)獲得旗標(biāo),按要求的字寬依次寫入郵箱各單元相同數(shù)據(jù),釋放旗標(biāo);3)郵箱右側(cè)系統(tǒng)獲得旗標(biāo),讀出郵箱中的數(shù)據(jù),校驗(yàn),統(tǒng)計(jì)錯誤數(shù),然后將數(shù)據(jù)取反,寫入郵箱,釋放旗標(biāo);4)郵箱左側(cè)系統(tǒng)獲得旗標(biāo),讀出郵箱中的數(shù)據(jù),校驗(yàn),統(tǒng)計(jì)錯誤數(shù),釋放旗標(biāo)。
最后統(tǒng)計(jì)錯誤數(shù),如果錯誤數(shù)為0,則表明沒有發(fā)現(xiàn)故障,如果錯誤數(shù)不為0,則報(bào)告存在故障。
對于多端口存儲器的測試方法和過程也是類似的(以K端口存儲器為例說明)1)初始化K端口存儲器;2)K端口存儲器的第1端口一側(cè)系統(tǒng)獲得旗標(biāo),按要求的字寬依次寫入郵箱各單元相同數(shù)據(jù),釋放旗標(biāo);
3)K端口存儲器的第2端口一側(cè)系統(tǒng)獲得旗標(biāo),讀出郵箱中的數(shù)據(jù),校驗(yàn),統(tǒng)計(jì)錯誤數(shù),然后將數(shù)據(jù)取反,寫入郵箱,釋放旗標(biāo);……K+1)K端口存儲器的第K端口一側(cè)系統(tǒng)獲得旗標(biāo),讀出郵箱中的數(shù)據(jù),校驗(yàn),統(tǒng)計(jì)錯誤數(shù),然后將數(shù)據(jù)取反,寫入郵箱,釋放旗標(biāo);K+2)K端口存儲器的第1端口一側(cè)系統(tǒng)獲得旗標(biāo),讀出郵箱中的數(shù)據(jù),校驗(yàn),統(tǒng)計(jì)錯誤數(shù),釋放旗標(biāo)。
最后統(tǒng)計(jì)錯誤數(shù),如果錯誤數(shù)為0,則表明沒有發(fā)現(xiàn)故障,如果錯誤數(shù)不為0,則報(bào)告存在故障。
現(xiàn)有技術(shù)的缺點(diǎn)這種測試比較簡單,能夠檢測到部分固定邏輯故障、部分固定開路故障、部分?jǐn)?shù)據(jù)保持故障。只能覆蓋很少的狀態(tài)轉(zhuǎn)換故障、狀態(tài)耦合故障和多重寫入故障。這種測試方法測試很不完備,而且不能對故障進(jìn)行診斷和定位。
發(fā)明內(nèi)容
本發(fā)明提出了一種多端口存儲器的測試方法,以解決現(xiàn)有技術(shù)中測試方法在測試多端口存儲器時不能完備測試且不能進(jìn)行診斷和定位的問題。
為解決上述問題,本發(fā)明提供如下的技術(shù)方案一種多端口存儲器的測試方法,包括下列步驟(1)、首先依次測試各個端口的外圍互連線,如果外圍互連線有故障,則進(jìn)行故障診斷;如果外圍互連線沒有發(fā)現(xiàn)故障,則進(jìn)行下列步驟;(2)、通過多端口存儲器的一端口對多端口存儲器的存儲陣列進(jìn)行測試,如果存儲器內(nèi)部存儲單元存在故障,則報(bào)告發(fā)生故障的地址;如果沒有發(fā)現(xiàn)故障,則進(jìn)行下列步驟;(3)、依次對剩余端口的地址譯碼器和輸入/輸出控制器進(jìn)行測試,如果地址譯碼器和輸入/輸出控制器有故障,則進(jìn)行故障診斷;如果沒有發(fā)現(xiàn)故障,則測試結(jié)束。
其中,所述外圍互連線的測試,包括下列步驟(11)在兩個相異地址中,用一組全“1”數(shù)據(jù)和一組全“0”數(shù)據(jù)檢測數(shù)據(jù)線的固定開路故障和固定邏輯故障;(12)固定一個地址,測試數(shù)據(jù)分別采用“走步1矩陣”和“走步0矩陣”,檢測數(shù)據(jù)線的短路故障;(13)測試地址和測試數(shù)據(jù)均為“走步1矩陣”,并增加一組全“0”地址和全“0”數(shù)據(jù),測試一遍;測試地址和測試數(shù)據(jù)均為“走步0矩陣”,并增加一組全“1”地址和全“1”數(shù)據(jù),再測試一遍,檢測地址線固定開路故障、固定邏輯故障和橋接短路故障。
所述步驟(2)中對多端口存儲器的存儲陣列進(jìn)行測試,是采用一種“01...0101”和“10...1010”交錯的數(shù)據(jù)塊進(jìn)行測試的,具體包括如下步驟(21)地址升序?qū)憽?1...0101”;(22)地址升序讀“01...0101”,校驗(yàn),隨即寫入“10...1010”;(23)地址升序讀“10...1010”,校驗(yàn),隨即寫入“01...0101”;(24)地址降序讀“01...0101”,校驗(yàn),隨即寫入“10...1010”;(25)地址降序讀“10...1010”,校驗(yàn),隨即寫入“01...0101”。
上述讀寫過程也可以是按照地址降序進(jìn)行;同時,寫入數(shù)據(jù)的順序也可以是先寫入“10...1010”,后寫入“01...0101”。
所述步驟(3)中對剩余端口的地址譯碼器和輸入/輸出控制器進(jìn)行測試,具體包括(31)、如果數(shù)據(jù)線大于等于地址線,則將所有地址空間作為一個整塊進(jìn)行測試;(32)、如果數(shù)據(jù)線少于地址線,則根據(jù)數(shù)據(jù)線的數(shù)目將地址空間分塊進(jìn)行測試,每一塊的大小就是數(shù)據(jù)線能表示的最大數(shù)據(jù)。
上述方法中,在每一地址塊之內(nèi),每一個數(shù)據(jù)對應(yīng)的地址是唯一的,同時每一個地址對應(yīng)的數(shù)據(jù)也是唯一的。
所述將地址空間分成復(fù)數(shù)個地址塊進(jìn)行測試,包括在第一塊的地址0寫入數(shù)據(jù)0,地址1寫入數(shù)據(jù)1,......,一直到第一塊的最后一個地址寫入最大的數(shù)據(jù);在第二塊地址寫入的數(shù)據(jù)是在第一塊地址寫入數(shù)據(jù)的基礎(chǔ)上滾動一次,即依次寫入數(shù)據(jù)1、2、......、最大數(shù)據(jù)、0;在第三塊地址寫入的數(shù)據(jù)是在第二塊地址寫入數(shù)據(jù)的基礎(chǔ)上滾動一次,......,依此類推,寫完所有的地址塊后,按地址從低到高或從高到低依次讀出進(jìn)行比較。
所述將地址空間作為一個整塊進(jìn)行測試,包括將地址數(shù)作為寫入數(shù)據(jù)高位,再根據(jù)數(shù)據(jù)線的位數(shù)截取地址數(shù)的一個或多個高位附加到寫入數(shù)據(jù)的低位,將所述寫入數(shù)據(jù)寫入到與所述地址數(shù)相對應(yīng)的地址單元中,然后讀出,校驗(yàn)。
本發(fā)明的這種測試方法能夠完全檢測出固定邏輯故障、固定開路故障、狀態(tài)轉(zhuǎn)換故障、數(shù)據(jù)保持故障、狀態(tài)耦合故障和多重寫入故障等六類常見故障,而且完全覆蓋了數(shù)據(jù)線、地址線、控制線、仲裁器、地址譯碼器和輸入/輸出控制器的故障。這種測試方法測試非常完備,而且故障定位準(zhǔn)確。
圖1為雙端口存儲器的一般結(jié)構(gòu)圖。
圖2A、圖2B為本發(fā)明對存儲器存儲陣列進(jìn)行檢測的流程圖。
具體實(shí)施例方式
本發(fā)明提供一種對多端口存儲器進(jìn)行完備測試的方法,首先論述雙端口存儲器的測試方法,然后將它推廣到多端口存儲器測試上。
雙端口存儲器的測試方法和步驟如下(1)首先依次測試兩端的外圍互連線(包括數(shù)據(jù)線、地址線、控制線),左側(cè)取得讀寫控制權(quán),應(yīng)用“三步法”測試左側(cè)外圍互連線,左側(cè)釋放讀寫控制權(quán),右側(cè)取得讀寫控制權(quán),應(yīng)用“三步法”測試右側(cè)外圍互連線。
所謂“三步法”,是本發(fā)明提出的一種針對外圍互連線的測試方法,該測試方法不僅能夠精確地定位故障,而且還能區(qū)分橋接短路故障的兩種不同類型。“三步法”的測試方法和步驟如下表
第一步測試用來測試數(shù)據(jù)線是否存在開路故障和固定邏輯故障,第二步測試用來測試數(shù)據(jù)線是否存在短路故障,第三步測試用來測試地址線是否存在開路或短路故障。在第二步測試結(jié)束進(jìn)行數(shù)據(jù)線故障診斷,在第三步測試結(jié)束進(jìn)行地址線故障診斷。
第一步測試的故障診斷比較簡單,如果寫全0沒有讀到全0,就說明數(shù)據(jù)線存在S-A-1的故障,數(shù)值為1的數(shù)據(jù)線就是發(fā)生S-A-1的故障線位置。相反的情況,如果寫全1沒有讀到全1,就說明數(shù)據(jù)線存在S-A-0的故障,數(shù)值位0的數(shù)據(jù)線就是發(fā)生S-A-0故障的數(shù)據(jù)線位置。為什么利用兩個相異地址測試數(shù)據(jù)線的開路故障,是為了防止數(shù)據(jù)總線上可能存在的數(shù)據(jù)鎖存效應(yīng)影響對數(shù)據(jù)線開路故障的檢測。
第二步測試需要對短路故障的數(shù)據(jù)線位置和什么類型的短路故障進(jìn)行判斷,下面是第二步測試的一個舉例說明(請注意走步0和走步1算法中“0”和“1”的走步既可以從高位走到低位,也可以從低位走到高位),假設(shè)數(shù)據(jù)線b3b2b1b0,測試向量r0r1...r7。
請注意,在測試數(shù)據(jù)線時,一定要固定一個地址進(jìn)行,這樣無論地址線存在什么故障,都不影響數(shù)據(jù)線的測試結(jié)果。在數(shù)據(jù)線測試結(jié)束以后,才去作地址線測試。
對數(shù)據(jù)線的開路故障和短路故障的診斷流程如下BEGINFOR 實(shí)際測試響應(yīng)矩陣V的每一列ViIF Vi和期望響應(yīng)矩陣T的相應(yīng)列Ti不一致報(bào)告存在故障;IF Vi的每一個分量都固定為1報(bào)告第i條數(shù)據(jù)線發(fā)生了固定為1的開路故障;ELSE IF Vi的每一個分量都固定為0報(bào)告第i條數(shù)據(jù)線發(fā)生了固定為0的開路故障;ELSE IF 存在多個列,其矢量相等,其值為這幾個列的期望響應(yīng)的邏輯或運(yùn)算的結(jié)果報(bào)告對應(yīng)列的多條數(shù)據(jù)線發(fā)生1-支配型短路故障
ELSE IF 存在多個列,其矢量相等,其值為這幾個列的期望響應(yīng)的邏輯與運(yùn)算的結(jié)果報(bào)告對應(yīng)列的多條數(shù)據(jù)線發(fā)生0-支配型短路故障ELSE報(bào)告故障類型無法判斷,同時報(bào)告故障發(fā)生在哪一根數(shù)據(jù)線上END IFEND IFEND FORIF不存在故障報(bào)告數(shù)據(jù)線測試沒有發(fā)現(xiàn)故障;END。
在確保數(shù)據(jù)線沒有故障之后,可以進(jìn)行第三步測試,對地址線進(jìn)行測試,下面是第三步測試的一個舉例說明,假設(shè)地址線為a3a2a1a0,測試數(shù)據(jù)互不相同,數(shù)值與地址相等。
對地址線開路故障和短路故障的診斷原理和數(shù)據(jù)線故障診斷類似,大致流程如下BEGIN先分析走步1的測試響應(yīng)IF 讀到數(shù)據(jù)和期望的數(shù)據(jù)完全一致報(bào)告地址線走步1算法測試沒有發(fā)現(xiàn)故障;ELSEFOR 對讀回值與期望值不一致的每一個地址進(jìn)行分析IF 非全0地址讀回的數(shù)據(jù)為全0記錄下來,可能為固定邏輯0故障,故障位置為該地址對應(yīng)數(shù)字“1”的地址線ELSE IF 存在多個地址讀回的數(shù)據(jù)相等,且非全0記錄下來,為1支配型短路故障,對應(yīng)這幾個地址的相異地址位的地址線短路ELSE報(bào)告故障類型無法判斷,同時報(bào)告故障發(fā)生哪一個地址上。
END FOR再先分析走步0的測試響應(yīng)IF 讀到數(shù)據(jù)和期望的數(shù)據(jù)完全一致報(bào)告地址線走步0算法測試沒有發(fā)現(xiàn)故障;ELSEFOR 對讀回值與期望值不一致的每一個地址進(jìn)行分析IF 非全1地址讀回的數(shù)據(jù)位全1記錄下來,可能為固定邏輯1故障,故障位置為該地址對應(yīng)數(shù)字“0”的地址線ELSE IF 存在多個地址讀回的數(shù)據(jù)相等,且非全1記錄下來,為0支配型短路故障,對應(yīng)這幾個地址的相異地址位的地址線短路ELSE報(bào)告故障類型無法判斷,同時報(bào)告故障發(fā)生哪一個地址上。
END FOR最后對診斷結(jié)果進(jìn)行綜合分析FOR 存在故障的地址線IF 該地址線被判斷為0-支配型短路故障或1-支配型短路故障則斷定該地址線為0-支配型短路故障或1-支配型短路故障ELSE IF 該地址線被判斷為固定邏輯0故障或固定邏輯1故障則斷定該地址線為固定邏輯0故障或固定邏輯1故障ELSE IF 該地址線同時被判斷為固定邏輯0故障或固定邏輯1故障則斷定該地址線為固定邏輯故障ELSE該地址線存在無法判斷故障類型的故障。
END FOREND假設(shè)地址線數(shù)目為d,數(shù)據(jù)線數(shù)目為n,則一共需要對存儲單元進(jìn)行4*(n+d+1)次讀或?qū)懙牟僮鳌H椒▽潭ㄟ壿嫻收?Stuck-at fault)、固定開路故障(Stuck-open fault)和橋接短路故障(Short fault)的故障覆蓋率都是100%,而且能夠進(jìn)行準(zhǔn)確的故障診斷,區(qū)分不同類型的短路故障。
(2)如果外圍互連線存在故障,則進(jìn)行故障診斷;如果沒有發(fā)現(xiàn)故障,則通過雙端口存儲器的一側(cè)系統(tǒng)對雙端口存儲器的存儲陣列進(jìn)行測試,測試算法可以采用“九步棋盤圖形法”。(注意在對存儲陣列進(jìn)行測試的同時,也就對雙端口存儲器這一側(cè)的地址譯碼器和輸入/輸出控制器進(jìn)行了完全的測試)所謂“九步棋盤圖形法”,就是在檢測數(shù)據(jù)單元時采用棋盤圖形的形式,在檢測地址譯碼時采用九個步驟的測試方法,具體的執(zhí)行流程如圖2A、圖2B所示,這種測試方法的特點(diǎn)為測試數(shù)據(jù)類似棋盤圖形的形式,也就是數(shù)據(jù)“01...0101”和“10...1010”交錯的形式;測試分為5個步驟,9遍讀寫操作,①、地址升序?qū)憽?1...0101”,②、地址升序讀“01...0101”,校驗(yàn),隨即寫入“10...1010”,③、地址升序讀“10...1010”,校驗(yàn),隨即寫入“01...0101”,④、地址降序讀“01...0101”,校驗(yàn),隨即寫入“10...1010”,⑤、地址降序讀“10...1010”,校驗(yàn),隨即寫入“01...0101”。以上步驟中測試數(shù)據(jù)“01...0101”和“10...1010”可以互換,不影響測試效果;同理,也可能先按照地址降序,再按照地址升序的步驟進(jìn)行,亦不影響測試效果。
九步棋盤圖形法對固定邏輯故障、固定開路故障、狀態(tài)轉(zhuǎn)換故障、狀態(tài)耦合故障以及多重寫入故障的測試都是完備的。這種測試方法需要對存儲器進(jìn)行5遍寫操作和4遍讀操作,一共是9遍讀寫操作,而且采用的測試數(shù)據(jù)為棋盤交錯圖形方式,所以在本發(fā)明中稱之為九步棋盤圖形法。
(3)如果第2步測試中發(fā)現(xiàn)雙端口存儲器內(nèi)部存儲單元存在故障,則報(bào)告發(fā)生故障的地址;如果沒有發(fā)現(xiàn)故障,則對另一側(cè)的地址譯碼器和輸入/輸出控制器進(jìn)行測試,測試算法可以采用“唯一地址/數(shù)據(jù)法”。
本發(fā)明提出的“唯一地址/數(shù)據(jù)法”可以對地址譯碼器和輸入/輸出控制器部分進(jìn)行有效的測試。由于對雙端口存儲器的一側(cè)進(jìn)行了九步棋盤圖形法的測試,那么除了對存儲陣列進(jìn)行了完全測試,也對這一側(cè)的地址譯碼器和輸入/輸出控制器進(jìn)行了完全測試。但是另外一側(cè)的地址譯碼器和輸入/輸出控制器還沒有進(jìn)行測試。這時如果再用九步棋盤圖形法進(jìn)行另一側(cè)的測試就顯然有一些多余了。因?yàn)楝F(xiàn)在需要測試的只是地址譯碼器和輸入/輸出控制器的故障。所以對地址譯碼器和輸入/輸出控制器的測試,就適宜采用一種比較快速的測試方法——“唯一地址/數(shù)據(jù)法”。
這種測試方法的步驟如下如果數(shù)據(jù)線少于地址線的情形,則根據(jù)數(shù)據(jù)線的數(shù)目將地址空間分塊,每一塊的大小就是數(shù)據(jù)線能表示的最大數(shù)據(jù),然后保證在每一塊之內(nèi),每一個數(shù)據(jù)對應(yīng)的地址是唯一的(顯然在每一塊內(nèi)每一個地址對應(yīng)的數(shù)據(jù)也是唯一的),同時盡量保證塊與塊之間,測試數(shù)據(jù)除去增加的高位以外,對應(yīng)相同地址低位的數(shù)據(jù)也互不相同。
具體的操作方法就是在第一塊的地址0寫入數(shù)據(jù)0,地址1寫入數(shù)據(jù)1,......,一直到第一塊的最后一個地址寫入最大的數(shù)據(jù)。在第二塊地址寫入的數(shù)據(jù)滾動一次,即依次寫入數(shù)據(jù)1、2、......、最大數(shù)據(jù)、0。在第三塊地址寫入的數(shù)據(jù)再滾動一次,......,依此類推。最后按地址從低到高依次讀出進(jìn)行比較。
舉一個例子來說明,假設(shè)數(shù)據(jù)線有4位,地址線多于4位的情形。則唯一地址/數(shù)據(jù)法進(jìn)行一遍讀寫操作,寫入和讀出的數(shù)據(jù)如下表
從以上例子可以看出,在每一塊之內(nèi),每一個數(shù)據(jù)對應(yīng)的地址是唯一的(當(dāng)然在每一塊內(nèi)每一個地址對應(yīng)的數(shù)據(jù)也是唯一的),同時除去增加的高位以外,不同塊的數(shù)據(jù)對應(yīng)的地址低位也是互不相同的。例如第一塊的地址“0000”對應(yīng)數(shù)據(jù)“0”;第二塊的地址去掉增加的地址高位“1”,地址低位“0000”對應(yīng)的數(shù)據(jù)是“1”;第三塊的地址去掉增加的地址高位“10”,地址低位“0000”對應(yīng)的數(shù)據(jù)是“2”;第四塊的地址去掉增加的地址高位“11”,地址低位“0000”對應(yīng)的數(shù)據(jù)是“3”......。這樣處理以后,當(dāng)高位地址線出現(xiàn)固定型故障時也能被檢測出來。同時也不難看出Block2和Block4去掉增加的地址高位“1”以后,對應(yīng)地址塊的數(shù)據(jù)塊也不相同。
如果地址線少于數(shù)據(jù)線的情形,則只需要按地址寫一遍,讀一遍。每一個地址寫入的數(shù)字這樣得到將地址數(shù)作為數(shù)據(jù)高位,再截取地址的高位附加到地址數(shù)的低位作為寫入的數(shù)據(jù)。假設(shè)地址為3位,數(shù)據(jù)線為4位。那么地址001的高位為0,附加到地址數(shù)的低位得到0010,則地址001寫入的數(shù)據(jù)為0010,見下表所示
再比如地址為3位,數(shù)據(jù)為5位的情況,則地址010寫入的數(shù)據(jù)為01001,地址101寫入的數(shù)據(jù)為10101。如果地址線遠(yuǎn)遠(yuǎn)小于數(shù)據(jù)線,則需要反復(fù)截取,比如地址為3位,數(shù)據(jù)為8位,則地址010寫入數(shù)據(jù)為01001001,地址101寫入的數(shù)據(jù)為10110110。
唯一地址/數(shù)據(jù)法能夠?qū)Φ刂纷g碼器和輸入/輸出控制器的故障進(jìn)行比較完全的測試,而且它只需要進(jìn)行一遍寫操作和一遍讀操作,是一種相當(dāng)有效的測試方法。
(4)如果第3步發(fā)現(xiàn)故障,則報(bào)告這一側(cè)的地址譯碼器或輸入/輸出控制器存在故障;否則所有測試項(xiàng)目執(zhí)行完畢,報(bào)告雙端口存儲器正常。
如果要對K端口存儲器的各個部分進(jìn)行比較完全的測試,則測試步驟如下(1)首先依次測試各個端口的外圍互連線,具體操作過程與雙端口存儲器測試類似。
(2)如果外圍互連線有故障,則進(jìn)行故障診斷;如果沒有發(fā)現(xiàn)故障。則通過K端口存儲器的一側(cè)系統(tǒng)對K端口存儲器的存儲陣列進(jìn)行測試,測試算法可以采用九步棋盤圖形法。注意在對存儲陣列進(jìn)行測試的同時,也就對K端口存儲器這一側(cè)的地址譯碼器和輸入/輸出控制器進(jìn)行了完全的測試。
(3)如果第2步測試發(fā)現(xiàn)K端口存儲器內(nèi)部存儲單元存在故障,則報(bào)告發(fā)生故障的地址;如果沒有發(fā)現(xiàn)故障,則依次對剩余端口的地址譯碼器和輸入/輸出控制器部分進(jìn)行測試,測試算法采用唯一地址/數(shù)據(jù)法。
(4)如果第3步測試發(fā)現(xiàn)故障,則報(bào)告其余多端口的地址譯碼器或輸入/輸出控制器存在故障;否則所有測試項(xiàng)目執(zhí)行完畢,報(bào)告多端口存儲器全部正常。
權(quán)利要求
1.一種多端口存儲器的測試方法,其特征在于,該方法包括下列步驟(1)、依次測試各個端口的外圍互連線,如果外圍互連線有故障,則進(jìn)行故障診斷;如果外圍互連線沒有發(fā)現(xiàn)故障,則進(jìn)行下列步驟;(2)、通過多端口存儲器的一端口對多端口存儲器的存儲陣列進(jìn)行測試,如果存儲器內(nèi)部存儲單元存在故障,則報(bào)告發(fā)生故障的地址;如果沒有發(fā)現(xiàn)故障,則進(jìn)行下列步驟;(3)、依次對剩余端口的地址譯碼器和輸入/輸出控制器進(jìn)行測試,如果地址譯碼器和輸入/輸出控制器有故障,則進(jìn)行故障診斷;如果沒有發(fā)現(xiàn)故障,則測試結(jié)束。
2.如權(quán)利要求1所述的多端口存儲器的測試方法,其特征在于所述步驟(1)中對外圍互連線的測試,包括下列步驟(11)在兩個相異地址中,用一組全“1”數(shù)據(jù)和一組全“0”數(shù)據(jù)檢測數(shù)據(jù)線的固定開路故障和固定邏輯故障;(12)固定一個地址,測試數(shù)據(jù)分別采用“走步1矩陣”和“走步0矩陣”,檢測數(shù)據(jù)線的短路故障;(13)測試地址和測試數(shù)據(jù)均為“走步1矩陣”,并增加一組全“0”地址和全“0”數(shù)據(jù),測試一遍;測試地址和測試數(shù)據(jù)均為“走步0矩陣”,并增加一組全“1”地址和全“1”數(shù)據(jù),再測試一遍,檢測地址線固定開路故障、固定邏輯故障和橋接短路故障。
3.如權(quán)利要求1或2所述的多端口存儲器的測試方法,其特征在于所述步驟(2)中對多端口存儲器的存儲陣列進(jìn)行測試,是采用一種“01...0101”和“10...1010”交錯的數(shù)據(jù)塊進(jìn)行測試的,具體包括如下步驟(21)、地址升序?qū)憽?1...0101”;(22)、地址升序讀“01...0101”,校驗(yàn),隨即寫入“10...1010”;(23)、地址升序讀“10...1010”,校驗(yàn),隨即寫入“01...0101”;(24)、地址降序讀“01...0101”,校驗(yàn),隨即寫入“10...1010”;(25)、地址降序讀“10...1010”,校驗(yàn),隨即寫入“01...0101”。
4.如權(quán)利要求1或2所述的多端口存儲器的測試方法,其特征在于所述步驟(2)中對多端口存儲器的存儲陣列進(jìn)行測試,是采用一種“01...0101”和“10...1010”交錯的數(shù)據(jù)塊進(jìn)行測試的,具體包括如下步驟(21)地址降序?qū)憽?1...0101”;(22)地址降序讀“01...0101”,校驗(yàn),隨即寫入“10...1010”;(23)地址降序讀“10...1010”,校驗(yàn),隨即寫入“01...0101”;(24)地址升序讀“01...0101”,校驗(yàn),隨即寫入“10...1010”;(25)地址升序讀“10...1010”,校驗(yàn),隨即寫入“01...0101”。
5.如權(quán)利要求1或2所述的多端口存儲器的測試方法,其特征在于所述步驟(2)中對多端口存儲器的存儲陣列進(jìn)行測試,是采用一種“01...0101”和“10...1010”交錯的數(shù)據(jù)塊進(jìn)行測試的,具體包括步驟(21)地址升序?qū)憽?0...1010”;(22)地址升序讀“10...1010”,校驗(yàn),隨即寫入“01...0101”;(23)地址升序讀“01...0101”,校驗(yàn),隨即寫入“10...1010”;(24)地址降序讀“10...1010”,校驗(yàn),隨即寫入“01...0101”;(25)地址降序讀“01...0101”,校驗(yàn),隨即寫入“10...1010”。
6.如權(quán)利要求1或2所述的多端口存儲器的測試方法,其特征在于所述步驟(2)中對多端口存儲器的存儲陣列進(jìn)行測試,是采用一種“01...0101”和“10...1010”交錯的數(shù)據(jù)塊進(jìn)行測試的,具體包括如下步驟(21)地址降序?qū)憽?0...1010”;(22)地址降序讀“10...1010”,校驗(yàn),隨即寫入“01...0101”;(23)地址降序讀“01...0101”,校驗(yàn),隨即寫入“10...1010”;(24)地址升序讀“10...1010”,校驗(yàn),隨即寫入“01...0101”;(25)地址升序讀“01...0101”,校驗(yàn),隨即寫入“10...1010”。
7.如權(quán)利要求1或2所述的多端口存儲器的測試方法,其特征在于所述步驟(3)中對剩余端口的地址譯碼器和輸入/輸出控制器進(jìn)行測試,具體包括(31)、如果數(shù)據(jù)線大于等于地址線,則將所有地址空間作為一個整塊進(jìn)行測試;(32)、如果數(shù)據(jù)線少于地址線,則根據(jù)數(shù)據(jù)線的數(shù)目將地址空間分塊進(jìn)行測試,每一塊的大小就是數(shù)據(jù)線能表示的最大數(shù)據(jù)。
8.如權(quán)利要求7所述的多端口存儲器的測試方法,其特征在于在每一地址塊之內(nèi),每一個數(shù)據(jù)對應(yīng)的地址是唯一的,同時在每一個地址對應(yīng)的數(shù)據(jù)也是唯一的。
9.如權(quán)利要求7或8所述的多端口存儲器的測試方法,其特征在于所述將地址空間分成復(fù)數(shù)個地址塊進(jìn)行測試,包括在第一塊的地址0寫入數(shù)據(jù)0,地址1寫入數(shù)據(jù)1,......,一直到第一塊的最后一個地址寫入最大的數(shù)據(jù);在第二塊地址寫入的數(shù)據(jù)是在第一塊地址寫入數(shù)據(jù)的基礎(chǔ)上滾動一次,即依次寫入數(shù)據(jù)1、2、......、最大數(shù)據(jù)、0;在第三塊地址寫入的數(shù)據(jù)是在第二塊地址寫入數(shù)據(jù)的基礎(chǔ)上滾動一次,......,依此類推,寫完所有的地址塊后,按地址從低到高或從高到低依次讀出進(jìn)行比較。
10.如權(quán)利要求7或8所述的多端口存儲器的測試方法,其特征在于所述將地址空間作為一個整塊進(jìn)行測試,包括將地址數(shù)作為寫入數(shù)據(jù)高位,再根據(jù)數(shù)據(jù)線的位數(shù)截取地址數(shù)的一個或多個高位附加到寫入數(shù)據(jù)的低位,將所述寫入數(shù)據(jù)寫入到與所述地址數(shù)相對應(yīng)的地址單元中,然后讀出,校驗(yàn)。
全文摘要
本發(fā)明有關(guān)于一種多端口存儲器的測試方法,包括(1)首先依次測試各個端口的外圍互連線,如果外圍互連線有故障,則進(jìn)行故障診斷;如果外圍互連線沒有發(fā)現(xiàn)故障,則進(jìn)行下列步驟;(2)通過多端口存儲器的一端口對多端口存儲器的存儲陣列進(jìn)行測試,如果存儲器內(nèi)部存儲單元存在故障,則報(bào)告發(fā)生故障的地址;如果沒有發(fā)現(xiàn)故障,則進(jìn)行下列步驟;(3)依次對剩余端口的地址譯碼器和輸入/輸出控制器進(jìn)行測試,如果地址譯碼器和輸入/輸出控制器有故障,則進(jìn)行故障診斷;如果沒有發(fā)現(xiàn)故障,則測試結(jié)束。本發(fā)明的測試方法完全覆蓋了數(shù)據(jù)線、地址線、控制線、仲裁器、地址譯碼器和輸入/輸出控制器的常見故障,而且故障定位準(zhǔn)確。
文檔編號G11C29/00GK1619705SQ20031011535
公開日2005年5月25日 申請日期2003年11月19日 優(yōu)先權(quán)日2003年11月19日
發(fā)明者李穎悟 申請人:華為技術(shù)有限公司