TW202038100A - 用於快閃記憶體的寫入管理機制 - Google Patents
用於快閃記憶體的寫入管理機制 Download PDFInfo
- Publication number
- TW202038100A TW202038100A TW108111476A TW108111476A TW202038100A TW 202038100 A TW202038100 A TW 202038100A TW 108111476 A TW108111476 A TW 108111476A TW 108111476 A TW108111476 A TW 108111476A TW 202038100 A TW202038100 A TW 202038100A
- Authority
- TW
- Taiwan
- Prior art keywords
- erased
- block
- flash memory
- controller
- blocks
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/061—Improving I/O performance
-
- 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
- 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; CALCULATING OR 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; CALCULATING OR 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/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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; CALCULATING OR 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/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
- 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/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
-
- 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/7204—Capacity control, e.g. partitioning, end-of-life degradation
-
- 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)
- Human Computer Interaction (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
- Memory System (AREA)
Abstract
一種管理一快閃記憶體模組的方法,該快閃記憶體模組包含複數個區塊,該複數個區塊中之一部分屬於一備用池。該方法包含:在該備用池中預留至少一已抹除區塊以利一寫入操作之進行;監測該至少一已抹除區塊之一已抹除時間;以及當該已抹除時間超過一臨界值時,執行一替換操作以替換該至少一已抹除區塊。
Description
本發明係關於快閃記憶體,尤指一種針對快閃記憶體中之待寫入區塊進行管理的方法、控制器以及相關的儲存裝置。
一般來說,針對主機下達的寫入命令,快閃記憶體控制器會從快閃記憶體中找尋一個閒置的已抹除區塊來將資料寫入其中。然而,若快閃記憶體單元長時間處在已抹除狀態中,可能會對單元造成不可回復的物理性傷害。因此,有必須提供一種寫入管理機制來預防這種問題。
有鑑於此,本發明之一目的在於提供一種快閃記憶體的寫入管理機制。在本發明中,將從快閃記憶體的區塊中劃分一部分出來作為備用池(spare pool)。控制器將從備用池中找出區塊來寫入資料,以完成主機下達的寫入命令。其中,上述備用池中只會預留少量的已抹除區塊(erased block),其餘為已寫入區塊(programmed block)。當控制器接收到主機端的寫入命令時,控制器會從備用池中找到預留的已抹除區塊來寫入資料。並且,在寫入完成後,控制器會從備用池中找尋一個或多個的已寫入區塊,進行抹除操作,以作為新的預留區塊。如此一來,可以減少快閃記憶體的區塊中已抹除區塊的數量。
另一方面,針對每一個在備用池中預留的已抹除區塊,控制器都會建立其時間檔案(如,時戳),用以監控其維持在已抹除狀態的時間,一旦這個時間超過一個臨界值,控制器會將這個已抹除區塊進行寫入,並且從備用池中的已寫入區塊中找一個或多個區塊來替代,從而降低物理性傷害的風險。
本發明之一實施例提供一種管理一快閃記憶體模組的方法。其中,該快閃記憶體模組包含複數個區塊,且該複數個區塊中之一部分屬於一備用池。該方法包含:在該備用池中預留至少一已抹除區塊以利一寫入操作之進行;監測該至少一已抹除區塊之一已抹除時間;以及當該已抹除時間超過一臨界值時,執行一替換操作以替換該至少一已抹除區塊。
本發明之一實施例提供一種用於管理一快閃記憶體模組的控制器。其中,該快閃記憶體模組包含複數個區塊,且該複數個區塊中之一部分屬於一備用池,該控制器包含:一儲存單元與一處理單元。該儲存單元用以儲存一程式碼。該處理單元耦接於該儲存單元,並用以從該儲存單元中讀取該程式碼,以執行該程式碼,從而進行以下操作:在該備用池中預留至少一已抹除區塊以利一寫入操作之進行;監測該至少一已抹除區塊之一已抹除時間;以及當該已抹除時間超過一臨界值時,執行一替換操作以替換該至少一已抹除區塊。
本發明之一實施例提供一種儲存裝置,該儲存裝置包含:一快閃記憶體模組與一控制器。該快閃記憶體模組包含複數個區塊,且該複數個區塊中之一部分屬於一備用池。該控制器用以對快閃記憶體模組進行存取,並且包含:一儲存單元與一處理單元。該儲存單元用以儲存一程式碼。該處理單元耦接於該儲存單元,並用以從該儲存單元中讀取該程式碼,以執行該程式碼,從而進行以下操作:在該備用池中預留至少一已抹除區塊以利一寫入操作之進行;監測該至少一已抹除區塊之一已抹除時間;以及當該已抹除時間超過一臨界值時,執行一替換操作以替換該至少一已抹除區塊。
在以下內文中,描述了許多具體細節以提供閱讀者對本發明實施例的透徹理解。然而,本領域的技術人士將能理解,如何在缺少一個或多個具體細節的情況下,或者利用其他方法或元件等來實現本發明。在其他情況下,眾所皆知的結構、材料或操作不會被示出或詳細描述,從而避免模糊本發明的核心概念。
此外,說明書內文給出的任何範例或者闡釋,不應被其中使用的任何詞彙所限制或者定義。相反地,這些範例或闡釋應當被認為是針對一個特定實施例進行描述的,並且僅作為說明。本領域的技術人員將可理解,這些範例或闡釋使用的任何詞彙將可涵蓋在本說明書中其他地方給出的其他實施例。其中,用以指出這些非限制性範例的用詞包括但不限於:「例如」、「如」、「舉例來說」、「在一個實施例中」以及在「在一範例中」。
說明書內的流程圖中的流程和方塊示出了基於本發明的各種實施例的系統、方法和電腦軟體產品所能實現的架構,功能和操作。在這方面,流程圖或功能方塊圖中的每個方塊可能代表程式碼的模組,區段或者是部分,其包括用於實現指定的邏輯功能的一個或多個可執行指令。另外,功能方塊圖以及/或流程圖中的每個方塊,以及方塊的組合,基本上可以由執行指定功能或動作的專用硬體系統來實現,或專用硬體和電腦程式指令的組合來實現。這些電腦程式指令還可以存儲在電腦可讀媒體中,該媒體可以使電腦或其他可編程數據處理裝置以特定方式工作,使得存儲在電腦可讀媒體中的指令,實現流程圖以及/或功能方塊圖中的方塊所指定的功能/動作。
第1圖爲本發明實施例的示意圖。如圖所示,儲存裝置100包含一控制器120與一快閃記憶體模組130,並且受控於一主機(host device)200(儲存裝置100甚至可能為主機200的一部份)。主機200可包含至少一個中央處理器(未顯示),並透過運作一個作業系統與應用程式來控制主機200的運作,並與周邊裝置(未顯示)連動。而存儲裝置100可用來提供存儲空間給主機200,儲存運作作業系統與各種應用程式所必需的程式碼與資料。主控裝置50的範例可包含:多功能移動電話(multifunctional mobile phone)、平板電腦(tablet)、可穿戴裝置(wearable device)以及個人電腦(personal computer)例如桌上型電腦或筆記型電腦。存儲裝置100的例子可包含(但不限於):固態硬碟(solid state drive, SSD)以及各種嵌入式(embedded)存儲裝置(例如符合UFS或EMMC規格的嵌入式存儲裝置)。
控制器120可用來存取(access)快閃記憶體模組130。在一個實施例中,快閃記憶體模組130可能是一立體NAND型快閃記憶體(3D NAND-type flash),並可包含至少一個快閃記憶體晶片(Flash memory chip),但此非本發明之限制。每一個快閃記憶體晶片包含複數個區塊(Block),控制器120對快閃記憶體模組130進行資料抹除的操作是以區塊爲單位來進行。另外,一個區塊可記錄特定數量的數據頁(Page),而控制器120對快閃記憶體模組130進行資料寫入的操作是以數據頁爲單位來進行寫入。
控制器120可能包含處理電路例如微處理器122、與儲存單元124,例如唯讀記憶體(Read Only Memory, ROM),唯讀記憶體124主要用來儲存程式碼與特定資料,而微處理器122則用來執行程式碼以控制對快閃記憶體模組130的存取。另外,控制器120可能還包含有其他的介面邏輯、控制邏輯或緩衝記憶體等等,用以輔助實現下文所述的各種操作。然而,為求說明書之簡潔,在此省略不提。本領域之技術人士在閱讀下文後,應能知曉如何實現運用已知的電路與文中揭露的電路元件與架構結合,從而實現本發明實施例中所提及的各式操作與相關應用。
在本實施例中,主機200可藉由傳送主控命令(host command)與相應的邏輯位址給控制器120,從而間接地存取儲存裝置100。控制器120接收主控命令(讀取或寫入命令)與邏輯地址,並且將主控命令轉譯成記憶體操作命令,再以操作命令控制快閃記憶體模組130讀取、寫入(program)、或抹除(erase) 快閃記憶體模組130當中特定物理地址的記憶體單元(memory unit)或數據頁(page)、或區塊(block)。再者,控制器120也會執行程式碼,以及/或參考儲存單元124內的資料,從而執行一連串的操作來實現下文中將提到的特定操作。
如第2圖所示,快閃記憶體模組130包含多個區塊,這些區塊可能分布在快閃記憶體晶片130_1~130_N上。再者,快閃記憶體模組130中的區塊又可被劃分出一個備用池(spare pool)138。備用池138中可能包含區塊SB0~SBQ,這些區塊中可能沒有儲存資料,又或者儲存無效資料(已經儲存在其他區塊中,並不再被更新的資料)。在本發明中,所有由主機200發出的寫入命令,都會由控制器120從備用池138中選擇出一個或多個區塊,並根據主機200發出的寫入命令中包含的資料,進行寫入(將資料寫
入區塊的一個或多個數據頁中)。當一個或多個區塊因主機200發出的寫入命令而被寫入資料後,則會被移出備用池138,並且,控制器120會從備用池138以外的區塊DB0~DBK中,選擇一個或多個只有儲存無效資料的區塊來補充備用池138。
在本發明中,控制器120會在備用池138中預留至少一個已經處在已抹除狀態的已抹除區塊(如:區塊SB_0),這是因為區塊的抹除操作需要耗費的時間可觀,預先進行抹除可以減少寫入操作的延遲。當主機200對控制器120發出寫入命令時,控制器120會將主機端所傳送來的資料寫入至預備池138中預留的已抹除區塊SB_0中,並且,在主機端200對控制器120發出下一道寫入命令之前,控制器120將從預備池138中的已寫入(programmed)區塊SB_1~SB_Q中,找尋找至少一個區塊(如:區塊SB_3),並將其抹除後,預留為下一次寫入操作之用。
然而,如先前所提及,若區塊處在已抹除狀態的時間太長,可能會對其中的單元造成不可逆的物理性傷害。因此,本發明會對預備池中的已抹除區塊進行管理,在一定時間後,將已抹除區塊寫入資料,避免可能造成的傷害。請參考第3圖所示的流程圖,該圖繪示本發明方法之一流程,該流程至少包含以下步驟:
步驟 210:預留至少一個已抹除區塊
步驟 220:建立該至少一個已抹除區塊之時戳
步驟 230:判斷該至少一已抹除區塊之已抹除時間是否超過臨界值
步驟 240:寫入該至少一已抹除區塊
步驟 250:選取至少一已寫入區塊替換該已抹除區塊。
在步驟210中,控制器120會對預備池138之中至少一個已寫入區塊執行抹除操作,使該至少一已寫入區塊(如SB_7)由已寫入狀態(programmed state)轉換為已抹除狀態,為之後可能的寫入操作做準備。其中,步驟210可能發生在主機200下達寫入命令之前,或者是在控制器120對另一個已抹除區塊進行寫入之後。在步驟220中,控制器120建立該至少一已抹除區塊之一時戳。在步驟230之中,控制器120根據該時戳中之時間訊息與系統時間判斷是否該至少一已抹除區塊處在已抹除狀態之一已抹除時間是否超過一臨界值,此步驟的用意即為保護已抹除區塊,使其避免於受到不可恢復的物理性傷害。若步驟230的判斷結果為是,則進入步驟230;若否,則繼續停留在此步驟。在步驟240中,由於控制器120已經發現該至少一已抹除區塊之已抹除時間已經超過臨界值,代表該已抹除區塊面臨傷害的風險。因此,控制器120會對該至少一已抹除區塊進行寫入,將其由已抹除狀態轉換成已寫入狀態,避免損傷。
再者,在一實施例中,控制器120可能會利用寫入已抹除區塊的機會,同時進行一垃圾資料回收(garbage collection)操作。其中,控制器120將由區塊DB0~DBK之有效頁所蒐集來的資料,寫入該至少一已抹除區塊,從而將該至少一已抹除區塊轉換為已寫入區塊。之後,流程進入步驟250,控制器120會從預備池138中尋找至少一個已寫入區塊(如:SB_4)來替代前述的該至少一已抹除區塊,並回到步驟210,對其進行抹除操作,為之後的寫入命令做準備。
由上可知,本發明有效地保護了快閃記憶體模組130中的記憶體單元,避免其因停留在已抹除狀態中的時間過長而發生損傷。另一方面來說,由於本發明在預備池中隨時預留了已抹除區塊,使得資料寫入的延遲可以被縮短(亦即,不需要等待將已寫入區塊進行抹除的時間)。
另外,本發明之一特徵在於,控制器120對於快閃記憶體模組130的控制行為。請參考第4圖,當主機端200對控制器120下達主控命令(讀取或寫入)時,控制器120會根據主控命令中包含的存取類型、位址以及相關資料,轉換為相應的記憶體操作命令,對快閃記憶體模組130中的快閃記憶體晶片130_1~130_N進行存取。
由於本發明對於已抹除區塊的管理,係獨立於主機端200的主控命令,且根據已抹除區塊的時戳來進行。因此,即便主機端200未對控制器120下達主控命令時,也會發生因備用池138中的已抹除區塊的時戳超過臨界值,而引發已抹除區塊之替換操作並觸發垃圾資料回收操作的事件。因此,在一實施例中,控制器120可能在未收到任何主機端200的存取命令時,對快閃記憶體晶片130_1~130_N下達以下的連續指令序列:
讀取: 00h ALE 30h
寫入: 80h ALE 10h
抹除: 60h ALE D0h
首先,假設一個已抹除區塊的時戳超過時間上限,那麼將會觸發上述流程的步驟240,對已抹除區塊進行寫入。而如上所述,對已抹除區塊進行寫入可能會同時觸發垃圾資料回收操作。因此,上述指令序列中的第一道讀取指令,便是進行垃圾資料回收操作,從備用池138以外的區塊DB0~DBK中的有效頁中讀取出資料。而讀出後的資料會被送到控制器120進行錯誤糾正(error correction)處理。接著,這些處理後的資料會被寫入至已抹除區塊,也就是上述指令序列中的第二道寫入指令。最後,會進入上述流程的步驟250,從備用池中選擇另一個區塊進行抹除,以替代已抹除區塊,也就是上述指令序列中的第三道抹除指令。從第4圖下方的時序示意圖可進一步看出,主控命令會引發控制器120產生相關的記憶體操作命令,但控制器120仍會週期性地產生自發性的記憶體操作命令。因此,本發明之一特徵便是,即便主機200未對控制器120下達存取命令時,控制器120也可能會自發性地對快閃記憶體模組130發出:讀取、寫入、抹除的連續指令序列。
綜上所述,本發明透過對於備用池的妥善管理,在有效地減少寫入延遲的(藉由在備用池中預留至少一個已抹除區塊)同時,又避免潛在的記憶體單元之物理性傷害(藉由限制區塊停留在已抹除狀態的時間)。同時,本發明管理機制也進一步與垃圾資料回收操作結合,從而更合理地進行對已抹除區塊的寫入與替換。
以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
100:儲存裝置
120:控制器
122:處理單元
124:儲存單元
130:快閃記憶體模組
130_1~130_N:快閃記憶體晶片
138:預備池
DB_0~DBK、SB_0~SBQ:區塊
210~250:步驟
第1圖繪示本發明實施例之相關儲存裝置、控制器與快閃記憶體模組之架構。
第2圖繪示一快閃記憶體模組與備用池之間的關聯。
第3圖繪示本發明實施例之用於快閃記憶體之區塊寫入管理的方法的流程圖。
第4圖繪示本發明實施例中主控命令與記憶體操作命令之間的關聯。
210~250:步驟
Claims (20)
- 一種管理一快閃記憶體模組的方法,該快閃記憶體模組包含複數個區塊,該複數個區塊中之一部分屬於一備用池(spare pool),該方法包含: 在該備用池中預留至少一已抹除區塊以利一寫入操作之進行; 監測該至少一已抹除區塊之一已抹除時間;以及 當該已抹除時間超過一臨界值時,執行一替換操作以替換該至少一已抹除區塊。
- 如請求項1所述的方法,其中該備用池中包含該至少一已抹除區塊以及至少一已寫入區塊。
- 如請求項1所述的方法,其中監測該至少一已抹除區塊之該已抹除時間的步驟包含: 建立關聯於該至少一已抹除區塊的時戳;以及 定期根據該時戳中之時間資訊與該臨界值進行比對。
- 如請求項1所述的方法,其中執行該替換操作的步驟包含: 對該至少一已抹除區塊進行寫入。
- 如請求項4所述的方法,其中對該至少一已抹除區塊進行寫入的步驟包含: 對該快閃記憶體模組中的複數個區塊進行一垃圾資料回收(garbage collection)操作;以及 利用將該垃圾資料回收操作所輸出的回收資料對該至少一已抹除區塊進行寫入。
- 如請求項1所述的方法,其中執行該替換操作的步驟包含: 從該備用池中之至少一已寫入區塊中選擇一第一區塊,並對該第一區塊進行一抹除操作;以及 以該第一區塊,替換該已抹除時間超過該臨界值的該至少一已抹除區塊。
- 如請求項1所述的方法,另包含: 在未接收到一主機下達的存取命令時,自動從該快閃記憶體模組中讀取特定資料,並寫回該快閃記憶體模組中。
- 一種用於管理一快閃記憶體模組的控制器,其中該快閃記憶體模組包含複數個區塊,且該複數個區塊中之一部分屬於一備用池(spare pool),該控制器包含: 一儲存單元,用以儲存一程式碼;以及 一處理單元,耦接於該儲存單元,用以從該儲存單元中讀取該程式碼,以執行該程式碼,從而進行以下操作: 在該備用池中預留至少一已抹除區塊以利一寫入操作之進行; 監測該至少一已抹除區塊之一已抹除時間;以及 當該已抹除時間超過一臨界值時,執行一替換操作以替換該至少一已抹除區塊。
- 如請求項8所述的控制器,其中該處理單元執行該程式碼,以建立關聯於該至少一已抹除區塊的時戳;以及定期根據該時戳中之時間資訊與該臨界值進行比對。
- 如請求項8所述的控制器,其中該處理單元執行該程式碼,以對該至少一已抹除區塊進行寫入來執行該替換操作。
- 如請求項10所述的控制器,其中該處理單元執行該程式碼,以對該快閃記憶體模組中的複數個區塊進行一垃圾資料回收(garbage collection)操作;以及利用將該垃圾資料回收操作所輸出的回收資料對該至少一已抹除區塊進行寫入來執行該替換操作。
- 如請求項8所述的控制器,其中該處理單元執行該程式碼,以從該備用池中選擇至少一第一區塊,並對該至少一第一區塊進行一抹除操作;以及以該至少一第一區塊,替換該已抹除時間超過該臨界值的該至少一已抹除區塊。
- 如請求項8所述的控制器,其中該控制器受控於一主機,並且該處理單元執行該程式碼,以在未接收到該主機下達的存取命令時,自動從該快閃記憶體模組中讀取特定資料,並寫回該快閃記憶體模組中。
- 一種儲存裝置,包含: 一快閃記憶體模組,包含複數個區塊,且該複數個區塊中之一部分屬於一備用池;以及 一控制器,用以對快閃記憶體模組進行存取,包含: 一儲存單元,用以儲存一程式碼;以及 一處理單元,耦接於該儲存單元,用以從該儲存單元中讀取該程式碼,以執行該程式碼,從而進行以下操作: 在該備用池中預留至少一已抹除區塊以利一寫入操作之進行; 監測該至少一已抹除區塊之一已抹除時間;以及 當該已抹除時間超過一臨界值時,執行一替換操作以替換該至少一已抹除區塊。
- 如請求項14所述的儲存裝置,其中該備用池中包含該至少一已抹除區塊以及至少一已寫入區塊。
- 如請求項14所述的儲存裝置,其中該控制器用以建立關聯於該至少一已抹除區塊的時戳;以及定期根據該時戳中之時間資訊與該臨界值進行比對。
- 如請求項14所述的儲存裝置,其中當該已抹除時間超過該臨界值時,該控制器用以對該至少一已抹除區塊進行寫入。
- 如請求項17所述的儲存裝置,其中當該已抹除時間超過該臨界值時,該控制器對該快閃記憶體模組中的複數個區塊進行一垃圾資料回收操作;以及利用將該垃圾資料回收操作所輸出的回收資料對該至少一已抹除區塊進行寫入。
- 如請求項14所述的儲存裝置,其中當該已抹除時間超過該臨界值時,該控制器從該備用池中選擇至少一第一區塊,並對該至少一第一區塊進行一抹除操作;以及以該至少一第一區塊,替換該已抹除時間超過該臨界值的該至少一已抹除區塊。
- 如請求項14所述的儲存裝置,其中該控制器受控於一主機,並且該控制器在未接收到該主機下達的存取命令時,自動從該快閃記憶體模組中讀取特定資料,並寫回該快閃記憶體模組中。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW108111476A TWI718516B (zh) | 2019-04-01 | 2019-04-01 | 用於快閃記憶體中保護已抹除區塊的寫入管理機制 |
CN201910417730.4A CN111767007B (zh) | 2019-04-01 | 2019-05-20 | 用于闪存的写入管理机制 |
US16/735,709 US11175841B2 (en) | 2019-04-01 | 2020-01-07 | Write management of flash memory |
US17/500,966 US20220066641A1 (en) | 2019-04-01 | 2021-10-14 | Write management on flash memory |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW108111476A TWI718516B (zh) | 2019-04-01 | 2019-04-01 | 用於快閃記憶體中保護已抹除區塊的寫入管理機制 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202038100A true TW202038100A (zh) | 2020-10-16 |
TWI718516B TWI718516B (zh) | 2021-02-11 |
Family
ID=72604604
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108111476A TWI718516B (zh) | 2019-04-01 | 2019-04-01 | 用於快閃記憶體中保護已抹除區塊的寫入管理機制 |
Country Status (3)
Country | Link |
---|---|
US (2) | US11175841B2 (zh) |
CN (1) | CN111767007B (zh) |
TW (1) | TWI718516B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI832173B (zh) * | 2021-09-08 | 2024-02-11 | 廣達電腦股份有限公司 | 快閃記憶體監控系統、方法及其電腦系統 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11914882B2 (en) * | 2022-04-06 | 2024-02-27 | Dell Products L.P. | Data protection against mass deletion based on data storage period |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8706990B2 (en) * | 2003-10-28 | 2014-04-22 | Sandisk Technologies Inc. | Adaptive internal table backup for non-volatile memory system |
US7089349B2 (en) * | 2003-10-28 | 2006-08-08 | Sandisk Corporation | Internal maintenance schedule request for non-volatile memory system |
US7441071B2 (en) * | 2006-09-28 | 2008-10-21 | Sandisk Corporation | Memory systems for phased garbage collection using phased garbage collection block or scratch pad block as a buffer |
JP4461170B2 (ja) * | 2007-12-28 | 2010-05-12 | 株式会社東芝 | メモリシステム |
US8040744B2 (en) * | 2009-01-05 | 2011-10-18 | Sandisk Technologies Inc. | Spare block management of non-volatile memories |
US8694754B2 (en) * | 2011-09-09 | 2014-04-08 | Ocz Technology Group, Inc. | Non-volatile memory-based mass storage devices and methods for writing data thereto |
CN102981966B (zh) * | 2012-11-09 | 2016-04-06 | 青岛海信宽带多媒体技术有限公司 | 一种均衡分配Flash存储块的数据存储方法 |
CN103488578B (zh) * | 2012-12-28 | 2016-05-25 | 晶天电子(深圳)有限公司 | 虚拟存储设备(vmd)应用/驱动器 |
US9965199B2 (en) * | 2013-08-22 | 2018-05-08 | Sandisk Technologies Llc | Smart dynamic wear balancing between memory pools |
US9329797B2 (en) * | 2013-12-30 | 2016-05-03 | Sandisk Technologies Inc. | Method and system for adjusting block erase or program parameters based on a predicted erase life |
TWI539461B (zh) * | 2014-06-11 | 2016-06-21 | 晶豪科技股份有限公司 | 對長期循環的非揮發性位元的防止寫入時間退化的方法 |
US20150379678A1 (en) * | 2014-06-25 | 2015-12-31 | Doa'a M. Al-otoom | Techniques to Compose Memory Resources Across Devices and Reduce Transitional Latency |
US9990279B2 (en) * | 2014-12-23 | 2018-06-05 | International Business Machines Corporation | Page-level health equalization |
US10339044B2 (en) * | 2016-03-30 | 2019-07-02 | Sandisk Technologies Llc | Method and system for blending data reclamation and data integrity garbage collection |
CN108874309B (zh) * | 2018-05-25 | 2021-07-23 | 新华三技术有限公司 | 一种管理固态硬盘中物理块的方法和装置 |
-
2019
- 2019-04-01 TW TW108111476A patent/TWI718516B/zh active
- 2019-05-20 CN CN201910417730.4A patent/CN111767007B/zh active Active
-
2020
- 2020-01-07 US US16/735,709 patent/US11175841B2/en active Active
-
2021
- 2021-10-14 US US17/500,966 patent/US20220066641A1/en not_active Abandoned
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI832173B (zh) * | 2021-09-08 | 2024-02-11 | 廣達電腦股份有限公司 | 快閃記憶體監控系統、方法及其電腦系統 |
Also Published As
Publication number | Publication date |
---|---|
US20200310648A1 (en) | 2020-10-01 |
US11175841B2 (en) | 2021-11-16 |
TWI718516B (zh) | 2021-02-11 |
US20220066641A1 (en) | 2022-03-03 |
CN111767007A (zh) | 2020-10-13 |
CN111767007B (zh) | 2023-12-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102467032B1 (ko) | 메모리 스케줄링 방법 및 메모리 시스템의 동작방법 | |
US9280460B2 (en) | Data writing method, memory control circuit unit and memory storage apparatus | |
CN110908925B (zh) | 高效能垃圾收集方法以及数据存储装置及其控制器 | |
KR102094334B1 (ko) | 비휘발성 멀티-레벨 셀 메모리 시스템 및 상기 시스템에서의 적응적 데이터 백업 방법 | |
US9772797B2 (en) | Buffer memory management method, memory control circuit unit and memory storage device | |
US8510502B2 (en) | Data writing method, and memory controller and memory storage apparatus using the same | |
US9176865B2 (en) | Data writing method, memory controller, and memory storage device | |
CN107402716B (zh) | 数据写入方法、存储器控制电路单元与存储器储存装置 | |
JP2010211734A (ja) | 不揮発性メモリを用いた記憶装置 | |
US10642731B2 (en) | Memory management method and storage controller | |
US20140328127A1 (en) | Method of Managing Non-Volatile Memory and Non-Volatile Storage Device Using the Same | |
US8914587B2 (en) | Multi-threaded memory operation using block write interruption after a number or threshold of pages have been written in order to service another request | |
US9037781B2 (en) | Method for managing buffer memory, memory controllor, and memory storage device | |
KR20200137244A (ko) | 메모리 시스템 및 그것의 동작방법 | |
CN110879793A (zh) | 存储器管理方法、存储器存储装置及存储器控制电路单元 | |
TWI718516B (zh) | 用於快閃記憶體中保護已抹除區塊的寫入管理機制 | |
US20090210612A1 (en) | Memory controller, nonvolatile memory device, and nonvolatile memory system | |
US20150339069A1 (en) | Memory system and method | |
US9304906B2 (en) | Memory system, controller and control method of memory | |
US11347433B2 (en) | Method for performing sudden power off recovery management, associated memory device and controller thereof, and associated electronic device | |
CN112051971A (zh) | 数据整并方法、存储器存储装置及存储器控制电路单元 | |
TWI771854B (zh) | 用於快閃記憶體中保護已抹除區塊的寫入管理機制 | |
CN110888591B (zh) | 数据储存装置以及非挥发式存储器控制方法 | |
US10846019B2 (en) | Semiconductor device | |
TWI670598B (zh) | 管理快閃記憶體模組的方法及相關的快閃記憶體控制器及電子裝置 |