本發明專利技術適用于計算機技術領域,提供了DRAM的初始化方法及裝置,包括:將DRAM的地址空間劃分為N個塊,所述N為大于1的整數;根據所述劃分的結果,對所述DRAM進行壞塊掃描,將掃描結果記錄在預設的數據表中;根據所述數據表的記錄對所述DRAM進行地址重映射,包括:將地址連續的非壞塊組合成塊區域,并獲取所述塊區域的首地址及容量大小;根據所述劃分的結果,修改操作系統內核的配置文件,以對內核接收參數的空間進行擴大;將所述塊區域的首地址及容量大小傳遞到內核,以完成所述DRAM的初始化。本發明專利技術對DRAM的地址空間進行重新映射,使得操作系統能夠在存在壞塊的DRAM上也得到正常運行,有效地提高了存儲資源利用率。
【技術實現步驟摘要】
本專利技術屬于計算機
,尤其涉及一種動態隨機存取存儲器(DynamicRandomAccessMemory,DRAM)的初始化方法及裝置。
技術介紹
移動操作系統啟動時,在其引導裝載(bootloader)的預裝載(preloader)階段,會根據配置文件來初始化內存的容量大小,并將初始化好的地址空間通過傳參方式傳給小內核(LittleKernel,LK)使用,即,將DRAM的物理首地址、容量大小等信息存放在DRAM的指定區域,等待小內核讀取并使用。由于是根據配置文件來對DRAM的整個地址空間進行初始化,因此,DRAM不允許存在壞塊,若DRAM的存儲陣列中存在壞塊,會影響移動操作系統的正常運行,這樣一來,對于存在少量壞塊的DRAM,就無法被使用,在經過廠商的封裝測試之后,只能被當作廢棄品處理,造成了資源浪費。
技術實現思路
有鑒于此,本專利技術實施例提供了DRAM的初始化方法及裝置,旨在解決現有技術中存在少量壞塊的DRAM會導致移動操作系統無法正常運行的問題。第一方面,提供了一種動態隨機存取存儲器DRAM的初始化方法,包括:將DRAM的地址空間劃分為N個塊,所述N為大于1的整數;根據所述劃分的結果,對所述DRAM進行壞塊掃描,將掃描結果記錄在預設的數據表中;根據所述數據表的記錄對所述DRAM進行地址重映射,包括:將地址連續的非壞塊組合成塊區域,并獲取所述塊區域的首地址及容量大小;根據所述劃分的結果,修改操作系統內核的配置文件,以對內核接收參數的空間進行擴大;將所述塊區域的首地址及容量大小傳遞到內核,以完成所述DRAM的初始化。第二方面,提供了一種動態隨機存取存儲器DRAM的初始化裝置,包括:劃分單元,用于將DRAM的地址空間劃分為N個塊,所述N為大于1的整數;掃描單元,用于根據所述劃分的結果,對所述DRAM進行壞塊掃描,將掃描結果記錄在預設的數據表中;映射單元,用于根據所述數據表的記錄對所述DRAM進行地址重映射,包括:將地址連續的非壞塊組合成塊區域,并獲取所述塊區域的首地址及容量大小;修改單元,用于根據所述劃分的結果,修改操作系統內核的配置文件,以對內核接收參數的空間進行擴大;初始化單元,用于將所述塊區域的首地址及容量大小傳遞到內核,以完成所述DRAM的初始化。本專利技術實施例對DRAM的地址空間進行重新映射,提取出DRAM中不存在壞塊的地址空間,并通過修改操作系統的配置文件,使得操作系統能夠在存在壞塊的DRAM上也得到正常運行,有效地提高了存儲資源利用率。附圖說明為了更清楚地說明本專利技術實施例中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本專利技術的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。圖1是本專利技術實施例提供的DRAM的初始化方法的實現流程圖;圖2是本專利技術實施例提供的DRAM的初始化方法壞塊掃描的實現流程圖;圖3是本專利技術實施例提供的DRAM的初始化方法掃描結果記錄的實現流程圖;圖4是本專利技術另一實施例提供的DRAM的初始化方法的實現流程圖;圖5是本專利技術另一實施例提供的DRAM的初始化方法的實現流程圖;圖6是本專利技術實施例提供的DRAM的初始化裝置的結構框圖。具體實施方式以下描述中,為了說明而不是為了限定,提出了諸如特定系統結構、技術之類的具體細節,以便透切理解本專利技術實施例。然而,本領域的技術人員應當清楚,在沒有這些具體細節的其它實施例中也可以實現本專利技術。在其它情況中,省略對眾所周知的系統、裝置、電路以及方法的詳細說明,以免不必要的細節妨礙本專利技術的描述。圖1示出了本專利技術實施例提供的DRAM的初始化方法的實現流程,在本發明實施例中,DRAM的初始化,指的是操作系統在啟動過程中,根據配置文件來初始化DRAM的分塊情況、容量大小等相關參數,以使得在初始化完成之后,操作系統能夠在DRAM上正常運行。其中,所述操作系統包括但不限于移動終端所采用的移動操作系統,例如android系統等。該方案的實現流程詳述如下:在S101中,將DRAM的地址空間劃分為N個塊,所述N為大于1的整數。以android系統為例,在終端設備開機,android系統bootloader的preloader階段,完成DRAM在該階段的初始化后,先將DRAM的整個地址空間劃分為N個塊,最終劃分出來的塊數由塊的大小決定,例如,每個塊的容量為1M,則512M的DRAM可以劃分出512個塊。在S102中,根據所述劃分的結果,對所述DRAM進行壞塊掃描,將掃描結果記錄在預設的數據表中。對DRAM進行壞塊掃描,其目的是為了區分并記錄DRAM存儲空間中的壞塊區域和非壞塊區域。具體的掃描過程如圖2所示:在S201中,通過預設算法對所述N個塊中的每個塊分別進行測試。在S202中,若測試出某個塊存在至少一個錯誤,則將該塊記錄為壞塊,否則將該塊記錄為非壞塊。例如,利用0x55555555、0xAAAAAAAA或者隨機數對DRAM進行全盤讀寫,又例如,利用marchX這樣一種有效測試DRAM故障的算法對每個塊分別進行測試,只要某個塊的測試結果中存在至少一個錯誤,就將該塊記錄為壞塊,若某個塊通過預設算法測試之后沒有發現錯誤,則該塊就被判定為非壞塊。具體的掃描結果記錄過程可以如圖3所示:在S301中,通過二值法對所述N個塊中的每個塊進行標記。通過“0-1”二值來對壞塊和非壞塊進行標記,例如,將壞塊標記為1,非壞塊標記為0;或者,將壞塊標記為0,非壞塊標記為1,通過二值法來對掃描結果進行標記,能夠直觀便捷地區分出DRAM中的壞塊和非壞塊。在S302中,在所述預設的數據表中寫入每個塊對應的地址及標記。在預設的數據表中寫入DRAM中每個塊在DRAM中的地址及對應的標記,由此就可以完成對DRAM壞塊情況的記錄。此外,在預設的數據表中,顯然也可以僅寫入DRAM中的壞塊對應的地址及標記,那么沒有寫入DRAM中的地址空間顯然就是非壞塊所處的地址空間;或者僅寫入DRAM中的非壞塊對應的地址及標記,那么沒有寫入DRAM中的地址空間顯然就是壞塊所處的地址空間。在S103中,根據所述數據表的記錄對所述DRAM進行地址重映射,包括:將地址連續的非壞塊組合成塊區域,并獲取所述塊區域的首地址及容量大小。以android系統為例,在其b本文檔來自技高網...
【技術保護點】
一種動態隨機存取存儲器DRAM的初始化方法,其特征在于,包括:將DRAM的地址空間劃分為N個塊,所述N為大于1的整數;根據所述劃分的結果,對所述DRAM進行壞塊掃描,將掃描結果記錄在預設的數據表中;根據所述數據表的記錄對所述DRAM進行地址重映射,包括:將地址連續的非壞塊組合成塊區域,并獲取所述塊區域的首地址及容量大小;根據所述劃分的結果,修改操作系統內核的配置文件,以對內核接收參數的空間進行擴大;將所述塊區域的首地址及容量大小傳遞到內核,以完成操作系統對所述DRAM的初始化。
【技術特征摘要】
1.一種動態隨機存取存儲器DRAM的初始化方法,其特征在于,包括:
將DRAM的地址空間劃分為N個塊,所述N為大于1的整數;
根據所述劃分的結果,對所述DRAM進行壞塊掃描,將掃描結果記錄在預
設的數據表中;
根據所述數據表的記錄對所述DRAM進行地址重映射,包括:將地址連續
的非壞塊組合成塊區域,并獲取所述塊區域的首地址及容量大小;
根據所述劃分的結果,修改操作系統內核的配置文件,以對內核接收參數
的空間進行擴大;
將所述塊區域的首地址及容量大小傳遞到內核,以完成操作系統對所述
DRAM的初始化。
2.如權利要求1所述的方法,其特征在于,在所述將掃描結果記錄在預設
的數據表中之后,所述根據所述數據表的記錄對所述DRAM進行地址重映射之
前,所述方法還包括:
將所述數據表存儲至非易失性存儲器中。
3.如權利要求1所述的方法,其特征在于,在所述將DRAM的地址空間
劃分為N個塊之前,所述方法還包括:
接收調整指令,根據所述調整指令調整所述N的取值。
4.如權利要求1所述的方法,其特征在于,所述根據所述劃分的結果,對
所述DRAM進行壞塊掃描包括:
通過預設算法對所述N個塊中的每個塊分別進行測試;
若測試出某個塊存在至少一個錯誤,則將該塊記錄為壞塊,否則將該塊記
錄為非壞塊。
5.如權利要求1所述的方法,其特征在于,所述將掃描結果記錄在預設的
數據表中包括:
通過二值法對所述N個塊中的每個塊進行標記;
在所述預設的數據表中...
【專利技術屬性】
技術研發人員:盧浩,戴清海,李志雄,鄧恩華,吳方,
申請(專利權)人:深圳市江波龍電子有限公司,
類型:發明
國別省市:廣東;44
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。