TWI446345B - 用來進行區塊管理之方法以及記憶裝置及控制器 - Google Patents
用來進行區塊管理之方法以及記憶裝置及控制器 Download PDFInfo
- Publication number
- TWI446345B TWI446345B TW99147196A TW99147196A TWI446345B TW I446345 B TWI446345 B TW I446345B TW 99147196 A TW99147196 A TW 99147196A TW 99147196 A TW99147196 A TW 99147196A TW I446345 B TWI446345 B TW I446345B
- Authority
- TW
- Taiwan
- Prior art keywords
- controller
- block
- candidate
- channels
- valid
- Prior art date
Links
Classifications
-
- 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
- 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; 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/7208—Multiple device management, e.g. distributing data over multiple flash devices
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型快閃記憶體之相關產業而言,是非常好的消息。
相較於單階細胞快閃記憶體,由於多階細胞快閃記憶體之價格較便宜,並且在有限的空間裡可提供較大的容量,故多階細胞快閃記憶體很快地成為市面上之可攜式記憶裝置競相採用的主流。然而,多階細胞快閃記憶體的不穩定性所導致的問題也一一浮現。為了確保記憶裝置對快閃記憶體之存取控制能符合相關規範,快閃記憶體的控制器通常備有某些管理機制以妥善地管理資料之存取。
依據相關技術,有了這些管理機制的記憶裝置還是有不足之處。舉例來說,相關技術的管理機制無法保證在搭配多通道的快閃記憶體進行清除運作時能達到最佳的處理效能。尤其是,於針對一超區塊(Meta Block)進行一清除運作之期間,若該超區塊中在某一通道沒有有效頁(Valid Page),則在移動/複製該超區塊中之有效資料時該通道處於閒置(Idle)狀態。因此,需要一種新穎的方法來進行區塊管理,以於進行清除運作時能達到最佳的處理效能。
因此本發明之目的之一在於提供一種用來進行區塊管理之方法以及相關之記憶裝置及其控制器,以解決上述問題。
本發明之另一目的在於提供一種用來進行區塊管理之方法以及相關之記憶裝置及其控制器,以於進行清除運作時能達到最佳的處理效能。
本發明之較佳實施例中提供一種用來進行區塊管理之方法,該方法係應用於具有多通道(Channel)的快閃記憶體(Flash Memory)之控制器,該快閃記憶體包含分別對應於該些通道之複數個區塊,該方法包含有:選擇具有至少一有效頁(Valid Page)之至少一超區塊(Meta Block)作為至少一候選超區塊以供清除,並且累積(Accumulate)該至少一候選超區塊中分別對應於該些通道之區塊的各個有效頁數量(Valid Page Count),以產生分別對應於該些通道之複數個累積值,其中每一超區塊中之區塊分別對應於該些通道,且每一有效頁的資料包含有效資料;以及當偵測到該些累積值均達到一第一門檻值時,針對所有的候選超區塊觸發一清除運作,以於進行該清除運作之期間同時地移動/複製分別對應於該些通道之有效資料。
本發明於提供上述方法之同時,亦對應地提供一種記憶裝置,其包含有:具有多通道之一快閃記憶體,該快閃記憶體包含分別對應於該些通道之複數個區塊;以及一控制器,用來存取(Access)該快閃記憶體以及管理該複數個區塊。另外,該控制器選擇具有至少一有效頁之至少一超區塊作為至少一候選超區塊以供清除,並且累積該至少一候選超區塊中分別對應於該些通道之區塊的各個有效頁數量,以產生分別對應於該些通道之複數個累積值,其中每一超區塊中之區塊分別對應於該些通道,且每一有效頁的資料包含有效資料。此外,當偵測到該些累積值均達到一第一門檻值時,該控制器針對所有的候選超區塊觸發一清除運作,以於進行該清除運作之期間同時地移動/複製分別對應於該些通道之有效資料。
本發明於提供上述方法之同時,亦對應地提供一種記憶裝置之控制器,該控制器係用來存取具有多通道之一快閃記憶體,該快閃記憶體包含分別對應於該些通道之複數個區塊,該控制器包含有:一唯讀記憶體(Read Only Memory,ROM),用來儲存一程式碼;以及一微處理器,用來執行該程式碼以控制對該快閃記憶體之存取以及管理該複數個區塊。另外,透過該微處理器執行該程式碼之該控制器選擇具有至少一有效頁之至少一超區塊作為至少一候選超區塊以供清除,並且累積該至少一候選超區塊中分別對應於該些通道之區塊的各個有效頁數量,以產生分別對應於該些通道之複數個累積值,其中每一超區塊中之區塊分別對應於該些通道,且每一有效頁的資料包含有效資料。此外,當偵測到該些累積值均達到一第一門檻值時,透過該微處理器執行該程式碼之該控制器針對所有的候選超區塊觸發一清除運作,以於進行該清除運作之期間同時地移動/複製分別對應於該些通道之有效資料。
請參考第1A圖,第1A圖為依據本發明一第一實施例之一種記憶裝置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或任何形式之記憶體內。
如第1A圖所示,上述之至少一資訊區塊120B係用來儲存關於區塊管理之資訊,尤其是一有效頁數量(Valid Page Count)表120V與一清除清單(Clean List)120L。有效頁數量表120V可用來記錄快閃記憶體120中之有效頁(Valid Page)之數量與分佈;實作上,有效頁數量表120V之記錄方式不拘,可採用各種不同的記錄方式。依據有效頁數量表120V,上述之控制器(例如:透過微處理器112執行程式碼112C之記憶體控制器110)能迅速地得知屬於同一超區塊(Meta Block)之各個區塊各自的有效頁數量。另外,清除清單120L可用來動態地記錄預計要被清除之某些超區塊之索引。在某(些)條件滿足時,該控制器可迅速地清除於清除清單120L中之索引所指出的超區塊。例如:該控制器可將這些超區塊中之有效資料移動/複製至別處,並將這些超區塊抹除。請注意到,資訊區塊120B中所儲存之任何資訊,均可儲存於記憶體控制器110中(例如緩衝記憶體116),或任何記憶體控制器110得取用的記憶體中。將有效頁數量表120V與清除清單120L儲存於快閃記憶體120中僅為本發明之一實施例,並非本發明之限制。
依據本實施例,緩衝記憶體116包含緩衝器Buf(0)與Buf(1)。例如:緩衝器Buf(0)與Buf(1)可分別為緩衝記憶體116中之複數個緩衝區域。又例如:上述之至少一緩衝記憶體116包含複數個緩衝記憶體,可分別用來實施緩衝器Buf(0)與Buf(1)。於本實施例中,上述之控制器(例如:透過微處理器112執行程式碼112C之記憶體控制器110)可將有效頁數量表120V(全部或一部分)之一先前版本儲存於快閃記憶體120,並將有效頁數量表120V之一複製版本儲存於緩衝器Buf(0),以供動態地更新有效頁數量表120V。另外,該控制器可將緩衝器Buf(0)當中有效頁數量表120V之最新版本儲存至快閃記憶體120,以取代有效頁數量表120V之該先前版本。相仿地,該控制器可將清除清單120L(全部或一部分)之一先前版本儲存於快閃記憶體120,並將清除清單120L之一複製版本儲存於緩衝器Buf(1),以供動態地更新清除清單120L。另外,該控制器可將緩衝器Buf(1)當中清除清單120L之最新版本儲存至快閃記憶體120,以取代清除清單120L之該先前版本。這只是為了說明的目的而已,並非對本發明之限制。只要不妨礙本發明之實施,上述之更新/取代運作可針對有效頁數量表120V與清除清單120L中之任一者的一部分或全部來進行。
第1B圖為第1A圖所示之記憶裝置100於一實施例中的實施細節。如第1B圖所示,上述之快閃記憶體120包含複數個快閃記憶體晶片諸如快閃記憶體晶片120-0、120-1、...、與120-(N-1),其中快閃記憶體120透過多通道(Channel)諸如通道Ch(0)、Ch(1)、...、與Ch(N-1)與記憶體控制器110溝通,而該些快閃記憶體晶片諸如快閃記憶體晶片120-0、120-1、...、與120-(N-1)分別對應於該些通道。於典型狀況下,除了上述之至少一資訊區塊120B,快閃記憶體120另包含分別對應於該些通道之複數個區塊,而該控制器(例如:透過微處理器112執行程式碼112C之記憶體控制器110)對快閃記憶體晶片執行抹除時,最小的抹除單位得以區塊為單位來進行抹除。而在本實施例中,該控制器係以一超區塊為單位進行抹除。其中,一超區塊可包含對應於不同通道之複數個區塊,例如一超區塊包含快閃記憶體晶片120-0中之一個區塊、快閃記憶體晶片120-1中之一個區塊、...、與快閃記憶體晶片120-(N-1)中之一個區塊。另外,一區塊可記錄特定數量的頁(Page),其中該控制器對每一快閃記憶體晶片進行寫入時,最小的寫入單位係以頁為單位來進行寫入。
實作上,透過微處理器112執行程式碼112C之記憶體控制器110可利用其本身內部之元件來進行諸多控制運作,例如:利用控制邏輯114來控制每一快閃記憶體晶片之存取運作(尤其是對至少一區塊或至少一頁之存取運作)、利用緩衝記憶體116進行所需之緩衝處理、以及利用介面邏輯118來與一主裝置(Host Device)溝通。
依據本實施例,除了能存取快閃記憶體120,該控制器還能妥善地管理上述之複數個區塊。更明確而言,該控制器可動態地選擇某(些)超區塊作為候選超區塊以供清除,並且動態地更新清除清單120L,以供用來作為清除超區塊時之參考。另外,該控制器可動態地更新有效頁數量表120V,以供進行區塊管理,且可供作為清除超區塊時之參考。請參考第2A圖,相關細節進一步說明如下。
第2A圖為依據本發明一實施例之一種進行區塊管理之方法910的流程圖。該方法可應用於在第1A圖至第1B圖所示之各個實施例(及相關的變化例)中之任一者當中之記憶裝置100,尤其是搭配多通道的快閃記憶體120之控制器諸如上述之控制器(例如:透過微處理器112執行程式碼112C之記憶體控制器110)。該方法說明如下:
於步驟912中,該控制器選擇具有至少一有效頁之至少一超區塊M(m)(例如:一個超區塊M(m)或多個超區塊{M(m)};其中每一超區塊M(m)具有至少一有效頁)作為至少一候選超區塊以供清除,並且累積(Accumulate)上述之至少一候選超區塊中分別對應於該些通道{Ch(0),Ch(1),...,Ch(N-1)}之區塊的各個有效頁數量{VPCm
(0),VPCm
(1),...,VPCm
(N-1)},以產生分別對應於該些通道{Ch(0),Ch(1),...,Ch(N-1)}之複數個累積值{VPCA
(0),VPCA
(1),...,VPCA
(N-1)},其中每一超區塊中之各區塊分別對應於該些通道,且每一有效頁的資料包含有效資料。尤其是,於複數個超區塊(例如被該控制器接連地檢查的數個超區塊)中,該控制器可選擇具有最少有效頁之一超區塊作為候選超區塊,其中該超區塊具有至少一有效頁之要求仍然必須滿足。例如:在上述之至少一超區塊僅為一個超區塊M(m)的狀況下,該控制器可在被該控制器本身接連地檢查的一批超區塊中選擇具有最少有效頁之一超區塊作為候選超區塊。又例如:在上述之至少一超區塊為多個超區塊{M(m)}的狀況下,該控制器可在被該控制器本身接連地檢查之一第一批超區塊中選擇具有最少有效頁之一超區塊作為一第一候選超區塊,且在被該控制器本身接連地檢查之一第二批超區塊中選擇具有最少有效頁之一超區塊作為一第二候選超區塊,依此類推。
依據本實施例,該控制器將上述之至少一超區塊M(m)之至少一索引m(例如:一個索引m或多個索引{m})暫時地儲存於清除清單120L,以將該至少一超區塊M(m)標示為該至少一候選超區塊。例如:上述之至少一索引m對應於至少一組實體區塊位址;尤其是,上述之至少一組實體區塊位址係為超區塊M(m)中之各個區塊之實體位址,其中索引m與該組實體區塊位址之間的關係之記錄方式不拘,可採用各種不同的記錄方式。這只是為了說明的目的而已,並非對本發明之限制。依據本實施例之不同的變化例,上述之至少一索引m代表至少一組實體區塊位址、及/或上述之至少一索引m對應於至少一組實體區塊位址。請注意到,上述之一組實體區塊位址亦可以一組邏輯區塊位址取代,例如:超區塊M(m)中之各個區塊所對應之邏輯區塊位址。
於步驟914中,當偵測到該些累積值{VPCA
(0),VPCA
(1),...,VPCA
(N-1)}均達到一第一門檻值諸如門檻值THA
時,該控制器針對所有的候選超區塊觸發一清除運作,以於進行該清除運作之期間同時地移動/複製分別對應於該些通道{Ch(0),Ch(1),...,Ch(N-1)}之有效資料,尤其是同時地移動/複製至另外至少一超區塊。依據本實施例,該控制器可利用快閃記憶體120中之一資料區與一備用區(Spare Region)針對各個超區塊之使用狀態對該些超區塊進行分類,其中資料區與備用區代表邏輯上的區域劃分,而非實體上的區域劃分。請注意,被分類於資料區之任一超區塊並非空白超區塊,而被分類於備用區之任一超區塊係為空白超區塊。當需要新的空白超區塊以供寫入時,該控制器可將一超區塊從備用區提取(Pop)以進行寫入運作。為了避免備用區中之超區塊的數量不足,該控制器可預先抹除資料區中之一部分超區塊以將這些超區塊重新分類至備用區,其中藉由進行上述之清除運作,該控制器可避免這些超區塊中之任何有效資料(若存在)遺失,尤其是避免上述之候選超區塊中之有效資料遺失。
例如:該些候選超區塊之索引{m}分別被暫時地儲存於清除清單120L。當偵測到該些累積值{VPCA
(0),VPCA
(1),...,VPCA
(N-1)}均達到門檻值THA
時,該控制器針對該些索引{m}所指出之該些候選超區塊觸發該清除運作,以於進行該清除運作之期間同時地移動/複製分別對應於該些通道{Ch(0),Ch(1),...,Ch(N-1)}之有效資料。於是,藉由同時進行各個通道{Ch(0),Ch(1),...,Ch(N-1)}的移動/複製運作,本發明可以有效率地移動/複製涉及該清除運作之全部的有效資料,使得各個通道的移動/複製運作被同時進行的時間TALL_CH
對涉及該清除運作之全部的移動/複製運作的總時間TTOTAL
之比率RALL_CH
可以遠高於相關技術,在理想狀況下甚至可以趨近於1。因此,本發明能大幅地提昇記憶裝置之整體處理效能。
實作上,於觸發該清除運作之後,該控制器可將前述之至少一索引m從清除清單120L移除,尤其是將步驟914所述之該些候選超區塊之索引{m}從清除清單120L移除。在將有效資料移動/複製到別處(例如其它超區塊)之後,該控制器可將該些候選超區塊抹除以產生新的空白超區塊,其中新的空白超區塊內之每一區塊均為空白區塊。另外,門檻值THA
可為固定的數值。這只是為了說明的目的而已,並非對本發明之限制。依據本實施例之不同的變化例,該控制器可預先設定門檻值THA
、及/或動態地調整門檻值THA
,來控制上述之比率RALL_CH
。
依據本實施例之一變化例,該控制器可進行部分清除(Partially Cleaning)運作,此即在門檻值THA
低於一區塊內之頁數的狀況下所進行之清除運作。例如:門檻值THA
可為固定的數值,其低於一區塊內之頁數。又例如:該控制器可動態地調整門檻值THA
,尤其是目前恰巧將門檻值THA
動態地調整至某一數值,其中該數值低於一區塊內之頁數。由於在將有效資料移動/複製到別處(例如其它超區塊)的過程中,該控制器通常只能等待,而該主裝置通常也是被迫等待且不能立即對記憶裝置100進行存取,故門檻值THA
如果過高,會影響該控制器的效能並妨礙該主裝置對記憶裝置100之存取。於本變化例中藉由採用上述之部分清除運作,可提昇該控制器的效能並避免妨礙該主裝置對記憶裝置100之存取。
請注意,儲存於清除清單120L內之索引m所代表的超區塊M(m)的有效頁數量有可能隨著後續的寫入運作而減少。尤其是,在門檻值THA
低於一區塊內之頁數的狀況下,清除清單120L內之索引m所代表的超區塊M(m)的有效頁數量減少之機會將會提高。雖然在該控制器將索引m暫時地儲存於清除清單120L時,索引m所代表的超區塊M(m)的確具有至少一有效頁,這絕非表示該至少一有效頁永遠不會變成無效頁。例如:在上述後續的寫入運作之後,該至少一有效頁之資料可能因為其對應的更新資料的寫入而變成無效資料,造成超區塊M(m)變成不含有效頁的超區塊。
第2B圖為第2A圖所示之方法於一實施例中的實施細節。第2B圖所示之工作流程說明如下:
於步驟932中,該控制器選擇具有至少一有效頁之一超區塊M(m)作為一候選超區塊以供清除,並且將該候選超區塊中分別對應於該些通道{Ch(0),Ch(1),...,Ch(N-1)}之區塊的各個有效頁數量{VPCm
(0),VPCm
(1),...,VPCm
(N-1)}分別累積至該些累積值{VPCA
(0),VPCA
(1),...,VPCA
(N-1)}。
於步驟933中,該控制器檢查該些累積值{VPCA
(0),VPCA
(1),...,VPCA
(N-1)}是否均達到該第一門檻值諸如門檻值THA
。當偵測到該些累積值{VPCA
(0),VPCA
(1),...,VPCA
(N-1)}均達到該第一門檻值時,進入步驟934;否則,重新進入步驟932。
於步驟934中,該控制器針對所有的候選超區塊觸發一清除運作,以於進行該清除運作之期間同時地移動/複製分別對應於該些通道{Ch(0),Ch(1),...,Ch(N-1)}之有效資料。
依據本實施例,該控制器能將清除運作之期間當中一個或多個通道處於閒置(Idle)狀態的時間之比率降到最低。尤其是,該控制器可於進行該清除運作之期間同時地移動/複製分別對應於該些通道{Ch(0),Ch(1),...,Ch(N-1)}之有效資料,故上述之比率RALL_CH
可以遠高於相關技術。因此,本發明能大幅地提昇記憶裝置之整體處理效能。
依據某些實施例,諸如第3A圖至第3D圖所示之實施例與第4A圖至第4B圖所示之實施例,在通道Ch(0)、Ch(1)、...、與Ch(N-1)的數量N等於4的狀況下,上述之有效頁數量{VPCm
(0),VPCm
(1),...,VPCm
(N-1)}與累積值{VPCA
(0),VPCA
(1),...,VPCA
(N-1)}可分別寫成{VPCm
(0),VPCm
(1),VPCm
(2),VPCm
(3)}與{VPCA
(0),VPCA
(1),VPCA
(2),VPCA
(3)}。
第3A圖至第3D圖分別為第2A圖所示之方法910於一實施例中所涉及的候選超區塊M(m11
)、M(m12
)、M(m13
)、與M(m14
),其中各個候選超區塊中的陰影部分代表有效頁。為了便於理解,本實施例係依據第2B圖所示之工作流程來說明。
首先,於初次進入步驟932之後,該控制器選擇第3A圖所示之候選超區塊M(m11
),其有效頁數量{(0),(1),(2),(3)}分別為(40,0,0,0),故該控制器將累積值{VPCA
(0),VPCA
(1),VPCA
(2),VPCA
(3)}由一組初始值(0,0,0,0)累積為(40,0,0,0)。於本實施例中,門檻值THA
=20。由於累積值{VPCA
(0),VPCA
(1),VPCA
(2),VPCA
(3)}並未全部達到門檻值THA
,故重新進入步驟932。
其次,該控制器選擇第3B圖所示之候選超區塊M(m12
),其有效頁數量{(0),(1),(2),(3)}分別為(0,28,0,0),故該控制器將累積值{VPCA
(0),VPCA
(1),VPCA
(2),VPCA
(3)}由(40,0,0,0)累積為(40,28,0,0)。由於累積值{VPCA
(0),VPCA
(1),VPCA
(2),VPCA
(3)}並未全部達到門檻值THA
,故重新進入步驟932。
然後,該控制器選擇第3C圖所示之候選超區塊M(m13
),其有效頁數量{(0),(1),(2),(3)}分別為(0,0,39,0),故該控制器將累積值{VPCA
(0),VPCA
(1),VPCA
(2),VPCA
(3)}由(40,28,0,0)累積為(40,28,39,0)。由於累積值{VPCA
(0),VPCA
(1),VPCA
(2),VPCA
(3)}並未全部達到門檻值THA
,故重新進入步驟932。
另外,該控制器選擇第3D圖所示之候選超區塊M(m14
),其有效頁數量{(0),(1),(2),(3)}分別為(0,0,0,57),故該控制器將累積值{VPCA
(0),VPCA
(1),VPCA
(2),VPCA
(3)}由(40,28,39,0)累積為(40,28,39,57)。由於累積值{VPCA
(0),VPCA
(1),VPCA
(2),VPCA
(3)}已全部達到門檻值THA
,故進入步驟934。
請注意,由於該控制器可於進行該清除運作之期間同時地移動/複製分別對應於該些通道{Ch(0),Ch(1),Ch(2),Ch(3)}之有效資料,故上述之比率RALL_CH
可以遠高於相關技術。因此,本發明能大幅地提昇記憶裝置之整體處理效能。
第4A圖至第4B圖分別為第2A圖所示之方法910於另一實施例中所涉及的候選超區塊M(m21
)與M(m22
),其中各個候選超區塊中的陰影部分代表有效頁。為了便於理解,本實施例係依據第2B圖所示之工作流程來說明。
首先,於初次進入步驟932之後,該控制器選擇第4A圖所示之候選超區塊M(m21
),其有效頁數量{(0),(1),(2),(3)}分別為(10,60,28,0),故該控制器將累積值{VPCA
(0),VPCA
(1),VPCA
(2),VPCA
(3)}由一組初始值(0,0,0,0)累積為(10,60,28,0)。請注意到,於挑選候選超區塊M(m21
)時,得依據有效頁數量進行判斷,例如參考有效頁數量表120V以挑選有效頁數量最少的超區塊作為最初的候選超區塊M(m21
)。於本實施例中,門檻值THA
=20。由於累積值{VPCA
(0),VPCA
(1),VPCA
(2),VPCA
(3)}並未全部達到門檻值THA
,故重新進入步驟932。
依據本實施例,當偵測到該些累積值{VPCA
(0),VPCA
(1),VPCA
(2),VPCA
(3)}中之一最大累積值VPCA_MAX
與一最小累積值VPCA_MIN
之間的差VPCA_DIFF
達到一第二門檻值諸如門檻值THD
時,該控制器暫時地選擇具有補償特性之一超區塊作為候選超區塊,其中最大累積值VPCA_MAX
與最小累積值VPCA_MIN
分別對應於該些通道中之兩個通道,其可先暫時地分別稱為一最大通道ChMAX
與一最小通道ChMIN
。相反地,於具有補償特性之該超區塊中,對應於最大通道ChMAX
之區塊的有效頁數量小於對應於最小通道ChMIN
之區塊的有效頁數量。尤其是,當偵測到該些累積值{VPCA
(0),VPCA
(1),VPCA
(2),VPCA
(3)}中之最大累積值VPCA_MAX
與最小累積值VPCA_MIN
之間的差VPCA_DIFF
達到該第二門檻值諸如門檻值THD
時,該控制器暫時地避免選擇不具有補償特性之任何超區塊作為候選超區塊,其中於不具有補償特性之該超區塊中,對應於最大通道ChMAX
之區塊的有效頁數量大於或等於對應於最小通道ChMIN
之區塊的有效頁數量。
於本實施例中,門檻值THD
=40。在該控制器選擇了候選超區塊M(m21
)之後,最大累積值VPCA_MAX
與最小累積值VPCA_MIN
分別為(10,60,28,0)當中的60與0,故最大通道ChMAX
與最小通道ChMIN
分別為通道Ch(1)與Ch(3),且差VPCA_DIFF
等於60。此狀況下,VPCA_DIFF
>THD
,這表示下一個待選擇的超區塊M(m)必須具有補償特性,其中當超區塊M(m)中對應於通道Ch(1)之區塊的有效頁數量VPCm
(1)小於對應於通道Ch(3)之區塊的有效頁數量VPCm
(3)時(亦即VPCm
(1)<VPCm
(3)),待選擇的超區塊M(m)可被視為具有補償特性之超區塊。
於是,該控制器選擇第4B圖所示之候選超區塊M(m22
),其有效頁數量{(0),(1),(2),(3)}分別為(50,11,20,35),故該控制器將累積值{VPCA
(0),VPCA
(1),VPCA
(2),VPCA
(3)}由(10,60,28,0)累積為(60,71,48,35)。由於累積值{VPCA
(0),VPCA
(1),VPCA
(2),VPCA
(3)}已全部達到門檻值THA
,故進入步驟934。
請注意,由於該控制器可於進行該清除運作之期間同時地移動/複製分別對應於該些通道{Ch(0),Ch(1),Ch(2),Ch(3)}之有效資料,故上述之比率RALL_CH
可以遠高於相關技術。另外,該控制器可藉由利用具有補償特性之超區塊來補償累積值,以控制累積值{VPCA
(0),VPCA
(1),VPCA
(2),VPCA
(3)}之間的差異於一預定範圍(例如:該第二門檻值諸如門檻值THD
)之內,故上述之比率RALL_CH
可以遠高於相關技術。因此,本發明能大幅地提昇記憶裝置之整體處理效能。
於第4A圖至第4B圖所示之實施例中,門檻值THD
可為固定的數值。這只是為了說明的目的而已,並非對本發明之限制。依據本實施例之不同的變化例,該控制器可預先設定門檻值THD
、及/或動態地調整門檻值THD
,來控制上述之比率RALL_CH
。
本發明的好處之一是,依據本發明所實現的區塊管理能保證在具有多通道的快閃記憶體中進行清除運作時達到最佳的處理效能。相較於相關技術,本發明在不大幅地增加晶片面積及相關成本的狀況下就能達到兼顧運作效能與系統資源使用控管之目標。
以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
100...記憶裝置
110...記憶體控制器
112...微處理器
112C...程式碼
112M...唯讀記憶體
114...控制邏輯
116...緩衝記憶體
118...介面邏輯
120...快閃記憶體
120B...資訊區塊
120L...清除清單
120V...有效頁數量表
120-0,120-1,...,120-(N-1)...快閃記憶體晶片
910...用來進行區塊管理之方法
912,914,932,933,934...步驟
Buf(0),Buf(1)...緩衝器
Ch(0),Ch(1),Ch(2),Ch(3),...,Ch(N-1)...通道
M(m11
),M(m12
),M(m13
),M(m14
),M(m21
),M(m22
)...超區塊
第1A圖為依據本發明一第一實施例之一種記憶裝置的示意圖。
第1B圖為第1A圖所示之記憶裝置於一實施例中的實施細節。
第2A圖為依據本發明一實施例之一種用來進行區塊管理之方法的流程圖。
第2B圖為第2A圖所示之方法於一實施例中的實施細節。
第3A圖至第3D圖分別為第2A圖所示之方法於一實施例中所涉及的候選超區塊。
第4A圖至第4B圖分別為第2A圖所示之方法於另一實施例中所涉及的候選超區塊。
910...用來進行區塊管理之方法
912,914...步驟
Claims (21)
- 一種用來進行區塊管理之方法,該方法係應用於具有多通道(Channel)的快閃記憶體(Flash Memory)之控制器,該快閃記憶體包含分別對應於該些通道之複數個區塊,該方法包含有:選擇具有至少一有效頁(Valid Page)之至少一超區塊(Meta Block)作為至少一候選超區塊以供清除,並且累積(Accumulate)該至少一候選超區塊中分別對應於該些通道之區塊的各個有效頁數量(Valid Page Count),以產生分別對應於該些通道之複數個累積值,其中每一超區塊中之區塊分別對應於該些通道,且每一有效頁的資料包含有效資料;以及當偵測到該些累積值均達到一第一門檻值時,針對所有的候選超區塊觸發一清除運作,以於進行該清除運作之期間同時地移動/複製分別對應於該些通道之有效資料。
- 如申請專利範圍第1項所述之方法,其中選擇具有該至少一有效頁之該至少一超區塊作為該至少一候選超區塊以供清除之步驟另包含:將該至少一超區塊之至少一索引暫時地儲存於一清除清單(Clean List),以將該至少一超區塊標示為該至少一候選超區塊,其中該些候選超區塊之索引分別被暫時地儲存於該清除清單。
- 如申請專利範圍第2項所述之方法,其中針對該些候選超區塊觸發該清除運作以於進行該清除運作之期間同時地移動/複製分別對應於該些通道之有效資料之步驟另包含:當偵測到該些累積值均達到該第一門檻值時,針對該些索引所指出之該些候選超區塊觸發該清除運作,以於進行該清除運作之期間同時地移動/複製分別對應於該些通道之有效資料。
- 如申請專利範圍第2項所述之方法,其另包含有:於觸發該清除運作之後,將該至少一索引從該清除清單移除。
- 如申請專利範圍第1項所述之方法,其中選擇具有該至少一有效頁之該至少一超區塊作為該至少一候選超區塊以供清除之步驟另包含:當偵測到該些累積值中之一最大累積值與一最小累積值之間的差達到一第二門檻值時,暫時地選擇具有補償特性之一超區塊作為候選超區塊,其中該最大累積值與該最小累積值分別對應於該些通道中之一第一通道與一第二通道,以及於具有補償特性之該超區塊中,對應於該第一通道之區塊的有效頁數量小於對應於該第二通道之區塊的有效頁數量。
- 如申請專利範圍第5項所述之方法,其中選擇具有該至少一有效頁之該至少一超區塊作為該至少一候選超區塊以供清除之步驟另包含:當偵測到該些累積值中之該最大累積值與該最小累積值之間的差達到該第二門檻值時,暫時地避免選擇不具有補償特性之任何超區塊作為候選超區塊,其中於不具有補償特性之該超區塊中,對應於該第一通道之區塊的有效頁數量大於或等於對應於該第二通道之區塊的有效頁數量。
- 如申請專利範圍第1項所述之方法,其中選擇具有該至少一有效頁之該至少一超區塊作為該至少一候選超區塊以供清除之步驟另包含:於複數個超區塊中,選擇具有最少有效頁之一超區塊作為候選超區塊。
- 一種記憶裝置,其包含有:具有多通道(Channel)之一快閃記憶體(Flash Memory),該快閃記憶體包含分別對應於該些通道之複數個區塊;以及一控制器,用來存取(Access)該快閃記憶體以及管理該複數個區塊,其中該控制器選擇具有至少一有效頁(Valid Page)之至少一超區塊(Meta Block)作為至少一候選超區塊以供清除,並且累積(Accumulate)該至少一候選超區塊中分別對應於該些通道之區塊的各個有效頁數量(Valid Page Count),以產生分別對應於該些通道之複數個累積值,其中每一超區塊中之區塊分別對應於該些通道,且每一有效頁的資料包含有效資料;其中當偵測到該些累積值均達到一第一門檻值時,該控制器針對所有的候選超區塊觸發一清除運作,以於進行該清除運作之期間同時地移動/複製分別對應於該些通道之有效資料。
- 如申請專利範圍第8項所述之記憶裝置,其中該控制器將該至少一超區塊之至少一索引暫時地儲存於一清除清單(Clean List),以將該至少一超區塊標示為該至少一候選超區塊;以及該些候選超區塊之索引分別被暫時地儲存於該清除清單。
- 如申請專利範圍第9項所述之記憶裝置,其中當偵測到該些累積值均達到該第一門檻值時,該控制器針對該些索引所指出之該些候選超區塊觸發該清除運作,以於進行該清除運作之期間同時地移動/複製分別對應於該些通道之有效資料。
- 如申請專利範圍第9項所述之記憶裝置,其中於觸發該清除運作之後,該控制器將該至少一索引從該清除清單移除。
- 如申請專利範圍第8項所述之記憶裝置,其中當偵測到該些累積值中之一最大累積值與一最小累積值之間的差達到一第二門檻值時,該控制器暫時地選擇具有補償特性之一超區塊作為候選超區塊;以及該最大累積值與該最小累積值分別對應於該些通道中之一第一通道與一第二通道,以及於具有補償特性之該超區塊中,對應於該第一通道之區塊的有效頁數量小於對應於該第二通道之區塊的有效頁數量。
- 如申請專利範圍第12項所述之記憶裝置,其中當偵測到該些累積值中之該最大累積值與該最小累積值之間的差達到該第二門檻值時,該控制器暫時地避免選擇不具有補償特性之任何超區塊作為候選超區塊;以及於不具有補償特性之該超區塊中,對應於該第一通道之區塊的有效頁數量大於或等於對應於該第二通道之區塊的有效頁數量。
- 如申請專利範圍第8項所述之記憶裝置,其中於複數個超區塊中,該控制器選擇具有最少有效頁之一超區塊作為候選超區塊。
- 一種記憶裝置之控制器,該控制器係用來存取(Access)具有多通道(Channel)之一快閃記憶體(Flash Memory),該快閃記憶體包含分別對應於該些通道之複數個區塊,該控制器包含有:一唯讀記憶體(Read Only Memory,ROM),用來儲存一程式碼;以及一微處理器,用來執行該程式碼以控制對該快閃記憶體之存取以及管理該複數個區塊,其中透過該微處理器執行該程式碼之該控制器選擇具有至少一有效頁(Valid Page)之至少一超區塊(Meta Block)作為至少一候選超區塊以供清除,並且累積(Accumulate)該至少一候選超區塊中分別對應於該些通道之區塊的各個有效頁數量(Valid Page Count),以產生分別對應於該些通道之複數個累積值,其中每一超區塊中之區塊分別對應於該些通道,且每一有效頁的資料包含有效資料;其中當偵測到該些累積值均達到一第一門檻值時,透過該微處理器執行該程式碼之該控制器針對所有的候選超區塊觸發一清除運作,以於進行該清除運作之期間同時地移動/複製分別對應於該些通道之有效資料。
- 如申請專利範圍第15項所述之控制器,其中透過該微處理器執行該程式碼之該控制器將該至少一超區塊之至少一索引暫時地儲存於一清除清單(Clean List),以將該至少一超區塊標示為該至少一候選超區塊;以及該些候選超區塊之索引分別被暫時地儲存於該清除清單。
- 如申請專利範圍第16項所述之控制器,其中當偵測到該些累積值均達到該第一門檻值時,透過該微處理器執行該程式碼之該控制器針對該些索引所指出之該些候選超區塊觸發該清除運作,以於進行該清除運作之期間同時地移動/複製分別對應於該些通道之有效資料。
- 如申請專利範圍第16項所述之控制器,其中於觸發該清除運作之後,透過該微處理器執行該程式碼之該控制器將該至少一索引從該清除清單移除。
- 如申請專利範圍第15項所述之控制器,其中當偵測到該些累積值中之一最大累積值與一最小累積值之間的差達到一第二門檻值時,透過該微處理器執行該程式碼之該控制器暫時地選擇具有補償特性之一超區塊作為候選超區塊;以及該最大累積值與該最小累積值分別對應於該些通道中之一第一通道與一第二通道,以及於具有補償特性之該超區塊中,對應於該第一通道之區塊的有效頁數量小於對應於該第二通道之區塊的有效頁數量。
- 如申請專利範圍第19項所述之控制器,其中當偵測到該些累積值中之該最大累積值與該最小累積值之間的差達到該第二門檻值時,透過該微處理器執行該程式碼之該控制器暫時地避免選擇不具有補償特性之任何超區塊作為候選超區塊;以及於不具有補償特性之該超區塊中,對應於該第一通道之區塊的有效頁數量大於或等於對應於該第二通道之區塊的有效頁數量。
- 如申請專利範圍第15項所述之控制器,其中於複數個超區塊中,透過該微處理器執行該程式碼之該控制器選擇具有最少有效頁之一超區塊作為候選超區塊。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW99147196A TWI446345B (zh) | 2010-12-31 | 2010-12-31 | 用來進行區塊管理之方法以及記憶裝置及控制器 |
US13/211,332 US8904089B2 (en) | 2010-12-31 | 2011-08-17 | Method for performing block management/Flash memory management, and associated memory device and controller thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW99147196A TWI446345B (zh) | 2010-12-31 | 2010-12-31 | 用來進行區塊管理之方法以及記憶裝置及控制器 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201227739A TW201227739A (en) | 2012-07-01 |
TWI446345B true TWI446345B (zh) | 2014-07-21 |
Family
ID=46381834
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW99147196A TWI446345B (zh) | 2010-12-31 | 2010-12-31 | 用來進行區塊管理之方法以及記憶裝置及控制器 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8904089B2 (zh) |
TW (1) | TWI446345B (zh) |
Families Citing this family (49)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8533384B2 (en) | 2007-12-27 | 2013-09-10 | Sandisk Enterprise Ip Llc | Flash memory controller garbage collection operations performed independently in multiple flash memory groups |
US9251056B2 (en) * | 2012-06-01 | 2016-02-02 | Macronix International Co., Ltd. | Bucket-based wear leveling method and apparatus |
US9699263B1 (en) | 2012-08-17 | 2017-07-04 | Sandisk Technologies Llc. | Automatic read and write acceleration of data accessed by virtual machines |
US9501398B2 (en) | 2012-12-26 | 2016-11-22 | Sandisk Technologies Llc | Persistent storage device with NVRAM for staging writes |
US9612948B2 (en) | 2012-12-27 | 2017-04-04 | Sandisk Technologies Llc | Reads and writes between a contiguous data block and noncontiguous sets of logical address blocks in a persistent storage device |
US9454420B1 (en) | 2012-12-31 | 2016-09-27 | Sandisk Technologies Llc | Method and system of reading threshold voltage equalization |
US9870830B1 (en) | 2013-03-14 | 2018-01-16 | Sandisk Technologies Llc | Optimal multilevel sensing for reading data from a storage medium |
US9367246B2 (en) | 2013-03-15 | 2016-06-14 | Sandisk Technologies Inc. | Performance optimization of data transfer for soft information generation |
US9236886B1 (en) | 2013-03-15 | 2016-01-12 | Sandisk Enterprise Ip Llc | Universal and reconfigurable QC-LDPC encoder |
US9244763B1 (en) | 2013-03-15 | 2016-01-26 | Sandisk Enterprise Ip Llc | System and method for updating a reading threshold voltage based on symbol transition information |
US9524235B1 (en) | 2013-07-25 | 2016-12-20 | Sandisk Technologies Llc | Local hash value generation in non-volatile data storage systems |
US9384126B1 (en) | 2013-07-25 | 2016-07-05 | Sandisk Technologies Inc. | Methods and systems to avoid false negative results in bloom filters implemented in non-volatile data storage systems |
US9235509B1 (en) | 2013-08-26 | 2016-01-12 | Sandisk Enterprise Ip Llc | Write amplification reduction by delaying read access to data written during garbage collection |
US9639463B1 (en) | 2013-08-26 | 2017-05-02 | Sandisk Technologies Llc | Heuristic aware garbage collection scheme in storage systems |
US9298608B2 (en) | 2013-10-18 | 2016-03-29 | Sandisk Enterprise Ip Llc | Biasing for wear leveling in storage systems |
US9442662B2 (en) | 2013-10-18 | 2016-09-13 | Sandisk Technologies Llc | Device and method for managing die groups |
US9436831B2 (en) | 2013-10-30 | 2016-09-06 | Sandisk Technologies Llc | Secure erase in a memory device |
US9263156B2 (en) | 2013-11-07 | 2016-02-16 | Sandisk Enterprise Ip Llc | System and method for adjusting trip points within a storage device |
US9244785B2 (en) | 2013-11-13 | 2016-01-26 | Sandisk Enterprise Ip Llc | Simulated power failure and data hardening |
US9703816B2 (en) | 2013-11-19 | 2017-07-11 | Sandisk Technologies Llc | Method and system for forward reference logging in a persistent datastore |
US9520197B2 (en) | 2013-11-22 | 2016-12-13 | Sandisk Technologies Llc | Adaptive erase of a storage device |
US9520162B2 (en) | 2013-11-27 | 2016-12-13 | Sandisk Technologies Llc | DIMM device controller supervisor |
US9582058B2 (en) | 2013-11-29 | 2017-02-28 | Sandisk Technologies Llc | Power inrush management of storage devices |
US9235245B2 (en) | 2013-12-04 | 2016-01-12 | Sandisk Enterprise Ip Llc | Startup performance and power isolation |
US9703636B2 (en) | 2014-03-01 | 2017-07-11 | Sandisk Technologies Llc | Firmware reversion trigger and control |
US9454448B2 (en) | 2014-03-19 | 2016-09-27 | Sandisk Technologies Llc | Fault testing in storage devices |
US9448876B2 (en) | 2014-03-19 | 2016-09-20 | Sandisk Technologies Llc | Fault detection and prediction in storage devices |
US9390814B2 (en) | 2014-03-19 | 2016-07-12 | Sandisk Technologies Llc | Fault detection and prediction for data storage elements |
US9390021B2 (en) | 2014-03-31 | 2016-07-12 | Sandisk Technologies Llc | Efficient cache utilization in a tiered data structure |
US9626400B2 (en) | 2014-03-31 | 2017-04-18 | Sandisk Technologies Llc | Compaction of information in tiered data structure |
US9626399B2 (en) | 2014-03-31 | 2017-04-18 | Sandisk Technologies Llc | Conditional updates for reducing frequency of data modification operations |
US9697267B2 (en) | 2014-04-03 | 2017-07-04 | Sandisk Technologies Llc | Methods and systems for performing efficient snapshots in tiered data structures |
US10162748B2 (en) | 2014-05-30 | 2018-12-25 | Sandisk Technologies Llc | Prioritizing garbage collection and block allocation based on I/O history for logical address regions |
US10114557B2 (en) | 2014-05-30 | 2018-10-30 | Sandisk Technologies Llc | Identification of hot regions to enhance performance and endurance of a non-volatile storage device |
US10656840B2 (en) | 2014-05-30 | 2020-05-19 | Sandisk Technologies Llc | Real-time I/O pattern recognition to enhance performance and endurance of a storage device |
US10372613B2 (en) | 2014-05-30 | 2019-08-06 | Sandisk Technologies Llc | Using sub-region I/O history to cache repeatedly accessed sub-regions in a non-volatile storage device |
US10146448B2 (en) | 2014-05-30 | 2018-12-04 | Sandisk Technologies Llc | Using history of I/O sequences to trigger cached read ahead in a non-volatile storage device |
US9703491B2 (en) | 2014-05-30 | 2017-07-11 | Sandisk Technologies Llc | Using history of unaligned writes to cache data and avoid read-modify-writes in a non-volatile storage device |
US10656842B2 (en) | 2014-05-30 | 2020-05-19 | Sandisk Technologies Llc | Using history of I/O sizes and I/O sequences to trigger coalesced writes in a non-volatile storage device |
US9652381B2 (en) | 2014-06-19 | 2017-05-16 | Sandisk Technologies Llc | Sub-block garbage collection |
US9632712B2 (en) * | 2014-07-02 | 2017-04-25 | Sandisk Technologies Llc | System and method of updating metablocks associated with multiple memory dies |
US9443601B2 (en) | 2014-09-08 | 2016-09-13 | Sandisk Technologies Llc | Holdup capacitor energy harvesting |
KR102391678B1 (ko) | 2015-01-22 | 2022-04-29 | 삼성전자주식회사 | 저장 장치 및 그것의 서스테인드 상태 가속 방법 |
US9875053B2 (en) | 2015-06-05 | 2018-01-23 | Western Digital Technologies, Inc. | Scheduling scheme(s) for a multi-die storage device |
US10289327B2 (en) | 2015-06-05 | 2019-05-14 | Western Digital Technologies, Inc. | Scheduling scheme(s) for a multi-die storage device |
KR20170078315A (ko) * | 2015-12-29 | 2017-07-07 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
KR20180076425A (ko) * | 2016-12-27 | 2018-07-06 | 에스케이하이닉스 주식회사 | 컨트롤러 및 컨트롤러의 동작 방법 |
KR20200030245A (ko) * | 2018-09-12 | 2020-03-20 | 에스케이하이닉스 주식회사 | 메모리 시스템에서의 유효 데이터 관리 방법 및 장치 |
US11256616B2 (en) * | 2019-12-24 | 2022-02-22 | Micron Technology, Inc. | Power loss data protection in a memory sub-system |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8108590B2 (en) * | 2000-01-06 | 2012-01-31 | Super Talent Electronics, Inc. | Multi-operation write aggregator using a page buffer and a scratch flash block in each of multiple channels of a large array of flash memory to reduce block wear |
US20050144516A1 (en) | 2003-12-30 | 2005-06-30 | Gonzalez Carlos J. | Adaptive deterministic grouping of blocks into multi-block units |
US7783845B2 (en) | 2005-11-14 | 2010-08-24 | Sandisk Corporation | Structures for the management of erase operations in non-volatile memories |
US7624239B2 (en) | 2005-11-14 | 2009-11-24 | Sandisk Corporation | Methods for the management of erase operations in non-volatile memories |
KR100780963B1 (ko) | 2006-11-03 | 2007-12-03 | 삼성전자주식회사 | 메모리 카드 및 메모리 카드의 구동 방법 |
WO2008106686A1 (en) | 2007-03-01 | 2008-09-04 | Douglas Dumitru | Fast block device and methodology |
US20080288712A1 (en) | 2007-04-25 | 2008-11-20 | Cornwell Michael J | Accessing metadata with an external host |
US8244961B2 (en) | 2008-05-27 | 2012-08-14 | Initio Corporation | SSD with distributed processors |
US20100287217A1 (en) * | 2009-04-08 | 2010-11-11 | Google Inc. | Host control of background garbage collection in a data storage device |
US8452911B2 (en) * | 2010-09-30 | 2013-05-28 | Sandisk Technologies Inc. | Synchronized maintenance operations in a multi-bank storage system |
-
2010
- 2010-12-31 TW TW99147196A patent/TWI446345B/zh active
-
2011
- 2011-08-17 US US13/211,332 patent/US8904089B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20120173797A1 (en) | 2012-07-05 |
TW201227739A (en) | 2012-07-01 |
US8904089B2 (en) | 2014-12-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI446345B (zh) | 用來進行區塊管理之方法以及記憶裝置及控制器 | |
TWI425357B (zh) | 用來進行區塊管理之方法以及記憶裝置及控制器 | |
KR101551584B1 (ko) | 하이브리드 slc/mlc 메모리 내의 블록 관리 방식들 | |
TWI437439B (zh) | 用來以動態門檻進行區塊管理之方法及記憶裝置及控制器 | |
JP4518951B2 (ja) | 不揮発性記憶システムにおける自動損耗均等化 | |
TWI409819B (zh) | 平均地使用一快閃記憶體的複數個區塊之方法以及相關之記憶裝置及其控制器 | |
US8738876B2 (en) | Method for performing block management, and associated memory device and controller thereof | |
US10303382B1 (en) | Application defined storage device | |
US9274943B2 (en) | Storage unit management method, memory controller and memory storage device using the same | |
US11176035B2 (en) | Data storage devices and data processing methods | |
US8433981B1 (en) | Coding across data blocks to reduce write amplification in NAND flash | |
CN110674056B (zh) | 一种垃圾回收方法及装置 | |
KR101403922B1 (ko) | 접근 빈도에 따라 데이터를 할당하는 저장장치 및 저장방법 | |
CN110389712B (zh) | 数据写入方法及其装置、固态硬盘和计算机可读存储介质 | |
TWI450271B (zh) | 用來管理一快閃記憶體的複數個區塊之方法以及相關之記憶裝置及其控制器 | |
TWI797742B (zh) | 在快閃記憶體中進行耗損平衡操作的方法和相關控制器以及儲存系統 | |
CN108563586B (zh) | 一种分离固态盘中垃圾回收数据与用户数据的方法 | |
TWI435216B (zh) | 用來進行超區塊管理之方法以及記憶裝置及控制器 | |
US20150277785A1 (en) | Data writing method, memory control circuit unit and memory storage apparatus | |
US10545700B2 (en) | Memory management method, memory storage device and memory control circuit unit | |
US9304906B2 (en) | Memory system, controller and control method of memory | |
US20090327580A1 (en) | Optimization of non-volatile solid-state memory by moving data based on data generation and memory wear | |
US20170277436A1 (en) | Memory management method, memory storage device and memory control circuit unit | |
US20110087828A1 (en) | Method for enhancing performance of accessing a flash memory, and associated memory device and controller thereof | |
US20200104384A1 (en) | Systems and methods for continuous trim commands for memory systems |