專利名稱:在以微處理器為基礎(chǔ)的裝置內(nèi)用于對存貯器進行高速高準確度的功能測試的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及存貯器的功能測試,尤其涉及在保持高度準確性的同時以更高的速度對以微處理器為基礎(chǔ)的裝置內(nèi)的存貯器進行功能性測試的方法和系統(tǒng)。
以微處理器為基礎(chǔ)的裝置或插件板的功能測試被用來確定影響半導體存貯器和芯片操作的故障或差錯的位置。本專業(yè)領(lǐng)域的技術(shù)人員都承認,對于確定可能發(fā)生的所有故障,一次功能測試要進行的存取訪問次數(shù)為2N量級,其中N是該存貯器中可尋址的單元數(shù),由于其復雜性和所需的時間,因此這種功能測試是不切實際的。作為一種實用的方法,任何可行的測試程序只能和最可能發(fā)生的那些故障相關(guān),例如,被阻塞的數(shù)據(jù)單元、有故障的譯碼器、有故障的地址或數(shù)據(jù)寄存器、以及在地址線和數(shù)據(jù)線之間的故障等。
通過在每一個存貯器地址上進行某些操作能夠檢測最常見故障的一種測試是所謂跨步測試,即在指定的上、下邊界之間的地址范圍內(nèi)上下跨步或順序前進,在每一個地址上進行相同的操作,例如寫和讀。早期,本技術(shù)領(lǐng)域研究人員寧愿進行冗長而嚴格的跨步測試,例如進行高達30N次檢驗,或者把相同的位寫入所有的單元內(nèi),或者寫固定的“1”和“0”碼型。雖然這種測試能夠高準確地確定故障的所在,但卻要耗費大量的時間。在美國第4,715,034號專利中,DavidM.Jacobson給出了一個存貯器快速測試算法,它使用偽隨機數(shù)據(jù)來檢測大多數(shù)常見故障僅需5N次操作,他利用了如下的事實故障檢測不出來的概率是極小的。
在存貯器電路是以微處理器為基礎(chǔ)的系統(tǒng)的隨機存取存貯器(RAM)的情況下,多年來,在設(shè)計、生產(chǎn)或服務(wù)性測試和修理的過程中都使用微處理器仿真設(shè)備進行功能測試。在K.S.Bhaskar等人的美國第4,455,654號專利中描述了這種系統(tǒng)的實例。在這樣的以微處理器為基礎(chǔ)的系統(tǒng)中,或者在待測裝置(UUT)中,存貯器測試的性能一般要受到兼顧準確度-速度的折衷方案的限制,這些折衷方案取決于仿真器的結(jié)構(gòu)和所用的檢驗算法。含有與UUT的微處理器類型相同的微處理器的微處理器仿真設(shè)備直接連到或經(jīng)過一個接口箱連到UUT的總線結(jié)構(gòu)上,例如直接連到UUT的微處理器插座上。用這種仿真設(shè)備進行的所有測試都是按總線-存取方式完成的,在這種方式下仿真設(shè)備進行總線存取的單循環(huán),并且該仿真設(shè)備作用于每一個這樣的單循環(huán)上而后才開始進行另一個單循環(huán)。也就是說,仿真設(shè)備知道哪些地址要寫入和讀出,并且一個總線循環(huán)用一個預(yù)先加載到總線上的特定的地址進行一次到UUT總線的連接,這樣,UUT存貯器或者在該地址上被寫入,或者給出在該地址存貯的數(shù)據(jù)值,這取決于給出的是一個寫入命令還是一個讀出命令。然后,該仿真設(shè)備轉(zhuǎn)接到其內(nèi)部電路以產(chǎn)生另一個具有新地址的寫入命令,或者處理從UUT存貯器讀出的信息。用上面提到的Jacobson算法,算出每個地址的新的偽隨機數(shù)。由于總線存取的單循環(huán)的使用一直是已有技術(shù)的RAM測試的基礎(chǔ),不管這種測試是在主機內(nèi)進行還是在接口箱內(nèi)進行的,存貯器容量的增加都要直接導致總線存取的多次循環(huán),并且還要導致測試時間的相應(yīng)增加。因此,即使采用諸如Jacobson的5N次概率的RAM功能測試程序,增加RAM空間的趨勢在測試一個UUT所需的時間方面仍舊存在問題。
按照本發(fā)明,在以微處理器為基礎(chǔ)的UUT內(nèi)對存貯器進行高速、高準確度功能測試的方法和系統(tǒng)為存貯器測試的速度-準確度問題提供了一個新的解決方案,使其速度提高一至兩個數(shù)量級,而準確度的變化(如果有的話)卻極小。
將包括一個與UUT的微處理器類型相同的微處理器的測試系統(tǒng)永久有效地連到UUT的總線結(jié)構(gòu)上,在按UUT自己的時鐘提供的速率執(zhí)行測試程序的過程中,該測試系統(tǒng)作為一個代用的微處理器,以便確定UUT存貯器中故障的所在。該測試程序可以存貯在UUT自身的存貯器內(nèi),或者,最好存貯在測試系統(tǒng)的存貯器內(nèi)并且使用存貯器復蓋技術(shù)加到UUT。測試程序存貯或復蓋在UUT存貯器中當時不用于測試故障的部分。通過保持與UUT總線結(jié)構(gòu)的永久有效的連接并且以UUT的時鐘速率執(zhí)行測試程序,即可實現(xiàn)比已有技術(shù)的仿真器型存貯器測試提高一個數(shù)量級的測試速度。
本發(fā)明另一個能提高存貯器測試速度的特點是使用了與某些較新型微處理器有關(guān)的面向數(shù)據(jù)塊或數(shù)據(jù)串的指令。通過利用數(shù)據(jù)塊的移動和比較的特點,就可以存取、移動和比較來自多個存貯器地址的數(shù)據(jù),而不是象已有技術(shù)的系統(tǒng)那樣每次一個地單個地址存取。
利用這樣的數(shù)據(jù)塊移動和比較特點的一種算法是一個5N次概率RAM測試算法,它包括四次掃描或通過RAM地址,其中進行三次定操作和二次讀操作。首先,將一個偽隨機位序列寫入在RAM的低地址端的順序地尋址的存貯器單元的預(yù)定范圍內(nèi),從而提供一個參考數(shù)據(jù)塊。然后,從該參考數(shù)據(jù)塊上的第一個地址開始直至最高地址把相同的偽隨機位序列順序?qū)懭隦AM的所有剩余單元,重復地復制出該參考數(shù)據(jù)塊。第二次掃描該存貯器時,對該偽隨機位序列求補,并且重復復制步驟以便對每個單元內(nèi)的數(shù)據(jù)求補。對于第三次掃描,進行從最高地址至最低地址的向下掃描。在每一個單元,數(shù)據(jù)被讀出,并且與其預(yù)定值比較、求補并且反向?qū)懭?。在第四次和最后一次通過存貯器時,進行自RAM的低地址端至高地址端的向上掃描,同時來自每個單元的數(shù)據(jù)被讀出并且與原始的偽隨機位序列比較。
按照本發(fā)明的一個8N概率RAM測試算法包括RAM地址的四次掃描,其中進行三次寫操作和五次讀操作。這里,一個偽隨機位的參考數(shù)據(jù)塊由第一指示字讀出并且被第二指示字寫入到下一個相繼的數(shù)據(jù)塊內(nèi)。這些指示字在第一次掃描中按它們的空間間隔關(guān)系一起移動,向上通過存貯器直到所有的單元被寫入。在第二次掃描中,對該參考數(shù)據(jù)塊中的偽隨機位求補,并且利用指示字重復讀和寫操作。第三和第四次掃描基本上和5N測試的情況相同,唯一的不同是第四次掃描涉及每個單元的兩次讀操作以便比較由兩個指示字指示的位。
因此,本發(fā)明的一個目的是提供在以微處理器為基礎(chǔ)的裝置內(nèi)用于對存貯器進行功能測試的一種方法及其系統(tǒng),其中測試速度至少提高一至兩個數(shù)量級,同時能在識別和報告故障中保持高準確度。
本發(fā)明的另一個目的是提供一種功能測試算法,它利用了較新型微處理器的數(shù)據(jù)塊移動和比較的特點。
本發(fā)明還有一個目的是提供一個測試系統(tǒng),它被永久地有效地連到待測存貯器所屬裝置的總線結(jié)構(gòu)上,該測試系統(tǒng)按照被測裝置的時鐘速率執(zhí)行存貯器測試指令。
結(jié)合附圖閱讀下面的詳細描述,本專業(yè)的普通技術(shù)人員將會明了本發(fā)明的其它目的、特點和優(yōu)點。
圖1是按本發(fā)明的一個測試系統(tǒng)的總體方塊圖;
圖2描述了用于覆蓋一個待測存貯器的存貯器圖;
圖3示出了存貯器數(shù)據(jù)塊移動的一個實例,其中的數(shù)據(jù)可以從一個存貯器地址范圍移到另一個范圍;以及圖4示出了按照本發(fā)明的一個RAM測試算法圖。
現(xiàn)在參照圖1,這是按照本發(fā)明的以微處理器為基礎(chǔ)的裝置內(nèi)用于對存貯器進行功能測試的測試系統(tǒng)的總體方塊圖,包括一個主機裝置10,它與一個接口箱12電連接。接口箱12經(jīng)電纜14連到在其遠端的連接器16上。連接器16與待測的裝置(UUT)20的微處理器插座18配接并且插入到該插座18內(nèi)。當然,如果該微處理器是接合入的,連接器16可能代表一個轉(zhuǎn)接適配器。
由于待測存貯器裝置放置于該UUT內(nèi),所以首先討論UUT20的有關(guān)部分。通常放置于插座18內(nèi)的微處理器已被移去并且用連接器16代替,因此就UUT20而論,接口箱12以乎就是它的微處理器。一個UUT總線結(jié)構(gòu)22被連到插座18上,該總線結(jié)構(gòu)22,正如本專業(yè)技術(shù)人員所理解的那樣,一般包括多個地址線和數(shù)據(jù)線,以及狀態(tài)線和控制線。一個隨機存取存貯器(RAM)24和一個只讀存貯器(ROM)26被接到該UUT總線結(jié)構(gòu)22上。雖然RAM24和ROM26是作為分開的單元描述的,但實際上可以將它們裝在同一芯片或組件內(nèi)。UUT20還包括一個UUT時鐘電路28,它產(chǎn)生所要求頻率的時鐘脈沖以便執(zhí)行UUT的微處理器和相關(guān)電路的操作。這里描繪的UUT20是不完整的,因此它可能代表具有能根據(jù)本發(fā)明進行方便測試的配有存貯器裝置的各種以微處理器為基礎(chǔ)的系統(tǒng)的中心或核心部分。
此外,主機裝置10還包括一個顯示器30和一個鍵盤32,能夠向接口箱12發(fā)出指令來啟動存貯器測試,并且還能向用戶報告這種測試的結(jié)果。市場上可以買到的代表主機裝置10的設(shè)備的實例是9000系列微系統(tǒng)故障尋找和9100數(shù)字式測試系統(tǒng)(由JohnFlukeMfg.Co.,Inc制造)。
接口箱12經(jīng)電纜36和一個輸入/輸出(I/O)接口40和主機裝置10電連接。為了能測試裝有某種類型微處理器(例如Intel80286)的UUT,專門地設(shè)計了接口箱12,因此接口箱12能把與這種微處理器的機器語言、信號定時和邏輯電平相兼容的信息發(fā)送到UUT總線結(jié)構(gòu)22,并且能從該總線結(jié)構(gòu)22接收上述信息。也就是說,接口箱是可互換的,所以,用戶可以按照在該UUT中使用的微處理器的具體類型簡單的選擇適用的接口箱。例如,讓我們假定,UUT的微處理器是前述的80286,因此接口箱12就包括一整套80286的核心部件,即包括微處理器(μp)42,RAM44,ROM46以及分別通過數(shù)據(jù)總線48和地址總線50相互連接的前面提到的I/O接口40。數(shù)據(jù)和地址緩沖器54連到數(shù)據(jù)總線48和地址總線50。該數(shù)據(jù)緩沖器是雙向的,并能被來自定時和控制電路56的一個控制信號啟動。地址緩沖器是只有輸出的緩沖器。一個保護電路和邏輯電平檢測網(wǎng)路58被插在數(shù)據(jù)/地址緩沖器54和微處理器16之間,保護接口箱12的電路不受過壓條件的影響,該網(wǎng)絡(luò)58包括源和檢測電阻以便檢測輸出驅(qū)動力的故障。對于該特定的接口箱,來自UUT的微處理器的輸入稱為狀態(tài)線,而到UUT的輸出稱為控制線。
這里所確立的主機裝置10和接口箱12是很普通的;但是,建立這種結(jié)構(gòu)的目的是為了全面地理解將要討論的這種新穎的存貯器測試的操作方式。按常規(guī)的操作方式(一般稱之為故障查找方式),該主機/接口箱的操作基本上就如美國專利第4,455,654號中描述的那種操作。
這里感興趣的操作方式是被稱之為“RUNUUT”的第二或輔助方式,在這種方式下,接口箱的微處理器42通過它的緩沖器被永久有效地連到UUT的總線結(jié)構(gòu)22上,其作用是在執(zhí)行諸如包含在ROM26中的UUT自己的內(nèi)部程序的過程中作為一個替代的微處理器。按這種操作方式,該接口箱12就具有了與狀態(tài)/控制線、中斷處理、定時、以及存貯器和I/O尋址等有關(guān)的微處理器功能。還有,或許這是最有意義的,即微處理器42以由UUT時鐘28提供的速率來執(zhí)行這些程序。
為了實現(xiàn)UUT存貯器(即RAM24)的功能測試,可以將存貯器測試指令或程序存貯器在UUT的可執(zhí)行存貯器內(nèi)并且由此存貯器開始執(zhí)行上述指令或程序,或者最好將這樣一些指令或程序存貯在位于接口箱12內(nèi)的“被覆蓋的”存貯器內(nèi)并且由此存貯器開始執(zhí)行這些指令或程序。
存貯器覆蓋是一項技術(shù),它能使一個測試系統(tǒng)在電性能上用其自己的指令代換該微處理器企圖從被測裝置的程序存貯器中讀出的那些指令。可將存貯器覆蓋變換為任何UUT存貯器空間,該空間和被該覆蓋存貯器占據(jù)的測試系統(tǒng)存貯器內(nèi)的空間相同。
在使用80286微處理器系統(tǒng)的本發(fā)明的一個最佳實施例中,使用RAM44的一部分來提供相鄰RAM的8K字節(jié)覆蓋RAM。覆蓋RAM被變換到在UUT的ROM頂部的通常由通電復位和引導指令所占據(jù)的。8K字節(jié)的程序區(qū),現(xiàn)在參照圖2。
圖2是一個具有16M字節(jié)存貯器的存貯器圖,其十六進制地址在底部為000000,在頂部為FFFFFF,并且該存貯器可能是包括RAM24和ROM26的UUT存貯器。一旦在某一個特定地址開始變換該覆蓋RAM,例如在接近UUT存貯器的頂部開始,并且啟動該覆蓋RAM,則在該覆蓋RAM的地址范圍內(nèi)的一次讀操作就返回被存貯在覆蓋RAM內(nèi)的數(shù)據(jù),而不是返回到來自UUT存貯器的數(shù)據(jù)。按這種方式,該處理器“看不見”先前被存貯在被覆蓋的UUT存貯器中的任何程序代碼,在覆蓋RAM被禁止后這些程序代碼仍舊還在那里。
將存貯器測試指令或程序裝入8K字節(jié)的覆蓋RAM,該覆蓋RAM按RUNUUT方式被啟動并且在電性能上代替了UUT存貯器頂部的8K字節(jié)的空間,這就使其剩余的地址,即幾乎所有的UUT存貯器地址,都能被檢查。在測試程序運行中測試結(jié)果被累積在接口箱12RAM44內(nèi)的指定單元內(nèi)。一旦完成了測試程序,就終止該RUNUUT方式,并且將測試結(jié)果返回到主機裝置10。由此可見,按RUNUUT方式,接口箱12保持和UUT的總線結(jié)構(gòu)22的永久有效的連接,并且按照由時鐘28提供的UUT時鐘速率執(zhí)行存貯在覆蓋RAM中的存貯器測試程序,其結(jié)果是和已有技術(shù)的仿真器類型存貯器測試相人俁忍岣吡艘桓雋考丁 在不具有覆蓋存貯器能力的存貯器測試系統(tǒng)中,也可以獲得本發(fā)明的速度優(yōu)勢,其方法是首先定位和測試UUT的RAM的一個足夠大的部分以便能夠使用已有技術(shù)的總線存取技術(shù)容納存貯器測試程序,然后把該存貯器測試程序裝入UUT的RAM的待測部分以便能夠使用本發(fā)明來檢查UUT的RAM的剩余部分。但是,覆蓋存貯器的測試結(jié)果的可信度略高一些,這是因為一般認為接口箱12的電整體性好于可疑的UUT存貯器裝置。
使本發(fā)明的存貯器測試速度提高的另一個特點是使用了不同于仿真處理器的面向數(shù)據(jù)塊或面向數(shù)據(jù)串的指令,以進行類似DMA(直接存貯器存取)的存貯器轉(zhuǎn)移而不經(jīng)受對每一個被測存貯器地址進行多次指令的提取和執(zhí)行這樣的輔助操作。較新的諸如80286微處理器都具有數(shù)據(jù)塊移動和比較的特點,它能夠從多個地址范圍移動和比較大數(shù)據(jù)塊。例如,80286能夠隨著單塊移動指令能移動高達64K字節(jié)的數(shù)據(jù)。這樣就可以存取來自于一個地址范圍的數(shù)據(jù),而不使用由單個地址存取數(shù)據(jù)的存貯器測試程序指令。
現(xiàn)在參看圖3,其中示出了數(shù)據(jù)塊移動的一個簡單的例子。一個源指示字指示數(shù)據(jù)塊中的第一個地址,本例中數(shù)據(jù)塊有5個地址。數(shù)據(jù)被寫入到這5個地址內(nèi)。一個目標指示字指示出數(shù)據(jù)將要移入的一個五個地址數(shù)據(jù)塊中的第一個地址,當目標指示字剛好指示到下一個地址(即“6”)時(實際上可指示任何期望的地址),根據(jù)命令,在地址1至5中的數(shù)據(jù)就分別被移動到地址6至10,如圖3中箭頭所示。因此,尤其是對具有大容量存貯器的以微處理器為基礎(chǔ)的裝置或插件板而言,采用數(shù)據(jù)塊的移動和比較的操作使存貯器測試的速度又提高了一個數(shù)量級。
在圖4中以圖解的方式表示了按照本發(fā)明的一個方面利用數(shù)據(jù)塊移動和比較操作的一種存貯器檢驗算法。該算法包括RAM地址的四次掃描或傳遞,在每一個單元進行三次寫操作(“寫”)和二次或五次讀操作(“讀”),這取決于具體實施方案,其中利用了數(shù)據(jù)塊的移和比較操作。因此,對于5N算法而言每個單元被存取五次,或?qū)τ?N算法而言每個單元被存取八次。
首先,一個偽隨機數(shù)據(jù)塊被寫入被測UUT的RAM的低地址端。這就變成了參考數(shù)據(jù)塊,對每一個通過該地址范圍的向上掃描而言該參考數(shù)據(jù)塊在圖4中被表示為接近起始地址的一個短的線段。參考數(shù)據(jù)塊的長度依存貯器容量和給定的微處理器的數(shù)據(jù)塊移動能力而定;但是,長度被選擇成與2的冪次互素(relativelyPrime),這樣的長度將能防止由于地址譯碼差錯產(chǎn)生的普通混淆問題被偶然忽略。
其次,建立軟件或者指示字,如和80286有關(guān)的源指示字和目標指示字,使得數(shù)據(jù)可從UUT的RAM的第一個地址被讀出,并且可以被寫入到參考數(shù)據(jù)塊后邊的第一個單元。例如,如果地址的參考數(shù)據(jù)塊是0至99,則源指示字將指向地址0,而目標指示字將指向地址100,并且從地址0讀出的數(shù)據(jù)將被移動并被寫入地址100。一個數(shù)據(jù)串的移動操作被啟動,使參考數(shù)據(jù)塊被一再復制(重復地)直到最后一個地址時為止。為實現(xiàn)這個結(jié)果,對5N算法而言,在目標指示字通過該存貯器的地址范圍向上掃描時,使用源指示字來重復讀出參考數(shù)據(jù)塊,從源或較低指示字的單元至目標或較高指示字的單元復制出數(shù)據(jù),或者對8N算法而言,可穿過該存貯器一前一后地向上掃描兩個指示字,從而在它們向上前進過程中保持了一個數(shù)據(jù)塊長度的區(qū)距直到最后一個地址被寫入時為止。這就完成了穿過該存貯器的第一次掃描。
對于存貯器的第二次掃描,原始的偽隨機數(shù)據(jù)塊被逐位求補,然后寫到被測UUT的RAM的低地址端,由此即變成了參考數(shù)據(jù)塊。再一次對UUT的RAM的第一個地址和按位求補的偽隨機數(shù)據(jù)后邊的第一個單元建立指示字,使得數(shù)據(jù)可由源指示字指定的地址被讀出并且被寫入到由目標指示字指定的地址。和以前對存貯器的第一次掃描一樣,完成一次數(shù)據(jù)串移動操作,但這一次是用一系列求補數(shù)據(jù)塊填充UUT的RAM。此刻,每一個數(shù)據(jù)單元至少已經(jīng)進行了一次數(shù)值變換,例如從0變至1或從1變至0。
接著,進行從最高地址至最低地址的一次向下掃描。在每一個單元,數(shù)據(jù)被讀出、與其期望值比較、求補、以及被反向?qū)懭?。如果任何一個單元返回一個與期望值不相符的數(shù)值,該檢查即中止并且記錄下錯誤結(jié)果。到最低地址被處理時為止,所有的數(shù)據(jù)單元都已進行了通過兩個邏輯狀態(tài)的轉(zhuǎn)換。
第四次和最后一次掃描存貯器時,在UUT的RAM的偷刂范說氖荼歡臉霾⑶液馱嫉奈彼婊萁斜冉?。接着赌橗e嬤韉氖S嗟ピ⑶液退塹鈉諭到斜冉?。链撯,峨s N算法而言,完成這個結(jié)果,還可用源指示字反復讀出參考數(shù)據(jù)塊,同時,目標指示字通過該存貯器的地址范圍向上掃描以讀出和比較數(shù)據(jù),在8N算法的情況下,用建立的指示字啟動對該存貯器向上掃描,以便在已確認的單元和該存貯器中高一個數(shù)據(jù)塊長度的單元之間進行一次數(shù)據(jù)串比較。再者,如果任何單元不返回該期望的數(shù)據(jù)值,則該測試中止并且記錄下錯誤結(jié)果。
上述功能測試算法可寫成一組指令,存貯在UUT20的可執(zhí)行的存貯器內(nèi)并且從該存貯器處開始執(zhí)行,或者存貯在前述的設(shè)在接口箱12內(nèi)的被覆蓋的存貯器內(nèi)并且從該存貯器處開始執(zhí)行。偽隨機數(shù)據(jù)塊可由設(shè)置在接口箱12內(nèi)或者設(shè)置在主機裝置10內(nèi)的一個偽隨機發(fā)生器提供。值得注意的是,對整個測試的偽隨機數(shù)據(jù)僅需計算一次,并且在適當?shù)膱龊显撛紨?shù)據(jù)是重復使用和操作的。偽隨機數(shù)據(jù)塊可存貯在覆蓋的RAM內(nèi)并且可以將其復制到UUT的RAM的低地址端的參考數(shù)據(jù)塊區(qū)。還有,和真正的5N或8N概率測試明顯不同的測試可能使這種算法略加改變,這取決于存貯器的容量、一個給定的微處理器能夠按單個數(shù)據(jù)塊移動指令所移動的數(shù)據(jù)量,以及可用的被計算的偽隨機數(shù)據(jù)量。例如,第一次掃描存貯器時,可以將參考數(shù)據(jù)塊中的數(shù)據(jù)寫入多個相繼的數(shù)據(jù)塊中,從而得到一個數(shù)據(jù)段,該數(shù)據(jù)段又被源指示字和目標指示字用來在多個數(shù)據(jù)段內(nèi)或者甚至于在幾組數(shù)據(jù)段中對該存貯器進行向上掃描。在這種情況下,某些低地址可能不止一次地被讀出,因此,這些地址存取的次數(shù)超過8次。
由此可以看出,以UUT自己的時鐘速率執(zhí)行存貯器測試指令,并且使用較新的微處理器的數(shù)據(jù)塊移動和比較的特點極大地提高了以微處理器為基礎(chǔ)的裝置的存貯器的測試速度,盡管在每一個存貯器單元進行存取的次數(shù)略大于已有技術(shù)Jacobson算法。另外,由于進行存取的次數(shù)略大,所以故障檢測的準確度至少和Jacobson算法達到的準確度一樣高,或許更好一些。
盡管我已經(jīng)表達和描述了我的發(fā)明的最佳實施例,并且借助于圖示我已經(jīng)提出了我考慮到的實現(xiàn)我的發(fā)明的最佳方式,但在本專業(yè)技術(shù)人員看來,本發(fā)明還能夠有其它不同的實施方案,并且本發(fā)明的幾個細節(jié)能夠在各個明顯的方面進行改動,而不會脫離本發(fā)明的廣泛內(nèi)含。例如,可以將ROM測試算法編程到覆蓋存貯器或UUT存貯器內(nèi)以便執(zhí)行ROM測試,或者,甚至于可用在依據(jù)存貯器仿真技術(shù)的系統(tǒng)內(nèi)。在后一種情況下,該算法被裝入到一個UUT的被仿真的執(zhí)行存貯器內(nèi),并且在一個測試系統(tǒng)的控制下由UUT的本身的處理器來執(zhí)行這個算法。
另一種變通可能是使用一個DMA(直接存貯器存取)仿真器作為UUT的接口代替處理器仿真器。按定義,DMA設(shè)備能夠進行塊傳輸操作,因此使用這里所描述的面向數(shù)據(jù)塊的存貯器測試算法可能得到的速度改進的程度應(yīng)和這里描述的最佳實施例的速度改進程度相同。
權(quán)利要求
1.一種用于對具有多個可尋址單元的存貯器進行功能測試的方法,包括如下步驟(a)將偽隨機位序列寫入預(yù)定數(shù)目的相繼被尋址的存貯器單元里,以提供一個參考數(shù)據(jù)塊;(b)通過反復讀出所說的偽隨機位序列并且將所說的位寫入到第一方向中的后面的相繼的數(shù)據(jù)塊中,直至寫入了所有存貯器單元時為止來復制所說參考數(shù)據(jù)塊;(c)對所說參考數(shù)據(jù)塊的內(nèi)容求補;(d)通過反復讀出求補的位并且將所說求補位寫入到在所說的第一方向中的后面的相繼數(shù)據(jù)塊中,直至寫入了所有存貯器單元時為止,來再次復制所說參考數(shù)據(jù)塊;(e)在和所說的第一方向相反的第二方向中順序讀出每一個單元,對其中的數(shù)據(jù)求補,并且將所說的求補數(shù)據(jù)反向?qū)懭胨f的單元;(f)在所說的第一方向中再次讀出每一個單元,并且將所說的求補數(shù)據(jù)與所說偽隨機位序列進行比較以檢測差別,并且作出響應(yīng);(g)識別出任何存貯器故障。
2.根據(jù)權(quán)利要求1所述的方法,還包括如下步驟將在步驟(e)中從每一個單元讀出的數(shù)據(jù)與一個期望值進行比較以檢測差別,并且作出響應(yīng),識別任何存貯器故障。
3.根據(jù)權(quán)利要求1所述的方法,其中在所說的參考數(shù)據(jù)塊中的存貯器單元數(shù)是與2的數(shù)學冪次互素的。
4.一種如根據(jù)權(quán)利要求1所述的方法,其中在步驟(b)和(d)中的復制是以第一指示字指示被讀出單元和以第二指示字指示被寫入單元完成的。
5.根據(jù)權(quán)利要求4所述的方法,其中所說的第一和第二指示字受控于來自相關(guān)處理器的數(shù)據(jù)塊移動指令。
6.根據(jù)權(quán)利要求1所述的方法,其中所說的第一方向是從一個低地址至一個高地址,而所說的第二方向是從所說的高地址至所說的低地址。
7.一種對待測存貯器進行功能測試的方法,該存貯器接到以微處理器為基礎(chǔ)的裝置的總線結(jié)構(gòu)上,該裝置還包括一個時鐘電路用于提供其中的定時信號,該方法包括如下步驟將一個測試系統(tǒng)連到所說的總線結(jié)構(gòu),所說的測試系統(tǒng)的微處理器和一個測試系統(tǒng)的存貯器,包含一組測試指令;將來自所說時鐘電路的所說定時信號接到所說的測試系統(tǒng)微處理器;將這組所說測試指令電輸送至所說的待測存貯器的預(yù)定部分;以及根據(jù)所說的定時信號在所說的測試系統(tǒng)微處理器的控制下執(zhí)行所說的測試指令,其中在執(zhí)行所說的測試指令的同時,所說的測試系統(tǒng)和所說的總線結(jié)構(gòu)保持永久有效的連接。
8.根據(jù)權(quán)利要求7所述的方法,其中所說的電轉(zhuǎn)移所說的這組指令的步驟是通過存貯器覆蓋技術(shù)實現(xiàn)的。
9.根據(jù)權(quán)利要求7所述的方法,其中所說的測試系統(tǒng)微處理器在執(zhí)行所說的測試指令的過程中使用數(shù)據(jù)塊移動指令。
10.根據(jù)權(quán)利要求7所述的方法,其中所說的測試指令包括將偽隨機位序列寫入到所說的待測存貯器的一部分程序段以提供存貯器單元的參考數(shù)據(jù)塊,然后在所說待測存貯器的剩余部分復制所說的參考數(shù)據(jù)塊。
11.一種對具有多個可尋址單元的存貯器從低地址到高地址的范圍內(nèi)進行功能測試的方法,該方法包括如下步驟(a)通過將所說的偽隨機位序列自低地址開始第一次寫入到單元的參考數(shù)據(jù)塊并且在至高地址的整個所說的范圍復制所說的參考數(shù)據(jù)塊,來把偽隨機位序列寫入到所說的多個可尋址單元;(b)通過對在所說的參考數(shù)據(jù)塊中的位第一次求補并且在至高地址的整個所說的范圍復制所說的參考數(shù)據(jù)塊,來對在所說的多個可尋址單元內(nèi)的所有位求補;(c)從高地址至低地址的整個所說的范圍內(nèi)順序讀出每一個單元,并且對每一個單元里的位進行第二次求補以便恢復在步驟(a)中第一次寫入的邏輯狀態(tài);以及(d)自低地址至高地址的整個范圍順序讀出每個單元,并且將每一個單元中第二次求補的位與所說的偽隨機位序列進行比較以檢查其間的任何差別。
12.根據(jù)權(quán)利要求11所述的方法,還包括下述步驟響應(yīng)被檢查出的任何差別,指示存貯器故障。
13.根據(jù)權(quán)利要求11所述的方法,進一步包括下述步驟將在步驟(c)中從每一個單元讀出的位與一個預(yù)期值進行比較以檢查差別,并且作出響應(yīng),識別任何存貯器故障。
14.根據(jù)權(quán)利要求11所述的方法,其中在步驟(a)和(b)中的所說的復制是由具有數(shù)據(jù)塊移動能力的一個微處理器控制的。
15.一種用于對待檢驗的存貯器進行功能測試的系統(tǒng),其中待測存貯器與以微處理器為基礎(chǔ)的裝置中的一個總線結(jié)構(gòu)相連,該裝置具有以預(yù)定速率提供定時信號的時鐘,該系統(tǒng)包括一個為與所說待測存貯器進行通訊而與所說總線結(jié)構(gòu)相連的測試系統(tǒng)微處理器;一個與所說的測試系統(tǒng)微處理器相關(guān)并且相連的測試系統(tǒng)存貯器,所說的測試系統(tǒng)存貯器包含一組測試指令;用于將所說的這組測試指令電轉(zhuǎn)移至所說的待測存貯器的一部分的裝置;以及用于將所說的定時信號連到所說的測試系統(tǒng)微處理器使所說的這組測試指令能按所說的預(yù)定速率被執(zhí)行的裝置,其中在執(zhí)行所說的這組測試指令時,所說的測試系統(tǒng)微處理器和所說的待測存貯器保持直接通訊狀態(tài)。
16.根據(jù)權(quán)利要求15所述的系統(tǒng),其中所說的測試系統(tǒng)微處理器的類型和以微處理器為基礎(chǔ)的裝置的微處理器類型相同。
17.根據(jù)權(quán)利要求15所述的系統(tǒng),其中所說的用于將所說的這組測試指令轉(zhuǎn)移至所說的待測存貯器的一部分的裝置包括用于將所說的待測存貯器的一部分與所說的測試系統(tǒng)存貯器的一部分進行覆蓋的裝置。
18.根據(jù)權(quán)利要求15所述的系統(tǒng),其中所說的微處理器在測試所說的待測存貯器過程中使用了數(shù)據(jù)塊移動和比較的能力。
19.根據(jù)權(quán)利要求15所述的系統(tǒng),其中所說的這組測試指令包括一種算法,該算法是將偽隨機位序列寫入所說的待測存貯器的可尋址單元的參考數(shù)據(jù)塊中,并且將所說的參考數(shù)據(jù)塊反復復制入其他可尋址單元內(nèi)以便為測試存貯器故障奠定基礎(chǔ)。
20.一種用于對具有多個可尋址單元的待測存貯器從低地址至高地址的范圍內(nèi)進行功能測試的測試系統(tǒng),該系統(tǒng)包括通過自低地址開始將所說的偽隨機位序列第一次寫入單元的參考數(shù)據(jù)塊并且通過在至高地址的所說范圍反復復制所說的參考數(shù)據(jù)塊把偽隨機位序列寫入所說的多個可尋址單元的裝置;通過對在所說的參考數(shù)據(jù)塊內(nèi)的位第一次求補、并且在至高地址的所說的范圍反復復制所說的參考數(shù)據(jù)塊、來對在所說多個可尋址單元內(nèi)的所有位求補的裝置;用于順序地從高地址至低地址的范圍內(nèi)讀出每一個單元,并且對每一個單元中的位第二次求補的裝置;用于在從低址至高地址的范圍內(nèi)順序讀出每個單元、并且用于將每一個單元內(nèi)第二次求補的位和所說的偽隨機位序列進行比較、以檢測其間任何差別的裝置;以及用于響應(yīng)所說的差別指示存貯器故障的裝置。
全文摘要
一種在待測的以微處理器為基礎(chǔ)的裝置或插件板中對存貯器進行高速、高準確度的功能測試的方法和系統(tǒng),它包括一個在測試中永久有效地連到待測裝置的總線結(jié)構(gòu)上、并按待測裝置的時鐘速率工作的檢測系統(tǒng)。測試程序可存貯在待測裝置自己的存貯器內(nèi),或者用存貯器覆蓋技術(shù)將其從測試系統(tǒng)的存貯器電轉(zhuǎn)移至待測存貯器。利用較新型的微處理器的數(shù)據(jù)塊移動和比較的特點進一步提高了存貯器測試速度。提供了利用塊移動和比較特點的一種算法。
文檔編號G11C29/00GK1035018SQ8910039
公開日1989年8月23日 申請日期1989年1月24日 優(yōu)先權(quán)日1988年1月27日
發(fā)明者克雷格·文森特·約翰遜 申請人:約翰弗蘭克制造公司