TWI748410B - 用來針對非揮發性記憶體進行區塊管理的方法以及設備 - Google Patents
用來針對非揮發性記憶體進行區塊管理的方法以及設備 Download PDFInfo
- Publication number
- TWI748410B TWI748410B TW109112609A TW109112609A TWI748410B TW I748410 B TWI748410 B TW I748410B TW 109112609 A TW109112609 A TW 109112609A TW 109112609 A TW109112609 A TW 109112609A TW I748410 B TWI748410 B TW I748410B
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- block
- blank
- group
- cold
- 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/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- 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/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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- G—PHYSICS
- G06—COMPUTING; 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]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本發明提供一種用來針對非揮發性記憶體進行區塊管理的方法及設備。該方法包含:依據一第一空白區塊的一抹除次數判斷該第一空白區塊是否屬於一冷區塊群或一熱區塊群;因應該第一空白區塊屬於該冷區塊群,從複數個空白區塊選擇該第一空白區塊作為一目標區塊,以供進行資料寫入;依據針對待寫入的第一資料的至少一特徵參數判斷該第一資料是否屬於一冷資料群或一熱資料群;以及因應該第一資料屬於該熱資料群,將該第一資料寫入該第一空白區塊,以使用該第一空白區塊作為該第一資料的資料區塊。
Description
本發明係關於記憶體控制,尤指一種用來針對一非揮發性記憶體(non-volatile memory,NV memory)進行區塊管理的方法以及相關設備(apparatus)諸如一記憶裝置、其控制器以及一電子裝置。
近年來由於記憶體的技術不斷地發展,各種可攜式或非可攜式記憶裝置(例如:分別符合SD/MMC、CF、MS以及XD標準之記憶卡;又例如:分別符合UFS以及eMMC標準之嵌入式(embedded)記憶裝置)被廣泛地實施於諸多應用中。因此,這些記憶裝置中之記憶體的存取控制遂成為相當熱門的議題。
以常用的NAND型快閃記憶體而言,其主要可區分為單階細胞(single level cell,SLC)與多階細胞(multiple level cell,MLC)兩大類之快閃記憶體。單階細胞快閃記憶體中之每個被當作記憶細胞(memory cell)的電晶體只有兩種電荷值,分別用來表示邏輯值0與邏輯值1。另外,多階細胞快閃記憶體中之每個被當作記憶細胞的電晶體的儲存能力可被充分利用,其採用較高的電壓來驅動,以透過不同的電壓位準在一個電晶體中記錄至少兩組位元資訊(諸如00、01、11、10);理論上,多階細胞快閃記憶體的記錄密度可以達到單階細胞快閃記憶體的記錄密度之至少兩倍,這對於NAND型快閃記憶體之相關產業而言,是非常好的消息。
相較於單階細胞快閃記憶體,由於多階細胞快閃記憶體之價格較便宜,並且在有限的空間裡可提供較大的容量,故多階細胞快閃記憶體很快地成
為市面上之記憶裝置競相採用的主流。然而,多階細胞快閃記憶體的不穩定性所導致的問題也一一浮現。為了確保記憶裝置對快閃記憶體之存取控制能符合相關規範,快閃記憶體的控制器通常備有某些管理機制以妥善地管理資料之存取。
依據相關技術,有了這些管理機制的記憶裝置還是有不足之處。例如,於進行耗損平均(wear leveling)處理的期間所產生的某一資料區塊可能具有待更新資料、且可能一再地被使用,這可造成這個區塊的抹除次數(erase count)急速地增加。於是,這個區塊可能提早變成壞區塊,而使該記憶裝置的整體效能變差。因此,需要一種新穎的方法及相關架構,以在沒有副作用或較不可能帶來副作用之狀況下解決相關技術的問題。
本發明之一目的在於提供一種用來針對一非揮發性記憶體(non-volatile memory,NV memory)進行區塊管理的方法以及相關設備(apparatus)諸如一記憶裝置、其控制器以及一電子裝置,以解決上述之問題。
本發明至少一實施例提供一種用來針對一非揮發性記憶體進行區塊管理的方法,其中該方法係應用於一記憶裝置的一控制器。該記憶裝置可包含該控制器與該非揮發性記憶體,該非揮發性記憶體可包含至少一非揮發性記憶體元件(例如一或多個非揮發性記憶體元件),且上述至少一非揮發性記憶體元件可包含複數個區塊。該方法可包含:依據一第一空白區塊的一抹除次數判斷該第一空白區塊是否屬於一冷區塊群或一熱區塊群,其中該冷區塊群與該熱區塊群分別對應於一第一抹除次數範圍(erase count range)與一第二抹除次數範圍,且該第二抹除次數範圍中的任何數值大於該第一抹除次數範圍中的任何數值;因應該第一空白區塊屬於該冷區塊群,從複數個空白區塊選擇該第一空白
區塊作為一目標區塊(target block),以供進行資料寫入,其中該複數個區塊包含該複數個空白區塊,且該複數個空白區塊包含該第一空白區塊;依據針對待寫入的第一資料的至少一特徵參數判斷該第一資料是否屬於一冷資料群或一熱資料群,其中該冷資料群與該熱資料群分別對應於一第一存取機率範圍(access probability range)與一第二存取機率範圍,且該第二存取機率範圍中的任何數值大於該第一存取機率範圍中的任何數值;以及因應該第一資料屬於該熱資料群,將該第一資料寫入該第一空白區塊,以使用該第一空白區塊作為該第一資料的資料區塊。
除了上述方法外,本發明亦提供一種記憶裝置,且該記憶裝置包含一非揮發性記憶體以及一控制器。該非揮發性記憶體係用來儲存資訊,其中該非揮發性記憶體可包含至少一非揮發性記憶體元件(例如一或多個非揮發性記憶體元件),且上述至少一非揮發性記憶體元件可包含複數個區塊。該控制器係耦接至該非揮發性記憶體,且該控制器係用來控制該記憶裝置之操作。另外,該控制器包含一處理電路,其中該處理電路係用來依據來自一主裝置(host device)之複數個主裝置指令(host command)控制該控制器,以容許該主裝置透過該控制器存取該非揮發性記憶體。舉例來說,該控制器依據一第一空白區塊的一抹除次數判斷該第一空白區塊是否屬於一冷區塊群或一熱區塊群,其中該冷區塊群與該熱區塊群分別對應於一第一抹除次數範圍與一第二抹除次數範圍,且該第二抹除次數範圍中的任何數值大於該第一抹除次數範圍中的任何數值;因應該第一空白區塊屬於該冷區塊群,該控制器從複數個空白區塊選擇該第一空白區塊作為一目標區塊,以供進行資料寫入,其中該複數個區塊包含該複數個空白區塊,且該複數個空白區塊包含該第一空白區塊;該控制器依據針對待寫入的第一資料的至少一特徵參數判斷該第一資料是否屬於一冷資料群或一熱資料群,其中該冷資料群與該熱資料群分別對應於一第一存取機率範圍與
一第二存取機率範圍,且該第二存取機率範圍中的任何數值大於該第一存取機率範圍中的任何數值;以及因應該第一資料屬於該熱資料群,該控制器將該第一資料寫入該第一空白區塊,以使用該第一空白區塊作為該第一資料的資料區塊。
依據某些實施例,本發明亦提供相關之電子裝置。該電子裝置可包含上述記憶裝置,且可另包含:該主裝置,耦接至該記憶裝置。該主裝置可包含:至少一處理器,用來控制該主裝置之操作;以及一電源供應電路,耦接至該至少一處理器,用來提供電源給該至少一處理器以及該記憶裝置。另外,該記憶裝置可提供儲存空間給該主裝置。
除了上述方法外,本發明亦提供一種記憶裝置的控制器,其中該記憶裝置包含該控制器以及一非揮發性記憶體。該非揮發性記憶體可包含至少一非揮發性記憶體元件(例如一或多個非揮發性記憶體元件),且所述至少一非揮發性記憶體元件包含複數個區塊。另外,該控制器包含一處理電路,其中該處理電路係用來依據來自一主裝置之複數個主裝置指令控制該控制器,以容許該主裝置透過該控制器存取該非揮發性記憶體。舉例來說,該控制器依據一第一空白區塊的一抹除次數判斷該第一空白區塊是否屬於一冷區塊群或一熱區塊群,其中該冷區塊群與該熱區塊群分別對應於一第一抹除次數範圍與一第二抹除次數範圍,且該第二抹除次數範圍中的任何數值大於該第一抹除次數範圍中的任何數值;因應該第一空白區塊屬於該冷區塊群,該控制器從複數個空白區塊選擇該第一空白區塊作為一目標區塊,以供進行資料寫入,其中該複數個區塊包含該複數個空白區塊,且該複數個空白區塊包含該第一空白區塊;該控制器依據針對待寫入的第一資料的至少一特徵參數判斷該第一資料是否屬於一冷資料群或一熱資料群,其中該冷資料群與該熱資料群分別對應於一第一存取機率範圍與一第二存取機率範圍,且該第二存取機率範圍中的任何數值大於該第
一存取機率範圍中的任何數值;以及因應該第一資料屬於該熱資料群,該控制器將該第一資料寫入該第一空白區塊,以使用該第一空白區塊作為該第一資料的資料區塊。
本發明所提出之方法以及相關設備能確保該記憶裝置能在各種狀況下妥善地操作,其中上述相關設備例如:該控制器、該記憶裝置、該電子裝置等。另外,透過進行關於資料特性的統計,本發明所提出之方法以及相關設備可選擇性地將熱資料寫入冷區塊以及將冷資料寫入熱區塊,以提升整體效能。
10:電子裝置
50:主裝置
52:處理器
54:電源供應電路
100:記憶裝置
110:記憶體控制器
112:微處理器
112M:唯讀記憶體
112C:程式碼
114:控制邏輯電路
116:隨機存取記憶體
116T,122T:表
118:傳輸介面電路
120:非揮發性記憶體
122-1,122-2~122-N:非揮發性記憶體元件
S10,S12,S14,S16,S18,S20:步驟
310:目標區塊
312C:冷區塊
312H:熱區塊
314C,314H:區塊
DATA_C:冷資料
DATA_H:熱資料
400:L2P表
L_ADD:邏輯位址
BLK#:區塊編號
PG#:頁面編號
AC:存取次數
710:來源區塊
第1圖為依據本發明一實施例之一電子裝置的示意圖。
第2圖為依據本發明一實施例之一種用來針對一非揮發性記憶體進行區塊管理的方法的流程圖。
第3圖繪示第2圖所示方法於本發明一實施例中的一資料分類及寫入控制方案。
第4圖繪示第3圖所示資料分類及寫入控制方案於本發明一實施例中的實施細節。
第5圖繪示將冷資料寫入一或多個熱區塊的例子。
第6圖繪示將熱資料寫入一或多個冷區塊的例子。
第7圖繪示將第3圖所示資料分類及寫入控制方案應用於一垃圾收集(Garbage Collection,GC)程序的例子。
I.記憶體系統
第1圖為依據本發明一實施例之一種電子裝置10的示意圖,其中電子
裝置10可包含一主裝置(host device)50與一記憶裝置100。主裝置50可包含至少一處理器(例如一或多個處理器),其可統稱為處理器52,且可另包含一電源供應電路54,耦接至處理器52。處理器52係用來控制主裝置50的運作,而電源供應電路54係用來提供電源予處理器52以及記憶裝置100,並輸出一或多個驅動電壓至記憶裝置100。記憶裝置100可用來提供儲存空間給主裝置50,且可從主裝置50取得該一或多個驅動電壓作為記憶裝置100之電源。主裝置50的例子可包含(但不限於):多功能行動電話(multifunctional mobile phone)、可穿戴裝置(wearable device)、平板電腦(tablet)、以及個人電腦(personal computer)諸如桌上型電腦及膝上型電腦。記憶裝置100的例子可包含(但不限於):可攜式記憶裝置(諸如符合SD/MMC、CF、MS或XD標準之記憶卡)、固態硬碟(solid state drive,SSD)、以及分別符合UFS與EMMC標準之各種嵌入式(embedded)記憶裝置。依據本實施例,記憶裝置100可包含一控制器諸如記憶體控制器110,且可另包含一非揮發性(non-volatile,NV)記憶體120,其中該控制器係用來控制記憶裝置100的運作並存取(access)非揮發性記憶體120,且非揮發性記憶體120係用來儲存資訊。非揮發性記憶體120可包含至少一非揮發性記憶體元件(例如一或多個非揮發性記憶體元件),諸如複數個非揮發性記憶體元件122-1、122-2、...與122-N,其中符號「N」可代表大於一的正整數。例如:非揮發性記憶體120可為一快閃記憶體(flash memory),而該複數個非揮發性記憶體元件122-1、122-2、...與122-N可為複數個快閃記憶體晶片(flash memory chip)或複數個快閃記憶體裸晶(flash memory die),但本發明不限於此。
如第1圖所示,記憶體控制器110可包含處理電路諸如微處理器112、儲存單元諸如唯讀記憶體(Read Only Memory,ROM)112M、控制邏輯電路114、隨機存取記憶體(Random Access Memory,RAM)116、以及傳輸介面電路118,其中以上元件可透過匯流排彼此耦接。隨機存取記憶體116係以靜態隨機存取記
憶體(Static RAM,SRAM)來實施,但本發明不限於此。隨機存取記憶體116可用來提供內部儲存空間給記憶體控制器110。例如,隨機存取記憶體116可用作一緩衝記憶體來緩衝資料。另外,本實施例之唯讀記憶體112M係用來儲存一程式碼112C,而微處理器112則用來執行程式碼112C以控制對非揮發性記憶體120之存取。請注意,在某些例子中,程式碼112C可被儲存於隨機存取記憶體116或任何形式之記憶體內。此外,控制邏輯電路114中的一資料保護電路(未顯示)可保護資料及/或進行錯誤更正,而傳輸介面電路118可符合一特定通訊標準(諸如串列高級技術附件(Serial Advanced Technology Attachment,SATA)標準、通用序列匯流排(Universal Serial Bus,USB)標準、快捷外設互聯(Peripheral Component Interconnect Express,PCIE)標準、嵌入式多媒體記憶卡(embedded Multi Media Card,eMMC)標準、或通用快閃記憶體儲存(Universal Flash Storage,UFS)標準),且可依據該特定通訊標準進行通訊。
於本實施例中,主裝置50可藉由傳送主裝置指令(host command)與對應的邏輯位址予記憶體控制器110來存取記憶裝置100。記憶體控制器110接收該些主裝置指令與該些邏輯位址,並將該些主裝置指令轉譯成記憶體運作指令(可簡稱為運作指令),再以該些運作指令控制非揮發性記憶體120以對非揮發性記憶體120當中之具有實體位址之記憶單位(memory unit)(例如資料頁(page))進行讀取(read)、寫入(write)/編程(program)等,其中該些實體位址對應於該些邏輯位址。當記憶體控制器110對該複數個非揮發性記憶體元件122-1、122-2、...與122-N中之任一非揮發性記憶體元件122-n進行一抹除(erase)運作時(符號「n」可代表區間[1,N]中之任一整數),非揮發性記憶體元件122-n的多個區塊中之至少一區塊會被抹除,其中該多個區塊中之每一區塊可包含多個頁(諸如資料頁),且一存取運作(例如讀取或寫入)可對一或多個頁來進行。
II.系統管理機制
依據某些實施例,該處理電路諸如微處理器112可依據來自主裝置50的複數個主裝置指令控制記憶體控制器110,以容許主裝置50透過記憶體控制器110存取非揮發性記憶體120。記憶體控制器110可為主裝置50將資料存入非揮發性記憶體120,因應來自主裝置50的一主裝置指令(例如該複數個主裝置指令中的一者)讀取已儲存的資料,並提供從非揮發性記憶體120讀取的資料給主裝置50。於非揮發性記憶體120諸如快閃記憶體中,上述至少一非揮發性記憶體元件(諸如複數個非揮發性記憶體元件122-1、122-2、...與122-N)可包含複數個區塊,而記憶體控制器110可被設計來進行動態的耗損平均(wear leveling)處理以在進行多種程序中的任何程序的期間平均地使用該複數個區塊,例如,分別將不同群的資料寫入不同群的區塊,以在沒有副作用或較不可能帶來副作用之狀況下解決相關技術的問題。
尤其,該複數個區塊可包含複數個空白區塊,而記憶體控制器110可對該複數個空白區塊進行區塊分類且針對待寫入資料進行資料分類,以供選擇性地進行資料寫入。記憶體控制器110可於至少一對照表(例如一或多個對照表)諸如表116T與122T中記錄、維護、及/或更新關於該區塊分類的區塊分類資訊以及關於該資料分類的資料分類資訊,以分別指出不同群的區塊以及不同群的資料。例如,記憶體控制器110可將表116T備份至非揮發性記憶體120(例如複數個非揮發性記憶體元件122-1、122-2、...與122-N中的一或多個非揮發性記憶體元件,諸如非揮發性記憶體元件122-1)中的表122T。又例如,記憶體控制器110可將表122T的至少一部分(例如一部分或全部)載入至隨機存取記憶體116成為表116T,以供快速參考。
第2圖為依據本發明一實施例之一種用來針對一非揮發性記憶體進
行區塊管理的方法的流程圖。該方法可應用於第1圖所示架構(例如電子裝置10、記憶裝置100、記憶體控制器110等),且可由記憶裝置100的記憶體控制器110來執行。
於步驟S10中,針對該複數個空白區塊中的任何空白區塊,記憶體控制器110依據該空白區塊的一抹除次數判斷該空白區塊是否屬於一冷區塊群或一熱區塊群,其中該冷區塊群與該熱區塊群分別對應於一第一抹除次數範圍與一第二抹除次數範圍,且該第二抹除次數範圍中的任何數值大於該第一抹除次數範圍中的任何數值。為了便於理解,假設這些空白區塊的平均抹除次數等於999,而該第一抹除次數範圍與該第二抹除次數範圍分別等於區間[0,999]與[1000,10000],但本發明不限於此。於某些實施例中,該平均抹除次數、該第一抹除次數範圍與該第二抹除次數範圍可予以變化。另外,該複數個空白區塊可包含一第一空白區塊與一第二空白區塊。例如,當該第一空白區塊的抹除次數落入該第一抹除次數範圍諸如區間[0,999],記憶體控制器110可判斷該第一空白區塊屬於該冷區塊群。又例如,當該第二空白區塊的抹除次數落入該第二抹除次數範圍諸如區間[1000,10000],記憶體控制器110可判斷該第二空白區塊屬於該熱區塊群。
於步驟S12中,記憶體控制器110判斷該複數個空白區塊的關於冷或熱區塊群的該區塊分類是否完成。如果是,進入步驟S14;如果否,進入步驟S10,以繼續進行該區塊分類。以第3圖所示資料分類及寫入控制方案為例,在該區塊分類完成以後,該冷區塊群可包含一或多個冷區塊312C諸如一區塊314C,而該熱區塊群可包含一或多個熱區塊312H諸如一區塊314H,但本發明不限於此。於某些實施例中,上述一或多個冷區塊312C與一或多個熱區塊312H可分別包含多個區塊{314C}與多個區塊{314H}。
於步驟S14中,記憶體控制器110分別選擇屬於該冷區塊群的一或多
個冷區塊312C與屬於該熱區塊群的一或多個熱區塊312H作為目標區塊(target block)310,以供進行資料寫入。例如,因應該第一空白區塊諸如區塊314C屬於該冷區塊群,記憶體控制器110從該複數個空白區塊選擇該第一空白區塊作為一目標區塊,以供進行資料寫入,其中該第一空白區塊可作為該冷區塊的例子。又例如,因應該第二空白區塊諸如區塊314H屬於該熱區塊群,記憶體控制器110從該複數個空白區塊選擇該第二空白區塊作為另一目標區塊,以供進行資料寫入,其中該第二空白區塊可作為該熱區塊的例子。
於步驟S16中,記憶體控制器110依據針對待寫入的資料的至少一特徵參數判斷該資料是否屬於一冷資料群諸如冷資料DATA_C或一熱資料群諸如熱資料DATA_H,以產生該資料的一分類結果,以供指出該資料屬於該冷資料群或該熱資料群,其中該冷資料群與該熱資料群分別對應於一第一存取機率範圍與一第二存取機率範圍,且該第二存取機率範圍中的任何數值大於該第一存取機率範圍中的任何數值。依據本實施例,分別於一系列邏輯位址{L_ADD}存取一系列資料的一系列存取機率可視為該系列邏輯位址{L_ADD}之各自的存取機率,且這些存取機率的平均值可稱為該系列邏輯位址{L_ADD}的平均存取機率。記憶體控制器110可進行關於該系列邏輯位址{L_ADD}及/或該系列資料的特徵參數統計(例如,透過預先或在線的方式),以取得該系列邏輯位址{L_ADD}之各自的存取機率,以供分別判斷待寫入的多組資料是否屬於該冷資料群或該熱資料群。為了便於理解,假設該平均存取機率等於0.5,而該第一存取機率範圍與該第二存取機率範圍分別等於區間[0,0.499]與[0.500,1.000],但本發明不限於此。於某些實施例中,該平均存取機率、該第一存取機率範圍與該第二存取機率範圍可予以變化。另外,待寫入的該多組資料可包含一第一組資料與一第二組資料,諸如分別待寫入的第一資料與第二資料。例如,在步驟S16中的該資料代表該第一資料的情況下,當針對該第一資料的存取機率落入該第二存取機
率範圍諸如區間[0.500,1.000],記憶體控制器110可判斷該第一資料屬於該熱資料群。又例如,在步驟S16中的該資料代表該第二資料的情況下,當針對該第二資料的存取機率落入該第一存取機率範圍諸如區間[0,0.499],記憶體控制器110可判斷該第二資料屬於該冷資料群。
於步驟S18中,依據該資料(步驟S16中所述的資料)的分類結果,記憶體控制器110將該資料寫入該多個目標區塊中的對應於此分類結果的目標區塊。例如,因應該第一資料屬於該熱資料群諸如第3圖所示熱資料,記憶體控制器110將該第一資料寫入該第一空白區塊諸如區塊314C,以使用該第一空白區塊作為該第一資料的資料區塊。又例如,因應該第二資料屬於該冷資料群諸如第3圖所示冷資料,記憶體控制器110將該第二資料寫入該第二空白區塊諸如區塊314H,以使用該第二空白區塊作為該第二資料的資料區塊。
於步驟S20中,記憶體控制器110判斷資料寫入的任務是否完成。如果是,第2圖所示工作流程結束;如果否,進入步驟S16,以繼續進行上述任務。於是,包含步驟S16~S20的迴圈可分別將屬於不同資料群的資料儲存於屬於不同區塊群的區塊。例如,記憶體控制器110可依據針對其它資料的至少一特徵參數判斷該其它資料是否屬於該冷資料群或該熱資料群,且可因應該其它資料屬於該熱資料群,將該其它資料寫入該第一空白區塊,以使用該第一空白區塊作為該其它資料的資料區塊。又例如,記憶體控制器110可依據針對其它資料的至少一特徵參數判斷該其它資料是否屬於該冷資料群或該熱資料群,且可因應該其它資料屬於該冷資料群,將該其它資料寫入該第二空白區塊,以使用該第二空白區塊作為該其它資料的資料區塊。
為了更好地理解,該方法可用第2圖所示工作流程來說明,但本發明不限於此。依據某些實施例,一個或多個步驟可於第2圖所示工作流程中增加、刪除或修改。
依據某些實施例,記憶體控制器110可於上述至少一對照表中記錄、維護、及/或更新邏輯位址L_ADD與存取次數AC之間的關係,以指出於邏輯位址L_ADD的存取機率。例如,記憶體控制器110可計算全部的邏輯位址{L_ADD}之各自的存取次數{AC}的平均值AC_avg,且可判斷於邏輯位址L_ADD的存取機率等於(AC/AC_avg),但本發明不限於此。針對步驟S16中的該資料,記憶體控制器110可依據其邏輯位址L_ADD的存取次數AC是否達到(例如大於或等於)平均值AC_avg來判斷於邏輯位址L_ADD的存取機率是否達到平均存取機率諸如0.5,其中該資料的邏輯位址L_ADD的存取次數AC可作為該資料的上述至少一特徵參數的例子。若邏輯位址L_ADD的存取次數AC達到(例如大於或等於)平均值AC_avg,記憶體控制器110可判斷於邏輯位址L_ADD的存取機率達到該平均存取機率,這可指出該資料的存取機率落入該第二存取機率範圍諸如區間[0.500,1.000],且因此記憶體控制器110可判斷該資料屬於該熱資料群;否則,記憶體控制器110可判斷於邏輯位址L_ADD的存取機率未達到該平均存取機率,這可指出該資料的存取機率落入該第一存取機率範圍諸如區間[0,0.499],且因此記憶體控制器110可判斷該資料屬於該冷資料群。
依據某些實施例,記憶體控制器110可於至少一邏輯對實體位址映射表(logical-to-physical address mapping table,簡稱L2P表)中記錄、維護、及/或更新邏輯位址L_ADD與實體位址(BLK#,PG#)之間的映射關係,其中實體位址(BLK#,PG#)可包含區塊編號BLK#與頁面編號PG#。另外,上述至少一對照表可包含上述至少一L2P表,尤其,可整合於上述至少一L2P表中,而記憶體控制器110可將該區塊分類資訊與該資料分類資訊的至少一部分(例如一部分或全部)記錄在上述至少一L2P表,例如,於上述至少一L2P表中記錄、維護、及/或更新邏輯位址L_ADD與存取次數AC之間的關係,以指出於邏輯位址L_ADD的存取機率,其中表122T可實施成一全域(Global)L2P表,而表116T可實施成一局
部(Local)L2P表,其可視為該全域L2P表的一個子集合,但本發明不限於此。
第4圖繪示第3圖所示資料分類及寫入控制方案於本發明一實施例中的實施細節。L2P表400可作為上述至少一L2P表的例子,且可作為上述至少一對照表的例子。記憶體控制器110可於L2P表400中記錄、維護、及/或更新邏輯位址L_ADD與混和資訊{(BLK#,PG#),AC}之間的關係,其中L2P表400的索引(index)是邏輯位址L_ADD,而L2P表400的條目(entry)是混和資訊{(BLK#,PG#),AC},其可包含實體位址(BLK#,PG#)與存取次數AC,但本發明不限於此。於某些實施例中,L2P表400可予以變化。為了便於理解,假設AC_avg=2.5。當某些邏輯位址{L_ADD}之各自的存取次數{AC}諸如{3,5}達到(例如大於或等於)平均值AC_avg諸如2.5,記憶體控制器110可判斷於這些邏輯位址{L_ADD}的存取機率達到該平均存取機率,且因此可判斷待寫入於這些邏輯位址{L_ADD}的兩組資料屬於該熱資料群諸如熱資料DATA_H。當某些邏輯位址{L_ADD}之各自的存取次數{AC}諸如{1,1,2,1}未達到(例如小於)平均值AC_avg諸如2.5,記憶體控制器110可判斷於這些邏輯位址{L_ADD}的存取機率未達到該平均存取機率,且因此可判斷待寫入於這些邏輯位址{L_ADD}的四組資料屬於該冷資料群諸如冷資料DATA_C。
依據某些實施例,該第一資料與該第二資料可接收自主裝置50,寫入該第一資料的操作可依據接收自主裝置50的一寫入指令來進行,且寫入該第二資料的操作可依據接收自主裝置50的另一寫入指令來進行。於執行步驟S18以後,記憶體控制器110可針對於步驟S18中的該資料(例如:該第一資料、該第二資料等)更新L2P表400,尤其,將該資料的邏輯位址L_ADD所對應的實體位址(BLK#,PG#)更新為該資料的最新儲存位置,諸如步驟S18中用來寫入該資料的該目標區塊的區塊編號BLK#以及其內的某一頁面的頁面編號PG#,以供進一步存取該資料,並且以一預定增量諸如1增加該資料的邏輯位址L_ADD的存取次
數AC,以供後續資料分類之參考。例如,針對該第一空白區塊中的第一已寫入資料,記憶體控制器110可更新L2P表400,以供進一步存取該第一已寫入資料,其中該第一已寫入資料包含該第一資料。又例如,針對該第二空白區塊中的第二已寫入資料,記憶體控制器110可更新L2P表400,以供進一步存取該第二已寫入資料,其中該第二已寫入資料包含該第二資料。
依據某些實施例,記憶體控制器110可將該區塊分類資訊與該資料分類資訊的至少一部分(例如一部分或全部)簡化,尤其,依據一組預定區間來管理(例如記錄、維護、及/或更新)該資料分類資訊。例如,該組預定區間可為包含全部的邏輯位址{L_ADD}的一組邏輯位址區間{[0,L_ADD1-1],[L_ADD1,L_ADD2-1],...},諸如位址區間{[0,15],[16,31],...},其中這些邏輯位址{L_ADD}的任一邏輯位址L_ADD可對應於4KB(kilobytes;千位元組)的資料長度,而這些位址區間{[0,15],[16,31],...}的每一位址區間可對應於64KB(例如(4 * 16)=64)的資料長度,但本發明不限於此。於某些實施例中,該組預定區間以及上述任一邏輯位址L_ADD所對應的資料長度可予以變化。
第5圖繪示將冷資料寫入一或多個熱區塊312H的例子。假設寫入位址諸如邏輯位址L_ADD包含一組邏輯位址{10310,...,13000}。記憶體控制器110依據該資料分類資訊(例如該組邏輯位址{10310,...,13000}之各自的存取次數{AC}、平均值AC_avg等)判斷待寫入於該組邏輯位址{10310,...,13000}的一組資料屬於該冷資料群(或冷資料)。這組資料可作為該第二資料的例子。因應該第二資料屬於該冷資料群諸如第3圖所示冷資料,記憶體控制器110將該第二資料寫入該第二空白區塊諸如區塊314H,以使用該第二空白區塊作為該第二資料的資料區塊,諸如資料區塊#0。
第6圖繪示將熱資料寫入一或多個冷區塊312C的例子。假設寫入位址諸如邏輯位址L_ADD包含一組邏輯位址{158,...,171}。記憶體控制器110依據該
資料分類資訊(例如該組邏輯位址{158,...,171}之各自的存取次數{AC}、平均值AC_avg等)判斷待寫入於該組邏輯位址{158,...,171}的一組資料屬於該熱資料群(或熱資料)。這組資料可作為該第一資料的例子。因應該第一資料屬於該熱資料群諸如第3圖所示熱資料,記憶體控制器110將該第一資料寫入該第一空白區塊諸如區塊314C,以使用該第一空白區塊作為該第一資料的資料區塊,諸如資料區塊#1。
第7圖繪示將第3圖所示資料分類及寫入控制方案應用於一垃圾收集(Garbage Collection,GC)程序的例子。依據本實施例,目標區塊310(諸如該目標區塊與該另一目標區塊)中的每一者是關於該垃圾收集程序的一目的地區塊(destination block),而待寫入的該多組資料(諸如該第一資料與該第二資料)是源自於該垃圾收集程序的至少一來源區塊(例如一或多個來源區塊)諸如來源區塊710。假設該第一資料係原本儲存於一第一已使用區塊中,且該第二資料係原本儲存於一第二已使用區塊中。例如,該複數個區塊包含複數個已使用區塊諸如第7圖左半部所示區塊,且該複數個已使用區塊包含該第一已使用區塊與該第二已使用區塊,諸如第7圖左半部這些區塊中的兩個區塊。此狀況下,因應該第一已使用區塊中的該第一資料屬於該熱資料群諸如熱資料DATA_H,記憶體控制器110從該複數個已使用區塊選擇該第一已使用區塊作為關於該垃圾收集程序的一來源區塊;以及因應該第二已使用區塊中的該第二資料屬於該冷資料群諸如冷資料DATA_C,記憶體控制器110從該複數個已使用區塊選擇該第二已使用區塊作為關於該垃圾收集程序的另一來源區塊;但本發明不限於此。以第7圖左半部這些區塊中的某一區塊為例,該第一資料與該第二資料可原本儲存於同一個已使用區塊,諸如這些區塊中的這個區塊中。此情況下,該第一已使用區塊與該第二已使用區塊可被取代為上述同一個已使用區塊,且該來源區塊與該另一來源區塊可被取代為同一個來源區塊。一般而言,該第一資料與該第二
資料可原本儲存於至少一已使用區塊中(例如儲存於上述同一個已使用區塊、或分別儲存於該第一及該第二已使用區塊)。因應上述至少一已使用區塊中的該第一資料與該第二資料分別屬於該熱資料群與該冷資料群,記憶體控制器110可從該複數個已使用區塊選擇上述至少一已使用區塊作為關於該垃圾收集程序的至少一來源區塊,其中該複數個已使用區塊包含上述至少一已使用區塊。
於該垃圾收集程序的期間,記憶體控制器110可檢查該目的地區塊中的複數個可用空白頁是否已被完全寫入(fully written)。尤其,因應該目的地區塊中的該複數個可用空白頁已被完全寫入,記憶體控制器110可關閉(close)該目的地區塊,且針對該目的地區塊中的已寫入資料更新L2P表400,以供進一步存取該已寫入資料,其中該已寫入資料可包含該第一資料與該第二資料的其中一者。例如,當該目的地區塊代表該第一空白區塊諸如區塊314C,該已寫入資料可包含該第一資料。又例如,當該目的地區塊代表該第二空白區塊諸如區塊314H,該已寫入資料可包含該第二資料。
依據某些實施例,於執行步驟S18以後,針對於步驟S18中的該資料,記憶體控制器110可更新一實體對邏輯位址映射表(physical-to-logical address mapping table,簡稱P2L表),以供記憶體控制器110的一或多個復原機制之使用,其中該P2L表可設置於步驟S18中的對應於該分類結果的該目標區塊中,但本發明不限於此。例如,這個目標區塊可代表該第一空白區塊,而在將該第一資料寫入該第一空白區塊以後,記憶體控制器110可針對該第一資料更新該第一空白區塊中之P2L表。又例如,這個目標區塊可代表該第二空白區塊,而在將該第二資料寫入該第二空白區塊以後,記憶體控制器110可針對該第二資料更新該第二空白區塊中之P2L表。
依據某些實施例,步驟S16中的上述至少一特徵參數可包含一存取次數參數PARA_AC,其可指出步驟S16中的該資料的一邏輯位址L_ADD的一累計
存取次數,諸如存取次數AC,其中記憶體控制器110可判斷邏輯位址L_ADD的存取次數AC以產生載有存取次數AC的存取次數參數PARA_AC。例如,在步驟S16中的該資料代表該第一資料諸如DATA(1)的情況下,針對該第一資料的上述至少一特徵參數可包含存取次數參數PARA_AC(1),其可指出第一資料DATA(1)的邏輯位址L_ADD(1)的一累計存取次數,諸如存取次數AC(1)。又例如,在步驟S16中的該資料代表該第二資料諸如DATA(2)的情況下,針對該第二資料的上述至少一特徵參數可包含一存取次數參數PARA_AC(2),其可指出第二資料DATA(2)的邏輯位址L_ADD(2)的一累計存取次數,諸如存取次數AC(2)。為了簡明起見,於這些實施例中類似的內容在此不重複贅述。
依據某些實施例,步驟S16中的上述至少一特徵參數可包含一類型參數PARA_TYPE,其可指出步驟S16中的該資料的一資料類型,諸如類型TYPE,其中記憶體控制器110可判斷該資料的類型TYPE以產生載有類型TYPE的類型參數PARA_TYPE。例如,在步驟S16中的該資料代表該第一資料諸如DATA(1)的情況下,針對該第一資料的上述至少一特徵參數可包含類型參數PARA_TYPE(1),其可指出第一資料DATA(1)的一資料類型,諸如檔案系統類型TYPE_FILE_SYSTEM,即檔案系統的資訊。又例如,在步驟S16中的該資料代表該第二資料諸如DATA(2)的情況下,針對該第二資料的上述至少一特徵參數可包含類型參數PARA_TYPE(2),其可指出第二資料DATA(2)的一資料類型,諸如多媒體類型TYPE_MULTIMEDIA,即多媒體資料。為了簡明起見,於這些實施例中類似的內容在此不重複贅述。以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
310:目標區塊
312C:冷區塊
312H:熱區塊
314C,314H:區塊
DATA_C:冷資料
DATA_H:熱資料
Claims (23)
- 一種用來針對一非揮發性記憶體(non-volatile memory,NV memory)進行區塊管理的方法,該方法係應用於一記憶裝置的一控制器,該記憶裝置包含該控制器與該非揮發性記憶體,該非揮發性記憶體包含至少一非揮發性記憶體元件,所述至少一非揮發性記憶體元件包含複數個區塊,該方法包含:依據一第一空白區塊的一抹除次數判斷該第一空白區塊是否屬於一冷區塊群或一熱區塊群,其中該冷區塊群與該熱區塊群分別對應於一第一抹除次數範圍與一第二抹除次數範圍,且該第二抹除次數範圍中的任何數值大於該第一抹除次數範圍中的任何數值;因應該第一空白區塊屬於該冷區塊群,從複數個空白區塊選擇該第一空白區塊作為一目標區塊(target block),以供進行資料寫入,其中該複數個區塊包含該複數個空白區塊,且該複數個空白區塊包含該第一空白區塊;依據針對待寫入的第一資料的至少一特徵參數判斷該第一資料是否屬於一冷資料群或一熱資料群,其中該冷資料群與該熱資料群分別對應於一第一存取機率範圍與一第二存取機率範圍,且該第二存取機率範圍中的任何數值大於該第一存取機率範圍中的任何數值;以及因應該第一資料屬於該熱資料群,將該第一資料寫入該第一空白區塊,以使用該第一空白區塊作為該第一資料的資料區塊,其中,用以管理於存取該非揮發性記憶體時的邏輯位址與實體位址之間的映射關係之一邏輯對實體位址映射表(logical-to-physical address mapping table)的多個條目(entry)係分別內建有多個特徵參數,以供在將多組資料寫入該非揮發性記憶體的期間判斷該多組資料中之任一組資料是否 屬於該冷資料群或該熱資料群來動態地切換於寫入該冷區塊群與寫入該熱區塊群之間。
- 如申請專利範圍第1項所述之方法,其中該第一資料係接收自一主裝置,且寫入該第一資料的操作係依據接收自該主裝置的一寫入指令來進行。
- 如申請專利範圍第2項所述之方法,其另包含:針對該第一空白區塊中的第一已寫入資料更新該邏輯對實體位址映射表,以供進一步存取該第一已寫入資料,其中該第一已寫入資料包含該第一資料。
- 如申請專利範圍第1項所述之方法,其中該目標區塊是關於一垃圾收集(Garbage Collection,GC)程序的一目的地區塊(destination block),且該第一資料係原本儲存於一第一已使用區塊中;以及該方法另包含:因應該第一已使用區塊中的該第一資料屬於該熱資料群,從複數個已使用區塊選擇該第一已使用區塊作為關於該垃圾收集程序的一來源區塊,其中該複數個區塊包含該複數個已使用區塊,且該複數個已使用區塊包含該第一已使用區塊。
- 如申請專利範圍第4項所述之方法,其另包含:於該垃圾收集程序的期間,檢查該目的地區塊中的複數個可用空白頁是否已被完全寫入(fully written);以及因應該目的地區塊中的該複數個可用空白頁已被完全寫入,關閉(close) 該目的地區塊,且針對該目的地區塊中的已寫入資料更新該邏輯對實體位址映射表,以供進一步存取該已寫入資料,其中該已寫入資料包含該第一資料。
- 如申請專利範圍第1項所述之方法,其另包含:在將該第一資料寫入該第一空白區塊以後,針對該第一資料更新該第一空白區塊中之一實體對邏輯位址映射表(physical-to-logical address mapping table)。
- 如申請專利範圍第1項所述之方法,其另包含:依據針對其它資料的至少一特徵參數判斷該其它資料是否屬於該冷資料群或該熱資料群;以及因應該其它資料屬於該熱資料群,將該其它資料寫入該第一空白區塊,以使用該第一空白區塊作為該其它資料的資料區塊。
- 如申請專利範圍第1項所述之方法,其中針對該第一資料的所述至少一特徵參數包含一存取次數參數,且該存取次數參數指出該第一資料的一邏輯位址的一累計存取次數。
- 如申請專利範圍第1項所述之方法,其中針對該第一資料的所述至少一特徵參數包含一類型參數,且該類型參數指出該第一資料的一資料類型。
- 如申請專利範圍第1項所述之方法,其另包含: 依據一第二空白區塊的一抹除次數判斷該第二空白區塊是否屬於該冷區塊群或該熱區塊群;因應該第二空白區塊屬於該熱區塊群,從該複數個空白區塊選擇該第二空白區塊作為另一目標區塊,以供進行資料寫入,其中該複數個空白區塊包含該第二空白區塊;依據針對待寫入的第二資料的至少一特徵參數判斷該第二資料是否屬於該冷資料群或該熱資料群;以及因應該第二資料屬於該冷資料群,將該第二資料寫入該第二空白區塊,以使用該第二空白區塊作為該第二資料的資料區塊。
- 如申請專利範圍第10項所述之方法,其中該第一資料與該第二資料係接收自一主裝置,寫入該第一資料的操作係依據接收自該主裝置的一寫入指令來進行,且寫入該第二資料的操作係依據接收自該主裝置的另一寫入指令來進行。
- 如申請專利範圍第11項所述之方法,其另包含:針對該第一空白區塊中的第一已寫入資料更新該邏輯對實體位址映射表,以供進一步存取該第一已寫入資料,其中該第一已寫入資料包含該第一資料;以及針對該第二空白區塊中的第二已寫入資料更新該邏輯對實體位址映射表,以供進一步存取該第二已寫入資料,其中該第二已寫入資料包含該第二資料。
- 如申請專利範圍第10項所述之方法,其中該目標區塊與該另一目 標區塊中的每一者是關於一垃圾收集(Garbage Collection,GC)程序的一目的地區塊(destination block),該第一資料係原本儲存於一第一已使用區塊中,且該第二資料係原本儲存於一第二已使用區塊中;以及該方法另包含:因應該第一已使用區塊中的該第一資料屬於該熱資料群,從複數個已使用區塊選擇該第一已使用區塊作為關於該垃圾收集程序的一來源區塊,其中該複數個區塊包含該複數個已使用區塊,且該複數個已使用區塊包含該第一已使用區塊;以及因應該第二已使用區塊中的該第二資料屬於該冷資料群,從該複數個已使用區塊選擇該第二已使用區塊作為關於該垃圾收集程序的另一來源區塊,其中該複數個已使用區塊包含該第二已使用區塊。
- 如申請專利範圍第10項所述之方法,其中該目標區塊與該另一目標區塊中的每一者是關於一垃圾收集(Garbage Collection,GC)程序的一目的地區塊(destination block),該第一資料與該第二資料係原本儲存於至少一已使用區塊中;以及該方法另包含:因應所述至少一已使用區塊中的該第一資料與該第二資料分別屬於該熱資料群與該冷資料群,從複數個已使用區塊選擇所述至少一已使用區塊作為關於該垃圾收集程序的至少一來源區塊,其中該複數個區塊包含該複數個已使用區塊,且該複數個已使用區塊包含所述至少一已使用區塊。
- 如申請專利範圍第14項所述之方法,其另包含:於該垃圾收集程序的期間,檢查該目的地區塊中的複數個可用空白頁是否 已被完全寫入(fully written);以及因應該目的地區塊中的該複數個可用空白頁已被完全寫入,關閉(close)該目的地區塊,且針對該目的地區塊中的已寫入資料更新該邏輯對實體位址映射表,以供進一步存取該已寫入資料,其中該已寫入資料包含該第一資料與該第二資料的其中一者。
- 如申請專利範圍第10項所述之方法,其另包含:在將該第二資料寫入該第二空白區塊以後,針對該第二資料更新該第二空白區塊中之一實體對邏輯位址映射表(physical-to-logical address mapping table)。
- 如申請專利範圍第10項所述之方法,其另包含:依據針對其它資料的至少一特徵參數判斷該其它資料是否屬於該冷資料群或該熱資料群;以及因應該其它資料屬於該冷資料群,將該其它資料寫入該第二空白區塊,以使用該第二空白區塊作為該其它資料的資料區塊。
- 如申請專利範圍第10項所述之方法,其中針對該第二資料的所述至少一特徵參數包含一存取次數參數,且該存取次數參數指出該第二資料的一邏輯位址的一累計存取次數。
- 如申請專利範圍第10項所述之方法,其中針對該第二資料的所述至少一特徵參數包含一類型參數,且該類型參數指出該第二資料的一資料類型。
- 一種記憶裝置,包含:一非揮發性記憶體(non-volatile memory,NV memory),用來儲存資訊,其中該非揮發性記憶體包含至少一非揮發性記憶體元件,且所述至少一非揮發性記憶體元件包含複數個區塊;以及一控制器,耦接至該非揮發性記憶體,用來控制該記憶裝置之操作,其中該控制器包含:一處理電路,用來依據來自一主裝置之複數個主裝置指令控制該控制器,以容許該主裝置透過該控制器存取該非揮發性記憶體;其中:該控制器依據一第一空白區塊的一抹除次數判斷該第一空白區塊是否屬於一冷區塊群或一熱區塊群,其中該冷區塊群與該熱區塊群分別對應於一第一抹除次數範圍與一第二抹除次數範圍,且該第二抹除次數範圍中的任何數值大於該第一抹除次數範圍中的任何數值;因應該第一空白區塊屬於該冷區塊群,該控制器從複數個空白區塊選擇該第一空白區塊作為一目標區塊(target block),以供進行資料寫入,其中該複數個區塊包含該複數個空白區塊,且該複數個空白區塊包含該第一空白區塊;該控制器依據針對待寫入的第一資料的至少一特徵參數判斷該第一資料是否屬於一冷資料群或一熱資料群,其中該冷資料群與該熱資料群分別對應於一第一存取機率範圍與一第二存取機率範圍,且該第二存取機率範圍中的任何數值大於該第一存取機率範圍中的任何數值;以及 因應該第一資料屬於該熱資料群,該控制器將該第一資料寫入該第一空白區塊,以使用該第一空白區塊作為該第一資料的資料區塊,其中,用以管理於存取該非揮發性記憶體時的邏輯位址與實體位址之間的映射關係之一邏輯對實體位址映射表(logical-to-physical address mapping table)的多個條目(entry)係分別內建有多個特徵參數,以供在將多組資料寫入該非揮發性記憶體的期間判斷該多組資料中之任一組資料是否屬於該冷資料群或該熱資料群來動態地切換於寫入該冷區塊群與寫入該熱區塊群之間。
- 如申請專利範圍第20項之記憶裝置,其中該控制器依據一第二空白區塊的一抹除次數判斷該第二空白區塊是否屬於該冷區塊群或該熱區塊群;因應該第二空白區塊屬於該熱區塊群,該控制器從該複數個空白區塊選擇該第二空白區塊作為另一目標區塊,以供進行資料寫入,其中該複數個空白區塊包含該第二空白區塊;該控制器依據針對待寫入的第二資料的至少一特徵參數判斷該第二資料是否屬於該冷資料群或該熱資料群;以及因應該第二資料屬於該冷資料群,該控制器將該第二資料寫入該第二空白區塊,以使用該第二空白區塊作為該第二資料的資料區塊。
- 一種包含如申請專利範圍第20項所述之記憶裝置之電子裝置,另包含:該主裝置,耦接至該記憶裝置,其中該主裝置包含:至少一處理器,用來控制該主裝置之操作;以及一電源供應電路,耦接至該至少一處理器,用來提供電源給該至少 一處理器以及該記憶裝置;其中該記憶裝置提供儲存空間給該主裝置。
- 一種記憶裝置的控制器,該記憶裝置包含該控制器以及一非揮發性記憶體(non-volatile memory,NV memory),該非揮發性記憶體包含至少一非揮發性記憶體元件,所述至少一非揮發性記憶體元件包含複數個區塊,該控制器包含:一處理電路,用來依據來自一主裝置之複數個主裝置指令控制該控制器,以容許該主裝置透過該控制器存取該非揮發性記憶體;其中:該控制器依據一第一空白區塊的一抹除次數判斷該第一空白區塊是否屬於一冷區塊群或一熱區塊群,其中該冷區塊群與該熱區塊群分別對應於一第一抹除次數範圍與一第二抹除次數範圍,且該第二抹除次數範圍中的任何數值大於該第一抹除次數範圍中的任何數值;因應該第一空白區塊屬於該冷區塊群,該控制器從複數個空白區塊選擇該第一空白區塊作為一目標區塊(target block),以供進行資料寫入,其中該複數個區塊包含該複數個空白區塊,且該複數個空白區塊包含該第一空白區塊;該控制器依據針對待寫入的第一資料的至少一特徵參數判斷該第一資料是否屬於一冷資料群或一熱資料群,其中該冷資料群與該熱資料群分別對應於一第一存取機率範圍與一第二存取機率範圍,且該第二存取機率範圍中的任何數值大於該第一存取機率範圍中的任何數值;以及 因應該第一資料屬於該熱資料群,該控制器將該第一資料寫入該第一空白區塊,以使用該第一空白區塊作為該第一資料的資料區塊,其中,用以管理於存取該非揮發性記憶體時的邏輯位址與實體位址之間的映射關係之一邏輯對實體位址映射表(logical-to-physical address mapping table)的多個條目(entry)係分別內建有多個特徵參數,以供在將多組資料寫入該非揮發性記憶體的期間判斷該多組資料中之任一組資料是否屬於該冷資料群或該熱資料群來動態地切換於寫入該冷區塊群與寫入該熱區塊群之間。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW109112609A TWI748410B (zh) | 2020-04-15 | 2020-04-15 | 用來針對非揮發性記憶體進行區塊管理的方法以及設備 |
CN202010435761.5A CN113535074B (zh) | 2020-04-15 | 2020-05-21 | 用来针对非易失性存储器进行区块管理的方法以及设备 |
US17/225,080 US11403018B2 (en) | 2020-04-15 | 2021-04-07 | Method and apparatus for performing block management regarding non-volatile memory |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW109112609A TWI748410B (zh) | 2020-04-15 | 2020-04-15 | 用來針對非揮發性記憶體進行區塊管理的方法以及設備 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202141275A TW202141275A (zh) | 2021-11-01 |
TWI748410B true TWI748410B (zh) | 2021-12-01 |
Family
ID=78080862
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW109112609A TWI748410B (zh) | 2020-04-15 | 2020-04-15 | 用來針對非揮發性記憶體進行區塊管理的方法以及設備 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11403018B2 (zh) |
CN (1) | CN113535074B (zh) |
TW (1) | TWI748410B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI847838B (zh) * | 2023-01-09 | 2024-07-01 | 慧榮科技股份有限公司 | 借助非平衡表搜尋來進行預定通訊架構中記憶體裝置的資料存取管理的方法、記憶體裝置的記憶體控制器、記憶體裝置以及電子裝置 |
US12117932B2 (en) | 2023-01-09 | 2024-10-15 | Silicon Motion, Inc. | Method and apparatus for performing data access management of memory device in predetermined communications architecture with aid of unbalanced table update |
US12130743B2 (en) | 2023-01-09 | 2024-10-29 | Silicon Motion, Inc. | Method and apparatus for performing data access management of memory device in predetermined communications architecture with aid of unbalanced table search |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI804236B (zh) * | 2022-03-16 | 2023-06-01 | 群聯電子股份有限公司 | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 |
CN115686379B (zh) * | 2022-12-14 | 2024-02-20 | 江苏华存电子科技有限公司 | 一种优化闪存中空白数据区管理的方法及系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200951722A (en) * | 2008-04-25 | 2009-12-16 | Sandisk Corp | Method and system for storage address re-mapping for a multi-bank memory device |
TW201227740A (en) * | 2010-12-31 | 2012-07-01 | Silicon Motion Inc | Method for performing block management, and associated memory device and controller thereof |
TW201917581A (zh) * | 2017-10-17 | 2019-05-01 | 聯發科技股份有限公司 | 管理快閃記憶體模組的方法及相關的快閃記憶體控制器 |
TW201926351A (zh) * | 2017-12-08 | 2019-07-01 | 旺宏電子股份有限公司 | 記憶體控制器、記憶體系統及控制方法 |
TW201944421A (zh) * | 2018-04-11 | 2019-11-16 | 群聯電子股份有限公司 | 平均磨損方法、記憶體控制電路單元與記憶體儲存裝置 |
TW201947600A (zh) * | 2018-05-14 | 2019-12-16 | 慧榮科技股份有限公司 | 用來進行記憶裝置的頁可用性管理之方法、記憶裝置及電子裝置以及頁可用性管理系統 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070208904A1 (en) * | 2006-03-03 | 2007-09-06 | Wu-Han Hsieh | Wear leveling method and apparatus for nonvolatile memory |
CN102637145B (zh) * | 2011-02-11 | 2015-06-17 | 慧荣科技股份有限公司 | 用来进行区块管理的方法、记忆装置及其控制器 |
KR20130032155A (ko) * | 2011-09-22 | 2013-04-01 | 삼성전자주식회사 | 데이터 저장 장치 및 그것의 데이터 관리 방법 |
US9116792B2 (en) * | 2012-05-18 | 2015-08-25 | Silicon Motion, Inc. | Data storage device and method for flash block management |
US20140089564A1 (en) * | 2012-09-27 | 2014-03-27 | Skymedi Corporation | Method of data collection in a non-volatile memory |
TWI529719B (zh) * | 2013-08-30 | 2016-04-11 | 慧榮科技股份有限公司 | 資料儲存裝置以及快閃記憶體控制方法 |
US10409526B2 (en) * | 2014-12-17 | 2019-09-10 | Violin Systems Llc | Adaptive garbage collection |
CN109582599B (zh) * | 2017-09-29 | 2023-12-22 | 上海宝存信息科技有限公司 | 数据储存装置以及非挥发式存储器操作方法 |
CN108563397B (zh) * | 2018-01-04 | 2021-08-24 | 威盛电子股份有限公司 | 存储装置以及数据保存方法 |
KR102663661B1 (ko) * | 2018-12-06 | 2024-05-10 | 에스케이하이닉스 주식회사 | 메모리 시스템 내 저장된 데이터를 제어하는 방법 및 장치 |
-
2020
- 2020-04-15 TW TW109112609A patent/TWI748410B/zh active
- 2020-05-21 CN CN202010435761.5A patent/CN113535074B/zh active Active
-
2021
- 2021-04-07 US US17/225,080 patent/US11403018B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200951722A (en) * | 2008-04-25 | 2009-12-16 | Sandisk Corp | Method and system for storage address re-mapping for a multi-bank memory device |
TW201227740A (en) * | 2010-12-31 | 2012-07-01 | Silicon Motion Inc | Method for performing block management, and associated memory device and controller thereof |
TW201917581A (zh) * | 2017-10-17 | 2019-05-01 | 聯發科技股份有限公司 | 管理快閃記憶體模組的方法及相關的快閃記憶體控制器 |
TW201926351A (zh) * | 2017-12-08 | 2019-07-01 | 旺宏電子股份有限公司 | 記憶體控制器、記憶體系統及控制方法 |
TW201944421A (zh) * | 2018-04-11 | 2019-11-16 | 群聯電子股份有限公司 | 平均磨損方法、記憶體控制電路單元與記憶體儲存裝置 |
TW201947600A (zh) * | 2018-05-14 | 2019-12-16 | 慧榮科技股份有限公司 | 用來進行記憶裝置的頁可用性管理之方法、記憶裝置及電子裝置以及頁可用性管理系統 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI847838B (zh) * | 2023-01-09 | 2024-07-01 | 慧榮科技股份有限公司 | 借助非平衡表搜尋來進行預定通訊架構中記憶體裝置的資料存取管理的方法、記憶體裝置的記憶體控制器、記憶體裝置以及電子裝置 |
US12117932B2 (en) | 2023-01-09 | 2024-10-15 | Silicon Motion, Inc. | Method and apparatus for performing data access management of memory device in predetermined communications architecture with aid of unbalanced table update |
US12130743B2 (en) | 2023-01-09 | 2024-10-29 | Silicon Motion, Inc. | Method and apparatus for performing data access management of memory device in predetermined communications architecture with aid of unbalanced table search |
Also Published As
Publication number | Publication date |
---|---|
CN113535074B (zh) | 2024-09-10 |
US11403018B2 (en) | 2022-08-02 |
CN113535074A (zh) | 2021-10-22 |
US20210326042A1 (en) | 2021-10-21 |
TW202141275A (zh) | 2021-11-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI720588B (zh) | 用以在記憶裝置中進行存取管理的方法、相關記憶裝置及其控制器以及相關電子裝置 | |
CN107368429B (zh) | 数据储存装置、内存控制器及其数据管理方法与数据区块管理方法 | |
TWI748410B (zh) | 用來針對非揮發性記憶體進行區塊管理的方法以及設備 | |
US8380945B2 (en) | Data storage device, memory system, and computing system using nonvolatile memory device | |
TWI437439B (zh) | 用來以動態門檻進行區塊管理之方法及記憶裝置及控制器 | |
US20200089608A1 (en) | High efficiency garbage collection method, associated data storage device and controller thereof | |
TWI735918B (zh) | 用來進行記憶裝置的存取管理之方法、記憶裝置及其控制器、主裝置以及電子裝置 | |
US20200142613A1 (en) | Data categorization based on invalidation velocities | |
TWI782644B (zh) | 用來進行資料儲存管理以提升資料可靠度之方法、記憶裝置及其控制器以及電子裝置 | |
TW202001565A (zh) | 管理快閃記憶體模組的方法及相關的快閃記憶體控制器及電子裝置 | |
TWI437569B (zh) | 用來管理一快閃記憶體的複數個區塊之方法以及相關之記憶裝置及其控制器 | |
TWI693520B (zh) | 用來於一記憶裝置中進行系統備份的方法、相關記憶裝置及其控制器、以及相關電子裝置 | |
TW202238369A (zh) | 在快閃記憶體中進行耗損平衡操作的方法和相關控制器以及儲存系統 | |
US20190146909A1 (en) | Valid data management method and storage controller | |
TWI791981B (zh) | 資料寫入方法、記憶體控制電路單元以及記憶體儲存裝置 | |
CN112860193A (zh) | 整理指令处理方法、存储器控制电路单元与存储装置 | |
US11687447B1 (en) | Method and apparatus for performing access control of memory device with aid of additional physical address information | |
CN111583976B (zh) | 数据写入方法、存储器控制电路单元以及存储器存储装置 | |
CN114328297A (zh) | 映射表管理方法、存储器控制电路单元与存储器存储装置 | |
TWI721365B (zh) | 高效能垃圾收集方法以及資料儲存裝置及其控制器 | |
CN109669620B (zh) | 存储器管理方法、存储器控制电路单元及存储器储存装置 | |
TWI664527B (zh) | 用來於一記憶裝置中進行初始化之方法、記憶裝置及其控制器以及電子裝置 | |
US12117932B2 (en) | Method and apparatus for performing data access management of memory device in predetermined communications architecture with aid of unbalanced table update | |
US12130743B2 (en) | Method and apparatus for performing data access management of memory device in predetermined communications architecture with aid of unbalanced table search | |
TWI822398B (zh) | 資料儲存裝置與資料儲存裝置之緩存器大小估計方法 |