專利名稱:在非易失性存儲(chǔ)器中重用日志塊的方法、非易失性存儲(chǔ)器件的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及非易失性半導(dǎo)體存儲(chǔ)器件,具體地,涉及管理非易失性半導(dǎo) 體存儲(chǔ)器件的方法、以及相關(guān)的非易失性存儲(chǔ)器件。
背景技術(shù):
快閃存儲(chǔ)器件是非易失性存儲(chǔ)器件,可以電方式向其寫入數(shù)據(jù)、或從其 擦除數(shù)據(jù)?;诳扉W存儲(chǔ)器的存儲(chǔ)器件通常比同等的磁盤存儲(chǔ)器件消耗更少 的功率、和/或更小。因此,在許多現(xiàn)有和新的應(yīng)用中,基于快閃存儲(chǔ)器的存 儲(chǔ)器件正在取代磁盤存儲(chǔ)器件??扉W存儲(chǔ)器件一般不允許覆寫數(shù)據(jù),而在磁盤存儲(chǔ)器件中通??梢赃@樣 做。因此,為了替換在快閃存儲(chǔ)器件中存儲(chǔ)的數(shù)據(jù),首先擦除所存儲(chǔ)的數(shù)據(jù), 然后,將新的數(shù)據(jù)編程到被擦除的存儲(chǔ)單元中。所述"擦除"操作可以將快 閃存儲(chǔ)器件的存儲(chǔ)單元返回到其初始狀態(tài)。因此,快閃存儲(chǔ)器件一般具有三 個(gè)操作模式編程(寫入)模式、擦除模式和讀取模式。在此,也可以將被擦除 的快閃存儲(chǔ)單元或塊稱為"清空的(clean)"單元或塊。擦除操作通常需要比編程(即,寫入)操作長的時(shí)間。而且,通常在比編程 或讀取操作大得多的塊單元中執(zhí)行擦除操作。結(jié)果,可能在塊擦除操作期間 擦除未被請求擦除的快閃存儲(chǔ)器的部分。當(dāng)此發(fā)生時(shí),可能需要通過將數(shù)據(jù) 編程到另 一個(gè)塊中來恢復(fù)未被請求擦除操作的塊的部分。頻繁的擦除操作可能導(dǎo)致快閃存儲(chǔ)器件的"擦除計(jì)數(shù)"的不必要的增加。 所述"擦除計(jì)數(shù)"是可能顯著地影響快閃存儲(chǔ)器件的壽命的參數(shù)。隨著快閃 存儲(chǔ)器件的擦除計(jì)數(shù)和編程計(jì)數(shù)的增加,所述器件的預(yù)期壽命(即,快閃存儲(chǔ)
器^)奪正確i也工作的時(shí)間)減少。圖1是圖解傳統(tǒng)的快閃存儲(chǔ)器件的存儲(chǔ)單元區(qū)的框圖。如圖1中所示, 快閃存儲(chǔ)器件的存儲(chǔ)單元區(qū)可以被劃分為多個(gè)邏輯區(qū)域,包括映射區(qū)域、曰志塊(log block)區(qū)域、數(shù)據(jù)塊區(qū)域、可擦除塊區(qū)域和空閑塊(freeblock)區(qū)域。 每個(gè)區(qū)域可以包括一個(gè)或多個(gè)存儲(chǔ)塊。在此,日志塊區(qū)域中的存儲(chǔ)塊被稱為 "日志塊",數(shù)據(jù)塊區(qū)域中的存儲(chǔ)塊被稱為"數(shù)據(jù)塊",可擦除塊區(qū)域中的存 儲(chǔ)塊被稱為"可擦除塊",而空閑塊區(qū)域中的存儲(chǔ)塊被稱為"空閑塊"。數(shù)據(jù)塊存儲(chǔ)正常的數(shù)據(jù)。日志塊用來通過將更新的內(nèi)容記錄在日志塊而 更新數(shù)據(jù)塊的一部分或全部。因此,日志塊對應(yīng)于至少一個(gè)數(shù)據(jù)塊,并且存 儲(chǔ)一個(gè)或多個(gè)對應(yīng)的數(shù)據(jù)塊的更新的頁(page)。在數(shù)據(jù)塊中存儲(chǔ)的對應(yīng)的頁之 前引用在日志塊中存儲(chǔ)的頁。在日志塊中的數(shù)據(jù)可以周期性地與在對應(yīng)的數(shù) 據(jù)塊中的數(shù)據(jù)合并。圖2是圖解當(dāng)存儲(chǔ)塊彼此合并時(shí)的、傳統(tǒng)的快閃存儲(chǔ)器件的存儲(chǔ)塊的狀 態(tài)變換的狀態(tài)圖。在韓國專利公開第10-2002-0092487號中公開了在圖2中圖 解的傳統(tǒng)狀態(tài)變換。如圖2中所示,當(dāng)例如對日志塊進(jìn)行簡單合并操作時(shí), 所述日志塊變?yōu)榭刹脸龎K,可擦除塊是在它可以被重用之前需要被擦除的塊。圖3是圖解在傳統(tǒng)的簡單合并后的日志塊的示意圖。如圖3中所示,在 傳統(tǒng)的簡單合并操作后,日志塊可以具有在其中編程的不同數(shù)量的數(shù)據(jù)。具 體地,某些日志塊可以存儲(chǔ)大量數(shù)據(jù),而其它日志塊僅可存儲(chǔ)小量數(shù)據(jù)(例如, 一或丙頁)。在簡單合并后,所述日志塊全部被丟棄到垃圾池(garbage pool)(即, 所述日志塊被定義為可擦除塊)。可擦除塊可在之后被擦除,其后,它們變?yōu)?在圖2中所示的空閑塊。發(fā)明內(nèi)容按照本發(fā)明的某些實(shí)施例,提供了用于操作非易失性存儲(chǔ)器件的方法, 所述非易失性存儲(chǔ)器件包括用于存儲(chǔ)第 一數(shù)據(jù)的第 一數(shù)據(jù)塊、以及用于存儲(chǔ) 第一數(shù)據(jù)中的至少一些的更新版本的第一日志塊。按照這些方法,在第一數(shù) 據(jù)塊中的第 一數(shù)據(jù)的有效部分被復(fù)制到不具有數(shù)據(jù)的空閑塊,以產(chǎn)生第二數(shù) 據(jù)塊。將第 一數(shù)據(jù)中的至少一些的更新版本從第 一 日志塊復(fù)制到第二數(shù)據(jù)塊。 響應(yīng)于至少一個(gè)預(yù)定條件被滿足,而將所述第一日志塊指定為可重用日志塊, 而不從其擦除數(shù)據(jù)。所述非易失性存儲(chǔ)器件可以包括例如快閃存儲(chǔ)器件。
在某些實(shí)施例中,可通過確定在第一日志塊中的清空的存儲(chǔ)量、然后將 所確定的清空的存儲(chǔ)量與預(yù)定的基準(zhǔn)值相比較,而將所述第一日志塊指定為 可重用日志塊,而不從其擦除數(shù)據(jù)。如果所確定的在所述第一日志塊中的清 空的存儲(chǔ)量超過了所述預(yù)定的基準(zhǔn)值,則將所述第一日志塊指定為可重用日 志塊,而不從其擦除數(shù)據(jù)。清空的存儲(chǔ)量可以是在第一日志塊中的清空的頁 的數(shù)量??赏ㄟ^例如在重用池表中記錄所述第一日志塊的標(biāo)識符(例如,物理 塊編號)、以及與所述第一日志塊相關(guān)聯(lián)的清空的頁起始地址,而將所述第一 日志塊指定為可重用日志塊。例如,所述預(yù)定的基準(zhǔn)值可以是在所述第一日志塊中的頁的總數(shù)的大約1/2。在某些實(shí)施例中,所述方法可以還包括將被存儲(chǔ)在第二數(shù)據(jù)塊中的第 二數(shù)據(jù)中的至少一些的更新版本記錄到可重用日志塊中,而不從可重用日志 塊擦除所述第一數(shù)據(jù)。例如,這可以例如通過下述步驟來實(shí)現(xiàn)接收所述第 二數(shù)據(jù)中的至少一些的更新版本,然后確定所述第二數(shù)據(jù)中的至少一些的更 新版本要被存儲(chǔ)在不是空閑存儲(chǔ)塊的新的日志塊中。然后,選擇所述可重用 日志塊作為所述新的日志塊,并且在所述第二數(shù)據(jù)塊中存儲(chǔ)的第二數(shù)據(jù)中的 至少一些的更新版本被記錄到所述可重用日志塊中。在本發(fā)明的另 一些實(shí)施例中,提供了用于操作非易失性存儲(chǔ)器件的方法, 所述方法涉及將第一數(shù)據(jù)記錄到所述非易失性存儲(chǔ)器件的第 一存儲(chǔ)塊中, 其中,第一存儲(chǔ)塊包含被擦除的頁、以及包含不再有效的先前記錄的第二 數(shù)據(jù)的頁。在這些方法中,在將數(shù)據(jù)記錄到第一存儲(chǔ)塊中之前,可以響應(yīng)于 確定在第一存儲(chǔ)塊中的可擦除頁的數(shù)量超過了基準(zhǔn)值,而將所述第一存儲(chǔ)塊 指定為可重用存儲(chǔ)塊??纱鎯?chǔ)所述第一存儲(chǔ)塊的第一地址,其指定所述第一 存儲(chǔ)塊的被擦除頁集合中的第 一 個(gè)。按照本發(fā)明的其它實(shí)施例,提供了用于操作非易失性存儲(chǔ)器件的方法,所述方法涉及通過將第一數(shù)據(jù)和第二數(shù)據(jù)記錄到所述非易失性存儲(chǔ)器件的第二數(shù)據(jù)塊中,將在所述非易失性存儲(chǔ)器件的第一日志塊中存儲(chǔ)的所述第一 數(shù)據(jù)與在所述非易失性存儲(chǔ)器件的第一數(shù)據(jù)塊中存儲(chǔ)的所述第二數(shù)據(jù)合并。然后,確定在所述第一日志塊中的清空的頁的數(shù)量,并將其與基準(zhǔn)值相比較。 如果清空的頁的數(shù)量超過所述基準(zhǔn)值,則向可重用日志塊池分配所述第一日 志塊。相反,如果清空的頁的數(shù)量小于或等于所述基準(zhǔn)值,則向可擦除曰志 塊池分配所述第一日志塊。 按照本發(fā)明的其它實(shí)施例,提供了非易失性存儲(chǔ)器件,其包括第一存 儲(chǔ)器,其中存儲(chǔ)了程序;第二存儲(chǔ)器,其包括數(shù)據(jù)塊和其中記錄用于更新所 述數(shù)據(jù)塊的數(shù)據(jù)的日志塊;處理器,其被配置為執(zhí)行所述程序以管理所述第 二存儲(chǔ)器。在這些實(shí)施例中,所迷處理器可以被配置為將在第一數(shù)據(jù)塊中 的有效數(shù)據(jù)和在對應(yīng)于所述第 一數(shù)據(jù)塊的第一 日志塊中的有效數(shù)據(jù)復(fù)制到不 具有數(shù)據(jù)的空閑塊,以產(chǎn)生第二數(shù)據(jù)塊;以及根據(jù)預(yù)定條件,在從所述第一 日志塊擦除數(shù)據(jù)后將所述第一 日志塊分配為空閑塊,或者將所述第一 日志塊 分配為第二日志塊,而不從所述第一日志塊擦除數(shù)據(jù)。在這樣的器件中,例 如,所述第一存儲(chǔ)器可以是只讀存儲(chǔ)器,例如,所述第二存儲(chǔ)器可以是快閃 存儲(chǔ)器。按照本發(fā)明的其它實(shí)施例,提供了非易失性存儲(chǔ)器件,其包括存儲(chǔ)單 元區(qū),其被劃分為多個(gè)邏輯區(qū)域,其中包括日志塊區(qū)域、數(shù)據(jù)塊區(qū)域、可擦 除塊區(qū)域、空閑塊區(qū)域和可重用塊區(qū)域;以及處理器。在這些器件中,所述 數(shù)據(jù)塊區(qū)域可以包括存儲(chǔ)被輸入到所述非易失性存儲(chǔ)器件中的數(shù)據(jù)的多個(gè)數(shù) 據(jù)塊。所述日志塊區(qū)域可以包括多個(gè)存儲(chǔ)在數(shù)據(jù)塊區(qū)域中存儲(chǔ)的數(shù)據(jù)的更新 的多個(gè)日志塊。所述可擦除塊可以包括正在等待擦除的多個(gè)可擦除塊。所述 空閑塊區(qū)域可以包括多個(gè)被擦除的存儲(chǔ)塊。所述可重用塊區(qū)域可以包括至少 第一日志塊,其在作為合并操作的一部分的、所述第一日志塊中的更新數(shù)據(jù) 被記錄到另一個(gè)塊中后被分配到可重用塊區(qū)域,而不經(jīng)受擦除操作。
通過參照附圖來詳細(xì)地描述本發(fā)明的示例實(shí)施例,本發(fā)明的上述和其它 特征、以及優(yōu)點(diǎn)將變得更清楚,附圖中圖l是圖解傳統(tǒng)的快閃存儲(chǔ)器件的存儲(chǔ)單元區(qū)的框圖;圖2是圖解按照傳統(tǒng)方法的、在存儲(chǔ)塊彼此合并時(shí)傳統(tǒng)的快閃存儲(chǔ)器件 的存儲(chǔ)塊的狀態(tài)變換的狀態(tài)圖;圖3是圖解在執(zhí)行傳統(tǒng)的簡單合并操作后快閃存儲(chǔ)器件的日志塊的分配 的示意圖;圖;; ' ''a' j'「'王圖5是圖解按照本發(fā)明的某些實(shí)施例的可被用來合并存儲(chǔ)塊的數(shù)據(jù)合并
操作的示意圖;圖6是圖解按照本發(fā)明的某些實(shí)施例的快閃存儲(chǔ)器件的存儲(chǔ)塊的狀態(tài)變 換的狀態(tài)圖;圖7是圖解按照本發(fā)明的某些實(shí)施例的在簡單合并操作后處理日志塊的 方法的流程圖;圖8是圖解按照本發(fā)明的某些實(shí)施例的在簡單合并操作后的日志塊的分 配的示意圖;圖9是圖解按照本發(fā)明的某些實(shí)施例的重用池表的框圖;以及圖10是圖解按照本發(fā)明的某些實(shí)施例的分配新的日志塊的方法的流程圖。
具體實(shí)施方式
現(xiàn)在,將在下文中參照附圖來更全面地描述本發(fā)明,在附圖中示出了本 發(fā)明的實(shí)施例,但是,本發(fā)明可以很多不同形式實(shí)施,并且不應(yīng)當(dāng)被理解為 限于在此闡述的實(shí)施例。相反,提供這些實(shí)施例使得本公開是徹底和完整的, 并且將向本領(lǐng)域的技術(shù)人員完整地傳達(dá)本發(fā)明的范圍。在此使用的術(shù)語"和/ 或,,包括相關(guān)聯(lián)的列出項(xiàng)目中的一個(gè)或多個(gè)的任一個(gè)和全部組合,并且可以 被簡寫為"/"。將理解,雖然可能在此使用術(shù)語"第一"、"第二,,等來描述各種元件, 但這些元件不應(yīng)被這些術(shù)語限制。這些術(shù)語僅用于相互區(qū)分元件。例如,第 一元件可以被命名為第二元件,并且,類似地,第二元件可以被命名為第一 元件,而不會(huì)背離本公開的教導(dǎo)。在此使用的術(shù)語僅用于描述特定實(shí)施例的目的,而不意圖限制本發(fā)明。 如在此使用的,除非上下文清楚地另外指明,否則單數(shù)形式的"一"、"一個(gè)" 和"所述"意圖也包括復(fù)數(shù)形式。還將理解,當(dāng)在本說明書中使用時(shí),術(shù)語 "包含"或"包括"指定所述特征、步驟、操作、元件和/或部件的存在,但 是不排除一個(gè)或多個(gè)其它特征、步驟、操作、元件、部件和/或者其組合的存 在或增力口。所屬的領(lǐng)域內(nèi)的普通技術(shù)人員通常理解的共同的含義。還將理解,諸如在通 用詞典中定義的那些的術(shù)語應(yīng)當(dāng)被解釋為具有與在相關(guān)領(lǐng)域和/或本申請的
上下文中的它們的含義一致的含義,并且將不被解釋為理想化的或者過于正 式的含義,除非在此明確地如此定義。如上所述,按照傳統(tǒng)技術(shù),將在完成涉及日志塊的簡單合并操作后丟棄 (即,被分配為擦除)所述日志塊,即使數(shù)據(jù)已被記錄到所述日志塊的僅僅小部 分中也是如此。因此,增大了傳統(tǒng)的快閃存儲(chǔ)器件的擦除計(jì)數(shù)。如在此所討 論的,按照本發(fā)明的實(shí)施例,提供了非易失性存儲(chǔ)器件,它可以具有提高的 性能和/或壽命,這是因?yàn)?,這些器件重新利用按照傳統(tǒng)技術(shù)而被丟棄的日志 塊,以便降低所述器件的擦除計(jì)數(shù)。還公開了用于管理這些非易失性存儲(chǔ)器 件的相關(guān)方法。日志塊區(qū)域、數(shù)據(jù)塊區(qū)域、可擦除塊區(qū)域、可重用塊區(qū)域和空閑塊區(qū)域。可 以邏輯方式定義這些區(qū)域中的每個(gè)。因此,將理解,這些區(qū)域在物理上可能 是混合的、并且/或者不連續(xù)的。可以使用映射區(qū)域來存儲(chǔ)每個(gè)塊的地址轉(zhuǎn)換信息,以支持塊尋址。映射 區(qū)域也可以存儲(chǔ)可被用來管理在每個(gè)區(qū)域中的存儲(chǔ)塊的表格、列表和/或其它 數(shù)據(jù)結(jié)構(gòu)。所述日志塊區(qū)域包括日志塊,在此將對其更詳細(xì)地描述。所述數(shù)據(jù)塊區(qū) 域用來記錄正常的數(shù)據(jù)??刹脸龎K區(qū)域包括正在等待擦除的塊。在此,將這 些塊稱為可擦除塊或丟棄塊??刹脸龎K可以通過擦除其中的數(shù)據(jù)而變?yōu)榭臻e 塊。所述空閑塊區(qū)域包括可被分配為日志塊或者數(shù)據(jù)塊的空閑塊。空閑塊也 可以被分配到映射區(qū)域??臻e塊不包括任何數(shù)據(jù)(即,空閑塊是已經(jīng)從其擦除 了先前存儲(chǔ)在其中的任何數(shù)據(jù)的塊),可重用塊區(qū)域包括可以被分配到(或者被 維持在)日志塊區(qū)域、而不首先對其執(zhí)行擦除操作的塊。如上所述,通常不能在諸如傳統(tǒng)的與非快閃存儲(chǔ)器件之類的傳統(tǒng)的快閃 存儲(chǔ)器件中覆寫數(shù)據(jù)。因此,當(dāng)接收到更新的數(shù)據(jù)時(shí),它可以被存儲(chǔ)在被稱 為日志塊的臨時(shí)存儲(chǔ)塊中。由于僅在快閃存儲(chǔ)器件中提供有限數(shù)量的日志塊, 所以,在某些點(diǎn),所有日志塊可變?yōu)椴糠值睾?或完全地被數(shù)據(jù)填充。為了保 證日志塊可用來記錄新的、或者被更新的數(shù)據(jù),可以將在日志塊中存儲(chǔ)的數(shù) 據(jù)周期性地與在對應(yīng)的數(shù)據(jù)塊中存儲(chǔ)的數(shù)據(jù)相比較,以識別(l)數(shù)據(jù)塊中的未改變信息(其為有效數(shù)據(jù),這是由于所述數(shù)據(jù)尚未被更新)和(2)所述日志塊中
的更新的lt據(jù)(其也為有效數(shù)據(jù),其需要替換所述數(shù)據(jù)塊中的老數(shù)據(jù))。 一旦完 成了此識別,便可將所述數(shù)據(jù)塊和所述日志塊合并為單個(gè)塊,以便例如清空 所述日志塊。這個(gè)過程被稱為"數(shù)據(jù)合并"、或被簡稱為"合并"??梢詧?zhí)行 三種不同類型的合并操作。這三種合并被稱為簡單合并、復(fù)制合并和交換合 并,將在下面更詳細(xì)地說明每個(gè)合并。圖5是圖解按照本發(fā)明的某些實(shí)施例的具有對應(yīng)的數(shù)據(jù)塊的日志塊的三 種示例合并的示意圖。如圖5中所示,在交換合并中,數(shù)據(jù)塊中的所有數(shù)據(jù)都被替換或更新為 在對應(yīng)的日志塊中存儲(chǔ)的數(shù)據(jù)。因?yàn)榻粨Q合并不涉及合并從兩個(gè)不同的塊選 擇的數(shù)據(jù)(而是涉及將在數(shù)據(jù)塊中的所有數(shù)據(jù)替換為在對應(yīng)的日志塊中存儲(chǔ)的數(shù)據(jù)),所以,可以通過簡單地修改存儲(chǔ)塊映射、以將所述日志塊重新指定 為數(shù)據(jù)塊,來執(zhí)行交換合并。因此,可以在不必須實(shí)際復(fù)制或者重寫任何實(shí) 際數(shù)據(jù)的情況下執(zhí)行交換合并。僅可在特定情形中執(zhí)行交換合并,例如,當(dāng) 數(shù)據(jù)塊中的每一個(gè)頁已被更新僅一次、且所述日志塊和所述數(shù)據(jù)塊具有相同 的頁配置的時(shí)候。例如,可以通過更新在快閃存儲(chǔ)器件的映射區(qū)域中的地址 轉(zhuǎn)換信息、以便將所述日志塊映射到由用戶請求的邏輯地址,來實(shí)現(xiàn)映射替 換。因?yàn)榻粨Q合并僅涉及塊映射,所以,它不需要附加的存儲(chǔ)塊來執(zhí)行。在 完成所述交換合并后,所述日志塊變?yōu)閿?shù)據(jù)塊,并且可以丟棄所述數(shù)據(jù)塊(即, 所述數(shù)據(jù)塊變?yōu)檎诘却脸目刹脸龎K)。例如,當(dāng)接收到用于數(shù)據(jù)塊的高位地址(upperaddress)部分的更新數(shù)據(jù)時(shí) 執(zhí)行復(fù)制合并。所述更新數(shù)據(jù)可以被記錄到例如日志塊的高位地址部分中, 復(fù)制合并用來將所述數(shù)據(jù)塊的剩余部分中存儲(chǔ)的數(shù)據(jù)復(fù)制到例如包含所述更 新數(shù)據(jù)的日志塊的低位地址(lower address)部分。如圖5中所示,當(dāng)僅需要更 新在所述數(shù)據(jù)塊的高位地址部分的數(shù)據(jù)時(shí),在所述日志塊的高位地址部分的 數(shù)據(jù)(即,更新的數(shù)據(jù))是有效的。另一方面,當(dāng)前在所述數(shù)據(jù)塊中的高位地址 部分中存儲(chǔ)的數(shù)據(jù)需要被更新、并因此是無效的,而在所述數(shù)據(jù)塊的低位地 址部分存儲(chǔ)的數(shù)據(jù)保持有效(這是由于,尚未接收到用于此數(shù)據(jù)的更新的數(shù) 據(jù))。因此,利用復(fù)制合并,通過將所述數(shù)據(jù)塊中的有效數(shù)據(jù)復(fù)制到所述日志 塊,來自所述日志塊和對應(yīng)的數(shù)據(jù)塊兩者的有效數(shù)據(jù)被一起合并到單個(gè)塊(在 這個(gè)示例中是所述日志塊)中。復(fù)制合并不需要涉及附加(第三個(gè))塊。通過修 改存儲(chǔ)塊映射以將所述日志塊重新指定為數(shù)據(jù)塊,可以完成所述復(fù)制合并。在完成所述交換合并后,可以丟棄所述數(shù)據(jù)塊。當(dāng)在數(shù)據(jù)塊中的數(shù)據(jù)被不連續(xù)地更新時(shí),可以執(zhí)行簡單合并。利用簡單 合并,通過將所述日志塊中的有效數(shù)據(jù)(即,所接收的更新數(shù)據(jù))和對應(yīng)的數(shù)據(jù) 塊中的有效數(shù)據(jù)(即,尚未被更新的數(shù)據(jù))復(fù)制(記錄)到第三塊中,來形成新的 數(shù)據(jù)塊。在完成簡單合并后,丟棄所述數(shù)據(jù)塊(即,它變?yōu)榭刹脸龎K),并且所 述日志塊變換為可擦除塊、或可重用塊。當(dāng)在日志塊中的頁配置與在數(shù)據(jù)塊 中的頁配置不同時(shí),可以執(zhí)行簡單合并。圖6圖解了按照本發(fā)明的某些實(shí)施例的存儲(chǔ)塊的狀態(tài)變換。如圖6中所 示,日志塊可以通過交換合并或者復(fù)制合并而變換為數(shù)據(jù)塊,并且可以通過 簡單合并而變換為可擦除塊或者可重用塊??芍赜脡K可以通過編程操作而變換為日志塊。也如圖6所示,數(shù)據(jù)塊在交換合并、簡單合并或復(fù)制合并后被丟棄,并且,由此變換為可擦除塊??刹脸龎K通過擦除操作而變換為空閑塊。 空閑塊可以通過編程操作而變換為日志塊,或者通過簡單合并而變換為數(shù)據(jù) 塊。為了管理所述數(shù)據(jù)合并過程,快閃存儲(chǔ)器件可以具有相關(guān)聯(lián)的處理器(未 示出)。這個(gè)處理器需要訪問關(guān)于每個(gè)塊的信息。因此,可以維持用于管理在 快閃存儲(chǔ)器件中的每個(gè)存儲(chǔ)區(qū)域的一個(gè)或多個(gè)表。例如,可以維持包括空閑 塊列表的空閑塊管理表,可以維持包括可擦除塊列表的可擦除塊管理表,可 以維持包括日志塊列表的日志塊管理表,并且,可以維持包括數(shù)據(jù)塊列表的 數(shù)據(jù)塊管理表。所述表格中的每個(gè)可以使用諸如陣列、鏈表、隊(duì)列等的數(shù)據(jù)結(jié)構(gòu)而被實(shí)現(xiàn),并且可以例如存儲(chǔ)與每個(gè)相應(yīng)的塊相關(guān)聯(lián)的物理塊編號(PBN) 或者其它標(biāo)記(indicia)。用于管理被丟棄的塊的這樣的數(shù)據(jù)結(jié)構(gòu)在此被稱為垃 圾池。為了按照本發(fā)明的某些實(shí)施例而管理快閃存儲(chǔ)器,可以維持包括可重用 塊列表的可重用塊管理表。所述可重用塊管理表也可以被實(shí)現(xiàn)為例如陣列、 鏈表、隊(duì)列等的數(shù)據(jù)結(jié)構(gòu)??芍赜脡K管理表可以存儲(chǔ)可重用塊的PBN或者其 它標(biāo)記兩者、連同所述塊中的空頁的起始地址。用于管理可重用塊的數(shù)據(jù)結(jié) 構(gòu)在此還被稱為重用池(reuse pool)??梢岳缭诳扉W存儲(chǔ)器件的映射區(qū)域中 存儲(chǔ)所有上述表。圖7是按照本發(fā)明的某些實(shí)施例的、用于在簡單合并后處理日志塊的方 法的流程圖。如圖7中所示,首先執(zhí)行簡單合并(塊110)。在簡單合并后,所 述日志塊變?yōu)椴痪哂杏行?shù)據(jù)的無效日志塊。接著,檢測所述無效日志塊中 的空存儲(chǔ)量(即,從上一次擦除頁起還沒有將數(shù)據(jù)寫入到該頁的"清空的"頁 的數(shù)量)(塊120)。然后,將所檢測的清空的頁的數(shù)量與預(yù)定的基準(zhǔn)值(例如基準(zhǔn)頁計(jì)數(shù))相比較(塊130)。當(dāng)清空的頁的數(shù)量大于基準(zhǔn)頁計(jì)數(shù)時(shí),向重用池 分配無效日志塊、連同指定第一清空的頁的地址的"清空的頁起始地址"(塊 140)??梢允褂帽恢糜谥赜贸刂械目芍赜脡K作為日志塊,而不首先對其執(zhí)行 擦除操作。當(dāng)清空的頁的數(shù)量小于或等于基準(zhǔn)頁計(jì)數(shù)時(shí),向垃圾池分配所述無效曰 志塊(塊150)。圖8是圖解按照本發(fā)明的某些實(shí)施例的、在執(zhí)行簡單合并操作后的多個(gè) 示例日志塊的狀態(tài)的示意圖。如圖8中所示,對多個(gè)日志塊進(jìn)行簡單合并操 作。 一些日志塊包括相對大的數(shù)據(jù)量,而其它日志塊僅包括相對小的數(shù)據(jù)量。 使用傳統(tǒng)的快閃存儲(chǔ)器件存儲(chǔ)管理技術(shù),所有日志塊將被丟棄并分配到垃圾 池,而不論在每個(gè)日志塊中的被編程數(shù)據(jù)的數(shù)量如何。但是,按照本發(fā)明的某些實(shí)施例,取決于被編程到每個(gè)日志塊中的數(shù)據(jù) 量,在簡單合并后對所述日志塊進(jìn)行分類。具體地,當(dāng)在包括被編程數(shù)據(jù)的 日志塊中的頁的數(shù)量超過基準(zhǔn)值時(shí),所述日志塊被分配到垃圾池。當(dāng)在包括 被編程的數(shù)據(jù)的日志塊中的頁的數(shù)量小于或等于基準(zhǔn)值時(shí),相反,所述曰志 塊被分配到重用池。再次參照圖8,分別具有4、 20、 11和13的PBN的日志塊被分配到垃 圾池,分別具有10、 1、 2和5的PBN的日志塊被分配到重用池,在圖8中, 標(biāo)記<12>、 <10>、 <4>和<12>表示在對應(yīng)的塊中的清空的頁的起始地址。在 這個(gè)示例實(shí)施例中,基準(zhǔn)值被設(shè)置為塊中的頁的總數(shù)的50%(即1/2)。但是, 所述基準(zhǔn)值可以被設(shè)置為其它值。圖9圖解了按照本發(fā)明的某些實(shí)施例的可重用塊管理表。當(dāng)向重用池分 配日志塊時(shí),所述日志塊的PBN和所述日志塊中的第一清空的頁的起始地址 (即,清空的頁起始編號)被一起記錄到可重用塊管理表中。圖10是圖解按照本發(fā)明的某些實(shí)施例的分配新的日志塊的方法的流程 圖。如圖IO中所示,接收到對于記錄或更新在快閃存儲(chǔ)器中存儲(chǔ)的數(shù)據(jù)的請 求(塊200)。響應(yīng)于此請求,確定是否需要新的日志塊用于記錄數(shù)據(jù)(塊210)。 如果不需要新的日志塊,則操作返回到塊200,其中,最終接收到記錄數(shù)據(jù)
的另一個(gè)請求。相反,如果確定需要新的日志塊,則隨后確定是否需要其中尚未寫入數(shù)據(jù)的空塊(即,空閑塊)(塊220)。如果需要空塊,則接著確定當(dāng)前 是否可以獲得空閑塊(塊230)。若如此,則將空閑塊分配為其中要記錄更新數(shù) 據(jù)的新的日志塊(塊260)。相反,如果不可獲得空閑塊,則從垃圾池逸4奪塊(塊 240),然后擦除所選塊以創(chuàng)建空閑塊(塊250),然后將其分配為日志塊(塊260)。 如果對記錄數(shù)據(jù)的請求指定對應(yīng)于塊的第一頁的地址,則通常需要在圖 10的判定塊220獲得空塊。但是,在其它情況下,不需要空塊。在這種情況 下,圖10的方法從判定塊220前進(jìn)到判定塊270,其中,確定在重用池中是 否存在至少一個(gè)可重用塊。若如此,則從重用池選擇可重用塊(塊280),并且 將所選擇的塊作為日志塊而重用(塊290)。所述日志塊具有相關(guān)聯(lián)的清空的頁 起始地址(或者清空的頁起始編號),并且,在對應(yīng)于所述清空的頁開始編號的 清空的頁開始寫入數(shù)據(jù)。于快閃存儲(chǔ)器的器件。所述基于快閃存儲(chǔ)器的器件包括至少一個(gè)快閃存儲(chǔ)器 和用于管理所述快閃存儲(chǔ)器的處理器,并且可以例如是智能卡或SD(安全數(shù)讀存儲(chǔ)器(ROM)。為了說明清楚起見,在所述基于快閃存儲(chǔ)器的器件中,用 于存儲(chǔ)程序的所述存儲(chǔ)器被稱為第一存儲(chǔ)器,并且所述快閃存儲(chǔ)器被稱為第 二存儲(chǔ)器。按照本發(fā)明的某些實(shí)施例的用于管理快閃存儲(chǔ)器的上述方法可以被實(shí)現(xiàn) 為在第一存儲(chǔ)器中存儲(chǔ)的運(yùn)行在所述處理器上的程序。所述處理器可以通過 執(zhí)行在第 一存儲(chǔ)器中存儲(chǔ)的所述程序來管理所述第二存儲(chǔ)器。序,并且被存儲(chǔ)在記錄介質(zhì)中。按照本發(fā)明的某些實(shí)施例,在由于合并操作而變?yōu)闊o效的日志塊中,不 擦除具有超過清空的頁的預(yù)定百分比的日志塊,而是將其用作新的日志塊, 以便降低所述器件的擦除計(jì)數(shù)。結(jié)果,可以延長具有有限的編程/擦除計(jì)數(shù)的 快閃存儲(chǔ)器的壽命。另外,新的日志塊可以從重用池選擇,并且可被立即使 用,而不執(zhí)行擦除操作。因此,不需要用于擦除的時(shí)間,并且,因此,可以 改善性能。當(dāng)所記錄的數(shù)據(jù)的模式的隨機(jī)性增大時(shí),可以提高具有顯著數(shù)量 的未使用空間的日志塊的簡單合并的頻率。當(dāng)簡單合并的頻率較高時(shí),當(dāng)塊 大小較大時(shí),并且/或者當(dāng)未使用的日志和空閑塊的數(shù)量較小時(shí),本發(fā)明可能 特別有效。已經(jīng)在此通過參照按照本發(fā)明的實(shí)施例的方法、器件和/或者計(jì)算機(jī)程序 產(chǎn)品的框圖和/或流程示,來描述了本發(fā)明。應(yīng)理解,可以通過計(jì)算機(jī)程 序指令來實(shí)現(xiàn)框圖和/或流程示中的塊、以及框圖和/或者流程示中的塊的組合。這些計(jì)算機(jī)程序指令可以被提供到處理器或者其它可編程的數(shù)據(jù)處理裝置,以產(chǎn)生機(jī)器(machine),以便經(jīng)由處理器或者其它可編程數(shù)據(jù)處理 裝置而執(zhí)行的指令創(chuàng)建用于實(shí)現(xiàn)在所述框圖和/或者流程圖的一個(gè)或多個(gè)塊 中指定的功能/操作的手段(功能)和/或結(jié)構(gòu)。這些計(jì)算機(jī)程序指令可以被存儲(chǔ)在計(jì)算機(jī)可讀存儲(chǔ)器中,所述計(jì)算機(jī)可 讀存儲(chǔ)器可以引導(dǎo)計(jì)算機(jī)或者其它可編程數(shù)據(jù)處理裝置來以特定方式工作, 以便在計(jì)算機(jī)可讀存儲(chǔ)器中存儲(chǔ)的指令產(chǎn)生包括實(shí)現(xiàn)在所述框圖和/或流程 圖塊中指定的功能/操作的指令的制造產(chǎn)品。所述計(jì)算機(jī)程序指令也可以被安 裝到處理器或者其它可編程的數(shù)據(jù)處理裝置中,以執(zhí)行一系列操作步驟來產(chǎn) 生計(jì)算機(jī)實(shí)現(xiàn)的處理,以便在所述處理器或者其它可編程裝置上執(zhí)行的指令 提供用于實(shí)現(xiàn)在所述框圖和/或者流程圖塊中指定的功能/操作的步驟。件、微碼等)。而且,本發(fā)明可以采用在計(jì)算機(jī)可用或者計(jì)算機(jī)可讀存儲(chǔ)介質(zhì) 上的計(jì)算機(jī)程序產(chǎn)品的形式,所述計(jì)算機(jī)可用或者計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)使得 計(jì)算機(jī)可用或者計(jì)算機(jī)可讀程序代碼被包含在所述介質(zhì)中,以由指令執(zhí)行系 統(tǒng)或者結(jié)合指令執(zhí)行系統(tǒng)而使用。也應(yīng)當(dāng)注意,在某些替代實(shí)現(xiàn)方式中,在所述塊中所述的功能/行為可以 不按在流程圖所述的順序發(fā)生。例如,根據(jù)所涉及的功能/操作,可以實(shí)際上 基本上同時(shí)執(zhí)行連續(xù)地示出的兩個(gè)塊,或者可以有時(shí)以逆序執(zhí)行所述塊。而 且,所述流程圖和/或框圖的給定塊的功能可以被分離為多個(gè)塊,并且/或者, 可以至少部分地整合所述流程圖和/或框圖的兩個(gè)或者多個(gè)塊的功能。雖然已經(jīng)參照本發(fā)明的示例實(shí)施例而示出和說明了本發(fā)明,但是本領(lǐng)域 內(nèi)的普通技術(shù)人員將理解,在不背離由所附權(quán)利要求限定的本發(fā)明的精神和 范圍的情況下,可以進(jìn)行形式和細(xì)節(jié)上的各種改變。
權(quán)利要求
1.一種用于操作非易失性存儲(chǔ)器件的方法,所述非易失性存儲(chǔ)器件包括存儲(chǔ)第一數(shù)據(jù)的第一數(shù)據(jù)塊、以及存儲(chǔ)第一數(shù)據(jù)中的至少一些的更新版本的第一日志塊,所述方法包括將在第一數(shù)據(jù)塊中的第一數(shù)據(jù)的有效部分復(fù)制到不具有數(shù)據(jù)的空閑塊,以產(chǎn)生第二數(shù)據(jù)塊;將第一數(shù)據(jù)中的至少一些的更新版本從第一日志塊復(fù)制到第二數(shù)據(jù)塊;并且響應(yīng)于至少一個(gè)預(yù)定條件被滿足,將所述第一日志塊指定為可重用日志塊,而不從其擦除數(shù)據(jù)。
2. 按照權(quán)利要求l的方法,其中,響應(yīng)于至少一個(gè)預(yù)定條件被滿足、將 所述第一日志塊指定為可重用日志塊而不從其擦除數(shù)據(jù)的步驟包括確定在第一日志塊中的清空的存儲(chǔ)量; 將所確定的清空的存儲(chǔ)量與預(yù)定的基準(zhǔn)值相比較;以及 基于所確定的在第一日志塊中的清空的存儲(chǔ)器的數(shù)量超過所述預(yù)定基準(zhǔn) 值,指定第一日志塊為可重用日志塊,而不從其擦除數(shù)據(jù)。
3. 按照權(quán)利要求2的方法,其中,所述非易失性存儲(chǔ)器件是快閃存儲(chǔ)器件。
4. 按照權(quán)利要求3的方法,其中,清空的存儲(chǔ)量是在第一日志塊中的清 空的頁的數(shù)量,并且,其中,指定第一日志塊為可重用日志塊而不從其擦除 數(shù)據(jù)的步驟包括在重用池表中記錄第一日志塊的標(biāo)識符、以及與第一曰志 塊相關(guān)聯(lián)的清空的頁起始地址。
5. 按照權(quán)利要求4的方法,其中,第一日志塊的標(biāo)識符包括第一日志塊 的物理塊編號。
6. 按照權(quán)利要求4的方法,還包括將在第二數(shù)據(jù)塊中存儲(chǔ)的第二數(shù)據(jù) 中的至少一些的更新版本記錄到可重用日志塊中,而不從所述可重用日志塊 擦除第一數(shù)據(jù)。
7. 按照權(quán)利要求6的方法,其中,將在第二數(shù)據(jù)塊中存儲(chǔ)的第二數(shù)據(jù)中 的至少一些的更新版本記錄到可重用日志塊中而不從所述可重用日志塊擦除 第一數(shù)據(jù)的步驟包括接收所述第二數(shù)據(jù)中的至少 一些的更新版本;確定所述第二數(shù)據(jù)中的至少一些的更新版本要被存儲(chǔ)在新的日志塊中; 確定所述新的日志塊不需要是空閑存儲(chǔ)塊; 選擇所述可重用日志塊作為所述新的日志塊;以及 將在所述第二數(shù)據(jù)塊中存儲(chǔ)的第二數(shù)據(jù)中的至少 一些的更新版本記錄到 所述可重用日志塊中。
8. 按照權(quán)利要求2的方法,其中,所述預(yù)定的基準(zhǔn)值是在所述第一曰志 塊中的頁的總數(shù)的大約1/2。
9. 一種記錄介質(zhì),用于記錄用于執(zhí)行權(quán)利要求1的方法的程序。
10. —種非易失性存儲(chǔ)器件,包括 第一存儲(chǔ)器,其中存儲(chǔ)了程序;第二存儲(chǔ)器,其包括數(shù)據(jù)塊、以及其中記錄了用于更新所述數(shù)據(jù)塊的數(shù) 據(jù)的日志塊;以及處理器,其被配置為執(zhí)行所述程序,以管理所述第二存儲(chǔ)器,其中,所述處理器可以被配置為將在第一數(shù)據(jù)塊中的有效數(shù)據(jù)和在對 應(yīng)于所述第 一 數(shù)據(jù)塊的第 一 日志塊中的有效數(shù)據(jù)復(fù)制到不具有數(shù)據(jù)的空閑 塊,以產(chǎn)生第二數(shù)據(jù)塊,并且其中,所述處理器被進(jìn)一步配置為基于預(yù)定條件,在從所述第一日志 塊擦除數(shù)據(jù)后將所述第一日志塊分配為空閑塊,或者將所述第一日志塊分配 為第二日志塊,而不從所述第一日志塊擦除數(shù)據(jù)。
11. 按照權(quán)利要求IO的基于存儲(chǔ)器的器件,其中,所述第一存儲(chǔ)器是只 讀存儲(chǔ)器,而所述第二存儲(chǔ)器是快閃存儲(chǔ)器。
12. —種操作非易失性存儲(chǔ)器件的方法,所述方法包括 將第一數(shù)據(jù)記錄到所述非易失性存儲(chǔ)器件的第一存儲(chǔ)塊中,其中,第一存儲(chǔ)塊包含被擦除的頁、以及包含不再有效的先前記錄的第二數(shù)據(jù)的頁兩 者。
13. 按照權(quán)利要求12的方法,所述方法還包括在將數(shù)據(jù)記錄到第 一存儲(chǔ)塊中之前,響應(yīng)于確定在第 一存儲(chǔ)塊中的被擦 除頁的數(shù)量超過基準(zhǔn)值,而將所述第一存儲(chǔ)塊指定為可重用存儲(chǔ)塊。
14. 按照權(quán)利要求13的方法,所述方法還包括存儲(chǔ)所述第一存儲(chǔ)塊的 第 一地址,其指定所述第 一存儲(chǔ)塊的被擦除頁集合中的第 一個(gè)。
15. 按照權(quán)利要求14的方法,其中,將第一數(shù)據(jù)記錄到第一存儲(chǔ)塊中包 括從所述被擦除頁集合中的第一個(gè)開始,將第一數(shù)據(jù)記錄到在第一存儲(chǔ)塊 中的被擦除頁中的至少 一 些中。
16. 按照權(quán)利要求14的方法,其中,響應(yīng)于確定在第一存儲(chǔ)塊中的被擦 除的頁的數(shù)量超過基準(zhǔn)值,而存儲(chǔ)第一存儲(chǔ)塊的第一地址,并且,其中,將 第 一地址連同第一存儲(chǔ)塊的標(biāo)記一起存儲(chǔ)在可重用塊管理數(shù)據(jù)結(jié)構(gòu)中。
17. 按照權(quán)利要求12的方法,其中,所述第一存儲(chǔ)塊是日志塊,其中, 所述第一數(shù)據(jù)與第一數(shù)據(jù)塊相關(guān)聯(lián),并且,其中,所述第二數(shù)據(jù)與第二數(shù)據(jù) 塊相關(guān)聯(lián)。
18. —種操作非易失性存儲(chǔ)器件的方法,所述方法包括 通過將第一數(shù)據(jù)和第二數(shù)據(jù)記錄到所述非易失性存儲(chǔ)器件的第二數(shù)據(jù)塊中,將在所述非易失性存儲(chǔ)器件的第一日志塊中存儲(chǔ)的所述第一數(shù)據(jù)與在所 述非易失性存儲(chǔ)器件的第 一數(shù)據(jù)塊中存儲(chǔ)的所述第二數(shù)據(jù)合并;確定在第一日志塊中的清空的頁的數(shù)量;以及確定清空的頁的數(shù)量是否超過基準(zhǔn)值。
19. 按照權(quán)利要求18的方法,所述方法還包括如果清空的頁的數(shù)量超 過所述基準(zhǔn)值,則向可重用日志塊池分配第一日志塊。
20. 按照權(quán)利要求18的方法,所述方法還包括如果清空的頁的數(shù)量小 于或等于所述基準(zhǔn)值,則向可擦除日志塊池分配第一日志塊。
21. 按照權(quán)利要求18的方法,所述方法還包括向在非易失性存儲(chǔ)器件 中存儲(chǔ)的可重用塊管理數(shù)據(jù)結(jié)構(gòu)添加第一日志塊的標(biāo)記、連同清空的頁中的 第一個(gè)的地址。
22. 按照權(quán)利要求18的方法,其中,第二數(shù)據(jù)包括也被存儲(chǔ)在第一日志 塊中的第三數(shù)據(jù)的更新版本。
23. —種非易失性存儲(chǔ)器件,包括存儲(chǔ)單元區(qū),其被劃分為包括日志塊區(qū)域、數(shù)據(jù)塊區(qū)域、可擦除塊區(qū)域、 空閑塊區(qū)域和可重用塊區(qū)域的多個(gè)邏輯區(qū)域;和 處理器,其中,所述數(shù)據(jù)塊區(qū)域包括存儲(chǔ)被輸入到所述非易失性存儲(chǔ)器件中的數(shù) 據(jù)的多個(gè)數(shù)據(jù)塊,所述日志塊區(qū)域包括存儲(chǔ)在數(shù)據(jù)塊區(qū)域中存儲(chǔ)的數(shù)據(jù)的更 新的多個(gè)日志塊,所述可擦除塊區(qū)域包括正在等待擦除的多個(gè)可擦除塊,所 述空閑塊區(qū)域包括多個(gè)被擦除的存儲(chǔ)塊,并且,所述可重用塊區(qū)域包括至少 第 一 日志塊,其在作為合并操作的 一部分的所述第 一 日志塊中的更新數(shù)據(jù)被 記錄到另 一個(gè)塊中之后被分配到可重用塊區(qū)域,而不經(jīng)受擦除操作。
24. 按照權(quán)利要求23的非易失性存儲(chǔ)器件,其中,所述存儲(chǔ)單元區(qū)還包 括映射區(qū)域,并且,其中,在映射區(qū)域中存儲(chǔ)可重用塊管理數(shù)據(jù)結(jié)構(gòu)。
25. 按照權(quán)利要求24的非易失性存儲(chǔ)器件,其中,所述可重用塊管理數(shù) 據(jù)結(jié)構(gòu)包括每個(gè)可以獲得的可重用塊的條目,其包括可重用塊的標(biāo)記、連同 所述可重用塊的第一個(gè)清空的頁。
全文摘要
本發(fā)明提供了操作非易失性存儲(chǔ)器件的方法,所述非易失性存儲(chǔ)器件包括用于存儲(chǔ)第一數(shù)據(jù)的第一數(shù)據(jù)塊和用于存儲(chǔ)第一數(shù)據(jù)中的至少一些的更新版本的第一日志塊,其中,將在第一數(shù)據(jù)塊中的第一數(shù)據(jù)的有效部分復(fù)制到不具有數(shù)據(jù)的空閑塊,以產(chǎn)生第二數(shù)據(jù)塊。將所述第一數(shù)據(jù)中的至少一些的更新版本從第一日志塊復(fù)制到第二數(shù)據(jù)塊。響應(yīng)于至少一個(gè)預(yù)定條件被滿足,將所述第一日志塊指定為可重用日志塊,而不從其擦除數(shù)據(jù)。
文檔編號G06F12/02GK101165660SQ200710006118
公開日2008年4月23日 申請日期2007年1月31日 優(yōu)先權(quán)日2006年10月19日
發(fā)明者任廷彬, 金慧英 申請人:三星電子株式會(huì)社