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

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

Info

Publication number
TW200821829A
TW200821829A TW96134738A TW96134738A TW200821829A TW 200821829 A TW200821829 A TW 200821829A TW 96134738 A TW96134738 A TW 96134738A TW 96134738 A TW96134738 A TW 96134738A TW 200821829 A TW200821829 A TW 200821829A
Authority
TW
Taiwan
Prior art keywords
block
garbage collection
data
write command
storage system
Prior art date
Application number
TW96134738A
Other languages
Chinese (zh)
Other versions
TWI376600B (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/en
Application granted granted Critical
Publication of TWI376600B publication Critical patent/TWI376600B/en

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

A method for phased garbage collection is provided. In this method, a write command is received to write data. The write command is allocated a timeout period to complete an execution of the write command. Thereafter, a busy signal is asserted and a portion of a garbage collection operation is performed for a garbage collection time period. The data are written to a block and the busy signal is released before the timeout period.

Description

200821829 九、發明說明: 【發明所屬之技術領域】 本發明一般係關於記憶體操作,且更特定言之,係關於 用以執行階段性垃圾收集操作之方法及系統。 、 【先前技術】 在非揮發性記憶體儲存系統中,對儲存在記憶體中的資 料之區塊進行週期性垃圾收集(即,壓縮或合併)以回收記 憶體的儲存容量。在一典型垃圾收集操作中,將有效資料 從一區塊複製到另一區塊。在傳輸有效資料之後,抹除原 始區塊以提供儲存容量。目冑’寫入操作可以觸發非:發 性記憶體儲存系統以執行垃圾收集操作。主機在得到觸發 情況下允許將固定時間數量用於寫入操作的執行,該寫^ 操作包含垃圾收集操作。例如,安全數位協定將時間數量 限制為250毫秒。若非揮發性記憶體儲存系統在寫入操作 中超過此固定時間數量,則可能產生逾時錯誤。 ” 記憶體區塊之大小由於增加的容量、較高平行度以及晶 粒大小縮放比例而-直在增加。因此,寫人操作的執行因 傳輸較多資㈣花費較長時間。垃圾收集操仙此可以輕 易地超過分配給寫入操作的固定時間數量。因此,當用以 執行垃圾收集操作的時間之數量超過固定時間數量^需要 預防逾時錯誤。 【發明内容】 本發明之各種具體實施例提供用於階段性垃圾收集操作 的方法及/或系統。應該明自,可採用許多方式來實施該 124728.doc 200821829 等具體實施例,包含一方法、一電路、一系統或一裝置。 以下說明本發明之若干具體實施例。 在一具體實施例中,提供一種用於階段性垃圾收集之方 法。採用此方法,接收一寫入命令以寫入資料。該寫入命 令得以分配一逾時週期以完成該寫入命令的執行。然後, 宣告一忙碌信號並且在一垃圾收集時間週期内執行垃圾收 集操作之一部分。將資料寫入一區塊並且在該逾時週期前 解除該忙碌信號。 從結合藉由範例說明本發明原理之附圖進行的下列詳細 說明可明白本發明之其他具體實施例及優點。 【實施方式】 以下連同附圖提供一或多個具體實施例之詳細說明。該 詳細說明結合此類具體實施例加以提供,但並不限於任何 特定具體實施例。範疇僅受申請專利範圍限制且涵蓋許多 替代性具體實施例、修改及等效物。以下說明中提出許多 特定細節以便提供對本發明的充分瞭解。基於範例之目的 來提供此等細節並且可依據申請專利範圍而無需此等特定 細節之某些或全部來實施說明的具體實施例。基於清楚之 目的,未样細說明與該等具體實施例相關之技術領域中已 知的技術材料以避免不必要地使該說明模糊不清。 本文說明的具體實施例提供用於階段性垃圾收集之方法 及/或系統。一般而言,可將垃圾收集操作分成多個階 段。可以在多個逾時週期内執行垃圾收集操作之階段(或 部分)。如以下更詳細地說明,在一個逾時週期内執行垃 124728.doc 200821829 圾收集操作之-部分而且可將從寫入命令接收 在-階段性垃圾收集區塊或一暫存區塊中。、’存 ,係依據本發明之—具體實施例的—非揮發性記 儲存系統之一範例的簡化方免 门化万塊圖。一主機系統(例如,卓 上型電腦、聲訊播放器、數 ^ 双值相機以及其他計算裝 =料寫入非揮發性記憶體館存系請並從該系統讀取 資料。非揮發性記憶體儲存系統1〇2可加以嵌入在該主^ 内或知用可移除方式與該主機連接。如圖i所示,非揮發 性吕己憶體儲存系統102包含與記憶體118通信的記憶體控制 器⑽般而曰己憶體控制器110控制記憶體118之操 作作之靶例包含寫入(或程式化)資料、讀取資料、抹 除資料、相資料、專注於垃圾收集操作以及其他操作。 記憶體控制器U0包含匯流排m ’其透過主機介面ι〇4鱼 系統匯流排126介接並且該記憶體控制器透過記憶體介面 108與„己fe、體118介接。主機介面1〇4、處理器1〇6 (例如, 微處理器、微控制器以及其他處理器)、記憶體介面⑽、 隨機存取記憶體(RAM) 112、錯誤校正碼(ECC)電路ιΐ4以 及唯讀記憶體(ROM) 116經由匯流排124進行通信。r〇m 116可以儲存一儲存系統韌體,其包含用以控制記憶體ιΐ8 之操作的程式指令。處理器1〇6經組態用以執行從r〇m 116載入的程式指令。該儲存系統韌體可加以臨時載入 RAM 112,且此外尺人“可用以緩衝在一主機與記憶體ιΐ8 之間傳輸的資料。ECC電路114可以檢查在該主機與記憶 體118之間穿過記憶體控制器1丨〇的錯誤。若發現錯誤,則 124728.doc 200821829 其數目取決於所利 ECC電路114可以校正若干錯誤位元, 用的ECC演算法。 記憶體118可以包含陣列邏輯12G、非揮發性記憶體單元 陣列m以及記㈣單㈣和3 1揮發性記憶體單元陣 列122可包含各種非揮發性記憶體結構及技術。非揮發性 記憶體技術之範例包含快閃記憶體(例如,nand、n〇r、200821829 IX. Description of the Invention: TECHNICAL FIELD OF THE INVENTION The present invention relates generally to memory operations and, more particularly, to methods and systems for performing staged garbage collection operations. [Prior Art] In a non-volatile memory storage system, a block of information stored in a memory is periodically garbage collected (i.e., compressed or merged) to recover the storage capacity of the memory. In a typical garbage collection operation, valid data is copied from one block to another. After transferring valid data, the original block is erased to provide storage capacity. The target 'write operation can trigger a non-issue memory storage system to perform garbage collection operations. The host, when triggered, allows a fixed amount of time to be used for the execution of a write operation that includes a garbage collection operation. For example, a secure digital agreement limits the amount of time to 250 milliseconds. If the non-volatile memory storage system exceeds this fixed amount of time in a write operation, a timeout error may occur. The size of the memory block is increasing due to increased capacity, higher parallelism, and grain size scaling. Therefore, the execution of the writer operation takes a long time due to the transmission of more resources (4). This can easily exceed the fixed amount of time allocated to the write operation. Therefore, when the number of times to perform the garbage collection operation exceeds the fixed time amount, it is necessary to prevent the timeout error. [Summary of the Invention] Various embodiments of the present invention Methods and/or systems for staged garbage collection operations are provided. It should be understood that the specific embodiments, such as a method, a circuit, a system, or a device, can be implemented in a number of ways. Several embodiments of the present invention. In a specific embodiment, a method for phased garbage collection is provided. In this method, a write command is received to write data. The write command is assigned a timeout period. To complete the execution of the write command. Then, announce a busy signal and execute the garbage during a garbage collection time period Collecting a portion of the operation. Writing the data into a block and releasing the busy signal before the timeout period. Other embodiments of the present invention will be apparent from the following detailed description, taken in conjunction with the claims DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS The detailed description of one or more embodiments is provided in conjunction with the accompanying drawings. The scope of the invention is to be construed as being limited by the claims Specific embodiments of the invention are described in some or all of the specific details. For the purpose of clarity, the technical materials known in the technical fields related to the specific embodiments are not described in detail to avoid unnecessarily obscuring the description. Unclear. The specific embodiments described herein provide for staged garbage collection. Method and/or system. In general, the garbage collection operation can be divided into multiple stages. The stage (or part) of the garbage collection operation can be performed in multiple timeout periods. As explained in more detail below, in a timeout During the period, the portion of the garbage collection operation may be received from the write command in the -phase garbage collection block or a temporary storage block. The storage is performed according to the present invention. Example - A simplified example of a non-volatile memory storage system. A host system (for example, a CD-ROM, a voice player, a digital camera, and other computing devices). The volatile memory library system should read and read data from the system. The non-volatile memory storage system 1〇2 can be embedded in the main unit or connected to the host in a removable manner. It is shown that the non-volatile memory system 102 includes a memory controller (10) in communication with the memory 118. The target controller 110 controls the operation of the memory 118 to include writing (or programming). )data, Access to the information, in addition to wiping data, phase data, focusing on garbage collection operations and other operations. The memory controller U0 includes a bus bar m' which is interfaced through the host interface ι〇4 fish system bus 126 and the memory controller interfaces with the body interface 118 through the memory interface 108. The host interface 1〇4 , processor 1〇6 (eg, microprocessor, microcontroller, and other processors), memory interface (10), random access memory (RAM) 112, error correction code (ECC) circuit ιΐ4, and read-only memory (ROM) 116 communicates via bus 124. r〇m 116 can store a storage system firmware containing program instructions for controlling the operation of memory 。 8. Processor 〇6 is configured to execute from r Program instructions loaded by 〇m 116. The storage system firmware can be temporarily loaded into the RAM 112, and in addition the ruler "can be used to buffer data transmitted between a host and the memory ι8. The ECC circuit 114 can check for errors that pass through the memory controller 1 between the host and the memory 118. If an error is found, the number of 124728.doc 200821829 depends on the ECC algorithm that the ECC circuit 114 can correct for several error bits. The memory 118 can include array logic 12G, a non-volatile memory cell array m, and a (four) single (four) and 31 volatile memory cell array 122 can include various non-volatile memory structures and techniques. Examples of non-volatile memory technologies include flash memory (eg, nand, n〇r,

單一位準單元(SLC/BIN)、多位準單元(mlc)、分割位元 線NOR (DIN0R)、AND、高電容耗合比率㈤cr)、不對稱 無接觸電晶體(ACT)以及其他快閃記憶體)、可抹除可程式 化唯讀記憶體(臟⑽)、電可抹除可程式化唯讀記憶體 (EEPROM)、唯讀記憶體(_)、_次性可程式化記憶體 (OTP)以及其他記憶體技術。 在-具體實施例中,記憶體118可另外包含記憶體單元 陣列123,其經組態用以儲存一緩衝器。該緩衝器經組態 用以在階段性垃圾收集操作中儲存資料。如以下更詳細地 說明,在階段性垃圾收集操作中,可以將從寫入命令接收 的新資料儲存在該緩衝器中。應該明白,依據本發明之具 體實施例,亦可將該緩衝器定位在RAM 112或非揮發性記 隐體單兀P車列122中。類似於非揮發性記憶體單元陣列 122 ’記憶體單元陣列123可包含各種記憶體結構及技術。 因為記憶體單元陣列123經組態用以緩衝操作,所以該記 Μ單元陣列可併入不同記憶體結構或使用不同參數,其 比非揮發性記憶體陣列122快、經濟且可靠。 陣列邏輯120採用非揮發性記憶體單元陣列122及記憶體 124728.doc 200821829 單元陣列123與記憶體控制器11〇介接並且可以提供(例如) 對該非揮發性記憶體單元陣列及該記憶體單元陣列的定 址、> 料傳輸及感測以及其他支援。為支援非揮發性記憶 體單元陣列122及記憶體單元陣列123,陣列邏輯12〇可以 包含列解碼器、行解碼器、充電泵、字線電壓產生器、頁 面緩衝器、輸入/輸出緩衝器、位址緩衝器以及其他電 路。 圖2係該記憶體單元陣列在平面中的組織之簡化方塊 圖。一或多個記憶體單元陣列可加以分成多個平面或子陣 列。在圖2之範例中,一記憶體單元陣列係分成四個平面 202至205。應該明白,其他數目的平面(例如丨、2 n 或更夕個平面)可存在於一非揮發性記憶體儲存系统中。 每-個平面202、203、204或2〇5均可加以分成定位在個別 平面202至205中的記憶體單元之區塊,例如區塊21〇至213 以及㈣至⑵。記㈣單元之—區塊係可在-起實體抹除 的記憶體單元之最小數目。為獲得增加的平行度,該等區 塊可在較大元區塊單位中操作,在料單位中自每一個平 面202、203、204或205的-個區塊係採用邏輯方式連結在 -起以形成-元區塊。例如’四個區塊21〇至213可採用邏 輯方式鏈結在-起以形成__元區塊。此外,用以形成一元 區塊的該等區塊可以來自其個別平面(例如平面2〇2至 内的各位置。例如,自其個別平面2〇2至2〇5内的各位置之 四個區塊220至223可採用邏輯方式加以連結在-起以形成 另一元區塊。一元區塊可以橫跨該非揮發性記憶體儲存系 124728.doc 200821829 統内的所有四個邏輯平面202至2()5而延伸或該非揮發性記 憶體儲存“可以採用—或多個不同平面中的—或多個區 塊動態地形成元區塊。Single-order quasi-cell (SLC/BIN), multi-level cell (mlc), split bit line NOR (DIN0R), AND, high capacitance ratio (f) cr), asymmetric contactless transistor (ACT) and other flashes Memory), erasable programmable read-only memory (dirty (10)), electrically erasable programmable read-only memory (EEPROM), read-only memory (_), _ secondary programmable memory (OTP) and other memory technologies. In a particular embodiment, memory 118 can additionally include a memory cell array 123 configured to store a buffer. The buffer is configured to store data in a phased garbage collection operation. As explained in more detail below, in a phased garbage collection operation, new data received from a write command can be stored in the buffer. It will be appreciated that the buffer may also be positioned in the RAM 112 or the non-volatile crypto unit P train 122 in accordance with a particular embodiment of the present invention. Similar to the non-volatile memory cell array 122' memory cell array 123 can include a variety of memory structures and techniques. Because the memory cell array 123 is configured for buffering operations, the memory cell array can incorporate different memory structures or use different parameters that are faster, more economical, and more reliable than the non-volatile memory array 122. The array logic 120 employs a non-volatile memory cell array 122 and a memory 124728.doc 200821829. The cell array 123 interfaces with the memory controller 11 and can provide, for example, an array of non-volatile memory cells and the memory cell. Array addressing, > material transfer and sensing, and other support. To support the non-volatile memory cell array 122 and the memory cell array 123, the array logic 12A may include a column decoder, a row decoder, a charge pump, a word line voltage generator, a page buffer, an input/output buffer, Address buffers and other circuits. Figure 2 is a simplified block diagram of the organization of the memory cell array in a plane. The one or more memory cell arrays can be divided into a plurality of planes or sub-arrays. In the example of Fig. 2, a memory cell array is divided into four planes 202 to 205. It should be understood that other numbers of planes (e.g., 丨, 2 n or even a plane) may be present in a non-volatile memory storage system. Each of the planes 202, 203, 204 or 2〇5 can be divided into blocks of memory cells positioned in the individual planes 202 to 205, such as blocks 21〇 to 213 and (4) to (2). The number of cells in the (4) unit is the minimum number of memory cells that can be physically erased. In order to obtain increased parallelism, the blocks may operate in larger metablock units, and the blocks from each plane 202, 203, 204 or 205 are logically linked in the unit of material. To form a metablock. For example, 'four blocks 21 〇 to 213 can be logically linked to form a __ metablock. Furthermore, the blocks used to form the unary block may be from their individual planes (e.g., from position 2〇2 to within. For example, four positions from their respective planes 2〇2 to 2〇5) Blocks 220 through 223 may be logically coupled together to form another metablock. The unary block may span all four logical planes 202 to 2 within the non-volatile memory storage system 124728.doc 200821829 ( And extending or the non-volatile memory storage "may employ - or a plurality of different planes - or a plurality of blocks to dynamically form a metablock.

圖3係記憶體單元之頁面的簡化方塊圖。每一個區塊(例 如區塊21()至213)係進—步分成記憶體單元之頁面。如圖3 所示’每-個區塊2H)、211、212或213係分成八個頁面p〇 至P7。或者,在每一個區塊21〇、211、212或2i3内可以存 在記憶體單元之16、32或更多個頁面。為增加該非揮發性 記憶體儲存系統之操作平行度,二或更多個區塊内的頁面 可採用邏輯方式加以連結成元頁。例如,可採用自四個區 塊2 10至2 13之每一個的一頁面(例如P1)形成一元頁。一元 頁可以橫跨該非揮發性記憶體儲存系統内的所有平面而延 伸或該非揮發性記憶體儲存系統可以採用一或多個不同平 面之一或多個分離區塊中的一或多個頁面來動態地形成元 頁0 圖4係記憶體單元之區段的簡化方塊圖。一頁面可進一 步加以分成一或多個區段。每一個頁面中的資料之數量可 以係資料之一或多個區段的整數,其中每一個區段可儲存 5 12個資料位元組。圖4顯示分成二個區段402及404之頁面 401。每一個區段402或404包含可以係5 12個位元組大小的 資料4 0 6 ’以及與該資料相關聯的管理資料4 0 5。管理資料 405之大小可以係16個位元組並且可以儲存(例如)在程式化 期間採用資料406計算的ECC、與該資料相關聯的邏輯位 址、已抹除並重新程式化該區塊的次數之計數、控制旗 124728.doc -11 - 200821829 標、操作電壓位準、以及與該資料相關聯的其他資訊。 圖5係一主機與非揮發性記憶體儲存系統之間之一邏輯 "面的簡化方塊圖。一連續邏輯位址空間512提供用於可 力X儲存在^己憶體中的資料之位址。如由該主機所觀察的 邏輯位址空間512可加以分成資料叢集之增量。每一個叢 集了包έ >料的若干區段,例如在4與64個區段之間。 ,如圖5所不,在該主機上執行的應用程式建立三個資料 檔案1、2或3。檔案丨、2或3可以係有序資料集且由獨特名 稱或其他參考加以識別。該主機指派尚未分配給其他檔案 的璉輯位址空間給檔案1。此處,檔案丨係顯示為已得以 指派一連續範圍的可用邏輯位址。 田主機在建立檔案1後建立檔案2時,該主機同樣地指派 込輯位址玉間5 12内二個不同範圍的連續位址。主機可以 不指派連續邏輯位址給一檔案(例如檔案i、2或3),而可以 相反地n已經分配給其他檔案的邏輯位址範圍之間的邏 輯位址之片斷。圖5之範例顯示,另一檔案3得以分配邏輯 位址空間512内的非連續位址範圍,其先前未分配給檔釣 及2以及其他資料。 “主機可以藉由維持檔案分配表(FAT)來追蹤邏輯位址 二間512 ’其中維持藉由轉換由該主機指派給各資料標案 (例如t案1至3)的邏輯位址。在該非揮發性記憶體儲存系 統儲存檔案1至3的情況下,該主機藉由該等檔案的邏輯位 址而非藉由實體位置來參考該等檔案。另一方面,該非揮 發性記憶體儲存系統藉由已將資料寫入其中的邏輯位址之 124728.doc •12- 200821829 邛分來參考檔案〗至3而不藉由分配給該 來參考該等檔案。該非揮發性 田:1輯位址 ^ 己k體儲存系統將由該主嬙 &供的邏輯位址轉換成記憶體單元陣⑽2㈣獨特實體 體儲存系統所維持 =輯Sr列中儲存自該主機的。區塊5〇4表示此 =位址轉換之-表袼,其係由該非揮發性記憶Figure 3 is a simplified block diagram of a page of memory cells. Each block (e.g., blocks 21() through 213) is stepped into a page of memory cells. As shown in Fig. 3, 'every block 2H', 211, 212 or 213 is divided into eight pages p〇 to P7. Alternatively, there may be 16, 32 or more pages of memory cells within each block 21, 211, 212 or 2i3. To increase the operational parallelism of the non-volatile memory storage system, pages within two or more blocks can be logically linked into a metapage. For example, a page (e.g., P1) from each of the four blocks 2 10 to 2 13 may be employed to form a unitary page. A unitary page may extend across all planes within the non-volatile memory storage system or the non-volatile memory storage system may employ one or more of one or more different planes or one or more of the separate blocks Dynamically Forming Metapages 0 Figure 4 is a simplified block diagram of sections of memory cells. A page can be further divided into one or more segments. The amount of material in each page can be an integer of one or more segments of the data, with each segment storing 5 12 data bytes. Figure 4 shows page 401 divided into two sections 402 and 404. Each segment 402 or 404 contains data 4 0 6 ' that can be 5 12 byte sizes and management data 4500 associated with the material. The management profile 405 can be 16 bytes in size and can store, for example, an ECC calculated using the data 406 during stylization, a logical address associated with the data, erased and reprogrammed the block. Count of counts, control flags 124728.doc -11 - 200821829 Standard, operating voltage level, and other information associated with this material. Figure 5 is a simplified block diagram of one of the logical "faces between a host and a non-volatile memory storage system. A contiguous logical address space 512 provides the address of the data for the power X to store in the memory. The logical address space 512 as observed by the host can be divided into increments of data clusters. Each of the clusters has several sections of the package >, for example between 4 and 64 sections. As shown in Figure 5, the application executing on the host creates three profiles 1, 2 or 3. Files 2, 2 or 3 can be ordered data sets and identified by unique names or other references. The host assigns the address space that has not been assigned to other files to file 1. Here, the file system is shown as having been able to assign a continuous range of available logical addresses. When the host computer establishes the file 2 after the file 1 is created, the host also assigns two consecutive ranges of consecutive addresses in the jade room 5 12 of the address. The host may not assign consecutive logical addresses to a file (e. g., file i, 2, or 3), but instead may have n pieces of logical addresses that have been assigned to logical addresses between other files. The example of Figure 5 shows that another file 3 is assigned a non-contiguous range of addresses within the logical address space 512 that was not previously assigned to the game and 2 and other materials. "The host can track the logical address two 512' by maintaining the file allocation table (FAT), which maintains the logical address assigned by the host to each data standard (for example, t cases 1 to 3). In the case where the volatile memory storage system stores files 1 to 3, the host refers to the files by the logical addresses of the files rather than by the physical location. On the other hand, the non-volatile memory storage system borrows The logical address in which the data has been written is 124728.doc •12-200821829, and the files are referenced to 3 instead of being referenced by the file. The non-volatile field: 1 address ^ The physical storage system converts the logical address provided by the main device into a memory cell array (10). (4) The unique entity storage system maintains the value stored in the Sr column from the host. Block 5〇4 indicates this = bit Site-transformation

