欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

Dram的初始化方法及裝置的制造方法

文檔序號:9752238閱讀:1552來源:國知局
Dram的初始化方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于計(jì)算機(jī)技術(shù)領(lǐng)域,尤其涉及一種動態(tài)隨機(jī)存取存儲器(DynamicRandom Access Memory,DRAM)的初始化方法及裝置。
【背景技術(shù)】
[0002]移動操作系統(tǒng)啟動時(shí),在其引導(dǎo)裝載(bootloader)的預(yù)裝載(preloader)階段,會根據(jù)配置文件來初始化內(nèi)存的容量大小,并將初始化好的地址空間通過傳參方式傳給小內(nèi)核(Little Kernel,LK)使用,即,將DRAM的物理首地址、容量大小等信息存放在DRAM的指定區(qū)域,等待小內(nèi)核讀取并使用。
[0003]由于是根據(jù)配置文件來對DRAM的整個(gè)地址空間進(jìn)行初始化,因此,DRAM不允許存在壞塊,若DRAM的存儲陣列中存在壞塊,會影響移動操作系統(tǒng)的正常運(yùn)行,這樣一來,對于存在少量壞塊的DRAM,就無法被使用,在經(jīng)過廠商的封裝測試之后,只能被當(dāng)作廢棄品處理,造成了資源浪費(fèi)。

【發(fā)明內(nèi)容】

[0004]有鑒于此,本發(fā)明實(shí)施例提供了DRAM的初始化方法及裝置,旨在解決現(xiàn)有技術(shù)中存在少量壞塊的DRAM會導(dǎo)致移動操作系統(tǒng)無法正常運(yùn)行的問題。
[0005]第一方面,提供了一種動態(tài)隨機(jī)存取存儲器DRAM的初始化方法,包括:
[0006]將DRAM的地址空間劃分為N個(gè)塊,所述N為大于I的整數(shù);
[0007]根據(jù)所述劃分的結(jié)果,對所述DRAM進(jìn)行壞塊掃描,將掃描結(jié)果記錄在預(yù)設(shè)的數(shù)據(jù)表中;
[0008]根據(jù)所述數(shù)據(jù)表的記錄對所述DRAM進(jìn)行地址重映射,包括:將地址連續(xù)的非壞塊組合成塊區(qū)域,并獲取所述塊區(qū)域的首地址及容量大?。?br>[0009]根據(jù)所述劃分的結(jié)果,修改操作系統(tǒng)內(nèi)核的配置文件,以對內(nèi)核接收參數(shù)的空間進(jìn)行擴(kuò)大;
[0010]將所述塊區(qū)域的首地址及容量大小傳遞到內(nèi)核,以完成所述DRAM的初始化。
[0011 ]第二方面,提供了一種動態(tài)隨機(jī)存取存儲器DRAM的初始化裝置,包括:
[0012]劃分單元,用于將DRAM的地址空間劃分為N個(gè)塊,所述N為大于I的整數(shù);
[0013]掃描單元,用于根據(jù)所述劃分的結(jié)果,對所述DRAM進(jìn)行壞塊掃描,將掃描結(jié)果記錄在預(yù)設(shè)的數(shù)據(jù)表中;
[0014]映射單元,用于根據(jù)所述數(shù)據(jù)表的記錄對所述DRAM進(jìn)行地址重映射,包括:將地址連續(xù)的非壞塊組合成塊區(qū)域,并獲取所述塊區(qū)域的首地址及容量大小;
[0015]修改單元,用于根據(jù)所述劃分的結(jié)果,修改操作系統(tǒng)內(nèi)核的配置文件,以對內(nèi)核接收參數(shù)的空間進(jìn)行擴(kuò)大;
[0016]初始化單元,用于將所述塊區(qū)域的首地址及容量大小傳遞到內(nèi)核,以完成所述DRAM的初始化。
[0017]本發(fā)明實(shí)施例對DRAM的地址空間進(jìn)行重新映射,提取出DRAM中不存在壞塊的地址空間,并通過修改操作系統(tǒng)的配置文件,使得操作系統(tǒng)能夠在存在壞塊的DRAM上也得到正常運(yùn)行,有效地提高了存儲資源利用率。
【附圖說明】
[0018]為了更清楚地說明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0019]圖1是本發(fā)明實(shí)施例提供的DRAM的初始化方法的實(shí)現(xiàn)流程圖;
[0020]圖2是本發(fā)明實(shí)施例提供的DRAM的初始化方法壞塊掃描的實(shí)現(xiàn)流程圖;
[0021 ]圖3是本發(fā)明實(shí)施例提供的DRAM的初始化方法掃描結(jié)果記錄的實(shí)現(xiàn)流程圖;
[0022]圖4是本發(fā)明另一實(shí)施例提供的DRAM的初始化方法的實(shí)現(xiàn)流程圖;
[0023]圖5是本發(fā)明另一實(shí)施例提供的DRAM的初始化方法的實(shí)現(xiàn)流程圖;
[0024]圖6是本發(fā)明實(shí)施例提供的DRAM的初始化裝置的結(jié)構(gòu)框圖。
【具體實(shí)施方式】
[0025]以下描述中,為了說明而不是為了限定,提出了諸如特定系統(tǒng)結(jié)構(gòu)、技術(shù)之類的具體細(xì)節(jié),以便透切理解本發(fā)明實(shí)施例。然而,本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)清楚,在沒有這些具體細(xì)節(jié)的其它實(shí)施例中也可以實(shí)現(xiàn)本發(fā)明。在其它情況中,省略對眾所周知的系統(tǒng)、裝置、電路以及方法的詳細(xì)說明,以免不必要的細(xì)節(jié)妨礙本發(fā)明的描述。
[0026]圖1示出了本發(fā)明實(shí)施例提供的DRAM的初始化方法的實(shí)現(xiàn)流程,在本發(fā)明實(shí)施例中,DRAM的初始化,指的是操作系統(tǒng)在啟動過程中,根據(jù)配置文件來初始化DRAM的分塊情況、容量大小等相關(guān)參數(shù),以使得在初始化完成之后,操作系統(tǒng)能夠在DRAM上正常運(yùn)行。其中,所述操作系統(tǒng)包括但不限于移動終端所采用的移動操作系統(tǒng),例如android系統(tǒng)等。該方案的實(shí)現(xiàn)流程詳述如下:
[0027]在SlOl中,將DRAM的地址空間劃分為N個(gè)塊,所述N為大于I的整數(shù)。
[0028]以android系統(tǒng)為例,在終端設(shè)備開機(jī),android系統(tǒng)bootloader的preloader階段,完成DRAM在該階段的初始化后,先將DRAM的整個(gè)地址空間劃分為N個(gè)塊,最終劃分出來的塊數(shù)由塊的大小決定,例如,每個(gè)塊的容量為IM,則512M的DRAM可以劃分出512個(gè)塊。
[0029]在S102中,根據(jù)所述劃分的結(jié)果,對所述DRAM進(jìn)行壞塊掃描,將掃描結(jié)果記錄在預(yù)設(shè)的數(shù)據(jù)表中。
[0030]對DRAM進(jìn)行壞塊掃描,其目的是為了區(qū)分并記錄DRAM存儲空間中的壞塊區(qū)域和非壞塊區(qū)域。具體的掃描過程如圖2所示:
[0031 ]在S201中,通過預(yù)設(shè)算法對所述N個(gè)塊中的每個(gè)塊分別進(jìn)行測試。
[0032]在S202中,若測試出某個(gè)塊存在至少一個(gè)錯誤,則將該塊記錄為壞塊,否則將該塊記錄為非壞塊。
[0033]例如,利用0x55555555、0xAAAAAAAA或者隨機(jī)數(shù)對DRAM進(jìn)行全盤讀寫,又例如,利用march X這樣一種有效測試DRAM故障的算法對每個(gè)塊分別進(jìn)行測試,只要某個(gè)塊的測試結(jié)果中存在至少一個(gè)錯誤,就將該塊記錄為壞塊,若某個(gè)塊通過預(yù)設(shè)算法測試之后沒有發(fā)現(xiàn)錯誤,則該塊就被判定為非壞塊。
[0034]具體的掃描結(jié)果記錄過程可以如圖3所示:
[0035]在S301中,通過二值法對所述N個(gè)塊中的每個(gè)塊進(jìn)行標(biāo)記。
[0036]通過“O — I” 二值來對壞塊和非壞塊進(jìn)行標(biāo)記,例如,將壞塊標(biāo)記為I,非壞塊標(biāo)記為O;或者,將壞塊標(biāo)記為O,非壞塊標(biāo)記為I,通過二值法來對掃描結(jié)果進(jìn)行標(biāo)記,能夠直觀便捷地區(qū)分出DRAM中的壞塊和非壞塊。
[0037]在S302中,在所述預(yù)設(shè)的數(shù)據(jù)表中寫入每個(gè)塊對應(yīng)的地址及標(biāo)記。
[0038]在預(yù)設(shè)的數(shù)據(jù)表中寫入DRAM中每個(gè)塊在DRAM中的地址及對應(yīng)的標(biāo)記,由此就可以完成對DRAM壞塊情況的記錄。此外,在預(yù)設(shè)的數(shù)據(jù)表中,顯然也可以僅寫入DRAM中的壞塊對應(yīng)的地址及標(biāo)記,那么沒有寫入DRAM中的地址空間顯然就是非壞塊所處的地址空間;或者僅寫入DRAM中的非壞塊對應(yīng)的地址及標(biāo)記,那么沒有寫入DRAM中的地址空間顯然就是壞塊所處的地址空間。
[0039]在S103中,根據(jù)所述數(shù)據(jù)表的記錄對所述DRAM進(jìn)行地址重映射,包括:將地址連續(xù)的非壞塊組合成塊區(qū)域,并獲取所述塊區(qū)域的首地址及容量大小。
[°04°]以android系統(tǒng)為例,在其boot loader的小內(nèi)核(LK)階段,根據(jù)數(shù)據(jù)表中記錄的壞塊和/或非壞塊情況,對DRAM進(jìn)行地址重映射,具體方式可以通過在小內(nèi)核解析preloader參數(shù)的源碼部分添加地址重映射函數(shù)來實(shí)現(xiàn),根據(jù)數(shù)據(jù)表中的記錄,將DRAM中地址空間連續(xù)的非壞塊組合成一個(gè)新的塊區(qū)域,并根據(jù)數(shù)據(jù)表中記錄的地址信息,映射出該塊區(qū)域的首地址及容量大小。
[0041]在S104中,根據(jù)所述劃分的結(jié)果,修改操作系統(tǒng)內(nèi)核的配置文件,以對內(nèi)核接收參數(shù)的空間進(jìn)行擴(kuò)大。
[0042]對于android系統(tǒng)來說,由于內(nèi)核的配置文件默認(rèn)將DRAM的塊數(shù)配置為8,導(dǎo)致內(nèi)核最多只能接收8組DRAM的地址空間參數(shù),因此,在本發(fā)明實(shí)施例中,需要將內(nèi)核默認(rèn)的塊數(shù)擴(kuò)大到與劃分的塊區(qū)域的數(shù)量相等。以512M的DRAM為例,劃分每個(gè)塊區(qū)域的大小為1M,那么DRAM的整個(gè)地址空間就被劃分成了 512塊,則需要將內(nèi)核默認(rèn)的塊數(shù)由8修改為512,此時(shí),內(nèi)核最多可以接收512組D R A M地址空間參數(shù)。修改的方式如下:將內(nèi)核源碼的平臺(platform)配置文件的宏⑶NFIG_ARM_NR_BANKS的值修改為512,架構(gòu)的配置文件的ARM_NR_BANKS的默認(rèn)值修改為512,由此擴(kuò)大內(nèi)核接收LK參數(shù)的空間,內(nèi)核才能完全獲知DRAM每一個(gè)塊區(qū)域的首地址和容量大小。
[0043]在S105中,將所述塊區(qū)域的首地址及容量大小傳遞到內(nèi)核,以完成所述DRAM的初始化。
[0044]在完成了對內(nèi)核配置文件的修改之后,再將S103得到的塊區(qū)域的首地址及容量大小通過傳參的方式傳遞給內(nèi)核,從而完成DRAM的初始化,由此,操作系統(tǒng)可以在DRAM上正常運(yùn)行,有效地避免了少量壞塊的存在對系統(tǒng)運(yùn)行所帶來的不良影響。
[0045]進(jìn)一步地,為了提高終端設(shè)備的開機(jī)效率,避免每次系統(tǒng)啟動時(shí)都需要對DRAM進(jìn)行壞塊掃描,作為本發(fā)明的一個(gè)實(shí)施例,在所述將掃描結(jié)果記錄在預(yù)設(shè)的數(shù)據(jù)表中之后,所述根據(jù)所述數(shù)據(jù)表的記錄對所述DRAM進(jìn)行地址重映射之前,還可以將所述數(shù)據(jù)表存儲至非易失性存儲器中,這樣一來,就可以利用非易失性存儲器掉電數(shù)據(jù)不丟失的特性,實(shí)現(xiàn)數(shù)據(jù)表的永久保存。其中,所述非易失性存儲器,包括但不限于只讀存儲器(Read Only Memory,ROM),閃存(Flash)等。貝Ij相應(yīng)地,如圖4所示,在終端設(shè)備開機(jī)啟動的過程中,bootloader的小內(nèi)核階段,會首先檢測終端設(shè)備中的非易失性存儲器中是否存儲有數(shù)據(jù)表,如果其中并沒有存儲數(shù)據(jù)表,再從SlOl開始執(zhí)行本方案的相關(guān)步驟,若其中存儲了數(shù)據(jù)表,則直接從中讀取出數(shù)據(jù)表,從S103開始執(zhí)行本方案的相關(guān)步驟。
[0046]通過上述方案闡述可以看出,顯然,在對DRAM進(jìn)行塊劃分的過程中,塊的容量越小,劃分的塊數(shù)就越多,這樣一來,在進(jìn)行地址重映射時(shí),對DRAM存儲陣列上的空間就越能達(dá)到充分利用,因此,作為本發(fā)明的一個(gè)實(shí)施例,如圖5所示,在SlOl之前,所述方法還包括:
當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
莱阳市| 丹寨县| 大悟县| 积石山| 五莲县| 丰台区| 红安县| 连山| 繁峙县| 云浮市| 天水市| 顺昌县| 图们市| 郎溪县| 衡水市| 塔城市| 子洲县| 肇源县| 城市| 十堰市| 盐亭县| 额尔古纳市| 惠州市| 宁强县| 沙田区| 潮州市| 兰州市| 尉氏县| 泌阳县| 蓬溪县| 霍州市| 灵寿县| 崇信县| 山西省| 咸阳市| 武山县| 桂东县| 成武县| 尉氏县| 南开区| 滨州市|