两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

內(nèi)存檢測(cè)方法

文檔序號(hào):6590124閱讀:588來(lái)源:國(guó)知局
專利名稱:內(nèi)存檢測(cè)方法
技術(shù)領(lǐng)域
本發(fā)明涉及計(jì)算機(jī)內(nèi)存檢測(cè)技術(shù),具體涉及一種快速、高效、可靠的內(nèi)存檢測(cè)算法,尤其涉及可用于通訊領(lǐng)域的嵌入式系統(tǒng)的內(nèi)存檢測(cè)方法。
本發(fā)明上述技術(shù)問(wèn)題這樣解決,構(gòu)造一種內(nèi)存檢測(cè)方法,至少進(jìn)行地址線走1檢測(cè)、地址線走0檢測(cè)、數(shù)據(jù)線走1檢測(cè)和數(shù)據(jù)線走0檢測(cè)中的一種或一種以上的檢測(cè)。
其中,所述地址線走1檢測(cè)包括以下步驟a1)在給定地址范圍內(nèi),逐個(gè)向其中所有一個(gè)地址位為1、其余地址位為0的內(nèi)存單元,寫入該地址值;a2)寫完后,對(duì)上述內(nèi)存單元逐個(gè)回讀;a3)將回讀數(shù)值與寫入數(shù)值進(jìn)行比較,如果有回讀數(shù)值與寫入數(shù)值不一致,則表示存在地址線連接錯(cuò)誤。
其中,所述地址線走0檢測(cè)包括以下步驟b1)在給定地址范圍內(nèi),逐個(gè)向其中所有一個(gè)地址位為0、其余地址位為1的內(nèi)存單元,寫入該地址值;b2)寫完后,逐個(gè)回讀;b3)將讀回?cái)?shù)據(jù)與寫入數(shù)據(jù)進(jìn)行比較,如果有讀出數(shù)值與寫入數(shù)值不一致,則表示存在地址線連接錯(cuò)誤。
其中,所述數(shù)據(jù)線走1檢測(cè)包括以下步驟c1)選擇一個(gè)地址;c2)對(duì)所有一位數(shù)據(jù)線為1、其余數(shù)據(jù)線為0的數(shù)據(jù),逐個(gè)執(zhí)行步驟c3)-c5);c3)將當(dāng)前數(shù)據(jù)寫入所選內(nèi)存單元;c4)從所選內(nèi)存單元回讀數(shù)據(jù);c5)將回讀數(shù)據(jù)與寫入數(shù)據(jù)進(jìn)行比較,如果讀出數(shù)值與寫入數(shù)值不一致,則斷定存在數(shù)據(jù)線連接錯(cuò)誤。
其中,所述數(shù)據(jù)線走0檢測(cè)包括以下步驟d1)選擇一個(gè)地址;d2)對(duì)所有一位數(shù)據(jù)線為0、其余數(shù)據(jù)線為1的數(shù)據(jù),逐個(gè)執(zhí)行步驟d3)-d5);d3)將當(dāng)前數(shù)據(jù)寫入所選內(nèi)存單元;d4)從所選內(nèi)存單元回讀數(shù)據(jù);d5)將回讀數(shù)據(jù)與寫入數(shù)據(jù)進(jìn)行比較,如果讀出數(shù)值與寫入數(shù)值不一致,則斷定存在數(shù)據(jù)線連接錯(cuò)誤。
實(shí)施本發(fā)明提供的內(nèi)存檢測(cè)方法,可以迅速完全地確定內(nèi)存地址線、數(shù)據(jù)線方面有無(wú)故障即確定其正確和有效性,本發(fā)明的內(nèi)存檢測(cè)方法能夠檢測(cè)出的故障問(wèn)題包括地址線恒0、恒1、短路、數(shù)據(jù)線恒0、恒1及短路。同時(shí),本發(fā)明方法有很高的檢測(cè)效率。例如,對(duì)前面的16位地址線16位數(shù)據(jù)線的情況,只需要寫讀內(nèi)存16*4=64次。如對(duì)2M(2^21),32位內(nèi)存,只需要寫讀內(nèi)存((21-1)*2+32*2)=104次。


