專利名稱:存儲卡及于閃存進(jìn)行資料更新的方法
技術(shù)領(lǐng)域:
本發(fā)明是有關(guān)于閃存,特別是有關(guān)于閃存的資料更新。
背景技術(shù):
閃存為一種可由電編程及清除其資料的非易失性存儲器。閃存主要用來作
存儲卡及通用串行總線(Universal Serial Bus, USB)裝置,以供電腦及其他數(shù) 字產(chǎn)品的一般性資料儲存。閃存的制造成本遠(yuǎn)低于電氣可擦除可編程唯讀存儲 器(Electrically-Erasable Programmable Read-Only Memory, EEPROM)的成本,
因此成為市場上的主流產(chǎn)品。閃存的應(yīng)用范圍包括掌上型電腦(PDA)、筆記型 電腦、數(shù)字音樂播放器、數(shù)字相機(jī)、以及移動電話。
閃存包括多個區(qū)塊(block),每一區(qū)塊包括多個頁(page)以儲存資料。閃存 的資料清除單位為一區(qū)塊,而閃存的資料編程單位為一頁。換句話說,當(dāng)清除 一閃存的一區(qū)塊的資料時,該區(qū)塊包含的所有頁的資料都一起被清除。然而, 閃存的一區(qū)塊的一頁卻可以個別的進(jìn)行資料寫入,前提是該頁必須未經(jīng)編程或 已被清除。由于閃存無法以頁為單位進(jìn)行資料清除,當(dāng)一區(qū)塊僅有部分頁的資 料需要更新時,由于這些部份頁已存有舊資料,新資料無法直接寫入這些部份 頁中。因此,需要一種于閃存進(jìn)行資料更新的方法。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的目的在于提供一種于閃存進(jìn)行資料更新的方法,以解 決現(xiàn)有技術(shù)存在的問題。于一實施例中,該閃存包括一母體區(qū)塊,該母體區(qū)塊 包含多個需資料更新的被更新頁。首先,取得一空白區(qū)塊作為對應(yīng)于該母體區(qū) 塊的一更新區(qū)塊。接著,將用以更新該母體區(qū)塊的這些被更新頁的資料寫入該 更新區(qū)塊的多個替換頁。最后,于該更新區(qū)塊的一頁對應(yīng)表記錄這些被更新頁 與這些替換頁的對應(yīng)關(guān)系。
5本發(fā)明提供一種存儲卡。于一實施例中,該存儲卡包括一閃存及一控制器。 該閃存包括一母體區(qū)塊及一更新區(qū)塊,其中該母體區(qū)塊包含多個需資料更新的 被更新頁。該控制器,將用以更新該母體區(qū)塊的這些被更新頁的資料寫入該更 新區(qū)塊的多個替換頁,并于該更新區(qū)塊的一頁對應(yīng)表記錄這些被更新頁與這些 替換頁的對應(yīng)關(guān)系。
本發(fā)明更提供一種于閃存進(jìn)行資料更新的方法。于一實施例中,該閃存包 括一母體區(qū)塊以及一更新區(qū)塊,該更新區(qū)塊包括多個置換頁,這些置換頁儲存 該母體區(qū)塊所包含的多個被更新頁的更新資料,且一頁對應(yīng)表儲存這些被更新 頁與這些替換頁的對應(yīng)關(guān)系。首先,自該閃存的一空白區(qū)取得一新區(qū)塊。接著, 依據(jù)該頁置換表結(jié)合儲存于該母體區(qū)塊的資料及儲存于該更新區(qū)塊的這些置 換頁的更新資料,以得到供寫入該新區(qū)塊的資料。最后,清除該母體區(qū)塊及該 更新區(qū)塊。
為讓本發(fā)明的上述目的、特征和優(yōu)點能更明顯易懂,以下結(jié)合附圖對本發(fā) 明的具體實施方式
作詳細(xì)說明,其中
圖1是依據(jù)本發(fā)明的系統(tǒng)的區(qū)塊圖2是依據(jù)本發(fā)明于閃存進(jìn)行資料更新的方法的流程圖; 圖3是一母體區(qū)塊與一更新區(qū)塊的示意圖; 圖4A為依據(jù)本發(fā)明的頁對應(yīng)表的一實施例; 圖4B為依據(jù)本發(fā)明的頁對應(yīng)表的另一實施例;
圖5為依據(jù)本發(fā)明整合母體區(qū)塊與更新區(qū)塊為--新區(qū)塊的方法的流程以及
圖6為圖3的母體區(qū)塊與更新區(qū)塊的資料整合后所得的新區(qū)塊。
主要元件符號說明 102 主機(jī); 104 存儲卡; 112 控制器;114~閃存;
120 資料區(qū); 130 空白區(qū);
122、 124、 128、 132、 134 區(qū)塊。
具體實施例方式
圖1是依據(jù)本發(fā)明的系統(tǒng)IOO的區(qū)塊圖。系統(tǒng)IOO包括主機(jī)102及存儲卡 104。存儲卡104包括控制器112及閃存114。于一實施例中,該閃存114為一 NAND型閃存。閃存包括多個區(qū)塊(block),每一區(qū)塊包括多個頁(page)。于該 閃存114的多個區(qū)塊中,儲存資料的區(qū)塊例如區(qū)塊122 128邏輯上屬于一資料 區(qū)120,而未儲存資料的區(qū)塊例如區(qū)塊132 134邏輯上屬于一空白區(qū)130。
閃存114是以頁為單位進(jìn)行資料編程。當(dāng)一區(qū)塊的數(shù)個頁未儲存資料,控 制器112可將資料寫入該區(qū)塊的這些頁。閃存114是以區(qū)塊為單位進(jìn)行資料清 除。當(dāng)一區(qū)塊的一頁儲存資料而須清除,控制器112將該區(qū)塊的所有頁的資料 均一并清除。
由于控制器112僅能將資料寫入未儲存資料的頁,當(dāng)主機(jī)102需要對已儲 存資料的頁進(jìn)行資料更新時,控制器112必須依據(jù)特定方法以進(jìn)行資料更新。 圖2是依據(jù)本發(fā)明于閃存進(jìn)行資料更新的方法200的流程圖。假設(shè)主機(jī)102要 求控制器112更新一母體區(qū)塊的數(shù)個頁的資料并將這些頁的更新資料送至控制 器112。然而,該母體區(qū)塊的需被更新頁己儲存舊資料,因而控制器112無法 直接將資料寫入該母體區(qū)塊的這些被更新頁??刂破?12便依據(jù)方法200進(jìn)行 資料更新。
首先,控制器112自空白區(qū)130取得一空白區(qū)塊(步驟202)。該空白區(qū)塊 是作為對應(yīng)于被更新的一母體區(qū)塊的一更新區(qū)塊。圖3是一母體區(qū)塊302與一 更新區(qū)塊304的示意圖。母體區(qū)塊302包括多個頁310 31N,而這些頁310~30N 分別儲存資料PO PN。更新區(qū)塊304包括多個頁320 32N。由于更新區(qū)塊304 為一空白區(qū)塊,因此其多個頁320 32N在此時并未儲存資料。
假設(shè)主機(jī)102要求控制器112更新母體區(qū)塊302的頁311與312??刂破?112接著取得用以更新母體區(qū)塊302的被更新頁311的更新資料Pl'(步驟204)??刂破?12接著自更新區(qū)塊304中選取一置換頁320以供儲存被更新頁311的 更新資料Pl',并將更新資料Pl,寫入更新區(qū)塊304的置換頁320中(步驟206)。 因為母體區(qū)塊302仍舊有另一被更新頁312,控制器112接著取得用以更新被 更新頁312的更新資料P2'(步驟204),并自更新區(qū)塊304中選取一置換頁321 以供儲存被更新頁312的更新資料P2',并將更新資料P2'寫入更新區(qū)塊304的 置換頁321中(步驟206)。于是,被更新頁311與312的更新資料P1,與P2,均 已存入更新區(qū)塊304的對應(yīng)的置換頁320與321。
因為母體區(qū)塊302的被更新頁310與311的更新資料以儲存于更新區(qū)塊304 的置換頁320與321,控制器112需于一頁對應(yīng)表中儲存置換頁與更新頁的相 對應(yīng)關(guān)系(步驟210)。圖4A為依據(jù)本發(fā)明的頁對應(yīng)表400的一實施例。頁對應(yīng) 表400的第一行410為母體區(qū)塊302的頁指標(biāo),其中這些頁指標(biāo)是由0至N, 以分別表示母體區(qū)塊302的各頁310~31N。頁對應(yīng)表400的第二行420為更新 區(qū)塊304相對應(yīng)于被更新頁的置換頁的頁指標(biāo)。控制器112因此可依據(jù)頁對應(yīng) 表400決定是否母體區(qū)塊302的某一頁為一被更新頁以及對應(yīng)于一被更新頁的 置換頁為更新區(qū)塊304的哪一頁。舉例來說,母體區(qū)塊302的頁311的頁指標(biāo) 為l,因此于更新區(qū)塊304中具有一頁指標(biāo)為0的相對應(yīng)置換頁320。同樣的, 母體區(qū)塊302的頁312的頁指標(biāo)為2,因此于更新區(qū)塊304中具有一頁指標(biāo)為 1的相對應(yīng)置換頁321。最后,控制器112將頁對應(yīng)表400寫入更新區(qū)塊304 的頁322中,而結(jié)束資料更新。
當(dāng)主機(jī)102再度要求控制器112對母體區(qū)塊302的頁314 316進(jìn)行更新時, 控制器112取得對應(yīng)于母體區(qū)塊302的更新區(qū)塊304并再度將被更新頁314 316 的更新資料儲存于更新區(qū)塊304中。舉例來說,當(dāng)主機(jī)102要求以更新資料P4'、 P5'、 P6,更新被更新頁314-316時,控制器112決定更新區(qū)塊304的頁323~325 為對應(yīng)于被更新頁314 316的置換頁,并依據(jù)方法200的步驟204~208將更新 資料P4'、 P5'、 P6'儲存于置換頁323、 324、 325。控制器112接著將母體區(qū)塊 302的所有被更新頁與更新區(qū)塊304的所有置換頁的對應(yīng)關(guān)系儲存于圖4B的一 頁對應(yīng)表450中,并將頁對應(yīng)表450寫入更新區(qū)塊304的頁326,以結(jié)束資料 更新。
當(dāng)主機(jī)102要求控制器112讀取母體區(qū)塊302,控制器302首先必須找到
8對應(yīng)于母體區(qū)塊302的更新區(qū)塊304,其中母體區(qū)塊302與對應(yīng)的更新區(qū)塊304 具有共同的第一邏輯區(qū)塊地址,并由更新區(qū)塊304的頁326取出頁對應(yīng)表450, 此時,頁對應(yīng)表450為更新區(qū)塊304中最后一個頁對應(yīng)表??刂破?12接著必 須依據(jù)頁對應(yīng)表450決定母體區(qū)塊的各頁是否為于更新區(qū)塊304具有相對應(yīng)的 置換頁的被更新頁。圖4B中,僅有頁指標(biāo)為1、 2、 4、 5、 6的頁311、 312、 314、 315、 316具有相對應(yīng)的置換頁,因此頁311、 312、 314、 315、 316為被 更新頁。當(dāng)母體區(qū)塊302的某頁非被更新頁,控制器112直接讀取該頁以得到 其儲存的資料。當(dāng)母體區(qū)塊302的某頁系被更新頁,控制器112必須先依據(jù)頁 對應(yīng)表450找出對應(yīng)于該頁的置換頁,接著讀取該置換頁以得到該頁儲存的更 新資料。因此,當(dāng)母體區(qū)塊302被讀取時,主機(jī)102自控制器112收到資料P0、 Pl'、 P2,、 P3、 P4'、 P5,、 P6,、…、PN。
當(dāng)一更新區(qū)塊已儲存滿資料而無法再儲存更多更新資料時,控制器112啟 動一資料整合程序以將母體區(qū)塊的原始資料與更新區(qū)塊的更新資料整合為一 新區(qū)塊。圖5為依據(jù)本發(fā)明整合母體區(qū)塊與更新區(qū)塊為一新區(qū)塊的方法500的 流程圖??刂破鱑2首先自一空白區(qū)取得一新區(qū)塊(步驟502)??刂破?12接著 自對應(yīng)于一母體區(qū)塊的一更新區(qū)塊取得一最新頁對應(yīng)表(步驟504)??刂破?12 接著自該母體區(qū)塊的多個頁選取一目標(biāo)頁(步驟506),并決定是否該最新頁對應(yīng) 表指示該目標(biāo)頁于該更新區(qū)塊有一置換頁(步驟508)。若該最新頁對應(yīng)表指示該 目標(biāo)頁于該更新區(qū)塊有一置換頁,該目標(biāo)頁為一被更新頁。否則,該目標(biāo)頁非 被更新頁。舉例來說,依據(jù)圖4B的頁對應(yīng)表450,母體區(qū)塊302的頁311、 312、 314、 315、 316分別于更新區(qū)塊304中具有對應(yīng)的置換頁320、 321、 323、 324、 325,因此為被更新頁。
當(dāng)該目標(biāo)頁非被更新頁,控制器112直接讀取該目標(biāo)頁以取得目標(biāo)資料(步 驟512)。當(dāng)該目標(biāo)頁系被更新頁,控制器U2讀取該目標(biāo)頁對應(yīng)的置換頁以取 得目標(biāo)資料(步驟510)??刂破?12接著將該目標(biāo)資料寫入該新區(qū)塊的一頁,其 中該頁與該目標(biāo)頁具有同樣的頁指標(biāo)(步驟514)。圖6為圖3的母體區(qū)塊302 與更新區(qū)塊304的資料整合后所得的新區(qū)塊600。當(dāng)目標(biāo)頁為非更新頁的頁 313,頁313儲存的資料P3被直接寫入新區(qū)塊600的頁613。當(dāng)目標(biāo)頁為更新 頁的頁314,頁315所對應(yīng)的置換頁323所儲存的資料P4,被寫入新區(qū)塊600的頁614。
控制器112重復(fù)執(zhí)行步驟506 516直到母體區(qū)塊的所有頁均被處理為止(步 驟516)。當(dāng)母體區(qū)塊302的所有頁均被處理后,新區(qū)塊600儲存了母體區(qū)塊302 及更新區(qū)塊304所整合后的資料。母體區(qū)塊302及更新區(qū)塊304因此系無用的, 而控制器112清除該母體區(qū)塊302與該更新區(qū)塊304并將該母體區(qū)塊302與該 更新區(qū)塊304歸回空白區(qū)130(步驟518)。母體區(qū)塊302及更新區(qū)塊304因此可 重復(fù)使用來儲存新資料。最后,控制器112以該新區(qū)塊600替換該母體區(qū)塊302 的邏輯對應(yīng)關(guān)系(步驟520)。于一實施例中,控制器112將該母體區(qū)塊302對應(yīng) 的第一邏輯區(qū)塊地址對應(yīng)至該新區(qū)塊600的一實體地址,以將該新區(qū)塊600替 換該母體區(qū)塊302。
雖然本發(fā)明已以較佳實施例揭示如上,然其并非用以限定本發(fā)明,任何本 領(lǐng)域技術(shù)人員,在不脫離本發(fā)明的精神和范圍內(nèi),當(dāng)可作些許的修改和完善, 因此本發(fā)明的保護(hù)范圍當(dāng)以權(quán)利要求書所界定的為準(zhǔn)。
10
權(quán)利要求
1. 一種于閃存進(jìn)行資料更新的方法,其中該閃存包括一母體區(qū)塊,該母體區(qū)塊包含多個需資料更新的被更新頁,該方法包括下列步驟取得一空白區(qū)塊作為對應(yīng)于該母體區(qū)塊的一更新區(qū)塊;將用以更新該母體區(qū)塊的這些被更新頁的資料寫入該更新區(qū)塊的多個替換頁;以及于該更新區(qū)塊的一頁對應(yīng)表記錄這些被更新頁與這些替換頁的對應(yīng)關(guān)系。
2. 如權(quán)利要求1所述的于閃存進(jìn)行資料更新的方法,其特征在于,該資料 的寫入包括下列步驟取得用以更新選擇自這些被更新頁的一目標(biāo)被更新頁的目標(biāo)資料; 自這些替換頁中選取一目標(biāo)替換頁;以及 將該目標(biāo)資料寫入該目標(biāo)替換頁。
3. 如權(quán)利要求l所述的于閃存進(jìn)行資料更新的方法,其特征在于,該母體 區(qū)塊與該更新區(qū)塊皆對應(yīng)至一第一邏輯區(qū)塊地址。
4. 如權(quán)利要求2所述的于閃存進(jìn)行資料更新的方法,其特征在于,該對應(yīng) 關(guān)系的記錄包括下列步驟于該頁對應(yīng)表中記錄這些目標(biāo)被更新頁的頁指標(biāo)及其所對應(yīng)至這些目標(biāo)替換頁的頁指標(biāo);以及將該頁對應(yīng)表寫入該更新區(qū)塊的一頁。
5. 如權(quán)利要求l所述的于閃存進(jìn)行資料更新的方法,其特征在于,該方法 更包括當(dāng)該母體區(qū)塊被讀取時,依據(jù)該頁對應(yīng)表讀取該更新區(qū)塊的這些替換頁以 代替該母體區(qū)塊的這些被更新頁。
6. 如權(quán)利要求5所述的于閃存進(jìn)行資料更新的方法,其特征在于,這些替 換頁的讀取更包括決定是否該母體區(qū)塊的一目標(biāo)頁是這些被更新頁其中之一; 當(dāng)該目標(biāo)頁非這些被更新頁其中之一,直接讀取該母體區(qū)塊的該目標(biāo)頁以 得到對應(yīng)于該目標(biāo)頁的資料;以及當(dāng)該目標(biāo)頁是這些被更新頁其中之一,依據(jù)該頁對應(yīng)表決定對應(yīng)于該目標(biāo) 頁的一置換頁,并讀取該更新區(qū)塊的該置換頁以得到對應(yīng)于該目標(biāo)頁的資料。
7. —種存儲卡,包括一閃存,包括一母體區(qū)塊及一更新區(qū)塊,其中該母體區(qū)塊包含多個需資料 更新的被更新頁;以及一控制器,將用以更新該母體區(qū)塊的這些被更新頁的資料寫入該更新區(qū)塊 的多個替換頁,并于該更新區(qū)塊的一頁對應(yīng)表記錄這些被更新頁與這些替換頁 的對應(yīng)關(guān)系。、
8. 如權(quán)利要求7所述的存儲卡,其特征在于,該控制器取得用以更新選擇 自這些被更新頁的一目標(biāo)被更新頁的目標(biāo)資料,自這些替換頁中選取一目標(biāo)替 換頁,并將該目標(biāo)資料寫入該目標(biāo)替換頁,以將用以更新該母體區(qū)塊的這些被 更新頁的資料寫入該更新區(qū)塊的這些替換頁。
9. 如權(quán)利要求8所述的存儲卡,其特征在于,該控制器于該頁對應(yīng)表中記 錄這些目標(biāo)被更新頁的頁指標(biāo)及其所對應(yīng)至這些目標(biāo)替換頁的頁指標(biāo),并將該 頁對應(yīng)表寫入該更新區(qū)塊的一頁,以記錄這些被更新頁與這些替換頁的對應(yīng)關(guān) 系。
10. 如權(quán)利要求7所述的存儲卡,其特征在于,當(dāng)該母體區(qū)塊被讀取時, 該控制器更依據(jù)該頁對應(yīng)表讀取該更新區(qū)塊的這些替換頁以代替該母體區(qū)塊 的這些被更新頁。
11. 如權(quán)利要求IO所述的存儲卡,其特征在于,當(dāng)該母體區(qū)塊被讀取時, 該控制器決定是否該母體區(qū)塊的一 目標(biāo)頁是這些被更新頁其中之一,并于該目 標(biāo)頁非這些被更新頁其中之一時,直接讀取該母體區(qū)塊的該目標(biāo)頁以得到對應(yīng)于該目標(biāo)頁的資料。
12. 如權(quán)利要求11所述的存儲卡,其特征在于,當(dāng)該目標(biāo)頁是這些被更新 頁其中之一時,該控制器依據(jù)該頁對應(yīng)表決定對應(yīng)于該目標(biāo)頁的一置換頁,并讀取該更新區(qū)塊的該置換頁以得到對應(yīng)于該目標(biāo)頁的資料。
13. —種于閃存進(jìn)行資料更新的方法,其特征在于,該閃存包括一母體區(qū) 塊以及一更新區(qū)塊,該更新區(qū)塊包括多個置換頁,這些置換頁儲存該母體區(qū)塊 所包含的多個被更新頁的更新資料,且一頁對應(yīng)表儲存這些被更新頁與這些替換頁的對應(yīng)關(guān)系,該方法包括下列步驟 自該閃存的一空白區(qū)取得一新區(qū)塊;依據(jù)該頁置換表結(jié)合儲存于該母體區(qū)塊的資料及儲存于該更新區(qū)塊的這 些置換頁的更新資料,以得到供寫入該新區(qū)塊的資料;以及 清除該母體區(qū)塊及該更新區(qū)塊。
14. 如權(quán)利要求13所述的于閃存進(jìn)行資料更新的方法,其特征在于,該母體區(qū)塊的資料及這些置換頁的更新資料的結(jié)合包括下列步驟.-依據(jù)該頁對應(yīng)表,決定是否該母體區(qū)塊的一目標(biāo)頁是這些被更新頁其中之一;以及當(dāng)該目標(biāo)頁非這些被更新頁其中之一,將該目標(biāo)頁的資料寫入該新區(qū)塊的 一特定頁,其中該特定頁與該目標(biāo)頁具有相同的頁指標(biāo)。
15. 如權(quán)利要求14所述的于閃存進(jìn)行資料更新的方法,其特征在于,該母 體區(qū)塊的資料及這些置換頁的更新資料的結(jié)合更包括下列步驟當(dāng)該目標(biāo)頁是這些被更新頁其中之一,將該目標(biāo)頁所對應(yīng)的一置換頁的更 新資料寫入該新區(qū)塊的該特定頁。
16. 如權(quán)利要求13所述的于閃存進(jìn)行資料更新的方法,其特征在于,該方法更包括將該母體區(qū)塊及該更新區(qū)塊歸回該空白區(qū)。
17. 如權(quán)利要求13所述的于閃存進(jìn)行資料更新的方法,其特征在于,該母體區(qū)塊與該更新區(qū)塊皆對應(yīng)至一第一邏輯區(qū)塊地址。
18. 如權(quán)利要求17所述的于閃存進(jìn)行資料更新的方法,其特征在于,該方 法更包括將該第一邏輯區(qū)塊地址對應(yīng)至該新區(qū)塊的一實體地址,以將該新區(qū)塊替換 該母體區(qū)塊。
全文摘要
本發(fā)明提供一種存儲卡及于閃存進(jìn)行資料更新的方法。于一實施例中,該閃存包括一母體區(qū)塊,該母體區(qū)塊包含多個需資料更新的被更新頁。首先,取得一空白區(qū)塊作為對應(yīng)于該母體區(qū)塊的一更新區(qū)塊。接著,將用以更新該母體區(qū)塊的這些被更新頁的資料寫入該更新區(qū)塊的多個替換頁。最后,于該更新區(qū)塊的一頁對應(yīng)表記錄這些被更新頁與這些替換頁的對應(yīng)關(guān)系。
文檔編號G06F12/06GK101446922SQ200810182068
公開日2009年6月3日 申請日期2008年11月28日 優(yōu)先權(quán)日2007年11月29日
發(fā)明者陳家新 申請人:慧國(上海)軟件科技有限公司;慧榮科技股份有限公司