TWI376600B - Memory systems and method for phased garbage collection using phased garbage collection block or scratch pad block as a buffer - Google Patents

Memory systems and method for phased garbage collection using phased garbage collection block or scratch pad block as a buffer Download PDF

Info

Publication number
TWI376600B
TWI376600B TW96134738A TW96134738A TWI376600B TW I376600 B TWI376600 B TW I376600B TW 96134738 A TW96134738 A TW 96134738A TW 96134738 A TW96134738 A TW 96134738A TW I376600 B TWI376600 B TW I376600B
Authority
TW
Taiwan
Prior art keywords
block
garbage collection
data
write command
volatile memory
Prior art date
Application number
TW96134738A
Other languages
English (en)
Other versions
TW200821829A (en
Inventor
Shai Traister
Jason Lin
Original Assignee
Sandisk Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US11/541,035 external-priority patent/US7444462B2/en
Priority claimed from US11/541,012 external-priority patent/US7441071B2/en
Application filed by Sandisk Corp filed Critical Sandisk Corp
Publication of TW200821829A publication Critical patent/TW200821829A/zh
Application granted granted Critical
Publication of TWI376600B publication Critical patent/TWI376600B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • G06F12/0269Incremental or concurrent garbage collection, e.g. in real-time systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control

Description

1376600 九、發明說明: 【發明所屬之技術領域】 本發明一般係關於記憶體操作,且更特定言之,係關於 用以執行階段性垃圾收集操作之方法及系統。 【先前技術】 在非揮發性記憶體儲存系統中,對儲存在記憶體中的資 料之區塊進行週期性垃圾收集(即,壓縮或合併)以回收記 憶體的儲存容量。在一典型垃圾收集操作中將有效資料 從一區塊複製到另一區塊。在傳輸有效資料之後,抹除原 始區塊以提供儲存容量。目前,寫入操作可以觸發非揮發 性記憶體儲存系統以執行垃圾收集操作。主機在得到觸發 情況下允許將固定時間數量用於寫入操作的執行,該寫入 操作包含⑽㈣操作i如,安全數位協定將時間數量 限制為250毫秒。若非揮發性記憶體儲存系統在寫入操作 中超過此固定時間數量,則可能產生逾時錯誤。 記憶體區邋之大小由於增加的容量、較高平行度以及晶 粒大小縮放比例而一直在增加。因此’寫入操作的執行因 傳輸較多資料而花費較長時間。垃圾收集操作因此可以輕 易地超過分配給寫入操作的固定時間數量。因此,當用以 執行垃圾收集操作的時間之數量超過固定時間數 預防逾時錯誤❶ ·要 【發明内容】 本發明之各種具體實施例提供用於階段性垃坡收集操作 的方法及/或系統。應該明白,可採用許多方式來實施該 124728.doc 等具體實施例,包含一方法、一電路、一系統或一裝置。 以下說明本發明之若干具體實施例。 在一具體實施例中,提供一種用於階段性垃圾收集之方 法。採用此方法,接收一寫入命令以寫入資料。該寫入命 令得以分配一逾時週期以完成該寫入命令的執行。然後, 宣告一忙碌信號並且在一垃圾收集時間週期内執行垃圾收 集操作之一部分。將資料寫入一區塊並且在該逾時週期前 解除該忙碌信號。 從結合藉由範例說明本發明原理之附圖進行的下列詳細 說明可明白本發明之其他具體實施例及優點。 【實施方式】 以下連同附圖提供一或多個具體實施例之詳細說明。該 詳細說明結合此類具體實施例加以提供,但並不限於任何 特定具體實施例。範疇僅受申請專利範圍限制且涵蓋許多 替代性具體實施例、修改及等效物。以下說明中提出許多 特定細節以便提供對本發明的充分瞭解。基於範例之目的 來提供此等細節並且可依據申請專利範圍而無需此等特定 細節之某些或全部來實施說明的具體實施例。基於清楚之 目的’未詳細說明與該等具體實施例相關之技術領域中已 知的技術材料以避免不必要地使該說明模糊不清。 本文說明的具體實施例提供用於階段性垃圾收集之方法 及/或系統。一般而言,可將垃圾收集操作分成多個階 段。可以在多個逾時週期内執行垃圾收集操作之階段(或 部分)。如以下更詳細地說明,在一個逾時週期内執行垃 124728.doc 1376600 圾收集操作之一部分而且可將從寫入命令接收的資料儲存 在一階段性垃圾收集區塊或一暫存區塊中。 圖1係依據本發明之一具體實施例的一非揮發性記憶體 儲存系統之一範例的簡化方塊圖。一主機系統(例如,桌 上型電腦、聲訊播放器、數位相機以及其他計算裝置)可 將資料寫入非揮發性記憶體儲存系統ι〇2並從該系統讀取 資料。非揮發性記憶體儲存系統1〇2可加以嵌入在該主機 内或採用可移除方式與該主機連接。如圖丨所示,非揮發 性s己憶體儲存系統丨〇2包含與記憶體丨丨8通信的記憶體控制 器110。一般而言’記憶體控制器110控制記憶體118之操 作。操作之範例包含寫入(或程式化)資料、讀取資料、抹 除資料、確認資料、專注於垃圾收集操作以及其他操作。 記憶體控制器11 〇包含匯流排124 ’其透過主機介面! 〇4與 系統匯流排1 26介接並且該記憶體控制器透過記憶體介面 108與記憶體118介接。主機介面丨〇4、處理器丨〇6 (例如, 微處理器、微控制器以及其他處理器)、記憶體介面1〇8、 隨機存取記憶體(RAM) 112、錯誤校正碼(ECC)電路114以 及唯讀記憶體(ROM) 116經由匯流排124進行通信。 116可以儲存一儲存系統韌體’其包含用以控制記憶體丨丄8 之操作的程式指令。處理器106經組態用以執行從r〇m 116載入的程式指令❶該儲存系統韌體可加以臨時載入 RAM 112 ’且此外RAM可用以緩衝在一主機與記憶體丨丄8 之間傳輸的資料。ECC電路114可以檢查在該主機與記憶 體Π8之間穿過記憶體控制器11〇的錯誤。若發現錯誤,則 124728.doc 1376600 ECC電路114可以校正若干錯誤位元,其數目取決於所利 用的ECC演算法。 記憶體118可以包含陣列邏輯12〇、非揮發性記憶體單元 . 陣列122以及記憶體單元陣列非揮發性記憶體單元陣 Μ122可包含各種非揮發性記憶體結構及技術。非揮發性 . 記憶體技術之範例包含快閃記憶體(❹,nand、nor、 、 單一位準單元(SLC/_)、多位準單元(MLC)、分割位元 線NOR (DINOR)、and、高電容賴合比率(HiCR)、不對稱 無接觸電晶體(ACT)以及其他快閃記憶體)、可抹除可程式 化唯讀記憶體(EPROM)、電可抹除可程式化唯讀記憶體 (ROM)、唯讀記憶體⑽M)、—次性可程式化記憶體 (OTP)以及其他記憶體技術。 在具體實施例中’ 5己憶體i i 8可另外包含記憶體單元 陣列⑵,其經組態用以儲存一緩衝器。該緩衝器經組態 用以在階段性垃圾收集操作中儲存資料。如以下更詳細地 • m明’在階段性垃圾收集操作中,可以將從寫入命令接收 的新資料儲存在該緩衝器中。應該明白,依據本發明之具 體實施例,亦可將該緩衝器定位在RAM 112或非揮發性記 隐體單7C P車列122中。類似於非揮發性記憶體單元陣列 • 122,記憶體單元陣列123可包含各種記憶體結構及技術。 因為記憶體單元陣列123經組態用以緩衝操作所以該記 憶體單元陣列可併入不同記憶體結構或使用不同參數,其 比非揮發性記憶體陣列122快、經濟且可靠β 陣列邏輯120採用非揮發性記憶體單元陣列ΐ22及記憶體 124728.doc 1376600 早元陣列123與記憶體控制器110介接並且可以提供(例如) 對該非揮發性記憶體單元陣列及該記憶體單元陣列的定 址、資料傳输及感測以及其他支援。為支援非揮發性記憶 體單元陣列122及記憶體單元陣列123,陣列邏輯12〇可以 包含列解碼器、行解碼器、充電泵、字線電壓產生器頁 面緩衝器、輸入/輸出緩衝器、位址緩衝器以及其他電 路。 圖2係該記憶體單元陣列在平面中的組織之簡化方塊 圖。一或多個記憶體單元陣列可加以分成多個平面或子陣 列。在圖2之範例中,一記憶體單元陣列係分成四個平面 202至205。應該明白,其他數目的平面(例如1、2、8、16 或更多個平面)可存在於一非揮發性記憶體儲存系統中。 每一個平面202、203、2〇4或205均可加以分成定位在個別 平面202至205中的記憶體单元之區塊,例如區塊21〇至213 以及220至223。記憶體單元之一區塊係可在一起實體抹除 的δ己憶體單元之最小數目。為獲得增加的平行度,該等區 塊可在較大元區塊單位中操作,在該等單位中自每一個平 面202、203、204或205的一個區塊係採用邏輯方式連結在 一起以形成一元區塊。例如’四個區塊21〇至213可採用邏 輯方式鍵結在一起以形成一元區塊。此外,用以形成一元 區塊的該等區塊可以來自其個別平面(例如平面202至205) 内的各位置。例如,自其個別平面202至205内的各位置之 四個區塊220至223可採用邏輯方式加以連結在一起以形成 另一元區塊。一元區塊可以橫跨該非揮發性記憶體儲存系 124728.doc -10- 1376600 統内的所有四個邏輯平面202至205而延伸或該非揮發性記 憶體儲存系統可以採用一或多個不同平面中的一或多個區 塊動態地形成元區塊。 圖3係記憶體單元之頁面的簡化方塊圖。每一個區塊(例 如區塊210至213)係進一步分成記憶體單元之頁面。如圖3 所示,每一個區塊210、211、2 12或2 13係分成八個頁面P0 至P7。或者,在每一個區塊21〇、211、212或213内可以存 在記憶體單元之16、32或更多個頁面。為增加該非揮發性 §己憶體儲存系統之操作平行度,二或更多個區塊内的頁面 可採用邏輯方式加以連結成元頁。例如,可採用自四個區 塊2 10至2 13之每一個的一頁面(例如ρι)形成一元頁。一元 頁可以橫跨該非揮發性記憶體儲存系統内的所有平面而延 伸或該非揮發性s己憶體儲存系統可以採用一或多個不同平 面之一或多個分離區塊中的一或多個頁面來動態地形成元 頁。 圖4係記憶體單元之區段的簡化方塊圖。一頁面可進一 步加以为成一或多個區段。每一個頁面中的資料之數量可 以係資料之一或多個區段的整數,其中每一個區段可儲存 512個資料位元組ά圖4顯示分成二個區段4〇2及4〇4之頁面 401。每一個區段4〇2或4〇4包含可以係Η]個位元組大小的 資料406,以及與該資料相關聯的管理資料4〇5。管理資料 4〇5之大小可以係16個位元組並且可以儲存(例如)在程式化 期間採用資料406計算的ECC、與該資料相關聯的邏輯位 址、已抹除並重新程式化該區塊的次數之計數、控制旗 124728.doc 1376600 標、操作電壓位準、以及與該資料相關聯的其他資訊。 圖5係一主機與非揮發性記憶體儲存系統之間之一邏輯 介面的簡化方塊圖。一連續邏輯位址空間512提供用於可 . Μ儲存在記憶體中的資料之位址》如由該主機所觀察的 . 冑輯位址空間512可加以分成資料叢集之增量。每一個叢 . 集可包含資料的若干區段,例如在4與64個區段之間。 . 如圖5所示,在該主機上執行的應用程式建立三個資料 φ "^案1 2或3°標案卜2或3可以係有序資料集且由獨特名 稱或其他參考加以識別。該主機指派尚未分配給其他標案 =一邏輯位址空間給檔案丨。此處,檔案丨係顯示為已得^ 指派一連續範圍的可用邏輯位址。 當主機在建立槽案i後建立槽案2時,該主機同樣地指派 邏輯位址空間512内二個不同範圍的連續位址。主機可以 不指派連續邏輯位址給一檔案(例如檔案丨、2或3),而可以 相反地指派已經分配給其他檔案的邏輯位址範圍之間的邏 φ 輯位址之片斷。圖5之範例顯示,另一標案3得以分配邏輯 位址空間512内的非連續位址範圍,其先前未分配給檔案1 及2以及其他資料。 . 該主機可以藉由維持檔案分配表(FAT)來追蹤邏輯位址 二間5 12,其中維持藉由轉換由該主機指派給各資料檔案 (例如檔案1至3)的邏輯位址。在該非揮發性記憶體儲存系 統儲存檔案I至3的情況下,該主機藉由該等檔案的邏輯位 址而非藉由實體位置來參考該等檔案。另一方面,該非揮 發性記憶體鍺存系統藉由已將資料寫入其中的邏輯位址之 124728.doc 1376600 部刀來參考檔案1至3而不藉由分配給該等檔案的邏輯位址 來參考該等樓案。該非揮發性記憶體儲存系統將由該主機 提供的邏輯位址轉換成記憶體單元陣列5〇2内的獨特實體 - 位址,在該陣列令儲存自該主機的資料。區塊504表示此 等邏輯至實體位址轉換之一表格,其係由該非揮發性記憶 • 體儲存系統所維持。 . 圖6係依據本發明之一具體實施例用於階段性垃圾收集 φ 的操作之一般概述的流程圖。應該明白,儲存在特定主機 邏輯位址中的資料可由新資料加以重寫,因為原始儲存資 料會變為廢棄。作為回應,該非揮發性記憶體儲存系統在 一更新區塊_寫入新資料,並接著針對該等邏輯位址來改 變邏輯至實體位址表格以識別其中儲存新資料的新實體區 塊接著抹除包含該等邏輯位址中的原始資料之該等區塊 並使其可用於儲存額外資料。此類抹除可以在寫入操作之 前發生。目此,該記憶體控制器獲悉、,在將新資料寫入同 • 一邏輯位址之後’該主機已致使一給定邏輯位址中的資料 廢棄或無效。記憶體之許多區塊因此可以在—時間週期内 儲存無效資料。 • 區塊及元區塊之大小在增加而且此點導致-較大比例的 ' ㈤別資料寫人儲存少於—元區塊之儲存容量並且在許多情 $兄下甚至少於一區塊之儲存容量的資料數量。因為該非揮 發性記憶體储存系統可以將新資料引導 塊以此類弓丨導可以導致區塊或元區塊之部== 充若新資枓係儲存在另一元區塊中的某些資料之更新, 124728.doc -13· 則亦需要以邏輯位址順序將自具有鄰近於新資料元頁之邏 輯位址的邏輯位址之另一元區塊的剩餘有效資料元頁複製 於新元區塊中。舊元區塊可保持其他有效資料元頁。因 此,可以致使一個別元區塊之某些元頁的資料廢棄或無 效,並由具有寫入一不同元區塊之同一邏輯位址的新資料 來取代該資料。 為維持足夠實體記憶體空間以在邏輯位址空間内健存資 料’可以對此類資料進行週期性垃圾收集(即,壓縮或合 併)。一般而言,垃圾收集操作涉及從一區塊讀取有效資 料並將有效資料寫入一新區塊,從而在程序中忽略無效資 料。例如,在圖5之方塊圖中’新資料檔案3的建立使得舊 資料檔案3廢棄。舊資料檔案3可加以抹除以回收由舊資料 檔案3使用的.實體容量。然而,在將檔案2及舊擋案3儲存 在同一實體區塊的情況下,此類抹除操作將觸發垃圾收集 操作。 〃 返回至圖6,該非揮發性記憶體儲存系統可在分配給一 寫入命令的逾時週期内執行垃圾收集操作。若無法在一個 逾時週期内完成垃圾收集操作,則可依據本發明之一具體 實施例將一次垃圾收集操作成分若干不同階段(或部分)。 此處該非揮發性s己憶體儲存系統使用分配給多個寫入命 令的逾時週期來執行垃圾收集操作之部分。換言之,該非 揮發性記憶體儲存系統利用分配給多個寫入命令的逾時週 期來執行一次垃圾收集操作之部分。 如圖6所示,在操作6〇2中接收用以寫入新資料的寫入命 124728.doc •14· 1376600 令。本文中所用的術語"新資料"係定義為由該非揮發性記 憶體儲存系統從欲加以寫入該記憶體之一寫入命令所接收 的資料。該寫入命令得以分配一逾時週期以完成該寫入命 令的執行。換言之,該逾時週期係分配用於執行該寫入命 令的時間週期。分配的逾時週期之一範例係25〇毫秒。該 寫入命令可以係一單一區段寫入命令或一多區段寫入命 令。如以下更詳細地說明,在單一區段寫入命令中,可以 將新資料作為單一區段寫入橫跨一記憶體之隨機位址。在 夕區段寫入命令中,將具有鄰近邏輯位址的新資料之多 個區段寫入該記憶體。 若無法在該逾時週期内完成一次垃圾收集操作,如操作 6〇4所示,則在分配給該寫入命令的逾時週期内執行垃圾 收集操作之-部分4以在後來的逾時週期中完成垃圾收 集操作之剩餘部分。例如,圖7顯示依據本發明之一具體 實施例,分成多個部分780及781的一次垃圾收集操作之一 範例的簡化方塊圖。如圖7所示’一非揮發性記憶體儲存 系統接收多區段寫入命令704,並且隨後接收新資料76〇至 762之多個區段以將其儲存於記憶體中。在接收資料76〇、 761或762之每一個區段之後,宣告忙碌信號7〇2。該非揮 發性記憶體儲存系統宣告忙碌信號7〇2以允許該寫入命令 的執行,該寫入命令可包含垃圾收集操作(若需要),以及 其他操作。當宣告忙碌信號702時,一主機並不發送另一 命令或額外資料至該非揮發性記憶體儲存系統。該非揮發 性記憶體儲存系統可以在接收資料76〇、761或762之每一 124728.doc -15· 個區段在一有限時間數量之後宣告忙綠信號702,因為該 主機允許將有限的固定數量之時間(即,逾時週期750至 752)用於該寫人命令的執行。若該忙碌信號在比逾時週期 750、751或752長的時間内保持活動,則該主機可以重複 該寫入命7或中斷該程序。因此,該非揮發性記憶體儲存 系統無法在超過逾時週期750、751或752的時間内宣告忙 碌仏號702。在完成寫入資料760至762之多個區段之後解 除k碌七號702使得該主機可進一步與該非揮發性記憶體 儲存系統通信。 仍參考圖7,可以在多個逾時週期750至752之間分配垃 圾收集之。p刀780及781。換言之,該非揮發性記憶體儲存 系統可以利用每一個逾時週期75〇、75丨或752以執行一次 垃圾收集操作之每一個部分78〇或781。例如,在第一逾時 週期750期間執行一次垃圾收集操作之第一部分。此 處,可以在第一逾時週期75〇期間將有效資料之一部分從 個區塊複製到另一區塊。在第二逾時週期75 i内,繼續 在第一逾時週期中啟動的先前垃圾收集操作。該非揮發性 記憶體儲存系統在逾時週期751期間執行先前垃圾收集操 作之第一 #分781,直到完成先前垃圾收集由將有效 資料之剩餘部分或最後部分從—個區塊複製到另一區塊, 可以f成切垃圾收m法在第:逾時週期751内完 成先別垃圾㈣操作,則該非揮發性記憶體儲存系統可以 使用隨後的逾時週期(例如第三逾時· 752)來完成垃圾收 集操作在夕區段寫入命令704結束時,該非揮發性記憶 124728.doc 1376600 體儲存系統可以在接收停止命令706之後宣告忙碌信號 7〇2,直至將資料76〇至762之所有區段寫入該記憶體單元 陣列。應該注意,圖7說明與一多區段寫入命令相關聯的 操作。如以下更詳細地說明,所執行的垃圾收集操作對於 單一區段寫入命令及多區段寫入命令而言可以不同。例 如,如以下更詳細地說明,用以儲存新資料的緩衝器之類
型可取決於所接收的寫入命令係單一區段寫入命令還係多 區段寫入命令。 返回至圖6,在一逾時週期内執行垃圾收集操作之一部 分之後,可以在操作606中將從寫入操作接收的新資料儲 存在與„玄非揮發性記憶體錯存系統相關聯的一緩衝器中。 ,-具體實施例中’該缓衝器可以係與該非揮發性記憶體 單元陣歹j (例如’圖1所示的非揮發性記憶體陣列i22)相關 :的資料結構…資料結構之—範例包含非揮發性記憶體 單元陣列之-區塊’例如—階段性垃圾收㈣塊或一暫存 區塊,其將在以下加以更詳細地說明。在另一具體實施例 中,該緩衝器可以係-非#發性記憶體單元陣列之一區 龙例如可以將新資料健存在定位於與該非揮發性記憶 體儲存系統相關聯之RAM (例如,圖!所示的ram ιι2)中 的-區塊中。在另-具體實施例中,如以上所說明可將 新資料儲存在;t位於分離記憶體單元陣列(例如,圖丄所示 的記憶體單元陣列123)中的一區塊中。 使用階段性垃圾收集區塊作為緩衝器 用以使用階段性垃 圖8係依據本發明之一具體實施例, 124728.doc •17- 1376600 圾:集區塊作為緩衝器來執行階段性垃圾收集的詳細操作 之流程®。如® 8所示,在操作802中接收寫入命令以將新 資料寫入記憶體。如以下更詳細地說明,該寫入命令可以 :用X將資料之單一區段寫入記憶體的單—區段寫入命 7。在接收該寫入命令之後,該非揮發性記憶體儲存系統 • 在操作804中宣告一忙碌信號。 •在執行該寫人命令之前’在垃圾收集時間週期内執行垃 φ 圾收集操作之一部分。例如,在一具體實施例中,將一或 多個第一區塊選擇用於垃圾收集操作。該一或多個第一區 塊可以包含無效資料及/或有效資料。如操作806所示,在 =圾收集操作中於垃圾收集時間週期内將有效資料從一或 夕個第一區塊複製到一第二區塊。根據分配給垃圾收集操 作的垃圾收集時間週期以及欲加以複製的有效資料:數 量將所有有效資料或有效資料之一部分複製到該第二區 塊。在-範例中’分配用於垃圾收集操作的垃圾收集時間 ^ 週期可加以表達為 垃圾收集時間週期=逾時週期-2*Tpr〇g (1.〇) /、中如X上說明的逾時週期係固定的有限時間週期。 -了㈣g係與將新資料寫入記憶體相關聯的最大程式化時間 4係該非揮發性記憶體储存系統將新資料寫人記憶體所花 費的最大時間。在等式ιο中,存在二個最大程式化時間 (即’ 2*TprQg)。如以下更詳細地說明,第—最大程式化時 間係歸因於將新資料寫入一第三區塊而且第二最大程式化 時間係歸因於將新資料寫入一暫存區塊。因此,在一具體 124728.doc 1376600 實施例中,該非揮發性記憶 料從一或多個第-區塊複製到=統追縱用以將有效資 塊複製到該第二區境的時間之數量。 該非揮發性記憶體儲存系 前停止複製。㈣統在相超過崎收料間週期 • 若無法藉由垃圾收集時間週期完成垃圾收集操作,則可 以在操作810中將與該寫入命令相關聯的新資料寫入一階 • ㈣垃圾收集區塊。該非揮發性記憶體儲存系統可以在垃 • &收集操作之前、期間或之後將新資料寫入階段性垃圾收 集區塊。階段性垃圾收集區塊具有更新區塊之特徵。一般 而言,可將從寫入命令接收的資料寫入一更新區塊。一專 用70區塊可加以指派為用於在其内更新資料的每一個邏輯 群組之更新區塊。一邏輯群組係具有可等於元區塊之大小 的一大小之邏輯位址群組。應該注意將資料之邏輯區段儲 存在包括一組邏輯鄰近區段的邏輯群組中。如以下更詳細 地說明’可以管理一更新區塊以採用序列順序或減順序 • (即,非序列順序)來接收資料。階段性垃圾收集區塊可以 或可以不與一或多個第一區塊或該第二區塊相關聯。例 如,在一具體實施例中,一或多個第一區塊、該第二區塊 以及階段性垃圾收集區塊經組態成跨越單一邏輯群組或邏 輯位址之單一群組。因此,可以將自單一邏輯群組的資料 儲存在階段性垃圾收集區塊令,但是無法將自不同邏輯群 組的資料储存在階段性垃圾收集區塊中。 在將新資料寫入階段性垃圾收集區塊並且在垃圾收集操 作時間週期内執行垃圾收集操作之後,該非揮發性記憶體 124728.doc •19- 1376600 儲存系統在操作812中於逾時週期前解除該忙碌信號。因 此’用以執行包含-次垃圾收集操作或-次垃圾收集操作 之一部分的寫入命令之總時間並不超過逾時週期。若在逾 時週期内執行垃圾收集操作之―部分則在隨後逾時週期 内完成剩餘部分。當完成垃圾收集操作時,抹除得以垃圾 收集的一或多個第一區塊(或將其標識為廢棄)並且使該等 區塊可用於儲存額外資料。此外,如以下更詳細地說明, 可以將階段性垃圾收集區塊轉換成更新區塊。然後,可分 配取代已轉換成一更新區塊之階段性垃圾收集區塊的另一 新階段性垃敗收集區塊以在階段性垃圾收集操作中儲存自 隨後寫入命令的新資料。 圖9A及9B係依據本發明之具體實施例的記憶體區塊之 簡化方塊圖,其中在階段中對序列更新區塊進行垃圾收 集。如圖9A所示,將原始區塊a 902及相關聯的序列更新 區塊A 904選擇用於垃圾收集。可管理一更新區塊以採用 序列順序或雜亂順序(即,非序列順序)接收資料。應該明 白’一序列更新區塊(例如序列更新區塊A 904)係當從該主 機接收一寫入命令以寫入資料時分配的一元區塊,該資料 填充一邏輯群組中的一或多個實體頁面,為此目前將所有 有效資料定位在同一元區塊中。在邏輯位址中按順序寫入 已寫入該序列更新區塊的資料之區段,以便該等區段替代 在原始區塊中寫入的對應邏輯區段。可將在此邏輯群組中 更新的一區段寫入此序列更新區塊,直至關閉該序列更新 區塊或將其轉換成雜亂更新區塊。應該注意,當寫入該序 124728.doc • 20· 列更新區塊之最後實體區段位置時,將該序列更新區塊視 為關閉。換言之,該序列更新區塊之關閉可由該序列更新 區塊係由藉由該主機寫入或從原始區塊複製的已更新區段 資料所完全填充而產生。如以下更詳細地說明,當由一主 機寫入的資料之一區段係在邏輯上與所更新之邏輯群組内 的資料之先前寫入區段非序列時,可藉由轉換採用序列更 新區塊來建立雜亂更新區塊。 原始區塊A 902可以包含無效及有效資料,其係在 中分別藉由陰影線圖案及虛線圖案所表示。應該注意,除 自原始區塊A 902的有效資料以外,序列更新區塊A 9〇4另 外包含現有資料905 ,其係在垃圾收集操作之前寫入序列 區塊A。當接收用以寫入新資料910的一寫入命令時,該寫 ,命令可觸發序列更新區塊A刚之關閉,此係、垃圾收集 操作之-類型,因為新f料係與*同於該序列更新區塊A 的一邏輯群組相關聯。該非揮發性記憶體儲存系統宣告- 忙彔L號並接著將有效資料從原始區塊A 複製到序列 更新區塊A 904,直至;查5,丨哲 旦主違到第一垃圾收集時間週期9〇6。在 複製期間’該非揮發性記憶體儲存系統追蹤時間,並且該 非揮發性記憶體儲存糸铋/ 仔糸統在超過第一垃圾收集時間週期 906前停止複製操作。如 圖9A所不,無法在第一垃圾收集 時間週期906内完成垃圾收隼 双收票刼作,因為原始區塊八9〇2中 仍存在剩餘的有效資料。 .^ 貝付因此,在將有效資料之部分複製 到序列更新區塊A 904之接 如九 之後,在達到第一逾時週期之前於 允許的剩餘時間内將新眘姐
册祈資枓910寫入階段性垃圾收集區塊A 124728.doc •21 · 1376600 908 〇 圖9Β顯示可以在一第二逾時週期内完成垃圾收集操作之 剩餘部分。此處’在接收該第一寫入命令之後接收用以寫 入新資料918的一第二寫入命令。因此,將一第二逾時週 期分配給該第二寫入命令。在該第二逾時週期期間,將剩 餘有效資料從原始區塊A 902複製到序列更新區塊a 904。 在此範例中’可以在第二垃圾收集時間週期912内將所有 剩餘有效資料(或有效資料之最後部分)複製到序列更新區 塊A 904 »因此,可以在該第二逾時週期内完成垃圾收集 操作。棒除原始區塊A 9 02並可以使其可用於儲存額外資 料’因為在此第二逾時週期内完成垃圾收集操作。因為填 充序列更新區塊A 904,所以將該序列更新區塊a轉換為新 原始區塊A 914或非更新區塊。此外,將階段性垃圾收集 區塊A 908轉換為一更新區塊(例如更新區塊b 916),其可 以或可以不與新原始區塊A 914相關聯。亦分配一新階段 性垃圾收集區塊(例如階段性垃圾收集區塊c 9〇8)以儲存新 資料。若自該第二寫入命令的新資料918係來自與新資料 910相同的邏輯群組,則可將自該第二寫入命令的新資料 918寫入更新區塊B 916。一方面’如以下更詳細地說明, 若自該第二寫入命令的新資料918係來自與新資料9ι〇不同 的邏輯群組’則將自該第二寫入命令的新資料918寫入階 段性垃圾收集區塊C 908。 圖1〇A及H)B係依據本發明之一具體實施㈣記憶體區 塊之簡化方處圓,纟中在階段中對雜亂更新區塊㈣㈣ 124728.doc •22- 1376600 收集。如圖10A所示’將原始區塊A 1002及雜亂更新區塊a 1004選擇用於垃圾收集。一般而言,一雜亂更新區塊(例 如雜亂更新區塊A 1004)使得資料之區段可在一邏輯群組 内採用隨機順序加以更新,而且可對個別區段進行任何重 複。當由一主機寫入的資料之一區段係在邏輯上與所更新 之邏輯群組内的資料之先前寫入區段非序列時,可藉由轉 換採用一序列更新區塊來建立該雜亂更新區塊。在該雜亂 更新區塊之下一可用區段位置中寫入在此邏輯群組中按順 序更新的資料之所有區段,而不管該等區段在該群組内的 邏輯區段位址。 此處,原始區塊A 1002及雜亂更新區塊八1004包含無效 及有效資料,其係在圖10A中分別藉由陰影線圖案及虛線 圖案所表示。當接收用以寫入新資料1〇〇1的一寫入命令 時,該非揮發性記憶體儲存系統宣告一忙碌信號並接著將 有效資料從原始區塊A 1002及雜亂更新區塊A 1〇〇4複製到 新區塊A 1006,直至達到第一垃圾收集時間週期1〇5〇。在 複製期間,該非揮發性記憶體儲存系統追蹤時間,並且該 非揮發性δ己憶體儲存系統在第一垃圾收集時間週期1 超 過别停止複製操作。如圖1〇Α所示,無法在第一垃圾收集 時間週期1G50内完成垃圾收集操作,因為原始區塊八1〇〇2 及雜亂更新區塊Α 1〇〇4中仍存在剩餘的有效資料。因此, 在將有效資料之部分複製到新區塊A 1〇〇6之後在達到第 一逾時週期之前將在垃圾收集操作啟動前接收的新資料 1001寫入階段性垃圾收集區塊A 1008。 124728.doc -23- 1376600 圖1 OB顯示可以在一第二逾時週期内完成垃圾收集操作 之剩餘部分。在接收該第一寫入命令之後接收一第二寫入 命令。因此,將一第二逾時週期分配給該第二寫入命令。 在該第二逾時週期期間’將剩餘有效資料從原始區塊A 1002及雜亂更新區塊A 1004複製到新區塊a 1〇〇6。此處, 可以在第二垃圾收集時間週期1052内將所有剩餘有效資料 (或有效資料之最後部分)複製到新區塊A 1006。因此,可 以在該第二逾時週期内完成垃圾收集操作。因為在此第二 逾時週期内完成垃圾收集操作’所以可抹除原始區塊A 1002及雜亂更新區塊A 1004並使其可用於儲存額外資料。 在抹除原始區塊A 1002及雜亂更新區塊八1004之後,將新 區塊A 1006轉換成新原始區塊A 1010並將階段性垃圾收集 區塊A 1008轉換成更新區塊B 1012,其可以或可以不與該 新原始區塊A相關聯。因為已完成垃圾收集操作,所以分 配另一階段性垃圾收集區塊C 1014以儲存新資料。如圖 10B所示,若從該第二寫入命令接收的新資料1〇〇5係在與 新資料1001相同的邏輯群組中,則可將新資料1005寫入更 新區塊B 1012。然而’如以下更詳細地說明,若新資料 1005係來自與新資料1〇〇1不同的邏輯群組,則將新資料 1005寫入階段性垃圾收集區塊c 1014。 圖11A至11E係依據本發明之另一具體實施例的記憶體區 塊之簡化方塊圖,其中在階段中對雜亂更新區塊進行垃圾 收集。如圖11A所示,當接收用以寫入新資料2012的一寫 入命令時’將原始區塊G 2002及雜亂更新區塊(3 2004選擇 124728.doc • 24· 1376600 用於垃圾收集。此處,原始區塊G 2002及雜亂更新區塊G 2004包含無效及有效資料,其係在圖11A中分別藉由陰影 線圖案及虛線圖案所表示。在接收該寫入命令之後,該非 揮發性記憶體儲存系統宣告一忙碌信號並接著將有效資料 從原始區塊G 2002及雜亂更新區塊g 2004複製到新區塊G 2008,直至達到第一垃圾收集時間週期2〇〇6。在複製期 間,該非揮發性記憶體儲存系統追蹤時間,並且該非揮發 性έ己憶體儲存系統在第一垃圾收集時間週期2〇〇6超過前停 止複製操作。如圖11Α所示,無法在第一垃圾收集時間週 期2006内元成垃圾收集操作,因為原始區塊〇 2002及雜亂 更新區塊G 20 04中仍存在剩餘的有效資料。因此,在將有 .效>料之部分複製到新區塊G 2008之後,在達到第一逾時 週期之前將在垃圾收集操作啟動前接收的新資料2〇12寫入 階段性垃圾收集區塊G 2010。 圖11Β顯示可以在一第二逾時週期内完成垃圾收集操作 之剩餘部分。在接收該第一寫入命令之後接收一第二寫入 命令。因此,將一第二逾時週期分配給該第二寫入命令。 在忒第二逾時週期期間,將剩餘有效資料從原始區塊〇 2002及雜亂更新區塊G 2004複製到新區塊〇 2〇〇6。此處, 可以在第二垃圾收集時間週期2014内將所有剩餘有效資料 (或有效資料之最後部分)複製到新區塊G 20〇8 ^因此,可 以在該第二逾時週期内完成垃圾收集操作。因為在此第二 逾時週期内完成垃圾收集操作,所以可抹除原始區塊g 2〇〇2及雜亂更新區塊(3 2004並使其可用於儲存額外資料。 124728.doc •25- 1376600 此外’將新區塊G 2008轉換成新原始區塊G 2016並將階段 性垃圾收集區塊G 2010轉換成更新區塊Η 2018»因為已完 成垃圾收集操作,所以分配另一階段性垃圾收集區塊j 2020以儲存新資料。若從該第二寫入命令接收的新資料 2022係在與新資料2012相同的邏輯群組中,則可將新資料 2022寫入更新區塊η 2018。然而,在圖11Β所示的範列 中’新資料2022及新資料2012係來自不同邏輯群組。因 此’將新資料2022寫入階段性垃圾收集區塊j 202〇而非更 新區塊Η 2018。 因為階段性垃圾收集區塊J 2020可以儲存自單一邏輯群 組的資料,所以該階段性垃圾收集區塊j可能無法儲存可 在隨後寫入操作中加以接收的新資料。因此,在第二垃圾 收集時間週期2014期間執行新垃圾收集操作。如圖11C所 示,在該第二垃圾收集時間週期内留下的剩餘時間期間執 行另一垃圾收_集操作。此處,將原始區塊κ 2202及雜亂更 新區塊K 2204選擇用於垃圾收集。原始區塊尺22〇2及雜亂 更新區塊K 2204包含無效及有效資料,其係在圖uc中分 別藉由陰影線圖案及虛線圖案所表示。在完成圖所示 的垃圾收集操作之後,該非揮發性記憶體儲存系統使用該 第二逾時週期内的剩餘時間(即,剩餘第二垃圾收集時間 週期2216)以將有效資料從原始區塊κ 22〇2及雜亂更新區 塊Κ 2204複製到新區塊κ 22〇6。如圖uc所示,無法在剩 餘第二垃圾從集時間週期2216内完成垃圾收集操作,因為 原始區塊K 2202及雜亂更新區塊κ 22〇4_仍存在剩餘的有 124728.doc •26· 1376600 效資料。 在圖11D中’在該第二寫入命令之後接收一第三寫入命 令並且將一第三逾時週期分配給該第三寫入命令。在第三 垃圾收集時間週期2236内,無法完成垃圾收集操作。因此 無法將新區塊K 2206轉換成一更新區塊❶在此範例中從 該第三寫入命令接收的新資料屬於自新資料2〇22的不同邏 輯群組,而且並沒有一開放式更新區塊。可以將自單—邏 輯群組的資料儲存在階段性垃圾收集區塊j 2〇2〇中,但是 無法將自不同邏輯群組的資料儲存在該階段性垃圾收集區 塊J中。因此,沒有區塊可用於儲存從該第三寫入命令接 收的新資料。 在圖11D之範例中,當接收新資料並且在階段性垃圾收 集區塊J 2020中已經儲存資料(例如新資料2〇22)時在可 以寫入或程式化自該第三寫入命令的新資料之前對該階段 f生垃圾收集區塊J中的資料進行垃圾收集。分配用以完成 該第三寫入命令的該第三逾時週期可用於垃圾收集操作。 然而,右第二垃圾收集時間週期2236並不提供足夠時間來 完成垃圾收集操作,則階段性垃圾收集區塊J 2020並非空 的且因此未準備好接收或儲存自該第三寫入命令的資料。 因此,無法在該第三逾時週期内寫入新資料並且逾時錯誤 會出現。 為調和從該第三寫入命令接收的新資料,圖uE顯示用 於該第三逾時週期中的垃圾收集操作之另-階段性垃圾收 集區塊(即階段性垃圾收集區塊M 2212)的分配。若剩餘第 124728.doc •27· 1376600 二垃圾收集時間週期2216並不提供足夠時間來完成圖lie 所示的第二垃圾收集操作,則該非揮發性記憶體儲存系統 可最初分配二或更多個階段性垃圾收集區塊。如圖11E所 示’最初分配二個階段性垃圾收集區塊,即階段性垃圾收 集區塊J 2020及階段性垃圾收集區塊μ 2212。採用額外分 配的階段垃圾收集區塊Μ 2212,若無法在第三逾時週.期内 完成垃圾收集操作’則可將屬於與新資料2022不同之邏輯 群組的從該第三寫入命令接收的新資料22 14儲存在該階段 性垃圾收集區塊Μ中。因此,可以在該第三逾時週期内寫 入新資料2214並且逾時錯誤不會出現。 使用暫存區塊作為緩衝器 圖12係依據本發明之一具體實施例,用以使用一暫存區 塊作為緩衝器來執行階段性垃圾收集的詳細操作之流程 圖。如圖12所示,在操作丨丨〇2中接收寫入命令以將新資料 寫入一記憶體。在一具體實施例中’該寫入命令係單一區 段寫入命令。在某些情形下,如以下更詳細地說明,依據 另一具體實施例,該寫入命令亦可以係一多區段寫入命 令。在接收該寫入命令之後,該非揮發性記憶體儲存系統 在操作1104中宣告一忙碌信號。 在執行該寫入命令之前,在操作11 〇6中於垃圾收集時間 週期内執行垃圾收集操作之一部分。例如,在一具體實施 例中’將一或多個第一區塊選擇用於垃圾收集操作。該一 或多個第一區塊可以包含無效資料及/或有效資料。在垃 圾收集時間週期内將有效資料複製到一第二區塊。根據分 124728.doc •28· 1376600 配給垃圾收集·操作的垃规收集時間週期以及欲加以複製的 有效資料之數量,將所有有效資料或有效資料之一部分複 製到該第二區塊。在-範例中,分配用於垃圾收集操作的 垃圾收集時間週期可加以表達為 垃圾收集時間週期=逾時週期_Tpr〇g (2 〇) 其中如以上說日月的料週期係―固定的有限時間週期。 Tpr〇g係與將新資料寫入記憶體相關聯的最大程式化時間 或係該非揮發性記憶體儲存系統將新資料寫入記憶體所花 費的最大時間。因此,在一具體實施例中,該非揮發性記 憶體儲存系統追縱用以將有效資料從一或多個第一區塊複 製到該第二區塊的時間之數量。該非揮發性記憶體儲存系 統在時間超過垃圾收集時間週期前停止複製。 、若無法藉由垃圾收集時間週期完成垃圾收集操作,則可 以在操作1108中將與該寫入命令相關聯的新資料寫入該暫 存區塊應該明白’ 一暫存區塊係資料更新區塊之一形 式,其中一相關聯邏輯群組内的邏輯區段可採用隨機順序 加以更新而且可重複任何數量。藉由一寫入命令建立該暫 存區塊,其令預計的邏輯區段並未結束或與實體頁面邊界 交又。因為該非揮發性記憶趙儲存系統可能無法程式化部 ^頁面’所以可將—頁面之區段臨時儲存在該暫存區塊 ::非揮發性記憶體錯存系統累積該暫存區塊中的頁面 之:段’直至採用自不同寫入命令的新資料填充該頁面之 所區段。該非揮發性記憶體儲存系統接著在一次程式化 操作中將整個頁面(例如,新資料之八個區段)從該暫存區 I24728.doc .29- 1376600 塊複製到另一區塊(例如一更 M 乂太 災新區塊)。暫存區塊因此可以 包含資料之部分實體頁面價值。該暫存區塊可以保持用於 該非揮發性記憶體儲存系統中的每一個更新區塊的新資料 之有效頁面。此外,在一且耱杳 具體實施例中,該暫存區塊可以 保持並沒有更新區塊的新資斜 .^ 研頁科之一或多個有效頁面。該非 揮發性記憶體儲存系統可以1亡",L、 牙研以具有(例如)所分配的八個更新 區塊且因此該暫存區塊可以儲存新資料之九或更多個有效 頁面。該非揮發性記憶體儲存系統可以在垃圾收集操作之 前、期間或之後將新資料寫入該暫存區塊。如以下更詳細 地說明,-!接收新資料之額外區段以便達到實體頁面邊 界或與/、父又,可在元成垃圾收集操作之後將新資料從該 暫存區塊複製到一更新區塊。 在將新資料寫入該暫存區塊並且在垃圾收集時間週期内 執行垃圾收集操作之後,該非揮發性記憶體儲存系統在操 作1110中在逾時週期前解除該忙碌信號。因此,用以執行 包含一次垃圾收集操作或一次垃圾收集操作之一部分的寫 入命令之總時間並不超過逾時週期。若在逾時週期内執行 垃圾收集操作之一部分,則在隨後逾時週期内完成剩餘部 分。當完成垃圾收集操作時,抹除得以垃圾收集的一或多 個第一區塊並且使該等區塊可用於儲存額外資料。 圖13 A及13 B係依據本發明之具體實施例的記憶體區塊 之簡化方塊圖’其中在階段中對序列更新區塊進行垃圾收 集。如圖13A所示,將原始區塊a 1202及相關聯的序列更 新區塊A 1204選擇用於垃圾收集。原始區塊a 12〇2可以包 124728.doc •30· 1376600 含無效及有效資料,其係在圖13A中分別藉由陰影線圖案 及虛線圖案所表示。當接收用以寫入新資料121〇的一寫入 命令時’該寫入命令可觸發序列更新區塊A 12〇4之關閉, 此係垃圾收集操作之一類型,因為新資料係與沒有開放式 更新區塊的一邏輯群組相關聯或者因為新資料會導致序列 更新區塊A轉換成雜亂更新區塊。該非揮發性記憶體儲存 系統旦告一忙綠佗號並接著將有效資料從原始區塊A丨2〇2 複製到序列更新區塊A 1204 ’直至達到第一垃圾收集時間 週期1208。應該注意’除自原始區塊a 12〇2的有效資料以 外,序列更新區塊A 1204另外包含現有資料1205,其係在 垃圾收集操作之前寫入該序列更新區塊A。在複製期間, 該非揮發性5己憶體儲存糸統追縱時間,並且該非揮發性記 憶體儲存系統在第一垃圾收集時間週期12〇8超過前停止複 製操作。如圖13A所示,無法在第一垃圾收集時間週期 1208内元成垃圾收集操作,因為原始區塊a 12〇2中仍存在 剩餘的有效資料。因此,在將有效資料之部分複製到序列 更新區塊A 1204之後,將新資料121〇寫入暫存區塊12〇6。 圖ΠΒ顯示可以在一第二逾時週期内完成垃圾收集操作 之剩餘部分。此處,在該弟一寫入命令之後接收用以寫入 新資料1224的一第二寫入命令。因此,將一第二逾時週期 分配給該第二寫入命令。在該第二逾時週期期間,將剩餘 有效資料從原始區塊A 12〇2複製到序列更新區塊A 12〇4。 在此範例中,可以在第二垃圾收集時間週期】214内將所有 剩餘有效資料(或有效資料之最後部分)複製到序列更新區 J24728.doc 31 1376600 塊A 1204。因此,可以在該第二逾時週期内完成垃圾收集 操作°因為填充序列更新區塊A丨2〇4,所以將該序列更新 區塊A轉換為新原始區塊A 1212或非更新區塊。抹除原始 區塊A 1202並可以使其可用於儲存額外資料,因為在此第 二逾時週期内完成垃圾收集操作。在抹除原始區塊A 12〇2 之後,分配更新區塊C 1222並且可將從該第二寫入命令接 收的新資料1222寫入新近分配的更新區塊c。應該注意·, 更新區塊C 1222可以或可以不與新原始區塊a 1212相關 聯。 在該第二逾時週期内完成垃圾收集之後,若在該第二逾 時週期記憶體在可用的時間,則該非揮發性記憶體儲存系 統可將儲存在暫存區塊1206中的新資料1210複製到更新區 塊C 1222。暫存區塊1206作為臨時緩衝器,因為寫入該暫 存區塊的新資料(例如新資料1210)係後來複製到另一區塊 (例如,更新區塊C 1222)。在圖13B之範例中,在該第二 逾時週期記憶體在用於將新資料12 1〇從暫存區塊1206複製 到更新區塊C 1222的時間。儲存在暫存區塊丨206中的新資 料12 10係在與新資料1224相同的邏輯群組中。因此,在完 成垃圾收集操作之後將新資料1210複製到更新區塊c 1222。將儲存在暫存區塊12〇6中的新資料1210標識為無效 且因此可以使該暫存區塊中的額外空間可用於儲存額外新 資料。應該注意,新資料1210及新資料1224可屬於不同邏 輯群組。若新資料1210及新資料1224屬於不同邏輯群組, 則新資料1210將保持在暫存區塊12〇6中。一旦將新資料 124728.doc •32- 1376600 1224寫入更新區塊C 1222,則可在該第二逾時週期内啟動 新垃圾收集操作。因此在完成新垃圾收集操作的情況下, 可分配一新更新區塊(圖中未顯示),而且可將新資料121〇 從暫存區塊1206複製到該新更新區塊。 圖14A及14B係依據本發明之具體實施例的記憶體區塊 之簡化方塊圖,其中在階段中對雜亂區塊進行垃圾收集。 如圖14A所示,將原始區塊D 13〇2及雜亂更新區塊d
選擇用於垃圾收集。此處,原始區塊D 13〇2及雜亂更新區 塊D 1304包含無效及有效資料,其係在圖14八中分別藉由 陰影線圖案及虛線圖案所表示。當接收用以寫入新資料 13 12的一寫入命令時,該非揮發性記憶體儲存系統宣告一 忙碌信號並接著將有效資料從原始區塊D⑽及雜亂更新 區塊D U04複製到新區塊D i則,直至達到第—垃圾收集 時間週期1306。在複製期間’該非揮發性記憶體健存系統 追蹤時間’並且該非揮發性記憶體儲存系統在超過第一垃 圾收集時間週期13〇6前停止複製操作。如圖Μ所示,無 法在第-垃圾收集時間週期⑽内完成垃圾收集操作,因 為原始區塊D 13G2及雜亂更新區塊D 13咐 有效資料。因此,在將有效f料之部分複製到新 _之後,在達到該第一逾時週期之前將在垃圾收集操作 啟動前接㈣新資料1312寫人暫存區塊屬。 圖14B顯示可以在一筮_ a 士 第一逾時週期内完成垃圾收集操作 之剩餘部分。在接收兮笛 、 叹该第一寫入命令之後接收一第二寫入 命令。因此,將一笛-必„士 第一逾時週期分配給該第二寫入命令。 124728.doc -33· l3766〇〇 在該第二逾時週期期間’將剩餘有效資料從原始區塊D 1302及雜亂更新區塊D 1304複製到新區塊^ 13〇8β此處, 可以在第二垃圾收集時間週期1314内將所有剩餘有效資料 (或有效資料之最後部分)複製到新區塊D 13〇8。因此可 以在該第二逾時週期内完成垃圾收集操作。因為在此第二 逾時週期内完成垃圾收集操作,所以可抹除原始區塊d 1302及雜亂更新區塊〇 1304並使其可用於儲存額外資料。 在抹除原始區塊D 1302及雜亂更新區塊八13〇4之後,分配 新更新區塊Ε 1316並且將從該第二寫入命令接收的新資料 1314寫入新近分配的更新區塊Ε。此外,並非將新資料 1314寫入暫存區塊1206,因為一更新區塊在完成垃圾收集 操作之後可用,而且直至一隨後的逾時週期才需要緩衝該 新資料。在此範例中,將儲存在暫存區塊12〇6中的新資料 1312複製到更新區塊£1316,假定新資料1312及13抖屬於 同一邏輯群,纟且。 聲訊/視訊資料 當與其他資料相比時,存取儲存在—非揮發性記憶體儲 存系統中的聲訊/視訊檔案相關聯的資料(以下稱為"聲訊/ 視訊資料")之一主機可能需要採用預定速率來寫入該等聲 訊/視訊資料。隨著該主機使該等聲訊/視訊資料流入該非 揮發性記憶體儲存系統或從該系統流出,分配給該資料流 的頻寬與該預定速率匹配或超過該預定速率》在聲訊/視 訊資料的存取期間執行的垃圾收集操作可以降低該聲訊/ 視訊資料之寫入性能。目此,在一具體實施例中,當該多 124728.doc •34· 1376600 區段寫入命令並非與聲訊/視訊資料相關聯或者該多區段 寫入命令係在一聲訊/視訊寫入之開始時,執行階段性垃 圾收集。
為將聲訊/視訊資料與其他資料區分,在一具體實施例 中,該非揮發性記憶體儲存系統可以參考與該多區段寫入 命令相關聯的目標邏輯位址。因為按順序寫入聲訊/視訊 資料,所以轉化為向後躍步的一目標邏輯位址可以指示新 資料並非聲訊/視訊資料(或係聲訊/視訊資料之開始)。在 另-具體實施例中,該非揮發性記憶體儲存系統亦可以藉 由參考與新資料相關聯的區段之數目而將聲訊/視訊資料 ,其他資料區分。可以將聲訊/視訊資料儲存在稱為記錄 單4的單位中肖聲訊/視訊資料相關聯的最小記錄單位 長度可以係32個區段。與新資料相關聯的並非32個區段之 整數倍的區段之數目因此可以指示新資料並非聲訊/視訊 資料。並不與-記錄單位對準或並不在一記錄單位之開始 啟動之接收的新資料亦、,杜- 方T以心不新資料並非聲訊/視訊資 料0 因此,若下列條件之一逋用, 週用’則可以執行階段性垃圾收 集·( 1 )多區段寫入命今烟田4^112 ^調用垃圾收集操作;將該目標 邏輯位址轉化為向後躍步( 目標邏輯位址並未與一記錄 單位邊界對準;以及(4)在接 )在接收止命令之後(即,多區段 寫入命令結束),若與新資 貢科相關聯的區段之數目並非32 的整數倍。 圖15係依據本發明之—夏 八遐貫施例,與一寫入命令相關 124728.doc -35- 聯的非揮發性記憶體儲存系統操作之流程圖。該寫入命令 可以係單一區段寫入命令,其中將新資料作為單一區段寫 入橫跨一記憶體單元陣列之隨機位址。根據主機活動性及 卡分段’該主機可使用單一區段寫入命令將具有多個區段 的較長檔案寫入隨機位置。因為分配有限數目的更新區 塊,所以此等單一區段寫入可以迅速地經歷更新區塊,從 而可以提示該非揮發性記憶體儲存系統執行垃圾收集操作 來Θ理區塊以將其用於隨後的寫入操作。該寫入命令亦可 、係夕區段寫入命令。寫入該記憶體單元陣列的大多數新 資料係佔用鄰近序列邏輯位址空間的較大資料檔案。根據 主機活動性,該主機可以使用多區段寫入命令來寫入較大 資料檔案。此類新資料包括具有多個逾時週期的新資料之 多個區段。圖7顯示多區段寫入命令之一範例…般而 言,因為多個逾時週期可用於多區段寫入命令,所以可以 將新資料寫入分配的更新區塊而非該暫存區塊。因此,該 暫存區塊通*並非用作多區段寫入命令中的階段性垃圾收 集方案之部分,因為垃圾收集通常可以在分配給該多區段 寫入命令之多個逾時週期内加以完成。 圖15所示,在操作14〇2中接收一寫入命令。然後在操 作_中決定該寫人命令是否為單__區段寫人命令。若該 寫入命令為早—區段寫入命令,則在操作刚4中決定單一 區段寫入命令是否調用垃圾收集操作。若單一區段寫入命 令並不調用垃圾收集操作 … 干锞作則在知作1422中將新資料寫入 該記憶體。另^一方面,^:兮官、人人 右該寫入命令調用垃圾收集操作, 124728.doc -36· 1376600 則在操作1408中另外決定一階段性垃圾收集是否懸而未決 (即,已經啟動,但因無法完成垃圾收集或在階段性垃圾
收集區塊並非空的情況下具呈階段性的垃圾收集操作)。 若存在懸而未決的階段性垃圾收集,則在操作141〇中繼續 或完成階段性垃圾收集操作。換言之,繼續自先前垃圾收 集操作的剩餘部分。如操作1411所示,執行階段性垃圾收 集操作,直至垃圾收集時間週期(例如,逾時週期與程式 化時間之間的差異)或直至完成階段性垃圾收集操作。
若可以在垃圾收集時間週期内完成階段性垃圾收集操 作,則在操作14 12中另外決定即使在完成階段性垃圾收集 操作之後,該寫入命令是否仍調用垃圾收集操作。若該寫 入命令並不調用垃圾收集操作,則在操作1422中將新資料 寫入該記憶體。另一方面,若該寫入命令確實調用垃圾收 集,則在操作1414中執行垃圾收集操作,直至在操作i4i8 中達到垃圾收集時間週期或直至完成階段性垃圾收集。在 一具體實施例中,若使用階段性垃圾收集區塊,則可將以 上說明的等式U用作垃圾收集時間週期。若無法在垃圾 收集時間週期内完成垃圾收集操作,則可以在操作购中 將新資料寫人料階段性垃圾收錢塊之—。在另一具體 實施例中’若使用該暫存區塊則可在操作⑷8中將以上 說明的等式2.0用作垃圾收集時間週期。若無法在垃圾收 集時間週期内完成垃圾收集操作,則可以在操作142〇中將 新資料寫入該暫存區塊。若可以在垃圾收集時間週期内完 成垃圾收集操作,則可以在操作1422中將新資料寫入該記 124728.doc -37- 1376600 憶體。 應該注意,若存在階段性垃圾收集而且目前寫入命令亦 調用垃圾收集操作,則操作1418中所示的垃圾收集時間週 期係操作1410中的垃圾收集時間週期之延續。因此,若存 在階段性垃圾收集而且目前單一區段寫入命令調用垃圾收 集操作,則在總垃圾收集時間週期内完成兩次操作。換言 之’操作1418中顯示分配用於階段性垃圾收集操作的執行 時間,而且操作1410中所示的垃圾收集操作可以係(例如) 逾時週期與程式化時間之間的差異。 在操作1422中將新資料寫入記憶體之後,在操作1424中 決定新資料是否為32個區段的整數倍。若新資料為32個區 段的整數倍’則新資料可與聲訊/視訊資料相關聯而且操 作結束。然而,若新資料並非32個區段的整數倍,則在操 作1426中決定階段性垃圾收集是否懸而未決。若存在懸而 未決的階段性垃圾收集,則在操作1428中繼續或完成階段 性垃圾收集操作。若不存在懸而未決的階段性垃圾收集, 則操作結束。 返回至操作1402,亦可接收一多區段寫入命令。採用一 多區段寫入命令,儲存(或緩衝)新資料之各區段並且可以 在需要的情兄下在操作1452中執行垃圾收集操作。該非揮 發性s己憶體锗存系統可以不利用一暫存區塊或一階段性垃 圾收集區塊以在階段性垃圾收集操作中儲存新資料,因為 將多個逾時週期分配給該多區段寫入命令並且通常可以在 該多區段寫入命令結束時完成一次垃圾收集操作。因此, 124728.doc -38· 1376600 除該暫存區塊以外’該非揮發性記憶體儲存系統可以將新 資料儲存在與該非揮發性記憶體儲存系統相關聯的ram 中’或在與該非揮發性記憶體儲存系統相關聯的其他記憶 體中’同時宣告新資料之區段之間的忙碌信號以便使用分 配的逾時週期來執行垃圾收集操作。
然而,在一具體實施例中,若未分配足夠的逾時週期來 完成垃圾收集操作,則該暫存區塊可用於一多區段寫入命 令。此處,可在操作1454中決定是否接收少於新資料之\ 個區段。可將具有新資料之至少]^個區段的一多區段寫入 命令直接寫入該等更新區塊而非該暫存區塊。此處,N* 定義為
N
RoundDowruto.Nearest.IntegeA T^c + T〔 L TO (3.0)
其中TO係逾時週期而且Tgc係用以執行一次完整垃圾收集 操作的時間週期。可將此類多區段寫入命令直接寫入該等 ,新區塊而非該暫耗塊。等式3 Q顯示當該寫人命令係 单-區段寫人命令時或當該非揮發性記憶體儲存系統在多 區段寫入命令中接收少於新資料之_區段時,將新資料 寫入該暫存區塊作為階段性垃圾收集方案之部分。 若接收少於N個區段,則該非揮發性記憶體儲存系統依 據在操作14G4中啟動的單—區段寫人命令操作而操作該多 區段寫入命令。然而,若接收新資料之多㈣個區段,則 在操作!456中決定是否可以執行階段性垃圾收集操作。若 不可以執行階段垃圾收集操作,則在操作1422中將新資料 寫入記憶體。另一方面,若可以執行階段性垃圾收集操 124728.doc -39- 1376600 作,則在操作1422中執行階段性垃圾收集操作,直至(例 如)—時間週期。在階段性垃圾枚集操作之 後,在操作1422中將新資料寫入記憶體。 以上說明的具體實施例提供用力階段性垃圾收集之方法 及/或系、统。可以將垃圾收集操作分成多個階段而且在 多個逾時週期内執行多個階段。在階段性垃圾收集中,可 將從該寫人命令接收的新資料儲存在―階段性垃圾收集區 塊或-暫存區塊中。藉由分割垃圾收集操作,可以在該逾 時週期内執行垃圾收集操作之每—個階段,且因此預防逾 時錯誤。 儘管已基於清楚瞭解之目的而在某程度上詳細地說明前 =具體實施例,但是該些具體實施例並不限於所提供的細 卽。存在實施該等具體實施例的許多替代性方式。因此, 所揭示的具體實施例應係視為具說明性而不具限制性,而 且該等具體實施例並不限於本文提供的細節,而可在所附 申請專利範圍之範疇及等效物内進行修改。在申請專利範 圍中,元件及/或操作並不意味著操作的任何特定順序, 除非在申請專利範圍中明確聲明。 【圖式簡單說明】 已藉由以上詳細說明並結合附圖而輕易地瞭解本發明, 而且相同參考數字指明相同的結構元件。 圖1係依據本發明之一具體實施例的一非揮發性記悻體 儲存系統之一範例的簡化方塊圖。 圖2係該記憶體單元陣列在平面中的組織之簡化方塊 124728.doc -40- 1376600 圖。 圖3係記憶體單元之頁面的簡化方塊圖。 圖4係記憶體單元之區段的簡化方塊圖。 • 圖5係一主機與一非揮發性記憶體儲存系統之間之一邏 •輯介面的簡化方塊圖。 圖6係依據本發明之一具體實施例,用於階段性垃圾收 • 集的操作之一般概述的流程圖。 _ 圖7顯示依據本發明之一具體實施例,分成多個部分的 -人垃圾收集操作之一範例的簡化方塊圖。 圖8係依據本發明之一具體實施例,用以使用階段性垃 圾收集區塊作為緩衝器來執行階段性垃圾收集的詳細操作 之流程圖。 圖9A及9B係依據本發明之具體實施例的記憶體區塊之 簡化方塊圖,其中在階段中對序列更新區塊進行垃圾收 集。 • 圖1〇A及1〇B係依據本發明之一具體實施例的記憶體區 塊之簡化方塊(圖,其中在階段中對雜亂更新區塊進行垃圾 收集。 圖11A、11B、11C、UD以及11E係依據本發明之另一具 • 體實施例的記憶體區塊之簡化方塊圖,其中在階段中對雜 亂更新區塊進行垃圾收集。 圖12係依據本發明之一具體實施例,用以使用暫存區塊 作為緩衝器來執行階段性垃圾收集的詳細操作之流程圖。 圖13A及13B係依據本發明之具體實施例的記憶體區塊 124728.doc 41 1376600 之簡化方塊圖 集。 其中在階段巾對序列更新區塊進行垃圾收 圖14A及14B係依據本發明 < 具體實施例的記憶體區塊 之簡化方塊圖,其中在階段中對雜亂區塊進行垃圾收集。 【主要元件符號說明】
圖15係依據本發明之一具體實施例,與一寫入命令相關 聯的非揮發性記憶體儲存系統操作之流程圖。 102 非揮發性記憶體儲存系統 104 主機介面 108 記憶體介面 110 記憶體控制器 112 RAM 114 ECC電路 116 ROM 118 記憶體 120 陣列邏輯 122 非揮發性記憶體單元陣列 123 記憶體單元陣列 124 匯流排 126 系統匯流排 202-205 平面 210-213 區塊 220-223 區塊 401 頁面 124728.doc ·42· 1376600 402 404 405 406 502 512 702 704
760-762 780 781 902 904 905 908
908 910 914 916 918 1001 1002 124728.doc 區段 區段 管理資料 資料 記憶體單元陣列 邏輯位址空間 忙碌信號 多區段寫入命令 停止命令 新資料 第一部分 第二部分 原始區塊A 序列更新區塊A 現有資料 階段性垃圾收集區塊A 階段性垃圾收集區塊C 新資料 新原始區塊A 更新區塊B 新資料 新資料 原始區塊A 雜亂更新區塊A -43- 1004 1376600 1005 新資料 1006 新區塊A 1008 階段性垃圾收集區塊A 1010 新原始區塊A 1012 更新區塊B 1014 階段性垃圾收集區塊C 1202 原始區塊A 1204 序列更新區塊A 1205 現有資料 1206 暫存區塊 1210 新資料 1212 新原始區塊A 1222 新資料 1222 更新區塊C 1224 新資料 1302 原始區塊D 1304 雜亂更新區塊D 1308 新區塊D 1312 新資料 1314 新資料 1316 新更新區塊E 2002 原始區塊G 2004 雜亂更新區塊G 2006 新區塊G 124728.doc -44- 1376600 2008 新區塊G 2010 階段性垃圾收集區塊G 2012 新資料 2016 新原始區塊G 2018 更新區塊Η 2020 階段性垃圾收集區塊J 2022 新資料 2202 原始區塊Κ 2204 雜亂更新區塊Κ 2206 新區塊Κ 2212 階段性垃圾收集區塊Μ 2214 新資料 P0-P7 頁面 124728.doc -45-

Claims (1)

  1. $34738號專利申請卜〜岬 j 丄山 中文申請專利範圍替換本(mi在4且) 十、申請專利範圍: ~~~一- 種用以操作具有一非揮發性記憶體的一記憶體系統之 方法,其包括: 接收一第一寫入命令以寫入第一複數個資料,該第一 寫入命令仔以分配—逾時週期來完成該第一寫入命令的 執行; 宣告一忙碌信號; λ在―垃圾收集時間週期内將第-複數個有效資料之- 部分從該非揮發性記憶體的—或多個第—區塊複製到該 非揮發性記憶體的一第二區塊; 將°亥第一複數個資料寫入在該記憶體系統中跨越-單 邏輯群組的一第一階段性垃圾收集區塊;以及 ’〆第产“又性垃圾收集區塊轉換為該非揮發性記憶 體的一更新區塊; 在該逾時週期前解除該忙碌信號。 此隹求項1之方法’其進一步包括將該第-階段性垃圾 收集區塊轉換為該非揮發性記憶體的一更新區塊。 求項1之方法’其進一步包括抹除該一或多個 區塊。 ::求項1之方法’其中該一或多個第一區塊及該第二 品塊經組態成跨越一單一邏輯群組。 兮複二項1之方法,其中該從該—或多個第-區塊複製 0亥複數個有效資料包括: 追縱用以該將該複數個有效資料之該部分從該—或多 124728-1010430.doc
    個第一區塊複製到該第二區塊之一時間;以及 在該時間超過該垃圾收集時間週期前停止該複製該複 數個有效資料之該部分。 6.如請求項1之方法,其中該第一寫入命令係一單一區段 寫入命令。 •如請求項1之方法’其中該垃圾收集時間週期係該逾時 週期與該寫入該第一複數個資料相·關聯的一程式化時間 之間的一差異。 8.如請求項1之方法’其進一步包括分配一第二階段性垃 圾收集區塊’其經組態用以儲存自一第二寫入命令的第 —複數個資料’在接收該第一寫入命令之後接收該第二 寫入命令。 9· 一種用以操作具有一非揮發性記憶體的一記憶體系統之 方法’其包括: 接收一第一寫入命令以寫入第一複數個資料,該第一 寫入命令得以分配一第一逾時週期來完成該第一寫入命 令的執行; 宣告一第一忙碌信號; 在一垃圾收集時間週期内將複數個有效資料之一第— 部分從該非揮發性記憶體的一或多個第一區塊複製到該 非揮發性記憶體的一第二區塊; 將該第一複數個資料寫入在該記憶體系統t跨越一單 一邏輯群組的一階段性垃圾收集區塊區塊; 在該第一逾時週期前解除該第一忙碌信號; 124728-1010430.doc -2- Λ-1 -· · ··-· \—- 接收一第二寫入命令以寫入第二複數個資料’在該接 收該第-寫入命令之後接收該第二寫入命令該第二寫 入命令得以分配一第二逾時週期來完成該第二寫入命令 的執行; 宣告一第二忙碌信號; 在該垃规收集時間週期内將該複數個有效資料之-第 -部分從該-或多個第一區塊複製到該第二區塊; Ζ該階段性垃圾㈣區塊轉換為該非揮發性記憶體的 —第一更新區塊; 2該第二複數個資料寫入該第一更新區塊;以及 U)如社ΐ第二逾時週期前解除該第二忙碌信號》 區塊。 其進一步包括抹除該一或多個第一 如請求項9之方法’其進_步包括: 刀配一第二區塊;以及 將該第二複數個資 12.如請求項U之方法Π該第三區塊。 間週期内將複數個步包括在—剩餘垃圾收集時 -第五區塊。有效貝料從-或多個第四區塊複製到 U.如請求項〗2之方法, 個有效資料從今4 ,在該第二逾時週期内將該複數 “·如請求項9之方法 1多個第四區塊複製到該第五區塊。 -區段寫入命令,其中該等第-及第二寫入命令係單 1 5· -種用以操作一 >除决閃記憶體系統之方法,該可移 124728-1010430.doc ^/6600 16. 17. 18. ~~~101. 4. 3Q---- I 今 ^ at. -------------- 除快閃記憶體系統具有經組態以經由一主機介面與一主 機通信的一快閃記憶體,其包括: 接收從-主機經-主機介面傳送的一寫入命令以寫入 複數個資料,該寫入命令得以分配一逾時週期來完成該 寫入命令的執行; 對該主機宣告—忙碌信號; 在一垃圾收集時間週期内將複數個有效資料之一部分 從該快閃記憶體的一或多個第一區塊複製到該快閃二憶 體的一第二區塊; 將該複數個資料寫入該記憶體系統中跨越一單一邏輯 群組的一階段性垃圾收集區塊; 將該階段性垃圾收集區塊轉換為該快閃記憶體的一更 新區塊;以及 在該逾時週期前解除該忙碌信號。 如請求項15之方法,其中該寫入命令係一單一區段寫入 命令。 如叫求項15之方法,其中該複製該複數個有效資料之該 部分包括: 追蹤用以該將該複數個有效資料之該部分從該—或多 個第一區塊複製到該第二區塊之一時間;以及 在該時間超過該垃圾收集時間週期前停止該複製該複 數個有效資料之該部分。 如請求項15之方法,其中該垃圾收集時間週期係該逾時 週期與該寫入該複數個資料相關聯的一程式化時間之間 124728-1 〇 10430.doc 的一差異β H-
    統之方法,該可移 一主機介面與一主 19.—種用以操作—可移除快閃記憶體系 除快閃記憶體系統具有經組態以經由 機通信的一快閃記憶體,其包括: 接收從-主機經一主機介面傳送的一第—寫入命令 ::第-複數個資料1第一寫入命令得以分配一第 吩週期來完成該第一寫入命令的執行; 對該主機宣告一第一忙碌信號; 在垃圾收集時間週期内將複數個有效資料之一第一 P刀從》亥非揮發性記憶體的一或多個第一區塊複製到該 非揮發性記憶體的一第二區塊; 將該第一複數個資料寫入該記憶體系統中跨越一單一 邏輯群組的一階段性垃圾收集區塊; 在該第一逾時週期前解除該第一忙碌信號; 接收從一主機經一主機介面傳送的一第二寫入命令以 寫入第二複數個資料,在該接收該第一寫入命令之後接 收該第二寫入命令,該第二寫入命令得以分配一第二逾 時週期來完成該第二寫入命令的執行; 對該主機宣告一第二忙碌信號; 在該垃圾收集時間週期内將該複數個有效資料之一第 二部分從該一或多個第一區塊複製到該第二區塊; 將該階段性垃圾收集區塊轉換為該快閃記憶體的一更 新區塊;以及 在該第二逾時週期前解除該第二忙碌信號。 124728-1010430.doc 1376600 •ί. 20. 如明求項19之方法,其進一步包括將該第二複數個資料 寫入該階段性垃级收集區塊。 21. 如凊求項19之方法,其進一步包括將該第二複數個資料 寫入一更新區塊。 22_如吻求項19之方法,其進一步包括在該複製該複數個有 效貝料之該第二部分之後抹除該一或多個第一區塊。 23. 如叫求項22之方法,其中若該複數個有效資料之該第二 邛刀係該複數個有效資料之一最後部分,則抹除該一或 多個第一區塊。 24. 如請求項19之方法,其進—步包括: 分配一更新區塊;以及 將該第一複數個資料從該階段性垃圾收集區塊複製到 該更新區塊β 及第二寫入命令係單 25. 如請求項19之方法,其中該等第 一區段寫入命令。 26, 一種非揮發性記憶體儲存系統,其包括: 一記憶體,其經組態用以儲存—儲存系統韌體; 一非揮發性記憶體單元陣列;以及 -處理器,其與該記憶體及該非揮發性記憶體單元陣 列通信,該處理器經組態用以執行儲存在該記憶體 該儲存系統動體,該儲存系統拿刀體包括程式指令, 以: ” 八該非揮發性記 接收一寫入命令以將複數個資料寫 憶體單元陣列, 124728-I010430.doc -6 - ⑻牛,ί.辦日修替換頁 宣告一忙碌信號, 在-垃圾收集時間週期内將複數個有效資料之一部 分從該非揮發性記憶體單元陣列的一或多個第一區塊 複製到該非揮發性記憶體單元陣列的—第二區塊, 將該複數個資料寫入該非揮發性記憶體翠元陣列中 跨越一單-邏輯群組的-階段性垃圾收集區塊, m將該階奴性垃圾收集區塊轉換為該非揮發性記憶體 單70陣列的一更新區塊,以及 在一逾時週期前解除該忙碌信號。 27·如清求項26之非揮發性記憶體儲存系統,其進一步包括 抹除該一或多個第一區塊。 28.如,求項26之非揮發性記憶體儲存系統,其中該從該等 第及第一區塊複製該複數個有效資料之該部分包括: 追蹤用以該將該複數個有效資料之該部分從該一或多 個第一區塊複製到該第二區塊之一時間;以及 在該時間超過該垃圾收集時間週期前停止該複製該複 數個有效資料之該部分。 29·如請求項26之非揮發性錢姻存系統,其中該垃圾收 集時間週期係該逾時週期與該寫入該複數個資料相關聯 的一程式化時間之間的一差異。 30. —種非揮發性記憶體儲存系統其包括: —唯讀記憶體(ROM) ’其經植態用以儲存一儲存系統 韌體; 一非揮發性記憶體單元陣列; 124728-1010430.doc 一記憶體單元陣列經組態以儲存階段性垃圾收集區 塊’其中每-階段性垃圾收集區塊在該非揮發性記憶體 早元陣列中跨越一單一邏輯群組;以及 一處理器,其與該ROM、該記憶體單元陣列以及該非 揮發性記憶體單元陣列通信,該處理器經組態用以執行 儲存在該ROM中的該儲存系統㈣,該儲存系統勃體包 括程式指令,其用以: 接收-第-寫入命令以將第一複數個資料寫入該非 揮發性記憶體單元陣列,該第一寫入命令得以分配一 第一逾時週期來完成該第一寫入命令的執行, 宣告一第一忙碌信號, 在一垃圾收集時間週期内將複數個有效資料之一第 部刀從或多個第一區塊複製到該非揮發性記憶體 單元陣列的一第二區塊, 將該第一複數個資料寫入一階段性垃圾收集區塊, 在該第一逾時週期前解除該第一忙碌信號, 接收一第二寫入命令以將第二複數個資料寫入該非 揮發性記憶體單元陣列,在該接收該第一寫入命令之 後接收該第二寫入命令,該第二寫入命令得以分配一 第二逾時週期來完成該第二寫入命令的執行, 旦告一第一忙綠信號, 在該垃圾收集時間週期内將該複數個有效資料之一 第二部分從該一或多個第一區塊複製到該第二區塊, 將該階段性垃圾收集區塊轉換為該非揮發性記憶體 124728-I010430.doc 單元陣列的一第一更新區塊, 將該第二複數個資料寫入該第—更新區塊,以及 在該第二逾時週期前解除該第二忙碌信號。 31. 如請求項30之非揮發性記憶體儲存系統,其中該儲存系 統勤體進-步包括用以抹除該一或多個第一區塊的程式 指令。 32. 如請求項30之非揮發性記憶體儲存系統,其中該儲存系 統韌體進一步包括程式指令,其用以: 分配一第三區塊;以及 將該第二複數個資料寫入該第三區塊。 33_如請求項32之非揮發性記憶體儲存系苴 統動體進-步包括程式指令,其用以在一剩 時間週期内將複數個有效資料從一或多個第四區塊複製 到一第五區塊。 34.如請求項33之非揮發性記憶體儲存系統,其中在該第一 逾時週期内將該複數個有效資料從該—或多個第四區: 複製到該第五區塊。 3 5.如請求項30之非揮發性記憶體儲存系統,其中該等第— 及第二寫入命令係單一區段寫入命令。 36. —種可移除快閃記憶體系統,其包括: 一主機介面; 一記憶體,其經組態用以儲存一儲存系統韌體; 一非揮發性記憶體單元陣列;以及 一處理器,其與該記憶體及該非揮發性記憶體單元陣 124728-10J0430.doc 1376600 =::==:=:r:: 接收冑人命令以將複數個資料寫人該 憶體單元陣列, 56 對該主機宣告一忙碌信號, 在-垃圾收集時間週期内執行—垃圾收集操作之一 將i複數個資料寫人在該非揮發性記憶體單元陣列 中跨越-單一邏輯群組的一階段性垃圾收集區塊 將該階段性垃㈣錢塊轉換為該非揮發性 單元陣列的一更新區塊,以及 〜體 37. ’其中用以執行該 令包括用以在該垃 在一逾時週期前解除該忙碌信號 如請求項36之可移除快閃記憶體系統 垃圾收集操作之該部分的該等程式指 圾收集時間週期内將複數個有效資料之一部分從一戈夕 個第一區塊複製到一第二區塊的程式指令。 S 38. 其中用以複製該 令包括用以進行 如請求項37之可移除快閃記憶體系統, 複數個有效資料之該部分的該等程式指 下列操作的程式指令: 追蹤用以該將該複數個有效資料之該部分從該一或多 個第一區塊複製到該第二區塊之一時間;以及 在該時間超過該垃圾收集時間週期前停止該複製該複 數個有效資料之該部分。 124728-I010430.doc •10· 39. 40. 41 3求項36之可移除快閃記憶體系統,其中該寫入命令 係一單一區段寫入命令。 如請求項36之可移除快閃記憶體系統,其中該垃圾收集 時1週』係4逾時週期與該寫人該複數個資料相 -程式化時間之間的_差異。 關⑼ •-種可移除快閃記憶體系統,其包括: 一主機介面; 土唯口買〇己隐體(r〇m) ’其經組態用以儲存一儲存系統 早刃體, 1己憶體單it陣列,其經組態用以維持—暫存區塊; 非揮發性s己憶體單元陣列;以及 ::理器,其與該R0M、該記憶體單元陣列以 揮發性記憶體單元陣列通信,該處理器經組態用以執行 儲^在該讀中的該儲存系絲體,該儲存系統_包 括程式指令,其用以: 接收-第-寫入命令以將第一複數個資料寫入該非 揮發性記憶體單元陣列,該第一寫入命令得以分配一 第一逾時週期來完成該第一寫入命令的執行, 對該主機宣告一第一忙碌信號, 在—垃圾收集時間週期内將複數個有*資料之一第 一部分從該非揮發性記憶體單元陣列的—或多個第一 區塊複製到該非揮發性記憶體單元陣列的一 ^ —區 將該第 一複數個資料寫入在該記憶 體單元陣列t跨 124728W0l0430.doc -II - ^76600 越一單一邏輯群組的—階段性垃圾收集區塊,. 在該第一逾時週期前解除該第一忙碌信號, 接收一第二寫入命令以將第二複數個資料寫入該非 揮發性記憶體單元陣列,在該接收該第一寫入命令之 後接收該第二寫入命令,該第二寫入命令得以分配一 第二逾時週期來完成該第二寫入命令的執行, 對該主機宣告一第二忙碌信號, 在該垃圾收集時間週期内將該複數個有效資料之一 第二部分從該一或多個第一區塊複製到該第二區塊, 將該階段性垃圾收集區塊轉換為該非揮發性記憶體 單元陣列的一更新區塊,以及 在該第二逾時週期前解除該第二忙碌信號。 42. 如請求項41之可移除快閃記憶體“,其t該儲存系統 勒體進-步包括用以將該第:複數個資料寫人該暫存區 塊的程式指令。 43. 如請求項41之可移除快閃記憶體系統,其中該儲存系統 韋刃體進-步包括用以將該第二複數個資料寫入—更新區 塊的裎式指令。 44. =項Γ可移除快閃記憶體系統,其中該儲存系統 步包括用以在該複製該複數個有效資料之該第 ―。卩刀之後抹除該一或多個第一區塊的程式指人 45:244之可移除快閃記憶體系統’其中二複數個 :效貝枓之該第二部分係該複數個有效資料之一最後部 为,則抹除該一或多個第一區塊。 124728.l010430.doc ⑧ -12- 1376600 取抖..讀頁 46.如請求項41之可移除快閃記憶體系統,其中該等第一及 第二寫入命令係單一區段寫入命令。
    124728-1010430.doc 13·
TW96134738A 2006-09-28 2007-09-17 Memory systems and method for phased garbage collection using phased garbage collection block or scratch pad block as a buffer TWI376600B (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/541,035 US7444462B2 (en) 2006-09-28 2006-09-28 Methods for phased garbage collection using phased garbage collection block or scratch pad block as a buffer
US11/541,012 US7441071B2 (en) 2006-09-28 2006-09-28 Memory systems for phased garbage collection using phased garbage collection block or scratch pad block as a buffer

Publications (2)

Publication Number Publication Date
TW200821829A TW200821829A (en) 2008-05-16
TWI376600B true TWI376600B (en) 2012-11-11

Family

ID=39269077

Family Applications (1)

Application Number Title Priority Date Filing Date
TW96134738A TWI376600B (en) 2006-09-28 2007-09-17 Memory systems and method for phased garbage collection using phased garbage collection block or scratch pad block as a buffer

Country Status (2)

Country Link
TW (1) TWI376600B (zh)
WO (1) WO2008042596A2 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI782654B (zh) * 2021-02-18 2022-11-01 慧榮科技股份有限公司 垃圾回收操作的管理機制

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI396975B (zh) * 2008-08-06 2013-05-21 Realtek Semiconductor Corp 可調適緩衝裝置及其方法
US7898859B2 (en) * 2009-06-15 2011-03-01 Micron Technology, Inc. Use of emerging non-volatile memory elements with flash memory
TWI592800B (zh) 2016-10-04 2017-07-21 大心電子(英屬維京群島)股份有限公司 記憶體管理方法及使用所述方法的儲存控制器
TWI790383B (zh) * 2019-06-19 2023-01-21 慧榮科技股份有限公司 資料儲存裝置與資料處理方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7139864B2 (en) * 2003-12-30 2006-11-21 Sandisk Corporation Non-volatile memory and method with block management system
US7386655B2 (en) * 2004-12-16 2008-06-10 Sandisk Corporation Non-volatile memory and method with improved indexing for scratch pad and update blocks
US7315917B2 (en) * 2005-01-20 2008-01-01 Sandisk Corporation Scheduling of housekeeping operations in flash memory systems

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI782654B (zh) * 2021-02-18 2022-11-01 慧榮科技股份有限公司 垃圾回收操作的管理機制
US11494299B2 (en) 2021-02-18 2022-11-08 Silicon Motion, Inc. Garbage collection operation management with early garbage collection starting point
US11681615B2 (en) 2021-02-18 2023-06-20 Silicon Motion, Inc. Garbage collection operation management based on overall valid page percentage of source block and candidate source block
US11704241B2 (en) 2021-02-18 2023-07-18 Silicon Motion, Inc. Garbage collection operation management with early garbage collection starting point
US11809312B2 (en) 2021-02-18 2023-11-07 Silicon Motion, Inc. Garbage collection operation management based on overall spare area

Also Published As

Publication number Publication date
TW200821829A (en) 2008-05-16
WO2008042596A3 (en) 2008-07-31
WO2008042596A2 (en) 2008-04-10

Similar Documents

Publication Publication Date Title
US7441071B2 (en) Memory systems for phased garbage collection using phased garbage collection block or scratch pad block as a buffer
US7444462B2 (en) Methods for phased garbage collection using phased garbage collection block or scratch pad block as a buffer
JP7366795B2 (ja) メモリシステムおよび制御方法
KR100922308B1 (ko) 페이징된 가비지 콜렉션
US7464216B2 (en) Method for phased garbage collection with state indicators
US7444463B2 (en) System for phased garbage collection with state indicators
US7451265B2 (en) Non-volatile memory storage systems for phased garbage collection
JP4931810B2 (ja) 最適化されたシーケンシャルなクラスタの管理のためのfat分析
US7444461B2 (en) Methods for phased garbage collection
US20080235489A1 (en) Systems for forcing an update block to remain sequential
US8341375B2 (en) Methods for conversion of update blocks based on association with host file management data structures
US20080162787A1 (en) System for block relinking
US20080162612A1 (en) Method for block relinking
TWI376600B (en) Memory systems and method for phased garbage collection using phased garbage collection block or scratch pad block as a buffer
US7904670B2 (en) Methods for conversion of update blocks based on comparison with a threshold size
US20080235464A1 (en) System for conversion of update blocks based on comparison with a threshold size
US20080235465A1 (en) Systems for conversion of update blocks based on association with host file management data structures
US8275953B2 (en) Methods for forcing an update block to remain sequential
TW200847162A (en) Methods for storing memory operations in a queue
JP2003058417A (ja) 記憶装置
JP4737223B2 (ja) メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP2006011533A (ja) メモリカード、半導体装置、及び半導体メモリの制御方法
TW200842577A (en) System for block relinking
JP2005115562A (ja) フラッシュrom制御装置
JP4235595B2 (ja) メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム及びフラッシュメモリの制御方法

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees