專利名稱:一種檢測內(nèi)存的方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及內(nèi)存檢測技術(shù),特別是涉及一種檢測內(nèi)存的方法和裝置。
背景技術(shù):
內(nèi)存可以看作是內(nèi)存控制器(一般位于北橋芯片中)與CPU之間的橋梁
或與倉庫。顯然,內(nèi)存的容量決定"倉庫"的大小,而內(nèi)存的帶寬決定"橋梁"的 寬窄,兩者缺一不可,這也就是通常說道的"內(nèi)存容量"與"內(nèi)存速度"。
而內(nèi)存作為PC (個人電腦)的核心配件之一,對PC整體性能的影響非
常大,因此對內(nèi)存的檢測很重要。
現(xiàn)有的內(nèi)存檢測方法, 一般測試的是內(nèi)存的帶寬、容量和速度等等,在實 現(xiàn)本發(fā)明技術(shù)方案的過程中,發(fā)現(xiàn)現(xiàn)有的這些測試雖然獲得了內(nèi)存的一些性能 參數(shù),但并不能對內(nèi)存進行完整全面的檢查,如果內(nèi)存中有部分存儲空間不正 常,將很難檢查到。因此,現(xiàn)有技術(shù)測試內(nèi)存的方法單一,不能全面準(zhǔn)確的對 內(nèi)存進行測試,是有待解決的問題。
發(fā)明內(nèi)容
本發(fā)明實施例的目的是提供一種檢測內(nèi)存的方法和裝置,能夠更加直觀、 全面、系統(tǒng)的對內(nèi)存進行才企測。
為了實現(xiàn)上述目的, 一方面,提供了一種檢測內(nèi)存的方法,包括如下步驟 步驟一,按照預(yù)定順序,向內(nèi)存字節(jié)中寫入預(yù)定類型的寫入數(shù)據(jù); 步驟二,按照所述預(yù)定順序從所述內(nèi)存中獲得讀出數(shù)據(jù),比較所述讀出數(shù)
據(jù)與所述寫入數(shù)據(jù)是否相同,是則所述內(nèi)存正常,否則所述內(nèi)存出錯。
優(yōu)選地,上述的方法中,所述步驟一具體包括按照由低到高的地址順序,
以每個字節(jié)為單位依次寫入字符型變量的寫入數(shù)據(jù),所述字符型變量的寫入數(shù)
據(jù)從0到255循環(huán)賦值;所述步驟二具體包括按照所述由低到高的地址順序,
5從所述內(nèi)存中獲得每個字節(jié)的讀出數(shù)據(jù),比較所述讀出數(shù)據(jù)與所述字符型變量 的寫入數(shù)據(jù)是否相同,是則所述內(nèi)存正常,否則所述內(nèi)存出錯。。
優(yōu)選地,上述的方法中,所述步驟一具體包括按照由低到高的地址順序, 以每兩個字節(jié)為單位依次寫入固定的整型數(shù)據(jù),所述整型數(shù)據(jù)的值為十六進制 的Oxaaaa;所述步驟二具體包括按照所述由低到高的地址順序從所述內(nèi)存中 獲得讀出數(shù)據(jù),將所述讀出數(shù)據(jù)轉(zhuǎn)化為二進制的值,進而確定每個字節(jié)的每一 位的讀出值是"0"還是 "1";根據(jù)所述十六進制的Oxaaaa轉(zhuǎn)化成二進制后 的"0"、 "1"分布的規(guī)律,確定每個字節(jié)的每一位寫入的寫入值是"0"還是 "1";比較每個字節(jié)的每一位的所述讀出值和所述寫入值,相同則該位正常, 不同則該位異常。
優(yōu)選地,上述的方法中,還包括
步驟三按照由低到高的地址順序,以每兩個字節(jié)為單位依次寫入固定的 整型數(shù)據(jù),所述整型數(shù)據(jù)的值為十六進制的0x55555; 步驟四
按照所述由低到高的地址順序從所述內(nèi)存中獲得讀出數(shù)據(jù),將所述讀出數(shù) 據(jù)轉(zhuǎn)化為二進制的值,進而確定每個字節(jié)的每一位的讀出值是"0"還是"1";
根據(jù)所述十六進制的0x55555轉(zhuǎn)化成二進制后的"0"、 'T,分布的規(guī)律, 確定每個字節(jié)的每一位寫入的寫入值是"0"還是"1";
比較每個字節(jié)的每一位的所述讀出值和所述寫入值,相同則該位正常,不 同則該位異常。
優(yōu)選地,上述的方法中,所述步驟一具體包括按照由低到高的地址順序, 對每個偶數(shù)地址的字節(jié)寫入一個字節(jié)的寫入數(shù)據(jù);所述步驟二具體包括按照 所述由低到高的地址順序,從所述內(nèi)存中獲得每個偶數(shù)地址的字節(jié)的讀出數(shù) 據(jù),比較所述讀出數(shù)據(jù)與所述寫入數(shù)據(jù)是否相同,是則所述內(nèi)存正常,否則所 述內(nèi)存出錯。
優(yōu)選地,上述的方法中,還包括
按照由低到高的地址順序,每4個字節(jié)中的前兩個寫入2個字節(jié)的寫入數(shù)
據(jù);
按照所述由低到高的地址順序,從所述內(nèi)存中獲得每4個字節(jié)中的前兩個的讀出數(shù)據(jù),比較所述讀出數(shù)據(jù)與所述寫入數(shù)據(jù)是否相同,是則所述內(nèi)存正常, 否則所述內(nèi)存出錯。
優(yōu)選地,上述的方法中,還包括
按照由低到高的地址順序,每隔1024個字節(jié),循環(huán)寫入數(shù)值從OxOO到 OxFF的寫入凄t據(jù);
按照所述由低到高的地址順序,從所述內(nèi)存中獲得讀出數(shù)據(jù),比較所述讀 出數(shù)據(jù)與所述寫入數(shù)據(jù)是否相同,是則所述內(nèi)存正常,否則所述內(nèi)存出錯。
優(yōu)選地,上述的方法中,
所述步驟一具體包括按照由高到低的地址順序,以每個字節(jié)為單位,在 每個字節(jié)中由最后位向最前位依次寫入循環(huán)變量寫入值,所述循環(huán)變量寫入值 的范圍為OxFF到0x00;
所述步驟二具體包括按照所述由高到低的地址順序,從所述內(nèi)存中獲得 讀出數(shù)據(jù),比較所述讀出數(shù)據(jù)與所述循環(huán)變量寫入值是否相同,是則所述內(nèi)存 正常,否則所述內(nèi)存出錯。
本發(fā)明的另一個方面,提供一種檢測內(nèi)存的裝置,包括
寫入控制模塊,用于按照預(yù)定順序,向內(nèi)存字節(jié)中寫入預(yù)定類型的寫入 數(shù)據(jù);
比較控制模塊,用于按照所述預(yù)定順序從所述內(nèi)存中獲得讀出數(shù)據(jù),比 較所述讀出數(shù)據(jù)與所述寫入數(shù)據(jù)是否相同,是則所述內(nèi)存正常,否則所述內(nèi)存 出錯。
優(yōu)選地,上述的裝置中,所述預(yù)定順序為由低到高的地址順序、由高到 低的地址順序或相隔預(yù)定字節(jié)的地址順序。
優(yōu)選地,上述的裝置中,所述預(yù)定類型的寫入數(shù)據(jù)為從0到255循環(huán)賦 值的字符型變量數(shù)據(jù);或,
值為Oxaaaa的十六進制的整型數(shù)據(jù);或,
值為0x55555的十六進制的整型數(shù)據(jù)。
優(yōu)選地,上述的裝置中,所述內(nèi)存為SDRAM或DDR,所述寫入控制模 塊和所述比較控制模塊設(shè)置于只讀存儲器中。本發(fā)明實施例至少存在以下技術(shù)效果
l)模擬程序運行時候?qū)τ趦?nèi)存的操作,進行讀寫和比對,能夠更加直觀、 全面、系統(tǒng)的對于SDRAM進4亍4僉測。
2 )具體的檢測包括字符型(char)掃描,短整型(short)掃描,整型(int) 掃描,跳躍型掃描,和逆序型掃描,以及他們的任意組合,因此提供了多種抬r 測掃描方式,使內(nèi)存檢測更系統(tǒng),更準(zhǔn)確。
圖1為本發(fā)明實施例提供的方法的步驟流程圖; 圖2為本發(fā)明實施例提供的裝置的結(jié)構(gòu)圖。
圖3為本發(fā)明實施例提供的能進行各種方式的內(nèi)存掃描的裝置的結(jié)構(gòu)圖; 圖4為本發(fā)明實施例提供的突發(fā)長度為4內(nèi)存尋址的示意圖。
具體實施例方式
為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合附圖對 具體實施例進行詳細描述。
圖1為本發(fā)明實施例提供的方法的步驟流程圖,如圖所示,檢測內(nèi)存的方 法包括
步驟IOI,按照預(yù)定順序,向內(nèi)存字節(jié)中寫入預(yù)定類型的寫入數(shù)據(jù); 步驟102,按照所述預(yù)定順序從所述內(nèi)存中獲得讀出數(shù)據(jù),比較所述讀出
數(shù)據(jù)與所述寫入數(shù)據(jù)是否相同,是則所述內(nèi)存正常,否則所述內(nèi)存出錯。
其中,預(yù)定類型的寫入數(shù)據(jù)可以是字符型(char),短整型(short),整
型(int),預(yù)定順序可以是進行4個字節(jié),8個字節(jié),以及固定長度的跳躍掃
描和逆序掃描,按地址從高到低或和從低到高依次寫入數(shù)據(jù)。 下面對各實施例進行分別描述。
1)字符型(char) 檢測內(nèi)存的方法包括
按照由低到高的地址順序,以每個字節(jié)為單位依次寫入字符型變量的寫入 數(shù)據(jù),所述字符型變量的寫入數(shù)據(jù)從0到255循環(huán)賦值;按照所述由低到高的地址順序,從所述內(nèi)存中獲得每個字節(jié)的讀出數(shù)據(jù), 比較所述讀出數(shù)據(jù)與所述字符型變量的寫入數(shù)據(jù)是否相同,是則所述內(nèi)存正 常,否則所述內(nèi)存出錯。。
2) 短整型(short)或整型(int) 才企測內(nèi)存的方法包4舌
按照由低到高的地址順序,以每兩個字節(jié)為單位依次寫入固定的整型數(shù) 據(jù),所述整型數(shù)據(jù)的值為十六進制的0xaaaa;
按照所述由低到高的地址順序從所述內(nèi)存中獲得讀出數(shù)據(jù),將所述讀出數(shù) 據(jù)轉(zhuǎn)化為二進制的值,進而確定每個字節(jié)的每一位的讀出值是"O"還是"1"; 根據(jù)所述十六進制的0xaaaa轉(zhuǎn)化成二進制后的"0"、 "1"分布的規(guī)律,確定 每個字節(jié)的每一位寫入的寫入值是"o"還是"1";比較每個字節(jié)的每一位的
所述讀出值和所述寫入值,相同則該位正常,不同則該位異常。
按照由低到高的地址順序,以每兩個字節(jié)為單位依次寫入固定的整型數(shù) 據(jù),所述整型數(shù)據(jù)的值為十六進制的0x55555;
按照所述由低到高的地址順序從所述內(nèi)存中獲得讀出數(shù)據(jù),將所述讀出數(shù) 據(jù)轉(zhuǎn)化為二進制的值,進而確定每個字節(jié)的每一位的讀出值是"0"還是"1";
根據(jù)所述十六進制的0x55555轉(zhuǎn)化成二進制后的"0"、 "1"分布的規(guī)律, 確定每個字節(jié)的每一位寫入的寫入值是"0"還是"1";
比較每個字節(jié)的每一位的所述讀出值和所述寫入值,相同則該位正常,不 同則該位異常。
3) 2字節(jié)跳躍掃描 檢測內(nèi)存的方法包括
按照由低到高的地址順序,對每個偶數(shù)地址的字節(jié)寫入一個字節(jié)的寫入數(shù)
據(jù);
按照所述由低到高的地址順序,從所述內(nèi)存中獲得每個偶數(shù)地址的字節(jié)的 讀出數(shù)據(jù),比較所述讀出數(shù)據(jù)與所述寫入數(shù)據(jù)是否相同,是則所述內(nèi)存正常, 否則所述內(nèi)存出錯。
4) 4字節(jié)跳躍掃描 才企測內(nèi)存的方法包括
9按照由低到高的地址順序,每4個字節(jié)中的前兩個寫入2個字節(jié)的寫入數(shù)
據(jù);
按照所述由低到高的地址順序,從所述內(nèi)存中獲得每4個字節(jié)中的前兩個 的讀出數(shù)據(jù),比較所述讀出數(shù)據(jù)與所述寫入數(shù)據(jù)是否相同,是則所述內(nèi)存正常, 否則所述內(nèi)存出錯。
按照由低到高的地址順序,每隔1024個字節(jié),循環(huán)寫入數(shù)值從OxOO到 OxFF的寫入數(shù)據(jù);
按照所述由低到高的地址順序,從所述內(nèi)存中獲得讀出數(shù)據(jù),比較所述讀 出數(shù)據(jù)與所述寫入數(shù)據(jù)是否相同,是則所述內(nèi)存正常,否則所述內(nèi)存出錯。 5)逆序掃描 ^r測內(nèi)存的方法包括
按照由高到低的地址順序,以每個字節(jié)為單位,在每個字節(jié)中由最后位向 最前位依次寫入循環(huán)變量寫入值,所述循環(huán)變量寫入值的范圍為OxFF到0x00;
按照所述由高到低的地址順序,從所述內(nèi)存中獲得讀出數(shù)據(jù),比較所述讀 出數(shù)據(jù)與所述循環(huán)變量寫入值是否相同,是則所述內(nèi)存正常,否則所述內(nèi)存出錯。
當(dāng)然,上面1)至5)的實施例可以單獨適用,也可以任意組合或者全部 適用,本領(lǐng)域的技術(shù)人員可以根據(jù)1)至5)的實施例組合出多個不同的是實 例,具體組合不在贅述,但這些組合也都是本發(fā)明的范圍。
圖2為本發(fā)明實施例提供的裝置的結(jié)構(gòu)圖,如圖所示,檢測內(nèi)存的裝置 包括
寫入控制模塊201,用于按照預(yù)定順序,向內(nèi)存字節(jié)中寫入預(yù)定類型的 寫入數(shù)據(jù);
比較控制模塊202,用于按照所述預(yù)定順序從所述內(nèi)存中獲得讀出數(shù)據(jù), 比較所述讀出數(shù)據(jù)與所述寫入數(shù)據(jù)是否相同,是則所述內(nèi)存正常,否則所述內(nèi) 存出錯。
所述預(yù)定順序為由低到高的地址順序、由高到低的地址順序或相隔預(yù)定 字節(jié)的地址順序。所述預(yù)定類型的寫入數(shù)據(jù)為從0到255循環(huán)賦值的字符型 變量數(shù)據(jù);值為Oxaaaa的十六進制的整型數(shù)據(jù);或,值為0x55555的十六進制的整型數(shù)據(jù)。
所述內(nèi)存為SDRAM ( Synchronous Dynamic Random Access Memory, 同 步動態(tài)隨機存儲器)或DDR(Double Date Rate SDRAM,雙信道同步動態(tài)隨才踏 取內(nèi)存),所述寫入控制模塊和所述比較控制模塊設(shè)置于ROM (Read-only memory,只讀存儲器)中。
如果把寫入控制模塊201和比較控制模塊202看作一個功能模塊的話,本 發(fā)明實施例根據(jù)寫入數(shù)據(jù)的類型和掃描的順序可以認(rèn)為是具有多個這種功能 模塊,圖3為本發(fā)明實施例提供的能進行各種方式的內(nèi)存掃描的裝置的結(jié)構(gòu) 圖,如圖3所示,表示能進行多種寫入數(shù)據(jù)類型和掃描順序的內(nèi)存檢測的裝置, 其包括的模塊有字符型(char)掃描301 ,短整型(short)掃描302,整型(int) 掃描303,跳躍型掃描304,逆序型掃描305,
以下分別說明各模塊。
字符型(char)掃描301:
對給個字節(jié)按照0x00地址賦值0x00,0x01地址賦值0x01,依次類推,0xFF
地址賦值0xFF,接下來0x100地址再從頭賦值為0x00......這樣可以非常方便
的看出哪個字節(jié)出錯。給出檢測者出錯的信息。比如0x300023地址應(yīng)該賦值 為0x23,低地址的低兩位與賦值的數(shù)值相同, 一旦不是這個數(shù)字,可以非常方 便的看出錯誤信息。其中,字符型數(shù)據(jù)是8位的。以0x開頭的是16進制數(shù)。
短整型(short)掃描302:
首先每2個字節(jié)賦值Oxaaaa,之所以選擇該數(shù)值,是因為該二進制數(shù)值展 開后是10均勻的分布。(1010101010101010),在SDRAM內(nèi)存中每個bit位 交叉賦值。
其次再每2個字節(jié)重新賦值0x5555,之所以選擇該數(shù)值,是因為該數(shù)值二 進制展開后是01的均勻分布(0101010101010101 ),這樣,SDRAM內(nèi)存中每 隔bit位,第一次賦值為O,第二次賦值為1,更加全面的-瞼證了內(nèi)存。
整型(int)掃描303:
首先每2個字節(jié)賦值0xaaaa,之所以選擇該數(shù)值,是因為該二進制數(shù)值展 開后是10均勻的分布。(1010101010101010),在SDRAM內(nèi)存中每個bit位 交叉賦值。其次再每2個字節(jié)重新賦值Ox5555,之所以選擇該數(shù)值,是因為該數(shù)值二 進制展開后是01的均勻分布(0101010101010101 ),這樣,SDRAM內(nèi)存中每 隔bit位,第一次賦值為O,第二次賦值為1,更加全面的-驗證了內(nèi)存
跳躍型掃描304:
在O, 2, 4,6字節(jié)偶數(shù)地址…寫入一個byte字節(jié),讀出該數(shù)據(jù),是否一
致;
在0, 4, 8字節(jié)(每隔4字節(jié))…寫入2個byte,然后讀出該數(shù)據(jù),是否 一致;
每隔1024個字節(jié),循環(huán)寫入0x00到OxFF,然后-驗證內(nèi)存是否工作正常, 該操在模擬程序運行時候?qū)?nèi)存進行跳躍尋址,來驗證內(nèi)存是否正常工作。此 外,內(nèi)存自刷新的周期的長短對于內(nèi)存跳躍式尋址有很大的影響,該方法能有 效的驗證內(nèi)存是否出錯。
逆序型掃描305:
對給個字節(jié)按照由高到低的順序,高地址最后兩位OxFF地址賦值 OxFF,OxFE地址賦值OxFE,依次類推,0x00地址賦值OxOO,接下來;再開始下 一個循環(huán)賦值......這樣可以非常方便的看出哪個字節(jié)出錯。給出檢測者出錯的
信息。比如0x300045地址應(yīng)該賦值為0x45,低地址的低兩位與賦值的數(shù)值相 同, 一旦不是這個數(shù)字,可以非常方便的看出錯誤信息。
綜上,本發(fā)明是通過對SDRAM進行char型,short型,int型賦值,再 進行4個字節(jié),8個字節(jié),以及固定長度的跳躍掃描,逆序掃描,從高地址依 次到低地址和依次寫入數(shù)據(jù)。驗證的程序運行在ROM中,對SDRAM進行讀 寫操作;
Char型掃描是對SDRAM內(nèi)存按照字節(jié)順序依次賦值從0到255,循環(huán)賦 值。然后從SDRAM地址中讀出該字節(jié)進行比對。如果SDRAM正常工作, 則讀出的字節(jié)數(shù)應(yīng)和寫入的一致;
Short型掃描是對SDRAM內(nèi)存每兩個字節(jié)寫入Oxaaaa(二進制 10101010101010),來驗證SDRAM中每個bit位是否正常工作。再掃描完一遍 后,再對兩個字節(jié)寫入0x55555(二進制0101010101010101),將以前bit位為0 的數(shù)字變成l,依次對SDRAM內(nèi)存空間進行掃描,來驗證內(nèi)存是否工作正常;跳躍掃描在O, 2, 4,6字節(jié)偶數(shù)地址…寫入一個byte字節(jié),讀出該數(shù)據(jù), 是否一致。在O, 4, 8字節(jié)(每隔4字節(jié))…寫入2個byte,然后讀出該數(shù)據(jù), 是否一致。再每隔1024個字節(jié),循環(huán)寫入0x00到0xFF,然后驗證內(nèi)存是否 工作正常;
逆序掃描,從高地址到低地址依次循環(huán)寫入0xFF到0x00的數(shù)據(jù),來驗 證內(nèi)存地址;
對于內(nèi)存的具體尋址,只要指定起始列地址與突發(fā)長度,內(nèi)存就會依次地 自動對后面相應(yīng)數(shù)量的存儲單元進行讀/寫操作而不再需要控制器連續(xù)地提供 列地址。這樣,除了第一筆數(shù)據(jù)的傳輸需要若干個周期其后每個數(shù)據(jù)只需一個 周期的即可獲得,現(xiàn)在的SDRAM均采用的是突發(fā)傳輸模式,即一次可以傳 輸多個數(shù)據(jù)。下圖4為對于突發(fā)長度(BL)為4內(nèi)存尋址的示意圖,地址線 發(fā)送完畢后,數(shù)據(jù)會在地址線往后依次傳4個數(shù)據(jù).如果進行char字符的讀取, SDRAM控制器會將后面的3個char型字符屏蔽掉,只讀取前面第一個。對 于short型,SDRAM控制器會將后面的2個字節(jié)的數(shù)據(jù)屏蔽掉,只讀取前2 個char型字。下一次讀取時候,需要再發(fā)送地址數(shù)據(jù)和讀取命令。對于int型 讀取, 一次可以讀取4個字節(jié),因此任何一種單一的測試都無法全面的對 SDRAM以及SDRAM控制器進行測試。
對于跳躍性掃描,是模擬程序在內(nèi)存中運行,對于地址的訪問并不是連續(xù) 的,從一個地址會跳到另一個地址去執(zhí)行,跳躍掃描正好可以模擬這種真實環(huán) 境下的對于內(nèi)存的操作,且跳躍性掃描,內(nèi)存的地址線高地位頻繁翻轉(zhuǎn),更能 檢測出內(nèi)存的穩(wěn)定性。本發(fā)明對于各種掃描方式進行了有效的結(jié)合,能夠提高 內(nèi)存才企測的效率。
由上可知,本發(fā)明實施例具有以下優(yōu)勢
l)模擬程序運行時候?qū)τ趦?nèi)存的操作,進行讀寫和比對,能夠更加直觀、 全面、系統(tǒng)的對于SDRAM進行4企測。
2 )具體的檢測包括字符型(char)掃描,短整型(short)掃描,整型(int) 掃描,跳躍型掃描,和逆序型掃描,以及他們的任意組合,因此提供了多種檢 測掃描方式,^使內(nèi)存4企測更系統(tǒng),更準(zhǔn)確。
以上所述僅是本發(fā)明的優(yōu)選實施方式,應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進和潤飾, 這些改進和潤飾也應(yīng)視為本發(fā)明的保護范圍。
權(quán)利要求
1.一種檢測內(nèi)存的方法,其特征在于,包括如下步驟步驟一,按照預(yù)定順序,向內(nèi)存字節(jié)中寫入預(yù)定類型的寫入數(shù)據(jù);步驟二,按照所述預(yù)定順序從所述內(nèi)存中獲得讀出數(shù)據(jù),比較所述讀出數(shù)據(jù)與所述寫入數(shù)據(jù)是否相同,是則所述內(nèi)存正常,否則所述內(nèi)存出錯。
2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟一具體包括按照由低到高的地址順序,以每個字節(jié)為單位依次 寫入字符型變量的寫入數(shù)據(jù),所述字符型變量的寫入數(shù)據(jù)從0到255循環(huán)賦值;所述步驟二具體包括按照所述由低到高的地址順序,從所述內(nèi)存中獲得 每個字節(jié)的讀出數(shù)據(jù),比較所述讀出數(shù)據(jù)與所述字符型變量的寫入數(shù)據(jù)是否相 同,是則所述內(nèi)存正常,否則所述內(nèi)存出錯。
3. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟一具體包括按照由低到高的地址順序,以每兩個字節(jié)為單位依 次寫入固定的整型數(shù)據(jù),所述整型數(shù)據(jù)的值為十六進制的0xaaaa;所述步驟二具體包括按照所述由低到高的地址順序從所述內(nèi)存中獲得讀 出數(shù)據(jù),將所述讀出數(shù)據(jù)轉(zhuǎn)化為二進制的值,進而確定每個字節(jié)的每一位的讀 出值是"0"還是"1";根據(jù)所述十六進制的Oxaaaa轉(zhuǎn)化成二進制后的"0"、 "1"分布的規(guī)律,確定每個字節(jié)的每一位寫入的寫入值是"0"還是"1";比 較每個字節(jié)的每一位的所述讀出值和所述寫入值,相同則該位正常,不同則該 位異常。
4. 根據(jù)權(quán)利要求3所述的方法,其特征在于,還包括步驟三按照由低到高的地址順序,以每兩個字節(jié)為單位依次寫入固定的 整型數(shù)據(jù),所述整型數(shù)據(jù)的值為十六進制的0x55555; 步驟四按照所述由低到高的地址順序從所述內(nèi)存中獲得讀出數(shù)據(jù),將所述讀出數(shù) 據(jù)轉(zhuǎn)化為二進制的值,進而確定每個字節(jié)的每一位的讀出值是"0"還是"1";根據(jù)所述十六進制的0x55555轉(zhuǎn)化成二進制后的"0"、 "1"分布的規(guī)律, 確定每個字節(jié)的每一位寫入的寫入值是"0"還是"1";比較每個字節(jié)的每一位的所述讀出值和所述寫入值,相同則該位正常,不 同則該位異常。
5. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟一具體包括按照由低到高的地址順序,對每個偶數(shù)地址的字節(jié) 寫入一個字節(jié)的寫入數(shù)據(jù);所述步驟二具體包括按照所述由低到高的地址順序,從所述內(nèi)存中獲得 每個偶數(shù)地址的字節(jié)的讀出數(shù)據(jù),比較所述讀出數(shù)據(jù)與所述寫入數(shù)據(jù)是否相 同,是則所述內(nèi)存正常,否則所述內(nèi)存出錯。
6. 根據(jù)權(quán)利要求1至5中任意一項所述的方法,其特征在于,還包括 按照由低到高的地址順序,每4個字節(jié)中的前兩個寫入2個字節(jié)的寫入數(shù)據(jù);按照所述由低到高的地址順序,從所述內(nèi)存中獲得每4個字節(jié)中的前兩個 的讀出數(shù)據(jù),比較所述讀出數(shù)據(jù)與所述寫入數(shù)據(jù)是否相同,是則所述內(nèi)存正常, 否則所述內(nèi)存出錯。
7. 根據(jù)權(quán)利要求6所述的方法,其特征在于,還包括 按照由低到高的地址順序,每隔1024個字節(jié),循環(huán)寫入數(shù)值從0x00到0xFF的寫入數(shù)據(jù);按照所述由低到高的地址順序,從所述內(nèi)存中獲得讀出數(shù)據(jù),比較所述讀 出數(shù)據(jù)與所述寫入數(shù)據(jù)是否相同,是則所述內(nèi)存正常,否則所述內(nèi)存出錯。
8. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟一具體包括按照由高到低的地址順序,以每個字節(jié)為單位,在 每個字節(jié)中由最后位向最前位依次寫入循環(huán)變量寫入值,所述循環(huán)變量寫入值 的范圍為0xFF到0x00;所述步驟二具體包括按照所述由高到低的地址順序,從所述內(nèi)存中獲得 讀出數(shù)據(jù),比較所述讀出數(shù)據(jù)與所述循環(huán)變量寫入值是否相同,是則所述內(nèi)存 正常,否則所述內(nèi)存出錯。
9. 一種檢測內(nèi)存的裝置,其特征在于,包括寫入控制模塊,用于按照預(yù)定順序,向內(nèi)存字節(jié)中寫入預(yù)定類型的寫入 數(shù)據(jù);比較控制模塊,用于按照所述預(yù)定順序從所述內(nèi)存中獲得讀出數(shù)據(jù),比 較所述讀出數(shù)據(jù)與所述寫入數(shù)據(jù)是否相同,是則所述內(nèi)存正常,否則所述內(nèi)存 出錯。
10. 根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述預(yù)定順序為由低到 高的地址順序、由高到低的地址順序或相隔預(yù)定字節(jié)的地址順序。
11. 根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述預(yù)定類型的寫入數(shù)據(jù) 為從0到255循環(huán)賦值的字符型變量數(shù)據(jù);或,值為Oxaaaa的十六進制的整型數(shù)據(jù);或, 值為0x55555的十六進制的整型數(shù)據(jù)。
12. 根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述內(nèi)存為SDRAM或 DDR,所述寫入控制模塊和所述比較控制模塊設(shè)置于只讀存儲器中。
全文摘要
本發(fā)明提供一種檢測內(nèi)存的方法和裝置,方法包括步驟一,按照預(yù)定順序,向內(nèi)存字節(jié)中寫入預(yù)定類型的寫入數(shù)據(jù);步驟二,按照所述預(yù)定順序從所述內(nèi)存中獲得讀出數(shù)據(jù),比較所述讀出數(shù)據(jù)與所述寫入數(shù)據(jù)是否相同,是則所述內(nèi)存正常,否則所述內(nèi)存出錯。本發(fā)明能夠更加直觀、全面、系統(tǒng)的對內(nèi)存進行檢測。
文檔編號G06F11/22GK101576838SQ20091008440
公開日2009年11月11日 申請日期2009年5月13日 優(yōu)先權(quán)日2009年5月13日
發(fā)明者明 凌, 周大山, 國 艾 申請人:北京中星微電子有限公司