快閃存儲器燒錄方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明是關(guān)于快閃存儲器制造工藝,特別是關(guān)于快閃存儲器的燒錄(programming)方法。
【背景技術(shù)】
[0002]快閃存儲器(NAND flash)因為常有大量壞塊(bad block),燒錄時不適合采用靜態(tài)分區(qū)。舉例來說,雖然操作系統(tǒng)各分區(qū)的映像文件皆會預(yù)留緩沖,以涵蓋燒錄時會遇到的壞塊數(shù)量,但當(dāng)壞塊的分布連續(xù)且廣時,可能某分區(qū)整個坐落于壞塊,導(dǎo)致燒錄器認(rèn)定燒錄失敗??上У氖?,快閃存儲器制造商不會接收此類退貨,終端設(shè)備業(yè)者必須自行吸收。
[0003]若燒錄時采用動態(tài)分區(qū),則可請燒錄器廠商針對專案客制化一套通常所費不貲的分區(qū)規(guī)劃流程,或先燒錄特殊設(shè)計、具有映像文件燒錄能力的啟動載入程序(bootloader),再間接生成動態(tài)分區(qū)表,據(jù)以燒錄各分區(qū)的映像文件。然而啟動載入程序的燒錄遠(yuǎn)不及燒錄器一次到位來得迅速,相對增加了終端設(shè)備生產(chǎn)時程和產(chǎn)線復(fù)雜度。
【發(fā)明內(nèi)容】
[0004]本發(fā)明要解決的技術(shù)問題是:提供一種快閃存儲器燒錄方法,以解決上述問題。
[0005]本發(fā)明解決問題的技術(shù)方案為:提供一種快閃存儲器燒錄方法,其步驟包含自快閃存儲器載入啟動載入程序,并判斷快閃存儲器是否存儲有動態(tài)分區(qū)表??扉W存儲器包含一或多個不可用區(qū)塊且被寫入有一映像文件,映像文件具有多個分區(qū),分區(qū)其中之一包含啟動載入程序的程序代碼。若快閃存儲器沒有存儲動態(tài)分區(qū)表,則依據(jù)前述分區(qū)的長度和不可用區(qū)塊于該快閃存儲器中的分布,建立該動態(tài)分區(qū)表。
[0006]綜上所述,本發(fā)明提供改進(jìn)并折衷前述兩種動態(tài)分區(qū)方式,使終端設(shè)備商可省下客制化的額外負(fù)擔(dān),亦毋需用啟動載入程序一一燒錄分區(qū),實現(xiàn)快速且成本受控的制造工藝。
【附圖說明】
[0007]圖1是依據(jù)本發(fā)明一實施例快閃存儲器燒錄方法的流程圖。
【具體實施方式】
[0008]以下在實施方式中敘述本發(fā)明的詳細(xì)特征,其內(nèi)容足以使任何熟習(xí)相關(guān)技藝者了解本發(fā)明的技術(shù)內(nèi)容并據(jù)以實施,且依據(jù)本說明書所揭露的內(nèi)容、申請專利范圍及附圖,任何熟習(xí)相關(guān)技藝者可輕易地理解本發(fā)明相關(guān)的目的及優(yōu)點。以下實施例進(jìn)一步說明本發(fā)明的諸方面,但非以任何方面限制本發(fā)明的范疇。
[0009]請參見圖1。圖1是依據(jù)本發(fā)明一實施例快閃存儲器燒錄方法的流程圖,且為說明方便,其中假設(shè)產(chǎn)線上是一臺運算設(shè)備指示一臺燒錄器工作,而一臺終端設(shè)備用以存取被燒錄的快閃存儲器。如圖1所示,于步驟SlOl中,運算設(shè)備指示燒錄器將帶有多個分區(qū)的映像文件寫入快閃存儲器。具體而言,快閃存儲器可具有多個可用區(qū)塊和多個不可用區(qū)塊(壞塊),這些可用區(qū)塊和不可用區(qū)塊互斥,而運算設(shè)備指示燒錄器開啟其跳過(skip )壞塊的功能,以將映像文件寫入可用區(qū)塊。
[0010]上述映像文件的某個分區(qū)(通常是第一個)記錄有用以執(zhí)行一啟動載入程序的程序代碼。燒錄完成后,快閃存儲器中不可用區(qū)塊的分布(如地址和數(shù)量)已知,終端設(shè)備可于步驟S103中載入此啟動載入程序。具體而言,終端設(shè)備從快閃存儲器讀入上述程序代碼后,將終端設(shè)備的處理器的使用權(quán)交給啟動載入程序。啟動載入程序執(zhí)行中,首先于步驟S105中判斷快閃存儲器是否存儲有動態(tài)分區(qū)表可描述映像文件的分區(qū)。請注意在本發(fā)明中,動態(tài)分區(qū)表是燒錄后計算而得。沒有動態(tài)分區(qū)表各分區(qū)分別對應(yīng)快閃存儲器中哪些可用區(qū)塊便無從得知。在一實施例中,動態(tài)分區(qū)表應(yīng)記錄有一個預(yù)定義值或魔數(shù)(magicnumber),啟動載入程序便是憑借判斷快閃存儲器中是否存儲有此值來探知動態(tài)分區(qū)表的存在。
[0011]若判斷結(jié)果為否,則啟動載入程序著手建立動態(tài)分區(qū)表。在一實施例中,這包含啟動載入程序于步驟S107中按照映像文件中分區(qū)的順序,依據(jù)前一分區(qū)于快閃存儲器中被寫入的一個可用區(qū)塊的地址、前一分區(qū)于映像文件中的長度以及不可用區(qū)塊的分布,計算下一分區(qū)被寫入的一個可用區(qū)塊的地址。假設(shè)前述被寫入的可用區(qū)塊分別是快閃存儲器中前一分區(qū)和下一分區(qū)的首個區(qū)塊,則下一分區(qū)的起始地址便是前一分區(qū)的起始地址、前一分區(qū)的長度與兩個首區(qū)塊之間壞塊的數(shù)量轉(zhuǎn)換成同樣單位(如字節(jié))后相加的和。映像文件的第一個分區(qū)通常是被寫入在整個快閃存儲器的第一個也是保證可用的區(qū)塊(區(qū)塊0),其地址不需計算。
[0012]于步驟S109中,啟動載入程序?qū)笆龈鞣謪^(qū)的(起始)地址的動態(tài)分區(qū)表寫入某個可用區(qū)塊。在一實施例中,動態(tài)分區(qū)表還包含每個分區(qū)于映像文件中的長度。在一實施例中,啟動載入程序是從快閃存儲器的末端開始尋找可用區(qū)塊。在另一實施例中,由于啟動載入程序不大,區(qū)塊O不會被寫滿,啟動載入程序可將動態(tài)分區(qū)表以頁為單位(on a pagebasis)自區(qū)塊0的末端開始寫入。具體而言,于步驟SlOl中,燒錄器將映像文件寫入?yún)^(qū)塊O時可保留啟動載入程序占用的頁以外區(qū)塊O的抹除后狀態(tài)(邏輯的I或真),如此寫入動態(tài)分區(qū)表時不需整個抹除區(qū)塊O而影響其可用性。
[0013]若于步驟S105中已知快閃存儲器存儲有動態(tài)分區(qū)表,在一實施例中,啟動載入程序更于步驟Slll中驗證動態(tài)分區(qū)表的正確性。具體而言,動態(tài)分區(qū)表可以記錄有驗證值,如投以循環(huán)冗余檢查(cyclic redundancy check,簡稱CRC)系列的函數(shù)所得者,而啟動載入程序于步驟Slll中判斷快閃存儲器所存儲的動態(tài)分區(qū)表的版本是否確實關(guān)聯(lián)其所記錄的驗證值。當(dāng)驗證不通過時,啟動載入程序執(zhí)行步驟S107。若啟動載入程序設(shè)計為將動態(tài)分區(qū)表寫入快閃存儲器末端的可用區(qū)塊,則此時略過前次寫入失敗所用的區(qū)塊再往前尋找可用區(qū)塊;若啟動載入程序是將動態(tài)分區(qū)表寫入?yún)^(qū)塊0,則此次選擇前番所用的頁的前一頁。
[0014]在一實施例中,當(dāng)完成如步驟S109所述的動態(tài)分區(qū)表寫入動作或是當(dāng)步驟Slll驗證通過時,設(shè)有快閃存儲器的終端設(shè)備可根據(jù)動態(tài)分區(qū)表載入前述各分區(qū),如步驟S113所示。
[0015]綜上所述,本發(fā)明利用燒錄器本身跳過不可用區(qū)塊燒錄的能力,將韌件或映像文件整份寫入快閃存儲器,再以啟動載入程序反推出各分區(qū)地址,并建表記錄之,供后續(xù)使用。
[0016]雖然本發(fā)明以前述的實施例揭露如上,然其并非用以限定本發(fā)明。在不脫離本發(fā)明的精神和范圍內(nèi),所作的更動與潤飾,均屬本發(fā)明的專利保護(hù)范圍。關(guān)于本發(fā)明所界定的保護(hù)范圍請參考所附的權(quán)利要求。
【主權(quán)項】
1.一種快閃存儲器燒錄方法,其特征在于,該方法包含: 自一快閃存儲器載入一啟動載入程序,該快閃存儲器包含至少一不可用區(qū)塊,且該快閃存儲器被寫入有一映像文件,該映像文件具有多個分區(qū),所述分區(qū)其中之一包含該啟動載入程序的程序代碼;以及 判斷該快閃存儲器是否存儲有一動態(tài)分區(qū)表; 其中當(dāng)該快閃存儲器沒有存儲該動態(tài)分區(qū)表時,依據(jù)所述分區(qū)的長度和所述至少一不可用區(qū)塊于該快閃存儲器中的分布,建立該動態(tài)分區(qū)表。
2.根據(jù)權(quán)利要求1所述的快閃存儲器燒錄方法,其特征在于,該方法還包含指示將該映像文件寫入該快閃存儲器。
3.根據(jù)權(quán)利要求2所述的快閃存儲器燒錄方法,其特征在于,該快閃存儲器還包含多個可用區(qū)塊,指示將該映像文件寫入該快閃存儲器的步驟指示一燒錄器將所述分區(qū)寫入至少部分的所述可用區(qū)塊。
4.根據(jù)權(quán)利要求3所述的快閃存儲器燒錄方法,其特征在于,該動態(tài)分區(qū)表記錄有所述分區(qū)中一第一分區(qū)被寫入的所述可用區(qū)塊中一第一可用區(qū)塊于該快閃存儲器中的一第一地址和所述分區(qū)中接續(xù)該第一分區(qū)的一第二分區(qū)被寫入的所述可用區(qū)塊中一第二可用區(qū)塊于該快閃存儲器中的一第二地址,且建立該動態(tài)分區(qū)表的步驟包含依據(jù)該第一地址、該第一分區(qū)的長度以及所述至少一不可用區(qū)塊于該第一可用區(qū)塊與該第二可用區(qū)塊間的數(shù)量,計算該第二地址。
5.根據(jù)權(quán)利要求3所述的快閃存儲器燒錄方法,其特征在于,建立該動態(tài)分區(qū)表的步驟包含將該動態(tài)分區(qū)表寫入所述可用區(qū)塊其中之一。
6.根據(jù)權(quán)利要求5所述的快閃存儲器燒錄方法,其特征在于,將該動態(tài)分區(qū)表寫入所述可用區(qū)塊其中之一的步驟是以頁為單位將該動態(tài)分區(qū)表寫入所述可用區(qū)塊中一可用區(qū)塊的末端。
7.根據(jù)權(quán)利要求3所述的快閃存儲器燒錄方法,其特征在于,該動態(tài)分區(qū)表關(guān)聯(lián)于一預(yù)定義值,且判斷該快閃存儲器是否存儲有該動態(tài)分區(qū)表的步驟是判斷所述可用區(qū)塊其中之一是否存儲有該預(yù)定義值。
8.根據(jù)權(quán)利要求1所述的快閃存儲器燒錄方法,其特征在于,建立該動態(tài)分區(qū)表的步驟包含計算關(guān)聯(lián)于該動態(tài)分區(qū)表的一驗證值。
【專利摘要】本發(fā)明提供了一種快閃存儲器燒錄方法,該快閃存儲器燒錄方法步驟包含自快閃存儲器載入啟動載入程序,并判斷快閃存儲器是否存儲有動態(tài)分區(qū)表。快閃存儲器包含一或多個不可用區(qū)塊且被寫入有一映像文件,映像文件具有多個分區(qū),分區(qū)其中之一包含啟動載入程序的程序代碼。當(dāng)快閃存儲器沒有存儲動態(tài)分區(qū)表時,依據(jù)前述分區(qū)的長度和不可用區(qū)塊于該快閃存儲器中的分布,建立該動態(tài)分區(qū)表。本發(fā)明提供改進(jìn)并折衷兩種動態(tài)分區(qū)方式,使終端設(shè)備商可省下客制化的額外負(fù)擔(dān),亦毋需用啟動載入程序一一燒錄分區(qū),實現(xiàn)快速且成本受控的制造工藝。
【IPC分類】G11C16-06
【公開號】CN104751881
【申請?zhí)枴緾N201410014463
【發(fā)明人】高銘甫
【申請人】緯創(chuàng)資通股份有限公司
【公開日】2015年7月1日
【申請日】2014年1月13日