TW201349095A - 資料儲存裝置和快閃記憶體之區塊管理方法 - Google Patents

資料儲存裝置和快閃記憶體之區塊管理方法 Download PDF

Info

Publication number
TW201349095A
TW201349095A TW102103259A TW102103259A TW201349095A TW 201349095 A TW201349095 A TW 201349095A TW 102103259 A TW102103259 A TW 102103259A TW 102103259 A TW102103259 A TW 102103259A TW 201349095 A TW201349095 A TW 201349095A
Authority
TW
Taiwan
Prior art keywords
data
block
spare
blocks
flash memory
Prior art date
Application number
TW102103259A
Other languages
English (en)
Other versions
TWI590150B (zh
Inventor
Chang-Kai Cheng
Yen-Hung Lin
Original Assignee
Silicon Motion Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Silicon Motion Inc filed Critical Silicon Motion Inc
Publication of TW201349095A publication Critical patent/TW201349095A/zh
Application granted granted Critical
Publication of TWI590150B publication Critical patent/TWI590150B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7211Wear leveling

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Abstract

一種資料儲存裝置耦接至一主機,資料儲存裝置包括一快閃記憶體以及一控制器。快閃記憶體包括一備用區塊池以及一資料區塊池,其中備用區塊池包括複數備用區塊以及資料區塊池包括複數資料區塊,其中一備用區塊數量為該等備用區塊的總數量。控制器用以接收來自主機的一目標資料,將目標資料寫至一目前資料區塊中,決定一目前程式之分頁是否為目前資料區塊之第一分頁,當目前程式化之分頁為第一分頁時,決定備用區塊數量是否小於一備用區塊數量臨界值,並當備用區塊數量小於備用區塊數量臨界值時,設定一資料合併程序所使用的一資料搬移資訊。

Description

資料儲存裝置和快閃記憶體之區塊管理方法
本發明係有關於一種快閃記憶體,特別係有關於一種快閃記憶體之區塊管理方法。
快閃記憶體是一種可被電性抹除及重新程式化之非揮發性的電腦儲存晶片。快閃記憶體適用於一般資料的儲存和傳輸,主要使用在記憶卡、USB快閃記憶體、固態硬碟(solid-state drives)以及相似的產品。舉例而言,應用快閃記憶體的裝置包括個人電腦、個人數位助理(PDAs)、數位聲音播放裝置(digital audio players)、數位相機、行動電話、影音遊戲機(video games)等。除了具有非揮發性之外,快閃記憶還提供如同動態隨機存取記憶體(dynamic RAM)般的快速讀取時間,雖然速度上仍不如靜態隨機存取記憶體(static RAM)或是唯讀記憶體(ROM)。由於非揮發性、固態儲存裝置的大量需求,使得目前快閃記憶體的售價已經遠低於可位元組程式化(byte-programmable)的電子抹除式可複寫唯讀記憶體(EEPROM)並且已經成為主流的記憶體類型。
因此,需要一種合適的快閃記憶體管理方法,用來改善快閃記憶體之效能。
本發明的目的在於提供一種快閃記憶體之區塊管理方法,用來改善快閃記憶體之效能。
一種資料儲存裝置耦接至一主機,資料儲存裝置包括一快閃記憶體以及一控制器。快閃記憶體包括一備用區塊池以及一資料區塊池,其中備用區塊池包括複數備用區塊以及資料區塊池包括複數資料區塊,其中一備用區塊數量為該等備用區塊的總數量。控制器用以接收來自主機的一目標資料,將目標資料寫至一目前資料區塊中,決定一目前程式之分頁是否為目前資料區塊之第一分頁,當目前程式化之分頁為第一分頁時,決定備用區塊數量是否小於一備用區塊數量臨界值,以及當備用區塊數量小於備用區塊數量臨界值時,設定一資料合併程序所使用的一資料搬移資訊。
本發明亦提供一種快閃記憶體之區塊管理方法,其中一資料儲存裝置耦接至一主機,資料儲存裝置包括一快閃記憶體以及一控制器。快閃記憶體包括一備用區塊池以及一資料區塊池,備用區塊池包括複數備用區塊,資料區塊池包括複數資料區塊,以及一備用區塊數量用以表示備用區塊的總數量。快閃記憶體之區塊管理方法包括接收來自主機的一目標資料;將目標資料寫入一目前資料區塊;決定一目前程式化之分頁是否為目前資料區塊的第一分頁;當目前程式化之分頁為第一分頁時,決定備用區塊數量是否小於一備用區塊數量臨界值;以及當備用區塊數量小於備用區塊數量臨界值時,設定一資料合併程序所使用的一資料搬移資訊。
100、800‧‧‧資料儲存裝置
102、802‧‧‧控制器
104‧‧‧快閃記憶體
120‧‧‧監禁池
110、812、822、832‧‧‧備用區塊池
130、814、824、834‧‧‧資料區塊池
111~11n‧‧‧備用區塊
121~12k‧‧‧監禁區塊
131~13m‧‧‧資料區塊
300‧‧‧目前資料區塊
301~30x‧‧‧分頁
311~314、D5‧‧‧資料
WL_TH1‧‧‧第一差值
WL_TH2‧‧‧第二差值
502、503、504‧‧‧區塊
601、602、603、604、701、701’‧‧‧來源資料區塊
610、711、711’‧‧‧終點備用區塊
D1、D2、D3、D4‧‧‧有效資料
810、820、830‧‧‧快閃記憶體區域
第1圖係為根據本發明資料儲存裝置之示意圖。
第2圖係為根據本發明快閃記憶體之區塊管理方法之流程圖。
第3圖係為根據本發明目前資料區塊之示意圖。
第4圖係為根據本發明從資料區塊池中得到備用區塊之方法流程圖。
第5圖係為根據本發明用以計算監禁臨界值及熱門臨界值的示意圖。
第6圖係為根據本發明資料合併程序之示意圖。
第7圖係為根據本發明耗損平衡程序之示意圖。
第8圖係為根據本發明資料儲存裝置之另一示意圖。
第9圖係為根據本發明複數記憶體區域之區塊管理方法之流程圖。
以下說明是執行本發明之最佳模式。習知技藝者應能知悉在不脫離本發明的精神和架構的前提下,當可作些許更動、替換和置換。本發明之範疇當視所附申請專利範圍而定。
第1圖係為本發明之資料儲存裝置100的方塊圖。在一實施例中,資料儲存裝置100包括控制器102以及快閃記憶體104。快閃記憶體104包括用以儲存資料的複數區塊。在一實施例中,快閃記憶體104包括備用區塊池(spare block pool)110以及資料區塊池(data block pool)130。備用區塊池110包括用以儲存無效資料的複數備用區塊111~11n。資料 區塊池130包括用以儲存資料的複數資料區塊131~13m。在一實施例中,資料儲存裝置100耦接至一主機。控制器102根據主機所送出的指令管理快閃記憶體104內之區塊。快閃記憶體104係根據一實體位址指定一區塊,而主機係根據邏一輯位址指定一區塊。因此,控制器102必須將主機所送出的一邏輯位址轉換成一實體位址。在一實施例中,控制器102將區塊的邏輯位址及實體位址間的對應關係紀錄在一位址鏈結表內。
每一個資料區塊131~13m包括複數分頁。當資料儲存在資料區塊的一分頁時,該分頁被稱為一資料分頁。當該分頁具有一對應的邏輯位址時,該分頁稱為有效分頁。在一實施例中,控制器102個別地計算資料區塊131~13m中每一資料區塊的有效分頁之總數用以獲得一有效分頁數量,並且將資料區塊131~13m的有效分頁數量記錄到一有效數量表中。另外,區塊被抹除的次數被稱為該區塊的抹除次數。在一實施例中,控制器102亦將快閃記憶體104中所有區塊的抹除次數紀錄在一抹除次數表中。
第2圖係為根據本發明用於管理快閃記憶體104之區塊的方法200的流程圖。當主機送出將被寫入資料儲存裝置100的目標資料時,控制器接收該目標資料(步驟202),接著將目標資料寫入目前資料區塊(步驟204)。參考第3圖,第3圖係為快閃記憶體104中之一目前資料區塊300的示意圖。目前資料區塊300包括複數分頁。目前資料區塊300可被用來儲存對應到不同邏輯位址的資料分頁。舉例而言,儲存在分頁301之資料311係對應到邏輯位址L1,儲存在分頁302之資料312 係對應到邏輯位址L2以及儲存在分頁303之資料313係對應到邏輯位址L3。
在該目標資料被寫入目前資料區塊後,控制器102接著決定目前資料區塊是否已寫滿資料(步驟206)。在一實施例中,當控制器102目前程式化之分頁(programming page)為目前資料區塊的最後分頁時,則控制器102決定目前資料區塊為寫滿的,接著控制器102根據目前資料區塊之資訊更新複數資料表(步驟208)。在一實施例中,所更新的該等資料表包括一位址鏈結表以及一有效分頁數量表。因為儲存在目前資料區塊之分頁中的資料分別地對應到不同的邏輯位址,因此控制器102必須寫下目前資料區塊之分頁的實體位址與儲存在此資料的邏輯位址兩者間的映射關係(mapping relationship)至位址鏈結表。另外,當主機刪除或更新一分頁時,該分頁將被標記為無效分頁。控制器102必須計算在一區塊中有效分頁的總數用以決定在該區塊中的有效分頁數量,並且將有效分頁數量寫至有效分頁數量表。在更多的資料被刪除及/或被再次更新之後,在資料區塊池130中之某些資料區塊所儲存之分頁將不具有有效分頁,且它們的有效分頁數量將被設定為零。之後,這些有效分頁數量為零的資料區塊將被設為備用區塊,並且由資料區塊池130中移至備用區塊池110(步驟210)。步驟210將在第4圖中被更仔細地解說。控制器102繼續從備用區塊池110中取得一備用區塊並指派該備用區塊為目前資料區塊,用以接收由主機所送出的新資料(步驟212)。
第5圖係為根據本發明用以計算監禁臨界值(jail threshold value)及熱門臨界值(hot threshold value)的示意圖。在快閃記憶體104中所有的區塊皆具有一抹除次數。當控制器102將一區塊設為備用區塊並且將該區塊放至備用區塊池時,則該區塊的抹除次數會增加一次。快閃記憶體104之區塊的最小抹除次數會隨著時間而增加,且在某些情況下,具有最小抹除次數之區塊會有所改變。因此,根據快閃記憶體104中所有區塊之抹除次數的改變,控制器102會頻繁地決定該最小抹除次數。如第5圖所示,當最小抹除次數被決定之後,控制器102會將第一差值WL_TH1加上該最小抹除次數用以取得一熱門臨界值,以及將第二誤差WL_TH2加上該最小抹除次數以取得一監禁臨界值。在某一實施例中,該第一差值WL_TH1小於該第二差值WL_TH2。在此,該第二差值WL_TH2大於該第一差值WL_TH1,因此該監禁臨界值會大於該熱門臨界值。當一區塊的抹除次數大於熱門臨界值,則控制器102會將該區塊決定為一熱門區塊。當一區塊的抹除次數大於該監禁臨界值,則控制器102會將該區塊決定為一監禁區塊,並將該監禁區塊放至第1圖所示之監禁池(jail pool)120。舉例而言,第5圖所示之區塊502、503以及504具有抹除次數大於監禁臨界值,因此被置放於監禁池120中。雖然監禁區塊121~12k也是備用區塊,當控制器102要從備用區塊池110中擷取用於儲存資料的新備用區塊時,控制器102並不會擷取監禁區塊。因此,除非將來該監禁區塊被釋出,否則該監禁區塊的抹除次數不會被增加。
第4圖係為從資料區塊池130中得到備用區塊之 方法400的流程圖。方法400包括用以執行第2圖所示之方法200中步驟210的詳細步驟。首先,控制器102決定由快閃記憶體104之區塊的抹除次數之一最小抹除次數,並且根據該最小抹除次數來計算一監禁臨界值。在更新監禁臨界值之後,在監禁池120中之某些監禁區塊121~12k的抹除次數將小於更新後的監禁臨界值。因此,控制器102將監禁池120中監禁區塊121~12k的抹除次數與監禁臨界值比較,當監禁區塊121~12k的抹除次數小於監禁臨界值時,則從監禁池120將該監禁區塊釋出至備用區塊池110(步驟402)。
在資料區塊池130中的某些資料區塊131~13m不具有有效資料並且有效分頁數為零。因此,在步驟404中,控制器102搜尋資料區塊池130中任何具有有效分頁數為零之目標區塊,然後進入步驟406,將該等目標區塊放至備用區塊池110中並且對該等目標區塊的抹除次數加一。在步驟408中,控制器102將會決定是否有任何的目標區塊之抹除次數大於監禁臨界值。若步驟408中決定結果為是,則進入步驟412。在步驟412中,控制器102將抹除次數大於監禁臨界值的目標區塊放至監禁池120。若步驟408中決定結果為否,則進入步驟410。在步驟410中,控制器102將會決定是否有任何目標區塊的抹除次數大於熱門臨界值。若步驟410中決定結果為是,則進入步驟414。在步驟414中,控制器102決定該目標區塊為熱門區塊,並且將決定為熱門區塊之目標區塊之數量加至熱門區塊之數量。
參考第2圖。在步驟204中,當該目標資料被寫 入目前資料區塊之後進入步驟206。在步驟206中,控制器102將會決定目前資料區塊是否已寫滿資料。若步驟206中決定結果為否,則進入步驟214。在步驟214中,控制器102決定目前程式化之分頁是否為目前資料區塊的第一分頁。若決定結果為是,則進入步驟216。舉例而言,控制器目前程式化之分頁為第3圖所示之分頁301,且分頁301為目前資料區塊300的第一分頁,則控制器102決定一備用區塊數量是否小於一備用區塊數量臨界值(步驟216)。備用區塊數量為在備用區塊池110中備用區塊的總數。在一實施例中,備用區塊數量臨界值為15。假設一備用區塊由備用區塊池中得到,並且被抹除成為一新的目前資料區塊,則在備用區塊池中的備用區塊總數將少一。在步驟216中,當備用區塊數量小於備用區塊數量臨界值時,則進入步驟218。在步驟218中,控制器102設定用於一資料合併程序所需的一資料搬移資訊,以便啟始資料合併程序,用以增加備用區塊的數量。
在一實施例中,用以啟始資料合併程序的資料搬移資訊包括具有將被合併資料之複數來源資料區塊之實體位址以及將被寫入合併資料之終點備用區塊(destination spare block)的實體位址。控制器102從資料區塊池130中選擇具有最小有效分頁數量之數個資料區塊作為來源資料區塊,並且取得一備用區塊作為終點備用區塊。第6圖係為根據本發明之一資料合併程序的示意圖。當資料合併程序開始時,從資料區塊池130中選取具有最小有效分頁數量的四個來源資料區塊601、602、603以及604,並且從備用池中選取終點備用區塊 610。然後控制器102抹除終點備用區塊610並且將來源資料區塊601、602、603以及604的有效資料D1、D2、D3以及D4合併在RAM(未圖示)中用以獲得一合併資料(D1+D2+D3+D4)。控制器102將合併資料(D1+D2+D3+D4)寫入終點備用區塊610。最後,控制器102將來源資料區塊601、602、603以及604放至備用區塊池110,並且將被寫入合併資料(D1+D2+D3+D4)之終點備用區塊610放至資料區塊池130。因此,在執行資料合併程序之後,位於備用區塊池中的備用區塊總數將會增加三。
參考第2圖。當目前程式化之分頁為目前資料區塊的第一分頁(步驟214),並且備用區塊數量大於備用區塊數量臨界值(步驟216)時,則控制器102將決定熱門區塊數量是否大於零(步驟220)。熱門區塊數量為在備用區塊池中110具有抹除次數大於熱門臨界值的熱門區塊總數量。因為該等熱門區塊具有高的抹除次數,若備用區塊池110中包括大量的熱門區塊,因此控制器102必須從備用區塊池110中擷取熱門區塊,並且對資料池中具有最小抹除次數的一資料區塊執行一耗損平衡程序(wear-level process)。因此,當備用區塊數量大於備用區塊數量臨界值並且熱門區塊數量大於零(步驟220)時,則控制器102設定用以耗損平衡程序之資料搬移資訊,以便啟動耗損平衡程序,使得熱門區塊數量減少(步驟222)。
在一實施例中,用以啟動耗損平衡程序之資料搬移資訊包括將被複製資料之至少一來源資料區塊的實體位址以及用於寫入資料之至少一終點備用區塊的實體位址。當在備 用區塊池110中具有複數熱門區塊時,控制器102決定該等熱門區塊為該等終點備用區塊。因為具有低抹除次數的資料區塊所儲存之資料具有低的更新機率,因此控制器102從資料區塊池130中選擇具有低抹除次數的數個資料區塊作為來源資料區塊。第7圖為根據本發明的耗損平衡程序之示意圖。當耗損平衡程序開始時,由資料區塊池130中選擇具有最小抹除次數的來源資料區塊701以及由備用區塊池110中選擇終點備用區塊711。接著,控制器102抹除終點備用區塊711,並且將所複製的資料D5寫入終點備用區塊711’。然後,具有低抹除次數的來源資料區塊701’被置放至備用區塊池110,並且來自備用區塊池110具有高抹除次數的終點備用區塊711’會被置放至資料區塊池130。因此,在執行完耗損平衡程序之後,備用區塊池110中熱門區塊的總數將減少一個。
參考第2圖。當該目標資料所寫入的目前程式化之分頁不是目前資料區塊的第一分頁(步驟214)時,則控制器102決定資料搬移資訊是否被設定(步驟224)。若用於資料合併程序或是耗損平衡程序的資料搬移資訊已被設定,則控制器102在有限的時間區間中根據資料搬移資訊執行部分的資料合併程序或是耗損平衡程序(步驟226)。該有限的時間區間是由主機和資料儲存裝置104間資料傳輸所需時間之標準決定。舉例而言,當主機送出一寫入指令以及送出目標資料到控制器102之後,該主機必須在有限的時間區間100毫秒~300毫秒間收到關於執行完畢的回應資訊,並且控制器102只能在有限的時間區間執行資料合併程序或是耗損平衡程序。
控制器102會由於有限的時間區間而將資料合併程序或是耗損平衡程序中資料搬移的操作,切成複數資料搬移程序。當一新的目標資料被寫入目前程式化之分頁後(步驟204),若目前程式化之分頁並不是目前資料區塊的第一分頁(步驟214),則在有限的時間區間中用於資料合併程序或是耗損平衡程序之資料搬移的複數部份操作程序之一者將會被執行。舉例而言,如第6圖所示,當用於資料合併程序的資料搬移資訊被設定(步驟224),控制器102在有限的時間區間中,從來源資料區塊601、602、603以及604中選取複數具有有效資料的目標分頁,並且從目標分頁中將有效資料複製至終點備用區塊610。舉例而言,如第7圖所示,當用於耗損平衡程序的資料搬移資訊被設定(步驟224),控制器102在有限的時間區間中,從來源資料區塊701中選取複數目標分頁,並且從目標分頁將資料複製至終點備用區塊711。在數個新的寫入指令被執行之後,用於資料合併程序或是耗損平衡程序的資料搬移操作也被完成。
第8圖係為本發明中可切換記憶體區域之資料儲存裝置800的方塊圖。資料儲存裝置800包括控制器802以及複數快閃記憶體區域810、820以及830。在一實施例中,快閃記憶體區域810、820以及830分別為不同的快閃記憶體晶片。舉例來說,快閃記憶體區域810為具有單階儲存單元(single-bit per cell;SLC)的快閃記憶體,快閃記憶體區域820為具有二階儲存單元(2 bit per cell;MLC)的快閃記憶體以及快閃記憶體區域830為具有三階儲存單元(3 bit per cell;TLC)的快閃記憶 體。在另一實施例中,快閃記憶體區域810、820以及830為單一快閃記憶體內的數個記憶體分割區間。每一快閃記憶體區域810、820以及830包括一備用區塊池以及一資料區塊池。控制器802獨立地管理位於每一快閃記憶體區域810、820以及830中的區塊。舉例而言,控制器802在單一快閃記憶體區域的備用區塊池以及資料區塊池之間執行資料合併程序或是耗損平衡程序。當執行區塊管理時,控制器802並不會將一快閃記憶體區域之區塊的資料與其他快閃記憶體區域的資料做交換。
第9圖係為根據本發明中用於管理記憶體區域810、820以及830的方法900之流程圖。首先,控制器802接收來自主機的目標資料(步驟902)。然後,控制器802自複數個快閃記憶體區域810、820以及830中,決定出用以寫入目標資料的一目標記憶體區域(步驟904)。然後,控制器802根據該目標記憶體區域,設定一實體位址範圍參數(步驟906)。在一實施例中,實體位址範圍參數包括一開始位址參數以及一結束位址參數,並且控制器802設定該開始位址參數為目標記憶體區域的開始位址,並且設定該結束位址參數為目標記憶體區域的結束位址。然後,控制器802根據目標記憶體區域,設定一備用區塊池參數(步驟908)。在一實施例中,控制器802將目標記憶體區域之備用區塊池中之備用區塊的實體位址紀錄至備用區塊池參數中。然後,控制器802將目標資料寫入目標記憶體區域的目前資料區塊中(步驟910)。
控制器802根據第2圖所示的方法200中的步驟 206~226,對目標記憶體區域的數個區塊執行資料合併程序或是耗損平衡程序。換句話說,控制器802對目標記憶體區域的資料區塊池內之數個資料區塊執行資料合併程序(步驟912),或於目標記憶體區域的備用區塊池中的複數備用區塊與目標記憶體區域的資料區塊池中的複數資料區塊之間執行耗損平衡程序(步驟914)。在步驟912中之資料合併程序或是步驟914中之耗損平衡程序中資料搬移資訊的設定與步驟218或222中之所示者相同,並且執行於步驟912中之資料合併程序或是步驟914中之耗損平衡程序也與步驟226相同。因此,控制器802可以獨立地管理目標記憶體區域內的區塊,而不需要同時管理其他快閃記憶體區域內的區塊。
100‧‧‧資料儲存裝置
110‧‧‧備用區塊池
102‧‧‧控制器
104‧‧‧快閃記憶體
120‧‧‧監禁池
130‧‧‧資料池
111~11n‧‧‧備用區塊
121~12k‧‧‧監禁區塊
131~13m‧‧‧資料區塊

Claims (16)

  1. 一種資料儲存裝置,耦接至一主機,該資料儲存裝置包括:一快閃記憶體,包括一備用區塊池以及一資料區塊池,其中該備用區塊池包括複數備用區塊,以及該資料區塊池包括複數資料區塊,其中一備用區塊數量為該等備用區塊的總數量;以及一控制器,接收來自該主機的一目標資料,將該目標資料寫至一目前資料區塊中,決定一目前程式之分頁是否為該目前資料區塊之一第一分頁,當該目前程式化之分頁為該第一分頁時,決定該備用區塊數量是否小於一備用區塊數量臨界值,以及當該備用區塊數量小於該備用區塊數量臨界值時,設定一資料合併程序所使用的一資料搬移資訊。
  2. 如申請專利範圍第1項所述之資料儲存裝置,其中當該目前程式化之分頁不是該第一分頁時,該控制器決定該資料搬移資訊是否被設定,並且當該資料搬移資訊已被設定時,該控制器在一有限的時間區間中根據該資料搬移資訊執行一資料合併程序,其中該有限的時間區間是由該主機和該資料儲存裝置之間的資料傳輸標準所決定。
  3. 如申請專利範圍第1項所述之資料儲存裝置,其中用於該資料合併程序的該資料搬移資訊包括被合併資料之複數來源資料區塊的實體位址以及將被寫入合併資料之一終點備用區塊的實體位址。
  4. 如申請專利範圍第3項所述之資料儲存裝置,其中當該控制器已設定該資料合併程序所使用的該資料搬移資訊,則該控制器從該資料區塊池中選擇具有最小有效分頁數量的該等資料區塊作為 該等來源資料區塊,以及從該備用區塊池中取得該終點備用區塊,並且抹除該終點備用區塊。
  5. 如申請專利範圍第4項所述之資料儲存裝置,其中該資料合併程序所使用的該資料搬移資訊包括該等來源資料區塊以及該終點備用區塊的實體位址,並且當該控制器執行該資料合併程序時,該控制器合併該等來源資料區塊的資料用以得到一合併資料,並且將該合併資料寫入該終點備用區塊。
  6. 如申請專利範圍第5項所述之資料儲存裝置,其中當該控制器在一有限的時間區間中執行該資料合併程序時,該控制器從該等來源資料區塊中選取具有有效資料的複數目標分頁,並且在該有限的時間區間中從該等目標分頁將該有效資料複製至該終點備用區塊。
  7. 如申請專利範圍第5項所述之資料儲存裝置,其中在該資料合併程序完成之後,該控制器進一步將該等來源資料區塊放至該備用區塊池,將該終點備用區塊放至該資料區塊池,並且將該等來源資料區塊的總數量加至該備用區塊數量。
  8. 如申請專利範圍第1項所述之資料儲存裝置,其中該備用區塊數量臨界值為15。
  9. 一種快閃記憶體之區塊管理方法,其中一資料儲存裝置耦接至一主機,該資料儲存裝置包括一快閃記憶體以及一控制器,該快閃記憶體包括一備用區塊池以及一資料區塊池,該備用區塊池包括複數備用區塊,該資料區塊池包括複數資料區塊,以及一備用區塊數量用以表示該等備用區塊的總數量,該快閃記憶體之區塊管理方法包括: 接收來自該主機的一目標資料;將該目標資料寫入一目前資料區塊;決定一目前程式化之分頁是否為該目前資料區塊的一第一分頁;當該目前程式化之分頁為該第一分頁時,決定該備用區塊數量是否小於一備用區塊數量臨界值;以及當該備用區塊數量小於該備用區塊數量臨界值時,設定一資料合併程序所使用的一資料搬移資訊。
  10. 如申請專利範圍第9項所述之快閃記憶體之區塊管理方法,更包括:當該目前程式化之分頁不是該第一分頁時,決定該資料搬移資訊是否被設定;以及當該資料搬移資訊已被設定時,在一有限的時間區間中根據該資料搬移資訊執行一資料合併程序;其中該有限的時間區間是由該主機和該資料儲存裝置之間的資料傳輸標準所決定。
  11. 如申請專利範圍第9項所述之快閃記憶體之區塊管理方法,其中該資料合併程序所使用的該資料搬移資訊包括欲合併資料之複數來源資料區塊的複數實體位址以及將被寫入所合併資料之一終點備用區塊的複數實體位址。
  12. 如申請專利範圍第11項所述之快閃記憶體之區塊管理方法,其中設定該資料合併程序所使用的該資料搬移資訊的步驟包括:從該資料區塊池中選擇具有最小有效分頁數量的該等資料區塊作為該等來源資料區塊;從該備用區塊池中取得該終點備用區塊;以及 抹除該終點備用區塊。
  13. 如申請專利範圍第10項所述之快閃記憶體之區塊管理方法,其中該資料合併程序所使用的該資料搬移資訊包括複數來源資料區塊以及一終點備用區塊的實體位址,以及執行該資料合併程序之步驟包括:合併儲存在該等來源資料區塊的資料用以得到一合併資料;將該合併資料寫入該終點備用區塊;以及將該等來源資料區塊放至該備用區塊池。
  14. 如申請專利範圍第13項所述之快閃記憶體之區塊管理方法,其中在該有限的時間區間中執行該資料合併程序的部分步驟包括:從該等來源資料區塊中選擇具有有效資料的複數目標分頁;在該有限的時間區間中,從該等目標分頁中將有效資料複製至該終點備用區塊。
  15. 如申請專利範圍第13項所述之快閃記憶體之區塊管理方法,更包括:當該資料合併程序完成之後,將該等來源資料區塊放至該備用區塊池,將該終點備用區塊放至該資料區塊池,以及將該等來源資料區塊的總數量加至該備用區塊數量。
  16. 如申請專利範圍第9項所述之快閃記憶體之區塊管理方法,其中該備用區塊數量臨界值為15。
TW102103259A 2012-05-18 2013-01-29 資料儲存裝置和快閃記憶體之區塊管理方法 TWI590150B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US13/474,801 US9116792B2 (en) 2012-05-18 2012-05-18 Data storage device and method for flash block management

Publications (2)

Publication Number Publication Date
TW201349095A true TW201349095A (zh) 2013-12-01
TWI590150B TWI590150B (zh) 2017-07-01

Family

ID=49582277

Family Applications (6)

Application Number Title Priority Date Filing Date
TW102103258A TW201349101A (zh) 2012-05-18 2013-01-29 資料儲存裝置和快閃記憶體之區塊管理方法
TW102103260A TWI460654B (zh) 2012-05-18 2013-01-29 資料儲存裝置和快閃記憶體之區塊管理方法
TW102103259A TWI590150B (zh) 2012-05-18 2013-01-29 資料儲存裝置和快閃記憶體之區塊管理方法
TW102103442A TWI489373B (zh) 2012-05-18 2013-01-30 資料儲存裝置和快閃記憶體之區塊管理方法
TW102103441A TW201349098A (zh) 2012-05-18 2013-01-30 資料儲存裝置和快閃記憶體之區塊管理方法
TW102103440A TWI514260B (zh) 2012-05-18 2013-01-30 資料儲存裝置和快閃記憶體之區塊管理方法

Family Applications Before (2)

Application Number Title Priority Date Filing Date
TW102103258A TW201349101A (zh) 2012-05-18 2013-01-29 資料儲存裝置和快閃記憶體之區塊管理方法
TW102103260A TWI460654B (zh) 2012-05-18 2013-01-29 資料儲存裝置和快閃記憶體之區塊管理方法

Family Applications After (3)

Application Number Title Priority Date Filing Date
TW102103442A TWI489373B (zh) 2012-05-18 2013-01-30 資料儲存裝置和快閃記憶體之區塊管理方法
TW102103441A TW201349098A (zh) 2012-05-18 2013-01-30 資料儲存裝置和快閃記憶體之區塊管理方法
TW102103440A TWI514260B (zh) 2012-05-18 2013-01-30 資料儲存裝置和快閃記憶體之區塊管理方法

Country Status (3)

Country Link
US (6) US9116792B2 (zh)
CN (6) CN103425597B (zh)
TW (6) TW201349101A (zh)

Families Citing this family (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010125574A1 (en) * 2009-04-27 2010-11-04 Kamlesh Gandhi Description
KR102067029B1 (ko) * 2012-12-13 2020-01-16 삼성전자주식회사 반도체 메모리 장치 및 메모리 시스템
US9632926B1 (en) * 2013-05-16 2017-04-25 Western Digital Technologies, Inc. Memory unit assignment and selection for internal memory operations in data storage systems
KR102164630B1 (ko) * 2013-06-28 2020-10-12 삼성전자주식회사 메모리 컨트롤러 및 상기 메모리 컨트롤러의 동작 방법
US9235486B1 (en) * 2013-09-30 2016-01-12 Symantec Corporation Techniques for spare storage pool management
US9329992B2 (en) * 2013-12-04 2016-05-03 Silicon Motion, Inc. Data storage device and flash memory control method
CN103631538B (zh) * 2013-12-05 2017-04-05 华为技术有限公司 冷热数据识别门限值计算方法、装置和系统
CN103761193B (zh) * 2013-12-17 2016-09-14 记忆科技(深圳)有限公司 抑制逻辑页碎片产生的方法及系统
CN103823640B (zh) * 2014-03-03 2017-12-01 山西科泰航天防务技术股份有限公司 一种Flash存储器的高效率存储方法
TWI516922B (zh) * 2014-03-12 2016-01-11 慧榮科技股份有限公司 資料儲存裝置及快閃記憶體零散資料收集方法
CN105468538B (zh) * 2014-09-12 2018-11-06 华为技术有限公司 一种内存迁移方法及设备
CN105489246B (zh) * 2014-09-16 2018-10-19 华邦电子股份有限公司 Nor闪存及其修补方法
US9740425B2 (en) * 2014-12-16 2017-08-22 Sandisk Technologies Llc Tag-based wear leveling for a data storage device
KR102513491B1 (ko) * 2015-07-15 2023-03-27 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
TWI585770B (zh) * 2015-08-11 2017-06-01 群聯電子股份有限公司 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置
KR102333746B1 (ko) * 2015-09-02 2021-12-01 삼성전자주식회사 재사용 주기에 따라 마모도를 관리하는 저장 장치의 동작 방법
US10416916B2 (en) * 2015-10-19 2019-09-17 Telefonaktiebolaget Lm Ericsson (Publ) Method and memory merging function for merging memory pages
TWI561985B (en) * 2015-10-22 2016-12-11 Silicon Motion Inc Data storage device and data maintenance method thereof
US9983963B2 (en) * 2015-11-09 2018-05-29 Alibaba Group Holding Limited System and method for exploiting hard disk drive capacity reserve and extending operating life thereof
US10387329B2 (en) * 2016-02-10 2019-08-20 Google Llc Profiling cache replacement
US20170277629A1 (en) * 2016-03-25 2017-09-28 Alibaba Group Holding Limited Extending the useful lifespan of nonvolatile memory
TWI614605B (zh) * 2016-03-31 2018-02-11 慧榮科技股份有限公司 資料儲存裝置及其資料維護方法
TWI652572B (zh) 2016-03-31 2019-03-01 慧榮科技股份有限公司 資料儲存裝置
TWI590051B (zh) 2016-06-21 2017-07-01 慧榮科技股份有限公司 資料儲存裝置及其資料維護方法
TWI615710B (zh) * 2016-12-14 2018-02-21 群聯電子股份有限公司 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元
KR102671760B1 (ko) * 2016-12-27 2024-06-05 에스케이하이닉스 주식회사 컨트롤러 및 컨트롤러의 동작 방법
US10380028B2 (en) * 2016-12-30 2019-08-13 Western Digital Technologies, Inc. Recovery of validity data for a data storage system
CN108509349B (zh) * 2017-02-27 2022-10-14 得一微电子股份有限公司 一种nand flash的数据源区块回收方法及固态硬盘
CN108877863B (zh) * 2017-05-16 2020-08-04 华邦电子股份有限公司 快闪存储器存储装置及其操作方法
KR20180125694A (ko) * 2017-05-16 2018-11-26 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
CN108563397B (zh) * 2018-01-04 2021-08-24 威盛电子股份有限公司 存储装置以及数据保存方法
CN108089994B (zh) * 2018-01-04 2021-06-01 威盛电子股份有限公司 存储装置以及数据保存方法
CN110058794B (zh) * 2018-01-19 2022-11-01 上海宝存信息科技有限公司 用于动态执行垃圾回收数据储存装置与操作方法
US10936199B2 (en) * 2018-07-17 2021-03-02 Silicon Motion, Inc. Flash controllers, methods, and corresponding storage devices capable of rapidly/fast generating or updating contents of valid page count table
CN110888593B (zh) * 2018-09-07 2024-01-26 慧荣科技股份有限公司 数据储存装置以及非挥发式存储器控制方法
US10795576B2 (en) * 2018-11-01 2020-10-06 Micron Technology, Inc. Data relocation in memory
CN109669889B (zh) * 2018-12-24 2021-03-02 青岛方寸微电子科技有限公司 一种轻量型Nor Flash闪存控制方法和装置
TWI702497B (zh) * 2018-12-26 2020-08-21 群聯電子股份有限公司 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元
CN111949199B (zh) * 2019-05-16 2024-04-26 兆易创新科技集团股份有限公司 一种存储设备的数据写入方法、装置及存储设备
CN110347612A (zh) * 2019-06-04 2019-10-18 华南理工大学 一种适用于固态盘的动态调整垃圾回收方法
TWI719654B (zh) * 2019-06-21 2021-02-21 慧榮科技股份有限公司 閃存實體資源集合管理裝置及方法以及電腦程式產品
CN113032288B (zh) * 2019-12-25 2023-02-28 杭州海康存储科技有限公司 冷热数据阈值的确定方法、装置及设备
TWI748410B (zh) * 2020-04-15 2021-12-01 慧榮科技股份有限公司 用來針對非揮發性記憶體進行區塊管理的方法以及設備
CN112433674B (zh) * 2020-11-16 2021-07-06 连邦网络科技服务南通有限公司 一种计算机用数据迁移系统及方法
US11645198B2 (en) * 2020-12-08 2023-05-09 International Business Machines Corporation Buffer pool maintenance improvement
US11966618B2 (en) 2021-08-25 2024-04-23 Western Digital Technologies, Inc. Purposeful super device imbalance for ZNS SSD efficiency
US11960753B2 (en) * 2021-08-25 2024-04-16 Western Digital Technologies, Inc. Solution for super device imbalance in ZNS SSD
US20230335204A1 (en) * 2022-04-15 2023-10-19 Micron Technology, Inc. Techniques to retire unreliable blocks
US12009038B2 (en) * 2022-04-20 2024-06-11 Micron Technology, Inc. Memory device wear leveling
US12131038B2 (en) * 2022-08-03 2024-10-29 Capital One Services, Llc Systems and methods for adaptive data partitioning within cluster systems

Family Cites Families (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8027194B2 (en) * 1988-06-13 2011-09-27 Samsung Electronics Co., Ltd. Memory system and method of accessing a semiconductor memory device
US5956473A (en) * 1996-11-25 1999-09-21 Macronix International Co., Ltd. Method and system for managing a flash memory mass storage system
US20080195798A1 (en) * 2000-01-06 2008-08-14 Super Talent Electronics, Inc. Non-Volatile Memory Based Computer Systems and Methods Thereof
US20050204187A1 (en) * 2004-03-11 2005-09-15 Lee Charles C. System and method for managing blocks in flash memory
JP4812192B2 (ja) 2001-07-27 2011-11-09 パナソニック株式会社 フラッシュメモリ装置、及び、それに記憶されたデータのマージ方法
US6895464B2 (en) * 2002-06-03 2005-05-17 Honeywell International Inc. Flash memory management system and method utilizing multiple block list windows
US6973531B1 (en) * 2002-10-28 2005-12-06 Sandisk Corporation Tracking the most frequently erased blocks in non-volatile memory systems
US7035967B2 (en) * 2002-10-28 2006-04-25 Sandisk Corporation Maintaining an average erase count in a non-volatile storage system
US6985992B1 (en) 2002-10-28 2006-01-10 Sandisk Corporation Wear-leveling in non-volatile storage systems
US7254668B1 (en) * 2002-10-28 2007-08-07 Sandisk Corporation Method and apparatus for grouping pages within a block
US20050120265A1 (en) 2003-12-02 2005-06-02 Pline Steven L. Data storage system with error correction code and replaceable defective memory
US20080082736A1 (en) * 2004-03-11 2008-04-03 Chow David Q Managing bad blocks in various flash memory cells for electronic data flash card
US7984084B2 (en) * 2005-08-03 2011-07-19 SanDisk Technologies, Inc. Non-volatile memory with scheduled reclaim operations
US7853749B2 (en) * 2005-09-01 2010-12-14 Cypress Semiconductor Corporation Flash drive fast wear leveling
US7594087B2 (en) * 2006-01-19 2009-09-22 Sigmatel, Inc. System and method for writing data to and erasing data from non-volatile memory
US7653778B2 (en) * 2006-05-08 2010-01-26 Siliconsystems, Inc. Systems and methods for measuring the useful life of solid-state storage devices
JP4700562B2 (ja) 2006-05-18 2011-06-15 株式会社バッファロー データ記憶装置およびデータ記憶方法
US7953954B2 (en) * 2007-01-26 2011-05-31 Micron Technology, Inc. Flash storage partial page caching
CN101281492B (zh) * 2007-04-04 2011-02-02 扬智科技股份有限公司 恢复闪存的对照表的方法
US7689762B2 (en) 2007-05-03 2010-03-30 Atmel Corporation Storage device wear leveling
KR100857761B1 (ko) * 2007-06-14 2008-09-10 삼성전자주식회사 웨어 레벨링을 수행하는 메모리 시스템 및 그것의 쓰기방법
TWI366828B (en) * 2007-09-27 2012-06-21 Phison Electronics Corp Wear leveling method and controller using the same
CN101409108B (zh) * 2007-10-09 2011-04-13 群联电子股份有限公司 平均磨损方法及使用此方法的控制器
US8122179B2 (en) * 2007-12-14 2012-02-21 Silicon Motion, Inc. Memory apparatus and method of evenly using the blocks of a flash memory
KR101454817B1 (ko) * 2008-01-11 2014-10-30 삼성전자주식회사 반도체 메모리 장치 및 그것의 마모도 관리 방법
JP4675985B2 (ja) * 2008-03-01 2011-04-27 株式会社東芝 メモリシステム
CN101566969B (zh) * 2008-04-21 2011-05-18 群联电子股份有限公司 提升非易失性存储器存储装置的管理效能的方法及控制器
US8275928B2 (en) * 2008-05-15 2012-09-25 Silicon Motion, Inc. Memory module and method for performing wear-leveling of memory module using remapping, link, and spare area tables
US8959280B2 (en) * 2008-06-18 2015-02-17 Super Talent Technology, Corp. Super-endurance solid-state drive with endurance translation layer (ETL) and diversion of temp files for reduced flash wear
US8843691B2 (en) * 2008-06-25 2014-09-23 Stec, Inc. Prioritized erasure of data blocks in a flash storage device
TWI389125B (zh) * 2008-07-18 2013-03-11 A Data Technology Co Ltd 記憶體儲存裝置及其控制方法
US8140739B2 (en) * 2008-08-08 2012-03-20 Imation Corp. Flash memory based storage devices utilizing magnetoresistive random access memory (MRAM) to store files having logical block addresses stored in a write frequency file buffer table
US8219781B2 (en) * 2008-11-06 2012-07-10 Silicon Motion Inc. Method for managing a memory apparatus, and associated memory apparatus thereof
TWI413931B (zh) 2009-01-15 2013-11-01 Phison Electronics Corp 快閃記憶體資料之存取方法及其儲存系統與控制系統
US20100235605A1 (en) * 2009-02-13 2010-09-16 Nir Perry Enhancement of storage life expectancy by bad block management
TWI409819B (zh) * 2009-03-03 2013-09-21 Silicon Motion Inc 平均地使用一快閃記憶體的複數個區塊之方法以及相關之記憶裝置及其控制器
KR101586047B1 (ko) * 2009-03-25 2016-01-18 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 프로그램 방법
US8412909B2 (en) * 2009-04-08 2013-04-02 Samsung Electronics Co., Ltd. Defining and changing spare space and user space in a storage apparatus
KR101571693B1 (ko) * 2009-04-15 2015-11-26 삼성전자주식회사 동작 수행 중 다른 요청을 우선 처리할 수 있는 비휘발성 메모리 컨트롤러, 이를 포함하는 시스템 및 그 관리 방법
TWI414940B (zh) * 2009-12-30 2013-11-11 Phison Electronics Corp 區塊管理與資料寫入方法、快閃記憶體儲存系統與控制器
US8402203B2 (en) * 2009-12-31 2013-03-19 Seagate Technology Llc Systems and methods for storing data in a multi-level cell solid state storage device
TWI399643B (zh) 2009-12-31 2013-06-21 Phison Electronics Corp 快閃記憶體儲存系統及其控制器與資料寫入方法
JP2011198433A (ja) * 2010-03-23 2011-10-06 Toshiba Corp メモリシステム
KR20120002760A (ko) * 2010-07-01 2012-01-09 삼성전자주식회사 낸드 플래쉬 메모리의 동작 신뢰성을 향상시키는 데이터 기록 방법 및 데이터 기록 장치
CN102298555B (zh) * 2011-08-22 2016-04-27 宜兴市华星特种陶瓷科技有限公司 基于nand技术的模块化闪存管理系统
TWI454911B (zh) * 2011-10-12 2014-10-01 Phison Electronics Corp 資料寫入方法、記憶體控制器與記憶體儲存裝置

Also Published As

Publication number Publication date
US20130311702A1 (en) 2013-11-21
US20130311703A1 (en) 2013-11-21
TWI514260B (zh) 2015-12-21
CN103425597A (zh) 2013-12-04
US9104549B2 (en) 2015-08-11
CN103425588B (zh) 2017-03-01
CN103425598B (zh) 2017-04-19
TW201349099A (zh) 2013-12-01
CN103425596A (zh) 2013-12-04
CN103425597B (zh) 2016-04-06
TW201349096A (zh) 2013-12-01
US20130311701A1 (en) 2013-11-21
CN103425588A (zh) 2013-12-04
TW201349097A (zh) 2013-12-01
TWI590150B (zh) 2017-07-01
US20130311698A1 (en) 2013-11-21
US9116792B2 (en) 2015-08-25
CN103425598A (zh) 2013-12-04
TWI489373B (zh) 2015-06-21
CN103425595B (zh) 2017-03-01
US20130311704A1 (en) 2013-11-21
CN103425599A (zh) 2013-12-04
TW201349101A (zh) 2013-12-01
US9600408B2 (en) 2017-03-21
US9223691B2 (en) 2015-12-29
CN103425595A (zh) 2013-12-04
US20130311705A1 (en) 2013-11-21
TWI460654B (zh) 2014-11-11
TW201349098A (zh) 2013-12-01

Similar Documents

Publication Publication Date Title
TWI590150B (zh) 資料儲存裝置和快閃記憶體之區塊管理方法
US9846641B2 (en) Variability aware wear leveling
US10310739B2 (en) Memory management method, memory control circuit unit and memory storage device
US11036429B2 (en) Memory control method, memory storage device and memory control circuit unit to determine a source block using interleaving information
US11163694B2 (en) Memory control method, memory storage device and memory control circuit unit
TW201801089A (zh) 資料寫入方法、記憶體控制電路單元及記憶體儲存裝置
US11755242B2 (en) Data merging method, memory storage device for updating copied L2P mapping table according to the physical address of physical unit
TW202238369A (zh) 在快閃記憶體中進行耗損平衡操作的方法和相關控制器以及儲存系統
TWI697009B (zh) 寫入控制方法以及資料儲存裝置及其控制器
US10871914B2 (en) Memory management method, memory storage device and memory control circuit unit
US11010290B2 (en) Method for reading management information according to updating data reflecting both of host write and data merge, memory storage device and memory control circuit unit
US11334273B1 (en) Valid data merging method, memory storage device and memory control circuit unit
US10545700B2 (en) Memory management method, memory storage device and memory control circuit unit
TW201835753A (zh) 資料程式化方法、記憶體儲存裝置及記憶體控制電路單元
JP5494086B2 (ja) 不揮発性記憶装置および不揮発性メモリコントローラ
US11307982B2 (en) Memory management method with a data merging process based on risk physical units and distribution counts, memory storage device and memory control circuit unit
US11249898B1 (en) Data merge method, memory storage device and memory control circuit unit
JP2014225196A (ja) 半導体記憶装置およびその制御方法
TWI453747B (zh) 用來管理一快閃記憶體的複數個區塊之方法以及相關之記憶裝置及其控制器