TWI658462B - 管理快閃記憶體模組的方法及相關的快閃記憶體控制器及電子裝置 - Google Patents
管理快閃記憶體模組的方法及相關的快閃記憶體控制器及電子裝置 Download PDFInfo
- Publication number
- TWI658462B TWI658462B TW107101932A TW107101932A TWI658462B TW I658462 B TWI658462 B TW I658462B TW 107101932 A TW107101932 A TW 107101932A TW 107101932 A TW107101932 A TW 107101932A TW I658462 B TWI658462 B TW I658462B
- Authority
- TW
- Taiwan
- Prior art keywords
- target block
- flash memory
- garbage collection
- collection operation
- judgment result
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing storage systems
- G06F3/0622—Securing storage systems in relation to access
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0665—Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- 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/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/349—Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2211/00—Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C2211/56—Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
- G11C2211/564—Miscellaneous aspects
- G11C2211/5641—Multilevel memory having cells with different number of storage levels
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Memory System (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
本發明揭露了一種管理一快閃記憶體模組的方法,其包含有以下步驟:當該快閃記憶體模組上電,且在該快閃記憶體模組上電前具有未完成的一垃圾收集操作時:判斷該垃圾收集操作所進行的程度以產生一判斷結果;以及根據該判斷結果以決定捨棄該垃圾收集操作的一目標區塊或是將該目標區塊的剩餘資料頁填寫無效資料。
Description
本發明係有關於快閃記憶體,尤指一種管理快閃記憶體模組的方法及相關的快閃記憶體控制器及電子裝置。
在有些快閃記憶體模組的存取中,快閃記憶體控制器會先將來自主裝置的資料寫入至快閃記憶體模組中的單層式儲存(Single-Level Cell,SLC)區塊,之後再透過垃圾收集(garbage collection)操作將這些單層式儲存區塊中的有效資料搬移至三層式儲存(Triple-Level Cell,TLC)區塊。然而,若是在垃圾收集的過程中發生斷電後回復(power off recovery,POR)或是突發斷電後回復(sudden power off recovery,SPOR)的狀況,當快閃記憶體模組重新上電之後,為了避免三層式儲存區塊中的資料因為斷電狀況而發生錯誤,通常會捨棄先前使用的三層式儲存區塊,並重新開始垃圾收集操作。然而,上述方法會降低快閃記憶體控制器的效率,尤其是當快閃記憶體模組為一立體NAND型快閃記憶體(3D NAND-type flash)模組時,由於每一個區塊都具有很多的資料頁,直接捨棄先前使用的三層式儲存區塊更是會嚴重影響效能。
因此,本發明的目的之一在於設計一種管理快閃記憶體模組的方法,其可以根據垃圾收集的進度來決定如何處理先前使用的三層式儲存區塊,以解決先前技術的問題。
在本發明的一個實施例中,揭露了一種管理一快閃記憶體模組的方法,其包含有以下步驟:當該快閃記憶體模組上電,且在該快閃記憶體模組上電前具有未完成的一垃圾收集操作時:判斷該垃圾收集操作所進行的程度以產生一判斷結果;以及根據該判斷結果以決定捨棄該垃圾收集操作的一目標區塊或是將該目標區塊的剩餘資料頁填寫無效資料。
在本發明的另一個實施例中,揭露了一種快閃記憶體控制器,其中該快閃記憶體控制器係用來存取一快閃記憶體模組,且該快閃記憶體控制器包含有一唯讀記憶體以及一微處理器,其中該唯讀記憶體用來儲存一程式碼,且該微處理器用來執行該程式碼以控制對該快閃記憶體模組之存取。在快閃記憶體控制器的操作中,當該快閃記憶體控制器以及該快閃記憶體模組上電,且在該快閃記憶體模組上電前具有未完成的一垃圾收集操作時,該微處理器判斷該垃圾收集操作所進行的程度以產生一判斷結果,並根據該判斷結果以決定捨棄該垃圾收集操作的一目標區塊或是將該目標區塊的剩餘資料頁填寫無效資料。
在本發明的另一個實施例中,揭露了一種電子裝置,其包含有一快閃記憶體模組以及一快閃記憶體控制器。當該快閃記憶體模組上電,且在該快閃記憶體模組上電前具有未完成的一垃圾收集操作時,該快閃記憶體控制器判斷該垃圾收集操作所進行的程度以產生一判斷結果,並根據該判斷結果以決定捨棄該垃圾收集操作的一目標區塊或是將該目標區塊的剩餘資料頁填寫無效資料。
第1圖為依據本發明一實施例之一種記憶裝置100的示意圖。記憶裝置100包含有一快閃記憶體(Flash Memory)模組120以及一快閃記憶體控制器110,且快閃記憶體控制器110用來存取快閃記憶體模組120。依據本實施例,快閃記憶體控制器110包含一微處理器112、一唯讀記憶體(Read Only Memory, ROM)112M、一控制邏輯114、一緩衝記憶體116、與一介面邏輯118。唯讀記憶體112M係用來儲存一程式碼112C,而微處理器112則用來執行程式碼112C以控制對快閃記憶體模組120之存取(Access)。控制邏輯114包含了一編碼器132以及一解碼器134,其中編碼器132用來對寫入到快閃記憶體模組120中的資料進行編碼以產生對應的校驗碼(或稱,錯誤更正碼(Error Correction Code),ECC),而解碼器134用來將從快閃記憶體模組120所讀出的資料進行解碼。
於典型狀況下,快閃記憶體模組120包含了多個快閃記憶體晶片,而每一個快閃記憶體晶片包含複數個區塊(Block),而快閃記憶體控制器110對快閃記憶體模組120進行抹除資料運作係以區塊為單位來進行。另外,一區塊可記錄特定數量的資料頁(Page),其中快閃記憶體控制器110對快閃記憶體模組120進行寫入資料之運作係以資料頁為單位來進行寫入。在本實施例中,快閃記憶體模組120為一立體NAND型快閃記憶體(3D NAND-type flash)模組。
實作上,透過微處理器112執行程式碼112C之快閃記憶體控制器110可利用其本身內部之元件來進行諸多控制運作,例如:利用控制邏輯114來控制快閃記憶體模組120之存取運作(尤其是對至少一區塊或至少一資料頁之存取運作)、利用緩衝記憶體116進行所需之緩衝處理、以及利用介面邏輯118來與一主裝置(Host Device)130溝通。緩衝記憶體116係以隨機存取記憶體(Random Access Memory,RAM)來實施。例如,緩衝記憶體116可以是靜態隨機存取記憶體(Static RAM,SRAM),但本發明不限於此。
在一實施例中,記憶裝置100可以是可攜式記憶裝置(例如:符合SD/MMC、CF、MS、XD標準之記憶卡),且主裝置130為一可與記憶裝置連接的電子裝置,例如手機、筆記型電腦、桌上型電腦…等等。而在另一實施例中,記憶裝置100可以是固態硬碟或符合通用快閃記憶體儲存(Universal Flash Storage,UFS)或嵌入式多媒體記憶卡(Embedded Multi Media Card,EMMC)規格之嵌入式儲存裝置,以設置在一電子裝置中,例如設置在手機、筆記型電腦、桌上型電腦之中,而此時主裝置130可以是該電子裝置的一處理器。
參考第2圖,其為根據本發明一實施例之管理快閃記憶體模組120的流程圖。在步驟200中,流程開始。在步驟202中,快閃記憶體控制器110對快閃記憶體模組120進行垃圾收集操作以釋放出區塊以供後續使用。具體來說,參考第3圖,假設快閃記憶體模組120包含了多個來源區塊310_1~310_n 以及多個目標區塊320_1、320_2,其中多個來源區塊310_1~310_n可以是單層式儲存區塊,且多個目標區塊320_1、320_2可以是三層式儲存區塊。在記憶裝置100的操作中,當快閃記憶體控制器110自主裝置130接收到寫入命令時,會先將資料依序寫入至來源區塊310_1~310_n中,而由於這些寫入的資料可能會因為後續的資料更新而使得部分變為無效資料,因此,當來源區塊310_1~310_n中可供寫入的剩餘區塊數量不多時,快閃記憶體控制器110便會將來源區塊310_1~310_n中的有效資料搬移到目標區塊320_1、320_2中,以釋放出來源區塊310_1~310_n來供後續使用。上述的操作稱為垃圾收集操作,然而,垃圾收集操作的觸發條件並不限於上述來源區塊310_1~310_n中可供寫入的剩餘區塊數量不足的情形,例如觸發條件亦可為某些來源區塊310_1~310_n的資料品質不佳、或是考量到耗損平均技術的情形。由於本領域具有通常知識者應能了解到垃圾收集操作的操作內容,故相關細節在此不贅述。
在步驟204中,在快閃記憶體控制器110依序將來源區塊310_1~310_n中的有效資料搬移到目標區塊320_1、320_2的過程中,發生了斷電後回復(POR)或是突發斷電後回復(SPOR)的情形,亦即垃圾收集操作在尚未完成的情況下因為斷電而被突然終止,且記憶裝置100之後再重新上電。
在步驟206中,在記憶裝置100重新上電之後,快閃記憶體控制器110會先判斷記憶裝置100之前是否有遭遇到不正常斷電的情形。具體來說,當記憶裝置100在正常關機/斷電的情形下,快閃記憶體控制器100會將儲存在緩衝記憶體116中的多個暫存表格及資料儲存到快閃記憶體模組120中,且其中包含了一個用來標示記憶裝置100是否正常關機的標籤(flag),因此,快閃記憶體控制器110在上電後可以透過讀取儲存在快閃記憶體模組120中的上述標籤來判斷記憶裝置100之前是否有遭遇到不正常斷電的情形,例如,當上述標籤並未被正確設定時便判斷先前有遭遇到不正常斷電。在本實施例中記憶裝置100係遭遇到不正常斷電。
接著,當快閃記憶體控制器110判斷先前有不正常斷電的情形且有尚未完成的垃圾收集操作時,快閃記憶體控制器110會再判斷先前垃圾收集所進行的程度以產生一判斷結果,其中當該判斷結果指出先前垃圾收集所進行的程度較高時,流程進入步驟208;且當該判斷結果指出先前垃圾收集所進行的程度較低時,流程進入步驟210。具體來說,假設在斷電前快閃記憶體控制器100正在依序將來源區塊310_1~310_n中的有效資料搬移至目標區塊320_1中,則快閃記憶體控制器110可以根據目標區塊320_1中所寫入之資料量,及/或來源區塊310_1~310_n中已經完成有效資料搬移的來源區塊數量,來產生該判斷結果。
在第一個範例中,快閃記憶體控制器110讀取目標區塊320_1以判斷其中已經寫入的資料量,該資料量即為已經從來源區塊310_1~310_n中搬移至目標區塊320_1的有效資料量,接著,快閃記憶體控制器110判斷該資料量是否低於一第一臨界值,若是該目標區塊320_1中的資料量低於該第一臨界值,則流程進入步驟210;反之則進入步驟208。在本實施例中,目該第一臨界值可以是任何可以用來評斷目標區塊320_1中資料量的參數,例如目標區塊320_1中已經有資料寫入的資料頁數量、或是目標區塊320_1中的儲存空間有多少比例已經寫入了資料(例如,60%或是70%)。
在第二個範例中,快閃記憶體控制器110判斷來源區塊310_1~310_n中已經完成有效資料搬移的來源區塊數量,且當已經完成有效資料搬移的來源區塊數量低於一第二臨界值時,流程進入步驟210;反之則進入步驟208。在本實施例中,該第二臨界值可以是2、3、4或任意適合的數量,以該第二臨界值為“3”來做說明,若是快閃記憶體控制器110判斷只有來源區塊310_1、310_2完成全部的有效資料搬移,則由於完成有效資料搬移的來源區塊數量(2個)低於該第二臨界值“3”,則快閃記憶體控制器110判斷先前垃圾收集所進行的程度較低;另一方面,若是快閃記憶體控制器110判斷來源區塊310_1~310_4都完成全部的有效資料搬移,則由於完成有效資料搬移的來源區塊數量(4個)不低於該第二臨界值“3”,則快閃記憶體控制器110判斷先前垃圾收集所進行的程度較高。
在第三個範例中,快閃記憶體控制器110可以同時根據目標區塊320_1中所寫入之資料量,及/或來源區塊310_1~310_n中已經完成有效資料搬移的來源區塊數量,來產生該判斷結果。具體來說,當該判斷結果指出目標區塊320_1中所寫入之資料量低於該第一臨界值時,或是已經完成有效資料搬移的來源區塊數量低於該第二臨界值時,則快閃記憶體控制器110判斷先前垃圾收集所進行的程度較低;以及當該判斷結果指出目標區塊320_1中所寫入之資料量不低於該第一臨界值時,且已經完成有效資料搬移的來源區塊數量不低於該第二臨界值時,快閃記憶體控制器110判斷先前垃圾收集所進行的程度較高。以該第一臨界值為“70%”且該第二臨界值為“3”來做說明,只有當目標區塊320_1中所寫入之資料量不低於70%,且已經完成有效資料搬移的來源區塊數量不低於“3”的情形下,快閃記憶體控制器110才會判斷先前垃圾收集所進行的程度較高而使得流程進入步驟208。
在步驟208中,由於該判斷結果指出先前垃圾收集所進行的程度較高,故代表著目標區塊320_1中已經儲存了一定數量的有效資料,因此,目標區塊320_1可以保留下來以保存其中已寫入的眾多有效資料。此外,考量到目標區塊320_1的穩定性,快閃記憶體控制器110會在目標區塊320_1的剩餘資料頁全部寫滿無效資料(dummy data)。另一方面,由於目標區塊320_1中的資料已經被保留下來,故先前已完成有效資料搬移的來源區塊(搬移至目標區塊320_1),例如四個來源區塊310_1~310_4,便可以將其中的資料抹除以釋放出儲存空間。
在步驟210中,由於該判斷結果指出先前垃圾收集所進行的程度較低,故代表著目標區塊320_1中所儲存之資料量應該不足,因此,快閃記憶體控制器110便直接捨棄目標區塊320_1,並進行另一次垃圾收集操作以將多個來源區塊310_1~310_n中的有效資料搬移至另一目標區塊。舉例來說,目標區塊320_1可以被標記為無效,並等待之後快閃記憶體控制器110空閒的時候再將目標區塊320_1內的資料抹除;此外,快閃記憶體控制器110再進行另一次垃圾收集操作以依序將來源區塊310_1~310_n中的有效資料搬移到目標區塊320_2中。
在以上的實施例中,當斷電前所正在進行的垃圾收集操作所進行的程度較低時,由於目標區塊310_1所儲存的有效資料不多,因此若是要將目標區塊310_1的剩餘資料頁全部寫滿無效資料會花費很多時間,故快閃記憶體控制器110直接將目標區塊310_1整個捨棄並重新開始進行另一次垃圾收集操作,以增進記憶裝置100的效率。另一方面,當斷電前所正在進行的垃圾收集操作所進行的程度較高時,由於目標區塊310_1已經儲存了較多的有效資料,故此時快閃記憶體控制器110將目標區塊310_1的剩餘資料頁全部寫滿無效資料,以保存先前已經儲存到目標區塊310_1中的眾多有效資料。
如上所述,透過偵測斷電前所正在進行的垃圾收集操作所進行的程度來決定如何處理目標區塊,可以有效地對區塊進行管理並提升記憶體效能。 以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
100‧‧‧記憶裝置
110‧‧‧快閃記憶體控制器
112‧‧‧微處理器
112C‧‧‧程式碼
112M‧‧‧唯讀記憶體
114‧‧‧控制邏輯
116‧‧‧緩衝記憶體
118‧‧‧介面邏輯
120‧‧‧快閃記憶體模組
130‧‧‧主裝置
132‧‧‧編碼器
134‧‧‧解碼器
200~210‧‧‧步驟
310_1~310_n‧‧‧來源區塊
320_1、320_2‧‧‧目標區塊
第1圖為依據本發明一實施例之一種記憶裝置的示意圖。 第2圖為根據本發明一實施例之管理快閃記憶體模組的流程圖。 第3圖為在垃圾收集的過程中將多個來源區塊中的有效資料搬移至多個目標區塊的示意圖。
Claims (17)
- 一種管理一快閃記憶體模組的方法,包含有:當該快閃記憶體模組上電,且在該快閃記憶體模組上電前具有未完成的一垃圾收集(garbage collection)操作時:判斷該垃圾收集操作所進行的程度以產生一判斷結果;以及根據該判斷結果以決定捨棄該垃圾收集操作的一目標區塊或是將該目標區塊的剩餘資料頁填寫無效資料;其中該垃圾收集操作係將多個來源區塊中的有效資料搬移至該目標區塊,且根據該判斷結果以決定捨棄該垃圾收集操作的該目標區塊或是將該目標區塊的剩餘資料頁填寫無效資料包含有:當該判斷結果指出該垃圾收集操作所進行的程度較低時,捨棄該目標區塊,並進行另一次垃圾收集操作以將該多個來源區塊中的有效資料搬移至另一目標區塊;當該判斷結果指出該垃圾收集操作所進行的程度較高時,將該目標區塊的剩餘資料頁填寫無效資料。
- 一種管理一快閃記憶體模組的方法,包含有:當該快閃記憶體模組上電,且在該快閃記憶體模組上電前具有未完成的一垃圾收集(garbage collection)操作時:判斷該垃圾收集操作所進行的程度以產生一判斷結果;以及根據該判斷結果以決定捨棄該垃圾收集操作的一目標區塊或是將該目標區塊的剩餘資料頁填寫無效資料;其中該垃圾收集操作係將多個來源區塊中的有效資料搬移至該目標區塊,且判斷該垃圾收集操作所進行的程度以產生該判斷結果的步驟包含有:根據該目標區塊中所寫入之資料量來產生該判斷結果。
- 如申請專利範圍第2項所述的方法,其中根據該判斷結果以決定捨棄該垃圾收集操作的該目標區塊或是將該目標區塊的剩餘資料頁填寫無效資料的步驟包含有:當該判斷結果指出該目標區塊中所寫入之資料量低於一臨界值時,捨棄該目標區塊,並進行另一次垃圾收集操作以將該多個來源區塊中的有效資料搬移至另一目標區塊;以及當該判斷結果指出該目標區塊中所寫入之資料量不低於該臨界值時,將該目標區塊的剩餘資料頁填寫無效資料。
- 如申請專利範圍第2項所述的方法,其中判斷該垃圾收集操作所進行的程度以產生該判斷結果的步驟包含有:根據該目標區塊中所寫入之資料量以及該多個來源區塊中已經完成有效資料搬移的來源區塊數量,來產生該判斷結果。
- 如申請專利範圍第4項所述的方法,其中根據該判斷結果以決定捨棄該垃圾收集操作的該目標區塊或是將該目標區塊的剩餘資料頁填寫無效資料的步驟包含有:當該判斷結果指出該目標區塊中所寫入之資料量低於一第一臨界值時,或是已經完成有效資料搬移的來源區塊數量低於一第二臨界值時,捨棄該目標區塊,並進行另一次垃圾收集操作以將該多個來源區塊中的有效資料搬移至另一目標區塊;以及當該判斷結果指出該目標區塊中所寫入之資料量不低於該第一臨界值時,且已經完成有效資料搬移的來源區塊數量不低於該第二臨界值時,將該目標區塊的剩餘資料頁填寫無效資料。
- 一種管理一快閃記憶體模組的方法,包含有:當該快閃記憶體模組上電,且在該快閃記憶體模組上電前具有未完成的一垃圾收集(garbage collection)操作時:判斷該垃圾收集操作所進行的程度以產生一判斷結果;以及根據該判斷結果以決定捨棄該垃圾收集操作的一目標區塊或是將該目標區塊的剩餘資料頁填寫無效資料;其中該垃圾收集操作係將多個來源區塊中的有效資料搬移至該目標區塊,且判斷該垃圾收集操作所進行的程度以產生該判斷結果的步驟包含有:根據該多個來源區塊中已經完成有效資料搬移的來源區塊數量,來產生該判斷結果。
- 如申請專利範圍第6項所述的方法,其中根據該判斷結果以決定捨棄該垃圾收集操作的該目標區塊或是將該目標區塊的剩餘資料頁填寫無效資料的步驟包含有:當已經完成有效資料搬移的來源區塊數量低於一臨界值時,捨棄該目標區塊,並進行另一次垃圾收集操作以將該多個來源區塊中的有效資料搬移至另一目標區塊;以及當已經完成有效資料搬移的來源區塊數量不低於該臨界值時,將該目標區塊的剩餘資料頁填寫無效資料。
- 如申請專利範圍第7項所述的方法,其中該快閃記憶體模組為一立體NAND型快閃記憶體(3D NAND-type flash)模組,該多個來源區塊為單層式儲存(Single-Level Cell,SLC)區塊,該目標區塊為三層式儲存(Triple-Level Cell,TLC)區塊,以及該臨界值為2、3或4。
- 一種快閃記憶體控制器,其中該快閃記憶體控制器係用來存取一快閃記憶體模組,且該快閃記憶體控制器包含有:一唯讀記憶體,用來儲存一程式碼;以及一微處理器,用來執行該程式碼以控制對該快閃記憶體模組之存取;其中當該快閃記憶體控制器以及該快閃記憶體模組上電,且在該快閃記憶體模組上電前具有未完成的一垃圾收集(garbage collection)操作時,該微處理器判斷該垃圾收集操作所進行的程度以產生一判斷結果,並根據該判斷結果以決定捨棄該垃圾收集操作的一目標區塊或是將該目標區塊的剩餘資料頁填寫無效資料;其中該垃圾收集操作係將多個來源區塊中的有效資料搬移至該目標區塊,且當該判斷結果指出該垃圾收集操作所進行的程度較低時,該微處理器捨棄該目標區塊,並進行另一次垃圾收集操作以將該多個來源區塊中的有效資料搬移至另一目標區塊;以及當該判斷結果指出該垃圾收集操作所進行的程度較高時,該微處理器將該目標區塊的剩餘資料頁填寫無效資料。
- 一種快閃記憶體控制器,其中該快閃記憶體控制器係用來存取一快閃記憶體模組,且該快閃記憶體控制器包含有:一唯讀記憶體,用來儲存一程式碼;以及一微處理器,用來執行該程式碼以控制對該快閃記憶體模組之存取;其中當該快閃記憶體控制器以及該快閃記憶體模組上電,且在該快閃記憶體模組上電前具有未完成的一垃圾收集(garbage collection)操作時,該微處理器判斷該垃圾收集操作所進行的程度以產生一判斷結果,並根據該判斷結果以決定捨棄該垃圾收集操作的一目標區塊或是將該目標區塊的剩餘資料頁填寫無效資料;其中該垃圾收集操作係將多個來源區塊中的有效資料搬移至該目標區塊,且該微處理器根據該目標區塊中所寫入之資料量來產生該判斷結果。
- 如申請專利範圍第10項所述的快閃記憶體控制器,其中當該判斷結果指出該目標區塊中所寫入之資料量低於一臨界值時,該微處理器捨棄該目標區塊,並進行另一次垃圾收集操作以將該多個來源區塊中的有效資料搬移至另一目標區塊;以及當該判斷結果指出該目標區塊中所寫入之資料量不低於該臨界值時,該微處理器將該目標區塊的剩餘資料頁填寫無效資料。
- 如申請專利範圍第10項所述的快閃記憶體控制器,其中該微處理器根據該目標區塊中所寫入之資料量以及該多個來源區塊中已經完成有效資料搬移的來源區塊數量,來產生該判斷結果。
- 如申請專利範圍第12項所述的快閃記憶體控制器,其中當該判斷結果指出該目標區塊中所寫入之資料量低於一第一臨界值時,或是已經完成有效資料搬移的來源區塊數量低於一第二臨界值時,該微處理器捨棄該目標區塊,並進行另一次垃圾收集操作以將該多個來源區塊中的有效資料搬移至另一目標區塊;以及當該判斷結果指出該目標區塊中所寫入之資料量不低於該第一臨界值時,且已經完成有效資料搬移的來源區塊數量不低於該第二臨界值時,該微處理器將該目標區塊的剩餘資料頁填寫無效資料。
- 一種快閃記憶體控制器,其中該快閃記憶體控制器係用來存取一快閃記憶體模組,且該快閃記憶體控制器包含有:一唯讀記憶體,用來儲存一程式碼;以及一微處理器,用來執行該程式碼以控制對該快閃記憶體模組之存取;其中當該快閃記憶體控制器以及該快閃記憶體模組上電,且在該快閃記憶體模組上電前具有未完成的一垃圾收集(garbage collection)操作時,該微處理器判斷該垃圾收集操作所進行的程度以產生一判斷結果,並根據該判斷結果以決定捨棄該垃圾收集操作的一目標區塊或是將該目標區塊的剩餘資料頁填寫無效資料;其中該垃圾收集操作係將多個來源區塊中的有效資料搬移至該目標區塊,且該微處理器根據該多個來源區塊中已經完成有效資料搬移的來源區塊數量,來產生該判斷結果。
- 如申請專利範圍第14項所述的快閃記憶體控制器,其中當已經完成有效資料搬移的來源區塊數量低於一臨界值時,該微處理器捨棄該目標區塊,並進行另一次垃圾收集操作以將該多個來源區塊中的有效資料搬移至另一目標區塊;以及當已經完成有效資料搬移的來源區塊數量不低於該臨界值時,該微處理器將該目標區塊的剩餘資料頁填寫無效資料。
- 如申請專利範圍第15項所述的快閃記憶體控制器,其中該快閃記憶體模組為一立體NAND型快閃記憶體(3D NAND-type flash)模組,該多個來源區塊為單層式儲存(Single-Level Cell,SLC)區塊,該目標區塊為三層式儲存(Triple-Level Cell,TLC)區塊,以及該臨界值為2、3或4。
- 一種電子裝置,包含有:一快閃記憶體模組;以及一快閃記憶體控制器,用來存取該快閃記憶體模組;其中當該快閃記憶體模組上電,且在該快閃記憶體模組上電前具有未完成的一垃圾收集(garbage collection)操作時,該快閃記憶體控制器判斷該垃圾收集操作所進行的程度以產生一判斷結果,並根據該判斷結果以決定捨棄該垃圾收集操作的一目標區塊或是將該目標區塊的剩餘資料頁填寫無效資料;其中該垃圾收集操作係將多個來源區塊中的有效資料搬移至該目標區塊,且當該判斷結果指出該垃圾收集操作所進行的程度較低時,該快閃記憶體控制器捨棄該目標區塊,並進行另一次垃圾收集操作以將該多個來源區塊中的有效資料搬移至另一目標區塊;以及當該判斷結果指出該垃圾收集操作所進行的程度較高時,該快閃記憶體控制器將該目標區塊的剩餘資料頁填寫無效資料。
Priority Applications (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| TW107101932A TWI658462B (zh) | 2018-01-19 | 2018-01-19 | 管理快閃記憶體模組的方法及相關的快閃記憶體控制器及電子裝置 |
| CN201810619427.8A CN110058795B (zh) | 2018-01-19 | 2018-06-11 | 管理闪存模块的方法及相关的闪存控制器及电子装置 |
| US16/006,854 US10474573B2 (en) | 2018-01-19 | 2018-06-13 | Method for managing flash memory module and associated flash memory controller and electronic device |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| TW107101932A TWI658462B (zh) | 2018-01-19 | 2018-01-19 | 管理快閃記憶體模組的方法及相關的快閃記憶體控制器及電子裝置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TWI658462B true TWI658462B (zh) | 2019-05-01 |
| TW201933369A TW201933369A (zh) | 2019-08-16 |
Family
ID=67300012
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW107101932A TWI658462B (zh) | 2018-01-19 | 2018-01-19 | 管理快閃記憶體模組的方法及相關的快閃記憶體控制器及電子裝置 |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US10474573B2 (zh) |
| CN (1) | CN110058795B (zh) |
| TW (1) | TWI658462B (zh) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TWI892468B (zh) * | 2024-02-20 | 2025-08-01 | 點序科技股份有限公司 | 非揮發性記憶體裝置及其垃圾收集方法 |
Families Citing this family (13)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR20190092054A (ko) * | 2018-01-30 | 2019-08-07 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
| US11416144B2 (en) | 2019-12-12 | 2022-08-16 | Pure Storage, Inc. | Dynamic use of segment or zone power loss protection in a flash device |
| US10915444B2 (en) * | 2018-12-27 | 2021-02-09 | Micron Technology, Inc. | Garbage collection candidate selection using block overwrite rate |
| KR20200088563A (ko) * | 2019-01-15 | 2020-07-23 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
| US11704192B2 (en) | 2019-12-12 | 2023-07-18 | Pure Storage, Inc. | Budgeting open blocks based on power loss protection |
| TWI729674B (zh) * | 2020-01-13 | 2021-06-01 | 慧榮科技股份有限公司 | 資料儲存裝置及其垃圾蒐集方法 |
| TWI748542B (zh) * | 2020-07-01 | 2021-12-01 | 慧榮科技股份有限公司 | 電子裝置、快閃記憶體控制器及快閃記憶體模組進行垃圾收集操作的方法 |
| TWI738442B (zh) * | 2020-07-29 | 2021-09-01 | 慧榮科技股份有限公司 | 資料儲存裝置與資料處理方法 |
| CN112017723B (zh) * | 2020-08-31 | 2022-11-15 | 深圳佰维存储科技股份有限公司 | 存储器的掉电测试方法、装置、可读存储介质及电子设备 |
| TWI771926B (zh) * | 2021-02-25 | 2022-07-21 | 慧榮科技股份有限公司 | 資料儲存裝置以及非揮發式記憶體控制方法 |
| CN114064516B (zh) * | 2021-11-16 | 2022-08-30 | 深圳市时创意电子有限公司 | 一种数据处理方法、装置、计算机设备及存储介质 |
| US12039178B2 (en) * | 2022-07-14 | 2024-07-16 | Micron Technology, Inc. | Apparatus with memory block management and methods for operating the same |
| KR20240173729A (ko) * | 2023-06-07 | 2024-12-16 | 에스케이하이닉스 주식회사 | 타깃 메모리 유닛에 타깃 더미 데이터를 프로그램하는 스토리지 장치 및 그 동작 방법 |
Citations (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TW201324154A (zh) * | 2011-12-05 | 2013-06-16 | Ind Tech Res Inst | 記憶體儲存系統及其中控裝置、管理方法與斷電復原方法 |
| US20150347295A1 (en) * | 2014-06-02 | 2015-12-03 | DongHyuk IHM | Method of operating a memory system using a garbage collection operation |
| US9298578B2 (en) * | 2011-09-29 | 2016-03-29 | Industry-University Cooperation Foundation Hanyang University | Method and apparatus for power loss recovery in a flash memory-based SSD |
| US20160110114A1 (en) * | 2014-10-15 | 2016-04-21 | Sangkwon Moon | Data storage device including nonvolatile memory device and operating method thereof |
| US20160267004A1 (en) * | 2015-03-09 | 2016-09-15 | Amitai Perlstein | Storage device including nonvolatile memory device and garbage collection method thereof |
| US20170255550A1 (en) * | 2016-03-07 | 2017-09-07 | SK Hynix Inc. | Data storage device and the operating method thereof |
| US20170286289A1 (en) * | 2013-08-30 | 2017-10-05 | Silicon Motion, Inc. | Data storage device and flash memory control method |
Family Cites Families (12)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7877539B2 (en) * | 2005-02-16 | 2011-01-25 | Sandisk Corporation | Direct data file storage in flash memories |
| US8407449B1 (en) * | 2010-02-26 | 2013-03-26 | Western Digital Technologies, Inc. | Non-volatile semiconductor memory storing an inverse map for rebuilding a translation table |
| US8938597B2 (en) * | 2012-10-23 | 2015-01-20 | Seagate Technology Llc | Restoring virtualized GCU state information |
| TWI498902B (zh) * | 2013-11-28 | 2015-09-01 | Phison Electronics Corp | 資料管理方法、記憶體儲存裝置及記憶體控制電路單元 |
| KR102272228B1 (ko) * | 2014-05-13 | 2021-07-06 | 삼성전자주식회사 | 불휘발성 메모리 장치, 그것을 포함하는 저장 장치 및 그것의 동작 방법 |
| US9626109B2 (en) * | 2014-12-11 | 2017-04-18 | Kabushiki Kaisha Toshiba | System and method for managing the operating parameter of a nonvolatile memory |
| CN106484308B (zh) * | 2015-08-26 | 2019-08-06 | 群联电子股份有限公司 | 数据保护方法、存储器控制电路单元及存储器储存装置 |
| US9996268B2 (en) * | 2015-12-18 | 2018-06-12 | Toshiba Memory Corporation | Memory system and control method of the same |
| CN107368257B (zh) * | 2016-05-12 | 2019-11-12 | 华为技术有限公司 | 固态存储器中的数据巡检方法及装置 |
| CN106528438B (zh) * | 2016-10-08 | 2019-08-13 | 华中科技大学 | 一种固态存储设备的分段式垃圾回收方法 |
| TWI628542B (zh) * | 2017-04-21 | 2018-07-01 | 慧榮科技股份有限公司 | 快閃記憶體的垃圾回收斷電回復方法以及使用該方法的裝置 |
| TWI643066B (zh) * | 2018-01-15 | 2018-12-01 | 慧榮科技股份有限公司 | 用來於一記憶裝置中重新使用關於垃圾收集的一目的地區塊之方法、記憶裝置及其控制器以及電子裝置 |
-
2018
- 2018-01-19 TW TW107101932A patent/TWI658462B/zh active
- 2018-06-11 CN CN201810619427.8A patent/CN110058795B/zh active Active
- 2018-06-13 US US16/006,854 patent/US10474573B2/en active Active
Patent Citations (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9298578B2 (en) * | 2011-09-29 | 2016-03-29 | Industry-University Cooperation Foundation Hanyang University | Method and apparatus for power loss recovery in a flash memory-based SSD |
| TW201324154A (zh) * | 2011-12-05 | 2013-06-16 | Ind Tech Res Inst | 記憶體儲存系統及其中控裝置、管理方法與斷電復原方法 |
| US20170286289A1 (en) * | 2013-08-30 | 2017-10-05 | Silicon Motion, Inc. | Data storage device and flash memory control method |
| US20150347295A1 (en) * | 2014-06-02 | 2015-12-03 | DongHyuk IHM | Method of operating a memory system using a garbage collection operation |
| US20160110114A1 (en) * | 2014-10-15 | 2016-04-21 | Sangkwon Moon | Data storage device including nonvolatile memory device and operating method thereof |
| US20180004653A1 (en) * | 2014-10-15 | 2018-01-04 | Sangkwon Moon | Data storage device including nonvolatile memory device and operating method thereof |
| US20160267004A1 (en) * | 2015-03-09 | 2016-09-15 | Amitai Perlstein | Storage device including nonvolatile memory device and garbage collection method thereof |
| US20170255550A1 (en) * | 2016-03-07 | 2017-09-07 | SK Hynix Inc. | Data storage device and the operating method thereof |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TWI892468B (zh) * | 2024-02-20 | 2025-08-01 | 點序科技股份有限公司 | 非揮發性記憶體裝置及其垃圾收集方法 |
Also Published As
| Publication number | Publication date |
|---|---|
| US10474573B2 (en) | 2019-11-12 |
| US20190227926A1 (en) | 2019-07-25 |
| CN110058795B (zh) | 2022-04-05 |
| TW201933369A (zh) | 2019-08-16 |
| CN110058795A (zh) | 2019-07-26 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| TWI658462B (zh) | 管理快閃記憶體模組的方法及相關的快閃記憶體控制器及電子裝置 | |
| TWI692690B (zh) | 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 | |
| CN109117383B (zh) | 管理闪存模块的方法和闪存控制器 | |
| CN111475425B (zh) | 管理闪存模块的方法及相关的闪存控制器与电子装置 | |
| CN110837340B (zh) | 闪存控制器、管理闪存模块的方法及相关的电子装置 | |
| CN104750571A (zh) | 用以进行错误纠正的方法、存储装置与存储装置的控制器 | |
| TW202001565A (zh) | 管理快閃記憶體模組的方法及相關的快閃記憶體控制器及電子裝置 | |
| CN110874187A (zh) | 数据储存装置与数据处理方法 | |
| TWI659304B (zh) | 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 | |
| TW201919049A (zh) | 記憶體管理方法以及儲存控制器 | |
| CN103778964B (zh) | 一种NAND Flash烧写数据的处理、使用方法及装置、系统 | |
| TWI608350B (zh) | 儲存裝置及其控制單元、可用於儲存裝置的資料搬移方 法 | |
| TWI591482B (zh) | 資料保護方法、記憶體控制電路單元及記憶體儲存裝置 | |
| TW202026883A (zh) | 快閃記憶體控制器、管理快閃記憶體模組的方法及相關的電子裝置 | |
| CN107506138B (zh) | 一种固态硬盘提升寿命的方法 | |
| TW201913381A (zh) | 將資料寫入至快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 | |
| TWI748542B (zh) | 電子裝置、快閃記憶體控制器及快閃記憶體模組進行垃圾收集操作的方法 | |
| CN110069362B (zh) | 数据储存装置与数据处理方法 | |
| CN104461379A (zh) | 提高nand闪存的稳定性的方法和nand闪存 | |
| TWI657339B (zh) | 管理快閃記憶體模組的方法及相關的快閃記憶體控制器 | |
| TWI670598B (zh) | 管理快閃記憶體模組的方法及相關的快閃記憶體控制器及電子裝置 | |
| TWI653630B (zh) | 存取快閃記憶體模組的方法及相關的快閃記憶體控制器及電子裝置 | |
| TWI908450B (zh) | 快閃記憶體控制器的控制方法、快閃記憶體控制器及相關的記憶裝置 | |
| TWI864944B (zh) | 控制快閃記憶體模組的方法及相關的快閃記憶體控制器與記憶裝置 | |
| TWI837829B (zh) | 存取快閃記憶體模組的方法與相關的快閃記憶體控制器及記憶裝置 |