TWI343522B - Non-volatile memory storage systems and methods for performing phased garbage collection - Google Patents
Non-volatile memory storage systems and methods for performing phased garbage collection Download PDFInfo
- Publication number
- TWI343522B TWI343522B TW096126798A TW96126798A TWI343522B TW I343522 B TWI343522 B TW I343522B TW 096126798 A TW096126798 A TW 096126798A TW 96126798 A TW96126798 A TW 96126798A TW I343522 B TWI343522 B TW I343522B
- Authority
- TW
- Taiwan
- Prior art keywords
- block
- write
- data
- volatile memory
- storage system
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7205—Cleaning, 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)
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
Description
1343522 九、發明說明: 【發明所屬之技術領域】 本發明大體而言係關於記憶體操作,且更日㈣地說,係 關於用於執行分階段廢棄項目收集操作之方法及系統。 【先前技術】 在非揮發性記憶體儲存系統中,儲存於記憶體中之資料 區塊經週期地廢棄項目收集(亦即,經壓縮或合併)以收回 -記憶體之儲存容量。在一典型的廢棄項目收集操作中, 將有效資料自-區塊複製至另一區塊。在轉移有效資料之 ^擦除原始區塊以提供儲存容量。當前,-寫入操作可 觸發-非揮發性記憶體儲存系統執行—廢棄項目收集操 作。主機允許固定時間量用於執行包括該廢棄項目收集操 ^若經觸發)之寫人操作。舉例而言,安全數位協定限制 時間量為250毫秒。若非揮發性記憶體儲存系統在一寫入 操作中超過此固定時間量,則可產生一 記憶體區塊之大小已由於增加的容量、行性及晶 粒大小疋標而日益增加。因此,因為轉移更多資料,所以 執行寫入操作將花費更長時間。—廢辛 可容易地超過經配置用於寫…目收集操作因此 直用於冩入操作之固定時間量。因此, 需要防止當用於執行一廢杳箱隹 定時間量時之逾時錯誤 收㈣作之時間量超過固 【發明内容】 本發明之各種實施例提供用於分階段廢棄項目收集之 法及/或系統。應瞭解,可以眾多方式實施該等實施例, I2273I.doc 1343522 眾多方式包括作為一方法、一電踗 电峪、—系統或一裝置。下 文描述本發明之若干實施例。 根據本發明之一實施例,提供_ ^ 種用於操作一非揮發性 記憶體儲存系統之方法。在此方法 々凌中,接收一寫入指令以 寫入資料。給該寫入指令配置一冷n生、 置逾時週期以完成該寫入指 令之執行。在該逾時週期内’執行一廢棄項目收集操作之1343522 IX. Description of the Invention: TECHNICAL FIELD OF THE INVENTION The present invention relates generally to memory operations and, moreover, to methods and systems for performing a phased waste project collection operation. [Prior Art] In a non-volatile memory storage system, a data block stored in a memory is collected (i.e., compressed or combined) by a periodically discarded item to recover the storage capacity of the memory. In a typical abandoned project collection operation, valid data is copied from the block to another block. The original block is erased in the transfer of valid data to provide storage capacity. Currently, the write operation can be triggered - the non-volatile memory storage system is executed - the waste collection operation. The host allows a fixed amount of time to perform a writer operation including the collection of the discarded item. For example, the 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, the size of a memory block that can be generated has increased due to increased capacity, linearity, and grain size. Therefore, because more data is transferred, it takes longer to perform a write operation. - The waste symplectic can easily exceed the fixed amount of time that is configured to be used for write operations and therefore used directly for the intrusion operation. Therefore, it is necessary to prevent a time-out error when the amount of time spent performing a waste bin for a predetermined amount of time exceeds the solid content. [Invention] Various embodiments of the present invention provide a method for collecting waste items in stages and / or system. It will be appreciated that the embodiments can be implemented in numerous ways, and that the I2273I.doc 1343522 is embodied in a number of ways, as a method, an electrical system, a system, or a device. Several embodiments of the invention are described below. In accordance with an embodiment of the present invention, a method for operating a non-volatile memory storage system is provided. In this method, a write command is received to write data. The write command is configured with a cold n set and a timeout period to complete execution of the write command. Performing an abandoned project collection operation during the timeout period
:, -部分。將與該寫入指令相關聯之資料寫入至一與非揮發 性記憶體儲存系統相關聯之緩衝器中。 本發明之其他實施例及優點自以下結合伴隨圖式描述的 [實施方式]而顯而易見,該「詈絲十4丨 刃兄貰施方式]藉助於實例說明本 發明之原理。 【實施方式】 、下文連同伴隨圖式一起提供一或多個實施例之詳細描 述。結合該等實施例提供詳細描述,但詳細描述不限於任 何特定實施[料僅受巾請專利範圍限制且包含眾多替 代、修改及均等物。在以下描述中陳述眾多特定細節以便 提供一徹底瞭解。出於實例之目的提供此等細節且可在無 某些或所有此等特定細節之情況下根據申請專利範圍實施 所描述之實施例。出於清楚之目的,未詳細描述技術領域 中已知之與實施例有關之技術材料以避免不必要地混淆描 述。 本文中所描述之實施例提供用於分階段廢棄項目收集之 方法及/或系統。一般而言,可將一廢棄項目操作拆分成 多個階段。可在多個逾時週期上執行廢棄項目收集操作之 122731.doc -6 - :段(或部分)。在—實施例中,如下文將更詳細說明的, 在一逾時週期内執行-廢棄項目收集操作之-部分且可將 自寫入指令所接收之資料儲存於一緩衝器中。 圖為根據本發明之一實施例之非揮發性記憶體儲存 :統的f例之簡化方塊圖。一主機系統(例如,桌上電 :9 Λ播放機、數位攝影機’及其他計算裝置)可將資 料寫入至非揮發性記憶體儲存系統102且自非揮發性記憶 體储存系統i 0 2讀取資料。非揮發性記憶體儲存系統i 〇 2可 嵌入主機内或可移除地連接至主機。#圖1中所展示的, 非揮發性記憶體储存系統1〇2包括與記憶體ιι8通信之記憶 # &制n 11 〇 ° -般而t ’記憶體控制器i 10控制記憶體 U8之操作。操作之實例包括寫入(或程式化)資料、讀取資 料、。擦除資料、驗證資料、進行廢棄項目收集操作,及其 他#作。記憶體控制器110包括經由主機介面1〇4與系統匯 流排12 6建立介面之匯流排丨2 4,且記憶體控制器經由記憶 體介面丨08與記憶體1丨8建立介面。主機介面1〇4、處理器 1 06(例如,试處理器、微控制器,及其他處理器)、記憶體 介面108、隨機存取記憶體(RAM) 112、錯誤校正碼(ecc) 電路114及唯讀記憶體(ROM) 1 1 6藉助於匯流排i 24通信。:, -section. The data associated with the write command is written to a buffer associated with the non-volatile memory storage system. Other embodiments and advantages of the present invention will be apparent from the following description of the accompanying drawings in conjunction with the accompanying drawings. FIG. The detailed description of the one or more embodiments is provided in conjunction with the accompanying drawings, and the detailed description of the embodiments of the invention, and the detailed description is not limited to any specific implementations. In the following description, numerous specific details are set forth in order to provide a thorough understanding of the details of the invention. For the sake of clarity, the technical material associated with the embodiments that is known in the art is not described in detail to avoid unnecessarily obscuring the description. The embodiments described herein provide methods for phased collection of waste projects and/or Or system. In general, an abandoned project operation can be split into multiple phases. It can be over multiple timeout periods. Execution of the waste project collection operation 122731.doc -6 - : paragraph (or part). In the embodiment, as will be explained in more detail below, in a time-out period - part of the waste collection operation can be The data received from the write command is stored in a buffer. The figure is a simplified block diagram of a non-volatile memory storage system according to an embodiment of the present invention. A host system (for example, a desktop) Electricity: 9 Λ player, digital camera 'and other computing devices' can write data to non-volatile memory storage system 102 and read data from non-volatile memory storage system i 0 2 . Non-volatile memory The storage system i 〇 2 can be embedded in the host or removably connected to the host. # Shown in Figure 1, the non-volatile memory storage system 1〇2 includes memory that communicates with the memory ιι8# & 〇°-likely, the 'memory controller i 10 controls the operation of the memory U8. Examples of operations include writing (or stylizing) data, reading data, erasing data, verifying data, and performing waste collection operations. , and other #作.记The memory controller 110 includes a bus bar 224 that establishes an interface with the system bus 126 via the host interface 1-4, and the memory controller establishes an interface with the memory 丨8 via the memory interface 丨08. The host interface 1 〇4, processor 106 (eg, test processor, microcontroller, and other processors), memory interface 108, random access memory (RAM) 112, error correction code (ecc) circuit 114, and read only The memory (ROM) 1 1 6 communicates by means of the bus i 24 .
ROM 116可儲存一包括用於控制記憶體U8之操作之程式 指令的儲存系統韌體。處理器106經組態以執行自R〇M 116載入之程式指令。可將儲存系統韌體暫時地載入ram 1 2中,且此外,可使用RAM來緩衝在一主機與記憶體1 1 8 之間轉移之資料。ECC電路1 14可檢查經由記憶體控制器 122731.doc 1343522 no在主機與記憶體118之間傳遞的錯誤。若發現錯誤,則 ECC電路114可校正許多錯誤位元,&目依所利用之咖演 算法而定。 ' 記憶體11 8可包括陣列邏輯12〇、非揮發性記憶體單元陣 列122, A記憶體單元陣列123。非揮發性記憶趙單元陣列 】22可包括多種非揮發性記憶趙結構及技術。非揮發性記 憶體技術之實例包括快閃記憶體(例如,NAND、n〇r、多 級單兀(MLC)、劃分位元線N〇R(DIN〇R)、AND、高電容 耦合比(HiCR)、非對稱無接點電晶體(ACT)、其他快閃記 憶體)、可擦可裎式化唯讀記憶體(EpR〇M)、電子可擦可 程式化唯讀記憶體(EEPR〇M)、唯讀記憶體(r〇m)、一次 性可程式化記憶體(〇τρ),及其他記憶體技術。 在一實施例中,記憶體118又可包括經組態以儲存一緩 衝器之記憶體單元陣列123。該緩衝器經組態以在一分階 奴廢棄項目收集操作中儲存資料。如下文將更詳細說明 的’在一分階段廢棄項目收集操作中,可將自一寫入指令 接收之新資料儲存於緩衝器中。應瞭解,緩衝器亦可根據 本發明之實施例而位於RAM 112及/或非揮發性記憶體單元 P車列122中。類似於非揮發性記憶體單元陣列122,記憶體 單几陣列123可包括多種記憶體結構及技術◎因為記憶體 單陣列123經組態用於緩衝操作,所以記憶體單元陣列 可併入有一可比非揮發性記憶體陣列122更快、更經濟且 更可Λ之不同的記憶體結構。 陣列邏輯120與記憶體控制器u〇以及非揮發性記憶體單 122731.doc 1343522 辑列m及記憶體單元陣列123建立介面,且可提供(例 如)對非揮發性記憶體單元陣列及記憶體單元陣列之定 址、資料轉移及感測,及其他支援。為支援非揮發性記憶 體單元陣列m及記憶體單元陣列123,陣列邏輯12〇可包 括列解碼器、行解碼器、電荷栗、字線電壓產生器、頁緩 衝器、輸入/輸出緩衝器、位址緩衝器,及其他電路。The ROM 116 can store a storage system firmware including program instructions for controlling the operation of the memory U8. Processor 106 is configured to execute program instructions loaded from R〇M 116. The storage system firmware can be temporarily loaded into the ram 1 2, and in addition, RAM can be used to buffer data transferred between a host and the memory 1 18 . The ECC circuit 1 14 can check for errors passed between the host and the memory 118 via the memory controller 122731.doc 1343522 no. If an error is found, the ECC circuit 114 can correct a number of error bits, depending on the caching algorithm utilized. The memory 11 8 may include an array logic 12 〇, a non-volatile memory cell array 122, and an A memory cell array 123. Non-volatile memory Zhao cell array 】 22 can include a variety of non-volatile memory Zhao structure and technology. Examples of non-volatile memory technologies include flash memory (eg, NAND, n〇r, multi-level single-turn (MLC), divided bit lines N〇R (DIN〇R), AND, high capacitance coupling ratio ( HiCR), asymmetric contactless transistor (ACT), other flash memory), erasable readable read-only memory (EpR〇M), electronic erasable programmable read-only memory (EEPR〇) M), read-only memory (r〇m), one-time programmable memory (〇τρ), and other memory technologies. In one embodiment, memory 118, in turn, can include a memory cell array 123 configured to store a buffer. The buffer is configured to store data in a fractional slave project collection operation. The new data received from a write command can be stored in the buffer in a staged discarding project collection operation as will be described in more detail below. It will be appreciated that the buffers may also be located in RAM 112 and/or non-volatile memory unit P trains 122 in accordance with embodiments of the present invention. Similar to the non-volatile memory cell array 122, the memory arrays 123 can include a variety of memory structures and techniques. ◎ Since the memory single array 123 is configured for buffering operations, the memory cell array can be incorporated with a comparable The non-volatile memory array 122 is faster, more economical, and more versatile than the different memory structures. The array logic 120 establishes an interface with the memory controller u and the non-volatile memory unit 122731.doc 1343522 and the memory cell array 123, and can provide, for example, a non-volatile memory cell array and memory. Addressing, data transfer and sensing of cell arrays, and other support. To support the non-volatile memory cell array m 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.
圖2為組織成平面之記憶體單元陣列之簡化方塊圖。一 或多個記憶體單元陣列可經劃分成多個平面或子陣列。在 圖2之實例中,一記憶體單元陣列經劃分成四個平面2〇2_2 is a simplified block diagram of a memory cell array organized into planes. The one or more memory cell arrays can be divided into a plurality of planes or sub-arrays. In the example of Figure 2, a memory cell array is divided into four planes 2〇2_
。應瞭解,在一非揮發性記憶體儲存系統中可存在其 他數目之平面(諸如,i、2、8、】6或16個以上)。每—平面 202、203、204或205可經劃分成記憶體單元區塊,諸如位 於各別平面202-205中之區塊210-213及220-223。一記憶體 單元區塊係可一起實體擦除之記憶體單元之最小數目。為 了增加的並行性,可在較大元區塊(metabl〇ck)單元(其 中,一來自每一平面202、203、204或205之區塊經邏輯鏈 接在一起以形成一元區塊)中操作該等區塊。舉例而言, 四個區塊210-213可經邏輯鏈接在一起以形成一元區塊。 另外’用於形成一元區塊之該等區塊可來自其之各別平面 (諸如,平面202-205)内之各種位置。舉例而言,來自各別 平面202-205内之各種位置之四個區塊220-223可經邏輯鍵 接在一起以形成另一元區塊。一元區塊可在非揮發性記憶 體儲存系統内之所有四個邏輯平面202-205上延伸,或非 揮發性記憶體儲存系統可自一或多個不同平面中之一或多 122731.doc -9- 1343522 個區塊動態地形成元區塊。 圖3為記憶體單元頁之簡化方塊圖。每一區塊(諸如,區 塊210-2 13)經進一步劃分成記憶體單元頁。如圖3中所展示 的,每一區塊210、211、212或213經劃分成八頁p〇_P7。 或者,每一區塊210、211、212或213内可存在16、32或32 個以上記憶體單元頁。為增加非揮發性記憶體儲存系統之 操作並行性,可將兩個或兩個以上區塊内之頁邏輯鏈接成 元頁(metapage)。舉例而言,一元頁可由來自四個區塊 210-213中之每一者之一頁(諸如,ρι)形成。一元頁可在非 揮發性記憶體儲存系統内之所有平面上延伸,或非揮發性 記憶體儲存系統可自一或多個不同平面中之一或多個單獨 區塊中之一或多個頁動態地形成元頁。 圖4為記憶體單元之區段之簡化方塊圖。一頁可經進一 步劃分成一或多個區段。每一頁中之資料之量可為一或多 個資料區段的整數倍,#中每__區段可儲存5 12個位元組 之資料。圖4展示劃分成兩個區段4〇2及4〇4之頁4〇1。每一 區段402或404含有大小可為512個位元組之資料4〇6,及與 資料相關聯之附加資料4〇5。附加資料4〇5之大小可為16個 位兀組且可儲存(例如)在程式化期間自資料4〇6計算之一 ECC、與資料相關聯之邏輯位址、區塊已被擦除及經重新 矛式化之人數之叶數、控制旗標、操作電壓位準,及與資 料相關聯之其他資訊。 八圖5為一主機與非揮發性記憶體儲存系統之間的一邏輯 "面之簡化方塊圖。—連續邏輯位址$間提供用於可 122731.doc • 10 - 儲存於6己憶體中之資料之位b如由主機檢視之邏輯位址 工間512可經劃分成遞增資料叢集。每__叢集可包括許多 資料區段,諸如4個區段與64個區段之間。 如圖5中所展不的,—在主機上執行之應用程式建立三 個資料權案1、2及3。棺案卜2及3可為資料之經定序集合 且係藉由一唯一名稱或其他參照來識別。主機給檔案i指 派一邏輯位址空間,其已不被定位給其他檔案。在此,展 不檔案1已經指派連續範圍之可用邏輯位址。 田主機在檔案1之後建立檔案2時,主機類似地指派邏輯 位址空間512内之兩個不同範圍之連續位址。主機可不給 檔案(諸如,檔案1、2或3)指派一連續邏輯位址,但可指 派已經配置給其他檔案之邏輯位址範圍之間的邏輯位址之 片1又。圖5之實例展示另一檔案3經配置邏輯位址空間5 ^ 2 内之一先前未被配置給檔案丨及2及其他資料之非連續位址 範圍。 主機可藉由保持—檔案配置表(FAT)而記住邏輯位址空 間512,其中保持由主機藉由轉換指派給諸如檔案卜]之各 種資料檔案之邏輯位址。主機根據邏輯位址且不根據非揮 發性記憶體儲存系統儲存檔案之實體位置參照擋案U。 另一方面,非揮發性記憶體儲存系統根據資料已經寫入之 邏輯位址之部分參照檔案1-3且不根據配置給檔案之邏輯 位址參照該等稽案。非揮發性記憶體儲存系統將由主機提 供之邏輯位址轉換成儲存來自主機之資料之記憶趙單元陣 列502内的唯一實體位址。區塊5〇4表示此等邏輯至實體位 122731.doc • Π - 1343522 址轉換之表,該表由非揮發性記憶體儲存系統來保持。 圖6為根據本發明之一實施例的用於分階段廢棄項目收 集之操作之一般概述的流程圖。應瞭解,當原始儲存資料 作廢時,可用新資料覆寫儲存於特定主機邏輯位址處之資 .’ 料。非揮發性記憶體儲存系統回應於此而將新資料寫入至 . 一更新區塊中且接著針對彼等邏輯位址改變邏輯位址至實 體位址表以識別儲存新資料經之新實體區塊。接著擦除含 ^ 有彼等邏輯位址處之原始資料之區塊且使其可用於額外資 - 料之儲存。該擦除可在一寫入操作之前發生。因此,記憶 體控制器獲悉在一給定邏輯位址處之資料已由主機使其作 廢或無效之前,新資料被寫入相同邏輯位址。許多記憶體 區塊可因此在一時間週期中儲存無效資料。 區塊及元區塊之大小日益增加且此等增加導致大部分之 個別資料寫入儲存小於一元區塊之儲存容量之量的資料, 且在許夕實例中,儲存甚至小於一區塊之儲存容量之量的 φ 資料。因為非揮發性記憶體儲存系統可將新資料引導至一 經擦除之集區元區塊,所以該引導可導致區塊或元區塊之 • 部分未經填滿。若新資料為儲存於另一元區塊中之某些資 , #之更新’則來自彼另區塊之資料的具有與新資料元 . 胃之彼等邏輯位址相鄰之邏輯位址的剩餘有效元頁亦經以 邏輯位址次序複製至新的元區塊中。舊的元區塊可保留其 他有效資料7L頁。因此,一個別元區塊之特定元頁之資料 可作廢或‘”、效且被寫入至一不同元區塊之具有相同邏輯 位址之新資料予以替代。 122731.doc -12- 1343522 為了保持用於在一邏輯位址空間上儲存資料之足夠的實 體記憶體空間’可對該等資料進行週期地廢棄項目收集 (亦即,壓縮或合併)。一般而言,一廢棄項目收集操作涉 及自—區塊讀取有效資料及將有效資料寫入至一新區塊, 心略過程中之無效資料。舉例而言,在圖5之方塊圖中, 新資料檔案3之建立使舊資料檔案3作廢。可擦除舊資料稽 案3以收回由舊資料檔案3使用之實體容量。然而,若槽案. It will be appreciated that there may be other numbers of planes (e.g., i, 2, 8, 6 or more) in a non-volatile memory storage system. Each plane 202, 203, 204 or 205 may be divided into memory unit blocks, such as blocks 210-213 and 220-223 located in respective planes 202-205. A memory unit block is the minimum number of memory units that can be physically erased together. For increased parallelism, operations may be performed in a larger metablock unit in which blocks from each plane 202, 203, 204, or 205 are logically linked together to form a unitary block. These blocks. For example, four blocks 210-213 can be logically linked together to form a unitary block. Further, the blocks used to form the unary blocks may come from various locations within their respective planes, such as planes 202-205. For example, four blocks 220-223 from various locations within respective planes 202-205 can be logically linked together to form another metablock. The unary block may extend over all four logical planes 202-205 within the non-volatile memory storage system, or the non-volatile memory storage system may be one or more of one or more different planes 122731.doc - 9- 1343522 blocks dynamically form metablocks. Figure 3 is a simplified block diagram of a memory cell page. Each block (such as block 210-2 13) is further divided into memory unit pages. As shown in Figure 3, each block 210, 211, 212 or 213 is divided into eight pages p 〇 P7. Alternatively, there may be 16, 32 or more memory cell pages within each block 210, 211, 212 or 213. To increase the operational parallelism of a non-volatile memory storage system, pages within two or more blocks can be logically linked into metapages. For example, a unitary page may be formed from a page (e.g., ρι) from each of the four blocks 210-213. The unary pages may extend over all planes within the non-volatile memory storage system, or the non-volatile memory storage system may be from one or more of the one or more separate blocks The meta page is dynamically formed. 4 is a simplified block diagram of a section of a memory cell. A page can be further divided into one or more segments. The amount of data in each page can be an integer multiple of one or more data segments, and each of the #_ segments can store 5 12 bytes of data. Figure 4 shows page 4〇1 divided into two sections 4〇2 and 4〇4. Each segment 402 or 404 contains data 4 〇 6 that can be 512 bytes in size, and additional information 4 〇 5 associated with the data. The additional data 4〇5 may be a 16-bit group and may store, for example, one of the ECCs calculated from the data 4〇6 during the stylization, the logical address associated with the data, the block has been erased, and The number of leaves, control flags, operating voltage levels, and other information associated with the data. Figure 5 is a simplified block diagram of a logical "face between a host and a non-volatile memory storage system. - The continuous logical address $ is provided for the bit b of the data stored in the 6 memory. If the logical address is viewed by the host, the workstation 512 can be divided into incremental data clusters. Each __cluster can include a number of data segments, such as between 4 segments and 64 segments. As shown in Figure 5, the application executing on the host creates three data rights 1, 2 and 3. Cases 2 and 3 can be a sequenced collection of data and are identified by a unique name or other reference. The host assigns a logical address space to the file i, which has not been located to other files. Here, the file 1 has been assigned a continuous range of available logical addresses. When the field host creates file 2 after file 1, the host similarly assigns two different ranges of consecutive addresses within logical address space 512. The host may not assign a contiguous logical address to a file (such as file 1, 2 or 3), but may assign a slice 1 of a logical address between logical address ranges already configured for other files. The example of Figure 5 shows a non-contiguous address range of another file 3 configured logical address space 5^2 that was not previously configured for the file and 2 and other data. The host can remember the logical address space 512 by maintaining a file configuration table (FAT), which maintains the logical address assigned to the various data files, such as files, by the host by conversion. The host refers to the file U based on the logical address and not based on the physical location of the non-volatile memory storage system. On the other hand, the non-volatile memory storage system refers to files 1-3 based on portions of the logical addresses to which the data has been written and does not refer to the files based on the logical addresses assigned to the files. The non-volatile memory storage system converts the logical address provided by the host into a unique physical address within the memory cell array 502 that stores data from the host. Block 5〇4 represents the table of these logical to physical bits 122731.doc • Π - 1343522, which is maintained by the non-volatile memory storage system. 6 is a flow diagram of a general overview of operations for phased-dump project collection in accordance with an embodiment of the present invention. It should be understood that when the original stored data is invalid, the new data can be overwritten with the information stored at the specific host logical address. In response to this, the non-volatile memory storage system writes new data into an update block and then changes the logical address to the physical address table for their logical addresses to identify new physical areas through which new data is stored. Piece. The blocks containing the original data at their logical addresses are then erased and made available for additional storage. This erasure can occur prior to a write operation. Therefore, the new data is written to the same logical address until the memory controller learns that the data at a given logical address has been invalidated or invalidated by the host. Many memory blocks can therefore store invalid data for a period of time. The size of the block and the metablock is increasing and such an increase causes most of the individual data to be written into the data storing the storage capacity smaller than the one-dimensional block, and in the case of Xu Xi, the storage is even less than one block. The amount of capacity is the φ data. Because the non-volatile memory storage system can direct new data to an erased metablock, the boot can cause portions of the block or metablock to be unfilled. If the new information is for some of the assets stored in another block, the #update's will be from the remaining blocks of the data from the other blocks with the logical address adjacent to the logical address of the new data element. The valid metapages are also copied to the new metablock in logical address order. The old metablock can retain 7L pages of other valid data. Therefore, the data of a particular metapage of a unique block can be invalidated or replaced with new data with the same logical address written to a different metablock. 122731.doc -12- 1343522 Maintaining sufficient physical memory space for storing data on a logical address space 'can be periodically collected (ie, compressed or merged) for such data. In general, an abandoned project collection operation involves The self-block reads the valid data and writes the valid data to a new block, and the invalid data in the process of the heart. For example, in the block diagram of Figure 5, the new data file 3 is created to make the old data file 3 Cancel the old data file 3 to recover the physical capacity used by the old data file 3. However, if the case
2及舊檔案3儲存於相同的實體區塊中,則該擦除操作將觸 發—廢棄項目收集操作。 返回至圖6,非揮發性記憶體儲存系統可在一配置用於 一寫入指令之逾時週期内執行廢棄項目收集操作。根據本 發明之一實施例,若不可在一逾時週期内完成廢棄項目收 集操作,則可將一廢棄項目收集操作拆分成若干不同階段 (或部分)。在此,非揮發性記憶體儲存系統使用配置用於 多個寫入指令之逾時週期執行廢棄項目收集操作之部分。2 and the old file 3 is stored in the same physical block, then the erase operation will trigger - the waste collection operation. Returning to Figure 6, the non-volatile memory storage system can perform an obsolete item collection operation within a timeout period configured for a write command. According to an embodiment of the present invention, if the waste collection operation cannot be completed within a timeout period, an abandoned project collection operation can be split into several different stages (or portions). Here, the non-volatile memory storage system performs a portion of the waste collection operation using a timeout period configured for a plurality of write instructions.
換言之’非揮發性記憶體儲存系統利用配置用於多個寫 指令之逾時週期執行一廢棄項目收集操作之部分。 如圖6中所展示的,在操作602中接收一用於寫入新資 之寫入指令。如本文辛所使用的,術語,,新資料"經定義 由非揮發性記憶體儲存系統自一寫入指令接收以寫入呓 體之資料。給該寫入指令配置一逾時週期以完成該寫入 令之執行。換言之,逾時週期為一經配置用於寫入指令 執行之時間週期。一經配置之逾時週期之實例為250 秒。寫入指令可為單區段寫入指令或多區段寫入指令。 122731 .d〇c -13- 1343522 下文將更詳細說明的,在單區段寫入指令中,可將新資料 作為單區段寫入至一記憶體上之隨機位址。在多區段寫入 指令中,將具有相鄰邏輯位址的多個區段之新資料寫入至 記憶體。 右一廢棄項目收集操作不可在逾時週期内完&,則如操 作604中所展示的,在配置用於寫入指令之逾時週期内執 行該廢棄項目收集操作之一部分。可在稱後之逾時週期中 完成廢棄項目收集之剩餘部分。舉例而言,圖7展示根據 本發明之一實施例的一經拆分成多個部分78〇及78ι之廢棄 項目收集操作之-實例的簡化方塊圖。如圖7中所展示 的,一非揮發性記憶體儲存系統接收多區段寫入指令 704 ’且隨後,接收用於儲存至記憶體中之多個區段之新 資料76G-762。在接收每一資料區段·、761或加之後維 持忙錄中信號7G2。該非揮發性記憶體料n维持忙錄 中信號702以允許執行寫入指令’可包括廢棄項目收集操 作(若需要的話)及其他操作。當維持忙錄中信號勘夺,一 主機不會將另—指令或額外資料發送至非揮發性記 存系統。非揮發性記憶體儲存系統可在接收每一資㈣段 760、761或762之後的有限時間量中維持忙錄中信號加, 因為主機允許有限的固定時間量(亦即’逾時週期MO谓 用於執行寫入指令。^忙錄中信號在比逾時週期75〇、川 或752保持地長,則主機可重複寫人指令或放棄該過程。 因此,非揮發性記憶體儲存系統不可在比逾時週期㈣、 751或752長之週期中維持忙錄中信號加。在完成寫入多 122731.doc 14 丄州!)22 個資料區段760-762之後釋放忙錄中信號7〇2允許主機進一 步與非揮發性記憶體儲存系統通信。 #參看圖7 ’可在多個逾時週期75G.752之間配置廢棄項 目收集之部分780及781。換言之,非揮發性記憶體儲存系 ’ 統^利用每—逾時週期750、751或752執行-廢棄項目收 m操作之每—部分谓或781。舉例而f,在第—逾時週期 750期間執行-廢棄項目收集之第-部分780。在此,在第 φ 「逾時週期750期間,可將有效資料之一部分自一區塊複 ^ 製至另一區塊。在第二逾時週期751,繼續先前的起始於 第逾時週期之廢棄項目收集操作。在逾時週期75丨期 間,非揮發性記憶體儲存系統執行先前的廢棄項目收集操 作之第二部分781,直至完成先前的廢棄項目收集為止。 可错由將有效資料之剩餘部分或最後部分自一區塊複製至 另一區塊而完成先前的廢棄項目收集。若先前的廢棄項目 收集操作不可在第二逾時週期751内完成,則非揮發性記 i 憶體儲存系統可使用隨後的逾時週期(諸如,第三逾時週 ' 期752)完成廢棄項目收集操作。在多區段寫入指令704之 結束處,非揮發性記憶體儲存系統可在接收停止指令7〇6 之後維持忙錄中信號702,直至所有資料區段76〇 762被寫 入至記憶體單元陣列為止,請注意,圖7說明與多區段寫 入指令相關聯之操作。如下文將更詳細說明的,對於單區 寫入扎令及多區段寫入指令,所執行之廢棄項目收集操 作了不同。舉例而έ,如下文將更詳細說明的,用於儲存 新資料之緩衝器之類型依所接收之寫入指令為單區段寫入 122731.doc •15· 1343522 才曰7還疋多區段寫入指令而定。 返口至圖6 ’在一逾時週期内執行廢.馆口 ㈣期内執仃廢棄項目收集操作之 資料儲广在操作_中,可將自寫入操作所接收之新 '=;肖非揮發性5己憶體儲存系統相關聯之緩衝器 乂在-實施例中,該緩衝器可為—與非揮發性記憶體單 列(例如,圖丨中所展示之非揮發性記憶體陣列I)])相 關聯之資料結構。資料社播 、 偁貝抖、,°構之一實例包括下文將更詳細描In other words, the non-volatile memory storage system performs a portion of the waste collection operation using a timeout period configured for a plurality of write instructions. As shown in Figure 6, a write command for writing a new asset is received in operation 602. As used herein, the term "new data" is defined as data that is received by a non-volatile memory storage system from a write command to write to a file. A one-time period is configured for the write command to complete execution of the write command. In other words, the timeout period is a time period configured for the execution of the write instruction. An example of a configured timeout period is 250 seconds. The write command can be a single segment write instruction or a multi-session write instruction. 122731 .d〇c -13- 1343522 As will be explained in more detail below, in a single-segment write command, new data can be written as a single segment to a random address on a memory. In a multi-session write instruction, new data of multiple sectors with adjacent logical addresses is written to the memory. The right discarded project collection operation may not be completed within the timeout period, and as shown in operation 604, a portion of the discarded project collection operation is performed within a timeout period configured to write the instruction. The remainder of the collection of abandoned items can be completed in the post-week period. By way of example, Figure 7 shows a simplified block diagram of an example of a waste collection operation that is split into multiple portions 78A and 78i, in accordance with an embodiment of the present invention. As shown in Figure 7, a non-volatile memory storage system receives the multi-session write command 704' and then receives new data 76G-762 for storage into a plurality of segments in the memory. The busy recording signal 7G2 is maintained after receiving each data section·, 761 or addition. The non-volatile memory material n maintains the busy recording signal 702 to allow execution of the write command 'which may include a discarding item collection operation (if needed) and other operations. When the busy recording signal is maintained, a host will not send another command or additional data to the non-volatile memory system. The non-volatile memory storage system can maintain the busy recording signal for a limited amount of time after receiving each of the four (four) segments 760, 761 or 762, since the host allows a limited amount of fixed time (ie, the 'timeout period MO' It is used to execute the write command. ^The signal in the busy recording is longer than the timeout period of 75〇, Sichuan or 752, then the host can repeat the write command or give up the process. Therefore, the non-volatile memory storage system cannot be The busy recording signal is added during the period longer than the timeout period (four), 751 or 752. After the completion of writing more 122731.doc 14 丄州!) 22 data sections 760-762 release the busy recording signal 7〇2 The host is allowed to further communicate with the non-volatile memory storage system. # Referring to Figure 7', portions 780 and 781 of the discarded project collection can be configured between multiple timeout periods of 75G.752. In other words, the non-volatile memory storage system utilizes a per-time period of 750, 751 or 752 execution------------------------------------------ For example, f, during the first-timeout period 750, the first-part 780 of the collection of obsolete items is performed. Here, during the φ "timeout period 750, one of the valid data portions may be copied from one block to another. In the second timeout period 751, the previous start from the first time period is continued. The waste collection operation. During the timeout period of 75 ,, the non-volatile memory storage system performs the second part 781 of the previous abandoned project collection operation until the previous collection of the abandoned project is completed. The remaining part or the last part is copied from one block to another to complete the previous collection of abandoned items. If the previous abandoned item collection operation cannot be completed within the second timeout period 751, the non-volatile memory is stored. The system may complete the obsolete item collection operation using a subsequent timeout period (such as a third timeout period 752). At the end of the multi-session write instruction 704, the non-volatile memory storage system may receive a stop instruction After 7〇6, the busy recording signal 702 is maintained until all data sectors 76〇762 are written to the memory cell array. Please note that FIG. 7 illustrates the multi-segment write instruction. Operation. As will be explained in more detail below, for single-region write slashes and multi-session write commands, the discarded project collection operations performed are different. For example, as will be explained in more detail below, The type of buffer for storing new data is a single-segment write according to the received write command. 122731.doc •15· 1343522 曰7 is also dependent on the multi-segment write command. Return to Figure 6 'in one Execution of waste in the overdue period. (4) The data collection operation of the obsolete project during the period is stored in the operation_, and the new '=; Xiao non-volatile 5 memory storage system can be received from the write operation. Associated Buffers - In an embodiment, the buffer may be a data structure associated with a single column of non-volatile memory (e.g., non-volatile memory array I shown in Figure). Examples of data broadcasts, mussels, and frames are described in more detail below.
述之非揮發性記憶體單元陣列之區塊(諸如,寫入緩衝器 區塊)°纟另—實施例中,緩衝器可為揮發性記憶體單元 陣列之區塊。舉例而言’新資料可儲存於_位於與非揮發 性記憶體儲存系統相關聯之RAM(例如,圖ι中所展示之 RAM 112)中的—區塊中。在再—實施例中如上所述, 新資料可儲存於一位於一單獨記憶體單元陣列(例如,圖i 中所展示之記憶體單元陣列123)中之區塊中。The blocks of the non-volatile memory cell array (such as write buffer blocks) are described. In other embodiments, the buffers can be blocks of a volatile memory cell array. For example, 'new data can be stored in a block in a RAM associated with a non-volatile memory storage system (e.g., RAM 112 shown in Figure 1). In the re-embodiment, as described above, the new material can be stored in a block located in an array of individual memory cells (e.g., memory cell array 123 shown in Figure i).
圖8為根據本發明之一實施例的用於執行一分階段廢棄 項目收集之詳細操作之流程圖。如圖8中所展示的,在操 作802中接收一寫入指令以將新資料寫入至一記憶體。在 一實施例中,該寫入指令為一單區段寫入指令。在某些情 況下’如下文將更詳細說明的,根據另一實施例,寫入指 令亦可為一多區段寫入指令。在接收寫入指令之後,在操 作804中,非揮發性記憶體儲存系統維持一忙錄中信號。 在執行寫入指令之前,在操作806中,在一廢棄項目收 集時間週期中執行廢棄項目收集操作之一部分。舉例而 吕’在一實施例中’選擇一或多個區塊用於廢棄項目收集 122731.doc -16- 1343522 操作。該一或多個區塊可包括無效資料及/或有效資料。 在-廢棄項目收集時間週期中將有效資料複製至一第二區 塊。依配置用於廢棄項目收集操作之廢棄項目收集時間週 期及待複製之有效資料之量而將所有有效f料或有效資料 之-部分複製至第二區塊。配置用於廢棄項目收集操作之 廢棄項目收集時間週期可表示為 廢棄項目收集時間週期=逾時週期_Tpr〇gFigure 8 is a flow diagram of detailed operations for performing a staged collection of obsolete items in accordance with an embodiment of the present invention. As shown in Figure 8, a write command is received in operation 802 to write new data to a memory. In one embodiment, the write command is a single segment write command. In some cases, as will be explained in more detail below, according to another embodiment, the write command can also be a multi-session write command. After receiving the write command, in operation 804, the non-volatile memory storage system maintains a busy recording signal. Prior to executing the write command, in operation 806, a portion of the obsolete item collection operation is performed in an obsolete item collection time period. For example, in one embodiment, one or more blocks are selected for use in the collection of obsolete items 122731.doc -16-1343522. The one or more blocks may include invalid data and/or valid data. The valid data is copied to a second block during the collection period of the abandoned project. Copy all valid material or part of valid data to the second block based on the collection time period of the abandoned project collection and the amount of valid data to be copied for the waste project collection operation. The collection time period of the abandoned project configured for the collection of waste projects can be expressed as the collection time period of the abandoned project = timeout period _Tpr〇g
其_逾時週期如上所述為H有限的時間㈣。Its _ timeout period is H as limited time (four) as described above.
Tprog為與將新資料寫入至記憶體(例如,寫入至'緩衝器) 相關聯之最大程式化時間,或為非揮發性記憶體儲存系統 將新資料寫入至記憶體所花費之最大時間。因&,在一實 施例中’非揮發性記憶體儲存系統追跟用力將有效資料自 該—或多個區塊複製至第二區塊之時間之量。在時間超過 廢棄項目收集時間週期之前’非揮發性記憶體儲存系統停 止複製。 若在廢棄項目收集時間週期期間無法完成廢棄項目收集 操作’則在操作81〇中可將與寫人指令相關聯之新資料寫 入至寫入緩衝器區塊。非揮發性記憶體儲存系統可在廢棄 項目。收集操作之前、期間或之後,將新資料寫人至寫入緩 =器區塊。如下文將更詳細說明的,—旦完成廢棄項目收 錢作’便可將新資料自寫人緩衝器區塊複製至—更新區 塊由非揮發性記憶體儲存系統將寫人緩衝器區壞保持在 °己憶體中。—般而言’寫人緩衝器區塊緩衝非揮發性記憶 122731.(10, 1343522 體儲存系統中之新資料。在一實施例中,寫入緩衝器區塊 跨越多個邏輯位址。在另-實施例中,寫人緩衝器區塊跨 越一整個邏輯位址空間。藉由跨越整個邏輯位址空間,寫 入緩衝器區塊可儲存即將寫入至整個非揮發性記憶體儲存 系統内之所有邏輯位址及所有邏輯位址群組(亦即,所有 邏輯群組)之資料。換言之,與不同邏輯群組相關聯之新 資料可儲存於寫入緩衝器區塊中。一邏輯群組為具有一可 等於一元區塊之大小之大小的一邏輯位址群組。可依連續 或不連續(亦即,無序或隨機)次序將新資料寫入至寫入緩 衝器區塊。如下文將更詳細說明的’當稍後將寫入至寫入 緩衝器區塊之新資料複製至另一區塊(例如,一更新區塊) 時,寫入緩衝器區塊充當一暫時緩衝器。如本文中所使用 的,術語”寫入緩衝器區塊清除"意謂將儲存於寫入緩衝器 區塊中之新資料複製至另一區塊。 請注意,在一實施例中,非揮發性記憶體儲存系統使用 寫入緩衝器區塊以用於分階段廢棄項目收集操作。因此, 寫入緩衝器區塊可能未儲存最近更新之新資料。因此,若 在一隨後之讀取操作中讀取新資料,則非揮發性記憶體儲 存系統檢查儲存於更新區塊或寫入緩衝器區塊中之哪些新 資料經最近更新。該讀取操作接著存取及傳回最近更新之 新資料。在另一實施例中’非揮發性記憶體儲存系統可使 用寫入緩衝器區塊以用於不分階段廢棄項目收集操作與分 階段廢棄項目收集操作。在此,寫入緩衝器區塊係用於所 有寫入操作。換言之,將來自不分階段廢棄項目收集操作 122731.doc -18- 2分階段廢棄項目收集操作之新資料寫人至寫入緩衝器區 :。因此’寫入緩衝器區塊像一寫入快取記憶體一樣操 卞’且因此包括最近更新之新資料。 肖寫入緩衝器區塊相關聯之索引資訊可儲存於一單獨資 . 才斗結構中’或作為寫入緩衝器區塊本身之部分。該資料社 • 構可2存於記憶體控制器之Ram中。儲存於資料結構中^ 纟引#訊允許追縱及存取寫人緩衝器區塊中儲存之資料。 • 索引資訊(例如)可包括邏輯位址至寫入緩衝器區塊中之位 置之一映射或寫入緩衝器區塊之有效索引之指標。可在關 閉更新區塊之後或在對寫入緩衝器區塊之許多更新之 後’更新索引資訊。如下文將更詳細說明的,在一實施例 令’寫人緩衝器區塊可針對一區段級索引而組態。在另一 $施例中’寫入緩衝器區塊可針對一頁邊界索引而組態。 當寫入緩衝器區塊滿時’亦可將寫入緩衝器區塊壓縮。舉 J而。,冑儲存於寫入緩衝器區力中之有效資料複製至一 • 冑被參照作為-新寫入緩衝器區塊之新區塊,且擦除現有 2具有作廢項之寫入緩衝器區塊。如本文中所使用的,術 语"寫入緩衝器壓縮"意謂將儲存於寫入緩衝器區塊中之有 . 效資料壓縮。 • 再參看圖8’在將新資料寫人至寫人緩衝器區塊且在廢 棄項目收集時間週期中執行廢棄項目收集操作之後,在操 ’非揮發性記憶體儲存系統在逾時週期到期之前 。錄中仏號。因此,用於執行包括一廢棄項目收集操 作或一廢棄項目收集操作之一部分之寫入指令的總的時間 122731.doc -19- 1343522 不超過逾時週期。若廢棄項目收集操作之—部分係在逾時 週期内執行,則在隨後之逾時週期完成剩餘部分。當完成 廢棄項目收集操料,擦除經廢棄項目收集之—或多個區 塊且使其可用於額外資料之儲存。Tprog is the maximum programmed time associated with writing new data to memory (for example, to a 'buffer'), or the maximum cost of writing new data to memory for a non-volatile memory storage system. time. Because &, in one embodiment, the non-volatile memory storage system follows the amount of time during which the valid data is copied from the one or more blocks to the second block. The non-volatile memory storage system stops replication until the time exceeds the collection time period of the abandoned project. If the obsolete item collection operation cannot be completed during the obsolete item collection time period, then new data associated with the writer instruction can be written to the write buffer block in operation 81. Non-volatile memory storage systems are available for disposal. Write new data to the write buffer block before, during, or after the collection operation. As will be explained in more detail below, once the waste project is completed, the new data can be copied from the write buffer block to the update block. The non-volatile memory storage system will write the buffer area. Keep in the body of the recall. As a general matter, the write buffer block buffers non-volatile memory 122731. (10, 1343522 new data in the body storage system. In one embodiment, the write buffer block spans multiple logical addresses. In another embodiment, the write buffer block spans an entire logical address space. By spanning the entire logical address space, the write buffer block can be stored for writing to the entire non-volatile memory storage system. All logical addresses and data of all logical address groups (ie, all logical groups). In other words, new data associated with different logical groups can be stored in the write buffer block. The group is a group of logical addresses having a size equal to the size of the unary block. New data can be written to the write buffer block in a continuous or discontinuous (i.e., unordered or random) order. As will be explained in more detail below, when a new data written to a write buffer block is later copied to another block (eg, an update block), the write buffer block acts as a temporary buffer. As used in this article The term "write buffer block clear" means copying new data stored in the write buffer block to another block. Note that in one embodiment, the non-volatile memory storage system The write buffer block is used for phased project collection operations. Therefore, the write buffer block may not store the most recently updated new data. Therefore, if a new data is read in a subsequent read operation, The non-volatile memory storage system then checks which new data stored in the update block or write buffer block has been updated recently. The read operation then accesses and returns the most recently updated new data. In another implementation In the example, the non-volatile memory storage system can use the write buffer block for the non-staged project collection operation and the staged waste collection operation. Here, the write buffer block is used for all writes. Into the operation. In other words, the new data from the non-staged project collection operation 122731.doc -18-2 staged project collection operation is written to the write buffer area: therefore 'write buffer The block operates as if it were written to the cache memory and thus includes the most recently updated new data. The index information associated with the Xiao write buffer block can be stored in a separate resource. Into the buffer block itself. The data structure can be stored in the RAM of the memory controller. Stored in the data structure ^ 纟 ## allows to track and access the write buffer block • Index information (for example) may include an index of a logical address to one of the locations in the write buffer block or a valid index of the write buffer block. After closing the update block or in the pair After updating a number of updates to the buffer block, the index information is updated. As will be explained in more detail below, in one embodiment, the write buffer block can be configured for a sector level index. In the example, the 'write buffer block' can be configured for a one-page boundary index. The write buffer block can also be compressed when the write buffer block is full. J. The valid data stored in the write buffer area is copied to a new block that is referred to as a new write buffer block, and the existing 2 write buffer block with the invalidated item is erased. As used herein, the term "write buffer compression" means compressing the payload data stored in the write buffer block. • Referring again to Figure 8' after the new material is written to the write buffer block and the waste item collection operation is performed during the waste project collection time period, the non-volatile memory storage system expires in the timeout period. prior to. Record the nickname. Therefore, the total time for executing a write command including a waste project collection operation or a waste project collection operation 122731.doc -19-1343522 does not exceed the timeout period. If part of the waste collection operation is performed within the timeout period, the remainder is completed in the subsequent timeout period. When the disposal of the waste project is completed, the collected or discarded blocks of the abandoned project are erased and made available for the storage of additional data.
圖9A及圖9B為根據本發明之實施例的具有經分階段廢棄 項目收集之連續更新區塊之記憶體區塊的簡化方塊圖。如 圖9A中所展示的,原始區塊A _及相關聯之連續更新區 塊A 982經選擇用於廢棄項目收集。一般而言,可將自— 寫入指令接收之資料寫入至一 t新區玉鬼。可為在其中更新 資料之每一邏輯群組指派一專用元區塊作為更新區塊。請 注意,邏輯資料區段儲存於包含一組邏輯相鄰區段之邏輯 群組中。可管理一更新區塊來依連續次序或無序次序(亦 即,不連續次序)接收資料。應瞭解,一諸如連續更新區 塊A 982之連續更新區塊為一當自主機接收一寫入指令以 寫入資料時所配置的元區塊,該資料填充一邏輯群組中之9A and 9B are simplified block diagrams of memory blocks having successively updated blocks collected by staged obsolescence items, in accordance with an embodiment of the present invention. As shown in Figure 9A, the original block A_ and associated consecutive update block A 982 are selected for obsolete item collection. In general, the data received from the write command can be written to a new area. A dedicated metablock may be assigned to each logical group in which the data is updated as an update block. Note that the logical data section is stored in a logical group containing a set of logically adjacent sections. An update block can be managed to receive data in a sequential or out-of-order order (i.e., in a discontinuous order). It should be appreciated that a contiguous update block, such as contiguous update block A 982, is a metablock configured when a write command is received from the host to write data, and the data is populated in a logical group.
一或多個實體頁,該邏輯群組之所有有效區段當前位於相 同元區塊中。寫入連續更新區塊的資料區段係按邏輯定址 而連續寫入以使得該等區段代替寫入原始區塊中之對應邏 輯區段。可將在此邏輯群組中更新之一區段寫入此連續更 新區塊,直至連續更新區塊經關閉或經轉換成一無序更新 區塊為止。請注意,當連續更新區塊之最後的實體區段位 置經寫入時,認為連續更新區塊關閉。換言之,連續更新 區塊之關閉可由連續更新區塊完全被由主機寫入或經自原 始區塊複製之更新區段資料填充而引起。如下文將更詳細 122731.doc • 20· 1343522 說明的,當由一主機寫入之一資料區段與正被更新之邏輯 群組内的先前經寫入之資料區段邏輯不連續時,可藉由自 一連續更新區塊轉換而建立無序更新區塊。 原始區塊八_可包括圖9八中分別藉由陰影圖案及點狀One or more physical pages, all valid segments of the logical group are currently in the same metablock. The data sectors written to the contiguous update block are contiguously written logically addressed such that the segments are instead written to the corresponding logical segments in the original block. One of the updates in this logical group can be written to this successive update block until the consecutive update block is closed or converted to an out-of-order update block. Note that when the last physical segment location of the successive update block is written, the continuous update block is considered closed. In other words, the closure of the contiguous update block can be caused by the contiguous update block being completely written by the host or populated with updated section data copied from the original block. As explained in more detail below, 122731.doc • 20· 1343522, when a data segment written by a host is logically discontinuous with a previously written data segment within the logical group being updated, An out-of-order update block is created by a continuous update block conversion. The original block _ may include the shadow pattern and the dot shape in Fig. 9
圖案表示之無效及有效資料。請注意,除自原始區塊A _所複製之有效資料之外,連續更新區塊A 額外地包 括在廢棄項目收集操作之前經寫入至連續更新區塊A的現 有資料981。當接收-用於寫入新資料如之寫入指令時, 該寫入指令可觸發連續更新區塊A 982之關閉(其為一廢棄 項目收集操作類型),a為新資料與一不具有一打開的更 新區塊之邏輯群組相關聯或新f料調用—廢棄項目㈣操 作。非揮發性記憶體儲存系統維持__忙錄t信號且接著將 有效資料自原始區塊A 98〇複製至連續更新區塊A 982,直 至第一廢棄項目收集時間週期97〇到期為止。在複製期 間’非揮發性記憶體儲存系統追縱時間,且非揮發性記情 體儲存系統在超過第一廢棄項目收集時間週期97〇之前; 止複製操作。如圖9A中所展示的,廢棄項目收集操作不可 在第-廢棄項目收集時間週期97〇内完成,因為仍 餘在原始區塊A 98〇中之有效資料。因此,在將有效 之一部分複製至連續更新區982之後,在第_逾時週 期到期之前所允許的剩餘時_將新請983寫入 緩衝器區塊908。 馬入 圖9B展示廢棄項目收集操作之剩餘部分可在一 週期内完成。在此’在第-寫入指令之後接收—用於寫入 12273l.doc -21- 1343522 新資料984之第二寫入指令。 _ ^ ^因此,給第二寫入指令配置 第二逾時週期。在第二逾蚌 项砰週期期間,將剩餘有效資料 :原始區塊八_複製至連續更新區塊α 982。在此實例 η在第—廢棄項目收集時間週期972内將所有的剩餘 效資料(或有效資料之最後部分)複製至連續更新區塊α 82因此’可在第二逾時週期内完成廢棄項目收集操 作。因為連續更新區塊Α 982經填滿,所以將連續更新區 塊A轉換成新的原始區塊A州或—非更新區塊。因為廢棄 項目收集操作在此第二逾時週期中完成,所以擦除原始區 塊A 98G且可使其可用於額外資料之儲存。在擦除原始區 塊A 980之後,配置更魏塊c⑽且將自第二寫入指令所 接收之新資料984寫入新近配置之更新區塊c。請注意,更 新區塊C 986可或可不與新的原始區塊A 985相關聯。 在第二逾時週期内完成廢棄項目收集之後,若第二逾時 週期内存在可用時間,則非揮發性記憶體儲存系統可進行 一寫入緩衝器區塊清除操作。當稍後將寫入至寫入緩衝器 區塊之新資料(諸如,新資料983)複製至另一區塊(例如, 更新區塊C 986)時’寫入緩衝器區塊908充當一暫時緩衝 器。在圖9B之實例中’第二逾時週期内存在用於一寫入緩 衝器區塊清除操作之時間。儲存於寫入緩衝器區塊9〇8中 之新資料983在與新資料984相同之邏輯群組中。因此,在 完成廢棄項目收集操作之後將新資料983複製至更新區塊C 986。儲存於寫入緩衝器區塊908中之新資料983經標記為 無效的’且因此,可使寫入緩衝器區塊中之額外空間可用 122731.doc -22· 1343522 於額外新資料之儲存《請注意,在完成每個廢棄項目收集 操作之後可不執行一寫入緩衝器區塊清除操作。下文將更 詳細說明寫入緩衝器區塊清除之時序。 圖10A至圖10E為根據本發明之實 廢棄項目收集之無序更新區塊之記憶體區塊的簡化方塊 圖。如圖1 Ο A中所展示的,原始區塊A 902及無序更新區塊 A 904經選擇用於廢棄項目收集。一般而言,一諸如無序The pattern indicates invalid and valid data. Note that in addition to the valid material copied from the original block A_, the continuous update block A additionally includes the existing material 981 written to the continuous update block A before the discarded item collection operation. When receiving - for writing a new data such as a write command, the write command may trigger the closing of the continuous update block A 982 (which is an abandoned item collection operation type), a is a new data and one does not have a Logical group association or new f-material call of the open update block—discarded item (4) operation. The non-volatile memory storage system maintains the __busy t signal and then copies the valid data from the original block A 98〇 to the continuous update block A 982 until the first obsolete item collection time period 97〇 expires. During the replication period, the non-volatile memory storage system tracks the time, and the non-volatile essay storage system exceeds the first waste item collection time period of 97 ;; the copy operation is stopped. As shown in Fig. 9A, the waste project collection operation cannot be completed within the first-depleted project collection time period of 97 , because the valid data remains in the original block A 98〇. Therefore, after copying the valid portion to the continuous update area 982, the new time 983 is allowed to be written to the buffer block 908 before the expiration of the _th timeout period. Figure 9B shows that the remainder of the waste collection operation can be completed in one cycle. Here, 'received after the first-write instruction' is used to write the second write instruction of 12273l.doc -21 - 1343522 new material 984. _ ^ ^ Therefore, the second write command is configured with a second timeout period. During the second timeout period, the remaining valid data: original block _ is copied to the continuous update block α 982. In this example η, all remaining effect data (or the last part of the valid data) is copied to the continuous update block α 82 in the first-deprecated item collection time period 972 so that the waste collection can be completed in the second timeout period. operating. Since the continuous update block 982 is filled, the continuous update block A is converted into a new original block A state or a non-update block. Since the discard item collection operation is completed in this second timeout period, the original block A 98G is erased and made available for storage of additional data. After erasing the original block A 980, the more advanced block c (10) is configured and the new data 984 received from the second write command is written to the newly configured update block c. Please note that the update block C 986 may or may not be associated with the new original block A 985. After the collection of the obsolete items is completed in the second timeout period, if there is an available time in the second timeout period, the non-volatile memory storage system can perform a write buffer block clearing operation. When a new material (such as new material 983) written to the write buffer block is later copied to another block (for example, update block C 986), the write buffer block 908 acts as a temporary buffer. In the example of Fig. 9B, there is a time for a write buffer block clear operation in the second timeout period. The new material 983 stored in the write buffer block 〇8 is in the same logical group as the new material 984. Therefore, the new material 983 is copied to the update block C 986 after the completion of the waste project collection operation. The new material 983 stored in the write buffer block 908 is marked as invalid 'and thus allows additional space in the write buffer block to be used for the storage of additional new data 122731.doc -22 1343522" Note that a write buffer block clear operation may not be performed after each obsolete item collection operation is completed. The timing of writing to the buffer block clear is explained in more detail below. Figures 10A through 10E are simplified block diagrams of memory blocks of an out-of-order update block collected in accordance with the present invention. As shown in FIG. 1A, the original block A 902 and the out-of-order update block A 904 are selected for discarding project collection. In general, one is like disorder
更新區塊A 904之無序更新區塊允許在一邏輯群組内以一 隨機次序來更新資料區段,且可發生個別區段之任何重 複。當由一主機寫入之一資料區段與正被更新之邏輯群組 内的先前經寫入之資料區段邏輯不連續時,可藉由自一連 續更新區塊轉換而建立無序更新區塊。無論資料區段在此 k輯群”且内之邏輯區段位址如何,均將隨後在此邏輯群組 中更新之所有資料區段寫入無序更新區塊中之下一個可用 區段位置中。The out-of-order update block of update block A 904 allows the data sectors to be updated in a random order within a logical group, and any repetition of individual segments can occur. An unordered update region can be established by a continuous update block transition when a data segment written by a host is logically discontinuous with a previously written data segment within the logical group being updated. Piece. All data segments updated in this logical group are written to the next available segment location in the out-of-order update block, regardless of the logical segment address within the data segment and within the data segment. .
在此,原始區塊A 902及無序更新區塊八9〇4包括圖1〇八 中分別藉由一陰影圓案及一 .點狀圖案表不之無效及有效資 枓。虽接收一用於寫入新資 ,月丁寸y in之冩入指令時,非 性記憶體儲存系統維持一忙錄Here, the original block A 902 and the out-of-order update block 八 〇 包括 包括 包括 包括 包括 包括 包括 包括 包括 包括 包括 包括 包括 枓 枓 枓 枓 枓 枓 枓 枓 枓 枓 枓 枓 枓 枓 枓 枓 枓 枓 枓 枓 枓 枓 枓 枓Although the receiving one is used to write new capital, the non-volatile memory storage system maintains a busy record when the order is entered.
原始區塊A 902及I序更新「:接者將有效資料自 则,直至第一廢辛項:更新區塊A 9〇4複製至新區塊A f期Η結 集時間週期950到期為止。在複 製』間’非揮發性記憶體儲存 記憶體储存系統在超過第一廢辛項=間’且非揮發性 前停止複製操作。如圖丨 集時間週期95〇之 展不的’廢棄項目收集操 I22731.doc -23· 1343522 存在熱第一廢棄項目收集時間週期950内完成,因為仍 資料。®在原始區塊A 9〇2及無序更新區塊A 904中之有效 之後,广在將有效資料之一部分複製至新區塊A 906 帛料週期到期之前’將在廢棄項目收集操作 之前所接收的新資料9〇1寫入至寫入緩衝器區塊则。The original block A 902 and the I sequence update ": the receiver will validate the data until the first waste: the update block A 9〇4 is copied to the new block A f period, the set time period 950 expires. Copying the 'non-volatile memory storage memory storage system to stop the copy operation before the first waste symplectic term = 'between' and non-volatile. As shown in the figure, the time period of 95 〇 I22731.doc -23· 1343522 The existence of the hot first waste project collection time period 950 is completed, because the data is still valid after the original block A 9〇2 and the disorder update block A 904 are effective. Part of the data is copied to the new block A 906. Before the expiration of the data cycle, 'the new data received before the waste project collection operation, 9〇1, is written to the write buffer block.
圖_展示廢棄項目收集操作之在__隨後逾時週期之繼 :笼在此’在第一寫入指令之後接收一第二寫入指令且給 ^寫入指令配置—第二逾時週期。在第二逾時週期期 將剩餘有效資料自原始區塊A 9〇2及無序更新區塊A _複製至新區塊A 906,直至第二廢棄項目收集時間週期 95】到期為止。如圖_中所展示的,廢棄項目收集操作不 可在第二廢棄項目收集時間週期951内完成’因為仍存在 剩餘在原始區塊A 902及無序更新區塊a 9〇4中之有效資 料因此,在將有效資料之一部分複製至新區塊A 9〇6之 後,將在廢棄項目收集操作開始之前所接收之新資料9〇5 寫入至寫入緩衝器區塊9〇8。 圖10C展示廢棄項目收集操作之剩餘部分可在一第三逾 時週期中完成。在第二寫入指令之後接收一第三寫入指 令。因此,給第二寫入指令配置一第三逾時週期。在第三 逾時週期期間,將剩餘有效資料自原始區塊A 9〇2及無序 更新區塊A 904複製至新區塊a 906。在此,可在第三廢棄 項目收集時間週期953内將所有的剩餘有效資料(或有效資 料之最後部分)複製至新區塊A 906。因此,可在第三逾時 週期内完成廢棄項目收集操作。因為廢棄項目收集操作在 122731.doc -24· 1343522Figure_ shows the lapse of the __ subsequent timeout period of the culling project collection operation: the cage receives a second write command after the first write command and configures the write command to the second timeout period. The remaining valid data is copied from the original block A 9〇2 and the out-of-order update block A_ to the new block A 906 during the second timeout period until the second discarded item collection time period 95] expires. As shown in Figure _, the abandoned project collection operation cannot be completed within the second abandoned project collection time period 951 'because there are still valid data remaining in the original block A 902 and the out-of-order update block a 9〇4 After copying a part of the valid data to the new block A 9〇6, the new data 9〇5 received before the start of the waste project collection operation is written to the write buffer block 9〇8. Figure 10C shows that the remainder of the waste project collection operation can be completed in a third timeout period. A third write command is received after the second write command. Therefore, a third timeout period is configured for the second write command. During the third timeout period, the remaining valid data is copied from the original block A 9〇2 and the out-of-order update block A 904 to the new block a 906. Here, all remaining valid data (or the last portion of the valid data) may be copied to the new block A 906 during the third scrap item collection time period 953. Therefore, the waste collection operation can be completed in the third timeout period. Because the waste collection operation is at 122731.doc -24· 1343522
此第三逾時週期中完成,所以可擦除原始區塊A 902及無 序更新區塊A 904且可使其可用於額外資料之儲存《在擦 除原始區塊A 902及無序更新區塊a 904之後,配置新更新 區塊B 962且將自第三寫入指令所接收之新資料9〇9寫入新 近配置之更新區塊B。新資料909未被寫入至寫入緩衝器區 塊908,因為廢棄項目收集操作完成了且在一隨後之逾時 週期到達之前不需要緩衝新資料β在此實例中,執行一寫 入緩衝器區塊清除操作’其中將儲存於寫入緩衝器區塊 908中之新資料901及905複製至更新區塊β 962,假定新資 料901、905及909屬於相同邏輯群組。 圖10D展示在一第四逾時週期期間進行之另一廢棄項 收集操作。如圖10D中所展示的,原始區塊Β 96〇及無序 新區塊Β 962經選擇用於廢棄項目收集。已經轉換成一 序更新區塊之更新區塊Β 962包括與第一、第二及第三 入指令相關聯之新資料901、9〇5及9〇9。當接收一第四This third timeout period is completed, so the original block A 902 and the out-of-order update block A 904 can be erased and made available for the storage of additional data "Erasing the original block A 902 and the out-of-order update area" After block a 904, the new update block B 962 is configured and the new data 9〇9 received from the third write command is written to the newly configured update block B. New material 909 is not written to write buffer block 908 because the obsolete item collection operation is complete and does not need to buffer new data before a subsequent timeout period arrives. In this example, a write buffer is executed. The block clear operation ' copies the new data 901 and 905 stored in the write buffer block 908 to the update block β 962, assuming that the new data 901, 905 and 909 belong to the same logical group. Figure 10D shows another discarding operation performed during a fourth timeout period. As shown in Figure 10D, the original block Β 96 〇 and the unordered new block 962 962 are selected for waste project collection. The updated block 962 962 that has been converted into a sequential update block includes new data 901, 9〇5, and 9〇9 associated with the first, second, and third incoming instructions. When receiving a fourth
入指令時,非揮發性記憶體儲存系統維持一忙錄中信號 接著將有效資料自原始區塊Β 960及無序更新區塊Β 962 製至新區塊Β 964。如圖10D中所展示的,廢棄項目收集 作不可在第四廢棄項目收集時間週期952内完成,因為 存在剩餘在原始區塊Β 960及無序更新區❹962中之有 資料。在將有效資料之一部分複製至新區塊β 9Μ之後 將自第四寫入指令所接收之新資料9〇3寫入至寫入緩衝 區塊908。 圖10Ε展示圖10D之廢棄項目 收集操作之剩餘部分可在 122731.doc -25· 1343522 一第五逾時週期中完成。在第四寫入指令之後接收一第五 寫入指令。因此,給第五寫入指令配置一第五逾時週期。 在第五逾時週期期間,將剩餘有效資料自原始區塊B 960 及無序更新區塊B 962複製至新區塊B 964。在此,可在第 五廢棄項目收集時間週期953内將所有的剩餘有效資料(或 有效資料之最後部分)複製至新區塊B 964。因此,最初在 第四逾時週期期間執行之廢棄項目收集操作可在第五逾時 週期内完成。因為廢棄項目收集操作在此第五逾時週期中 元成,所以擦除原始區塊B 960及無序更新區塊b 962且可 使其可用於額外資料之儲存。在擦除原始區塊B 96〇及無 序更新區塊B 962之後,配置更新區塊c 965且將自第五寫 入指令所接收之新資料907寫入新近配置之更新區塊c。請 注意,更新區塊C 965可或可不與新區塊B 964相關聯。在 此,執行一寫入緩衝器區塊清除操作,且因此,將儲存於 寫入緩衝器區塊908中之新資料903複製至更新區塊c 965,假定新資料903及新資料9〇7屬於相同邏輯群組。 圖11為根據本發明之一實施例的用於最佳化對寫入緩衝 器區塊之存取之操作的流程圖。寫入緩衝器區塊之保㈣ 入某些附加耗用。為降低附加耗用,在一實施例中,可最 小化對寫入緩衝器區塊的寫…圖"中所展示 寫入指令。此後,在操作_中非揮發性 4體儲存系統估計-執行相1執行時間為用於 該寫入指令之時間週期。該寫入指令之執行可 將新資料程式化(或寫入)記憶趙’執行-廢棄項目收集摔 122731.doc •26- 1343522 作,及執行其他操作。舉例而言,執行時間可包括用於將 有效資料自一或多個區塊複製至另一區塊中之時間週期及 用於寫入新資料之時間週期。 非揮發性記憶體儲存系統即時估計執行時間。非揮發性 記憶體儲存系統可基於各種參數估計執行時間。參數之實 例包括廢棄項目收集類型(例如,區塊關閉、合併、壓 縮,及其他類型)、儲存於一待經廢棄項目收集之區塊(例 如,更新區塊及其他區塊)中之有效資料的量、與非揮發 性吕己憶體儲存系統相關聯之程式化時間、經廢棄項目 t區塊之-大小⑽如’元區塊之—大小)、Μ需要預先 填充、待預先填充之資料之量、管線、快取、頻率 程式化失效,及其他參數。在估計又 中,一或多個第-區塊包括十一頁有汾咨時間之一實例 效資料將被複製至一第二區塊。 —貝有 可藉由將非揮發性纪w/揮發性記憶體儲存系統 ^ / 體儲存线讀取十:頁有效資料所 化費之時間之量與非揮發性 貝竹所 入至第1 bn 存系統將有效資料寫 在時間之量相加而估計該執行時間。 在非揮發性記憶㈣存系統估計執行時間之後1 10〇6中將執行時間與逾 在操作 示的,若經估計之執行時門 争乂。如操作1008中所展 、会„主 執订夺間小於逾時週期或該等摔作可^ 内完成廢棄項目收华=棄,目收集操作且在逾時週期 —更新區塊。另—方面 調用)’並將新資料寫入至 .X .. 如操作1010中所展示的,若經任 #之執行時間超過逾時β右經估 巧期(亦即,大於或等於逾時週 -27. 期)’則將新資料寫入至寫入緩衝器區塊,且可使用經配 置之廢棄項目收集時間週期用於寫入緩衝器區塊清除或用 於執行廢棄項目收集操作之一部分(若經調用)❶在一實施 例中,如下文將更詳細說明的,寫入緩衝器區塊清除可在 逾時週期内之剩餘時間中以寫入緩衝器區塊之第一有效項 開始。藉由當經估計之執行時間超過逾時週期時寫入至寫 入緩衝器區塊,將存在至寫入緩衝器區塊之較少寫入,且 因此,與保持寫入緩衝器區塊相關聯之附加耗用可得以降 低。 冩入緩衝器區塊-頁邊界索引 在一實施例中,寫入緩衝器區塊經建構為包括多頁且寫 入緩衝器區塊内之每一頁經編索引。寫入緩衝器區塊之每 一頁經組態以儲存一或多個區段之新資料。因此,一指標 指向或參照一頁’且可藉由一指標參照一頁内之多個曰: 段,因為該指標指向一頁且不指向該頁内之多個區段。在 此,屬於相同元頁之區段之新資料經寫入至寫入緩衝器區 塊之相同元頁。然、而’屬於不同元頁之區段之新資料經寫 入至寫入緩衝器區塊之不同元頁。舉例而t,盥一 之一第:區段之新資料經寫入至寫入緩衝器 Γ·之新杳f。此後’自一第二寫入指令接收-第二區 :資枓。若第二區段之新資料屬 料相同之元頁,則將第二區段寫 又之新資 一頁。其一古品. 至寫入緩衝器區塊之第 則將第 ’若第二區段之新資料屬於-不同元頁, 第二區段寫入至寫入緩衝器區塊之—不同元頁。 122731.doc •28· 寫入緩衝器區塊-區段級索引 在另-實施例中,寫人緩衝器區塊經建構為包括多個區 U寫入緩衝器區塊内之一或多個區段可經編索引。舉例 而言’一指標可指向或參照多個區段(例如,四個區段)。 在另-實例中,—指標可指向或參照—區段。在寫入又緩衝 器區塊内之每-區段經編索引之實例中,冑資料經寫入至 寫入緩衝器區塊之一單區段。隨後的與另_寫入指令相關 聯之新資料經寫入至寫入緩衝器區塊中之下一個可用區 段。舉例而言,來自多個寫入指令之區段之新資料可經寫 入至寫入緩衝器區塊中之相同頁之不同區段。因此寫入 緩衝器區塊可經建構為包括多個區段且每一區段經組態以 儲存一區段之新資料。 為了在無逾時錯誤之情況下保持單區段寫入,非揮發性 記憶體儲存系統可將許多區段配置給一寫入緩衝器區塊以 使得經配置之區段大於非揮發性記憶體儲存系統中之元區 塊之總數。應瞭解,寫入緩衝器區塊可包含多個元區塊。 為了計算配置給一寫入緩衝器區塊之區段之數目,例如, 包含寫入緩衝器區塊之元區塊Μ之數目可經定義為 M = Ml ·When the command is entered, the non-volatile memory storage system maintains a busy recording signal and then valid data is copied from the original block 960 960 and the unordered update block 962 962 to the new block 964. As shown in Figure 10D, the discarded project collection cannot be completed within the fourth abandoned project collection time period 952 because there is data remaining in the original block 960 and the out-of-order update area 962. The new data 9〇3 received from the fourth write command is written to the write buffer block 908 after copying a portion of the valid data to the new block β 9Μ. Figure 10A shows the waste project of Figure 10D. The remainder of the collection operation can be completed in a fifth timeout period of 122731.doc -25· 1343522. A fifth write command is received after the fourth write command. Therefore, a fifth timeout period is configured for the fifth write command. During the fifth timeout period, the remaining valid data is copied from the original block B 960 and the out-of-order update block B 962 to the new block B 964. Here, all remaining valid data (or the last part of the valid data) can be copied to the new block B 964 during the fifth abandoned project collection time period 953. Therefore, the waste collection operation initially performed during the fourth timeout period can be completed in the fifth timeout period. Since the discarding item collection operation is in this fifth timeout period, the original block B 960 and the out-of-order update block b 962 are erased and made available for the storage of additional data. After erasing the original block B 96 〇 and the out-of-order update block B 962, the update block c 965 is configured and the new material 907 received from the fifth write command is written to the newly configured update block c. Please note that update block C 965 may or may not be associated with new block B 964. Here, a write buffer block clear operation is performed, and therefore, the new material 903 stored in the write buffer block 908 is copied to the update block c 965, assuming new material 903 and new data 9〇7 Belong to the same logical group. 11 is a flow diagram of an operation for optimizing access to a write buffer block in accordance with an embodiment of the present invention. Write to the buffer block (4) into some additional consumption. To reduce the additional overhead, in one embodiment, the write instructions shown in the write <write" of the write buffer block can be minimized. Thereafter, in operation _ the non-volatile body storage system estimates - the execution phase 1 execution time is the time period for the write command. The execution of the write command can program (or write) the new data to the memory "execution - the collection of discarded items", and perform other operations. For example, the execution time may include a time period for copying valid data from one or more blocks into another block and a time period for writing new data. The non-volatile memory storage system estimates the execution time in real time. The non-volatile memory storage system can estimate execution time based on various parameters. Examples of parameters include obsolete item collection types (eg, block closure, consolidation, compression, and other types), valid data stored in blocks to be collected by obsolete items (eg, update blocks and other blocks) Quantity, the stylized time associated with the non-volatile Lum memory system, the size of the obsolete item t-size (10) such as 'the size of the meta-block', the pre-filled, pre-populated data Quantity, pipeline, cache, frequency staging failure, and other parameters. In the estimation, one or more of the first blocks may include one of the eleven pages of the time, and the instance data will be copied to a second block. - The amount of time spent on the non-volatile w/ volatile memory storage system ^ / body storage line can be read by the amount of non-volatile bamboo and the first bn The storage system adds the amount of valid data written in time to estimate the execution time. After the estimated execution time of the non-volatile memory (four) memory system, the execution time and the over-operation are shown in 1 10〇6, if the estimated execution time is disputed. As shown in operation 1008, the main contract is less than the timeout period or the fall can be completed within the discarded project = abandonment, the collection operation and the timeout period - update the block. Call) and write new data to .X.. As shown in operation 1010, if the execution time of the # is more than the timeout β right estimate period (ie, greater than or equal to the timeout week -27 .)) then write new data to the write buffer block, and can use the configured obsolete item collection time period for writing buffer block clearing or for performing part of the waste project collection operation (if In an embodiment, as will be explained in more detail below, the write buffer block clear may begin with the first valid entry of the write buffer block for the remainder of the timeout period. By writing to the write buffer block when the estimated execution time exceeds the timeout period, there will be less writes to the write buffer block and, therefore, associated with the hold write buffer block The additional consumption can be reduced. Into the buffer block - page Boundary Index In one embodiment, a write buffer block is constructed to include multiple pages and each page within the write buffer block is indexed. Each page of the write buffer block is configured to Store new data for one or more segments. Therefore, an indicator points to or refers to a page' and can refer to multiple segments in a page by an indicator because the indicator points to a page and does not point to the page. A plurality of sections. Here, new data belonging to the section of the same metapage is written to the same metapage of the write buffer block. However, new data of the sections belonging to different metapages are written. Into the different metapages of the write buffer block. For example, t, one of the first: the new data of the section is written to the new buffer of the write buffer 。·. Incoming command receiving - second area: capital. If the new data of the second section belongs to the same meta page, the second section is written with a new page. An ancient product. To the write buffer The first part of the block will be the first if the new data of the second sector belongs to the different meta page, and the second sector is written to the write buffer block - A common page. 122731.doc • 28· Write Buffer Block - Segment Level Index In another embodiment, the write buffer block is constructed to include multiple regions U written into the buffer block. One or more segments may be indexed. For example, an indicator may point to or reference multiple segments (eg, four segments). In another example, the indicator may point to or reference a segment. In the case of a per-segment indexed in the write-and-buffer block, the data is written to a single segment of the write buffer block. Subsequently associated with the other_write instruction New data is written to the next available segment in the write buffer block. For example, new data from segments of multiple write instructions can be written to the same in the write buffer block Different sections of the page. Thus the write buffer block can be constructed to include multiple sections and each section is configured to store new data for a section. In order to maintain single-segment writes without a time-out error, the non-volatile memory storage system can configure a number of segments to a write buffer block such that the configured segments are larger than the non-volatile memory. The total number of metablocks in the storage system. It should be appreciated that a write buffer block can contain multiple metablocks. To calculate the number of sectors allocated to a write buffer block, for example, the number of metablocks containing the write buffer block can be defined as M = Ml.
Ml* M2 Metablock Size -M2 (1·0) 其中 {N -X)* (Total.Nunber.of .Metablocks dnSystem) Metablock SizeMl* M2 Metablock Size -M2 (1·0) where {N -X)* (Total.Nunber.of .Metablocks dnSystem) Metablock Size
Ml = RoundUp ^o.Nearest.Integer N * Tgc N*TO-Tgc M2 = RoundUp .to.Nearest .Integer 122731.doc -29- 1343522Ml = RoundUp ^o.Nearest.Integer N * Tgc N*TO-Tgc M2 = RoundUp .to.Nearest .Integer 122731.doc -29- 1343522
Tgc為執行一完整廢棄項目收集操作之時間。配置給寫入 緩衝器區塊之區段之總數可經定義為 區段之總數=M*Metablock_Size 其中Μ經定義於等式κο中且MeUbl〇ck—Size為每一元區 塊按區段計算之大小,諸如512個區段/元區塊、1〇24個區 段/元區塊、2048個區段/元區塊,或其他大小。一般而 言,等式1.0及1.2定義配置給寫入緩衝器區塊之區段之總 數大於非揮發性圮憶體儲存系統中之元區塊之總數。除元 區塊之總數之外,等式1 .〇配置—或多個元區塊(或區段)用 於保持與寫入緩衝器區塊相關聯之附加耗用(在下文中為"附 加元區塊"或"附加區段舉例而言,等式1〇之定義附加 元區塊之數目的部分為(M1*M2)/(Metablock_size-M2),其 中附加區段可藉由將附加區塊乘以元區塊大小來計算。 之區段配置給寫入緩Tgc is the time to perform a complete waste project collection operation. The total number of sections allocated to the write buffer block can be defined as the total number of sections = M * Metablock_Size where Μ is defined in the equation κο and MeUbl〇ck_Size is calculated for each metablock by section Size, such as 512 segments/meta block, 1〇24 segment/meta block, 2048 segment/meta block, or other size. In general, Equations 1.0 and 1.2 define that the total number of sections allocated to the write buffer block is greater than the total number of metablocks in the non-volatile memory storage system. In addition to the total number of metablocks, Equation 1 .〇 configuration—or multiple metablocks (or segments) are used to maintain additional overhead associated with writing buffer blocks (hereinafter "addition Metablock " or "Additional Section For example, the part of Equation 1〇 that defines the number of additional metablocks is (M1*M2)/(Metablock_size-M2), where the additional section can be The additional block is multiplied by the metablock size to calculate the segment configuration.
122731.doc 藉由將如等式1.2中所定義之數目 衝器區塊’可避免逾時錯誤,即使^ 入之最壞狀況情況下亦如此。者窝7 -30- 1343522 一區段標記為無效。此外,當寫入緩衝器區塊經填滿或滿 時’將寫入緩衝器區塊壓縮以便接收新區段但可不執行一 寫入緩衝器區塊清除操作。因此,在一最壞狀況情況下, 當廢棄項目收集時間週期大於逾時週期時,寫入緩衝器區 塊經填滿之速度比經騰空之速度快。 然而’若寫入緩衝器區塊中之多個區段屬於相同邏輯群 組’則在一廢棄項目收集操作期間可將所有區段合併。藉 由將足夠的元區塊Μ配置給一寫入緩衝器區塊,寫入緩衝 器區塊中存在比非揮發性記憶體儲存系統中之元區塊之總 數多的區段(或項),且因此,存在具有寫入至寫入緩衝器 區塊中之多個有效區段之邏輯群組。當寫入緩衝器區塊之 區段經廢棄項目收集或合併時,屬於相同邏輯群組之所 有區段經合併成一新的更新區塊,且在寫入緩衝器區塊中 經標記為無效。因此,騰空寫入緩衝器區塊之速率將大於 填充速率,且藉此防止寫入緩衝器區塊滿或被填滿。因 此,對於每一給定Tgc,非揮發性記憶體儲存系統將大於 非揮發性記憶體儲存系統中之元區塊之總數的數目之區段 配置給寫入緩衝器區塊,以便可防止逾時錯誤之發生,即 使對於如上所述之最壞狀況情況亦如此。 圖12為根據本發明之一實施例的用於將新資料暫時儲存 於一尚速暫存式(seratch pad)區塊中之操作之流程圖。應 瞭解,非揮發性記憶體儲存系統可具有可多級緩衝或多緩 衝級,其類似於多級快取之概念。在此實施例中,寫入緩 衝器區塊可與許多緩衝級之一者相關聯。在多緩衝級之情 12273 ] .doc 31 1343522 在胳叙不疋直接將新資料寫入至寫入緩衝器區塊,而是可 於另-緩衝級中。新資=前將新資料暫時儲存 資枓在一不同於寫入緩衝器區塊之緩 之緩衝級中的暫時儲存可減少與在分階段廢棄項目收 集操作t使用寫人緩衝器區塊相關聯之複㈣、附加耗 用’及潛時。一矮播^ 一 ° 實例為一高速暫存式區塊。該 =暫存式區塊可與一不同於寫入緩衝器區塊之緩衝級相 =聯。舉例而言,高速暫存式區塊可用作一第一緩衝級且 “緩衝器區塊可用作一第二緩衝級。如上所述,在單區 、引之清况下,來自多個寫入指令之區段之新資料可經 寫入至寫入緩衝器區塊中之相同頁之不同區段。因為非揮 發性記憶體健存系統可能不能夠程式化部分頁,所以根據 本發明之一實施例’在將新資料轉移至寫入緩衝器區塊之 前,可將新資料暫時儲存於第一緩衝級(諸如,一高速暫 存式區塊)中。應瞭解’一高速暫存式區塊為資料更新區 塊之形式,其中可以一隨機次序及用任何量之重複更新一 _聯之邏輯群組内之邏輯區段。高速暫存式區塊係藉由 一寫入指令來建立,其中預期的邏輯區段不在頁 處結束或穿越實體頁邊界。高速暫存式區塊可含有部分實 體頁價值之資料,但不允許部分程式化頁資料。高速暫存 式區塊可保持_有效頁之資料用於非揮發性記憶體儲存系 統中之每一更新區塊。非揮發性記憶體儲存系統可具有 (例如)經配置之八個更新區塊,且因此,高速暫存式區塊 可儲存9個有效頁之資料。 122731.doc -32- 如圖12中所展示的,在操作11〇2中首先將自一寫入指令 ^接收之新資料寫入至一高速暫存式區塊。該高速暫存式 區塊可包括多頁且每一頁包括多個區段。將新資料複製至 γ速暫存式區塊之一區段。在操作11〇4中,當高速暫存式 區鬼中之與寫入緩衝器區塊相關聯之頁滿時,接著將新 資料自高速暫存式區塊複製至寫入緩衝器區塊。非揮發性 記憶體儲存系統因此在高速暫存式區塊中累積一頁之區 & ’直至該頁之所有區段經填滿來自多種寫人指令之新資 料為止。非揮發性記憶體儲存系統接著在一程式化操作中 將完整頁(例如’八個區段之新資料)自高速暫存式區塊複 製至寫入緩衝器區塊。因為寫入緩衝器區塊可大於高速暫 存式區塊且可含有更多有效資料,所以高速暫存式區塊呈 有待經廢棄項目收集之較少資料。心b,高速暫存式區塊 入緩衝器區塊之廢棄項目收集快。 因 之廢棄項目收集比寫 此藉助於内速暫存式區塊將新資料寫入至寫入緩衝器區 塊比直接將新資料寫人至寫人緩衝H區塊快。 音訊/視訊資料 -存取儲存於—非揮發性記憶體儲㈣統中之與音訊/ 視訊檐案相關聯之=备 關聯之#枓(下文中為:,,音訊/視訊資料")的主 機可能需要以一箱定坤·玄-+ + 預疋速率之速度(與其他資料相比較)寫入 曰訊/視訊資料。當主機將音訊/視訊資料串流至非揮發性 記憶體儲存系統及/或自非揮發性記憶體儲存系統串流音 訊/視訊資料時,配置略土 、,IL之頻寬匹配或超過預定速率之 速度。存取音訊/視訊資料 付期間所執仃之一廢棄項目收集 122731.doc * 33 - 1343522 操作可降級音訊/視訊資料之寫入效能。因此,在一實施 例中’當多區段寫入指令不與音訊/視訊資料相關聯或多 區段寫入指令係在一音訊/視訊寫入之開始時,執行分階 段廢棄項目收集。 為&別音訊/視訊資料與其他資料,在一實施例令,非 揮發性記憶體儲存系統可參照與多區段寫入指令相關聯之 目標邏輯位址。因為音訊/視訊資料經連續寫入,所以一 經轉譯為向後跳躍之目標邏輯位址可指示新資料不是音訊/ 視訊資料(或在音訊/視訊資料之開始)。在另一實施例令, 非揮發性記憶體儲存系統亦可藉由參照與新資料相關聯之 區段之數目而區別音訊/視訊資料與其他資料。音訊/視訊 資料可儲存於被稱作記錄單元之單元中。與音訊/視訊資 料相關聯之最小記錄單元長度可為32個區段。與新資料相 關聯之區段之數目不是32個區段之整數倍可(因此)指示新 資料不是音訊/視訊資料。所接收的不對準一記錄單元或 不在一記錄單元之開始處開始之新資料亦可指示新資料不 是音訊/視訊資料。 因此,若以下條件之一者適用,則可執行分階段廢棄項 目收集:(1)多區段寫入指令調用廢棄項目收集操作; 目標邏輯位址經轉譯為一向後跳躍;(3)目標邏輯位址不對 準一記錄單元邊界;及(4)在接收停止指令之後(亦即,多 區段寫入指令之結束),若與新資料相關聯之區段之數目 不是32之整數倍。 單區段寫入 122731.doc • 34- U43522 圖13為根據本發明之一實施例的與一單區段寫入指令相 關聯之非揮發性記憶體儲存系統操作之流程圖。新資料可 故作為單區段而寫入至一記憶體單元陣列上之隨機位址。 取決於主機活動性及卡片段,主機可使用單區段寫入指令 將一具有多個區段之長檔案寫入至隨機位置。因為存在經 配置之有限數目之更新區塊,所以此等單區段寫入可快速 地實行該等更新區塊,藉此可促使非揮發性記憶體儲存系122731.doc A timeout error can be avoided by placing a number of buffer blocks as defined in Equation 1.2, even in the worst case scenario. The nest 7 -30- 1343522 is marked as invalid. In addition, the write buffer block is compressed when the write buffer block is filled or full to receive a new sector but a write buffer block clear operation may not be performed. Therefore, in a worst case scenario, when the discarding item collection time period is greater than the timeout period, the write buffer block is filled faster than the vacated rate. However, if multiple segments in the write buffer block belong to the same logical group, then all segments can be merged during an abandoned project collection operation. By arranging enough metablocks to a write buffer block, there are more segments (or entries) in the write buffer block than the total number of metablocks in the non-volatile memory storage system. And, therefore, there is a logical group with multiple active segments written into the write buffer block. When the sectors written to the buffer block are collected or merged by the obsolete item, all of the sectors belonging to the same logical group are merged into a new update block and marked as invalid in the write buffer block. Therefore, the rate at which the buffer block is vacated will be greater than the fill rate, and thereby preventing the write buffer block from being full or filled. Thus, for each given Tgc, the non-volatile memory storage system allocates a segment greater than the total number of metablocks in the non-volatile memory storage system to the write buffer block so as to prevent overshoot Time errors occur even in the worst case scenario as described above. Figure 12 is a flow diagram of the operation for temporarily storing new data in a still-scratch pad block, in accordance with an embodiment of the present invention. It should be appreciated that a non-volatile memory storage system can have multiple levels of buffering or multiple buffering levels similar to the concept of multi-level cache. In this embodiment, the write buffer block can be associated with one of a number of buffer stages. In the multi-buffer level 12273 ] .doc 31 1343522 The new data is written directly to the write buffer block, but in the other-buffer level. New capital = temporary storage of new data temporarily stored in a buffer level other than the buffer level of the write buffer block can be reduced associated with the use of the write buffer block in the staged waste collection operation t The complex (four), additional consumption 'and latent time. A short broadcast ^ ° instance is a high-speed temporary storage block. The =temporary block can be associated with a buffer level other than the write buffer block. For example, a scratch pad block can be used as a first buffer stage and a "buffer block can be used as a second buffer stage. As described above, in a single zone, in a clear case, from multiple New data for the segment of the write command can be written to different segments of the same page in the write buffer block. Because the non-volatile memory storage system may not be able to program a partial page, according to the present invention In one embodiment, new data may be temporarily stored in a first buffer level (such as a high-speed temporary storage block) before the new data is transferred to the write buffer block. The block is in the form of a data update block in which a logical segment within a logical group can be repeatedly updated in a random order and with any amount. The cache block is written by a write command. Established, where the expected logical segment does not end at the page or traverses the boundary of the physical page. The scratchpad block may contain data on the value of part of the physical page, but does not allow partial stylized page data. The scratch pad block can be maintained. _ valid page information is used Each update block in the volatile memory storage system. The non-volatile memory storage system can have, for example, eight configured update blocks, and thus, the scratch pad block can store 9 valid pages. 122731.doc -32- As shown in Figure 12, new data received from a write command is first written to a scratchpad block in operation 11〇2. The block may include multiple pages and each page includes a plurality of segments. The new data is copied to one of the γ-speed temporary storage blocks. In operation 11〇4, when the high-speed temporary storage area is in the ghost When the page associated with the write buffer block is full, new data is then copied from the scratch pad block to the write buffer block. The non-volatile memory storage system is therefore in the scratch pad block. Accumulate a page of pages & 'until all sections of the page are filled with new data from a variety of writer commands. The non-volatile memory storage system then completes the pages in a stylized operation (eg 'eight New data for the section) Copy from the high-speed temporary storage block to the write slow Because the write buffer block can be larger than the high-speed temporary storage block and can contain more valid data, the high-speed temporary storage block is less data to be collected by the abandoned project. The discarded items in the buffer block are quickly collected. Therefore, the collection of discarded items is faster than writing the new data by writing the new data to the write buffer block by means of the internal speed temporary storage block. The person to the writer buffers the H block quickly. The audio/video data-access is stored in the non-volatile memory store (four) system associated with the audio/video file = the associated ## (hereinafter: , the audio/video data ") host may need to write the video/video data at a speed of one box, the speed of the preview (compared with other data). When the host will listen to audio/video data When streaming to a non-volatile memory storage system and/or streaming audio/video data from a non-volatile memory storage system, the configuration of the ground, IL bandwidth matches or exceeds a predetermined rate. Access to audio/video data One of the obsolete items collected during the payment period 122731.doc * 33 - 1343522 Operation can degrade the write performance of audio/video data. Thus, in one embodiment, the staged item collection is performed when the multi-session write command is not associated with the audio/video material or the multi-session write command is at the beginning of an audio/video write. For & audio/video data and other materials, in one embodiment, the non-volatile memory storage system can reference the target logical address associated with the multi-session write command. Since the audio/video data is continuously written, the target logical address that is translated as a backward jump can indicate that the new data is not audio/video data (or at the beginning of the audio/video data). In another embodiment, the non-volatile memory storage system can also distinguish between audio/visual material and other data by reference to the number of segments associated with the new material. 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 material is not an integer multiple of 32 segments (hence) indicating that the new data is not audio/video material. The received new information that is not aligned with a recording unit or that does not begin at the beginning of a recording unit may also indicate that the new data is not audio/video material. Therefore, if one of the following conditions applies, the staged obsolete item collection can be performed: (1) the multi-session write instruction invokes the discarded item collection operation; the target logical address is translated into a backward jump; (3) the target logic The address is not aligned with a record unit boundary; and (4) after receiving the stop command (ie, the end of the multi-session write command), if the number of segments associated with the new data is not an integer multiple of 32. Single Segment Write 122731.doc • 34- U43522 Figure 13 is a flow diagram of the operation of a non-volatile memory storage system associated with a single segment write command in accordance with one embodiment of the present invention. The new data can be written to a random address on a memory cell array as a single segment. Depending on host activity and card fragments, the host can write a long file with multiple segments to a random location using a single-segment write command. Because there are a limited number of updated blocks that are configured, such single-segment writes can quickly implement the updated blocks, thereby facilitating non-volatile memory storage.
統執行廢棄項目收集操作,以清除區塊而使其用於隨後之 寫入操作。The obsolete item collection operation is performed to clear the block for subsequent write operations.
人如圖13中所展示的,在操作12〇2中接收一單區段寫入指 令。此後,在操作1204中確定單區段寫入指令是否調用一 廢棄項目收集操作。若單區段寫入指令不調用一廢棄項目 收集操作’則在操作1220中將新資料寫入至記憶體。然 而右單區段寫入指令調用一廢棄項目收集操作’則在操 ^鹰中進-步確定是否存在一待決之分階段廢棄項目收 :(:亦:,一已經開始但由於無法完成廢棄項目收集而經 为階段之廢棄項目收隼操作 — 果刼作)右存在分階段廢棄項目收 集’則在操作⑽中繼續分階段廢棄項目 之,繼續先前的廢棄項目收集操作之剩餘部分= 1210中所展示的,執 刀如操作 h “ 階段廢棄項目收集操作,直至廢 棄項目收集時間週期(例如,逾時 : 的差值)到期為止,或 飞化時間之間 止。 一 凡成分階段廢棄項目收集為 若在廢棄項目收集時間週期 内無法完成分階段廢棄項目 12273I.doc -35- 1343522 收集操作,則在操作1218中將新資料寫入至寫 ==項目收集時間週期未到期或可在廢棄項目收; 作一—項:收集操作,則在操 早&奴寫入指令是否仍調用廢棄 ㈣操作’即使在完成分階段廢棄項目收集操作之後亦如 此。若單區段寫入指令不調用一廢棄項目收集操作,則在 =作㈣中將新資料寫入至記憶體。另一方面,若單區段 寫入指令確實調用廢棄項目收集,則在操作1214中執行一 ^項目收集操作’直至操作1216中所展示之廢棄項目收 集時間週期到期為止。若在廢棄項目收集時間週期内益法 兀成分階段廢棄項目收集操作,則在操作1218中將新資料 寫入至寫入緩衝器區塊。否則,在操作1220中將新資料寫 =至兄憶體。請注意’若存在一分階段廢棄項目收集且當 前寫入指令亦調用一廢棄項目收集操作,則操作1216中: 展示之廢棄項目收集時間週期為操作1210令所展示之廢棄 項目收集時間週期之一延續。因此,若存在一分階段廢棄 項目收集且當前單區段寫人指令調用—廢棄項目收集操 作,則兩個操作均在總的廢棄項目收集時間週期内完成。 換言之,配置用於操作1208中所展示之分階段廢棄項目收 集操作與操作1214中所展示之廢棄項目收集操作的執行時 間為(例如)逾時週期與程式化時間之間的差值。 在操作1220中將新資料寫入至記憶體之後,在操作1224 中確疋寫入緩衝器區塊中是否存在有效項及逾時週期是否 】期若寫入緩衝器區塊中不存在有效項或逾時週期已 122731.doc •36- ’則操作結束,若存在有效項且逾時週期 ^1期财操作1226中執行—·寫人緩衝ϋ ϋ塊清除操 直至逾時週期到期為止。亦可在此週期期間執行一寫 入緩衝器區塊壓縮操作,直至逾時週期到期為止。 多區段寫入 圖14為根據本發明之-實施例的與多區段寫人指令相關 聯之非揮發性記憶體儲存系統操作之流程圖。寫入記憶體 早心車列之大多數新資料為佔據一相鄰連續邏輯位址空間 大·貝料檔案。取決於主機活動性,主機可使用多區段寫 入指令寫入大資料檔案。該新資料包含具有多個逾時週期 之多個區段之新資料H示__多區段寫人指令之一實 例。-般而言,因為多個逾時週期可用,戶斤以可將新資料 寫入至一經配置之更新區塊而不寫入至寫入緩衝器區塊。 因此’在多個寫入指令中通常不使用寫入緩衝器區塊因 為廢棄項目收集通常可在配置給多區段寫入指令之多個逾 時週期内完成。 如圖14中所展示的,在操作13〇2中接收一多區段寫入指 令。此後,在操作1304中,儲存(或緩衝)該等區段之新資 料且可視需要而執行廢棄項目收集操作。在此,非揮發性 記憶體儲存系統可不利用一寫入緩衝器區塊,因為多個逾 時週期經配置給多區段寫入指令且一廢棄項目收集操作通 常可在多區段寫入指令之結束期間完成。因此,非揮發性 s己憶體儲存系統可將新資料儲存於與非揮發性記憶想健存 系統相關聯之RAM中,或儲存於與非揮發性記憶體儲存系 122731.doc • 37· 1343522 統相關聯之其減龍巾,而不料於寫人緩制區塊, 同時在區段之«料之間維壯料錢歧❹經配置 之逾時週期執行廢棄項目收集操#。 在緩衝主機區段之後,在操作13()6中關於是否接收小於 N個區段之新資料作出一瑞今 , lUILf又丨貝丨磲弋。如上所述,可不將與一多The person receives a single-segment write command in operation 12〇2 as shown in FIG. Thereafter, it is determined in operation 1204 whether the single-segment write instruction invokes an obsolete item collection operation. If the single-segment write command does not invoke a discard item collection operation, then new data is written to the memory in operation 1220. However, the right single-segment write command invokes an abandoned project collection operation', and in the operation, it is determined whether there is a pending phased project. (: Also: one has started but cannot be completed due to The collection of the project and the collection of the abandoned project in the stage - the production of the right-handed phased project collection, then continue to phase out the project in operation (10), continue the remainder of the previous abandoned project collection operation = 1210 As shown, the knife is operated as “phase-discarded project collection operation until the obsolescence project collection time period (for example, the time difference: the difference) expires, or the flight time is between. In order to fail to complete the phased project 12273I.doc -35-1343522 collection operation during the collection period of the abandoned project, the new data is written to the write in the operation 1218 == the project collection time period has not expired or can be discarded Item collection; one-item: collection operation, then in the early & slave write instruction is still called discard (four) operation 'even after completing the phased discard The same is true after the collection operation. If the single-segment write instruction does not call an obsolete item collection operation, the new data is written to the memory in = (4). On the other hand, if the single-segment write instruction is actually called If the waste project is collected, the operation collection operation is performed in operation 1214 until the waste project collection time period shown in operation 1216 is expired. If the waste project collection operation is performed during the waste project collection time period, The new data is then written to the write buffer block in operation 1218. Otherwise, the new data is written = to the sibling memory in operation 1220. Please note that if there is a staged obsolete item collection and the current write instruction In addition, an abandoned project collection operation is invoked, in operation 1216: The discarded project collection time period shown is one of the collection time periods of the abandoned project shown in operation 1210. Therefore, if there is a phased abandoned project collection and the current single zone Segment Writer Instruction Call—Abandonment project collection operation, both operations are completed within the total abandoned project collection time period. The execution time for configuring the staged obsolete item collection operation shown in operation 1208 and the deprecated item collection operation shown in operation 1214 is, for example, the difference between the timeout period and the stylized time. In operation 1220 After the new data is written to the memory, it is determined in operation 1224 whether there is a valid item and a timeout period in the write buffer block. If there is no valid item or timeout period in the write buffer block 122731.doc • 36- 'The operation ends, if there is a valid item and the timeout period ^1 period operation 1226 is executed - the writer buffer ϋ 清除 block clear operation until the timeout period expires. Also here A write buffer block compression operation is performed during the period until the timeout period expires. Multi-Segment Write Figure 14 is a flow diagram of the operation of a non-volatile memory storage system associated with a multi-session write command in accordance with an embodiment of the present invention. Write to Memory Most of the new data in the Early Hearts column is occupied by an adjacent continuous logical address space. Depending on host activity, the host can write large data archives using multisession write instructions. The new data contains a new data H with multiple segments of multiple timeout periods, an example of a multi-session writer command. In general, because multiple timeout periods are available, the new data can be written to a configured update block without being written to the write buffer block. Therefore, write buffer blocks are typically not used in multiple write instructions because collection of obsolete items can typically be done in multiple timeout periods configured for multi-segment write instructions. As shown in Figure 14, a multi-session write command is received in operation 13〇2. Thereafter, in operation 1304, new information for the segments is stored (or buffered) and the obsolete item collection operation is performed as needed. Here, the non-volatile memory storage system may not utilize a write buffer block because multiple timeout periods are configured for multi-session write instructions and an obsolete item collection operation is typically available for multi-segment write instructions. Completed during the end. Therefore, the non-volatile simon memory storage system can store new data in the RAM associated with the non-volatile memory storage system, or in the non-volatile memory storage system 122731.doc • 37· 1343522 It is associated with the reduction of the dragon towel, but it is not expected to write the person to slow down the block, and at the same time, in the section of the material between the materials, the implementation of the waste collection process. After buffering the host segment, in operation 13()6, a new data is received as to whether or not to receive less than N segments, and lUILf is again 丨. As mentioned above, it will not be more than one
區段寫人指令相關聯之新資料寫人至寫人緩衝器區塊,因 為廢棄項目收集操作通常可在配置給0段寫人操作之多 個逾時週期内完成,,在-實施例中,若存在配置用 於完成廢棄項目收集操作以足夠之逾時㈣,則可在一 多區段寫入指令中使用寫入緩衝器以鬼。因此,無論是否 調用一廢棄項目收集操作’-具有至少N個區段之新資料 的多區&寫人心7均可經直接寫人更新區塊且不寫入至寫 入緩衝器區塊,其中N經定義如下。The new data associated with the segment writer instruction is written to the write buffer block, because the obsolete item collection operation can usually be completed in multiple timeout periods configured for the 0 segment writer operation, in the embodiment If there is a configuration for completing the obsolete item collection operation for a sufficient timeout (four), the write buffer can be used in a multi-session write instruction to ghost. Therefore, whether or not to invoke an obsolete item collection operation '-a multi-zone & write center 7 having new data of at least N sections can be directly written by the person to update the block and not written to the write buffer block, Where N is defined as follows.
N=將[(TgC+T0)/T0]向下四捨五入至最近整數(2 〇) 等式2_〇展示當寫入指令為一單區段寫入指令時或當非 揮發性記憶體儲存“在—多區段寫人指令中接收小於N 個區段之新資料時’將新資料寫人至寫人緩衝器區塊。 再參看圖14,若接收小於N個區段,則非揮發性記憶體 儲存系統根據圖13中所展示之單區段寫入指令操作操:多 〇 ”、、而’右接收Ν個以上區段之新資料,則 =操作mo中關於是否可執行—寫入緩衝器區塊清除操作 :出確疋。舉例而言,若操作13〇2中所接收之新資料不 §廢棄項目收集,或若新資料調用在經配置之廢棄項目 收集時間週期到期之前完成之廢棄項目收集,則可執行寫 122731.doc •38· 入 緩衝器區塊清除操作。然而,若 界,則不執行寫入緩衝哭料竿δ己錄早το邊 視訊資料。若不可! 為新資料可為音訊/ 負杆右不可執行寫入緩衝器 作卿將新資料寫入至記憶 二除:作,則在操 塊清除操作,則在操作㈤執仃寫人緩衝器區 操作及-寫人緩衝$F 卩—分階段廢棄項目收集 執行期門由非禮 除操作,直至多區段寫入指令 為Tgc-T Λ 記憶體儲存系統維持之總的忙線週期 非揮發ttprog止。此後’在操作1314中將新資料寫入至 (諸如,” 丁陣列。在此實施例中,可在多種週期 =^Tge如。g之職、四個逾時週期、五個逾時 :及其他週期)t在自多區段寫人指令所接收之前幾 13 2之間(例如’在第二區段與第三區段之間)執行操作 U 12中所展示之寫入緩衝器區塊清除。 在執·ί亍寫入才曰令之後,在操作1316中關於新資料是否為 32個區段之整數倍作出一確定。若新資料為32個區段之整 數倍’則新資料可為與音訊/視訊有關之資料且操作結 束。另一方面’若新資料不為32個區段之整數倍,則在操 作1318中關於寫入緩衝器區塊中是否存在有效項及逾時週 期是否已到期作出一確定。若寫入緩衝器區塊中不存在有 效項或逾時週期已到期,則操作結束。另一方面,若存在 有效項且逾時週期尚未到期,則在操作1 320中執行一寫入 緩衝器區塊清除操作,直至逾時週期到期為止。 上文所描述之實施例提供用於分階段廢棄項目收集之方 法及/或系統。可將一廢棄項目收集操作拆分成多個階段 122731.doc •39- 且在多個逾時週期上執行多個階段。藉由拆分廢棄項目收 =操作廢棄項目收集操作之每一階段可在逾時週期内完 成且藉此防止逾時錯誤。 二出於理解之清楚之目的已略為詳細地描述上述實施 例仁該等實施例不限於所提供之細節。存在實施該等 施例之許多巷# _^斗· = 式。因此,所揭示之實施例應被認為是 說^生的且不是限制性的,且該等實施例不應限於本文中 出之、、田知,而可在隨附的申請專利範圍之範疇及均等 =加以修改。除非在中請專利範圍中明择規^,否則在 月專利le*圍t το件及/或操作不暗示任何特定操作次 序0 【圖式簡單說明】 圖1為-根據本發明之—實施例之非揮發性記憶體 系統的一實例之簡化方塊圖。 圖2為組織成平面之記憶趙單元陣列之簡化方塊圖。 圓3為a己憶體單元頁之簡化方塊圖。 圖4為記憶體單元之區段之簡化方塊圖。 圓5為主機與非揮發性記憶體儲存系統之 之簡化方塊圖。 、饵介面 圖為根據本發明之一實施例的用於分階段廢棄項目收 集之操作之一般概述的流程圖。 圖7展示根據本發明之一實施例的一拆分成多個部分之 廢棄項目收集操作之簡化方塊圖。 圖8為根據本發明之—實施例的用於執行—分階段廢棄 122731.doc -40- 1343522 項目收集之詳細操作之流程圖。 圖9A及圖9B為根據本發明之實施例的具有經分階段廢 棄項目收集之連續更新區塊之記憶體區塊的簡化方塊圖。 圖10A、圖i0B、圖1〇c、圖1〇D及圖ι〇Ε為根據本發明之 實施例的具有經分階段廢棄項目收集之無序更新區塊之記 憶體區塊的簡化方塊圖。 。圖11為根據本發明之—實施例的用於最佳化對寫入緩衝 益區塊之存取之操作的流程圖。 圖^_2為根據本發明之—實施例的用於將新資料暫時儲存 於一高速暫存式區塊中之操作之流程圖。 子 圖1 3為根據本發明之一實施例的與 跔夕北姑欢k 馬入心令相關 聯之非揮發性記憶體儲存系統操作之流程圖。 圖14為根據本發明之一實施例的與多區段寫入指八 聯之非揮發性記憶體儲存系統操作之流程圖。 7目關 【主要元件符號說明】 102 非揮發性記憶體儲存系統 104 主機介面 106 處理器 108 記憶體介面 110 記憶體控制器 112 隨機存取記憶體(RAM) 114 錯誤校正碼(ECC)電路 116 唯讀記憶體(ROM) 118 記憶體 122731.doc •41 · 1343522N=round [(TgC+T0)/T0] down to the nearest integer (2 〇) Equation 2_〇 shows when the write instruction is a single-segment write instruction or when non-volatile memory is stored “ When receiving new data smaller than N segments in the multi-session write command, 'write new data to the write buffer block. Referring again to Figure 14, if less than N segments are received, non-volatile The memory storage system operates according to the single-segment write command shown in FIG. 13: "," and "right receives new data of more than one segment, then = operation mo is about whether executable-write Buffer block clear operation: It is correct. For example, if the new data received in operation 13〇2 is not § abandoned project collection, or if the new data call is collected before the expiration of the configured waste project collection time period, the executable 122731 may be executed. Doc •38· Into buffer block clear operation. However, if it is bounded, it will not perform the write buffering and crying. If not! For the new data, the audio/negative lever can not be written to the right buffer to write the new data to the memory two division: if it is in the operation of the block clear operation, then in the operation (5) the write buffer area operation and - Writer Buffer $F 卩 - Staged Discarded Project Collection Execution period is performed by indecent assault until the multi-session write command is Tgc-T 总 The total busy period maintained by the memory storage system is non-volatile ttprog. Thereafter, new data is written to (for example, a "d array" in operation 1314. In this embodiment, it is possible to perform a plurality of cycles = ^Tge such as .g, four timeout periods, five timeouts: Other cycles) t perform the write buffer block shown in operation U 12 between several 13 2 before the multi-segment write command is received (eg, between 'the second sector and the third sector') After the execution of the command, in operation 1316, a determination is made as to whether the new data is an integer multiple of 32 segments. If the new data is an integer multiple of 32 segments, the new data may be For audio/video related data and the operation ends. On the other hand, if the new data is not an integer multiple of 32 segments, then in operation 1318, whether there is a valid term and a timeout period in the write buffer block Whether a determination has been made to expire. If there is no valid item in the write buffer block or the timeout period has expired, the operation ends. On the other hand, if there is a valid item and the timeout period has not expired, then Perform a write buffer block clear operation in operation 1 320 until timeout The period described above provides the method and/or system for the phased collection of abandoned projects. A waste project collection operation can be split into multiple stages 122731.doc • 39- and in multiple Multiple stages are executed on the timeout period. By splitting the discarded items, the operations are completed. Each stage of the collection process can be completed within the timeout period and thereby prevent overtime errors. The embodiments described above are described in some detail and are not limited to the details provided. There are many lanes that implement the embodiments. Therefore, the disclosed embodiments should be considered to be It is not intended to be limiting, and the embodiments are not limited to the scope of the accompanying claims, and may be modified in the scope of the appended claims.规^, otherwise the patent and the operation of the month do not imply any particular sequence of operations. [Schematic Description] FIG. 1 is a diagram of a non-volatile memory system according to an embodiment of the present invention. Simplified way of example Figure 2 is a simplified block diagram of a memory cell array organized into a plane. Circle 3 is a simplified block diagram of a memory cell page. Figure 4 is a simplified block diagram of a section of a memory cell. A simplified block diagram of a non-volatile memory storage system. A bait interface diagram is a flow diagram of a general overview of operations for phased-dump project collection in accordance with an embodiment of the present invention. Figure 7 shows a flow chart in accordance with the present invention. A simplified block diagram of an item collection operation for splitting into multiple parts of an embodiment. Figure 8 is a detailed view of the collection of items for execution - staged disposal 122731.doc -40 - 1343522 in accordance with an embodiment of the present invention. Flowchart of Operation. Figures 9A and 9B are simplified block diagrams of memory blocks having successively updated blocks collected by staged obsolescence items, in accordance with an embodiment of the present invention. 10A, FIG. 10B, FIG. 1〇c, FIG. 1D and FIG. 1 are simplified block diagrams of memory blocks having disordered update blocks collected by staged obsolescence items according to an embodiment of the present invention. . . Figure 11 is a flow diagram of an operation for optimizing access to a write buffer block in accordance with an embodiment of the present invention. Figure 2-2 is a flow diagram of an operation for temporarily storing new data in a scratchpad block in accordance with an embodiment of the present invention. FIG. 13 is a flow chart showing the operation of the non-volatile memory storage system associated with the 北 北 北 北 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 14 is a flow diagram of the operation of a non-volatile memory storage system associated with a multi-session write finger in accordance with an embodiment of the present invention. 7目关 [Main component symbol description] 102 Non-volatile memory storage system 104 Host interface 106 Processor 108 Memory interface 110 Memory controller 112 Random access memory (RAM) 114 Error correction code (ECC) circuit 116 Read Only Memory (ROM) 118 Memory 122731.doc •41 · 1343522
120 陣列邏輯 122 非揮發性記憶體單元陣列 123 記憶體單元陣列 124 匯流排 126 系統匯流排 202 平面/邏輯平面 203 平面/邏輯平面 204 平面/邏輯平面 205 平面/邏輯平面 210 區塊 211 區塊 212 區塊 213 區塊 220 區塊 221 區塊 222 區塊 223 區塊 401 頁 402 區段 404 區段 405 附加資料 406 資料 502 記憶體單元陣列 504 區塊 122731.doc -42- 1343522120 Array Logic 122 Non-Volatile Memory Cell Array 123 Memory Cell Array 124 Bus Bar 126 System Bus 202 Plane/Logic Plane 203 Plane/Logic Plane 204 Plane/Logic Plane 205 Plane/Logic Plane 210 Block 211 Block 212 Block 213 Block 220 Block 221 Block 222 Block 223 Block 401 Page 402 Section 404 Section 405 Additional Data 406 Data 502 Memory Cell Array 504 Block 122731.doc -42- 1343522
512 邏輯位址空間 702 忙錄中信號 704 多區段寫入指令 706 停止指令 750 逾時週期/第一逾時週期 751 逾時週期/第二逾時週期 752 逾時週期/第三逾時週期 760 新資料 761 新資料 762 新資料 780 廢棄項目收集之部分/第 一部分 781 廢棄項目收集之部分/第 二部分 901 新資料 902 原始區塊A 903 新資料 904 無序更新區塊A 905 新資料 906 新區塊A 907 新資料 908 寫入緩衝器區塊 909 新資料 950 第一廢棄項目收集時間週期 951 第二廢棄項目收集時間週期 952 第四廢棄項目收集時間週期 122731.doc -43 - 1343522 953 第三廢棄項目收集時間週期/第五廢棄項目收集時 間週期512 Logical Address Space 702 Busy Recording Signal 704 Multi-Segment Write Instruction 706 Stop Instruction 750 Timeout Period / First Timeout Period 751 Timeout Period / Second Timeout Period 752 Timeout Period / Third Time Period Period 760 New information 761 New information 762 New information 780 Part of the collection of abandoned projects / Part 1 781 Part of the collection of abandoned projects / Part II 901 New information 902 Original block A 903 New information 904 Unordered update block A 905 New data 906 New block A 907 New data 908 Write buffer block 909 New data 950 First waste project collection time period 951 Second waste project collection time period 952 Fourth waste project collection time period 122731.doc -43 - 1343522 953 Third Obsolete project collection time period / fifth abandoned project collection time period
960 原始區塊B960 original block B
962 新更新區塊B/無序更新區塊B962 New Update Block B/Out of Order Update Block B
964 新區塊B964 new block B
965 更新區塊C 970 第一廢棄項目收集時間週期 972 第二廢棄項目收集時間週期965 Update Block C 970 First Obsolete Project Collection Time Period 972 Second Waste Project Collection Time Period
980 原始區塊A 981 現有資料980 Original Block A 981 Existing Information
982 連續更新區塊A 983 新資料 984 新資料982 Continuous update block A 983 New information 984 New information
985 新的原始區塊A985 new original block A
986 更新區塊C986 update block C
P0 頁 P1 頁 P2 頁 P3 頁 P4 頁 P5 頁 P6 頁 P7 頁 122731.doc -44-P0 page P1 page P2 page P3 page P4 page P5 page P6 page P7 page 122731.doc -44-
Claims (1)
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/499,606 US7444461B2 (en) | 2006-08-04 | 2006-08-04 | Methods for phased garbage collection |
US11/499,598 US7451265B2 (en) | 2006-08-04 | 2006-08-04 | Non-volatile memory storage systems for phased garbage collection |
Publications (2)
Publication Number | Publication Date |
---|---|
TW200825738A TW200825738A (en) | 2008-06-16 |
TWI343522B true TWI343522B (en) | 2011-06-11 |
Family
ID=39033552
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW096126798A TWI343522B (en) | 2006-08-04 | 2007-07-23 | Non-volatile memory storage systems and methods for performing phased garbage collection |
Country Status (4)
Country | Link |
---|---|
JP (1) | JP4362549B1 (en) |
KR (1) | KR100922308B1 (en) |
TW (1) | TWI343522B (en) |
WO (1) | WO2008019218A2 (en) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4498426B2 (en) | 2008-03-01 | 2010-07-07 | 株式会社東芝 | Memory system |
EP2302637B1 (en) | 2009-09-21 | 2014-09-03 | STMicroelectronics (Rousset) SAS | Method for writing data in a non-volatile memory, protected against removal |
FR2950462A1 (en) * | 2009-09-21 | 2011-03-25 | St Microelectronics Rousset | Data writing and reading method for e.g. flash memory in chip card, involves reading wear counter from temporary information structure after metadata page is erased, incrementing read counter, and programming incremented counter in page |
US8417876B2 (en) | 2010-06-23 | 2013-04-09 | Sandisk Technologies Inc. | Use of guard bands and phased maintenance operations to avoid exceeding maximum latency requirements in non-volatile memory systems |
US8683148B2 (en) * | 2010-06-30 | 2014-03-25 | Sandisk Il Ltd. | Status indication when a maintenance operation is to be performed at a memory device |
JP2014132505A (en) * | 2010-12-16 | 2014-07-17 | Toshiba Corp | Memory system |
JP5535128B2 (en) | 2010-12-16 | 2014-07-02 | 株式会社東芝 | Memory system |
KR101157763B1 (en) * | 2010-12-27 | 2012-06-25 | 서울시립대학교 산학협력단 | Variable space page mapping method and apparatus for flash memory device with trim command processing |
US9710326B2 (en) | 2014-07-28 | 2017-07-18 | SK Hynix Inc. | Encoder by-pass with scrambler |
JP6320318B2 (en) * | 2015-02-17 | 2018-05-09 | 東芝メモリ株式会社 | Storage device and information processing system including storage device |
US9990304B2 (en) * | 2015-11-13 | 2018-06-05 | Samsung Electronics Co., Ltd | Multimode storage management system |
US11126544B2 (en) * | 2016-12-14 | 2021-09-21 | Via Technologies, Inc. | Method and apparatus for efficient garbage collection based on access probability of data |
TWI631460B (en) * | 2017-05-19 | 2018-08-01 | 群聯電子股份有限公司 | Data reading method, memory control circuit unit and memory storage device |
KR102529710B1 (en) * | 2018-02-19 | 2023-05-09 | 에스케이하이닉스 주식회사 | Memory system and operation method thereof |
US11726869B2 (en) | 2019-08-20 | 2023-08-15 | Micron Technology, Inc. | Performing error control operation on memory component for garbage collection |
US11282567B2 (en) | 2019-08-20 | 2022-03-22 | Micron Technology, Inc. | Sequential SLC read optimization |
US11281578B2 (en) | 2019-08-20 | 2022-03-22 | Micron Technology, Inc. | Garbage collection in a memory sub-system during a low battery state |
US11281392B2 (en) | 2019-08-28 | 2022-03-22 | Micron Technology, Inc. | Garbage collection in a memory component using an adjusted parameter |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100528973B1 (en) | 2003-11-05 | 2005-11-16 | 한국전자통신연구원 | Apparatus and method for garbage collection |
US7315917B2 (en) * | 2005-01-20 | 2008-01-01 | Sandisk Corporation | Scheduling of housekeeping operations in flash memory systems |
-
2007
- 2007-07-19 KR KR1020097004476A patent/KR100922308B1/en not_active IP Right Cessation
- 2007-07-19 WO PCT/US2007/073891 patent/WO2008019218A2/en active Application Filing
- 2007-07-19 JP JP2009522934A patent/JP4362549B1/en not_active Expired - Fee Related
- 2007-07-23 TW TW096126798A patent/TWI343522B/en not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
TW200825738A (en) | 2008-06-16 |
WO2008019218A3 (en) | 2008-09-12 |
KR100922308B1 (en) | 2009-10-21 |
WO2008019218A2 (en) | 2008-02-14 |
KR20090053901A (en) | 2009-05-28 |
JP2009545819A (en) | 2009-12-24 |
JP4362549B1 (en) | 2009-11-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI343522B (en) | Non-volatile memory storage systems and methods for performing phased garbage collection | |
US11675697B2 (en) | Controller for controlling non-volatile semiconductor memory and method of controlling non-volatile semiconductor memory | |
US7441071B2 (en) | Memory systems for phased garbage collection using phased garbage collection block or scratch pad block as a buffer | |
US7451265B2 (en) | Non-volatile memory storage systems for phased garbage collection | |
US7444461B2 (en) | Methods for phased garbage collection | |
JP6820248B2 (en) | Methods and systems for managing persistent storage, as well as non-temporary computer-readable media | |
TWI377574B (en) | Method of storing data and data storage device | |
Chung et al. | A survey of flash translation layer | |
US20080086619A1 (en) | Methods for phased garbage collection using phased garbage collection block or scratch pad block as a buffer | |
US7444463B2 (en) | System for phased garbage collection with state indicators | |
US7464216B2 (en) | Method for phased garbage collection with state indicators | |
US7987332B2 (en) | Methods for storing memory operations in a queue | |
CN101241446B (en) | Command scheduling method and apparatus of virtual file system embodied in nonvolatile data storage device | |
TWI503664B (en) | Mount-time unmapping of unused logical addresses in non-volatile memory systems | |
TWI309048B (en) | ||
US20080162787A1 (en) | System for block relinking | |
TW201237623A (en) | At least semi-autonomous modules in a memory system and methods | |
US20080162612A1 (en) | Method for block relinking | |
TW201131569A (en) | Non-volatile memory access method and system, and non-volatile memory controller | |
TW201111987A (en) | Memory system | |
TWI380303B (en) | Methods for storing memory operations in a queue | |
TWI376600B (en) | Memory systems and method for phased garbage collection using phased garbage collection block or scratch pad block as a buffer | |
TW200941215A (en) | Management method, management apparatus and controller for memory data access | |
TW200842577A (en) | System for block relinking | |
Kim et al. | A log-based flash translation layer for large NAND flash memory |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |