[發明專利]基于Nand閃存的動態分區搜索裝置及其方法有效
| 申請號: | 201310720438.2 | 申請日: | 2013-12-24 |
| 公開(公告)號: | CN103744694B | 公開(公告)日: | 2017-08-11 |
| 發明(設計)人: | 曹木蓮 | 申請(專利權)人: | 武漢烽火眾智數字技術有限責任公司 |
| 主分類號: | G06F9/445 | 分類號: | G06F9/445;G06F12/02;G06F11/10 |
| 代理公司: | 北京匯澤知識產權代理有限公司11228 | 代理人: | 劉淑敏 |
| 地址: | 430074 湖*** | 國省代碼: | 湖北;42 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 基于 nand 閃存 動態 分區 搜索 裝置 及其 方法 | ||
技術領域
本發明涉及數據存儲技術,尤其涉及一種基于Nand閃存(Flash)的動態分區搜索裝置及其方法,屬于將Nand Flash作為存儲介質的Unix/Linux終端產品使用燒錄器燒錄二進制版本文件時,在出現壞塊(Bad Block)的情況下系統無法正常運行的防護機制。
背景技術
隨著用戶對終端產品所具備的功能需求越來越多,其對應的軟件版本也成遞增的趨勢。作為大多數基于Linux操作系統的終端設備 ,傳統的存儲方式都是以Nor Flash作為存儲介質。但由于Nor Flash容量較小,或者成本太高等原因已經慢慢變得不適用起來。與此相反,以Nand Flash作為存貯介質由于容量大、讀寫速度快、成本低等優勢開始成為家庭網關,機頂盒,監控前端產品等終端設備的首選存貯介質。
在大規模產品批量出廠的過程中,為了提高效率,一般使用專門的燒錄器將需要燒錄的數據寫入Nand Flash中,因此需要為燒錄器提供專門的燒錄文件,燒錄文件的好塊直接影響著產品量產的效率和良率。
現有技術中,一般有兩種方法生成燒錄文件。一種簡單的方法是先通過常規的方式,借助網絡,串口或USB等方式完成一臺產品的升級,再從升級好的產品中將Nand Flash中的所有數據讀出來,生成燒錄版本文件。另一種方法是將編譯生成的各二進制文件按照他們在Nand Flash上實際存儲的分區位置進行組裝合并,未達到實際分區大小的進行0xFF填充,最后生成燒錄版本文件。
Nand Flash 的特性決定了在出廠時或者在使用過程中都有可能產生壞塊。如果燒錄器在燒錄之前Nand Flash已產生了壞塊,或者在燒錄過程中產生了壞塊,燒錄器將二進制燒錄版本文件全部燒錄到Flash上后,Nand Flash上實際存儲的分區內容將和原始規劃的分區內容將產生相應的偏移,如圖1所示。而Linux終端設備的系統啟動和文件系統的掛載都是按照分區的方式進行的,那么內核或文件系統可能就面臨無法正常啟動的問題。
目前,很多廠家為了避免由于壞塊原因導致系統無法啟動問題,比較普遍使用的一種方法是將uboot引導程序通過燒錄器或其他方法先燒錄到Nand Flash中,然后通過uboot引導程序以軟件的方式下載燒錄其他的部分,如內核,文件系統等。這種方法雖然能夠避免由于壞塊的原因導致系統起不來的問題,但生產效率低下。
發明內容
有鑒于此,本發明的主要目的在于提供一種基于Nand Flash的動態分區搜索裝置及其方法,用以解決現有技術不能實現簡單、高效的燒錄Nand Flash版本文件,燒錄的版本文件可啟動概率低的問題。以及用于解決為規避由于Nand Flash存儲介質存在壞塊的特性必須為每個分區預留一定數量的多余的冗余塊而引起的存儲空間浪費的問題。
為達到上述目的,本發明的技術方案是這樣實現的:
一種基于Nand閃存的動態分區搜索裝置,該裝置包括版本升級模塊、可燒錄版本模塊、燒錄模塊以及動態分區解析模塊;其中:
版本升級模塊,用于將預存儲在動態分區的各分區的二進制執行部件按序組裝合并成一個文件,并加入版本頭信息部件;
可燒錄版本模塊,用于將Nand閃存中實際存儲的N個分區的順序依次進行燒錄版本組裝;由N-M個靜態分區預存儲的二進制執行部件和版本升級模塊進行組裝合并;
燒錄模塊:用于當需要燒錄版本文件到Nand閃存中時,將所述帶ECC算法的可燒錄版本提供給燒錄器,由所述燒錄器將所述可燒錄版本文件燒錄到Nand閃存中;
動態分區解析模塊:用于在引導程序啟動時搜索版本頭,根據版本頭記錄的信息和Nand閃存依次搜索到的塊狀態構造出動態分區表,內核通過引導程序傳遞環境變量的方式或者通過將動態分區表共享到同一段未使用的內存的方式獲取來構造內核分區表。
其中,所述的版本升級模塊,用于按照塊對齊的方式記錄各動態分區存儲文件的實際大小。
還用于在Nand閃存中的引導程序能正常啟動的情況下,將該版本升級文件用于通過軟件的方式進行版本的在線升級更新。
在所述可燒錄版本模塊中,如果N-M個靜態分區預存儲的二進制執行部件未達到該分區大小,則所述未達到的部分需要按0xFF進行填充。
在所述可燒錄版本模塊中,各部件組裝合并完畢,再根據具體的硬件電路加入相應ECC算法進行填充。
一種基于Nand閃存的動態分區搜索方法,該方法包括:
A、獲取原始分區信息,所述原始分區信息包括N個分區及每個所述分區的空間大小,其中N為正整數;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于武漢烽火眾智數字技術有限責任公司,未經武漢烽火眾智數字技術有限責任公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201310720438.2/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種智能電器設備軟件升級的方法及其裝置
- 下一篇:管樁泵送布料設備