圖6係依據本發明之-具體實施例用於階段性垃圾收集 的操作之-般概述的流㈣。應該明自儲存在特定主機 邏輯位址中的資料可由新資料加以重寫,因為原始儲存資 料會變為廢棄。作為回應,該非揮發性記憶體儲存系統在 一更新區塊中寫人新資料,並接著針對該等邏輯位址來改 變邏輯至實體位址表格以識別其中儲存新f料的新實體區 塊。接著抹除包含該等邏輯位址中的原始f料之該等區塊 並使其可用於儲存額外資料。此類抹除可以在寫人操作之 前發生。因此’該記憶體控制器獲悉,在將新資料寫入同 一邏輯位址之後,該主機已致使一給定邏輯位址中的資料 廢棄或無效。記憶體之許多區塊因此可以在一時間週期内 儲存無效資料。 區塊及兀區塊之大小在增加而且此點導致一較大比例的 個別貪料寫入儲存少於一元區塊之儲存容量並且在許多情 況下甚至少於一區塊之儲存容量的資料數量。因為該非揮 發性記憶體儲存系統可以將新資料引導至抹除的集區元區 塊,所以此類引導可以導致區塊或元區塊之部分未得以填 充。若新資料係儲存在另一元區塊中的某些資料之更新, 124728.doc -13- 200821829 則亦需要以邏輯位址順序將自具有鄰近於新資料元頁之邏 輯位址的邏輯位址之另一元區塊的剩餘有效資料元頁複製 於新元區塊中。舊元區塊可保持其他有效資料元頁。因 此,可以致使一個別元區塊之某些元頁的資料廢棄或無 效,並由具有寫入一不同元區塊之同一邏輯位址的新資料 來取代該資料。 為維持足夠實體記憶體空間以在邏輯位址空間内儲存資Figure 6 is a generalized flow (IV) of an operation for staged garbage collection in accordance with an embodiment of the present invention. It should be noted that the material stored in the specific host logical address can be rewritten by the new data because the original storage data becomes obsolete. In response, the non-volatile memory storage system writes new data in an update block and then changes the logical-to-physical address table for the logical address to identify a new physical block in which the new material is stored. The blocks containing the original f material in the logical addresses are then erased and made available for storing additional data. This type of erasure can occur before the writer operates. Thus, the memory controller learns that after writing new data to the same logical address, the host has caused the data in a given logical address to be discarded or invalid. Many blocks of memory can therefore store invalid data for a period of time. The size of the block and block is increasing and this results in a large proportion of individual greed being written to store the storage capacity of less than one dollar block and in many cases even less than the storage capacity of a block. . Because the non-volatile memory storage system can direct new data to the erased metablock block, such booting can result in portions of the block or metablock that are not filled. If the new data is an update of some of the data stored in another metablock, 124728.doc -13- 200821829 will also need to logically address the logical address from the logical address adjacent to the new data element page. The remaining valid data element pages of the other metablock are copied in the new metablock. The old metablock can hold other valid material metapages. Therefore, it is possible to discard or invalidate certain meta pages of a different metablock and replace the data with new data having the same logical address written to a different metablock. In order to maintain sufficient physical memory space to store resources in the logical address space

U 料,可以對此類資料進行週期性垃圾收集(即,壓縮或合 併)。一般而言,垃圾收集操作涉及從一區塊讀取有效資 料並將有效資料寫入一新區塊,從而在程序中忽略無效資 料。例如,在圖5之方塊圖中,新資料檔案3的建立使得舊 資料檔案3廢棄。舊資料檔案3可加以抹除以回收由舊資料 檔案3使用的實體容量。然而,在將檔案2及舊擋案3儲存 在同一實體區塊的情況下,此類抹除操作將觸發垃圾收集 操作。 〃 返回至圖6,該非揮發性記憶體儲存系統可在分配給一 寫入命令的逾時週期内執行垃圾收集操作。若無法在一個 逾時週期内完成垃圾收集操作,則可依據本發明之一具體 實施例將-次垃圾收集操作成分若干不同階段(或部分、)。 ^該非揮發性記憶體儲存系統使用分配給多個寫入命 令的逾時來執行垃圾收⑽作之部分。換言之:該二 =性記憶體儲存系統利用分配給多個寫入命令的逾時週 J來執行一次垃圾收集操作之部分。 如圖6所不,在操作6〇2中接收用以寫入新資料的寫入命 124728.doc -14- 200821829 令。本文中所用的術語”新資料,,係定義為由該非揮發性記 體儲存系統從欲加以寫入該記憶體之一寫入命令所接收 的資料。該寫入命令得以分配—逾時週期以完成該寫入命 令的執行。換言之,該逾時週期係分配用於執行該寫入命 令的時間週期。分配的逾時週期之一範例係25〇毫秒。該 •寫入命令可以係一單一區段寫入命令或一多區段寫入命 - 令。如以下更詳細地說明,在單一區段寫入命令中,可以 ㈣資料作為單-區段寫入橫跨-記憶體之隨機位址。在 一多區段寫入命令中,將具有鄰近邏輯位址的新資料之多 個區段寫入該記憶體。 右無法在該逾時週期内完成一次垃圾收集操作,如操作 604所不,則在分配給該寫入命令的逾時週期内執行垃圾 集操作之彳分。可以在後來的逾時週期中完成垃圾收 集操作之剩餘部分。例如,圖7顯示依據本發明之一具體 f施例,分成多個部分780及781的一次垃圾收集操作之一 U ㉟例㈣化方塊圖。如圖7所示’-非揮發性記憶體儲存 系、先接收夕區段寫入命令704,並且隨後接收新資料76〇至 762之夕個區段以將其儲存於記憶體中。在接收資料mo、 761或762之每一個區段之後,宣告忙碌信號7〇2。該非揮 I性圮憶體儲存系統宣告忙碌信號7〇2以允許該寫入命令 的執行,該寫入命令可包含垃圾收集操作(若需要),以及 /、他操作。當宣告忙碌信號7〇2時,一主機並不發送另一 〒令或額外資料至該非揮發性記憶體儲存系統。該非揮發 性記憶體儲存系統可以在接收資料76〇、761或762之每一 124728.doc -15 - 200821829 個區奴在有限時間數量之後宣告忙碌信號7们,因為該 主機允許將有限的固定數量之時間(即,冑時週期乃〇至 752)用於該寫人命令的執行。若該忙碌信號在比逾時週期 750、751或752長的時間内保持活動,則該主機可以重複 該寫入命令或中斷該程序。因此,該非揮發性記憶體儲存 系統無法在超過逾時週期75〇、751或乃2的時間内宣告忙 號702 〇在完成寫人資料76()至—之多個區段之後解 除忙碌信號7G2使得該主機可進_步與該非揮發性記憶體 儲存系統通信。 仍參考圖7,可以在多個逾時週期750至752之間分配垃 圾收集之部分780及781。換言之,該非揮發性記憶體儲存 系統可以利用每一個逾時週期75〇、751或752以執行一次 垃圾收集操作之每一個部分78〇或781。例如,在第一逾時 週期75G期間執行_次垃圾收集操作之第_部分。此 處,可以在第-逾時週期75〇期間將有效資料之一部分從 -個區塊複製到另一區塊。在第二逾時週期751内,繼續 在第-逾時週期中啟動的先前垃圾收集操作。該非揮發性 記憶體儲存系統在料週期751期間執行先前垃圾收集操 作之第二部分781 ’直到完成先前垃圾收集。藉由將有效 資料之剩餘部分或最後部分從一個區塊複製到另一區塊, 可以:成先前垃圾收集。若無法在第二逾時週期751内完 成先前垃圾收集操作,則該非揮發性記憶體儲存系統可: 使用隨後的逾時週期(例如第三逾時· 752)來完成垃圾收 集操作。在多區段寫人命令7G4結束時,該非揮發性記憶 124728.doc -16 - 200821829 體儲存系統可以在接收停止命令706之後宣告忙碌俨號 7〇2,直至將資料760至762之所有區段寫入該記憶體單元 陣列。應該注意,圖7說明與一多區段寫入命令相關聯的 操作。如以下更詳細地說明,所執行的垃圾收集操作對於 早一區段寫入命令及多區段寫入命令而言可以不同。例 如’如以下更詳細地說明,用以儲存新資料的緩衝器之類 型可取決於所接收的寫入命令係翠一區段寫入命令還係多 區段寫入命令。U material, which can be used for periodic garbage collection (ie, compression or consolidation). In general, garbage collection involves reading valid data from a block and writing valid data to a new block, ignoring invalid data in the program. For example, in the block diagram of Fig. 5, the creation of the new data file 3 causes the old data file 3 to be discarded. The old data file 3 can be erased to recover the physical capacity used by the old data file 3. However, in the case where File 2 and Old File 3 are stored in the same physical block, such an erase operation will trigger a garbage collection operation. 〃 Returning to Figure 6, the non-volatile memory storage system can perform a garbage collection operation within a timeout period assigned to a write command. If the garbage collection operation cannot be completed within a timeout period, the garbage collection operation may be componentd in several different stages (or portions) in accordance with one embodiment of the present invention. ^ The non-volatile memory storage system uses the timeout assigned to multiple write commands to perform the garbage collection (10) portion. In other words: the two-sex memory storage system performs a portion of the garbage collection operation using the timeout period J assigned to the plurality of write commands. As shown in Fig. 6, in the operation 6〇2, the write command 124728.doc -14-200821829 is used to write new data. As used herein, the term "new data" is defined as the data received by the non-volatile record storage system from a write command to be written to the memory. The write command is assigned - the timeout period is The execution of the write command is completed. In other words, the timeout period is a time period for executing the write command. An example of the allocated timeout period is 25 milliseconds. The write command can be a single region. Segment write command or a multi-segment write command. As explained in more detail below, in a single sector write command, (4) data can be written as a single-segment write across the random address of the memory. In a multi-session write command, multiple segments of new data having adjacent logical addresses are written to the memory. The right cannot complete a garbage collection operation within the timeout period, as operation 604 does not. The garbage collection operation is performed within the timeout period assigned to the write command. The remainder of the garbage collection operation may be completed in a later timeout period. For example, Figure 7 shows a specific f in accordance with the present invention. Shi For example, one of the three garbage collection operations of the plurality of portions 780 and 781 is U 35 (four) block diagram. As shown in FIG. 7 '- non-volatile memory storage system, first receiving the evening segment write command 704, and The new data 76 〇 to 762 is then received to store it in the memory. After receiving each of the data mo, 761 or 762, the busy signal 7 〇 2 is declared. The body storage system announces a busy signal 7〇2 to allow execution of the write command, which may include a garbage collection operation (if needed), and/or his operation. When the busy signal is declared 7〇2, a host Do not send another order or additional information to the non-volatile memory storage system. The non-volatile memory storage system can receive each of the data 76〇, 761 or 762 124728.doc -15 - 200821829 The busy signal is declared after the amount of time because the host allows a limited fixed amount of time (ie, the time period is up to 752) for the execution of the writer command. If the busy signal is in the ratio timeout period 750 , 751 or 752 long The host can repeat the write command or interrupt the program for a period of time. Therefore, the non-volatile memory storage system cannot announce the busy number 702 within a timeout of 75 〇, 751 or 2 over the timeout period. Deactivating the busy signal 7G2 after completing the writing of the plurality of segments 76() to the plurality of segments enables the host to communicate with the non-volatile memory storage system. Still referring to FIG. 7, the plurality of timeout periods 750 may be utilized. The garbage collection portions 780 and 781 are distributed between 752. In other words, the non-volatile memory storage system can utilize each of the timeout periods 75 〇, 751 or 752 to perform each portion 78 〇 or 781 of a garbage collection operation. For example, the _th portion of the garbage collection operation is executed during the first timeout period 75G. Here, one part of the valid material can be copied from one block to another during the first-time period of 75 。. During the second timeout period 751, the previous garbage collection operation initiated in the first-timeout period continues. The non-volatile memory storage system performs a second portion 781 ' of the previous garbage collection operation during the material cycle 751 until the previous garbage collection is completed. By copying the remaining or last portion of the valid data from one block to another, it can be: a previous garbage collection. If the previous garbage collection operation cannot be completed within the second timeout period 751, the non-volatile memory storage system can: Complete the garbage collection operation using a subsequent timeout period (e.g., third timeout 752). At the end of the multi-session write command 7G4, the non-volatile memory 124728.doc -16 - 200821829 volume storage system may announce the busy nickname 7〇2 after receiving the stop command 706 until all sections of the data 760-762 are Write to the memory cell array. It should be noted that Figure 7 illustrates the operations associated with a multi-session write command. As explained in more detail below, the garbage collection operation performed may be different for earlier segment write commands and multi-session write commands. For example, as explained in more detail below, the type of buffer used to store new data may depend on the received write command to be a sector write command or a multi-session write command.

