專利名稱:內(nèi)存測試方法
技術(shù)領(lǐng)域:
本發(fā)明是關(guān)于一種內(nèi)存的測試方法,尤其是一種組合不同運作模式, 來檢測內(nèi)存的測試方法。
背景技術(shù):
可攜式技術(shù)的發(fā)展使人們越來越依賴移動電話、PDA和導(dǎo)航系統(tǒng)這類 可攜式裝置。隨著處理器技術(shù)的不斷進步,過去幾年中大容量內(nèi)存的設(shè)計 和開發(fā)呈指數(shù)級成長。其中,設(shè)計的關(guān)鍵組件不是速度更快的處理器,而 是采用閃存取代了硬盤。因此,這些可攜式裝置的可靠性取決于內(nèi)存的正 確設(shè)計和測試。
內(nèi)存測試的主要目標(biāo)是驗證內(nèi)存上的每一個儲存位都能夠可靠地儲 存數(shù)據(jù)。因此,內(nèi)存測試包括驗證實體連接是否正確以及確保內(nèi)存的每一 個記憶位置功能正常。
驗證實體連接(包括內(nèi)存地址和數(shù)據(jù)i/o線路)對于確保數(shù)據(jù)被正確 儲存在所期望的位置至關(guān)重要。地址線規(guī)定每一個作業(yè)的儲存位置,而雙 向數(shù)據(jù)線負責(zé)將數(shù)據(jù)輸入和輸出內(nèi)存。如果有一個實體連接產(chǎn)生故障,其 它測試也會出錯。
內(nèi)存的功能測試由數(shù)字測試設(shè)備執(zhí)行的一系列讀寫作業(yè)構(gòu)成。每次執(zhí) 行讀取作業(yè)之后,測試系統(tǒng)將讀取的數(shù)據(jù)與期望值做比較。例如圖1所示, 一個四位內(nèi)存需要四次寫入和讀取作業(yè),以完全驗證數(shù)據(jù)線并核査其功能 是否正常。初始化時,內(nèi)存各位均設(shè)定為。測試的第一步是把'1000'
寫入預(yù)設(shè)的地址,然后對此地址進行讀取作業(yè)。接下來,以前進ls (marching-Is)的模式逐步寫入數(shù)據(jù)并讀取數(shù)據(jù),即可有效率地測試數(shù)據(jù) 線。如果由內(nèi)存讀出的數(shù)據(jù)與所寫入的數(shù)據(jù)相匹配,那么就顯示數(shù)據(jù)線功 能正確。
前述針對數(shù)據(jù)線所進行的測試也可適用于地址線。不過,此等測試通 常僅能簡單檢測出內(nèi)存的地址線(address bus)、數(shù)據(jù)線(data bus)與控
制線(control bus)是否可以正常工作,而難以檢測出內(nèi)存在不同工作模 式下所可能產(chǎn)生的異常錯誤。
因此,如何確保內(nèi)存在不同工作或讀寫模式下,均可以正常運作,將 會對可攜式電子產(chǎn)品的可靠性,產(chǎn)生嚴(yán)重的影響。
發(fā)明內(nèi)容
本發(fā)明的主要目的在于提供一種理想的測試流程,以有效檢測內(nèi)存在 不同工作或讀寫模式下所可能產(chǎn)生的異常錯誤。
本發(fā)明提供一種內(nèi)存測試方法,包括(a)調(diào)整內(nèi)存的相關(guān)參數(shù), 以選定一特定的工作模式;(b)在內(nèi)存的各個儲存位置中,填入各個儲 存位置的地址;(c)在內(nèi)存的各個儲存位置中,填入0或1; (d)將一 預(yù)設(shè)的測試數(shù)據(jù),依序填入內(nèi)存的各個儲存位置;(e)將一預(yù)設(shè)的測試 數(shù)據(jù),以一預(yù)設(shè)模數(shù)(module)為差值逐步增加,依序填入內(nèi)存的各個儲 存位置;(f)隨著內(nèi)存的各個儲存位置地址的遞增,依序填入相對應(yīng)的測 試數(shù)據(jù)。
在前述各個步驟后,分別讀出各個儲存位置內(nèi)的數(shù)據(jù),并比較填入各 個儲存位置內(nèi)的數(shù)據(jù)與讀出的數(shù)據(jù),以判斷內(nèi)存是否正常。
基于此,本發(fā)明的內(nèi)存檢測方法是提供一有效率的內(nèi)存檢測流程,以 檢測出內(nèi)存在不同工作模式下的異常錯誤。同時,也可以避免不必要的檢 測步驟的執(zhí)行,以節(jié)省不必要的檢測成本。
關(guān)于本發(fā)明的優(yōu)點與精神可以通過以下的發(fā)明詳述及附圖得到進一 步的了解。
圖1是一典型內(nèi)存測試方法的示意圖2是本發(fā)明的內(nèi)存測試方法一較佳實施例的流程圖; 圖3是一典型同步動態(tài)隨機存取內(nèi)存的儲存地址配置的示意圖; 圖4是步驟520的測試方式一較佳實施例的示意圖;以及 圖5是本發(fā)明內(nèi)存測試方法另一較佳實施例的流程圖。
具體實施例方式
請參照圖2所示,是本發(fā)明的內(nèi)存測試方法一較佳實施例的流程圖。 首先,調(diào)整內(nèi)存的相關(guān)參數(shù),如工作頻率、工作電壓、讀寫方式(例如 SDRAM CL (CAS latency) , BL (bursUength)等內(nèi)存讀寫特征參數(shù)), 借以選定一特定工作模式和讀寫模式(步驟100)。隨后,在設(shè)定內(nèi)存的
各個儲存位置的地址(步驟no)后,從內(nèi)存的起始地址至結(jié)束地址,在 內(nèi)存的各個儲存位置中,填入各個儲存位置自身的地址(步驟120)。然 后,讀出內(nèi)存的各個儲存位置內(nèi)的數(shù)據(jù),并與填入各個儲存位置內(nèi)的數(shù)據(jù) (即各個儲存位置自身的地址)相比較,以判斷內(nèi)存是否正常運作(步驟 130)。若是比較結(jié)果發(fā)現(xiàn)錯誤,即不需進行后續(xù)測試。
若是步驟130的判斷結(jié)旲認為內(nèi)存正常運作,則進行下一階段的測試。 此階段的測試是從內(nèi)存的起始地址至結(jié)束地址,在內(nèi)存的各個儲存位置中 填入0或1 (步驟220)。然后,讀出內(nèi)存的各個儲存位置內(nèi)的數(shù)據(jù),并 與填入各個儲存位置內(nèi)的數(shù)據(jù)(0或1)相比較,以判斷內(nèi)存是否正常運 作(步驟230)。若是比較結(jié)果發(fā)現(xiàn)錯誤,即不需進行后續(xù)測試。
若是步驟230的判斷結(jié)果認為內(nèi)存正常運作,則進行下一階段的測試。 此階段的測試是從內(nèi)存的起始地址至結(jié)束地址,將一預(yù)設(shè)的測試數(shù)據(jù),依 序填入內(nèi)存的各個儲存位置(步驟320)。然后,讀出內(nèi)存的各個儲存位 置內(nèi)的數(shù)據(jù),并與填入各個儲存位置內(nèi)的數(shù)據(jù)(即前述預(yù)設(shè)的測試數(shù)據(jù)) 相比較,以判斷內(nèi)存是否正常運作(步驟330)。舉例來說,此階段的測 試可以是如圖1所示的以單一位為移動單位的前進'一'測試(walking ones),或者以八位為移動單位的'八位,前進測試(walking 8 bit test)。 若是比較結(jié)果發(fā)現(xiàn)錯誤,即不需進行后續(xù)測試。
若是步驟330的判斷結(jié)果認為內(nèi)存正常運作,則進行下一階段的測試。 此階段的測試是從內(nèi)存的起始地址至結(jié)束地址,將一預(yù)設(shè)的測試數(shù)據(jù),以 一預(yù)設(shè)模數(shù)(module)為差值逐步增加,依序填入內(nèi)存的各個儲存位置(步 驟420)。然后,讀出內(nèi)存的各個儲存位置內(nèi)的數(shù)據(jù),并與填入各個儲存 位置內(nèi)的數(shù)據(jù)相比較,以判斷內(nèi)存是否正常運作(步驟430)。若是比較 結(jié)果發(fā)現(xiàn)錯誤,即不需進行后續(xù)測試。
若是步驟430的判斷結(jié)果認為內(nèi)存正常運作,則進行下一階段的測試。 此階段的測試是從內(nèi)存的起始地址至結(jié)束地址,隨著內(nèi)存的各個儲存位置地址的遞增,依序填入相對應(yīng)的測試數(shù)據(jù)(步驟520)。然后,讀出內(nèi)存的各個儲存位置內(nèi)的數(shù)據(jù),并與填入各個儲存位置內(nèi)的數(shù)據(jù)相比較,以判斷內(nèi)存是否正常運作(步驟530)?;旧希鐖D3所示, 一典型同步動態(tài)隨機存取內(nèi)存(Synchronous Dynamic Random Access Memory, SDRAM)的地址是由區(qū)塊(Bank)地 址與行列(Row&Column)的地址所構(gòu)成。行列地址的位數(shù),即可決定區(qū) 塊的范圍。請參照圖4所示,是步驟520的測試方式一實施例的示意圖。 首先,由第一列(X=0000)開始填入測試數(shù)據(jù),各個地址的測試數(shù)據(jù)隨著 行的地址的遞增而增加。例如由OOOl、 0002、 0004...逐步增加。在行的地址遞增至最大值(Yma》后,將此填入Ymax處的測試數(shù)據(jù)(即圖中的1000)重復(fù)填入第二列(X=0001)第一行。然后,再由第二列第二行開始,隨著 行地址的遞增重復(fù)填入前述測試數(shù)據(jù)。前述步驟一直重復(fù)進行,直至填滿 內(nèi)存的所有區(qū)域。然后,讀出內(nèi)存各個儲存位置內(nèi)的數(shù)據(jù),并與填入各個 儲存位置內(nèi)的數(shù)據(jù)相比較,以判斷內(nèi)存是否正常運作。前述填入第一列 (X=0000)的測試數(shù)據(jù)可按位移動變換,例如原本由第一列第一行開始 填入的數(shù)據(jù)(由0001、 0002、 0004...逐步增加至1000)可改由第一列第 二行幵始填入。每此變換后再按照上述方式重復(fù)進行測試。
值得注意的是,前述填入測試數(shù)據(jù)的方式,造成不同列的測試數(shù)據(jù)間 產(chǎn)生位移(pattern shift)現(xiàn)象。亦即第一列中,測試數(shù)據(jù)0001是位于第 一行處,但在第二列中,測試數(shù)據(jù)OOOl則移動至第二行處,依此類推。值得注意的是,經(jīng)由前述步驟IOO特定內(nèi)存的工作模式與讀寫模式, 后續(xù)的內(nèi)存測試步驟120, 220, 320, 420, 520均是以此特定的工作模式 與讀寫模式為條件進行測試。利用步驟100改變內(nèi)存的工作模式與讀寫模 式的設(shè)定,并重復(fù)整套測試流程,即可以找到一個比較有效的測試環(huán)境模 式(即內(nèi)存最容易出錯的工作模式或讀寫模式)。隨后,相類的內(nèi)存即可 設(shè)定在此模式下進行測試以提高效率,節(jié)省測試所需的時間。前述各個測試步驟120, 220, 320, 420, 520是由內(nèi)存的起始地址至 結(jié)束地址,依序填入數(shù)據(jù),然而也不限于此。也可以由內(nèi)存的結(jié)束地址至 起始地址,依序填入數(shù)據(jù)以迸行測試。或者兩者并行。其次,前述測試步
驟320, 420中所填入的測試數(shù)據(jù),也可以取其負數(shù)后,重復(fù)進行測試。 此外,測試步驟520的測試方法,也不限于隨著內(nèi)存的各個儲存位置地址 的遞增,依序填入相對應(yīng)的測試數(shù)據(jù)。也可隨著內(nèi)存的各個儲存位置地址 的遞減,依序填入相對應(yīng)的測試數(shù)據(jù)。
同時,前述測試步驟120, 220, 320, 420, 520也不限于內(nèi)存的所有 地址均填入測試數(shù)據(jù)后,再去讀取比對相對應(yīng)的測試數(shù)據(jù)。也可在填入測 試數(shù)據(jù)于特定地址后,隨著內(nèi)存的各個儲存位置地址先讀取數(shù)據(jù),與相對 應(yīng)的測試數(shù)據(jù)相比較,以判斷內(nèi)存是否正常運作。然后,再填入下一個測 試數(shù)據(jù)。如此做的目的是可以檢測出因填入當(dāng)前地址的測試數(shù)據(jù)而影響其 它地址的存儲數(shù)據(jù)的錯誤。
請參照圖5所示,是本發(fā)明內(nèi)存測試方法另一較佳實施例的流程圖。 相較于圖2的實施例具有五階段的測試,本實施例增加至八階段,以確保 內(nèi)存在任何運作狀態(tài)下,均能正確無誤。
第一階段與第二階段的內(nèi)存測試,如同圖2的實施例中,在內(nèi)存的各 個儲存位置中,填入各個儲存位置自身的地址(步驟120)的測試步驟, 以及在內(nèi)存的各個儲存位置中填入O或1 (步驟220)的測試步驟。
第三階段的內(nèi)存測試,是以內(nèi)存的儲存區(qū)塊(bank)為單位,以固定 的測試數(shù)據(jù)進行測試。也就是,將此固定的測試數(shù)據(jù),依序填入內(nèi)存的各 個儲存區(qū)塊,直至填滿內(nèi)存所有的儲存區(qū)塊(步驟620)。然后,讀出內(nèi) 存內(nèi)的數(shù)據(jù),并與填入各個儲存區(qū)塊內(nèi)的數(shù)據(jù)相比較,以判斷內(nèi)存是否正 常運作(步驟630)。
第四階段的內(nèi)存測試,是以八位為移動單位的'八位'前進測試 (walking 8 bit test)。將一測試數(shù)據(jù),以八位為移動單位,依序填入內(nèi)存 的各個儲存位置(步驟720)。然后,讀出內(nèi)存的各個儲存位置內(nèi)的數(shù)據(jù), 并與填入各個儲存位置內(nèi)的測試數(shù)據(jù)相比較,以判斷內(nèi)存是否正常運作 (步驟730)。
第五階段的內(nèi)存測試,是如同圖2中,將一預(yù)設(shè)的測試數(shù)據(jù),以一預(yù) 設(shè)模數(shù)(module)為差值逐步增加,依序填入內(nèi)存的各個儲存位置(步驟 420)的測試步驟。第六階段的內(nèi)存測試步驟(步驟820),是類似第四階 段的'八位,前進測試(walking 8 bit test)。但是,其中的測試數(shù)據(jù)是由
處理器隨機產(chǎn)生的測試數(shù)據(jù)。第七階段的內(nèi)存測試,是如同圖2中隨著內(nèi) 存的各個儲存位置地址的遞增,依序填入相對應(yīng)的測試數(shù)據(jù)(步驟520)。
第八階段的內(nèi)存測試步驟(步驟920),是類似第七階段的內(nèi)存測試。但 是,此測試步驟是隨著內(nèi)存的各個儲存位置地址的遞減,依序填入相對應(yīng) 的測試數(shù)據(jù)。然后,讀出內(nèi)存的各個儲存位置內(nèi)的數(shù)據(jù),并與填入各個儲 存位置內(nèi)的測試數(shù)據(jù)相比較,以判斷內(nèi)存是否正常運作(步驟930)。隨 著可攜式電子產(chǎn)品的發(fā)展,內(nèi)存的可靠性要求也更加嚴(yán)苛。傳統(tǒng)的檢測方 法僅能簡單檢測出內(nèi)存的地址線(address bus)、數(shù)據(jù)線(data bus)與控 制線(control bus)是否可以正常工作,而不敷使用。
相較之下,本發(fā)明的內(nèi)存檢測方法,提供一有效率的內(nèi)存檢測流程, 以檢測出內(nèi)存在不同工作模式下的異常錯誤。同時,也可以避免不必要的 檢測步驟的執(zhí)行,以節(jié)省不必要的檢測成本。
以上所述是利用較佳實施例詳細說明本發(fā)明,而非限制本發(fā)明的范 圍,而且熟知此類技藝人士皆能明了,適當(dāng)而作輕微的改變及調(diào)整,仍將 不失本發(fā)明的要義所在,也不脫離本發(fā)明的精神和范圍。
權(quán)利要求
1.一種內(nèi)存測試方法,包括下列步驟(a)在內(nèi)存的各儲存位置中,填入各儲存位置的地址;(b)在內(nèi)存的各儲存位置中,填入0或1;(c)將一預(yù)設(shè)的測試數(shù)據(jù),依序填入內(nèi)存的各儲存位置;(d)將一預(yù)設(shè)的測試數(shù)據(jù),以一預(yù)設(shè)模數(shù)為差值逐步增加,依序填入內(nèi)存的各儲存位置;以及(e)隨著各儲存位置地址的遞增,重復(fù)填入一系列相對應(yīng)的測試數(shù)據(jù);其中,在前述步驟(a)至(e)后,分別讀出各儲存位置內(nèi)的數(shù)據(jù),并且,比較填入各儲存位置內(nèi)的數(shù)據(jù)與所述讀出的數(shù)據(jù),以判斷該內(nèi)存是否正常。
2. 如權(quán)利要求1所述的內(nèi)存測試方法,其特征在于,當(dāng)所述比較結(jié)果 發(fā)現(xiàn)錯誤時,停止所述內(nèi)存后續(xù)的測試。
3. 如權(quán)利要求1所述的內(nèi)存測試方法,其特征在于,所述預(yù)設(shè)的測試 數(shù)據(jù)是由一處理器產(chǎn)生的隨機數(shù)據(jù)。
4. 如權(quán)利要求1所述的內(nèi)存測試方法,其特征在于,所述預(yù)設(shè)的測試 數(shù)據(jù)是一固定的測試數(shù)據(jù)。
5. 如權(quán)利要求1所述的內(nèi)存測試方法,其特征在于,還包括將所述預(yù) 設(shè)的測試數(shù)據(jù)取其負數(shù),依序填入所述內(nèi)存的各儲存位置。
6. 如權(quán)利要求1所述的內(nèi)存測試方法,其特征在于,在步驟(a)之 前,還包括設(shè)定所述內(nèi)存的參數(shù),以選定一工作模式或讀寫模式的步驟。
7. 如權(quán)利要求6所述的內(nèi)存測試方法,其特征在于,所述參數(shù)包括工 作頻率、工作電壓與內(nèi)存讀寫特征參數(shù)。
8. 如權(quán)利要求6所述的內(nèi)存測試方法,其特征在于,還包括以重復(fù)步 驟(a)至(e)的方式,以找到該內(nèi)存最容易出錯的工作模式或讀寫模式。
9. 一種內(nèi)存測試方法,包括下列步驟 設(shè)定內(nèi)存的各儲存位置的地址;在內(nèi)存的各儲存位置中,填入各儲存位置的地址,并且,讀出各儲存 位置內(nèi)的數(shù)據(jù),并與各儲存位置的地址比較,以判斷內(nèi)存是否正常;若是內(nèi)存正常,在內(nèi)存的各儲存位置中,填入0或1,并且,讀出各 儲存位置內(nèi)的數(shù)據(jù),并與填入各儲存位置的0或1比較,以判斷內(nèi)存是否正常;若是內(nèi)存正常,將一預(yù)設(shè)的測試數(shù)據(jù),依序填入內(nèi)存的各儲存區(qū)塊, 并且,讀出各儲存區(qū)塊內(nèi)的數(shù)據(jù),并與填入各儲存區(qū)塊的預(yù)設(shè)測試數(shù)據(jù)比 較,以判斷內(nèi)存是否正常;若是內(nèi)存正常,以八位為移動單位,將一預(yù)設(shè)的測試數(shù)據(jù),依序填入 內(nèi)存的各儲存位置,并且,讀出各儲存位置內(nèi)的數(shù)據(jù),并與填入各儲存位 置的預(yù)設(shè)測試數(shù)據(jù)比較,以判斷內(nèi)存是否正常;若是內(nèi)存正常,將一預(yù)設(shè)的測試數(shù)據(jù),以一預(yù)設(shè)模數(shù)為差值逐步增加, 依序填入內(nèi)存的各儲存位置,并且,讀出各儲存位置內(nèi)的數(shù)據(jù),并與填入 各儲存位置的數(shù)據(jù)比較,以判斷內(nèi)存是否正常;若是內(nèi)存正常,以八位為移動單位,將一隨機的測試數(shù)據(jù),依序填入 該內(nèi)存的各儲存位置,并且,讀出各儲存位置內(nèi)的數(shù)據(jù),并與填入各儲存 位置的預(yù)設(shè)測試數(shù)據(jù)比較,以判斷內(nèi)存是否正常;若是內(nèi)存正常,隨著各儲存位置地址的遞增,重復(fù)填入一系列相對應(yīng) 的測試數(shù)據(jù),并且,讀出各儲存位置內(nèi)的數(shù)據(jù),并與填入各儲存位置的該 一系列相對應(yīng)的測試數(shù)據(jù)比較,以判斷內(nèi)存是否正常;以及若是內(nèi)存正常,隨著各儲存位置地址的遞減,重復(fù)填入一系列相對應(yīng) 的測試數(shù)據(jù),并且,讀出各儲存位置內(nèi)的數(shù)據(jù),并與填入各儲存位置的該 一系列相對應(yīng)的測試數(shù)據(jù)比較,以判斷內(nèi)存是否正常。
10. 如權(quán)利要求9所述的內(nèi)存測試方法,其特征在于,當(dāng)所述比較 結(jié)果發(fā)現(xiàn)錯誤時,停止該內(nèi)存后續(xù)的測試。
11. 如權(quán)利要求9所述的內(nèi)存測試方法,其特征在于,還包括將所 述預(yù)設(shè)的測試數(shù)據(jù)取其負數(shù),依序填入該內(nèi)存的各儲存位置。
12. 如權(quán)利要求9所述的內(nèi)存測試方法,其特征在于,在設(shè)定該內(nèi) 存的各儲存位置的地址之前,還包括設(shè)定該內(nèi)存的參數(shù),以選定一工作模 式或讀寫模式的步驟。
13. 如權(quán)利要求12所述的內(nèi)存測試方法,其特征在于,所述參數(shù)包 括工作頻率、工作電壓與內(nèi)存讀寫特征參數(shù)。
14.如權(quán)利要求12所述的內(nèi)存測試方法,其特征在于,還包括選定 不同的工作模式或讀寫模式,并重復(fù)該內(nèi)存的測試步驟,以找到該內(nèi)存最 容易出錯的工作模式或讀寫模式。
全文摘要
一種內(nèi)存測試方法,包括(a)調(diào)整內(nèi)存的相關(guān)參數(shù),以選定一特定的工作模式;(b)在內(nèi)存的各個儲存位置中,填入各個儲存位置的地址;(c)在內(nèi)存的各個儲存位置中,填入0或1;(d)將一預(yù)設(shè)的測試數(shù)據(jù),依序填入內(nèi)存的各個儲存位置;(e)將一預(yù)設(shè)的測試數(shù)據(jù),以一預(yù)設(shè)模數(shù)(module)為差值逐步增加,依序填入內(nèi)存的各個儲存位置;(f)隨著內(nèi)存的各個儲存位置地址的遞增,依序填入相對應(yīng)的測試數(shù)據(jù)。
文檔編號G11C29/56GK101169975SQ20061011748
公開日2008年4月30日 申請日期2006年10月24日 優(yōu)先權(quán)日2006年10月24日
發(fā)明者琪 王 申請人:英華達(上海)科技有限公司