本申請涉及半導(dǎo)體領(lǐng)域,具體而言,涉及一種內(nèi)存測試方法、裝置、存儲介質(zhì)及電子設(shè)備。
背景技術(shù):
1、應(yīng)理解的是,內(nèi)存產(chǎn)品內(nèi)存測試的過程中,通常情況下連續(xù)的內(nèi)存空間測試的效果更加顯著。因此,相關(guān)技術(shù)中可以將測試程序運(yùn)行在具有獨(dú)立存儲器與處理器的測試設(shè)備上,然后,通過特定的總線訪問待測試內(nèi)存并對其連續(xù)的存儲區(qū)間進(jìn)行讀寫測試。然而,該方式并不適用于那些直接集成在電路板上的內(nèi)存產(chǎn)品。
2、因此,對于這些內(nèi)存產(chǎn)品,需要將測試程序加載到內(nèi)存中,再利用電路板上的處理器從內(nèi)存中運(yùn)行測試程對內(nèi)存產(chǎn)品進(jìn)行測試。然而,實(shí)踐過程中發(fā)現(xiàn),在現(xiàn)代計(jì)算系統(tǒng)中,多數(shù)操作系統(tǒng)采用虛擬地址的方式對應(yīng)用程序進(jìn)行管理。虛擬地址能夠提供一個(gè)抽象的內(nèi)存模型,通過將內(nèi)存劃分為若干個(gè)固定大小的塊(如頁或段),當(dāng)進(jìn)程請求內(nèi)存時(shí),系統(tǒng)為其分配一個(gè)或多個(gè)這樣的塊,使得每個(gè)進(jìn)程都認(rèn)為自己擁有連續(xù)的、獨(dú)立的內(nèi)存空間,這不僅提高了內(nèi)存利用率和多任務(wù)處理能力,還增強(qiáng)了系統(tǒng)的穩(wěn)定性和安全性,因?yàn)檫M(jìn)程間的內(nèi)存隔離防止了相互干擾,同時(shí)操作系統(tǒng)可以控制內(nèi)存訪問權(quán)限,保護(hù)關(guān)鍵數(shù)據(jù)和代碼不被非法訪問。
3、因此,在實(shí)際使用過程中,盡管代碼邏輯上能夠?qū)崿F(xiàn)從前一塊空閑內(nèi)存區(qū)域跳轉(zhuǎn)到下一塊空閑區(qū)域進(jìn)行數(shù)據(jù)存儲,但在物理層面上,這些空閑區(qū)域往往是分散而非連續(xù)分布的,繼而在內(nèi)存產(chǎn)品的測試過程中,難以獲得理想的測試效果。
技術(shù)實(shí)現(xiàn)思路
1、為了克服現(xiàn)有技術(shù)中的至少一個(gè)不足,本申請?zhí)峁┮环N內(nèi)存測試方法、裝置、存儲介質(zhì)及電子設(shè)備,具體包括:
2、第一方面,本發(fā)明提供一種內(nèi)存測試方法,所述方法包括:
3、獲取內(nèi)存的第一測試程序,其中,所述第一測試程序中指定了在內(nèi)存中的第一加載區(qū)域以及所述第一測試程序的測試源代碼中各符號引用與所述第一加載區(qū)域的相對地址;
4、將所述第一測試程序加載到所述第一加載區(qū)域,以使所述第一測試程序?qū)λ鰞?nèi)存中未使用的剩余區(qū)域執(zhí)行預(yù)設(shè)的測試項(xiàng)目。
5、結(jié)合第一方面的可選實(shí)施方式,所述獲取內(nèi)存的第一測試程序,包括:
6、將所述測試源代碼編譯為中間編譯結(jié)果,其中,所述測試源代碼中的各符號引用初始化為與所述第一加載區(qū)域之間的相對地址;
7、獲取所述中間編譯結(jié)果的鏈接器腳本,其中,所述鏈接器腳本指定了所述第一加載區(qū)域;
8、通過所述鏈接器腳本將所述中間編譯結(jié)果鏈接成所述第一測試程序。
9、結(jié)合第一方面的可選實(shí)施方式,所述測試項(xiàng)目包括測試所述剩余區(qū)域的位翻轉(zhuǎn)故障。
10、結(jié)合第一方面的可選實(shí)施方式,在將所述第一測試程序加載到所述第一加載區(qū)域之前,所述方法還包括:
11、將所述內(nèi)存的第二測試程序加載到處理器的緩存空間;
12、從所述緩存空間運(yùn)行所述第二測試程序?qū)λ龅谝患虞d區(qū)域執(zhí)行bist測試。
13、結(jié)合第一方面的可選實(shí)施方式,第一測試程序需要通過操作系統(tǒng)加載到所述第一加載區(qū)域,所述方法還包括:
14、從所述緩存空間運(yùn)行所述第二測試程序?qū)λ霾僮飨到y(tǒng)的第二加載區(qū)域執(zhí)行bist測試。
15、結(jié)合第一方面的可選實(shí)施方式,在將所述第一測試程序加載到所述第一加載區(qū)域之前,所述方法還包括:
16、將所述第一加載區(qū)域的bist測試結(jié)果與所述第二加載區(qū)域的bist測試結(jié)果寫入所述內(nèi)存預(yù)設(shè)的臨時(shí)緩存區(qū)域,以使所述第一測試程序加載到所述第一加載區(qū)域后,從所述臨時(shí)緩存區(qū)域獲取所述bist測試結(jié)果。
17、結(jié)合第一方面的可選實(shí)施方式,將所述內(nèi)存的第二測試程序加載到處理器的緩存空間,包括:
18、通過引導(dǎo)加載程序?qū)⑺龅诙y試程序加載到處理器的緩存空間。
19、第二方面,本發(fā)明提供一種內(nèi)存測試裝置,所述裝置包括:
20、程序獲取模塊,用于獲取內(nèi)存的第一測試程序,其中,所述第一測試程序中指定了在內(nèi)存中的第一加載區(qū)域以及所述第一測試程序的測試源代碼中的各符號引用與所述第一加載區(qū)域的相對地址;
21、程序加載模塊,用于將所述第一測試程序加載到所述第一加載區(qū)域,以使所述第一測試程序?qū)λ鰞?nèi)存中未使用的剩余區(qū)域執(zhí)行預(yù)設(shè)的測試項(xiàng)目。
22、結(jié)合第二方面的可選實(shí)施方式,所述程序獲取模塊還具體用于:
23、將所述測試源代碼編譯為中間編譯結(jié)果,其中,所述測試源代碼中的各符號引用初始化為與所述第一加載區(qū)域之間的相對地址;
24、獲取所述中間編譯結(jié)果的鏈接器腳本,其中,所述鏈接器腳本指定了所述第一加載區(qū)域;
25、通過所述鏈接器腳本將所述中間編譯結(jié)果鏈接成所述第一測試程序。
26、結(jié)合第二方面的可選實(shí)施方式,所述測試項(xiàng)目包括測試所述剩余區(qū)域的位翻轉(zhuǎn)故障。
27、結(jié)合第二方面的可選實(shí)施方式,在將所述第一測試程序加載到所述第一加載區(qū)域之前,所述程序加載模塊還用于:
28、將所述內(nèi)存的第二測試程序加載到處理器的緩存空間;
29、從所述緩存空間運(yùn)行所述第二測試程序?qū)λ龅谝患虞d區(qū)域執(zhí)行bist測試。
30、結(jié)合第二方面的可選實(shí)施方式,所述第一測試程序需要通過操作系統(tǒng)加載到所述第一加載區(qū)域,所述程序加載模塊還用于:
31、從所述緩存空間運(yùn)行所述第二測試程序?qū)λ霾僮飨到y(tǒng)的第二加載區(qū)域執(zhí)行bist測試。
32、結(jié)合第二方面的可選實(shí)施方式,在將所述第二測試程序加載到所述第一加載區(qū)域之前,所述程序加載模塊還用于:
33、將所述第一加載區(qū)域的bist測試結(jié)果與所述第二加載區(qū)域的bist測試結(jié)果寫入所述內(nèi)存預(yù)設(shè)的臨時(shí)緩存區(qū)域,以使所述第一測試程序加載到所述第一加載區(qū)域后,從所述臨時(shí)緩存區(qū)域獲取所述bist測試結(jié)果。
34、結(jié)合第二方面的可選實(shí)施方式,程序加載模塊還具體用于:
35、通過引導(dǎo)加載程序?qū)⑺龅诙y試程序加載到處理器的緩存空間。
36、第三方面,本發(fā)明提供一種存儲介質(zhì),所述存儲介質(zhì)存儲有計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被處理器執(zhí)行時(shí),實(shí)現(xiàn)前述實(shí)施方式任意一項(xiàng)所述的內(nèi)存測試方法。
37、第四方面,本發(fā)明提供一種電子設(shè)備,所述電子設(shè)備包括處理器以及存儲器,所述存儲器存儲有計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被所述處理器執(zhí)行時(shí),實(shí)現(xiàn)前述實(shí)施方式任意一項(xiàng)所述的內(nèi)存測試方法。
38、相對于現(xiàn)有技術(shù)而言,本申請具有以下有益效果:
39、本申請?zhí)峁┮环N內(nèi)存測試方法、裝置、存儲介質(zhì)及電子設(shè)備。該方法中,獲取內(nèi)存的第一測試程序,其中,第一測試程序中指定了在內(nèi)存中的第一加載區(qū)域以及第一測試程序的測試源代碼中的各符號引用與第一加載區(qū)域的相對地址;將第一測試程序加載到第一加載區(qū)域,以使第一測試程序?qū)?nèi)存中未使用的剩余區(qū)域執(zhí)行預(yù)設(shè)的測試項(xiàng)目。如此,將第一測試程序限制在第一加載區(qū)域,內(nèi)存中的剩余區(qū)域視為在物理上的連續(xù)空間,從而便于第一測試程序?qū)ζ溥M(jìn)行測試。
1.一種內(nèi)存測試方法,其特征在于,所述方法包括:
2.根據(jù)權(quán)利要求1所述的內(nèi)存測試方法,其特征在于,所述獲取內(nèi)存的第一測試程序,包括:
3.根據(jù)權(quán)利要求1所述的內(nèi)存測試方法,其特征在于,所述測試項(xiàng)目包括測試所述剩余區(qū)域的位翻轉(zhuǎn)故障。
4.根據(jù)權(quán)利要求1所述的內(nèi)存測試方法,其特征在于,在將所述第一測試程序加載到所述第一加載區(qū)域之前,所述方法還包括:
5.根據(jù)權(quán)利要求4所述的內(nèi)存測試方法,其特征在于,第一測試程序需要通過操作系統(tǒng)加載到所述第一加載區(qū)域,所述方法還包括:
6.根據(jù)權(quán)利要求5所述的內(nèi)存測試方法,其特征在于,在將所述第一測試程序加載到所述第一加載區(qū)域之前,所述方法還包括:
7.根據(jù)權(quán)利要求4所述的內(nèi)存測試方法,其特征在于,將所述內(nèi)存的第二測試程序加載到處理器的緩存空間,包括:
8.一種內(nèi)存測試裝置,其特征在于,所述裝置包括:
9.一種存儲介質(zhì),其特征在于,所述存儲介質(zhì)存儲有計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被處理器執(zhí)行時(shí),實(shí)現(xiàn)權(quán)利要求1-7任意一項(xiàng)所述的內(nèi)存測試方法。
10.一種電子設(shè)備,其特征在于,所述電子設(shè)備包括處理器以及存儲器,所述存儲器存儲有計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被所述處理器執(zhí)行時(shí),實(shí)現(xiàn)權(quán)利要求1-7任意一項(xiàng)所述的內(nèi)存測試方法。