C./ 返回至圖6’在-逾時週期内執行垃圾收集操作之一部 分之後,可以在操作606中將從寫入操作接收的新資料儲 存在與該非揮發性記憶體儲存系統相關聯的_緩衝器中。 具體實施财,該緩衝器可以係與該非揮發性記憶體 早陣列(例如’圖!所示的非揮發性記憶體陣列叫相關 二的^料結構。-資料結構之—範例包含非揮發性記憶體 ::陣列之—區塊’例如-階段性垃圾收集區塊或一暫存 區塊=在以下加以更詳細地說明。在另一具體實施例 :❹可以係1揮發性記㈣單㈣列之-區 二=可以將新資料儲存在定位於與該非揮發 關聯之RAM(例如,所示_叫中 的一區塊中。在另一且雜 新次料針^ 例中,如以上所說明,可將 的二體:位於分離記憶體單元陣列(例如,圖1所示 的5己〖思體早兀陣列123)中的—區塊中。 使用階段性垃圾收集區塊作為緩衝器 圖8係依據本發明之—具體實施例,用以制階段性垃 124728.doc -17- 200821829 圾收集區塊作為緩衝器來執行階段性垃圾收集的詳細操作 之流程圖。如圖8所示,在操作802中接收寫入命令以將新 資料寫入記憶體。如以下更詳細地說明,該寫入命令可以 係用以將資料之單一區段寫入記憶體的單—區段寫入命 令。在接收該寫入命令之後,該非揮發性記憶體儲存系^ 在操作804中宣告一忙碌信號。 在執行該寫入命令之前,纟垃圾收集時間週期内執行垃C./ Returning to FIG. 6' After performing a portion of the garbage collection operation within the -time period, new data received from the write operation may be stored in operation 606 in association with the non-volatile memory storage system. In the buffer. Specifically, the buffer may be in an early array with the non-volatile memory (for example, the non-volatile memory array shown in FIG.! is called the related structure. - The data structure - the example includes non-volatile memory Body:: array-block 'for example - staged garbage collection block or a temporary storage block = is explained in more detail below. In another specific embodiment: ❹ can be 1 volatile (four) single (four) column - Zone 2 = new data can be stored in the RAM associated with the non-volatile (eg, in a block of the _call shown. In another and new sub-pins, as explained above) The two bodies that can be placed are located in the block of the separated memory cell array (for example, the five-dimensional 兀 兀 兀 array 123 shown in Fig. 1). The phasic garbage collection block is used as the buffer. According to the embodiment of the present invention, a detailed flow chart for performing the staged garbage collection as a buffer for the stage garbage 124728.doc -17-200821829 garbage collection block is shown in FIG. Receiving a write command in operation 802 to write new data into As explained in more detail below, the write command can be used to write a single segment of data to a single-segment write command of the memory. After receiving the write command, the non-volatile memory is stored. System ^ announces a busy signal in operation 804. Execute the garbage collection time period before executing the write command

圾收集操作之一部分。例如,在一具體實施例中,將一或 多個第一區塊選擇用於垃圾收集操作。該一或多個第一區 塊可以包含無效資料及/或有效資料。如操作8〇6所示,在 :圾收集操作中於垃圾收集時間週期内將有效資料從一或 夕個第區塊複製到一第二區塊。根據分配給垃圾收集操 :的垃圾收集時間週期以及欲加以複製的有效資料:數 里’將所有有效資料或有效資料之一部分複製到該第二區 塊。在一範例中,分配用於垃圾收集操作的垃圾收集時間 週期可加以表達為 垃圾收集時間週期=逾時週mpr〇g 〇 〇) 中如以上說明的逾時週期係固定的有限時間週期。 :Pr:g係與將新資料寫入記憶體相關聯的最大程式化時間 =係該非揮發性記憶體儲存系統將新資料寫人記憶體所花 (g,最^㈣。在等式中,存在二個最A程式化時間 n , P 如以下更詳細地說明,第一最大程式化時 日# R & 、卞十冩入一弟三區塊而且第二最大程式化 、曰ί因於將新資料寫人—暫存區塊。因此,在一具體 124728.doc -18- 200821829 貝施例中’該非揮發性記情體 U體儲存糸統追蹤用以將有效資 料從一或多個第一區塊複製釗 尼11到,亥弟二區塊的時間之數量。 該非揮發性記憶體儲存李 子糸、、先在時間超過垃圾收集時間週期 前停止複製。 若無法藉由垃圾收隼睹間仴Α上 >、f門週期元成垃圾收集操作,則可 以在操作810中將與該寫入命令相關聯的新資料寫入一階 段性垃圾收集區塊。該非揮發性記憶體餘存系統可以在垃 圾收集操作之月il#月間或之後將新資料寫入階段性垃圾收 集區塊。階段性垃圾收集區塊具有更新區塊之特徵。一般 而言’可將從寫入命令接收的資料寫入一更新區塊。一專 用兀區塊可加以指派為用於在其内更新資料的每一個邏輯 群組之更新區塊。-冑輯群組係具有彳等於元區塊之大小 的一大小之邏輯位址群組。應該注意將資料之邏輯區段儲 存在包括一組邏輯鄰近區段的邏輯群組中。如以下更詳細 地說月彳以管理-更新區塊以採用序列順序或雜亂順序 Ο (即,非序列順序)來接收資料。階段性垃圾收集區塊可以 或可以不與一或多個第一區塊或該第二區塊相關聯。例 如,在一具體實施例中,一或多個第一區塊、該第二區塊 以及階段性垃圾收集區塊經組態成跨越單一邏輯群組或邏 輯位址之單一群組。因此,可以將自單一邏輯群組的資料 儲存在階段性垃圾收集區塊中,但是無法將自不同邏輯群 組的資料儲存在階段性垃圾收集區塊中。 在將新資料寫入階段性垃圾收集區塊並且在垃圾收集操 作時間週期内執行垃圾收集操作之後,該非揮發性記憶體 124728.doc -19- 200821829 儲存糸統在操作812中於逾時_前解除該忙碌信號。因One part of the garbage collection operation. For example, in one embodiment, one or more first blocks are selected for garbage collection operations. The one or more first blocks may contain invalid data and/or valid data. As shown in operation 〇6, the valid data is copied from one or the first block to a second block in the garbage collection time period in the garbage collection operation. According to the garbage collection time period assigned to the garbage collection operation and the valid data to be copied: a part of all valid data or valid data is copied to the second block. In one example, the garbage collection time period allocated for the garbage collection operation can be expressed as the garbage collection time period = timeout period mpr 〇 g 〇 〇). The timeout period as described above is a fixed finite time period. :Pr:g is the maximum stylized time associated with writing new data to the memory = the non-volatile memory storage system writes the new data to the memory of the human (g, the most ^ (4). In the equation, There are two most A-stylized times n, P as explained in more detail below. The first maximum stylized time #R & 卞 冩 一 一 一 一 而且 而且 而且 而且 而且 而且 而且 而且 而且 而且 而且 而且 而且 而且 而且 而且 而且 而且 而且 而且 而且 而且 而且 而且Write the new data to the temporary storage block. Therefore, in a specific case 124728.doc -18- 200821829, the non-volatile grammar U body storage system track is used to track valid data from one or more The first block copies the number of times from the Muni 11 to the Haidi 2 block. The non-volatile memory stores the plums, and stops copying before the time exceeds the garbage collection time period. In the case of the garbage collection operation, the new data associated with the write command may be written into the one-stage garbage collection block in operation 810. The non-volatile memory remains. The system can be used during or after the month of garbage collection. The data is written into the staged garbage collection block. The stage garbage collection block has the characteristics of the update block. Generally speaking, the data received from the write command can be written into an update block. Assigned as an update block for each logical group in which the data is updated. - The group has a logical address group of one size equal to the size of the metablock. It should be noted that the logic of the data The segments are stored in a logical group that includes a set of logically adjacent segments. As described in more detail below, the cells are managed to update blocks to receive data in a sequential or scrambled order (i.e., non-sequential order). The staged garbage collection block may or may not be associated with one or more first blocks or the second block. For example, in one embodiment, one or more first blocks, the second zone Blocks and phased garbage collection blocks are configured to span a single logical group or a single group of logical addresses. Therefore, data from a single logical group can be stored in a staged garbage collection block, but cannot be from The data of the same logical group is stored in the stage garbage collection block. After the new data is written into the stage garbage collection block and the garbage collection operation is performed within the garbage collection operation time period, the non-volatile memory 124728.doc -19- 200821829 The storage system cancels the busy signal before the time _ in operation 812.

a :執行包含一次垃圾收集操作或一次垃圾收集操作 p刀的寫入命令之總時間並不《過逾時週帛。若在逾 時:期内執行垃圾收集操作之一部分,則在隨後逾時週期 内完成剩餘部分。當完成垃圾收錢料,抹除得以垃圾 收集的-或多個第一區塊(或將其標識為廢棄)並且使該等 區塊可用於儲存額外資料。此外’如以下更詳細地說明, 可以將階段性垃圾收集區塊轉換成更新區塊。然後,可分 配取代已轉換成一更新區塊之階段性垃圾收集區塊的另一 新階段性垃圾收集區塊以在階段性垃圾收集操作中儲存自 隨後寫入命令的新資料。 圖9A及9B係依據本發明之具體實施例的記憶體區塊之 簡化方塊圖,其中在階段中對序列更新區塊進行垃圾收 集。如圖9A所示,將原始區塊A 9〇2及相關聯的序列更新 區塊A 904選擇用於垃圾收集。可管理一更新區塊以採用 序列順序或雜亂順序(即,非序列順序)接收資料。應該明 白’一序列更新區塊(例如序列更新區塊A 904)係當從該主 機接收一寫入命令以寫入資料時分配的一元區塊,該資料 填充一邏輯群組中的一或多個實體頁面,為此目前將所有 有效資料定位在同一元區塊中。在邏輯位址中按順序寫入 已寫入该序列更新區塊的資料之區段,以便該等區段替代 在原始區塊中寫入的對應邏輯區段。可將在此邏輯群組中 更新的一區段寫入此序列更新區塊,直至關閉該序列更新 區塊或將其轉換成雜亂更新區塊。應該注意,當寫入該序 124728.doc -20- 200821829 列更新區塊之最後實體區段位置時,將該序列更新區塊視 為關閉。換言之,該序列更新區塊之關閉可由該序列更新 區塊係由藉由該主機寫入或從原始區塊複製的已更新區段 資料所完全填充而產生。如以下更詳細地說明,當由一主 機寫入的資料之一區段係在邏輯上與所更新之邏輯群組内 的資料之先前寫入區段非序列時,可藉由轉換採用序列更 新區塊來建立雜亂更新區塊。 ί 原始區塊A 902可以包含無效及有效資料,其係在圖9α 中刀別藉由陰影線圖案及虛線圖案所表示。應該注意,除 自原始區塊A 902的有效資料以外,序列更新區塊a 9〇4另 外包含現有資料905,其係在垃圾收集操作之前寫入序列 區塊A。當接收用以寫入新資料91〇的一寫入命令時,該寫 入印々可觸發序列更新區塊A 9〇4之關閉,此係垃圾收集 操作之一類型,因為新資料係與不同於該序列更新區塊A 的一邏輯群組相關聯。該非揮發性記憶體儲存系統宣告一 忙碌信號並接著將有效資料從原始區塊A 9〇2複製到序列 更新區塊A 904,直至達到第一垃圾收集時間週期。在 複製期間’該非揮發性記憶體儲存㈣追蹤時間,並且該 非揮發性記憶體儲存系統在超過第一垃圾收集時間週期 9〇6前停止複製操作。如圖9A所示,無法在第一垃圾收集 時間週期906内完成垃圾收华择 ^ 人队罘探作,因為原始區塊A 9〇2中 仍存在剩餘的有效資料。 口此,在將有效資料之部分 904之後,在達到第一逾時週期之前於a : The total time to execute a write command that includes a garbage collection operation or a garbage collection operation is not excessive. If part of the garbage collection operation is performed during the timeout period, the remainder is completed in the subsequent timeout period. When the garbage collection is completed, the - or multiple first blocks that have been garbage collected are erased (or identified as obsolete) and made available to store additional information. Further, as explained in more detail below, the staged garbage collection block can be converted into an update block. Then, another new stage garbage collection block that replaces the stage garbage collection block that has been converted into an update block can be allocated to store new data from the subsequent write command in the stage garbage collection operation. 9A and 9B are simplified block diagrams of memory blocks in accordance with an embodiment of the present invention in which garbage is collected for sequence update blocks in a stage. As shown in Figure 9A, the original block A 9〇2 and the associated sequence update block A 904 are selected for garbage collection. An update block can be managed to receive data in a sequential or scrambled order (i.e., non-sequential order). It should be understood that a sequence of update blocks (e.g., sequence update block A 904) is a metablock allocated when a write command is received from the host to write data, the data filling one or more of a logical group. Entity pages, for which all valid data is currently located in the same metablock. The sectors of the data that have been written to the sequence update block are written sequentially in the logical address so that the segments replace the corresponding logical segments written in the original block. A sector updated in this logical group can be written to this sequence update block until the sequence update block is closed or converted to a messy update block. It should be noted that when the last physical segment location of the update block of the sequence 124728.doc -20- 200821829 is written, the sequence update block is considered closed. In other words, the closure of the sequence update block can be generated by the sequence update block being completely populated by the updated segment data written by the host or copied from the original block. As explained in more detail below, when a segment of data written by a host is logically non-sequenced with a previously written segment of data within the updated logical group, sequence updates may be employed by conversion Blocks to create cluttered update blocks. ί Original block A 902 may contain invalid and valid data, which is represented in Figure 9α by a hatched pattern and a dashed pattern. It should be noted that in addition to the valid material from the original block A 902, the sequence update block a 9〇4 additionally contains the existing material 905, which is written to the sequence block A before the garbage collection operation. When receiving a write command for writing new data 91〇, the write mark can trigger the shutdown of the sequence update block A 9〇4, which is one type of garbage collection operation because the new data system is different from Associated with a logical group of the sequence update block A. The non-volatile memory storage system announces a busy signal and then copies the valid data from the original block A 9〇2 to the sequence update block A 904 until the first garbage collection time period is reached. The non-volatile memory stores (4) the tracking time during the copying, and the non-volatile memory storage system stops the copying operation before exceeding the first garbage collection time period 9〇6. As shown in Fig. 9A, it is impossible to complete the garbage collection in the first garbage collection time period 906 because the remaining valid data still exists in the original block A 9〇2. In this case, after the portion 904 of the valid data, before the first timeout period is reached,

允㈣剩餘時間内將新資料91〇寫入階段性垃圾收集區塊A 124728.doc 200821829 908 ° 圖9B顯示可以在一第二逾時週期内完成垃圾收集操作之 剩餘部分。此處,在接收該第一寫入命令之後接收用以寫 入新資料918的一第二寫入命令。因此,將一第二逾時週 期分配給該第二寫入命令。在該第二逾時週期期間,將剩 餘有效資料從原始區塊A 902複製到序列更新區塊a 904。 在此範例中,可以在第二垃圾收集時間週期912内將所有 剩餘有效資料(或有效資料之最後部分)複製到序列更新區 塊A 904。因此,可以在該第二逾時週期内完成垃圾收集 操作。抹除原始區塊A 9 0 2並可以使其可用於儲存額外資 料’因為在此第二逾時週期内完成垃圾收集操作。因為填 充序列更新區塊A 904,所以將該序列更新區塊a轉換為新 原始區塊A 914或非更新區塊。此外,將階段性垃圾收集 區塊A 908轉換為一更新區塊(例如更新區塊b 916),其可 以或可以不與新原始區塊A 914相關聯。亦分配一新階段 性垃圾收集區塊(例如階段性垃圾收集區塊c 908)以儲存新 ^料。若自遠第二寫入命令的新資料91 8係來自與新資料 910相同的邏輯群組,則可將自該第二寫入命令的新資料 91 8寫入更新區塊B 916。一方面,如以下更詳細地說明, 右自該弟一寫入命令的新資料918係來自與新資料91〇不同 的邏輯群組’則將自該第二寫入命令的新資料9丨8寫入階 段性垃圾收集區塊C 908。 圖10A及10B係依據本發明之一具體實施例的記憶體區 塊之簡化方塊圖,其中在階段中對雜亂更新區塊進行垃圾 124728.doc -22- 200821829 收集。如圖10A所示,將原始區塊a 1002及雜亂更新區塊A 1004選擇用於垃圾收集。一般而言,一雜亂更新區塊(例 如雜亂更新區塊A 1004)使得資料之區段可在一邏輯群組 内採用隨機順序加以更新,而且可對個別區段進行任何重 複。^由一主機寫入的資料之一區段係在邏輯上與所更新 之邏輯群組内的資料之先前寫入區段非序列時,可藉由轉 換採用一序列更新區塊來建立該雜亂更新區塊。在該雜亂 更新區塊之下一可用區段位置中寫入在此邏輯群組中按順 序更新的資料之所有區段,而不管該等區段在該群組内的 邏輯區段位址。 此處,原始區塊A 1002及雜亂更新區塊A 1〇〇4包含無效 及有效資料,其係在圖10A中分別藉由陰影線圖案及虛線 圖案所表示。當接收用以寫入新資料1〇〇1的一寫入命令 時,钂非揮發性記憶體儲存系統宣告一忙碌信號並接著將 有效資料從原始區塊A 1002及雜亂更新區塊八1〇〇4複製到 新區塊A 1006,直至達到第一垃圾收集時間週期1〇5〇。在 複製期間,該非揮發性記憶體儲存系統追蹤時間,並且該 非揮發性記憶體儲存系統在第一垃圾收集時間週期1〇5〇超 過前停止複製操作。如圖10A所示,無法在第一垃圾收集 時間週期1050内完成垃圾收集操作,因為原始區塊入1〇〇2 及雜亂更新區塊A 1004中仍存在剩餘的有效資料。因此, 在將有效資料之部分複製到新區塊A 1〇〇6之後,在達到第 一逾時週期之前將在垃圾收集操作啟動前接收的新資料 1 0 01寫入階段性垃圾收集區塊A 1 〇 〇 $。 124728.doc 23- 200821829 圖1 OB顯示可以在一第二逾時週期内完成垃圾收集操作 之剩餘部分。在接收該苐一寫入命令之後接收一第二寫入 命令。因此,將一第二逾時週期分配給該第二寫入命令。 在該第二逾時週期期間,將剩餘有效資料從原始區塊A 1002及雜亂更新區塊A 1004複製到新區塊a 1〇06。此處, 可以在弟二垃圾收集時間週期1 〇 5 2内將所有剩餘有效資料 (或有效資料之最後部分)複製到新區塊A 1〇〇6。因此,可 以在該第二逾時週期内完成垃圾收集操作。因為在此第二 逾時週期内完成垃圾收集操作,所以可抹除原始區塊A 1002及雜亂更新區塊A 1004並使其可用於儲存額外資料。 在抹除原始區塊A 1002及雜亂更新區塊a 1〇〇4之後,將新 區塊A 1006轉換成新原始區塊A 1010並將階段性垃圾收集 區塊A 1008轉換成更新區塊B 1012,其可以或可以不鱼兮 新原始區塊A相關聯。因為已完成垃圾收集操作,所以分 配另一階#又性垃圾收集區塊C 1 014以儲存新資料。如圖 10B所示,若從該第二寫入命令接收的新資料1〇〇5係在與 新資料1001相同的邏輯群組中,則可將新資料1〇〇5寫入更 新區塊B 1012。然而,如以下更詳細地說明,若新資料 10 0 5係來自與新資料1 〇 〇 1不同的邏輯群組,則將新資料 1005寫入階段性垃圾收集區塊c 1014。 圖11A至11E係依據本發明之另一具體實施例的記憶體區 塊之簡化方塊圖,其中在階段中對雜亂更新區塊進行垃圾 收集。如圖11A所示,當接收用以寫入新資料2〇12的一寫 入命令時,將原始區塊G 2002及雜亂更新區塊G 2004選擇 124728.doc -24- 200821829 用於垃圾收集。此處,原始區塊G 2002及雜亂更新區塊G 2004包含無效及有效資料,其係在圖丨丨八中分別藉由陰影 線圖案及虛線圖案所表示。在接收該寫入命令之後,該非 揮發性圯憶體儲存系統宣告一忙碌信號並接著將有效資料 攸原始區塊G 2002及雜亂更新區塊g 2004複製到新區塊G 2008,直至達到第一垃圾收集時間週期2〇〇6。在複製期 間,该非揮發性記憶體儲存系統追蹤時間,並且該非揮發 性圮憶體儲存系統在第一垃圾收集時間週期2〇〇6超過前停 止複製操作。如圖11A所示,無法在第一垃圾收集時間週 /月2006内元成垃圾收集操作’因為原始區塊〇 及雜亂 更新區塊G 2004中仍存在剩餘的有效資料。因此,在將有 效 > 料之部分複製到新區塊G 2 0 0 8之後,在達到第一逾時 週期之前將在垃圾收集操作啟動前接收的新資料2〇12寫入 階段性垃圾收集區塊G 2010。 圖11B顯示可以在一第二逾時週期内完成垃圾收集操作 之剩餘部分。在接收該第一寫入命令之後接收一第二寫入 命令。因此,將一第二逾時週期分配給該第二寫入命令。 在该弟二逾時週期期間,將剩餘有效資料從原始區塊G 2002及雜亂更新區塊G 2004複製到新區塊g 2006。此處, 可以在第二垃圾收集時間週期2 014内將所有剩餘有效資料 (或有效資料之最後部分)複製到新區塊G 2008。因此,可 以在該第二逾時週期内完成垃圾收集操作。因為在此第二 逾時週期内完成垃圾收集操作,所以可抹除原始區塊G 2002及雜亂更新區塊G 2004並使其可用於儲存額外資料。 124728.doc -25- 200821829Allow (4) to write new data 91〇 to the staged garbage collection block for the remainder of the time. A 124728.doc 200821829 908 ° Figure 9B shows the remainder of the garbage collection operation that can be completed in a second timeout period. Here, a second write command to write new material 918 is received after receiving the first write command. Therefore, a second timeout period is assigned to the second write command. During the second timeout period, the remaining valid material is copied from the original block A 902 to the sequence update block a 904. In this example, all remaining valid data (or the last portion of the valid data) may be copied to the sequence update block A 904 during the second garbage collection time period 912. Therefore, the garbage collection operation can be completed in the second timeout period. Erasing the original block A 9 0 2 and making it available for storing additional data 'because the garbage collection operation is completed within this second timeout period. Since the sequence update block A 904 is filled, the sequence update block a is converted into a new original block A 914 or a non-updated block. In addition, the staged garbage collection block A 908 is converted to an update block (e.g., update block b 916), which may or may not be associated with the new original block A 914. A new staged garbage collection block (eg, staged garbage collection block c 908) is also allocated to store new materials. If the new data 91 8 from the far second write command is from the same logical group as the new data 910, the new data 91 8 from the second write command can be written to the update block B 916. On the one hand, as explained in more detail below, the new data 918 from the younger one of the write commands is from a different logical group than the new data 91', then the new data from the second write command is 9丨8 Write to the staged garbage collection block C 908. 10A and 10B are simplified block diagrams of a memory block in accordance with an embodiment of the present invention in which garbage clutter 124728.doc -22-200821829 is collected in a stage. As shown in FIG. 10A, the original block a 1002 and the messy update block A 1004 are selected for garbage collection. In general, a cluttered update block (e.g., clutter update block A 1004) allows segments of data to be updated in a random order within a logical group, and any individual segments can be repeated. ^ When a segment of data written by a host is logically non-sequential with a previously written segment of data in the updated logical group, the sequence can be used to establish the mess by converting a sequence of updated blocks. Update the block. All segments of the data updated in this logical group are sequentially written in an available segment location below the hash update block, regardless of the logical segment address of the segments within the group. Here, the original block A 1002 and the clutter update block A 1〇〇4 contain invalid and valid data, which are represented by a hatched pattern and a broken line pattern in Fig. 10A, respectively. When receiving a write command to write new data 1〇〇1, the non-volatile memory storage system announces a busy signal and then transfers the valid data from the original block A 1002 and the messy update block 八〇 〇4 is copied to the new block A 1006 until the first garbage collection time period is reached 1〇5〇. The non-volatile memory storage system tracks the time during copying, and the non-volatile memory storage system stops the copying operation before the first garbage collection time period exceeds 〇5〇. As shown in Fig. 10A, the garbage collection operation cannot be completed within the first garbage collection time period 1050 because the remaining valid data remains in the original block input block 1 and the messy update block block A 1004. Therefore, after copying the portion of the valid data to the new block A 1〇〇6, the new data 1 0 01 received before the garbage collection operation is started is written into the stage garbage collection block A before the first timeout period is reached. 1 〇〇$. 124728.doc 23- 200821829 Figure 1 OB shows the remainder of the garbage collection operation that can be completed in a second timeout period. A second write command is received after receiving the first write command. Therefore, a second timeout period is assigned to the second write command. During the second timeout period, the remaining valid data is copied from the original block A 1002 and the messy update block A 1004 to the new block a 1〇06. Here, all remaining valid data (or the last part of the valid data) can be copied to the new block A 1〇〇6 within the second garbage collection time period 1 〇 5 2 . Therefore, the garbage collection operation can be completed in the second timeout period. Since the garbage collection operation is completed within this second timeout period, the original block A 1002 and the messy update block A 1004 can be erased and made available for storing additional data. After erasing the original block A 1002 and the messy update block a 1〇〇4, the new block A 1006 is converted into the new original block A 1010 and the staged garbage collection block A 1008 is converted into the updated block B 1012 It may or may not be associated with the new original block A. Since the garbage collection operation has been completed, another order # garbage collection block C 1 014 is allocated to store new data. As shown in FIG. 10B, if the new data 1〇〇5 received from the second write command is in the same logical group as the new material 1001, the new data 1〇〇5 can be written to the update block B. 1012. However, as explained in more detail below, if the new data 105 is from a different logical group than the new data 1 〇 〇 1, the new data 1005 is written to the phasic garbage collection block c 1014. Figures 11A through 11E are simplified block diagrams of memory blocks in accordance with another embodiment of the present invention in which garbage collection is performed on a cluttered update block. As shown in Fig. 11A, when a write command for writing new material 2〇12 is received, the original block G 2002 and the messy update block G 2004 are selected 124728.doc -24- 200821829 for garbage collection. Here, the original block G 2002 and the messy update block G 2004 contain invalid and valid data, which are represented by a hatched pattern and a dotted line pattern, respectively, in FIG. After receiving the write command, the non-volatile memory storage system announces a busy signal and then copies the valid data 攸 original block G 2002 and the messy update block g 2004 to the new block G 2008 until the first garbage is reached. The collection time period is 2〇〇6. The non-volatile memory storage system tracks the time during the copying, and the non-volatile memory storage system stops the copying operation before the first garbage collection time period 2〇〇6 is exceeded. As shown in Fig. 11A, the garbage collection operation cannot be performed in the first garbage collection time week/month 2006 because the remaining valid data still exists in the original block and the messy update block G 2004. Therefore, after copying the valid > part of the material to the new block G 2 0 0 8 , the new data 2〇12 received before the garbage collection operation is started is written into the stage garbage collection area before the first timeout period is reached. Block G 2010. Figure 11B shows the remainder of the garbage collection operation that can be completed in a second timeout period. A second write command is received after receiving the first write command. Therefore, a second timeout period is assigned to the second write command. During the second timeout period, the remaining valid data is copied from the original block G2002 and the messy update block G2004 to the new block g2006. Here, all remaining valid data (or the last part of the valid data) may be copied to the new block G 2008 during the second garbage collection time period 2 014. Therefore, the garbage collection operation can be completed in the second timeout period. Since the garbage collection operation is completed within this second timeout period, the original block G 2002 and the messy update block G 2004 can be erased and made available for storing additional data. 124728.doc -25- 200821829

此外,將新區塊G 2008轉換成新原始區塊G 2016並將階段 性垃圾收集區塊G 2010轉換成更新區塊Η 2018。因為已完 成垃圾收集操作,所以分配另一階段性垃圾收集區塊j 2020以儲存新資料。若從該第二寫入命令接收的新資料 2022係在與新資料20 12相同的邏輯群組中,則可將新資料 2022寫入更新區塊Η 2018。然而,在圖11Β所示的範列 中,新資料2022及新資料2012係來自不同邏輯群組。因 此,將新資料2022寫入階段性垃圾收集區塊J 2020而非更 新區塊Η 2018。 因為階段性垃圾收集區塊J 2020可以儲存自單一邏輯群 組的資料,所以該階段性垃圾收集區塊J可能無法儲存可 在隨後寫入操作中加以接收的新資料。因此,在第二垃圾 收集時間週期2014期間執行新垃圾收集操作。如圖llc所 示’在该第二垃圾收集時間週期内留下的剩餘時間期間執 行另一垃圾收集操作。此處,將原始區塊K 2202及雜亂更 新區塊K 2204選擇用於垃圾收集。原始區塊κ 22〇2及雜亂 更新區塊K 2204包含無效及有效資料,其係在圖uc中分 別藉由陰影線圖案及虛線圖案所表示。在完成圖11β所示 的垃圾收集操作之後,該非揮發性記憶體儲存系統使用該 第一逾時週期内的剩餘時間(即,剩餘第二垃圾收集時間 週期2216)以將有效資料從原始區塊κ 22〇2及雜亂更新區 塊Κ 2204複製到新區塊κ 22〇6。如圖uc所示,無法在剩 餘第二垃圾收集時間週期2216内完成垃圾收集操作,因為 原始區塊K 2202及雜亂更新區塊尺22〇4中仍存在剩餘的有 124728.doc -26- 200821829 效資料。 在圖11D中’在該第二寫入命令之後接收一第三寫入命 令並且將一第三逾時週期分配給該第三寫入命令。在第三 垃圾收集時間週期2 2 3 6内’無法完成垃圾收集操作。因此 無法將新區塊K 2206轉換成一更新區塊。在此範例中,從 該第三寫入命令接收的新資料屬於自新資料2〇22的不同邏 - 輯群組,而且並沒有一開放式更新區塊。可以將自單一邏 輯群組的資料儲存在階段性垃圾收集區塊J 2020中,但是 (’ 無法將自不同邏輯群組的資料儲存在該階段性垃圾收集區 塊J中。因此,沒有區塊可用於儲存從該第三寫入命令接 收的新資料。 在圖11D之範例中,當接收新資料並且在階段性垃圾收 集區塊J 2020中已經儲存資料(例如新資料2〇22)時,在可 以寫入或私式化自该第三寫入命令的新資料之前對該階段 性垃圾收集區塊J中的資料進行垃圾收集。分配用以完成 〇 "亥第二寫入命令的該第三逾時週期可用於垃圾收集操作。 然而,若第三垃圾收集時間週期2236並不提供足夠時間來 兀成垃圾收集操作,則階段性垃圾收集區塊】2〇2〇並非空 的且因此未準備好接收或儲存自該第三寫入命令的資料。 因此,無法在該第三逾時週期内寫入新資料並且逾時錯誤 會出現。 為凋和從该第三寫入命令接收的新資料,圖UE顯示用 於該第三逾時週期中的垃圾收集操作之另一階段性垃圾收 集區塊(即階段性垃圾收集區塊M 2212)的分配。若剩餘第 124728.doc -27- 200821829 ΟIn addition, the new block G 2008 is converted into a new original block G 2016 and the staged garbage collection block G 2010 is converted into an update block Η 2018. Since the garbage collection operation has been completed, another stage garbage collection block j 2020 is allocated to store new data. If the new data 2022 received from the second write command is in the same logical group as the new data 20 12, the new data 2022 can be written to the update block Η 2018. However, in the sequence shown in Figure 11A, the new data 2022 and the new data 2012 are from different logical groups. Therefore, the new data 2022 is written to the staged garbage collection block J 2020 instead of the updated block Η 2018. Since the phased garbage collection block J 2020 can store data from a single logical group, the staged garbage collection block J may not be able to store new data that can be received in subsequent write operations. Therefore, a new garbage collection operation is performed during the second garbage collection time period 2014. Another garbage collection operation is performed during the remaining time remaining during the second garbage collection time period as shown in Figure 11c. Here, the original block K 2202 and the messy update block K 2204 are selected for garbage collection. The original block κ 22〇2 and the messy update block K 2204 contain invalid and valid data, which are represented in Figure uc by a hatched pattern and a dotted pattern, respectively. After completing the garbage collection operation shown in FIG. 11β, the non-volatile memory storage system uses the remaining time in the first timeout period (ie, the remaining second garbage collection time period 2216) to save valid data from the original block. κ 22〇2 and the messy update block Κ 2204 are copied to the new block κ 22〇6. As shown in Figure uc, the garbage collection operation cannot be completed in the remaining second garbage collection time period 2216, because the remaining blocks K 2202 and the messy update block size 22〇4 still have the remaining 124728.doc -26- 200821829 Effective information. In Fig. 11D, a third write command is received after the second write command and a third timeout period is assigned to the third write command. The garbage collection operation could not be completed within the second garbage collection time period 2 2 3 6 . Therefore, the new block K 2206 cannot be converted into an update block. In this example, the new data received from the third write command belongs to a different logical group from the new data 2〇22, and there is no open update block. The data from a single logical group can be stored in the stage garbage collection block J 2020, but (' cannot store data from different logical groups in the stage garbage collection block J. Therefore, there is no block. It can be used to store new data received from the third write command. In the example of FIG. 11D, when new data is received and data has been stored in the phased garbage collection block J 2020 (eg, new data 2〇22), The data in the stage garbage collection block J is garbage collected before the new data of the third write command can be written or customized. The allocation is used to complete the 〇"Hai second write command The third timeout period can be used for garbage collection operations. However, if the third garbage collection time period 2236 does not provide sufficient time to become a garbage collection operation, the phased garbage collection block is not empty and therefore Not ready to receive or store data from the third write command. Therefore, new data cannot be written in the third timeout period and a timeout error will occur. For the new data received, the map UE shows the allocation of another phased garbage collection block (ie, the staged garbage collection block M 2212) for the garbage collection operation in the third timeout period. If the remaining 124728.doc -27- 200821829 Ο

二垃圾收集時間週期2216並不提供足夠時間來完成圖丨丄。 所示的第二垃圾收集操作,則該非揮發性記憶體儲存系統 可最初分配二或更多個階段性垃圾收集區塊。如圖丨1£所 示,最初分配二個階段性垃圾收集區塊,即階段性垃圾收 集區塊J 2020及階段性垃圾收集區塊μ 2212。採用額外分 配的階段垃圾收集區塊Μ 2212,若無法在第三逾時週期内 兀成垃圾收集操作,則可將屬於與新資料2〇22不同之邏輯 群組的從該第三寫入命令接收的新資料22丨4儲存在該階段 性垃圾收集區塊Μ中。因此,可以在該第三逾時週期内寫 入新資料2214並且逾時錯誤不會出現。 使用暫存區塊作為緩衝器 圖12係依據本發明之—具體實施例,用以使用—暫存區 塊作為緩衝器來執行階段性垃圾收集的詳細操作之流程 圖。如圖12所示’在操作m2中接收寫入命令以將新資料 =入m。在—具體實施例中’該寫人命令係、單一區 奴寫入命令。在某些情形下,如以下更詳細地說明,依據 另一具體實施例,贫宜λ人人士 π ^ 八 該寫入命令亦可以係一多區段寫入命 在接收《亥寫入命令之後,該非揮發性記憶體儲存系統 在操作測中宣告_忙碌信號。 在執行該寫入命人少乂 + π ^, 之則,在刼作1106中於垃圾收集時間 ::内Π:收集操作之-部分。例如,在-具體㈣ 或多個第一區區塊選擇用於垃圾收集操作。該- 圾收集時間週^無效資料及/或有效資料。在垃 字有效資料複製到一第二區塊。根據分 124728.doc -28- 200821829 配給垃圾收集操作的垃圾收集時間週期以及欲加以複製的 有效資料之數里,將所有有效資料或有效資料之一部分複 裝到。亥第—區塊。在—範例中,分配用於垃圾收集操作的 垃圾收集時間週期可加以表達為 垃圾收集時間週期=逾時週期_Tprog (2〇) 其中如以上說明的逾時週期係一固定的有限時間週期。 Tprog係與將新資料寫入記憶體相關聯的最大程式化時間 或係忒非揮發性記憶體儲存系統將新資料寫入記憶體所花 費的最大時間。因此,在一具體實施例中,該非揮發性記 ,體儲存系統追蹤用以將有效資料從-或多個第-區塊複 製到β亥第—區塊的時間之數量。該非揮發性記憶體儲存系 統在時間超過垃圾收集時間週期前停止複製。 右.…法猎由垃圾收集時間週期完成垃圾收集操作,則可 以在才呆作1108中將與該寫入命令才目關聯的新資料寫入該暫 存區塊。應該明白,一暫存區塊係資料更新區塊之一形 式,其中-相關聯邏輯群組内的邏輯區段可採用隨機順序 加以更新而且可重複任何數量。藉由一寫入命令建立該暫 ,區塊,丨中預計的邏輯區段並未結束或與實體頁面邊界 交叉。因為該非揮發性記憶體儲存系統可能無法程式化部 分頁面,所以可將一頁面之區段臨時儲存在該暫存區塊 中。该非揮發性記憶體健存系統累積該暫存區塊中的頁面 之區段’直至採用自不同寫入命令的新資料填充該頁面之 所有區段。該非揮發性記憶體儲存系統接著在一次程式化 操作中將整個頁面(例如,鉼咨# ^ ㈣(例*新貝科之八個區段)從該暫存區 124728.doc -29- 200821829 塊複製到另一區塊(例如一更新區塊)。暫存區塊因此可以 包含資料之部分實體頁面價值。該暫存區塊可以保持用於 省非揮發性記憶體儲存系統中的每一個更新區塊的新資料 之有效頁面。此外,在一具體實施例中,該暫存區塊可以 保持並沒有更新區塊的新資料之一或多個有效頁面。該非 揮發性e憶體儲存系統可以具有(例如)所分配的八個更新 區塊且因此該暫存區塊可以儲存新資料之九或更多個有效 頁面。該非揮發性記憶體儲存系統可以在垃圾收集操作之 前、期間或之後將新資料寫入該暫存區塊。如以下更詳細 地說明,一旦接收新資料之額外區段以便達到實體頁面邊 界或與其父又,可在完成垃圾收集操作之後將新資料從該 暫存區塊複製到一更新區塊。 在將新資料寫入該暫存區塊並且在垃圾收集時間週期内 執行垃圾收集操作之後,該非揮發性記憶體儲存系統在操 作1110中在逾時週期前解除該忙碌信號。因此,用以執行 包含一次垃圾收集操作或一次垃圾收集操作之一部分的寫 入命令之總時間並不超過逾時週期。若在逾時週期内執行 垃圾收集操作之一部分,則在隨後逾時週期内完成剩餘部 分。當完成垃圾收集操作時,抹除得以垃圾收集的一或多 個第一區塊並且使該等區塊可用於儲存額外資料。 圖13 A及13B係依據本發明之具體實施例的記憶體區塊 之簡化方塊圖,其中在階段中對序列更新區塊進行垃圾收 集。如圖13 A所示,將原始區塊a 1202及相關聯的序列更 新區塊A 1204選擇用於垃圾收集。原始區塊a 1202可以包 124728.doc -30- 200821829 含無效及有效資料,其係在圖13A中分別藉由陰影線圖案 及虛線圖案所表示。當接收用以寫入新資料1210的-寫入 命令時’ $寫人命令可觸發序列更新區塊A 12G4之關閉, 此係^圾收集操作之—類型,因為新資料係、與沒有開放式 更新區塊的一邏輯群組相關聯或者因為新資料會導致序列 更新區塊A轉換成雜亂更新區塊。該非揮發性記憶體儲存 系統宣告一忙碌信號並接著將有效資料從原始區塊八12〇2 複製到序列更新區塊A 1204,直至達到第一垃圾收集時間 週期1208。應該注意,除自原始區塊a 12〇2的有效資料以 外,序列更新區塊A 1204另外包含現有資料12〇5,其係在 垃圾收集操作之前寫入該序列更新區塊A。在複製期間, ^亥非揮發性3己憶體儲存系統追縱時間,並且該非揮發性記 憶體儲存系統在第一垃圾收集時間週期丨2〇8超過前停止複 製操作。如圖13 A所示,無法在第一垃圾收集時間週期 1208内完成垃圾收集操作,因為原始區塊a 1202中仍存在 剩餘的有效資料。因此,在將有效資料之部分複製到序列 更新區塊A 1204之後,將新資料1210寫入暫存區塊12〇6。 圖13B顯示可以在一第二逾時週期内完成垃圾收集操作 之剩餘部分。此處,在該第一寫入命令之後接收用以寫入 新資料1224的一第二寫入命令。因此,將一第二逾時週期 分配給該第二寫入命令。在該第二逾時週期期間,將剩餘 有效資料從原始區塊A 1202複製到序列更新區塊a 12〇4。 在此範例中,可以在第二垃圾收集時間週期1214内將所有 剩餘有效資料(或有效資料之最後部分)複製到序列更新區 124728.doc -31- 200821829 塊八12〇4。因此,可以在該第二逾時週期内完成垃圾收集 操作。因為填充序列更新區塊A 12〇4,所以將該序列更新 區塊A轉換為新原始區塊A 1212或非更新區塊。抹除原始 區塊A 1202並可以使其可用於儲存額外資料,因為在此第 逾時週期内疋成垃圾收集操作。在抹除原始區塊A 1 So〕 之後,分配更新區塊C 1222並且可將從該第二寫入命令接 收的新資料1222寫入新近分配的更新區塊c。應該注意, 更新區塊c 1222可以或可以不與新原始區塊A丨2丨2相關 聯。 在邊第二逾時週期内完成垃圾收集之後,若在該第二逾 時週期記憶體在可用的時間,則該非揮發性記憶體儲存系 統可將儲存在暫存區塊12〇6中的新資料1210複製到更新區 塊C 1222。暫存區塊1206作為臨時緩衝器,因為寫入該暫 存區塊的新資料(例如新資料121〇)係後來複製到另一區塊 (例如更新區塊C 1222)。在圖13B之範例中,在該第二 逾時週期記憶體在用於將新資料121〇從暫存區塊12〇6複製 到更新區塊C 1222的時間。儲存在暫存區塊1206中的新資 料1210係在與新資料1224相同的邏輯群組中。因此,在完 成垃圾收集操作之後將新資料1210複製到更新區塊c 1222。將儲存在暫存區塊12〇6中的新資料121〇標識為無效 且因此可以使該暫存區塊中的額外空間可用於儲存額外新 資料。應該注意,新資料121〇及新資料1224可屬於不同邏 輯群組。若新資料12 10及新資料1224屬於不同邏輯群組, 則新資料1210將保持在暫存區塊1206中。一旦將新資料 124728.doc -32- 200821829 1224寫入更新區塊C 1222’則可在該第二逾時週期内啟動 新垃圾收集操作。因此在完成新垃圾收集操作的情況下, 可分配一新更新區塊(圖中未顯示),而且可將新資料12〇 從暫存區塊1206複製到該新更新區塊。 圖14A及14B係依據本發明之具體實施例的記憶體區塊 之簡化方塊圖,其中在階段中對雜亂區塊進行垃圾收集。 如圖14A所示,將原始區塊D 1302及雜亂更新區塊〇 13〇4 選擇用於垃圾收集。此處,原始區塊D 1302及雜礼更新區 塊D 1304包含無效及有效資料,其係在圖14A中分別藉由 陰影線圖案及虛線圖案所表示。當接收用以寫入新資料 13 12的一寫入命令時,該非揮發性記憶體儲存系統宣告一 忙碌信號並接著將有效資料從原始區塊D 13 〇2及雜亂更新 區塊D 1304複製到新區塊d 1308,直至達到第一垃圾收集 時間週期1306。在複製期間,該非揮發性記憶體儲存系統 追蹤時間,並且該非揮發性記憶體儲存系統在超過第一垃 圾收集時間週期1306前停止複製操作。如圖14A所示,無 法在第一垃圾收集時間週期13〇6内完成垃圾收集操作,因 為原始區塊D 1302及雜亂更新區塊!)13〇4中仍存在剩餘的 有效資料。因此,在將有效資料之部分複製到新區塊d 1308之後,在達到該第一逾時週期之前將在垃圾收集操作 啟動刖接收的新資料丨3丨2寫入暫存區塊丨2〇6。 圖14B顯不可以在一第二逾時週期内完成垃圾收集操作 之剩餘部分。在接收該第一寫入命令之後接收一第二寫入 命令。因此,將一第二逾時週期分配給該第二寫入命令。 124728.doc -33- 200821829 在該第二逾時週期期間,將剩餘有效資料從原始區塊D 1302及雜亂更新區塊1) 13〇4複製到新區塊D 13〇8。此處, 可以在第二垃圾收集時間週期1314内將所有剩餘有效資料 (或有效資料之最後部分)複製到新區塊D 13〇8。因此,可 以在該第二逾時週期内完成垃圾收集操作。因為在此第二 逾時週期内完成垃圾收集操作,所以可抹除原始區塊D 1302及雜亂更新區塊D 13〇4並使其可用於儲存額外資料。 在抹除原始區塊D 1302及雜亂更新區塊八13〇4之後,分配 新更新區塊E 1316並且將從該第二寫入命令接收的新資料 13 14寫入新近分配的更新區塊E。此外,並非將新資料 1314寫入暫存區塊1206,因為一更新區塊在完成垃圾收集 操作之後可用,而且直至一隨後的逾時週期才需要緩衝該 新資料。在此範例中,將儲存在暫存區塊12〇6中的新資料 1312複製到更新區塊E 1316,假定新資料lsl2&ni4屬於 同一邏輯群組。 聲訊/視訊資料 當與其他資料相比時,存取儲存在一非揮發性記憶體儲 存系統中的聲訊/視祝檔案相關聯的資料(以下稱為”聲訊/ 視訊資料”)之一主機可能需要採用預定速率來寫入該等聲 訊/視訊資料。隨著孩主機使該等聲訊/視訊資料流入該非 揮發性記憶體儲存系統或從該系統流出,分配給該資料流 的頻寬與該預定速率匹配或超過該預定速率。在聲訊/視 訊資料的存取期間執行的垃圾收集操作可以降低該聲訊/ 視訊資料之寫入性月b。因此,在一具體實施例中,當該多 124728.doc -34- 200821829 區段寫入命令並非與聲訊/視訊資料相關聯或者該多區段 寫入命令係在一聲訊/視訊寫入之開始時,執行階段性垃 圾收集。The second garbage collection time period 2216 does not provide sufficient time to complete the map. In the second garbage collection operation shown, the non-volatile memory storage system can initially allocate two or more staged garbage collection blocks. As shown in Figure ,1, two phased garbage collection blocks are initially allocated, namely the staged garbage collection block J 2020 and the staged garbage collection block μ 2212. Using the additionally allocated phase garbage collection block Μ 2212, if the garbage collection operation cannot be completed within the third timeout period, the third write command belonging to the logical group different from the new data 2〇22 may be The new data received 22丨4 is stored in the staged garbage collection block. Therefore, new material 2214 can be written in the third timeout period and a timeout error does not occur. Using a Staging Block as a Buffer Figure 12 is a flow diagram of a detailed operation for performing a staged garbage collection using a temporary storage block as a buffer in accordance with an embodiment of the present invention. As shown in Fig. 12, a write command is received in operation m2 to put new data into m. In the specific embodiment, the writer command, the single zone slave write command. In some cases, as explained in more detail below, according to another embodiment, the λ person may be a multi-segment write command after receiving the "Hai write command". The non-volatile memory storage system announces a _ busy signal during operation. In the execution of the write life less than π ^, then, in the work 1106 in the garbage collection time :: Π: collection operation - part. For example, the - specific (four) or multiple first block blocks are selected for garbage collection operations. The - garbage collection time week ^ invalid data and / or valid information. Copy the valid data in the hash to a second block. According to the sub-collection 124728.doc -28- 200821829 garbage collection time period allocated to the garbage collection operation and the number of valid data to be copied, part of all valid data or valid data is re-installed. Haidi - block. In the example, the garbage collection time period allocated for garbage collection operations can be expressed as garbage collection time period = timeout period _Tprog (2〇) where the timeout period as described above is a fixed finite time period. Tprog is the maximum programmed time associated with writing new data to memory or the maximum time it takes for a non-volatile memory storage system to write new data into memory. Thus, in one embodiment, the non-volatile memory storage system tracks the amount of time to copy valid data from - or a plurality of first blocks to a beta block. The non-volatile memory storage system stops replicating before the time exceeds the garbage collection time period. Right.... The hunter completes the garbage collection operation by the garbage collection time period, and then the new data associated with the write command can be written to the temporary block in the stay 1108. It should be understood that a temporary block is in the form of one of the data update blocks, wherein the logical segments within the associated logical group can be updated in a random order and can be repeated in any number. The temporary block is created by a write command, and the predicted logical segment in the frame does not end or intersect with the boundary of the physical page. Because the non-volatile memory storage system may not be able to program a portion of the page, a section of a page may be temporarily stored in the temporary block. The non-volatile memory health system accumulates a section of pages in the temporary block until all segments of the page are populated with new data from different write commands. The non-volatile memory storage system then copies the entire page (eg, 鉼 # # ^ (4) (example * eight sections of New Becc) from the staging area 124728.doc -29- 200821829 block in a stylized operation Go to another block (for example, an update block). The temporary block can therefore contain the value of part of the physical page of the data. The temporary block can be used to save each update area in the non-volatile memory storage system. A valid page of the new data of the block. Further, in a specific embodiment, the temporary storage block may maintain one or more valid pages of the new data of the updated block. The non-volatile e-memory storage system may have For example, the eight update blocks allocated and thus the temporary block can store nine or more valid pages of new data. The non-volatile memory storage system can be new before, during or after the garbage collection operation The data is written to the temporary storage block. As explained in more detail below, once the additional section of the new data is received in order to reach the physical page boundary or with the parent, the garbage collection operation can be completed. The new data is then copied from the temporary storage block to an update block. After the new data is written into the temporary storage block and the garbage collection operation is performed during the garbage collection time period, the non-volatile memory storage system is operating. The busy signal is released before the timeout period in 1110. Therefore, the total time for executing a write command that includes a garbage collection operation or a garbage collection operation does not exceed the timeout period. If executed within the timeout period In one part of the garbage collection operation, the remainder is completed in a subsequent timeout period. When the garbage collection operation is completed, one or more first blocks that are garbage collected are erased and made available for storing additional material. 13A and 13B are simplified block diagrams of memory blocks in accordance with an embodiment of the present invention, wherein the sequence update block is garbage collected in a stage. As shown in FIG. 13A, the original block a 1202 and The associated sequence update block A 1204 is selected for garbage collection. The original block a 1202 may contain 124728.doc -30- 200821829 with invalid and valid data, This is indicated by a hatched pattern and a dashed line pattern, respectively, in Figure 13A. When receiving a -write command to write new data 1210, the 'Writer command can trigger the sequence update block A 12G4 to close. The type of garbage collection operation, because the new data system is associated with a logical group that does not have an open update block or because the new data causes the sequence update block A to be converted into a messy update block. The non-volatile memory The storage system announces a busy signal and then copies the valid data from the original block 八12〇2 to the sequence update block A 1204 until the first garbage collection time period 1208 is reached. It should be noted that except for the original block a 12〇2 In addition to the valid data, the sequence update block A 1204 additionally contains the existing data 12〇5, which is written to the sequence update block A before the garbage collection operation. During the copying period, the non-volatile 3 memory storage system tracks the time, and the non-volatile memory storage system stops the copying operation before the first garbage collection time period 丨2〇8 exceeds. As shown in Figure 13A, the garbage collection operation cannot be completed within the first garbage collection time period 1208 because the remaining valid data still exists in the original block a 1202. Therefore, after copying the portion of the valid data to the sequence update block A 1204, the new material 1210 is written to the temporary storage block 12〇6. Figure 13B shows the remainder of the garbage collection operation that can be completed in a second timeout period. Here, a second write command for writing a new material 1224 is received after the first write command. Therefore, a second timeout period is assigned to the second write command. During the second timeout period, the remaining valid data is copied from the original block A 1202 to the sequence update block a 12〇4. In this example, all remaining valid data (or the last portion of the valid data) may be copied to the sequence update area 124728.doc -31- 200821829 block 八12〇4 during the second garbage collection time period 1214. Therefore, the garbage collection operation can be completed in the second timeout period. Since the padding sequence update block A 12〇4, the sequence update block A is converted into a new original block A 1212 or a non-update block. The original block A 1202 is erased and can be made available for storing additional data because it is garbage collected during this first timeout period. After erasing the original block A 1 So], the update block C 1222 is allocated and the new data 1222 received from the second write command can be written to the newly allocated update block c. It should be noted that the update block c 1222 may or may not be associated with the new original block A 丨 2 丨 2 . After the garbage collection is completed in the second timeout period, if the second time period memory is available, the non-volatile memory storage system may store the new memory in the temporary storage block 12〇6. The data 1210 is copied to the update block C 1222. The temporary block 1206 acts as a temporary buffer because new data (e.g., new data 121) written to the temporary block is later copied to another block (e.g., updated block C 1222). In the example of Fig. 13B, at the time when the second time-out period memory is used to copy the new material 121 from the temporary block 12〇6 to the update block C 1222. The new data 1210 stored in the temporary storage block 1206 is in the same logical group as the new material 1224. Therefore, the new material 1210 is copied to the update block c 1222 after the garbage collection operation is completed. The new data 121〇 stored in the temporary storage block 12〇6 is identified as invalid and thus the extra space in the temporary storage block can be made available for storing additional new data. It should be noted that the new data 121〇 and the new data 1224 may belong to different logical groups. If the new data 12 10 and the new data 1224 belong to different logical groups, the new data 1210 will remain in the temporary storage block 1206. Once the new data 124728.doc -32-200821829 1224 is written to update block C 1222', a new garbage collection operation can be initiated during the second timeout period. Therefore, in the case of completing the new garbage collection operation, a new update block (not shown) can be allocated, and new data 12〇 can be copied from the temporary storage block 1206 to the new update block. 14A and 14B are simplified block diagrams of memory blocks in accordance with an embodiment of the present invention in which garbage blocks are garbage collected in stages. As shown in Fig. 14A, the original block D 1302 and the messy update block 〇 13〇4 are selected for garbage collection. Here, the original block D 1302 and the hash update block D 1304 contain invalid and valid data, which are represented by a hatched pattern and a dotted line pattern in Fig. 14A, respectively. When receiving a write command to write new data 13 12 , the non-volatile memory storage system announces a busy signal and then copies the valid data from the original block D 13 〇 2 and the messy update block D 1304 to New block d 1308 until the first garbage collection time period 1306 is reached. The non-volatile memory storage system tracks the time during copying, and the non-volatile memory storage system stops the copying operation before the first garbage collection time period 1306 is exceeded. As shown in Fig. 14A, the garbage collection operation cannot be completed within the first garbage collection time period 13〇6, because the original block D 1302 and the messy update block! ) The remaining valid data still exists in 13〇4. Therefore, after copying the portion of the valid data to the new block d 1308, the new data 丨3丨2 received at the start of the garbage collection operation is written to the temporary storage block 丨2〇6 before the first timeout period is reached. . Figure 14B shows that the remainder of the garbage collection operation can be completed in a second timeout period. A second write command is received after receiving the first write command. Therefore, a second timeout period is assigned to the second write command. 124728.doc -33- 200821829 During this second timeout period, the remaining valid data is copied from the original block D 1302 and the messy update block 1) 13〇4 to the new block D 13〇8. Here, all remaining valid data (or the last portion of the valid data) may be copied to the new block D 13〇8 during the second garbage collection time period 1314. Therefore, the garbage collection operation can be completed in the second timeout period. Since the garbage collection operation is completed within this second timeout period, the original block D 1302 and the messy update block D 13〇4 can be erased and made available for storing additional data. After erasing the original block D 1302 and the messy update block 八13〇4, the new update block E 1316 is allocated and the new data 13 14 received from the second write command is written to the newly allocated update block E. . In addition, new data 1314 is not written to staging block 1206 because an update block is available after the garbage collection operation is completed and the new data needs to be buffered until a subsequent timeout period. In this example, the new material 1312 stored in the temporary storage block 12〇6 is copied to the update block E 1316, assuming that the new data lsl2&ni4 belong to the same logical group. Audio/Video Data Access to one of the audio/visual files associated with a non-volatile memory storage system (hereinafter referred to as "audio/video data") when compared to other data A predetermined rate is required to write the audio/video data. As the host computer causes the audio/video data to flow into or out of the non-volatile memory storage system, the bandwidth assigned to the data stream matches or exceeds the predetermined rate. The garbage collection operation performed during the access of the audio/video data can reduce the writeability month b of the audio/video data. Therefore, in a specific embodiment, when the multiple 124728.doc -34-200821829 sector write command is not associated with the voice/video data or the multi-session write command is at the beginning of an audio/video write Perform phased garbage collection.

U 為將聲訊/視訊資料與其他資料區分,在一具體實施例 中,該非揮發性記憶體儲存系統可以參考與該多區段寫入 命令相關聯的目標邏輯位址。因為按順序寫入聲訊/視訊 資料,所以轉化為向後躍步的一目標邏輯位址可以指示新 資料並非聲訊/視訊資料(或係聲訊/視訊資料之開始)。在 另一具體實施例中,該非揮發性記憶體儲存系統亦可以藉 由參考與新資料相關聯的區段之數目而將聲訊/視訊資料 :其他資料區分。可以將聲訊/視訊資料儲存在稱為記錄 單位的單位中。與聲訊/視訊資料相關聯的最小記錄單位 長度可以係32個區段。與新資料相關聯的並非32個區段之 整數倍的區段之數目因此可以指示新f料並非聲訊/視訊 資料。並不與-記錄單位對準或並不在—記錄單位之開始 啟動之接收的新資料亦可以指示新資料並非聲訊/視訊資 料0 因此,若下列條件之—適用,則可以執行階段性垃圾收 集:⑴多區段寫人命令調用垃圾收集操作;(2)將該目標 邏輯位址轉化為向後躍步;(3)目標邏輯位址並未與一記錄 單位邊界對準;以及(4)在接收停止命令之後(即,多區段 寫入命令結束)’ ^與新資料相關聯的區段之數目並非Μ 的整數倍。 圖1 5係依據本發明 之一具體實施例,與一寫入命令相關 124728.doc -35 - 200821829 聯的非揮發性記憶體儲存系統操作之流程圖。該寫入命令 可以係單一區段寫入命令,其中將新資料作為單一區段寫 入橫跨一記憶體單元陣列之隨機位址。根據主機活動性及 卡分段,該主機可使用單一區段寫入命令將具有多個區段 的較長播案寫入隨機位置。因為分配有限數目的更新巴 • 塊,所以此等單一區段寫入可以迅速地經歷更新區塊,從 • 而可以提示該非揮發性記憶體儲存系統執行垃圾收集操作 來清理區塊以將其用於隨後的寫入操作。該寫入命令亦可 ( 以係多區段寫入命令。寫入該記憶體單元陣列的大多數新 資料係彳占用鄰近序列邏輯位址空間的較大資料檔案。根據 主機活動性,該主機可以使用多區段寫入命令來寫入較大 資料檔案。此類新資料包括具有多個逾時週期的新資料之 夕個區#又。圖7顯示多區段寫入命令之一範例。一般而 言’因為多個逾時週期可用於多區段寫入命令,所以可以 將新資料寫入分配的更新區塊而非該暫存區塊。因此,該 〇 冑存區塊通常並非用作多區段寫人命令中的階段性垃圾收 集方案之部分,因為垃圾收集通常可以在分配給該多區段 寫入命令之多個逾時週期内加以完成。 • 如圖15所示,在操作1402中接收一寫入命令。然後在操 • 作1403中決定該寫入命令是否為單一區段寫入命令。若該 寫入命令為單一區段寫入命令,則在操作14〇4中決定單— 區段寫入命令是否調用垃圾收集操作。若單一區段寫入命 令並不調用垃圾收集操作,則在操作1422中將新^斗: 該記憶體。另一方面,若該寫入命令調用垃圾收集操作, 124728.doc -36- 200821829 則在操作1408中另外決定一階段性垃圾收集是否懸而未決 (即,已經啟動,但因無法完成垃圾收集或在階段性垃圾 收集區塊並非空的情況下具呈階段性的垃圾收集操作)。 若存在懸而未決的階段性垃圾收集,則在操作141〇中繼續 或凡成階段性垃圾收集操作。換言之,繼續自先前垃圾收 集操作的剩餘部分。如操作1411所示,執行階段性垃圾收 集操作,直至垃圾收集時間週期(例如,逾時週期與程式 化時間之間的差異)或直至完成階段性垃圾收集操作。U To distinguish audio/video data from other data, in one embodiment, the non-volatile memory storage system can reference a target logical address associated with the multi-session write command. Since the audio/video data is written in sequence, a target logical address that is converted to a backward step can indicate that the new data is not audio/video data (or the beginning of the audio/video data). In another embodiment, the non-volatile memory storage system can also distinguish audio/video data from other data by reference to the number of segments associated with the new data. The audio/video data can be stored in a unit called a recording unit. The minimum recording unit length associated with the audio/video material can be 32 segments. The number of segments associated with the new data that are not integer multiples of 32 segments may therefore indicate that the new material is not audio/video material. New information that is not aligned with the Recording Authority or that is not initiated at the beginning of the Recording Unit may also indicate that the new data is not a voice/video material. Therefore, phased garbage collection may be performed if the following conditions apply: (1) a multi-session write command invokes a garbage collection operation; (2) converts the target logical address into a backward jump; (3) the target logical address is not aligned with a record unit boundary; and (4) is receiving After the command is stopped (ie, the multisession write command ends) '^ The number of sections associated with the new material is not an integer multiple of Μ. Figure 15 is a flow diagram of the operation of a non-volatile memory storage system associated with a write command 124728.doc -35 - 200821829 in accordance with an embodiment of the present invention. The write command can be a single segment write command in which new data is written as a single segment to a random address across a memory cell array. Based on host activity and card segmentation, the host can write long-lived scenarios with multiple segments to random locations using a single segment write command. Because a limited number of update blocks are allocated, these single-segment writes can quickly go through the update block, and the non-volatile memory storage system can be prompted to perform a garbage collection operation to clean up the block for use. For subsequent write operations. The write command can also be a multi-segment write command. Most of the new data systems written to the memory cell array occupy a larger data file of the adjacent sequence logical address space. The host is hosted according to host activity. A multi-session write command can be used to write a larger data file. Such new data includes a new data with multiple timeout periods. Figure 7 shows an example of a multi-session write command. In general, because multiple timeout periods are available for multi-session write commands, new data can be written to the allocated update block instead of the scratch block. Therefore, the cache block is usually not used. Part of a phased garbage collection scheme in a multisession writer command, because garbage collection can usually be done in multiple timeout periods assigned to the multisession write command. • As shown in Figure 15, A write command is received in operation 1402. It is then determined in operation 1403 whether the write command is a single segment write command. If the write command is a single segment write command, then in operation 14〇4 Decision form - section write Whether the inbound command invokes the garbage collection operation. If the single segment write command does not invoke the garbage collection operation, then in operation 1422, the new memory: the memory. On the other hand, if the write command invokes the garbage collection operation, 124728.doc -36- 200821829 In operation 1408, it is additionally determined whether the one-stage garbage collection is pending (ie, it has been started, but it is staged because the garbage collection cannot be completed or if the staged garbage collection block is not empty) Garbage collection operation. If there is an unresolved phased garbage collection, continue or perform a phased garbage collection operation in operation 141. In other words, continue from the remainder of the previous garbage collection operation. As shown in operation 1411, execute Stage garbage collection operations until the garbage collection time period (for example, the difference between the timeout period and the stylized time) or until the staged garbage collection operation is completed.

U 右可以在垃圾收集時間週期内完成階段性垃圾收集操 ^ ’則在操作1412中另外決定即使在完成階段性垃圾收集 操作之後’ 4寫入命令是否仍調用垃圾收集操作。若該寫 入命令並不則垃圾收集操作,則在操作1422中將新資料 寫入該記憶體。另一方面,若該寫入命令確實調用垃圾收 集貝J在操作1414十執行垃圾收集操作,直至在操作⑷8 中達到垃圾收集時間週期或直至完成階段性垃圾收集。在 具體實施例中,若使用階段性垃圾收集區塊,則可將以 上^的等式丨賴作垃圾收集時間週期。若無法在垃圾 L集時間週期内完成垃圾收集操作,則可以在操作14射 寫:該等階段性垃圾收集區塊之-。在另-具體 右使用該暫存區塊,則可在操作1418中將以上 说明的等式2·〇用作垃圾收隼 圾收集時間週期。若無法在垃圾收 集時間週期内完成垃圾收集 靳眘 〃、作則可以在操作1420中將 新貝枓寫入該暫存區塊。 成垃圾# I 在垃圾收集時間週期内完 成垃圾收集操作,則 呆作1422中將新資料寫入該記 124728.doc • 37 - 200821829 憶體。 應該注意,若存在階段性垃圾收集而且目前寫入命令亦 調用垃圾收集操作,則操作1418中所示的垃圾收集時間週 期係操作1410中的垃圾收集時間週期之延續。因此,若存 在階段性垃圾收集而且目前單一區段寫入命令調用垃圾收 集操作’則在總垃圾收集時間週期内完成兩次操作。換言 之,操作14 18中顯示分配用於階段性垃圾收集操作的執行 時間,而且操作1410中所示的垃圾收集操作可以係(例如) 逾時週期與程式化時間之間的差異。 在操作1422中將新資料寫入記憶體之後,在操作1424中 /夬疋新 > 料疋否為3 2個區段的整數倍。若新資料為3 2個區 段的整數倍,則新資料可與聲訊/視訊資料相關聯而且操 作…束。然而,若新資料並非32個區段的整數倍,則在操 作1426中决疋p自#又性垃圾收集是否懸而未決。若存在懸而 未决的階段性垃圾收集,則在操作丨428中繼續或完成階段 11垃圾收集操作。若不存在懸而未決的階段性垃圾收集, 則操作結束。 返回至操作1402,亦可接收一多區段寫入命令。採用一 多區段寫入命令,儲存(或緩衝)新資料之各區段並且可以 在需要的情況下在操作1452中執行垃圾收集操作。該非揮 毛f生记I*思體儲存系統可以不利用一暫存區塊或一階段性垃 圾收集區塊以在階段性垃圾收集操作中儲存新資料,因為 將多個逾時週期分配給該多區段寫入命令並且通常可以在 該多區段寫入命令結束時完成一次垃圾收集操作。因此, 124728.doc -38- 200821829 除彡亥暫存區塊以外,該非揮發性 — 平知丨心體儲存系統可以將新 負料儲存在與該非揮發性古己情, f评贫f生屺隐體儲存系統相關聯的ram ’或在與該非揮發性記憶體儲存系統相關聯的其他記憶 體中,,同時宣告新資料之區段之間的忙碌信號以便使用分 配的逾時週期來執行垃圾收集操作。 ^而’在-具體實施例中,若未分配足夠的逾時週期來 完成垃圾收集操作’則該暫存區塊可用於一多區段寫入命U Right can complete the staged garbage collection operation during the garbage collection time period. Then, in operation 1412, it is additionally determined whether the garbage collection operation is still called even after the stage garbage collection operation is completed. If the write command is not a garbage collection operation, then new data is written to the memory in operation 1422. On the other hand, if the write command does call the garbage collection, the garbage collection operation is performed at operation 1414 until the garbage collection time period is reached in operation (4) 8 or until the stage garbage collection is completed. In a specific embodiment, if a staged garbage collection block is used, the above equation can be relied upon as the garbage collection time period. If it is not possible to complete the garbage collection operation within the garbage collection time period, it can be written in operation 14: - of the phased garbage collection blocks. Using the temporary storage block on the other side, the above-described equation 2·〇 can be used as the garbage collection garbage collection time period in operation 1418. If it is not possible to complete the garbage collection during the garbage collection time period, you can write the new shell to the temporary block in operation 1420. Into the garbage # I Complete the garbage collection operation during the garbage collection time period, then write the new data into the record in 1422.doc • 37 - 200821829 Recall. It should be noted that if there is a staged garbage collection and the current write command also invokes the garbage collection operation, the garbage collection time period shown in operation 1418 is a continuation of the garbage collection time period in operation 1410. Therefore, if there is a staged garbage collection and the current single-segment write command invokes the garbage collection operation, then two operations are completed during the total garbage collection time period. In other words, the execution time allocated for the staged garbage collection operation is displayed in operation 14 18, and the garbage collection operation shown in operation 1410 may be, for example, the difference between the timeout period and the stylized time. After the new data is written to the memory in operation 1422, in operation 1424, the new > material is an integer multiple of 32 segments. If the new data is an integer multiple of 32 segments, the new data can be associated with the audio/video material and operate. However, if the new data is not an integer multiple of 32 segments, then in operation 1426, it is determined whether or not the garbage collection is pending. If there is an unresolved phased garbage collection, then in operation 428, the phase 11 garbage collection operation is continued or completed. If there is no pending phased garbage collection, the operation ends. Returning to operation 1402, a multi-session write command can also be received. A multi-session write command is used to store (or buffer) segments of the new data and the garbage collection operation can be performed in operation 1452 if needed. The non-swinging I* body storage system may not utilize a temporary storage block or a one-stage garbage collection block to store new data in a staged garbage collection operation because multiple timeout periods are assigned to the A multi-session write command and typically a garbage collection operation can be completed at the end of the multi-session write command. Therefore, 124728.doc -38- 200821829 In addition to the temporary storage block, the non-volatile - 丨 丨 丨 丨 储存 储存 储存 储存 储存 储存 储存 储存 储存 储存 储存 储存 丨 丨 丨 丨 丨 丨 丨 丨 丨 丨 丨 丨 丨The ram' associated with the hidden storage system or, in other memory associated with the non-volatile memory storage system, simultaneously announces a busy signal between the segments of the new data to perform the garbage using the allocated timeout period Collect operations. ^ And in the specific embodiment, if a sufficient timeout period is not allocated to complete the garbage collection operation, then the temporary storage block can be used for a multi-session write life.

令。此處,可在操作1454中決定是否接收少於新資料之N 個區’又。可將具有新資料之至少n個區段的一多區段寫入 命令直接寫人該等更新區塊而非該暫存區塊。此處,_ 定義為 Ν'make. Here, it may be determined in operation 1454 whether to receive less than N zones of new data. A multi-session write command with at least n segments of new data can be written directly to the update blocks instead of the temporary block. Here, _ is defined as Ν'

RoundDownt〇tNearest .IntegerRoundDownt〇tNearest .Integer

Tgc + TO· ~~TO~ (3.0)Tgc + TO· ~~TO~ (3.0)

其中TO係逾時週期而且Tge係用以執行—次完整垃圾收集 操作的時間週期。可將此類多區段寫入命令直接寫入該等 ,新區塊而非該暫存區塊。等式3.0顯示當該寫入命令係 單一區段寫入命令時或當該非揮發性記憶體儲存系統在多 區奴寫入叩7中接收少於新資料之^^個區段時,將新資料 寫入該暫存區塊作為階段性垃圾收集方案之部分。 若接收少於N個區段,則該非揮發性記憶體儲存系統依 據在操作14G4中啟動的單-區段寫人命令操作而操作該多 區段寫入命令。然而,若接收新資料之多個區段,則 在操作1456中歧是否可以執行階段性垃圾收集操作。若 不可以執行階段垃圾收集操作,則在操作1422中將新資料 寫入記憶體。另-方面,若可以執行階段性垃圾收集操 124728.doc -39- 200821829 作,則在操作1422中執行階段性垃圾收集操作,直至(例 如)TgC-Tprog之一時間週期。在階段性垃圾收集操作之 後’在操作1422中將新資料寫入記憶體。 以上說明的具體實施例提供用於階段性垃圾收集之方法 及/或系統。可以將垃圾收集操作分成多個階段,而且在 多個逾時週期内執行多個階段。在階段性垃圾收集中,可 將從痃寫入命令接收的新資料儲存在一階段性垃圾收集區 塊或一暫存區塊中。藉由分割垃圾收集操作,可以在該逾 時週期内執行垃圾收集操作之每一個階段,且因此預防逾 時錯誤。 儘笞已基於巧楚瞭解之目的而在某程度上詳細地說明前 述具體實施例,但是該些具體實施例並不限於所提供的細 節。存在實施該等具體實施例的許多替代性方式。因此, 所揭不的具體實施例應係視為具說明性而不具限制性,而 且該等具體實施例並不限於本文提供的細節,而可在所附 申咕專利範圍之範臂及等效物内進行修改。在申請專利範 圍中,元件及/或操作並不意味著操作的任何特定順序, 除非在申請專利範圍中明確聲明。 【圖式簡單說明】 已藉由以上詳細說明並結合附圖而輕易地瞭解本發明, 而且相同參考數字指明相同的結構元件。 圖1係依據本發明之一具體實施例的一非揮發性記憶體 儲存系統之一範例的簡化方塊圖。 圖2係該記憶體單元陣列在平面中的組織之簡化方塊 124728.doc -40- 200821829 圖。 圖3係記憶體單元之頁面的簡化方塊圖。 圖4係記憶體單元之區段的簡化方塊圖。 圖5係一主機與一非揮發性記憶體儲存系統之間之一邏 輯介面的簡化方塊圖。 圖6係依據本發明之一具體實施例,用於階段性垃圾收 集的操作之一般概述的流程圖。 圖7顯示依據本發明之一具體實施例,分成多個部分的 一次垃圾收集操作之一範例的簡化方塊圖。 圖8係依據本發明之一具體實施例,用以使用階段性垃 圾收集區塊作為緩衝器來執行階段性垃圾收集的詳細操作 之流程圖。 圖9 A及9B係依據本發明之具體實施例的記憶體區塊之 簡化方塊圖’其中在階段中對序列更新區塊進行垃圾收 集。 圖10A及10B係依據本發明之一具體實施例的記憶體區 塊之簡化方塊圖,其中在階段中對雜亂更新區塊進行垃圾 收集。 圖11A、11B、11C、11D以及11E係依據本發明之另一具 體實施例的記憶體區塊之簡化方塊圖,其中在階段中對雜 亂更新區塊進行垃圾收集。 圖12係依據本發明之一具體實施例,用以使用暫存區塊 作為緩衝器來執行階段性垃圾收集的詳細操作之流程圖。 圖13A及13B係依據本發明之具體實施例的記憶體區塊 124728.doc -41 - 200821829 之簡化方塊圖’其中在陪與φ 社丨白+又中對序列更新區塊進行垃圾收 集。 圖14 Α及14Β係依據本發明之呈和香 月 < 具體實細例的記憶體區塊 之簡化方塊圖,其中在階段中對雜亂區塊進行垃圾收集。 圖15係依據本發明之一具體實施例,與一寫入命令相關 聯的非揮發性記憶體儲存系統操作之流程圖。 【主要元件符號說明】 ϋ 124728.doc 102 非揮發性記憶體儲存系統 104 主機介面 108 記憶體介面 110 記憶體控制器 112 RAM 114 ECC電路 116 ROM 118 記憶體 120 陣列邏輯 122 非揮發性記憶體單元陣歹|J 123 記憶體單元陣列 124 匯流排 126 系統匯流排 202-205 平面 210-213 區塊 220-223 區塊 401 頁面 ioc -42- 200821829 ηWhere TO is the timeout period and Tge is used to perform the time period of the complete garbage collection operation. Such multi-segment write commands can be written directly to the new block instead of the scratch block. Equation 3.0 shows that when the write command is a single-segment write command or when the non-volatile memory storage system receives less than the new data in the multi-region slave write 叩7, the new Data is written to the staging block as part of a phased garbage collection plan. If less than N segments are received, the non-volatile memory storage system operates the multi-session write command in accordance with a single-segment write command operation initiated in operation 14G4. However, if multiple segments of the new data are received, then in operation 1456 it is possible to perform a phased garbage collection operation. If the stage garbage collection operation cannot be performed, new data is written to the memory in operation 1422. Alternatively, if a phased garbage collection operation 124728.doc -39-200821829 can be performed, a phased garbage collection operation is performed in operation 1422 until (for example) one of the time periods of TgC-Tprog. New data is written to the memory in operation 1422 after the staged garbage collection operation. The specific embodiments described above provide methods and/or systems for staged garbage collection. The garbage collection operation can be divided into phases and multiple phases can be executed in multiple timeout periods. In the staged garbage collection, new data received from the 痃 write command can be stored in a stage garbage collection block or a temporary storage block. By splitting the garbage collection operation, each phase of the garbage collection operation can be performed during the timeout period, and thus the timeout error is prevented. The foregoing specific embodiments have been described in some detail, and are not limited to the details provided. There are many alternative ways of implementing these specific embodiments. Therefore, the specific embodiments are not to be construed as limiting, and the details are not limited to the details provided herein. Make modifications within the object. In the context of the patent application, the elements and/or operations do not imply any specific order of operation unless explicitly stated in the scope of the claims. BRIEF DESCRIPTION OF THE DRAWINGS The invention will be readily understood by the above detailed description and the drawings, and the same reference numerals 1 is a simplified block diagram of an example of a non-volatile memory storage system in accordance with an embodiment of the present invention. Figure 2 is a simplified block diagram of the organization of the memory cell array in a plane 124728.doc -40- 200821829. Figure 3 is a simplified block diagram of a page of memory cells. Figure 4 is a simplified block diagram of a section of a memory cell. Figure 5 is a simplified block diagram of a logical interface between a host and a non-volatile memory storage system. Figure 6 is a flow diagram of a general overview of the operation of a staged garbage collection in accordance with an embodiment of the present invention. Figure 7 shows a simplified block diagram of one example of a garbage collection operation divided into sections in accordance with an embodiment of the present invention. Figure 8 is a flow diagram showing the detailed operation of performing a staged garbage collection using a staged garbage collection block as a buffer in accordance with an embodiment of the present invention. Figures 9A and 9B are simplified block diagrams of memory blocks in accordance with an embodiment of the present invention, wherein the sequence update blocks are garbage collected in a stage. 10A and 10B are simplified block diagrams of memory blocks in accordance with an embodiment of the present invention, wherein garbage collection is performed on the messy update blocks in the stage. 11A, 11B, 11C, 11D, and 11E are simplified block diagrams of memory blocks in accordance with another embodiment of the present invention in which garbage collection blocks are garbage collected in stages. Figure 12 is a flow diagram showing the detailed operation of performing a staged garbage collection using a temporary storage block as a buffer in accordance with an embodiment of the present invention. 13A and 13B are simplified block diagrams of a memory block 124728.doc-41 - 200821829 in accordance with an embodiment of the present invention, wherein garbage collection is performed on the sequence update block in the accompanying φ 社 丨 + 。 。. Figure 14 is a simplified block diagram of a memory block in accordance with the present invention in accordance with the present invention, wherein the messy blocks are garbage collected in the stage. Figure 15 is a flow diagram of the operation of a non-volatile memory storage system associated with a write command in accordance with an embodiment of the present invention. [Main component symbol description] ϋ 124728.doc 102 Non-volatile memory storage system 104 Host interface 108 Memory interface 110 Memory controller 112 RAM 114 ECC circuit 116 ROM 118 Memory 120 Array logic 122 Non-volatile memory unit歹|J 123 Memory Cell Array 124 Busbar 126 System Bus 202-205 Plane 210-213 Block 220-223 Block 401 Page ioc -42- 200821829 η

402 區段 404 區段 405 管理資料 406 資料 502 記憶體單元陣列 512 邏輯位址空間 702 忙碌信號 704 多區段寫入命令 706 停止命令 760-762 新資料 780 第一部分 781 第二部分 902 原始區塊A 904 序列更新區塊A 905 現有資料 908 階段性垃圾收集區塊A 908 階段性垃圾收集區塊C 910 新資料 914 新原始區塊A 916 更新區塊B 918 新資料 1001 新資料 1002 原始區塊A 1004 雜亂更新區塊A 124728.doc -43 - 200821829 1005 新資料 1006 新區塊A 1008 階段性垃圾收集區塊A 1010 新原始區塊A 1012 更新區塊B ^ 1014 階段性垃圾收集區塊C . 1202 原始區塊A 1204 序列更新區塊A f : 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- 200821829 2008 2010 2012 2016 2018 2020 . 2022 2202 O' 2204 2206 2212 2214 P0-P7402 Section 404 Section 405 Management Profile 406 Data 502 Memory Cell Array 512 Logical Address Space 702 Busy Signal 704 Multi-Segment Write Command 706 Stop Command 760-762 New Data 780 Part 1 781 Part 2 902 Original Block A 904 Sequence Update Block A 905 Existing Data 908 Staged Garbage Collection Block A 908 Staged Garbage Collection Block C 910 New Data 914 New Original Block A 916 Update Block B 918 New Data 1001 New Data 1002 Original Block A 1004 Clutter update block A 124728.doc -43 - 200821829 1005 New data 1006 New block A 1008 Staged garbage collection block A 1010 New original block A 1012 Update block B ^ 1014 Staged garbage collection block C. 1202 Original block A 1204 Sequence update block A f : 1205 Existing data 1206 Temporary block 1210 New tribute 1212 New original block A 1222 New data 1222 Update block C 1224 New data 1302 Original block D ϋ 1304 Messy Update Block D 1308 New Block D ' 1312 New Data, 1314 New Data 1316 New Update Block E 2002 Original Block G 2004 Miscellaneous The new update block G 2006 block of G 124728.doc -44- 200821829 2008 2010 2012 2016 2018 2020. 2022 2202 O '2204 2206 2212 2214 P0-P7

新區塊G 階段性垃圾收集區塊G 新資料 新原始區塊G 更新區塊Η 階段性垃圾收集區塊J 新資料 原始區塊Κ 雜亂更新區塊Κ 新區塊Κ 階段性垃圾收集區塊Μ 新資料 頁面 υ 124728.doc -45-New block G Stage garbage collection block G New data New original block G Update block 阶段 Stage garbage collection block J New data original block 杂 Messy update block Κ New block 阶段 Stage garbage collection block Μ New Information page υ 124728.doc -45-

Claims (1)

200821829 十、申請專利範固: 1.200821829 X. Applying for patents: 1. 一種用以操作-記憶體系統之方法,其包括: 接收-第-寫入命令以寫入第 寫入命令得 1數個貝料,該第一 執行; 成該弟一寫入命令的 在垃圾收集時間週期内將第 部分從一七夕加^ 布设数個有效資料之一 ^ 3夕個苐一區塊複製到一第二區塊; 將忒第一複數個資入一 塊;以及 弟^奴性垃圾收集區 在該逾時週期前解除該忙碌信號。 階段性垃圾 或多個第一 2·如巧求項1之方法,其進一步包括將該第 收集區塊轉換為一更新區塊。 3·如凊求項1之方法,其進一步包括抹除該 區塊。 U 4.,凊求項i之方法,纟中該一或多個第_區塊、該第二 區塊以及該第三區塊經組態成跨越-單-邏輯群組。 如:月求項1之方法’其中該從該一或多個第一區塊複製 該複數個有效資料包括: 追蹤用以該將該複數個有效資料之該部分從該一或多 個第一區塊複製到該第二區塊之一時間;以及 夕 在該時間超過該垃圾收集時間週期前停止該複製該複 數個有效資料之該部分。 6.如請求们之方法,其中該第一寫入命令係一單—區段 124728.doc 200821829 寫入命令。 7·如請求項1之方法,其中該垃圾收集時間週期係該逾時 週期與該寫入該第一複數個資料相關聯的一程式化時間 之間的一差異。 8·如請求項1之方法,其進一步包括分配一第二階段性垃 圾收集區塊,其經組態用以儲存自一第二寫入命令的第 二複數個資料,在接收該第一寫入命令之後接收該第二 寫入命令。A method for operating a memory system, comprising: receiving a - write-write command to write a first write command to obtain a plurality of materials, the first execution; During the collection period, the first part will be copied from one of the seven eves and one of the several valid materials will be copied to the second block; the first plurality will be included in the second block; The garbage collection area releases the busy signal before the timeout period. Staged garbage or a plurality of first methods, such as the method of claim 1, further comprising converting the first collection block into an update block. 3. The method of claim 1, further comprising erasing the block. U 4. The method of claim i, wherein the one or more _blocks, the second block, and the third block are configured to span-single-logical groups. For example, the method of claim 1 wherein the copying the plurality of valid materials from the one or more first blocks comprises: tracking the portion of the plurality of valid data from the one or more first The block is copied to one of the second blocks; and the portion of the plurality of valid data is copied before the time exceeds the garbage collection time period. 6. The method of the requester, wherein the first write command is a single-segment 124728.doc 200821829 write command. 7. The method of claim 1, wherein the garbage collection time period is a difference between the timeout period and a stylized time associated with writing the first plurality of materials. 8. The method of claim 1, further comprising assigning a second stage garbage collection block configured to store a second plurality of data from a second write command to receive the first write The second write command is received after the command is entered. 9· 一種用以操作一記憶體系統之方法,其包括·· 接收一第一寫入命令以寫入第一複數個資料,該第一 寫入命令得以分配一第一逾時週期來完成該第_寫入命 令的執行; 宣告一第一忙碌信號; 在一垃圾收集時間週期内將複數個有效資料之—第 部分從一或多個第一區塊複製到一第二區塊; 將該第一複數個資料寫入一第三區塊; 在該第一逾時週期前解除該第一忙碌信號; ’在該接 該第二寫 寫入命令 接收一弟一寫入命令以寫入第二複數個資料 收該第一寫入命令之後接收該第二寫入命令, 入命令得以分配一第二逾時週期來完成該第二 的執行; 宣告一第二忙碌信號; 在該垃圾收集時間週期内將該複數個有效資料之一外 二部分從該一或多個第一區塊複製到該第二區塊之第 124728.doc 200821829 將該第三區塊轉換為一第一更新區塊; 夺λ第一複數個資料寫入該第一更新區塊;以及 在4第二逾時週期前解除該第二忙碌信號。 1 0 ·如§青求項9夕古〇 、万去’其進一步包括抹除該一或多個第一 區塊。 u.如請求項9之方法,其進-步包括: 分配一第四區塊;以及 將該第二複數個資料寫入該第四區塊。 12 ·如請求項1〗 、 / ,/、進一步包括在一剩餘垃圾收集時 間週期内將複數個有效資 ^ 5双貝枓從或多個弟五區塊複製到 弟區塊。 13 Ιί未項12之方法,其中在該第二逾時週期内將該複數 =資料從該一或多個第五區塊複製到該第六區塊。 14·如睛求項9之方法,Α中哕篝篦 八肀第一及弟二寫入命令係單 一區段寫入命令。 货早 C 15.—種用以操作-記憶體系統之方法,其包括: 、接收-寫入命令以寫入複數個資料,該寫入命令得以 为配一逾時週期來完成該寫入命令的執行; 宣告一忙碌信號; 在一垃圾收集時間週期内將複數個有效資八 從一或多個第一區塊複製到一第二區塊; 將該複數個資料寫入一暫存區塊;以及 在該逾時週期前解除該忙碌信號。 16·如凊求項15之方法,其中該寫入命 w P 7係早一區段寫入 124728.doc 200821829 命令。 17·如%求項15之方法,其中該複製該複數個有效資料之該 部分包括: ^ 追蹤用以該將該複數個有效資料之該部分從該—或多 個第一區塊複製到該第二區塊之一時間;以及 在該時間超過該垃圾收集時間週期前停止該 數個有效資料之該部分。 以複9. A method for operating a memory system, comprising: receiving a first write command to write a first plurality of data, the first write command being assigned a first timeout period to complete the Executing a first write command; declaring a first busy signal; copying the first portion of the plurality of valid data from one or more first blocks to a second block during a garbage collection time period; Writing a first plurality of data to a third block; releasing the first busy signal before the first timeout period; 'receiving a second write command to receive a write command to write the first Receiving the second write command after receiving the first write command, the input command is assigned a second timeout period to complete the second execution; declaring a second busy signal; at the garbage collection time Copying the outer two parts of the plurality of valid data from the one or more first blocks to the second block in the period 124728.doc 200821829 converting the third block into a first update block ; win the first plural of λ The data is written to the first update block; and the second busy signal is released before the 4 second timeout period. 1 0 · § 青 项 9 夕 、 万 万 万 其 其 其 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 u. The method of claim 9, the further comprising: assigning a fourth block; and writing the second plurality of data to the fourth block. 12 · If the request items 1 and /, /, further include copying a plurality of valid shares from the or five brothers to the younger block during a remaining garbage collection time period. The method of claim 12, wherein the complex number=data is copied from the one or more fifth blocks to the sixth block during the second timeout period. 14·If you want to solve the problem of item 9, Α中哕篝篦 Eight 肀 first and second two write command system is a single segment write command.货早 C 15. A method for operating a memory system, comprising: a receive-write command to write a plurality of data, the write command being able to complete the write command with a timeout period Executing a busy signal; copying a plurality of valid octencies from one or more first blocks to a second block during a garbage collection time period; writing the plurality of data to a temporary storage block And release the busy signal before the timeout period. 16. The method of claim 15, wherein the write life is a write to the 124728.doc 200821829 command. 17. The method of claim 15, wherein the copying the portion of the plurality of valid materials comprises: ^ tracking for copying the portion of the plurality of valid data from the one or more first blocks to the a time of one of the second blocks; and stopping the portion of the plurality of valid data before the time exceeds the garbage collection time period. Take 18 項15之方法’其中該垃圾收集時間週期係該逾時 週期與該寫入該複數個資料相關聯的一 的一差異。 式化時間之間 19, 一種用以操作一記憶體系統之方法,其包括: 接收一帛一寫入命令以寫人第一複數個冑料,一 寫入命令得以分配-第-逾時週期來完成該第z 一 令的執行; 舄入命 宣告一第一忙碌信號; 在一垃圾收集時間週期内將複數個有效資料之—— 部分從一或多個第一區塊複製到一第二區塊· 第 將該第一複數個資料寫入一暫存區塊; 在一逾時週期前解除該第一忙碌信號; ’在該接 該第二寫 寫入命令 接收-第二寫入命令以寫入第二複數個資料 收該第一寫入命令之後接收該第二寫入命令, 入命令得以分配一第二逾時週期來完成該第二 的執行; 宣告一第二忙碌信號; 124728.doc -4- 200821829 在該垃圾收集時間週期内將該複數個有效資料之一第 二部分從該-或多個第—區塊複製到該第二區塊;以及 在該第二逾時週期前解除該第二忙碌信號。 20·如請求項19之方法,並逸一半勺以 ,、進步包括將該第二複數個資料 寫入該暫存區塊。 21·如請求項19之方法,其進一牛白扛故分你 、 乂匕括將5亥第二複數個資料 寫入一更新區塊。The method of item 18, wherein the garbage collection time period is a difference between the timeout period and a one associated with the plurality of materials written. Between time, 19, a method for operating a memory system, comprising: receiving a write command to write a first plurality of data, a write command is allocated - a - time period To complete the execution of the z-th order; to declare a first busy signal; to copy a portion of the plurality of valid data from one or more first blocks to a second during a garbage collection time period Blocking, the first plurality of data is written into a temporary storage block; the first busy signal is released before a timeout period; 'the second write write command is received at the second receive command Receiving the second write command after writing the second plurality of data to receive the first write command, the input command is assigned a second timeout period to complete the second execution; and declaring a second busy signal; 124728 .doc -4- 200821829 copying the second portion of one of the plurality of valid data from the one or more first blocks to the second block during the garbage collection time period; and during the second time period The second busy signal is released before. 20. The method of claim 19, wherein the method comprises writing the second plurality of data to the temporary storage block. 21. If the method of claim 19 is entered, it is divided into two, and the second plurality of data of 5 hai is written into an update block. 22. 如請求項19之方法,其進—步包括在該複製該複數個有 效資料之該第二部分之後抹除該—或多個第一區塊。 23. 如請求項22之方法,其中若該複數個有效資料之該第二 部分係該複數個有效資料之一悬徭 W #人# ^ 琅後部分,則抹除該一或 多個第一區塊。 24_如請求項19之方法,其進一步包括: 分配一更新區塊;以及 將該第一複數個資料從該智在 心邊货存區塊複製到該更新區 塊022. The method of claim 19, further comprising erasing the one or more first blocks after the copying the second portion of the plurality of valid data. 23. The method of claim 22, wherein if the second portion of the plurality of valid data is one of the plurality of valid materials, the one of the plurality of valid data is hanged, the one or more first Block. 24) The method of claim 19, further comprising: allocating an update block; and copying the first plurality of data from the smart card store block to the update block 0 25·如請求項19之方法 一區段寫入命令。 其中該等第一及第二寫入命令係單 26· —種非揮發性記憶體儲存系統,其包括: 一記憶體,其經組態用以儲存-儲存系統韋刃體; 一非揮發性記憶體單元陣列;以及 處理為’其與$記憶體及該非揮發性記憶體單元陣 列通信,該處理器經組態用以執行儲存在該記憶體中的 該儲存系統動體,該儲存系統動體包括程式指令,其用 124728.doc 200821829 以: 接收一寫入命令以將複數個資料寫入該非揮發性記 憶體單元陣列, 宣告一忙碌信號, 在一垃圾收集時間週期内將複數個有效資料之一旬 分從一或多個第一區塊複製到一第二區塊, 將該複數個資料寫入一第三區塊, 〇25. The method of claim 19 is a sector write command. The first and second write commands are a non-volatile memory storage system, comprising: a memory configured to store-storage system; a non-volatile An array of memory cells; and processing as 'communicating with the memory and the non-volatile memory cell array, the processor configured to execute the storage system moving in the memory, the storage system The program includes a program instruction, which uses 124728.doc 200821829 to: receive a write command to write a plurality of data into the non-volatile memory unit array, announce a busy signal, and generate a plurality of valid data in a garbage collection time period. One of the ten minutes is copied from one or more first blocks to a second block, and the plurality of pieces of data are written into a third block, 將該第三區塊轉換為一更新區塊,以及 在一逾時週期前解除該忙碌信號。 27.如請求項26之非揮發性記憶體儲存系統,其進一步包括 抹除該一或多個第一區塊。 其中該第三區 28·如請求項26之非揮發性記憶體儲存系統 塊經組態成跨越一單一邏輯群組。 29·:請求項26之非揮發性記憶體儲存系統,其中該從該等 第—及第二區塊複製該複數個有效資料包括: ^鞭用以該將該複數個有效資料之該部分從該一或多 個第一區塊複製到該第二區塊之一時間;以及 過該垃圾收集時間週期前停止 數個有效資料之該部分。 其中該第三區 3〇.如請求項26之非揮發性記憶體儲存系統 塊係一階段性垃圾收集區塊。 31_如請求項26之非揮發性記憶體儲存 集時間週期係該逾時週期鱼 : '、、、中該垃圾收 的一程式化時間之間的—差異5亥複數個資料相關聯 124728.doc 200821829 32. —種非揮發性記憶體儲存系統,其包括: 一唯讀記憶體(ROM),其經組態用以儲存_ 韌體; 仔糸統 一非揮發性記憶體單元陣列;以及 一處理器,其與該R〇M、該記憶體單元陣列以及該 揮發性記憶體單元陣列通信,該處理器經組態用以^ 儲存系統_,該儲存系統_包 Ο c β 揮;Γ第一寫入命令以將第一複數個資料寫入該非 X:體早兀陣列,該第—寫人命令得以分配一 苐-逾時週期來完成該第一寫入命令的執行, 宣告一第一忙碌信號, 在-垃圾收集時間週期内將複數個有效 一部分從—或多個第-區塊複製到-第二區塊, 將該第-複數個資料寫入一第三區塊, 在该第一逾時週期前解除該第一忙碌作號 揮第二寫入命令以將第二複數”料寫入該非 揮發I己憶體單元陣列,在該接收 後接收該第二寫入命令,該第二寫入命4:::: 第:逾時週期來完成該第二寫入命令的執行’刀 旦告一第二忙碌信號, 在該垃圾收集時間週期内將該複 弟二部分從該-或多個第一區塊複製到該第;:之 將該第三區塊轉換為-第-更新區塊,°° 124728.doc 200821829 將該第二複數個資料寫入該第一更新區塊,以及 在該第二逾時週期前解除該第二忙碌信號。 33·如請求項32之非揮發性記憶體儲存系統,其中該儲存系 統韌體進一步包括用以抹除該一或多個第一區塊的程式 指令。 二 34. 如請求項32之非揮發性記憶體儲存系統,其中該儲存系 統韌體進一步包括程式指令,其用以· ' 分配一第四區塊;以及The third block is converted to an update block and the busy signal is released before a timeout period. 27. The non-volatile memory storage system of claim 26, further comprising erasing the one or more first blocks. The third zone 28. The non-volatile memory storage system block of claim 26 is configured to span a single logical group. 29. The non-volatile memory storage system of claim 26, wherein the copying the plurality of valid data from the first and second blocks comprises: wiping the portion of the plurality of valid data from the The one or more first blocks are copied to one of the second blocks; and the portion of the plurality of valid data is stopped before the garbage collection time period. Wherein the third zone 3〇. The non-volatile memory storage system block of claim 26 is a one-stage garbage collection block. 31_ The time period of the non-volatile memory storage set of claim 26 is the time-out period fish: ',,, between the stylized time of the garbage collection--the difference is related to the number of data. 124728. Doc 200821829 32. A non-volatile memory storage system comprising: a read only memory (ROM) configured to store _ firmware; a uniform non-volatile memory cell array; and a a processor that is in communication with the R〇M, the memory cell array, and the volatile memory cell array, the processor configured to store a system _, the storage system _包 c β 挥; a write command to write the first plurality of data to the non-X:-body array, the first-writer command is assigned a 苐-timeout period to complete the execution of the first write command, proclaiming a first a busy signal, in the garbage collection time period, copying a plurality of valid parts from - or a plurality of first blocks to - a second block, and writing the first plurality of data to a third block, in the Release the first busy before a timeout period Writing a second write command to write the second plurality of materials into the non-volatile I memory cell array, and receiving the second write command after the receiving, the second write command 4:::: : the timeout period is completed to complete the execution of the second write command, and the second busy signal is copied from the one or more first blocks to the garbage collection time period. The third block is converted into a --update block, ° 124728.doc 200821829, the second plurality of data is written into the first update block, and before the second timeout period The second busy signal is released. 33. The non-volatile memory storage system of claim 32, wherein the storage system firmware further comprises program instructions to erase the one or more first blocks. The non-volatile memory storage system of claim 32, wherein the storage system firmware further comprises program instructions for 'allocating a fourth block; 將該第二複數個資料寫入該第四區塊。 35. 如請求項34之非揮發性記憶體储存系统,其中該 統韌體進一步包括程式指令,兑用 9 ^ 具用以在一剩餘垃圾收集 時間週期内將複數個有效資斜你 ^ ^ , β欢貝枓攸一或多個第五區塊複製 到一第六區塊。 3 6 ·如請求項3 5之非揮發性記情體儲在 c U篮储存系統,其中在該第二 逾時週期内將該複數個有效資料從該-❹個第五區塊Writing the second plurality of data into the fourth block. 35. The non-volatile memory storage system of claim 34, wherein the firmware further comprises a program instruction, and the 9^ device is used to skew the plurality of valid resources during a remaining garbage collection time period. One or more fifth blocks of β Huaibei are copied to a sixth block. 3 6 · The non-volatile grammar of claim 3 is stored in the c U basket storage system, wherein the plurality of valid data are from the fifth block in the second time period 複製到該第六區塊。 37. 如請求項32之非揮發性記憶體儲存系統,其中該等第一 及第二寫入命令係單—區段寫入命令。 38. —種非揮發性記憶體儲存系統,其包括: 一記憶體,其經組態用以儲在 ^ W ^存一儲存系統韌體; 一非揮發性記憶體單元陣列;以及 處理器’其與該記憶體 版及及非揮發性記憶體單元陣 列通信,該處理器經組能 ^卜 心用以執仃儲存在該記憶體中的 4儲存系統韌體,該儲存系 雨仔糸統轫體包括程式指令,其用 124728.doc 200821829 以: 收寫入〒令以將複數個資料寫入該非揮發性記 憶體單元陣列, 宣告一忙碌信號, 在-垃圾收集時間週期喊行1圾收集操作之— 部分, 將該複數個資料寫入一暫存區塊,以及 在一逾時週期前解除該忙碌信號。 3 9·如請求項38之非揮發性印 平知注记隐體儲存系統,其中用以 該垃圾收集操作之該部分的該等程式指令包括用以在該 城,集時間週期内將複數個有效資料之—部分從一或 夕個第一區塊複製到一第一 一 弟一&塊的程式指令。 40.如請求項39之非揮發性記憶體 ^ 仔糸、、先’其中用以複製 该複數個有效資料之該部分 表 行下列操作的程式指令: 符用以進 K.j 追蹤用以該將該複數個有 加雄 文貝枓之該部分從該一或多 個第一區塊複製到該第_ R 次夕 矛一&塊之一時間;以及 在該時間超過該垃圾收集時間週期 數個有效資料之該部分。 T遠複製該複 札如請求項38之非揮發性記憶體儲存系統, 令係一單一區段寫入命令。 八中4寫入印 42.如請求項38之非揮發性記憶體料_, 集時間週期係該逾時週期與該寫人 垃圾收 的一程式化時間之間的_差異 ^料相關聯 124728.doc 200821829 43 · —種非揮發性記憶體儲存系統,其包括: 一唯讀記憶體(ROM),其經組態用以儲存一儲存系統 韌體; 一記憶體單元陣列,其經組態用以維持一暫存區塊; 一非揮發性記憶體單元陣列;以及 一處理器,其與該R〇M、該記憶體單元陣列以及該非 揮發性記憶體單元陣列通信,該處理器經組態用以執行 儲存在《亥ROM中的該健存系統韋刃體,該儲存系統韋刃體包 括程式指令,其用以: 接收-第-寫入命令以將第一複數個資料寫入該非 f發性記憶體單轉列,該m命令得以分配— 第-逾時週期來完成該第__寫人命令的執行, 宣告一第一忙碌信號, 在-垃圾收集時間週期内將複數個有效資料之一第 部分從—或多個第一區塊複製到一第二區塊, U 將該第-複數個資料寫入一暫存區塊, 在-逾時週期前解除該第一忙綠信號, 禮::一第二寫入命令以將第二複數個資料寫入該非 揮發性記憶體單元陳 备斗认 早兀陣列,在該接收該第-寫入命令之 後接收該第二寫入命 一該弟一寫入命令得以分配一 :::時週期來完成該第二寫入命令的執行, 旦σ 一第二忙碌信號, 在該垃圾收| η生日日、m 第二部分從該將該複數個有效資料之— 以$夕個第一區塊複製到該第二區塊, 124728.doc 200821829 以及 在該第二逾時週期前解除該第二忙碌信號。 44.如請求項43之非揮發性記憶體儲存系統,其中該儲存^ 統韌體進一步包括用以將該第二複數個資料寫入該 區塊的程式指令。 * 45·如請求項43之非揮發性記憶體儲存系統,其中該儲存 統韌體進一步包括用以將該第二複數個資料子’、 句一更新 區塊的程式指令。 46·如請求項43之非揮發性記憶體儲存系統,其中該儲存, 統韌體進一步包括用以在該複製該複數個有效資料:^ 第二部分之後抹除該一或多個第一區塊的程式指令。邊 47·如請求項46之非揮發性記憶體儲存系統,其中若該複數 個有效資料之該第二部分係該複數個有效資料之一 =/ 部分,則抹除該一或多個第一區塊。 48. 如請求項43之非揮發性記憶體儲存系統,其中該儲存系 統韌體進一步包括程式指令,其用以: ^ 分配一更新區塊;以及 將該第一複數個資料從該暫存區掄遴制以 子^塊複製到該更新區 塊。 49. 如請求項43之非揮發性記憶體儲存系統,其中該等第一 及第二寫入命令係單一區段寫入命令。 124728.doc -11 -Copy to the sixth block. 37. The non-volatile memory storage system of claim 32, wherein the first and second write commands are single-segment write commands. 38. A non-volatile memory storage system, comprising: a memory configured to be stored in a storage system firmware; a non-volatile memory unit array; and a processor It communicates with the memory version and the non-volatile memory unit array, and the processor is configured to perform the 4 storage system firmware stored in the memory, the storage system The body includes a program instruction, which uses 124728.doc 200821829 to: Write a command to write a plurality of data to the non-volatile memory unit array, announce a busy signal, and call a garbage collection during the garbage collection time period. In operation, part of writing the plurality of data into a temporary storage block and releasing the busy signal before a timeout period. 3. The non-volatile imprinted hidden object storage system of claim 38, wherein the program instructions for the portion of the garbage collection operation comprise a plurality of program time periods in the city The part of the valid data is copied from the first block of the first or the first block to the program of the first one of the first block. 40. The non-volatile memory of claim 39, the first program instruction for copying the plurality of valid data, the following operation: the character is used for Kj tracking to Copying, by the plurality of the first block, the time from the one or more first blocks to the time of the first _R 一 一 &█ and at the time exceeding the garbage collection time period, the number of valid This part of the information. The remote copying of the non-volatile memory storage system of claim 38 causes a single segment write command.八中4写印42. As in claim 38, the non-volatile memory material _, the set time period is associated with the _ difference between the time period and the stylized time of the writer's garbage collection 124728 .doc 200821829 43 - A non-volatile memory storage system comprising: a read only memory (ROM) configured to store a storage system firmware; a memory cell array configured And a processor that communicates with the R〇M, the memory cell array, and the non-volatile memory cell array, the processor is grouped The state is used to execute the memory system stored in the "Her ROM", the storage system blade includes a program command for: receiving - first-write command to write the first plurality of data to the non- F-memory memory single-column, the m command can be assigned - the first-timeout period to complete the execution of the first __ writer command, declare a first busy signal, and multiple valid during the garbage collection time period The first part of the information from - Or the plurality of first blocks are copied to a second block, U writes the first plurality of data into a temporary storage block, and the first busy green signal is released before the timeout period, a second write command to write the second plurality of data to the non-volatile memory unit, and after receiving the first write command, the second write command Allocating a ::: time period to complete the execution of the second write command, σ σ a second busy signal, in the garbage collection η birthday day, m second part from the plurality of valid data - The first block is copied to the second block, 124728.doc 200821829 and the second busy signal is released before the second timeout period. 44. The non-volatile memory storage system of claim 43, wherein the storage firmware further comprises program instructions to write the second plurality of data to the block. *45. The non-volatile memory storage system of claim 43, wherein the storage firmware further comprises program instructions for updating the second plurality of data sub- and sentence-update blocks. 46. The non-volatile memory storage system of claim 43, wherein the storage firmware further comprises means for erasing the one or more first regions after the copying the plurality of valid data: ^ the second portion Block program instructions. The non-volatile memory storage system of claim 46, wherein if the second portion of the plurality of valid data is one of the plurality of valid data = / portion, erasing the one or more first Block. 48. The non-volatile memory storage system of claim 43, wherein the storage system firmware further comprises program instructions for: ^ allocating an update block; and the first plurality of data from the temporary storage area The system is copied to the update block in blocks. 49. The non-volatile memory storage system of claim 43, wherein the first and second write commands are a single segment write command. 124728.doc -11 -
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 true TW200821829A (en) 2008-05-16
TWI376600B 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 (en)
WO (1) WO2008042596A2 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI396975B (en) * 2008-08-06 2013-05-21 Realtek Semiconductor Corp Adaptable buffer device and method thereof
TWI601140B (en) * 2009-06-15 2017-10-01 美光科技公司 Use of emerging non-volatile memory elements with flash memory
US10120615B2 (en) 2016-10-04 2018-11-06 Shenzhen Epostar Electronics Limited Co. Memory management method and storage controller using the same
CN112114742A (en) * 2019-06-19 2020-12-22 慧荣科技股份有限公司 Data storage device and data processing method

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11494299B2 (en) 2021-02-18 2022-11-08 Silicon Motion, Inc. Garbage collection operation management with early garbage collection starting point

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
TWI396975B (en) * 2008-08-06 2013-05-21 Realtek Semiconductor Corp Adaptable buffer device and method thereof
TWI601140B (en) * 2009-06-15 2017-10-01 美光科技公司 Use of emerging non-volatile memory elements with flash memory
US10120615B2 (en) 2016-10-04 2018-11-06 Shenzhen Epostar Electronics Limited Co. Memory management method and storage controller using the same
CN112114742A (en) * 2019-06-19 2020-12-22 慧荣科技股份有限公司 Data storage device and data processing method
TWI790383B (en) * 2019-06-19 2023-01-21 慧榮科技股份有限公司 A data storage device and a data processing method

Also Published As

Publication number Publication date
WO2008042596A3 (en) 2008-07-31
TWI376600B (en) 2012-11-11
WO2008042596A2 (en) 2008-04-10

Similar Documents

Publication Publication Date Title
JP7366795B2 (en) Memory system and control method
TWI741671B (en) Memory system
US7444462B2 (en) Methods for phased garbage collection using phased garbage collection block or scratch pad block as a buffer
CN109240938B (en) Memory system and control method for controlling nonvolatile memory
US7441071B2 (en) Memory systems for phased garbage collection using phased garbage collection block or scratch pad block as a buffer
KR100922308B1 (en) Phased garbage collection
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
US7444461B2 (en) Methods for phased garbage collection
JP5571691B2 (en) Maintaining mapping address tables in storage
US9367451B2 (en) Storage device management device and method for managing storage device
US8341375B2 (en) Methods for conversion of update blocks based on association with host file management data structures
US20210064291A1 (en) Memory system and method of controlling nonvolatile memory
US20080162787A1 (en) System for block relinking
US20080162612A1 (en) Method for block relinking
US20230091792A1 (en) Memory system and method of controlling nonvolatile memory
TW200821829A (en) Memory systems for phased garbage collection using phased garbage collection block or scratch pad block as a buffer
TWI380303B (en) Methods for storing memory operations in a queue
JP2009259145A (en) Memory controller, flash memory system provided with memory controller, and method for controlling flash memory
US11556249B2 (en) Delaying random data relocation for reducing write amplification in storage devices
TWI548989B (en) Mobile electronic device and method for clearing memory blocks
JP2009301491A (en) Memory controller, flash memory system equipped with memory controller, and control method for flash memory
TW200821830A (en) Phased garbage collection

Legal Events

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