TWI466121B - 用來進行區塊管理之方法以及記憶裝置及控制器 - Google Patents
用來進行區塊管理之方法以及記憶裝置及控制器 Download PDFInfo
- Publication number
- TWI466121B TWI466121B TW099147197A TW99147197A TWI466121B TW I466121 B TWI466121 B TW I466121B TW 099147197 A TW099147197 A TW 099147197A TW 99147197 A TW99147197 A TW 99147197A TW I466121 B TWI466121 B TW I466121B
- Authority
- TW
- Taiwan
- Prior art keywords
- block
- loss
- controller
- valid data
- blocks
- Prior art date
Links
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/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/0647—Migration mechanisms
-
- 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
-
- 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/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- 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/7211—Wear leveling
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)
Description
本發明係有關於快閃記憶體(Flash Memory)之存取(Access),尤指一種用來進行區塊管理之方法以及相關之記憶裝置及其控制器。
近年來由於快閃記憶體的技術不斷地發展,各種可攜式記憶裝置(例如:符合SD/MMC、CF、MS、XD標準之記憶卡)或具備快閃記憶體之固態硬碟(Solid State Drive,SSD)被廣泛地實施於諸多應用中。因此,這些記憶裝置中之快閃記憶體的存取控制遂成為相當熱門的議題。
以常用的NAND型快閃記憶體而言,其主要可區分為單階細胞(Single Level Cell,SLC)與多階細胞(Multiple Level Cell,MLC)兩大類之快閃記憶體。單階細胞快閃記憶體中之每個被當作記憶單元的電晶體只有兩種電荷值,分別用來表示邏輯值0與邏輯值1。另外,多階細胞快閃記憶體中之每個被當作記憶單元的電晶體的儲存能力則被充分利用,係採用較高的電壓來驅動,以透過不同級別的電壓在一個電晶體中記錄兩組(或以上)位元資訊(00、01、11、10);理論上,多階細胞快閃記憶體的記錄密度可以達到單階細胞快閃記憶體的記錄密度之兩倍,這對於曾經在發展過程中遇到瓶頸的NAND型快閃記憶體之相關產業而言,是非常好的消息。
相較於單階細胞快閃記憶體,由於多階細胞快閃記憶體之價格較便宜,並且在有限的空間裡可提供較大的容量,故多階細胞快閃記憶體很快地成為市面上之可攜式記憶裝置競相採用的主流。然而,多階細胞快閃記憶體的不穩定性所導致的問題也一一浮現。為了確保記憶裝置對快閃記憶體之存取控制能符合相關規範,快閃記憶體的控制器通常備有某些管理機制以妥善地管理資料之存取。
依據相關技術,有了這些管理機制的記憶裝置還是有不足之處。舉例來說,相關技術的管理機制無法保證在快閃記憶體中進行損耗整平(Wear Leveling)運作時能達到最佳的處理效能。因此,需要一種新穎的方法來進行區塊管理,以於進行抹除運作時能適應性地選擇用來保存有效資料(Valid Data)之區塊。
因此本發明之目的之一在於提供一種用來進行區塊管理之方法以及相關之記憶裝置及其控制器,以解決上述問題。
本發明之另一目的在於提供一種用來進行區塊管理之方法以及相關之記憶裝置及其控制器,以於進行損耗整平(Wear Leveling)運作時能達到最佳的處理效能。
本發明之另一目的在於提供一種用來進行區塊管理之方法以及相關之記憶裝置及其控制器,以於進行一目標區塊之抹除運作時能適應性地選擇用來保存/儲存該目標區塊中之有效資料(Valid Data)的區塊。
本發明之較佳實施例中提供一種來進行區塊管理之方法,該方法係應用於一快閃記憶體(Flash Memory)之控制器,該快閃記憶體包含複數個區塊,該方法包含有:於該快閃記憶體之一資料區(Data Region)中之至少一部分區塊當中選擇抹除次數(Erase Count)最低之一目標區塊,作為一待抹除區塊,其中該至少一部分區塊之序號分別對應於該至少一部分區塊之最新更新的順序;以及依據該目標區塊之序號決定應當將該目標區塊中之有效資料移動/複製至一高損耗區塊(Heavily Worn Block)或一低損耗區塊(Lightly Worn Block),其中該高損耗區塊之損耗程度大於該低損耗區塊之損耗程度。
本發明於提供上述方法之同時,亦對應地提供一種一種記憶裝置,其包含有:一快閃記憶體,該快閃記憶體包含複數個區塊;以及一控制器,用來存取(Access)該快閃記憶體以及管理該複數個區塊。另外,該控制器於該快閃記憶體之一資料區中之至少一部分區塊當中選擇抹除次數最低之一目標區塊,作為一待抹除區塊,其中該至少一部分區塊之序號分別對應於該至少一部分區塊之最新更新的順序。此外,該控制器依據該目標區塊之序號決定應當將該目標區塊中之有效資料移動/複製至一高損耗區塊或一低損耗區塊,其中該高損耗區塊之損耗程度大於該低損耗區塊之損耗程度。
本發明於提供上述方法之同時,亦對應地提供一種記憶裝置之控制器,該控制器係用來存取一快閃記憶體,該快閃記憶體包含複數個區塊,該控制器包含有:一唯讀記憶體(Read Only Memory,ROM),用來儲存一程式碼;以及一微處理器,用來執行該程式碼以控制對該快閃記憶體之存取以及管理該複數個區塊。另外,透過該微處理器執行該程式碼之該控制器於該快閃記憶體之一資料區中之至少一部分區塊當中選擇抹除次數最低之一目標區塊,作為一待抹除區塊,其中該至少一部分區塊之序號分別對應於該至少一部分區塊之最新更新的順序。此外,透過該微處理器執行該程式碼之該控制器依據該目標區塊之序號決定應當將該目標區塊中之有效資料移動/複製至一高損耗區塊或一低損耗區塊,其中該高損耗區塊之損耗程度大於該低損耗區塊之損耗程度。
請參考第1圖,第1圖為依據本發明一第一實施例之一種記憶裝置100的示意圖,其中本實施例之記憶裝置100尤其係為可攜式記憶裝置(例如:符合SD/MMC、CF、MS、XD標準之記憶卡)或固態硬碟(SSD,Solid State Drive)等。記憶裝置100包含有:一快閃記憶體(Flash Memory)120,其包含複數個區塊,而該複數個區塊包含至少一資訊區塊(Block)120B;以及一控制器,用來存取(Access)快閃記憶體120,其中該控制器例如一記憶體控制器110。依據本實施例,記憶體控制器110包含一微處理器112、一唯讀記憶體(Read Only Memory,ROM)112M、一控制邏輯114、至少一緩衝記憶體116、與一介面邏輯118。另外,本實施例之唯讀記憶體112M係用來儲存一程式碼112C,而微處理器112則用來執行程式碼112C以控制對快閃記憶體120之存取。請注意到,程式碼112C亦得儲存在緩衝記憶體116或任何形式之記憶體內。
如第1圖所示,上述之至少一資訊區塊120B係用來儲存關於區塊管理之資訊,尤其是至少一索引諸如最新存取區塊索引120L。最新存取區塊索引120L可用來記錄快閃記憶體120中之最新存取區塊。例如:當上述之控制器(例如:透過微處理器112執行程式碼112C之記憶體控制器110)將資料寫入某一區塊時,該控制器可記錄/更新最新存取區塊索引120L,以指出該區塊係為最新存取區塊。又例如:當更新某一區塊時,該控制器可記錄/更新最新存取區塊索引120L,以指出該區塊係為最新存取區塊。於本實施例中,該控制器可將最新存取區塊索引120L之一先前版本儲存於快閃記憶體120,並將最新存取區塊索引120L之一複製版本儲存於緩衝記憶體116,以供動態地更新最新存取區塊索引120L。另外,該控制器可將緩衝記憶體116當中最新存取區塊索引120L之最新版本儲存至快閃記憶體120,以取代最新存取區塊索引120L之該先前版本。請注意到,資訊區塊120B中所儲存之任何資訊,均可儲存於記憶體控制器110中(例如緩衝記憶體116),或任何記憶體控制器110得取用的記憶體中。將最新存取區塊索引120L儲存於快閃記憶體120中僅為本發明之一實施例,並非本發明之限制。
實作上,透過微處理器112執行程式碼112C之記憶體控制器110可利用其本身內部之元件來進行諸多控制運作,例如:利用控制邏輯114來控制快閃記憶體120之存取運作(尤其是對至少一區塊或至少一頁之存取運作)、利用緩衝記憶體116進行所需之緩衝處理、以及利用介面邏輯118來與一主裝置(Host Device)溝通。
依據本實施例,除了能存取快閃記憶體120,該控制器還能妥善地管理上述之複數個區塊。更明確而言,於進行抹除運作時,該控制器能適應性地選擇用來保存有效資料(Valid Data)之區塊,以達到損耗整平(Wear Leveling)之最佳的處理效能。請參考第2A圖,相關細節進一步說明如下。
第2A圖為依據本發明一實施例之一種進行區塊管理之方法910的流程圖。該方法可應用於在第1圖所示之記憶裝置100,尤其是上述之控制器(例如:透過微處理器112執行程式碼112C之記憶體控制器110)。該方法說明如下:
於步驟912中,該控制器於快閃記憶體120之一資料區(Data Region)中之至少一部分區塊(例如:該資料區中之一部分或全部的區塊)當中選擇抹除次數(Erase Count)最低之一目標區塊,作為一待抹除區塊,其中該至少一部分區塊之序號分別對應於該至少一部分區塊之最新更新的順序。請注意,針對該至少一部分區塊中之任一區塊,除了其邏輯位址之外,此區塊另具有一序號,而此序號對應於此區塊之更新順序,即此區塊相對於該至少一部分區塊中之其它區塊之更新順序。依據本實施例,快閃記憶體120另包含一備用區(Spare Region)。尤其是,屬於該備用區之區塊係為自從最新一次抹除之後尚未使用的區塊,而屬於該資料區之區塊係為自從最新一次抹除之後已經使用的區塊,其中該備用區與該資料區均為針對快閃記憶體120中之各個區塊的邏輯區域劃分,而非實體區域劃分。
於步驟914中,該控制器依據該目標區塊之序號決定應當將該目標區塊中之有效資料(Valid Data)移動/複製至一高損耗區塊(Heavily Worn Block)或一低損耗區塊(Lightly Worn Block)。請注意,該高損耗區塊之損耗程度大於該低損耗區塊之損耗程度。尤其是,該高損耗區塊代表該複數個區塊中具有較高損耗程度之區塊,而該低損耗區塊代表該複數個區塊中具有較低損耗程度之區塊。實作上,該控制器可計算該目標區塊之序號與一最新存取區塊之序號之間的差值Diff,並且依據差值Diff決定應當將該目標區塊中之有效資料移動/複製至該高損耗區塊或該低損耗區塊。例如:該控制器比較差值Diff與一門檻值以決定是否將該有效資料移動/複製至該高損耗區塊;當差值Diff達到該門檻值時,該控制器將該有效資料移動/複製至該高損耗區塊。又例如:該控制器比較差值Diff與一門檻值以決定是否將該有效資料移動/複製至該低損耗區塊;當差值Diff低於該門檻值時,該控制器將該有效資料移動/複製至該低損耗區塊。
依據一實施例,諸如第2A圖所示實施例之變化例,該控制器可依據該目標區塊之序號判斷該目標區塊中之有效資料是否為冷資料(例如:不熱門的資料),以對應地決定是否將該有效資料移動/複製至該高損耗區塊,其中當該目標區塊之序號與最新存取區塊之序號之間的差值Diff達到一第一門檻值TH1時,該有效資料被判斷為冷資料,此時該控制器將該有效資料移動/複製至該高損耗區塊。如此,當將該有效資料移動/複製至該高損耗區塊時,該控制器可記錄/更新最新存取區塊索引120L,以指出該高損耗區塊係為最新存取區塊。
另外,該控制器可依據該目標區塊之序號判斷該目標區塊中之該有效資料是否為熱資料(例如:熱門的資料),以對應地決定是否將該有效資料移動/複製至該低損耗區塊,其中當該目標區塊之序號與該最新存取區塊之序號之間的差值Diff低於一第二門檻值TH2時,該有效資料被判斷為熱資料,此時該控制器將該有效資料移動/複製至該低損耗區塊。如此,當將該有效資料移動/複製至該低損耗區塊時,該控制器可記錄/更新最新存取區塊索引120L,以指出該低損耗區塊係為最新存取區塊。此外,上述之第一門檻值TH1與第二門檻值TH2,均可由控制器動態地調整。一般而言,第一門檻值TH1大於或等於第二門檻值TH2。
第2B圖繪示第2A圖所示之方法910於一實施例中的實施細節。第2B圖所示之工作流程說明如下:
於步驟932中,該控制器於該資料區中選擇一目標區塊諸如上述之目標區塊,作為一待抹除區塊。
於步驟933中,該控制器計算該目標區塊之序號與最新存取區塊之序號之間的差值Diff。
於步驟934-1中,該控制器檢查差值Diff是否達到門檻值TH1。當差值Diff達到門檻值TH1時,進入步驟936-1;否則,進入步驟934-2。
於步驟934-2中,該控制器檢查差值Diff是否低於門檻值TH2。當差值Diff低於門檻值TH2時,進入步驟936-2;否則,進入步驟936-3。
於步驟936-1中,該控制器將有效資料移動/複製至一高損耗區塊諸如上述之高損耗區塊。
於步驟936-2中,該控制器將有效資料移動/複製至一低損耗區塊諸如上述之低損耗區塊。
於步驟936-3中,該控制器將有效資料移動/複製至一低損耗區塊,尤其是依據不同的條件所選出之另一低損耗區塊,而非步驟936-2所述之低損耗區塊。實作上,該另一低損耗區塊之損耗程度可以介於步驟936-2所述之低損耗區塊之損耗程度與步驟936-1所述之高損耗區塊之損耗程度之間。
於步驟938中,該控制器抹除該目標區塊。
依據一實施例,諸如第2B圖所示實施例之一變化例,該控制器可將上述之備用區區分為至少三層,諸如一高損耗區塊層、一中損耗區塊(Averagely Worn Block)層、以及一低損耗區塊層。尤其是,步驟936-1所述之高損耗區塊係選自於該高損耗區塊層,而步驟936-2所述之低損耗區塊係選自於該低損耗區塊層,其中步驟936-3所述之另一低損耗區塊可視為一中損耗區塊,且係選自於該中損耗區塊層。
實作上,該控制器可依據該備用區中之區塊(其可稱為備用區塊)之損耗區塊,將這些區塊之任一者分類至該高損耗區塊層、該中損耗區塊層、以及該低損耗區塊層中之一者,其中該高損耗區塊層中之備用區塊之損耗程度高於該中損耗區塊層中之備用區塊之損耗程度,且該中損耗區塊層中之備用區塊之損耗程度高於該低損耗區塊層中之備用區塊之損耗程度。例如:該控制器可將抹除次數落於區間[13,20]的範圍之區塊分類至該高損耗區塊層,並將抹除次數落於區間[7,12]的範圍之區塊分類至該中損耗區塊層,且將抹除次數落於區間[1,6]的範圍之區塊分類至該低損耗區塊層。這只是為了說明的目的而已,並非對本發明之限制。依據本實施例之某些變化例,上述備用區內之各層的層數可予以改變、及/或上述之各個區間的範圍可予以改變。依據該些變化例中之一者,在上述各層的層數超過三層的狀況下,上述之高損耗區塊層可稱為最高損耗區塊(Most Heavily Worn Block)層,且上述之低損耗區塊層可稱為最低損耗區塊(Most Lightly Worn Block)層,其中各層所對應的區間對應地改變,使該控制器可依據該備用區中之區塊之損耗程度更精細地分類至各層。例如:基於損耗程度的順序(由最高者開始),該些層可包含:最高損耗區塊層、次高損耗區塊層、第三高損耗區塊層、...、中損耗區塊層、...、第三低損耗區塊層、次低損耗區塊層、最低損耗區塊層。
第2C圖繪示第2A圖所示之方法910於一實施例中的實施細節,其中本實施例係為第2B圖所示實施例之變化例。第2C圖所示之工作流程說明如下:
於步驟932中,該控制器於該資料區中選擇一目標區塊諸如上述之目標區塊,作為一待抹除區塊。
於步驟933中,該控制器計算該目標區塊之序號與最新存取區塊之序號之間的差值Diff。
於步驟934-1中,該控制器檢查差值Diff是否達到門檻值TH1。當差值Diff達到門檻值TH1時,進入步驟936-1;否則,進入步驟936-2。
於步驟936-1中,該控制器將有效資料移動/複製至一高損耗區塊諸如上述之高損耗區塊。
於步驟936-2中,該控制器將有效資料移動/複製至一低損耗區塊諸如步驟914所述之低損耗區塊。
於步驟938中,該控制器抹除該目標區塊。
依據一實施例,諸如第2C圖所示實施例之一變化例,控制器亦得動態地調整門檻值TH1。當於步驟932中,該控制器於該資料區所選擇之待抹除區塊之抹除次數太高,例如高於抹除次數門檻值THE
,則代表該區塊之抹除次數已較該資料區中之區塊(其可稱為資料區塊)的平均抹除次數高出太多,該區塊所儲存的資料有非常高的機率為熱資料。此時,控制器得動態地調高門檻值TH1,使得於步驟934-1中,該控制器檢查差值Diff是否達到門檻值TH1時,有更高的機率進入步驟936-2,以確保該些熱資料得移動至低耗損區塊。如此,該控制器可動態地調整至少一門檻值諸如門檻值TH1,以改變該目標區塊中之有效資料移動/複製至該高損耗區塊或該低損耗區塊之機率。
第3圖繪示第2A圖所示之方法910於一實施例中所涉及之資料區300中之區塊,其中這些區塊之間的箭頭代表被寫入或更新的順序,而非實體上的連接關係。於本實施例中,區塊{310-1,310-2,310-3,310-4,310-5,310-6,...,330-m0
,...,320-2,320-1}之序號分別為{SN1,SN2,SN3900,SN4800,SN4801,SN4802,...,SN9600,...,SN14998,SN15000}。第3圖中所示該些區塊的連接關係係用來表示資料區300中各區塊被儲存的順序。如第3圖中所示,最近一個被寫入資料的區塊係區塊320-1,其序號為SN15000,亦可稱其為區塊序列中的尾部。而最早被寫入資料的區塊係區塊310-1,其序號為SN1,亦可稱其為區塊序列中的頭部。關於該些區塊的先後次序寫入關係可視為一個鏈結(Link)關係,其係邏輯上的連接關係,並非實體上的連接關係。而此邏輯上的連接關係會隨著主裝置隨機寫入資料的行為而改變。由於主裝置的隨機寫入而使該鏈結中某一或某些區塊中所有的資料均已成為無效資料(例如主裝置欲更新該些資料,而使得儲存於該些區塊的舊資料成為無效資料)。則控制器將會抹除該些區塊,並將該些區塊自資料區移至備用區。此外,控制器亦需將該些區塊自鏈結中移除,並重新建立鏈結。例如,將原本鏈結於該些被移除區塊後的區塊遞補上來,以重新建立鏈結。故第3圖所示之各個序號並非全部連續,例如序號SN2後接序號SN3900,而序號SN3~SN3899已經不存在於鏈結關係中。請注意到序號SN3~SN3899並非原本即不存在於鏈結關係中,對應於序號SN3~SN3899的區塊,可能因主裝置的隨機寫入而使其中所儲存的資料變為無效資料,從而,控制器抹除該些區塊,並將該些區塊自資料區移至備用區。故控制器亦將該些區塊所對應的序號(序號SN3~SN3899)自鏈結中移除,並重新建立鏈結。
請注意,上列序號中之符號SN可以直接去除,只留下序號中的數值,以便於計算差值Diff。例如:在門檻值TH1等於7500且門檻值TH2等於1024的狀況下,區塊{310-c}諸如區塊{310-1,310-2,310-3,310-4,310-5,310-6,...,310-C}中之資料可以視為冷資料(例如,不常被主裝置更新的資料),是因為它們的序號{SN1,SN2,SN3900,SN4800,SN4801,SN4802,...}所對應的差值{Diff}(即差值{14999,14998,11100,10200,10199,10198,...})均達到門檻值TH1;而區塊{320-h}諸如區塊{320-1,320-2,...,320-H}中之資料可以視為熱資料(例如,經常被主裝置更新的資料),是因為它們的序號{SN15000,SN14998,...}所對應的差值{Diff}(即差值{0,2,...})均低於門檻值TH2;並且其餘的區塊{330-m}諸如區塊{330-1,330-2,...,330-m0
,...,330-M}可以視為中等資料,是因為它們的序號(例如:SN9600)所對應的差值{Diff}(例如:差值5400)落入區間[TH2,TH1)之範圍。這只是為了說明的目的而已,並非對本發明之限制。依據本實施例之某些變化例,在門檻值TH1等於門檻值TH2的狀況下,上述之中等資料不存在。
第4A圖與第4B圖分別繪示第2A圖所示之方法910於不同的實施例中的實施細節。
如第4A圖所示,該控制器於快閃記憶體120之備用區400中之至少一部分區塊當中選擇抹除次數低於一門檻值TH3之一區塊,作為步驟914所述之低損耗區塊,其中該低損耗區塊並非備用區400當中具有最低抹除次數之區塊(例如,該低損耗區塊之抹除次數並非0次)。尤其是,該低損耗區塊可為備用區400當中具有較低抹除次數(但非最低抹除次數)之區塊。在該目標區塊係為一熱區塊(即包含熱資料之區塊)諸如區塊320-2的狀況下,該控制器移動/複製該有效資料至該低損耗區塊;並且於移動/複製該有效資料之後,該控制器抹除目標區塊320-2,並將目標區塊320-2邏輯上地安排於備用區400。另外,該控制器將該低損耗區塊邏輯上地安排於資料區300,使該低損耗區塊邏輯上地成為第3圖所示資料區300中之區塊序列的新尾部(即第4A圖所示之新尾部區塊320-0)。
如第4B圖所示,該控制器於快閃記憶體120之備用區400中之至少一部分區塊當中選擇抹除次數達到一門檻值TH4之一區塊,作為步驟914所述之高損耗區塊。尤其是,該高損耗區塊可為備用區400當中具有較高(或最高)抹除次數之區塊。在該目標區塊係為一冷區塊(即包含冷資料之區塊)諸如區塊310-2的狀況下,該控制器移動/複製該有效資料至該高損耗區塊;並且於移動/複製該有效資料之後,該控制器抹除目標區塊310-2,並將目標區塊310-2邏輯上地安排於備用區400。另外,該控制器將該高損耗區塊邏輯上地安排於資料區300,使該高損耗區塊邏輯上地成為第3圖所示資料區300中之區塊序列的新尾部(即第4B圖所示之新尾部區塊320-0)。
本發明的好處之一是,依據本發明所實現的區塊管理能區別熱資料與冷資料,並利用較高損耗程度的區塊儲存冷資料以及利用較低損耗程度的區塊儲存熱資料。藉此保證在快閃記憶體中進行損耗整平運作時達到最佳的處理效能。相較於相關技術,本發明在不大幅地增加晶片面積及相關成本的狀況下就能達到兼顧運作效能與系統資源使用控管之目標。
以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
100...記憶裝置
110...記憶體控制器
112...微處理器
112C...程式碼
112M...唯讀記憶體
114...控制邏輯
116...緩衝記憶體
118...介面邏輯
120...快閃記憶體
120B...資訊區塊
120L...最新存取區塊索引
300...資料區
310-1,310-2,310-3,310-4,310-5,310-6,...,330-m0
,...,320-2,320-1,320-0...區塊
400...備用區
910...用來進行區塊管理之方法
912,914,932,933,934-1,934-2,936-1,936-2,936-3,938‧‧‧步驟
SN1,SN2,SN3900,SN4800,SN4801,SN4802,...,SN9600,...,SN14998,SN15000‧‧‧序號
第1圖為依據本發明一第一實施例之一種記憶裝置的示意圖。
第2A圖為依據本發明一實施例之一種進行區塊管理之方法的流程圖。
第2B圖與第2C圖分別繪示第2A圖所示之方法於不同的實施例中的實施細節。
第3圖繪示第2A圖所示之方法於一實施例中所涉及之資料區中之區塊。
第4A圖與第4B圖分別繪示第2A圖所示之方法於不同的實施例中的實施細節。
910...用來進行區塊管理之方法
912,914...步驟
Claims (28)
- 一種用來進行區塊管理之方法,該方法係應用於一快閃記憶體(Flash Memory)之控制器,該快閃記憶體包含複數個區塊,該方法包含有:於該快閃記憶體之一資料區(Data Region)中之至少一部分區塊當中選擇抹除次數(Erase Count)最低之一目標區塊,作為一待抹除區塊,其中該至少一部分區塊之序號分別對應於該至少一部分區塊之最新更新的順序;以及依據該目標區塊之序號決定應當將該目標區塊中之有效資料(Valid Data)移動/複製至一高損耗區塊(Heavily Worn Block)或一低損耗區塊(Lightly Worn Block),其中該高損耗區塊之損耗程度大於該低損耗區塊之損耗程度,以及依據該目標區塊之序號決定應當將該目標區塊中之有效資料移動/複製至該高損耗區塊或該低損耗區塊之步驟另包含:計算該目標區塊之序號與一最新存取區塊之序號之間的差值;以及依據該差值決定應當將該目標區塊中之有效資料移動/複製至該高損耗區塊或該低損耗區塊。
- 如申請專利範圍第1項所述之方法,其中依據該目標區塊之序號決定應當將該目標區塊中之有效資料移動/複製至該高損 耗區塊或該低損耗區塊之步驟另包含:比較該差值與一門檻值以決定是否將該有效資料移動/複製至該高損耗區塊。
- 如申請專利範圍第2項所述之方法,其中依據該目標區塊之序號決定應當將該目標區塊中之有效資料移動/複製至該高損耗區塊或該低損耗區塊之步驟另包含:當該差值達到該門檻值時,將該有效資料移動/複製至該高損耗區塊。
- 如申請專利範圍第1項所述之方法,其中依據該目標區塊之序號決定應當將該目標區塊中之有效資料移動/複製至該高損耗區塊或該低損耗區塊之步驟另包含:比較該差值與一門檻值以決定是否將該有效資料移動/複製至該低損耗區塊。
- 如申請專利範圍第4項所述之方法,其中據該目標區塊之序號決定應當將該目標區塊中之有效資料移動/複製至該高損耗區塊或該低損耗區塊之步驟另包含:當該差值低於該門檻值時,將該有效資料移動/複製至該低損耗區塊。
- 如申請專利範圍第4項所述之方法,其中依據該目標區塊之序 號決定應當將該目標區塊中之有效資料移動/複製至該高損耗區塊或該低損耗區塊之步驟另包含:比較該差值與該門檻值以決定是否將該有效資料移動/複製至該高損耗區塊。
- 如申請專利範圍第1項所述之方法,其另包含有:於該快閃記憶體之一備用區(Spare Region)中之至少一部分區塊當中選擇抹除次數達到一門檻值之一區塊,作為該高損耗區塊。
- 如申請專利範圍第1項所述之方法,其另包含有:於該快閃記憶體之一備用區(Spare Region)中之至少一部分區塊當中選擇抹除次數低於一門檻值之一區塊,作為該低損耗區塊,其中該低損耗區塊並非該備用區當中具有最低抹除次數之區塊。
- 如申請專利範圍第1項所述之方法,其另包含有:於移動/複製該有效資料之後,抹除該目標區塊。
- 如申請專利範圍第1項所述之方法,其中依據該目標區塊之序號決定應當將該目標區塊中之有效資料移動/複製至該高損耗區塊或該低損耗區塊之步驟另包含:依據該目標區塊之序號以及至少一門檻值決定應當將該目標 區塊中之有效資料移動/複製至該高損耗區塊或該低損耗區塊;以及動態地調整該至少一門檻值,以改變該目標區塊中之有效資料移動/複製至該高損耗區塊或該低損耗區塊之機率。
- 一種記憶裝置,其包含有:一快閃記憶體(Flash Memory),該快閃記憶體包含複數個區塊;以及一控制器,用來存取(Access)該快閃記憶體以及管理該複數個區塊,其中該控制器於該快閃記憶體之一資料區(Data Region)中之至少一部分區塊當中選擇抹除次數(Erase Count)最低之一目標區塊,作為一待抹除區塊,而該至少一部分區塊之序號分別對應於該至少一部分區塊之最新更新的順序;其中該控制器依據該目標區塊之序號決定應當將該目標區塊中之有效資料(Valid Data)移動/複製至一高損耗區塊(Heavily Worn Block)或一低損耗區塊(Lightly Worn Block),而該高損耗區塊之損耗程度大於該低損耗區塊之損耗程度;以及該控制器計算該目標區塊之序號與一最新存取區塊之序號之間的差值,以及依據該差值決定應當將該目標區塊中之有效資料移動/複製至該高損耗區塊或該低損耗區塊。
- 如申請專利範圍第11項所述之記憶裝置,其中該控制器比較該差值與一門檻值以決定是否將該有效資料移動/複製至該高損耗區塊。
- 如申請專利範圍第12項所述之記憶裝置,其中當該差值達到該門檻值時,該控制器將該有效資料移動/複製至該高損耗區塊。
- 如申請專利範圍第11項所述之記憶裝置,其中該控制器比較該差值與一門檻值以決定是否將該有效資料移動/複製至該低損耗區塊。
- 如申請專利範圍第14項所述之記憶裝置,其中當該差值低於該門檻值時,該控制器將該有效資料移動/複製至該低損耗區塊。
- 如申請專利範圍第14項所述之記憶裝置,其中該控制器比較該差值與該門檻值以決定是否將該有效資料移動/複製至該高損耗區塊。
- 如申請專利範圍第11項所述之記憶裝置,其中該控制器於該快閃記憶體之一備用區(Spare Region)中之至少一部分區塊當中選擇抹除次數達到一門檻值之一區塊,作為該高損耗區 塊。
- 如申請專利範圍第11項所述之記憶裝置,其中該控制器於該快閃記憶體之一備用區(Spare Region)中之至少一部分區塊當中選擇抹除次數低於一門檻值之一區塊,作為該低損耗區塊,而該低損耗區塊並非該備用區當中具有最低抹除次數之區塊。
- 如申請專利範圍第11項所述之記憶裝置,其中於移動/複製該有效資料之後,該控制器抹除該目標區塊。
- 一種記憶裝置之控制器,該控制器係用來存取(Access)一快閃記憶體(Flash Memory),該快閃記憶體包含複數個區塊,該控制器包含有:一唯讀記憶體(Read Only Memory,ROM),用來儲存一程式碼;以及一微處理器,用來執行該程式碼以控制對該快閃記憶體之存取以及管理該複數個區塊,其中透過該微處理器執行該程式碼之該控制器於該快閃記憶體之一資料區(Data Region)中之至少一部分區塊當中選擇抹除次數(Erase Count)最低之一目標區塊,作為一待抹除區塊,而該至少一部分區塊之序號分別對應於該至少一部分區塊之最新更新的順序; 其中透過該微處理器執行該程式碼之該控制器依據該目標區塊之序號決定應當將該目標區塊中之有效資料(Valid Data)移動/複製至一高損耗區塊(Heavily Worn Block)或一低損耗區塊(Lightly Worn Block),而該高損耗區塊之損耗程度大於該低損耗區塊之損耗程度;以及透過該微處理器執行該程式碼之該控制器計算該目標區塊之序號與一最新存取區塊之序號之間的差值,以及依據該差值決定應當將該目標區塊中之有效資料移動/複製至該高損耗區塊或該低損耗區塊。
- 如申請專利範圍第20項所述之控制器,其中透過該微處理器執行該程式碼之該控制器比較該差值與一門檻值以決定是否將該有效資料移動/複製至該高損耗區塊。
- 如申請專利範圍第21項所述之控制器,其中當該差值達到該門檻值時,透過該微處理器執行該程式碼之該控制器將該有效資料移動/複製至該高損耗區塊。
- 如申請專利範圍第20項所述之控制器,其中透過該微處理器執行該程式碼之該控制器比較該差值與一門檻值以決定是否將該有效資料移動/複製至該低損耗區塊。
- 如申請專利範圍第23項所述之控制器,其中當該差值低於該 門檻值時,透過該微處理器執行該程式碼之該控制器將該有效資料移動/複製至該低損耗區塊。
- 如申請專利範圍第23項所述之控制器,其中透過該微處理器執行該程式碼之該控制器比較該差值與該門檻值以決定是否將該有效資料移動/複製至該高損耗區塊。
- 如申請專利範圍第20項所述之控制器,其中透過該微處理器執行該程式碼之該控制器於該快閃記憶體之一備用區(Spare Region)中之至少一部分區塊當中選擇抹除次數達到一門檻值之一區塊,作為該高損耗區塊。
- 如申請專利範圍第20項所述之控制器,其中透過該微處理器執行該程式碼之該控制器於該快閃記憶體之一備用區(Spare Region)中之至少一部分區塊當中選擇抹除次數低於一門檻值之一區塊,作為該低損耗區塊,而該低損耗區塊並非該備用區當中具有最低抹除次數之區塊。
- 如申請專利範圍第20項所述之控制器,其中於移動/複製該有效資料之後,透過該微處理器執行該程式碼之該控制器抹除該目標區塊。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW099147197A TWI466121B (zh) | 2010-12-31 | 2010-12-31 | 用來進行區塊管理之方法以及記憶裝置及控制器 |
US13/180,565 US8738876B2 (en) | 2010-12-31 | 2011-07-12 | Method for performing block management, and associated memory device and controller thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW099147197A TWI466121B (zh) | 2010-12-31 | 2010-12-31 | 用來進行區塊管理之方法以及記憶裝置及控制器 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201227740A TW201227740A (en) | 2012-07-01 |
TWI466121B true TWI466121B (zh) | 2014-12-21 |
Family
ID=46381833
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW099147197A TWI466121B (zh) | 2010-12-31 | 2010-12-31 | 用來進行區塊管理之方法以及記憶裝置及控制器 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8738876B2 (zh) |
TW (1) | TWI466121B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI471862B (zh) * | 2011-08-19 | 2015-02-01 | Silicon Motion Inc | 快閃記憶體控制器 |
CA2896128C (en) | 2013-06-29 | 2018-04-03 | Huawei Technologies Co., Ltd. | Method, apparatus, and controller for managing storage array |
US9274866B2 (en) * | 2013-12-09 | 2016-03-01 | International Business Machines Corporation | Programming non-volatile memory using a relaxed dwell time |
KR20160015793A (ko) * | 2014-07-31 | 2016-02-15 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
TWI604308B (zh) | 2015-11-18 | 2017-11-01 | 慧榮科技股份有限公司 | 資料儲存裝置及其資料維護方法 |
KR20170078310A (ko) * | 2015-12-29 | 2017-07-07 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
KR102671760B1 (ko) * | 2016-12-27 | 2024-06-05 | 에스케이하이닉스 주식회사 | 컨트롤러 및 컨트롤러의 동작 방법 |
KR102233400B1 (ko) * | 2017-05-29 | 2021-03-26 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
TWI641988B (zh) * | 2017-07-21 | 2018-11-21 | 慧榮科技股份有限公司 | 用來於一記憶裝置中進行編程管理之方法以及記憶裝置及其控制器 |
CN108052287A (zh) * | 2017-12-12 | 2018-05-18 | 深圳市创维软件有限公司 | 一种非易失性存储器的分区数据管理方法、机顶盒及介质 |
TWI748410B (zh) | 2020-04-15 | 2021-12-01 | 慧榮科技股份有限公司 | 用來針對非揮發性記憶體進行區塊管理的方法以及設備 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010034809A1 (en) * | 1995-09-28 | 2001-10-25 | Takeshi Ogawa | Selecting erase method based on type of power supply for flash eeprom |
US20100017555A1 (en) * | 2008-07-18 | 2010-01-21 | Li-Pin Chang | Memory storage device and control method thereof |
US20100174845A1 (en) * | 2009-01-05 | 2010-07-08 | Sergey Anatolievich Gorobets | Wear Leveling for Non-Volatile Memories: Maintenance of Experience Count and Passive Techniques |
US20100228907A1 (en) * | 2009-03-03 | 2010-09-09 | Yang-Chih Shen | Method of evenly using a plurality of blocks of a flash memory, and associated memory device and controller thereof |
-
2010
- 2010-12-31 TW TW099147197A patent/TWI466121B/zh active
-
2011
- 2011-07-12 US US13/180,565 patent/US8738876B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010034809A1 (en) * | 1995-09-28 | 2001-10-25 | Takeshi Ogawa | Selecting erase method based on type of power supply for flash eeprom |
US6604168B2 (en) * | 1995-09-28 | 2003-08-05 | Canon Kabushiki Kaisha | Flash eeprom management using ratio of used to unused sectors |
US20100017555A1 (en) * | 2008-07-18 | 2010-01-21 | Li-Pin Chang | Memory storage device and control method thereof |
US20100174845A1 (en) * | 2009-01-05 | 2010-07-08 | Sergey Anatolievich Gorobets | Wear Leveling for Non-Volatile Memories: Maintenance of Experience Count and Passive Techniques |
US20100228907A1 (en) * | 2009-03-03 | 2010-09-09 | Yang-Chih Shen | Method of evenly using a plurality of blocks of a flash memory, and associated memory device and controller thereof |
Also Published As
Publication number | Publication date |
---|---|
TW201227740A (en) | 2012-07-01 |
US20120173796A1 (en) | 2012-07-05 |
US8738876B2 (en) | 2014-05-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI466121B (zh) | 用來進行區塊管理之方法以及記憶裝置及控制器 | |
TWI652679B (zh) | 記憶體控制器、記憶體系統及控制方法 | |
TWI437439B (zh) | 用來以動態門檻進行區塊管理之方法及記憶裝置及控制器 | |
TWI446345B (zh) | 用來進行區塊管理之方法以及記憶裝置及控制器 | |
CN107526543B (zh) | 形性存储设备 | |
WO2021008220A1 (en) | Systems and methods for data storage system | |
CN105487986B (zh) | 考虑总字节写入需求时设置高速缓冲存储器的大小 | |
JP6266019B2 (ja) | データストレージシステム向けの優先度に基づくガベージコレクション | |
US9098395B2 (en) | Logical block management method for a flash memory and control circuit storage system using the same | |
TWI425357B (zh) | 用來進行區塊管理之方法以及記憶裝置及控制器 | |
US9639463B1 (en) | Heuristic aware garbage collection scheme in storage systems | |
CN109542354B (zh) | 一种基于擦除上限的磨损均衡方法、装置及设备 | |
US9274943B2 (en) | Storage unit management method, memory controller and memory storage device using the same | |
US10915443B2 (en) | Allocation of overprovisioned blocks for minimizing write amplification in solid state drives | |
KR20110110720A (ko) | 고체 상태 드라이브에서의 웨어 레벨링을 위한 방법 및 시스템 | |
CN112114742B (zh) | 数据储存装置与数据处理方法 | |
TWI437569B (zh) | 用來管理一快閃記憶體的複數個區塊之方法以及相關之記憶裝置及其控制器 | |
CN113535074B (zh) | 用来针对非易失性存储器进行区块管理的方法以及设备 | |
CN111538675A (zh) | 使用块盖写率进行无用单元收集候选对象选择 | |
US10489076B2 (en) | Morphic storage device | |
CN111381776A (zh) | 用于存储器装置的方法、系统和计算机可读媒体 | |
US20220171562A1 (en) | Garbage collection in a memory component using an adjusted parameter | |
CN105955672B (zh) | 用于灵活控制损耗均衡的固态存储系统及方法 | |
CN102637145B (zh) | 用来进行区块管理的方法、记忆装置及其控制器 | |
CN114303125B (zh) | 在低电池电量状态期间存储器子系统中的垃圾收集 |