TW202001565A - 管理快閃記憶體模組的方法及相關的快閃記憶體控制器及電子裝置 - Google Patents

管理快閃記憶體模組的方法及相關的快閃記憶體控制器及電子裝置 Download PDF

Info

Publication number
TW202001565A
TW202001565A TW107121232A TW107121232A TW202001565A TW 202001565 A TW202001565 A TW 202001565A TW 107121232 A TW107121232 A TW 107121232A TW 107121232 A TW107121232 A TW 107121232A TW 202001565 A TW202001565 A TW 202001565A
Authority
TW
Taiwan
Prior art keywords
data table
garbage collection
demand data
flash memory
read
Prior art date
Application number
TW107121232A
Other languages
English (en)
Inventor
謝松晏
Original Assignee
慧榮科技股份有限公司
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 慧榮科技股份有限公司 filed Critical 慧榮科技股份有限公司
Priority to TW107121232A priority Critical patent/TW202001565A/zh
Priority to CN201810750679.4A priority patent/CN110633047A/zh
Priority to US16/260,011 priority patent/US20190391916A1/en
Publication of TW202001565A publication Critical patent/TW202001565A/zh

Links

Images

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/0253Garbage collection, i.e. reclamation of unreferenced memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/076Error or fault detection not based on redundancy by exceeding limits by exceeding a count or rate limit, e.g. word- or bit count limit
    • 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/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • 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

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)
  • Quality & Reliability (AREA)
  • Memory System (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本發明揭露了一種管理一快閃記憶體模組的方法,其中該快閃記憶體模組包含了多個區塊,以及該方法包含有:建立一垃圾收集對照表,其中該垃圾收集對照表記錄了分別對應到該多個區塊的多個重要性資訊,其中每一個重要性資訊用以表示所對應之區塊需要進行一垃圾收集操作的優先性;以及當該快閃記憶體模組需要進行該垃圾收集操作時,參考該垃圾收集對照表以決定出需要優先進行該垃圾收集操作的一特定區塊,並由該特定區塊開始進行該垃圾收集操作。

Description

管理快閃記憶體模組的方法及相關的快閃記憶體控制器及電子裝置
本發明係有關於快閃記憶體,尤指一種管理快閃記憶體模組的方法及相關的快閃記憶體控制器及電子裝置。
在傳統的快閃記憶體控制器中,若是在短時間內很多區塊有垃圾收集(garbage collection)的需求時,快閃記憶體控制器會根據預設的優先性順序來依序對區塊進行垃圾收集操作,例如先對有耗損平均(wear-leveling)需求的區塊進行垃圾收集操作…等等。然而,由於每一個區塊需要進行垃圾收集操作的考慮因素很多,除了耗損平均需求之外可能還有讀取回收(read reclaim)需求或是讀取更新(read refresh)需求,因此,先前技術中單純根據預設的優先性來決定區塊進行垃圾收集操作的順序並無法考慮到區塊的實際的需求。另外,由於垃圾收集操作所需的時間較多,因此一般來說不可能一次就將所有具有垃圾收集需求的區塊全部完成,因此先前技術中的做法很有可能會使得部分預設優先性順序較低的區塊一直無法進行垃圾收集操作,因而導致可能的資料損失(data loss)。
因此,本發明的目的之一在於設計一種管理快閃記憶體模組的方法,其透過建立一垃圾收集對照表,以記錄每一個區塊目前需要進行垃圾收集操作的優先性,以供快閃記憶體控制器進行垃圾收集操作時的參考,以解決先前技術中的問題。
在本發明的一個實施例中,揭露了一種管理一快閃記憶體模組的方法,其中該快閃記憶體模組包含了多個區塊,以及該方法包含有:建立一垃圾收集對照表,其中該垃圾收集對照表記錄了分別對應到該多個區塊的多個重要性資訊,其中每一個重要性資訊用以表示所對應之區塊需要進行一垃圾收集操作的優先性;以及當該快閃記憶體模組需要進行該垃圾收集操作時,參考該垃圾收集對照表以決定出需要優先進行該垃圾收集操作的一特定區塊,並由該特定區塊開始進行該垃圾收集操作。
在本發明的另一個實施例中,揭露了一種快閃記憶體控制器,其中該快閃記憶體控制器係用來存取一快閃記憶體模組,該快閃記憶體模組包含了多個區塊,且該快閃記憶體控制器包含有用來執行該程式碼的一唯讀記憶體以及用來執行該程式碼以控制對該快閃記憶體模組之存取的一微處理器。在該快閃記憶體控制器的操作中,該微處理器建立一垃圾收集對照表,其中該垃圾收集對照表記錄了分別對應到該多個區塊的多個重要性資訊,其中每一個重要性資訊用以表示所對應之區塊需要進行一垃圾收集操作的優先性;以及當該快閃記憶體模組需要進行該垃圾收集操作時,該微處理器參考該垃圾收集對照表以決定出需要優先進行該垃圾收集操作的一特定區塊,並由該特定區塊開始進行該垃圾收集操作。
在本發明的另一個實施例中,揭露了一種電子裝置,其包含有包含多個區塊的一快閃記憶體模組以及用來存取該快閃記憶體模組的一快閃記憶體控制器。在該電子裝置的操作中,該快閃記憶體控制器建立一垃圾收集對照表,其中該垃圾收集對照表記錄了分別對應到該多個區塊的多個重要性資訊,其中每一個重要性資訊用以表示所對應之區塊需要進行一垃圾收集操作的優先性;以及當該快閃記憶體模組需要進行該垃圾收集操作時,該快閃記憶體控制器參考該垃圾收集對照表以決定出需要優先進行該垃圾收集操作的一特定區塊,並由該特定區塊開始進行該垃圾收集操作。
第1圖為依據本發明一實施例之一種記憶裝置100的示意圖。記憶裝置100包含有一快閃記憶體(Flash Memory)模組120以及一快閃記憶體控制器110,且快閃記憶體控制器110用來存取快閃記憶體模組120。依據本實施例,快閃記憶體控制器110包含一微處理器112、一唯讀記憶體(Read Only Memory, ROM)112M、一控制邏輯114、一緩衝記憶體116、與一介面邏輯118。唯讀記憶體112M係用來儲存一程式碼112C,而微處理器112則用來執行程式碼112C以控制對快閃記憶體模組120之存取(Access)。控制邏輯114包含了一編碼器132以及一解碼器134,其中編碼器132用來對寫入到快閃記憶體模組120中的資料進行編碼以產生對應的校驗碼(或稱,錯誤更正碼(Error Correction Code),ECC),而解碼器134用來將從快閃記憶體模組120所讀出的資料進行解碼。
於典型狀況下,快閃記憶體模組120包含了多個快閃記憶體晶片,而每一個快閃記憶體晶片包含複數個區塊(Block),而快閃記憶體控制器110對快閃記憶體模組120進行抹除資料運作係以區塊為單位來進行。另外,一區塊可記錄特定數量的資料頁(Page),其中快閃記憶體控制器110對快閃記憶體模組120進行寫入資料之運作係以資料頁為單位來進行寫入。在本實施例中,快閃記憶體模組120為一立體NAND型快閃記憶體(3D NAND-type flash)模組。
實作上,透過微處理器112執行程式碼112C之快閃記憶體控制器110可利用其本身內部之元件來進行諸多控制運作,例如:利用控制邏輯114來控制快閃記憶體模組120之存取運作(尤其是對至少一區塊或至少一資料頁之存取運作)、利用緩衝記憶體116進行所需之緩衝處理、以及利用介面邏輯118來與一主裝置(Host Device)130溝通。緩衝記憶體116係以隨機存取記憶體(Random Access Memory,RAM)來實施。例如,緩衝記憶體116可以是靜態隨機存取記憶體(Static RAM,SRAM),但本發明不限於此。
在一實施例中,記憶裝置100可以是可攜式記憶裝置(例如:符合SD/MMC、CF、MS、XD標準之記憶卡),且主裝置130為一可與記憶裝置連接的電子裝置,例如手機、筆記型電腦、桌上型電腦…等等。而在另一實施例中,記憶裝置100可以是固態硬碟或符合通用快閃記憶體儲存(Universal Flash Storage,UFS)或嵌入式多媒體記憶卡(Embedded Multi Media Card,EMMC)規格之嵌入式儲存裝置,以設置在一電子裝置中,例如設置在手機、筆記型電腦、桌上型電腦之中,而此時主裝置130可以是該電子裝置的一處理器。
在快閃記憶體控制器110讀取快閃記憶體模組120的過程中,快閃記憶體控制器110會根據存取過程所得到的資訊以建立/更新一耗損平均需求資料表、一讀取回收需求資料表以及一讀取更新需求資料表。具體來說,先參考第2圖,其為根據本發明一實施例之耗損平均需求資料表200的示意圖。參考第2圖,假設快閃記憶體模組120中具有多個區塊B1、B2、B3、…,則耗損平均需求資料表200便可以記錄該多個區塊中抹除次數高於一第一臨界值的區塊及其抹除次數,其中該抹除次數指的是從快閃記憶體控制器110與快閃記憶體模組120連結後開始運作便開始計算的總抹除次數。舉例來說,假設該第一臨界值為60,則由於區塊B9、B6、B1、B7的抹除次數分別為高於60次的86、62、95、63次,則耗損平均需求資料表200便會將區塊B9、B6、B1、B7及其抹除次數記錄在其中,而其餘的區塊由於抹除次數不高於60次或是屬於空白區塊,因此並未記錄在耗損平均需求資料表200中。
第3圖為根據本發明一實施例之讀取回收需求資料表300的示意圖。參考第3圖,假設快閃記憶體模組120中具有如第2圖所示的多個區塊B1、B2、B3、…,則讀取回收需求資料表300便可以記錄該多個區塊中位元錯誤量高於一第二臨界值的區塊及其位元錯誤量。舉例來說,假設該第二臨界值為50個位元,則由於區塊B3、B9、B2、B5、B1的位元錯誤量分別為高於50次的56、58、65、68、52次,則讀取回收需求資料表300便會將區塊B3、B9、B2、B5、B1及其位元錯誤量記錄在其中。在本實施例中,讀取回收需求資料表300係為一佇列(queue),而上述的位元錯誤量係由快閃記憶體控制器110在讀取一區塊中任一資料頁的一區段(sector)或是一組塊(chunk)後進行解碼所得到,亦即當快閃記憶體控制器110在讀取區塊時若是發現所解碼之區段/組塊的位元錯誤量高於50,快閃記憶體控制器110才會將該區塊加入到讀取回收需求資料表300。
第4圖為根據本發明一實施例之讀取更新需求資料表400的示意圖。參考第4圖,假設快閃記憶體模組120中具有如第2圖所示的多個區塊B1、B2、B3、…,則讀取更新需求資料表400便可以記錄該多個區塊中讀取次數高於一第三臨界值的區塊及其讀取次數。舉例來說,假設該第三臨界值為8000,則由於區塊B1、B4、B3的讀取次數分別為高於8000次的8012、8045、11210次,則讀取更新需求資料表400便會將區塊B1、B4、B3及其讀取次數記錄在其中。在本實施例中,更新需求資料表400僅繪示了佇列的部分,而在實作上更新需求資料表400亦可包含記錄了每一個區塊之讀取次數的一記錄表,而當快閃記憶體控制器110發出一讀取命令以要求讀取一區塊的資料時,便會將該區塊的讀取次數加上“1”,而當該區塊的內容被抹除後重新寫入資料時,該記錄表中該區塊的讀取次數便會重新開始計算。
在本實施例中,上述的耗損平均需求資料表200、讀取回收需求資料表300以及讀取更新需求資料表400係隨著快閃記憶體控制器110存取快閃記憶體模組120的過程中不斷地更新於快閃記憶體模組120中,並且可暫存一份在緩衝記憶體116中。
在本實施例中,快閃記憶體控制器110會根據上述耗損平均需求資料表200、讀取回收需求資料表300以及讀取更新需求資料表400的內容來建立一垃圾收集對照表,其中該垃圾收集對照表記錄了分別對應到該多個區塊的多個重要性資訊,其中每一個重要性資訊用以表示所對應之區塊需要進行一垃圾收集操作的優先性。參考第5圖,其為根據本發明一實施例之垃圾收集對照表500的示意圖。如第5圖所示,垃圾收集對照表500可以記錄每一個區塊B1、B2、B3、…的重要性資訊,其中該重要性資訊係由每一個區塊在耗損平均需求資料表200、讀取回收需求資料表300以及讀取更新需求資料表400內的資訊所計算得到。具體來說,本實施例中係假設耗損平均需求的重要性大於讀取回收需求,且讀取回收需求的重要性大於讀取更新需求,因此假設耗損平均需求、讀取回收需求以及讀取更新需求的權重分別為4、2、1。因此,以區塊B1為例,由於在耗損平均需求資料表200、讀取回收需求資料表300以及讀取更新需求資料表400都有記錄區塊B1,亦即區塊B1同時具有耗損平均需求、讀取回收需求以及讀取更新需求,因此區塊B1的重要性資訊可以計算如下:4*1+2*1+1*1=7;另外以區塊B3為例,由於區塊B3僅被記錄在讀取回收需求資料表300以及讀取更新需求資料表400中,亦即區塊B3僅具讀取回收需求以及讀取更新需求,因此區塊B3的重要性資訊可以計算如下:4*0+2*1+1*1=3。如上所述,由於每一個區塊的重要性資訊係同時參考耗損平均需求、讀取回收需求以及讀取更新需求來計算出來,因此可以確實反映出每一個區塊需要進行垃圾收集操作的優先性,亦即第5圖所示之重要性資訊的數值越高的需要優先進行垃圾收集操作。
在本實施例中,若是有兩個區塊的重要性資訊相同,例如第5圖的區塊B6、B7的重要性資訊都是“4”,則需要重新參考耗損平均需求資料表200、讀取回收需求資料表300及/或讀取更新需求資料表400的內容來決定出其優先順序。舉例來說,由於在第2圖中的耗損平均需求資料表200記錄了區塊B7的抹除次數高於區塊B6的抹除次數,因此快閃記憶體控制器110會判斷區塊B7進行垃圾收集操作的優先性會高於區塊B6。
在本實施例中,當快閃記憶體控制器110需要對快閃記憶體模組120進行垃圾收集操作時,其會根據垃圾收集對照表500所記錄的重要性資訊來依序對區塊B1、B9、B7、B6、B3、B5、B2、B4進行垃圾收集操作,亦即將其中的有效資料搬移到另外的空白區塊當中,並在一區塊內的所有有效資料都完成搬移之後將該區塊抹除或是標記為無效。
如上所述,由於每一個區塊的重要性資訊係同時參考耗損平均需求、讀取回收需求以及讀取更新需求來計算出來,因此重要性資訊較高的區塊通常會同時具有兩個以上的需求,因此對優先對重要性資訊較高的區塊先進行垃圾收集操作可以同時完成兩個以上的需求,以提升快閃記憶體控制器110的效率。以第5圖為例來說明,由於重要性資訊最高的區塊B1同時具有耗損平均需求、讀取回收需求以及讀取更新需求,因此優先對區塊B1進行垃圾收集操作可以同時完成這三個需求,且也可以快速地釋放出讀取回收需求資料表300以及讀取更新需求資料表400的空間,避免佇列過溢(queue overflow)的情形。
在本發明的另一個實施例中,垃圾收集對照表500可以僅根據耗損平均需求資料表200、讀取回收需求資料表300以及讀取更新需求資料表400中其中兩個資料表來建立,亦即垃圾收集對照表500可以僅反應每一個區塊的耗損平均需求以及讀取回收需求、或是僅反應每一個區塊的耗損平均需求以及讀取更新需求、或是僅反應每一個區塊的讀取回收需求以及讀取更新需求,這些設計上的變化均應隸屬於本發明的範疇。
需注意的是,第5圖所示之垃圾收集對照表500僅為一範例說明,而並非是作為本發明的限制。在其他的實施例中,垃圾收集對照表500可以僅記錄每一個區塊的編號及其重要性資訊的數值,且該重要性數值可以使用不同的記錄方式,只要垃圾收集對照表500所記錄的內容可以反映出每一個區塊對於垃圾收集操作的優先順序,其記錄方式可以由其他不同方式來呈現。
在本發明的一實施例中,上述垃圾收集操作係在快閃記憶體模組120進行一背景掃描(background scan)的過程中進行,亦即快閃記憶體控制器110會週期性地或是根據一排程來決定是否開始進行垃圾收集操作,而當快閃記憶體控制器110決定要進行垃圾收集操作時,快閃記憶體控制器110才會參考第5圖所示之垃圾收集對照表500來決定由那些區塊優先開始進行。需注意的是,垃圾收集操作亦可以由其他機制所觸發,例如當快閃記憶體模組120內的可使用區塊(空白區塊)的數量不足時,而既然本實施例中的垃圾收集操作係在背景掃描中進行,則其區塊的決定順序便僅需要參考垃圾收集對照表500,而不需要考慮到其他類似可使用區塊不足的因素。
第6圖為根據本發明一實施例之管理一快閃記憶體模組的方法的流程圖。參考以上第1~5圖所揭露的內容,第6圖的流程如下所述:
步驟600:流程開始。
步驟602:建立垃圾收集對照表,其中垃圾收集對照表記錄了分別對應到多個區塊的多個重要性資訊。
步驟604:當快閃記憶體控制器準備對快閃記憶體模組進行垃圾收集操作時,參考垃圾收集對照表以決定出需要優先進行該垃圾收集操作的特定區塊,並由特定區塊開始進行垃圾收集操作。
簡要歸納本發明,在本發明之管理快閃記憶體模組的方法及相關的快閃記憶體控制器中,其透過建立一垃圾收集對照表,以記錄每一個區塊目前需要進行垃圾收集操作的優先性,以供快閃記憶體控制器進行垃圾收集操作時的參考。由於垃圾收集對照表係動態地隨著快閃記憶體控制器存取快閃記憶體模組的過程中不斷地更新,因此垃圾收集對照表可以確實反映出正確的優先順序,以使得垃圾收集操作更有效率。 以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
100‧‧‧記憶裝置 110‧‧‧快閃記憶體控制器 112‧‧‧微處理器 112C‧‧‧程式碼 112M‧‧‧唯讀記憶體 114‧‧‧控制邏輯 116‧‧‧緩衝記憶體 118‧‧‧介面邏輯 120‧‧‧快閃記憶體模組 130‧‧‧主裝置 132‧‧‧編碼器 134‧‧‧解碼器 200‧‧‧耗損平均資料表 300‧‧‧讀取回收資料表 400‧‧‧讀取更新資料表 500‧‧‧垃圾收集對照表 600~604‧‧‧步驟 B0~B9‧‧‧區塊
第1圖為依據本發明一實施例之一種記憶裝置的示意圖。 第2圖為根據本發明一實施例之耗損平均需求資料表的示意圖。 第3圖為根據本發明一實施例之讀取回收需求資料表的示意圖。 第4圖為根據本發明一實施例之讀取更新需求資料表的示意圖。 第5圖為根據本發明一實施例之垃圾收集對照表的示意圖。 第6圖為根據本發明一實施例之管理一快閃記憶體模組的方法的流程圖。
500‧‧‧垃圾收集對照表
B0~B9‧‧‧區塊

Claims (20)

  1. 一種管理一快閃記憶體模組的方法,其中該快閃記憶體模組包含了多個區塊,以及該方法包含有: 建立一垃圾收集對照表,其中該垃圾收集對照表記錄了分別對應到該多個區塊的多個重要性資訊,其中每一個重要性資訊用以表示所對應之區塊需要進行一垃圾收集操作的優先性;以及 當該快閃記憶體模組需要進行該垃圾收集操作時,參考該垃圾收集對照表以決定出需要優先進行該垃圾收集操作的一特定區塊,並由該特定區塊開始進行該垃圾收集操作。
  2. 如申請專利範圍第1項所述之方法,其中建立該垃圾收集對照表的步驟包含有: 參考一耗損平均需求資料表、一讀取回收需求資料表以及一讀取更新需求資料表中的至少其二,以建立該垃圾收集對照表。
  3. 如申請專利範圍第2項所述之方法,其中建立該垃圾收集對照表的步驟包含有: 同時參考參考該耗損平均需求資料表、讀取回收需求資料表以及該讀取更新需求資料表,以建立該垃圾收集對照表。
  4. 如申請專利範圍第3項所述之方法,其中該垃圾收集對照表中每一個區塊的重要性資訊是由該區塊是否出現在該耗損平均需求資料表、讀取回收需求資料表以及該讀取更新需求資料表中來決定。
  5. 如申請專利範圍第4項所述之方法,其中該耗損平均需求資料表、該讀取回收需求資料表以及該讀取更新需求資料表分別具有對應的權重值,以及該垃圾收集對照表中每一個區塊的重要性資訊是由該區塊是否出現在該耗損平均需求資料表、讀取回收需求資料表以及該讀取更新需求資料表中以及所對應的權重值來決定。
  6. 如申請專利範圍第5項所述之方法,其中該耗損平均需求資料表的權重值高於該讀取回收需求資料表以及該讀取更新需求資料表的權重值。
  7. 如申請專利範圍第3項所述之方法,其中該耗損平均需求資料表記錄了抹除次數高於一第一臨界值的區塊及其抹除次數,該讀取回收需求資料表記錄了位元錯誤量高於一第二臨界值的區塊及其位元錯誤量,以及該讀取更新需求資料表記錄了讀取次數高於一第三臨界值的區塊及其讀取次數。
  8. 如申請專利範圍第7項所述之方法,其中參考該垃圾收集對照表以決定出需要優先進行該垃圾收集操作的該特定區塊的步驟包含有: 當有兩個以上的區塊具有相同的重要性資訊時,參考該耗損平均需求資料表所記錄之區塊的抹除次數,或是參考該讀取回收需求資料表所記錄的之區塊的位元錯誤量,或是參考該讀取更新需求資料表所記錄之區塊的讀取次數,以決定出需要優先進行該垃圾收集操作的該特定區塊。
  9. 如申請專利範圍第1項所述之方法,其中參考該垃圾收集對照表以決定出需要優先進行該垃圾收集操作的該特定區塊,並由該特定區塊開始進行該垃圾收集操作的步驟係在一快閃記憶體控制器對該快閃記憶體模組進行一背景掃描(background scan)的過程中進行。
  10. 一種快閃記憶體控制器,其中該快閃記憶體控制器係用來存取一快閃記憶體模組,該快閃記憶體模組包含了多個區塊,且該快閃記憶體控制器包含有: 一唯讀記憶體,用來儲存一程式碼;以及 一微處理器,用來執行該程式碼以控制對該快閃記憶體模組之存取; 其中該微處理器建立一垃圾收集對照表,其中該垃圾收集對照表記錄了分別對應到該多個區塊的多個重要性資訊,其中每一個重要性資訊用以表示所對應之區塊需要進行一垃圾收集操作的優先性;以及當該快閃記憶體模組需要進行該垃圾收集操作時,該微處理器參考該垃圾收集對照表以決定出需要優先進行該垃圾收集操作的一特定區塊,並由該特定區塊開始進行該垃圾收集操作。
  11. 如申請專利範圍第10項所述之快閃記憶體控制器,其中該微處理器參考一耗損平均需求資料表、一讀取回收需求資料表以及一讀取更新需求資料表中的至少其二,以建立該垃圾收集對照表。
  12. 如申請專利範圍第11項所述之快閃記憶體控制器,其中該微處理器同時參考參考該耗損平均需求資料表、讀取回收需求資料表以及該讀取更新需求資料表,以建立該垃圾收集對照表。
  13. 如申請專利範圍第12項所述之快閃記憶體控制器,其中該垃圾收集對照表中每一個區塊的重要性資訊是由該區塊是否出現在該耗損平均需求資料表、讀取回收需求資料表以及該讀取更新需求資料表中來決定。
  14. 如申請專利範圍第13項所述之快閃記憶體控制器,其中該耗損平均需求資料表、該讀取回收需求資料表以及該讀取更新需求資料表分別具有對應的權重值,以及該垃圾收集對照表中每一個區塊的重要性資訊是由該區塊是否出現在該耗損平均需求資料表、讀取回收需求資料表以及該讀取更新需求資料表中以及所對應的權重值來決定。
  15. 如申請專利範圍第14項所述之快閃記憶體控制器,其中該耗損平均需求資料表的權重值高於該讀取回收需求資料表以及該讀取更新需求資料表的權重值。
  16. 如申請專利範圍第12項所述之快閃記憶體控制器,其中該耗損平均需求資料表記錄了抹除次數高於一第一臨界值的區塊及其抹除次數,該讀取回收需求資料表記錄了位元錯誤量高於一第二臨界值的區塊及其位元錯誤量,以及該讀取更新需求資料表記錄了讀取次數高於一第三臨界值的區塊及其讀取次數。
  17. 如申請專利範圍第16項所述之快閃記憶體控制器,其中當有兩個以上的區塊具有相同的重要性資訊時,該微處理器參考該耗損平均需求資料表所記錄之區塊的抹除次數,或是參考該讀取回收需求資料表所記錄的之區塊的位元錯誤量,或是參考該讀取更新需求資料表所記錄之區塊的讀取次數,以決定出需要優先進行該垃圾收集操作的該特定區塊。
  18. 如申請專利範圍第10項所述之快閃記憶體控制器,其中該微處理器係在對該快閃記憶體模組進行一背景掃描(background scan)的過程時參考該垃圾收集對照表以決定出需要優先進行該垃圾收集操作的該特定區塊,並由該特定區塊開始進行該垃圾收集操作。
  19. 一種電子裝置,包含有: 一快閃記憶體模組,包含多個區塊;以及 一快閃記憶體控制器,用來存取該快閃記憶體模組; 其中該快閃記憶體控制器建立一垃圾收集對照表,其中該垃圾收集對照表記錄了分別對應到該多個區塊的多個重要性資訊,其中每一個重要性資訊用以表示所對應之區塊需要進行一垃圾收集操作的優先性;以及當該快閃記憶體模組需要進行該垃圾收集操作時,該快閃記憶體控制器參考該垃圾收集對照表以決定出需要優先進行該垃圾收集操作的一特定區塊,並由該特定區塊開始進行該垃圾收集操作。
  20. 如申請專利範圍第19項所述之電子裝置,其中該快閃記憶體控制器同時參考參考該耗損平均需求資料表、讀取回收需求資料表以及該讀取更新需求資料表,以建立該垃圾收集對照表。
TW107121232A 2018-06-21 2018-06-21 管理快閃記憶體模組的方法及相關的快閃記憶體控制器及電子裝置 TW202001565A (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
TW107121232A TW202001565A (zh) 2018-06-21 2018-06-21 管理快閃記憶體模組的方法及相關的快閃記憶體控制器及電子裝置
CN201810750679.4A CN110633047A (zh) 2018-06-21 2018-07-10 管理闪存模块的方法及相关的闪存控制器及电子装置
US16/260,011 US20190391916A1 (en) 2018-06-21 2019-01-28 Method for managing flash memory module and associated flash memory controller and electronic device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW107121232A TW202001565A (zh) 2018-06-21 2018-06-21 管理快閃記憶體模組的方法及相關的快閃記憶體控制器及電子裝置

Publications (1)

Publication Number Publication Date
TW202001565A true TW202001565A (zh) 2020-01-01

Family

ID=68968194

Family Applications (1)

Application Number Title Priority Date Filing Date
TW107121232A TW202001565A (zh) 2018-06-21 2018-06-21 管理快閃記憶體模組的方法及相關的快閃記憶體控制器及電子裝置

Country Status (3)

Country Link
US (1) US20190391916A1 (zh)
CN (1) CN110633047A (zh)
TW (1) TW202001565A (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102578188B1 (ko) * 2018-05-15 2023-09-14 에스케이하이닉스 주식회사 메모리 컨트롤러 및 이의 동작 방법
US11200113B2 (en) * 2020-01-14 2021-12-14 Intel Corporation Auto-increment write count for nonvolatile memory
KR20210111527A (ko) * 2020-03-03 2021-09-13 에스케이하이닉스 주식회사 메모리 시스템에서 가비지 컬렉션을 수행하는 장치 및 방법
KR20220122064A (ko) * 2021-02-26 2022-09-02 에스케이하이닉스 주식회사 데이터 저장 장치 및 그 동작 방법
US11961547B2 (en) * 2022-02-09 2024-04-16 Micron Technology, Inc. Techniques for memory system refresh
CN115454710B (zh) * 2022-11-10 2023-03-24 珠海妙存科技有限公司 闪存数据读取方法及其装置、电子设备、存储介质

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100789406B1 (ko) * 2006-11-03 2007-12-28 삼성전자주식회사 플래시 메모리 시스템 및 그것의 가비지 컬렉션 방법
US8433845B2 (en) * 2009-04-08 2013-04-30 Google Inc. Data storage device which serializes memory device ready/busy signals
US8266501B2 (en) * 2009-09-29 2012-09-11 Micron Technology, Inc. Stripe based memory operation
US8626986B2 (en) * 2010-06-30 2014-01-07 Sandisk Technologies Inc. Pre-emptive garbage collection of memory blocks
US8706983B2 (en) * 2010-06-30 2014-04-22 Sandisk Technologies Inc. Garbage collection of memory blocks using volatile memory
KR101774496B1 (ko) * 2010-12-08 2017-09-05 삼성전자주식회사 비휘발성 메모리 장치, 이를 포함하는 장치들, 및 이의 동작 방법
US8589761B2 (en) * 2011-05-31 2013-11-19 Micron Technology, Inc. Apparatus and methods for providing data integrity
KR102164630B1 (ko) * 2013-06-28 2020-10-12 삼성전자주식회사 메모리 컨트롤러 및 상기 메모리 컨트롤러의 동작 방법
US9589024B2 (en) * 2013-09-27 2017-03-07 Intel Corporation Mechanism for facilitating dynamic and proactive data management for computing devices
KR20180076765A (ko) * 2016-12-28 2018-07-06 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법

Also Published As

Publication number Publication date
US20190391916A1 (en) 2019-12-26
CN110633047A (zh) 2019-12-31

Similar Documents

Publication Publication Date Title
TWI692690B (zh) 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置
CN110908925B (zh) 高效能垃圾收集方法以及数据存储装置及其控制器
US10474573B2 (en) Method for managing flash memory module and associated flash memory controller and electronic device
TW202001565A (zh) 管理快閃記憶體模組的方法及相關的快閃記憶體控制器及電子裝置
TWI592800B (zh) 記憶體管理方法及使用所述方法的儲存控制器
US20140075100A1 (en) Memory system, computer system, and memory management method
US8667209B2 (en) Non-volatile memory access method and system, and non-volatile memory controller
JPWO2007119267A1 (ja) フラッシュメモリ用のメモリコントローラ
CN107590080B (zh) 映射表更新方法、存储器控制电路单元及存储器存储装置
TWI659304B (zh) 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置
TWI459198B (zh) 記憶體儲存裝置、其記憶體控制器與有效資料識別方法
TWI692688B (zh) 快閃記憶體控制器及相關電子裝置
US11403018B2 (en) Method and apparatus for performing block management regarding non-volatile memory
TWI748542B (zh) 電子裝置、快閃記憶體控制器及快閃記憶體模組進行垃圾收集操作的方法
TW202203227A (zh) 記憶裝置、快閃記憶體控制器及其存取方法
TWI657339B (zh) 管理快閃記憶體模組的方法及相關的快閃記憶體控制器
TWI670598B (zh) 管理快閃記憶體模組的方法及相關的快閃記憶體控制器及電子裝置
TWI721365B (zh) 高效能垃圾收集方法以及資料儲存裝置及其控制器
TWI653630B (zh) 存取快閃記憶體模組的方法及相關的快閃記憶體控制器及電子裝置
TWI775341B (zh) 整理指令處理方法、記憶體控制電路單元與記憶體儲存裝置
TWI760094B (zh) 記憶裝置、快閃記憶體控制器及其存取方法
TW202418092A (zh) 資料儲存裝置與寫入緩存器管理方法
TW202418090A (zh) 資料儲存裝置與寫入緩存器管理方法