圖1是本發(fā)明方法中地址線走1檢測(cè)的實(shí)現(xiàn)流程圖;圖2是本發(fā)明方法中地址線走0檢測(cè)的實(shí)現(xiàn)流程圖;圖3是本發(fā)明方法中數(shù)據(jù)線走1檢測(cè)的實(shí)現(xiàn)流程圖;圖4是本發(fā)明方法中數(shù)據(jù)線走0檢測(cè)的實(shí)現(xiàn)流程圖;圖5是利用本發(fā)明方法四個(gè)部分進(jìn)行內(nèi)存中數(shù)據(jù)線走0檢測(cè)的實(shí)現(xiàn)流程圖。
對(duì)一個(gè)地址,通常取測(cè)試起始地址,向該內(nèi)存單元寫數(shù)據(jù),使一位數(shù)據(jù)線為0,其余為1。每寫一個(gè)值,回讀,比較,如果讀出值與寫入值不一樣,則表示存在數(shù)據(jù)線連接錯(cuò)誤。
下面詳細(xì)說(shuō)明本發(fā)明方法的上述四個(gè)部分是如何檢測(cè)出地址線和數(shù)據(jù)線的錯(cuò)誤的。為簡(jiǎn)單起見,假設(shè)一個(gè)芯片,16位數(shù)據(jù)線D0-D15,16位地址線A0-A15。作雙字節(jié)尋址時(shí),A0始終為0,可變地址線A1-A15。則進(jìn)行數(shù)據(jù)線走1時(shí),16個(gè)地址為0x0000,0x0002,0x0004,0x0008,0x0010,0x0020,0x0040,0x0080,0x0100,0x0200,0x0400,0x0800,0x1000,0x2000,0x4000,0x8000。進(jìn)行數(shù)據(jù)線走0時(shí),16個(gè)地址為0xfffe,0xfffc,0xfffa,0xfff6,0xffee,0xffde,0xffbe,0xff7e,0xfefe,0xfdfe,0xfbfe,0xf7fe,0xeffe,0xdffe,0xbffe,0x7ffe。如果存在地址線恒0的現(xiàn)象,例如A7為恒0,則進(jìn)行數(shù)據(jù)線走1時(shí),寫數(shù)據(jù)單元0x0080,其實(shí)是寫到了0x0000,即地址0x0000的值變成了0x0080,與原先寫入值0x0000不符合,發(fā)現(xiàn)錯(cuò)誤。進(jìn)行數(shù)據(jù)線走0時(shí),讀數(shù)據(jù)單元0xfffe其實(shí)讀出的是0xff7e的值,與原先寫入值0xfffe不符合,發(fā)現(xiàn)錯(cuò)誤。如果存在地址線恒1的情況也一樣。如果是短路的情況,例如A7和A9短路,則走1時(shí),地址0x0200與0x0080回讀出來(lái)的值是一樣的,走0時(shí),地址0xff7e與0xfdfe回讀出來(lái)的值是一樣的。這樣,就可以判斷出錯(cuò)誤。同時(shí)采用走1和走0,不僅可以判斷出有沒(méi)有錯(cuò)誤,而且可以判斷出錯(cuò)誤的類型。
對(duì)數(shù)據(jù)線進(jìn)行走1與走0測(cè)試的原理與前面的寫0x55AA是一致的,只不過(guò)采用走1和走0可以檢測(cè)出所有可能的情況,如恒0,恒1和短路。在走1時(shí),每次對(duì)一位數(shù)據(jù)線置1,其余位置0,遍歷所有數(shù)據(jù)線。比如上面的例子,16位數(shù)據(jù)線,需要寫的數(shù)據(jù)為0x0001,0x0002,0x0004,0x0008,0x0010,0x0020,0x0040,0x0080,0x0100,0x0200,0x0400,0x0800,0x1000,0x2000,0x4000,0x8000。在走0時(shí),每次對(duì)一位數(shù)據(jù)線置0,其余位置1,遍歷所有數(shù)據(jù)線。比如上面的例子,16位數(shù)據(jù)線,需要寫的數(shù)據(jù)為0xfffe,0xfffd,0xfffb,0xfff7,0xffef,0xffdf,0xffbf,0xff7f,0xfeff,0xfdff,0xfbff,0xf7ff,0xefff,0xdfff,0xbfff,0x7fff。如果存在短路如D7和D9短路則走1時(shí)寫0x0080和0x0200時(shí)讀回的值與寫入的值就不一樣了,走0時(shí)寫0xff7f和0xfdff時(shí)讀出與寫入的時(shí)就不一樣了,從而可以判斷出錯(cuò)誤。如果存在恒0或恒1的情況也一樣。同時(shí)進(jìn)行走1和走0測(cè)試不僅可以查出錯(cuò)誤,還能知道錯(cuò)誤類型。
從上可見,對(duì)地址線和數(shù)據(jù)線的寫-讀-比較的過(guò)程是不一樣的。對(duì)地址線是先全部寫完再回讀比較,對(duì)數(shù)據(jù)線則是寫一個(gè)值,回讀一個(gè)值。這一點(diǎn)需要注意。
圖1-5中詳細(xì)說(shuō)明了本發(fā)明各個(gè)部分的實(shí)現(xiàn)流程以及綜合各個(gè)方面進(jìn)行內(nèi)存檢測(cè)的過(guò)程。
如圖1所示,進(jìn)行地址線走1檢測(cè),首先要根據(jù)檢測(cè)內(nèi)存的大小和數(shù)據(jù)寬度,確定有效地址線位Ax->Ay,向基址地址數(shù)據(jù)單元寫地址值,從最低地址Ax開始走1,Ai=Ax;設(shè)置地址Ai為高、其余地址位為低電平,即Addr=基地址+(1(<Ai>;在該地址指向的內(nèi)存單元寫地址值即,*Addr=Addr;將地址線往高移位,即Ai=Ai+1;判斷超過(guò)要檢測(cè)的最高地址嗎,如不是,則進(jìn)行下一個(gè)地址的檢測(cè),如是,則讀基地址對(duì)應(yīng)內(nèi)存的數(shù)值,如不等于地址值,報(bào)告錯(cuò)誤。具體包括以下步驟從最低地址Ax開始走1,Ai=Ax,設(shè)置地址Ai為高,其余地址為低即Addr=基地址+(1<<Ai>;從該地址指向的內(nèi)存單元讀取數(shù)據(jù),即Data=*Addr,如果讀出數(shù)據(jù)不等于地址值,即如果Data<>Addr,則報(bào)告錯(cuò)誤,否則地址線向高移位,即Ai=Ai+1,判斷是否超過(guò)要檢測(cè)的最高地址,如不是,則返回其余單元的數(shù)據(jù)讀出和比較,如是則結(jié)束檢測(cè)。圖2-5的進(jìn)一步說(shuō)明此處省略。
本發(fā)明的內(nèi)存檢測(cè)方法可以用于各種需要進(jìn)行內(nèi)存檢測(cè)的場(chǎng)合,尤其適用于嵌入式系統(tǒng)中外圍存儲(chǔ)芯片的檢測(cè),檢測(cè)的存儲(chǔ)芯片類型包括SSRAM,SDRAM,F(xiàn)LASH等。當(dāng)然對(duì)各種不同的芯片其讀寫過(guò)程是不一樣的,這需要使用者自己編寫不同的讀寫函數(shù)。對(duì)于不同的存儲(chǔ)芯片,需要注意其特性。
在一個(gè)實(shí)驗(yàn)性的以太網(wǎng)交換機(jī)的開發(fā)過(guò)程中,交換芯片需要使用SSRAM作為以太網(wǎng)地址的存儲(chǔ)表。在調(diào)試過(guò)程中,實(shí)驗(yàn)性地使用以上檢測(cè)方法,即編寫了一個(gè)內(nèi)存檢測(cè)程序來(lái)檢測(cè)外接SSRAM的可用性。該段內(nèi)存被映射到PCI的存儲(chǔ)空間,通過(guò)PCI的輸入輸出函數(shù)進(jìn)行讀寫?;刂窞?x81200000,地址空間2M,在檢測(cè)過(guò)程中,報(bào)告錯(cuò)誤address walking 1…error found at 0x81200000 expected0x81200000,got 0x81300000;address walking 0…error found at 0x813ffffc expected 0x813ffffc,got 0x812ffffc;分析錯(cuò)誤報(bào)告的內(nèi)容,發(fā)現(xiàn)是地址線A20和A21短路,排除后,再次檢測(cè),不再報(bào)告錯(cuò)誤,內(nèi)存使用正常。從此可以看出,本發(fā)明的內(nèi)存檢測(cè)方法是快速高效的,對(duì)于迅速的檢測(cè)和排除內(nèi)存故障有很大的幫助。
權(quán)利要求
1.一種內(nèi)存檢測(cè)方法,其特征在于,至少進(jìn)行地址線走1檢測(cè)、地址線走0檢測(cè)、數(shù)據(jù)線走1檢測(cè)和數(shù)據(jù)線走0檢測(cè)中的一種檢測(cè)。
2.根據(jù)權(quán)利要求1所述內(nèi)存檢測(cè)方法,其特征在于,所述地址線走1檢測(cè)包括以下步驟a1)在給定地址范圍內(nèi),逐個(gè)向其中所有一個(gè)地址位為1、其余地址位為0的內(nèi)存單元,寫入該地址值;a2)寫完后,對(duì)上述內(nèi)存單元逐個(gè)回讀;a3)將回讀數(shù)值與寫入數(shù)值進(jìn)行比較,如果有回讀數(shù)值與寫入數(shù)值不一致,則表示存在地址線連接錯(cuò)誤。
3.根據(jù)權(quán)利要求1所述內(nèi)存檢測(cè)方法,其特征在于,所述地址線走0檢測(cè)包括以下步驟b1)在給定地址范圍內(nèi),逐個(gè)向其中所有一個(gè)地址位為0、其余地址位為1的內(nèi)存單元,寫入該地址值;b2)寫完后,逐個(gè)回讀;b3)將讀回?cái)?shù)據(jù)與寫入數(shù)據(jù)進(jìn)行比較,如果有讀出數(shù)值與寫入數(shù)值不一致,則表示存在地址線連接錯(cuò)誤。
4.根據(jù)權(quán)利要求1所述內(nèi)存檢測(cè)方法,其特征在于,所述數(shù)據(jù)線走1檢測(cè)包括以下步驟c1)選擇一個(gè)地址;c2)對(duì)所有一位數(shù)據(jù)線為1、其余數(shù)據(jù)線為0的數(shù)據(jù),逐個(gè)執(zhí)行步驟c3)-c5);c3)將當(dāng)前數(shù)據(jù)寫入所選內(nèi)存單元;c4)從所選內(nèi)存單元回讀數(shù)據(jù);c5)將回讀數(shù)據(jù)與寫入數(shù)據(jù)進(jìn)行比較,如果讀出數(shù)值與寫入數(shù)值不一致,則斷定存在數(shù)據(jù)線連接錯(cuò)誤。
5.根據(jù)權(quán)利要求1所述內(nèi)存檢測(cè)方法,其特征在于,所述數(shù)據(jù)線走0檢測(cè)包括以下d1)選擇一個(gè)地址;d2)對(duì)所有一位數(shù)據(jù)線為0、其余數(shù)據(jù)線為1的數(shù)據(jù),逐個(gè)執(zhí)行步驟d3)-d5);d3)將當(dāng)前數(shù)據(jù)寫入所選內(nèi)存單元;d4)從所選內(nèi)存單元回讀數(shù)據(jù);d5)將回讀數(shù)據(jù)與寫入數(shù)據(jù)進(jìn)行比較,如果讀出數(shù)值與寫入數(shù)值不一致,則斷定存在數(shù)據(jù)線連接錯(cuò)誤。
全文摘要
一種內(nèi)存檢測(cè)方法,包括地址線走1和走0檢測(cè)、數(shù)據(jù)線走1和走0檢測(cè),其中,地址線走1(0)檢測(cè)包括在給定范圍內(nèi),逐個(gè)向其中所有一個(gè)地址位為1(0)、其余地址位為0(1)單元寫入地址值;寫完后,逐個(gè)回讀;將回讀數(shù)值與寫入數(shù)值進(jìn)行比較,如有不一致,則報(bào)告錯(cuò)誤;數(shù)據(jù)線走1(0)檢測(cè)包括選擇一個(gè)地址;對(duì)所有一位數(shù)據(jù)線為1(0)、其余數(shù)據(jù)線為0(1)的數(shù)據(jù),逐個(gè)將當(dāng)前數(shù)據(jù)寫入所選單元并回讀,將回讀數(shù)據(jù)與寫入數(shù)據(jù)比較,如有不一致報(bào)告出錯(cuò)。這種內(nèi)存檢測(cè)方法,可以迅速完全地確定內(nèi)存地址線、數(shù)據(jù)線方面有無(wú)故障即確定其正確和有效性,即能夠檢測(cè)出地址線恒0、恒1、短路、數(shù)據(jù)線恒0、恒1及短路,同時(shí),有很高的效率。
文檔編號(hào)G06F11/18GK1479207SQ0213675
公開日2004年3月3日 申請(qǐng)日期2002年8月29日 優(yōu)先權(quán)日2002年8月29日
發(fā)明者盧春鵬 申請(qǐng)人:深圳市中興通訊股份有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
祁门县| 财经| 泰顺县| 无锡市| 山阳县| 乐业县| 辽源市| 大连市| 铜山县| 同心县| 玛曲县| 德令哈市| 句容市| 邹平县| 射阳县| 海盐县| 宿松县| 田阳县| 彭阳县| 蓬莱市| 深圳市| 隆子县| 织金县| 郯城县| 晋城| 婺源县| 团风县| 高陵县| 荣昌县| 怀安县| 高陵县| 县级市| 沙雅县| 康马县| 河东区| 海伦市| 南京市| 五莲县| 宁河县| 思南县| 十堰市|