TW201526005A - 快閃記憶體燒錄方法與電腦可讀取媒體 - Google Patents
快閃記憶體燒錄方法與電腦可讀取媒體 Download PDFInfo
- Publication number
- TW201526005A TW201526005A TW102148861A TW102148861A TW201526005A TW 201526005 A TW201526005 A TW 201526005A TW 102148861 A TW102148861 A TW 102148861A TW 102148861 A TW102148861 A TW 102148861A TW 201526005 A TW201526005 A TW 201526005A
- Authority
- TW
- Taiwan
- Prior art keywords
- flash memory
- partition table
- dynamic partition
- available
- block
- Prior art date
Links
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
本發明提供一種快閃記憶體燒錄方法,其步驟包含自快閃記憶體載入啟動載入程式,並判斷快閃記憶體是否儲存有動態分區表。快閃記憶體包含一或多個不可用區塊且被寫入有一映像檔,映像檔具有多個分區,分區其中之一包含啟動載入程式的程式碼。當快閃記憶體沒有儲存動態分區表時,依據前述分區的長度和不可用區塊於該快閃記憶體中的分布,建立該動態分區表。本發明亦提供一種電腦可讀取媒體,其具有用以使處理器執行前述啟動載入程式的程式碼。
Description
本發明係關於快閃記憶體製程,特別係關於快閃記憶體的燒錄(programming)。
反及快閃記憶體(NAND flash)因為常有大量壞塊(bad block),燒錄時不適合採用靜態分區。舉例來說,雖然作業系統各分區的映像檔皆會預留緩衝,以涵蓋燒錄時會遇到的壞塊數量,但當壞塊的分布連續且廣時,可能某分區整個坐落於壞塊,導致燒錄器認定燒錄失敗。可惜的是,快閃記憶體製造商不會接收此類退貨,終端設備業者必須自行吸收。
若燒錄時採用動態分區,則可請燒錄器廠商針對專案客製化一套通常所費不貲的分區規劃流程,或先燒錄特殊設計、具映像檔燒錄能力的啟動載入程式(bootloader),再間接生成動態分區表,據以燒錄各分區的映像檔。然而啟動載入程式的燒錄遠不及燒錄器一次到位來得迅速,相對增加了終端設備生產時程和產線複雜度。
鑒於上述問題,本發明旨在提供一種快閃記憶體燒錄方法與具有關聯於該方法的程式碼的一種電腦可讀取媒體。
本發明提供一種快閃記憶體燒錄方法,其步驟包含自快閃記憶體載入啟動載入程式,並判斷快閃記憶體是否儲存有動態分區表。快閃記憶體包含一或多個不可用區塊且被寫入有一映像檔,映像檔具有多個分區,分區其中之一包含啟動載入程式的程式碼。若快閃記憶體沒有儲存動態分區表,則依據前述分區的長度和不可用區塊於該快閃記憶體中的分布,建立該動態分區表。
本發明亦提供一種電腦可讀取媒體,其具有用以使處理器執行多道指令的程式碼,彼等指令包含判斷快閃記憶體是否儲存有動態分區表。快閃記憶體包含一或多個不可用區塊且被寫入有映像檔的多個分區。當快閃記憶體沒有儲存動態分區表時,彼等指令更包含依據分區的長度和不可用區塊於快閃記憶體中的分布,建立動態分區表。
綜上所述,本發明提供改進並折衷前述兩種動態分區方式,使終端設備商可省下客製化的額外負擔,亦毋需用啟動載入程式一一燒錄分區,實現快速且成本受控的製程。
以上關於本發明內容及以下關於實施方式之說明係用以示範與闡明本發明之精神與原理,並提供對本發明
之申請專利範圍更進一步之解釋。
第1圖係依據本發明一實施例快閃記憶體燒錄方法的流程圖。
以下在實施方式中敘述本發明之詳細特徵,其內容足以使任何熟習相關技藝者瞭解本發明之技術內容並據以實施,且依據本說明書所揭露之內容、申請專利範圍及圖式,任何熟習相關技藝者可輕易地理解本發明相關之目的及優點。以下實施例係進一步說明本發明之諸面向,但非以任何面向限制本發明之範疇。
請參見第1圖。第1圖係依據本發明一實施例快閃記憶體燒錄方法的流程圖,且為說明方便,其中假設產線上是一臺運算設備指示一臺燒錄器作動,而一臺終端設備用以存取被燒錄的快閃記憶體。如第1圖所示,於步驟S101中,運算設備指示燒錄器將帶有多個分區的映像檔寫入快閃記憶體。具體而言,快閃記憶體可具有多個可用區塊和多個不可用區塊(壞塊),這些可用區塊和不可用區塊互斥,而運算設備指示燒錄器開啟其跳過(skip)壞塊的功能,以將映像檔寫入可用區塊。
上述映像檔的某個分區(通常是第一個)記錄有用以執行一支啟動載入程式的程式碼。燒錄完成後,快閃記
憶體中不可用區塊的分布(如位址和數量)已知,終端設備可於步驟S103中載入此啟動載入程式。具體而言,終端設備從快閃記憶體讀入上述程式碼後,將終端設備的處理器的使用權交給啟動載入程式。啟動載入程式執行中,首先於步驟S105中判斷快閃記憶體是否儲存有動態分區表可描述映像檔的分區。請注意在本發明中,動態分區表是燒錄後計算而得。沒有動態分區表各分區分別對應快閃記憶體中哪些可用區塊便無從得知。在一實施例中,動態分區表應記錄有一個預定義值或魔數(magic number),啟動載入程式便是藉判斷快閃記憶體中是否儲存有此值來偵知動態分區表的存在。
若判斷結果為否,則啟動載入程式著手建立動態分區表。在一實施例中,這包含啟動載入程式於步驟S107中按照映像檔中分區的順序,依據前一分區於快閃記憶體中被寫入的一個可用區塊的位址、前一分區於映像檔中的長度以及不可用區塊的分布,計算下一分區被寫入的一個可用區塊的位址。假設前述被寫入的可用區塊分別是快閃記憶體中前一分區和下一分區的首個區塊,則下一分區的起始位址便是前一分區的起始位址、前一分區的長度與兩個首區塊之間壞塊的數量轉換成同樣單位(如位元組)後相加的和。映像檔的第一個分區通常是被寫入在整個快閃記憶體的第一個也是保證可用的區塊(區塊0),其位址不需計算。
於步驟S109中,啟動載入程式將包含前述各分
區的(起始)位址的動態分區表寫入某個可用區塊。在一實施例中,動態分區表尚包含每個分區於映像檔中的長度。在一實施例中,啟動載入程式是從快閃記憶體的末端開始尋找可用區塊。在另一實施例中,由於啟動載入程式不大,區塊0不會被寫滿,啟動載入程式可將動態分區表以頁為單位(on a page basis)自區塊0的末端開始寫入。具體而言,於步驟S101中,燒錄器將映像檔寫入區塊0時可保留啟動載入程式佔用的頁以外區塊0的抹除後狀態(邏輯的1或真),如此寫入動態分區表時不需整個抹除區塊0而影響其可用性。
若於步驟S105中已知快閃記憶體儲存有動態分區表,在一實施例中,啟動載入程式更於步驟S111中驗證動態分區表的正確性。具體而言,動態分區表可以記錄有驗證值,如投以循環冗餘檢查(cyclic redundancy check,簡稱CRC)系列的函數所得者,而啟動載入程式於步驟S111中判斷快閃記憶體所儲存的動態分區表的版本是否確實關聯其所記錄的驗證值。當驗證不通過時,啟動載入程式執行步驟S107。若啟動載入程式係設計為將動態分區表寫入快閃記憶體末端的可用區塊,則此時略過前次寫入失敗所用的區塊再往前尋找可用區塊;若啟動載入程式是將動態分區表寫入區塊0,則此次選擇前番所用的頁的前一頁。
在一實施例中,當完成如步驟S109所述的動態分區表寫入動作或是當步驟S111驗證通過時,設有快閃記憶
體的終端設備可根據動態分區表載入前述各分區,如步驟S113所示。
綜上所述,本發明利用燒錄器本身跳過不可用區塊燒錄的能力,將韌體或映像檔整份寫入快閃記憶體,再以啟動載入程式反推出各分區位址,並建表記錄之,供後續使用。
雖然本發明以前述之實施例揭露如上,然其並非用以限定本發明。在不脫離本發明之精神和範圍內,所為之更動與潤飾,均屬本發明之專利保護範圍。關於本發明所界定之保護範圍請參考所附之申請專利範圍。
Claims (15)
- 一種快閃記憶體燒錄方法,包含:自一快閃記憶體載入一啟動載入程式,該快閃記憶體包含至少一不可用區塊且被寫入有一映像檔,該映像檔具有多個分區,該些分區其中之一包含該啟動載入程式的程式碼;以及判斷該快閃記憶體是否儲存有一動態分區表;其中當該快閃記憶體沒有儲存該動態分區表時,依據該些分區的長度和該至少一不可用區塊於該快閃記憶體中的分布,建立該動態分區表。
- 如請求項1所述的快閃記憶體燒錄方法,更包含指示將該映像檔寫入該快閃記憶體。
- 如請求項2所述的快閃記憶體燒錄方法,其中該快閃記憶體更包含多個可用區塊,指示將該映像檔寫入該快閃記憶體的步驟係指示一燒錄器將該些分區寫入至少部分的該些可用區塊。
- 如請求項3所述的快閃記憶體燒錄方法,其中該動態分區表記錄有該些分區中一第一分區被寫入的該些可用區塊中一第一可用區塊於該快閃記憶體中的一第一位址和該些分區中接續該第一分區的一第二分區被寫入的該些可用區塊中一第二可用區塊於該快閃記憶體中的一第二位址,且建立該動態分區表的步驟包含依據該第一位址、該 第一分區的長度以及該至少一不可用區塊於該第一可用區塊與該第二可用區塊間的數量,計算該第二位址。
- 如請求項3所述的快閃記憶體燒錄方法,其中建立該動態分區表的步驟包含將該動態分區表寫入該些可用區塊其中之一。
- 如請求項5所述的快閃記憶體燒錄方法,其中將該動態分區表寫入該些可用區塊其中之一的步驟係以頁為單位將該動態分區表寫入該些可用區塊中一可用區塊的末端。
- 如請求項3所述的快閃記憶體燒錄方法,其中該動態分區表關聯於一預定義值,且判斷該快閃記憶體是否儲存有該動態分區表的步驟係判斷該些可用區塊其中之一是否儲存有該預定義值。
- 如請求項1所述的快閃記憶體燒錄方法,其中建立該動態分區表的步驟包含計算關聯於該動態分區表的一驗證值。
- 一種電腦可讀取媒體,具有用以使一處理器執行多個指令的程式碼,該些指令包含:判斷一快閃記憶體是否儲存有一動態分區表,該快閃記憶體包含至少一不可用區塊且被寫入有一映像檔的多個分區;其中當該快閃記憶體沒有儲存該動態分區表時,依據該些分區的長度和該至少一不可用區塊於該快閃記憶體中的分布,建立該動態分區表。
- 如請求項9所述的電腦可讀取媒體,其中該快閃記憶體更包含多個可用區塊,該些分區係被寫入至少部分的該些可用區塊。
- 如請求項10所述的電腦可讀取媒體,其中該動態分區表記錄有該些分區中一第一分區被寫入的該些可用區塊中一第一可用區塊於該快閃記憶體中的一第一位址和該些分區中接續該第一分區的一第二分區被寫入的該些可用區塊中一第二可用區塊於該快閃記憶體中的一第二位址,且建立該動態分區表的指令包含依據該第一位址、該第一分區的長度以及該至少一不可用區塊於該第一可用區塊與該第二可用區塊間的數量,計算該第二位址。
- 如請求項10所述的電腦可讀取媒體,其中建立該動態分區表的指令包含將該動態分區表寫入該些可用區塊其中之一。
- 如請求項12所述的電腦可讀取媒體,其中將該動態分區表寫入該些可用區塊其中之一的指令係以頁為單位將該動態分區表寫入該些可用區塊中一可用區塊的末端。
- 如請求項10所述的電腦可讀取媒體,其中該動態分區表關聯於一預定義值,且判斷該快閃記憶體是否儲存有該動態分區表的指令係判斷該些可用區塊其中之一是否儲存有該預定義值。
- 如請求項9所述的電腦可讀取媒體,其中建立該動態分區表的指令包含計算關聯於該動態分區表的一驗證值。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW102148861A TWI515733B (zh) | 2013-12-27 | 2013-12-27 | 快閃記憶體燒錄方法與電腦可讀取媒體 |
CN201410014463.3A CN104751881B (zh) | 2013-12-27 | 2014-01-13 | 快闪存储器烧录方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW102148861A TWI515733B (zh) | 2013-12-27 | 2013-12-27 | 快閃記憶體燒錄方法與電腦可讀取媒體 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201526005A true TW201526005A (zh) | 2015-07-01 |
TWI515733B TWI515733B (zh) | 2016-01-01 |
Family
ID=53591435
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW102148861A TWI515733B (zh) | 2013-12-27 | 2013-12-27 | 快閃記憶體燒錄方法與電腦可讀取媒體 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN104751881B (zh) |
TW (1) | TWI515733B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106339246A (zh) * | 2016-08-31 | 2017-01-18 | 福建联迪商用设备有限公司 | 一种用于nandflash生产阶段的烧写方法及其烧写系统 |
CN111124433B (zh) * | 2018-10-31 | 2024-04-02 | 华北电力大学扬中智能电气研究中心 | 程序烧写设备、系统及方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8510542B2 (en) * | 2008-10-01 | 2013-08-13 | Oracle International Corporation | Flash memory device having memory partitions and including an embedded general purpose operating system for booting a computing device |
CN101789265B (zh) * | 2009-12-31 | 2012-11-14 | 成都芯通科技股份有限公司 | 一种对PowerPC系统FLASH快速编程的方法 |
CN102520981A (zh) * | 2011-11-24 | 2012-06-27 | 深圳市路畅科技有限公司 | 一种基于inand/nand的多分区存储设备的生产方法 |
CN102999436B (zh) * | 2012-11-28 | 2015-09-09 | 华为终端有限公司 | 在Nand闪存中生成动态分区信息的方法和装置 |
CN103064710B (zh) * | 2012-12-26 | 2016-09-07 | 深圳市诺威达科技有限公司 | 一种flash烧录方法和装置 |
-
2013
- 2013-12-27 TW TW102148861A patent/TWI515733B/zh active
-
2014
- 2014-01-13 CN CN201410014463.3A patent/CN104751881B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN104751881B (zh) | 2018-01-05 |
TWI515733B (zh) | 2016-01-01 |
CN104751881A (zh) | 2015-07-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI545434B (zh) | 非揮發性記憶體系統及使用非揮發性記憶體系統之方法 | |
JP4828816B2 (ja) | メモリカード、半導体装置、及びメモリカードの制御方法 | |
JP2012198878A (ja) | 半導体不揮発性メモリ装置のリフレッシュ操作開始方法およびシステム | |
US20190317920A1 (en) | Write operation verification method and apparatus | |
JP2006243780A (ja) | メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 | |
WO2017000567A1 (zh) | 一种实现bootrom升级的方法及装置 | |
JP2006195565A (ja) | 半導体記憶装置の制御方法、メモリカード、及びホスト機器 | |
CN108604207B (zh) | 用于独立于硬件的存储器存储的系统及方法 | |
TWI515733B (zh) | 快閃記憶體燒錄方法與電腦可讀取媒體 | |
JP2013029879A (ja) | フラッシュメモリの制御装置 | |
TWI743480B (zh) | 電腦系統與其開機方法 | |
US20050223268A1 (en) | Method of writing non-volatile memory that avoids corrupting the vital initialization code | |
JP6526357B2 (ja) | 制御装置およびプログラム更新方法 | |
JP2016103261A (ja) | ファームウェアのダウンロード方法及びファームウェア組込機器 | |
JP5204265B2 (ja) | 半導体記憶装置及び半導体記憶装置の制御方法 | |
JP6408450B2 (ja) | 自動車用電子制御装置 | |
CN113918199A (zh) | 底层固件程序的更新方法、存储介质以及电子设备 | |
JP4818453B1 (ja) | 電子機器およびデータ読み出し方法 | |
JP2013033338A (ja) | メモリシステム | |
TWI416319B (zh) | 使用獨立磁碟備援陣列之電腦系統的開機方法 | |
JP6580920B2 (ja) | 情報処理装置、情報処理装置の動作環境設定情報を更新する方法、及び、情報処理装置の動作環境設定情報を更新するプログラム | |
JP6401071B2 (ja) | プログラマブルコントローラ | |
US11704054B1 (en) | Method and apparatus for performing access management of memory device with aid of buffer usage reduction control | |
TW202008156A (zh) | 伺服器韌體更新方法 | |
JP2013174976A (ja) | メモリシステムおよび制御プログラムの更新方法 |