TWI748542B - 電子裝置、快閃記憶體控制器及快閃記憶體模組進行垃圾收集操作的方法 - Google Patents

電子裝置、快閃記憶體控制器及快閃記憶體模組進行垃圾收集操作的方法 Download PDF

Info

Publication number
TWI748542B
TWI748542B TW109122199A TW109122199A TWI748542B TW I748542 B TWI748542 B TW I748542B TW 109122199 A TW109122199 A TW 109122199A TW 109122199 A TW109122199 A TW 109122199A TW I748542 B TWI748542 B TW I748542B
Authority
TW
Taiwan
Prior art keywords
flash memory
garbage collection
memory controller
collection operation
memory module
Prior art date
Application number
TW109122199A
Other languages
English (en)
Other versions
TW202203011A (zh
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 TW109122199A priority Critical patent/TWI748542B/zh
Priority to CN202010972113.3A priority patent/CN113886279A/zh
Priority to US17/082,039 priority patent/US11194502B1/en
Application granted granted Critical
Publication of TWI748542B publication Critical patent/TWI748542B/zh
Publication of TW202203011A publication Critical patent/TW202203011A/zh

Links

Images

Classifications

    • 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/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • 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
    • 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
    • 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/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/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/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • 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/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
    • 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)
  • Computer Security & Cryptography (AREA)
  • Memory System (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本發明揭露一種快閃記憶體控制器,用來存取一快閃記憶體模組,且該快閃記憶體控制器包含有一唯讀記憶體以及一微處理器。當該快閃記憶體控制器上電並進行一初始化操作時,該微處理器在該初始化操作的一預設時間範圍內,判斷該快閃記憶體模組內之備用區塊的數量是否低於一第一臨界值,以決定是否要進行一垃圾收集操作;以及當該快閃記憶體控制器上電後的時間超出該預設時間範圍,該微處理器判斷該快閃記憶體模組內之備用區塊的數量是否低於一第二臨界值,以決定是否要進行另一垃圾收集操作,其中該第二臨界值低於該第一臨界值。

Description

電子裝置、快閃記憶體控制器及快閃記憶體模組進行垃圾收 集操作的方法
本發明係有關於快閃記憶體,尤指一種快閃記憶體的垃圾收集操作。
在快閃記憶體模組的操作中,由於所儲存的資料並無法透過覆寫的方式來進行更新,因此,用來取代舊資料的更新資料會在舊資料仍然存在於快閃記憶體模組的情形下,直接被寫入至快閃記憶體中,因而造成快閃記憶體模組中會包含許多舊資料(無效資料)及更新資料(有效資料),浪費了儲存空間。因此,為了被免這些無效資料占用快閃記憶體模組的儲存空間,快閃記憶體控制器會根據快閃記憶體模組內備用區塊(spare block)的數量來決定是否進行一垃圾收集操作(garbage collection)。舉例來說,當快閃記憶體模組內備用區塊的數量低於一臨界值時,快閃記憶體控制器會控制快閃記憶體模組將多個來源區塊(資料區塊)內的有效資料搬移到一個備用區塊中,之後再將該多個來源區塊內的資料全部抹除來作為新的備用區塊,以釋放出快閃記憶體模組的儲存空間。然而,考量到快閃記憶體模組的利用率,且由於垃圾收集操作會影響到快閃記憶體模組的正常存取,因此上述的臨界值一般不會設定的太高,例如臨界值可以是快 閃記憶體模組內全部區塊數量的十分之一。
如上所述,由於上述的臨界值不會設定的太高,因此,快閃記憶體控制器會在快閃記憶體模組內僅具有較少備用區塊的情形下才會開始進行垃圾收集操作,然而,在垃圾收集操作的過程中,若是在多個來源區塊內的有效資料搬移到一個備用區塊的過程中發生了不正常斷電,則為了確保資料無誤,則在重新上電開機之後,上述備用區塊會被直接放棄(亦即,停止使用並標記無效),而垃圾收集操作會重新開啟以將該多個來源區塊內的有效資料重新搬移到另一個備用區塊。如上所述,當快閃記憶體模組在垃圾收集操作的過程中發生斷電時會白白浪費一個備用區塊,因此,若是快閃記憶體模組在備用區塊數量不足時頻頻發生斷電而使得垃圾收集操作一直無法完成,則很有可能會使得快閃記憶體模組內的備用區塊急速減少,甚至會造成快閃記憶體模組無法進行資料寫入而只能進行資料讀取的情形。
此外,在某些設計上,快閃記憶體模組中的每一個區塊會具有很多的資料頁,亦即每一個區塊具有較大的尺寸(例如,16百萬位元組(MB)),但快閃記憶體模組內整體的區塊數量會很少,在這種情形下,由於較大尺寸的區塊會需要較長的時間來完成垃圾收集操作,因此遭受到不正常斷電的機會比較高;此外,整體區塊數量會很少也代表著快閃記憶體模組會在備用區塊數量很低的情形下才會進行垃圾收集操作,如此一來也使得上述快閃記憶體模組在備用區塊數量不足時頻頻發生斷電所造成之備用區塊急速減少的問題變得更嚴重。
因此,本發明的目的之一在於提出一種控制快閃記憶體模組的方 法,其可以對垃圾收集操作的相關參數進行特殊的設定,以解決先前技術中所述的問題。
在本發明的一個實施例中,揭露了一種快閃記憶體控制器,其用來存取一快閃記憶體模組,且該快閃記憶體控制器包含有一唯讀記憶體以及一微處理器。當該快閃記憶體控制器上電並進行一初始化操作時,該微處理器在該初始化操作的一預設時間範圍內,判斷該快閃記憶體模組內之備用區塊的數量是否低於一第一臨界值,以決定是否要進行一垃圾收集操作;以及當該快閃記憶體控制器上電後的時間超出該預設時間範圍,該微處理器判斷該快閃記憶體模組內之備用區塊的數量是否低於一第二臨界值,以決定是否要進行另一垃圾收集操作,其中該第二臨界值低於該第一臨界值。
在本發明的另一個實施例中,揭露了一種電子裝置,其包含有一快閃記憶體模組以及一快閃記憶體控制器。當該快閃記憶體控制器上電並進行一初始化操作時,該快閃記憶體控制器在該初始化操作的一預設時間範圍內,判斷該快閃記憶體模組內之備用區塊的數量是否低於一第一臨界值,以決定是否要進行一垃圾收集操作;以及當該快閃記憶體控制器上電後的時間超出該預設時間範圍,該快閃記憶體控制器判斷該快閃記憶體模組內之備用區塊的數量是否低於一第二臨界值,以決定是否要進行另一垃圾收集操作,其中該第二臨界值低於該第一臨界值。
在本發明的另一個實施例中,揭露了一種對一快閃記憶體模組進行垃圾收集操作的方法,其包含有以下步驟:當用來存取該快閃記憶體模組的一快閃記憶體控制器上電並進行一初始化操作時,在該初始化操作的一預設時間 範圍內,判斷該快閃記憶體模組內之備用區塊的數量是否低於一第一臨界值,以決定是否要進行一垃圾收集操作;以及當該快閃記憶體控制器上電後的時間超出該預設時間範圍,判斷該快閃記憶體模組內之備用區塊的數量是否低於一第二臨界值,以決定是否要進行另一垃圾收集操作,其中該第二臨界值低於該第一臨界值。
100:電子裝置
110:快閃記憶體控制器
112:微處理器
112C:程式碼
112M:唯讀記憶體
114:控制邏輯
116:緩衝記憶體
118:介面邏輯
120:快閃記憶體模組
130:主裝置
132:編碼器
134:解碼器
142:讀取重試表
144:讀取成功紀錄表
200:區塊
202:浮閘電晶體
300~316:步驟
410_1,410_2,410_3:資料區塊
420_1,420_2,420_N:備用區塊
500~516:步驟
BL1,BL2,BL3:位元線
WL0~WL2,WL4~WL6:字元線
第1圖為依據本發明一實施例之一種電子裝置的示意圖。
第2圖為依據本發明一實施例之快閃記憶體模組中一區塊的示意圖。
第3圖為根據本發明一第一實施例之快閃記憶體控制器控制快閃記憶體模組進行垃圾收集操作的流程圖。
第4圖為垃圾收集操作的示意圖。
第5圖為根據本發明一第二實施例之快閃記憶體控制器控制快閃記憶體模組進行垃圾收集操作的流程圖。
第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連接的另一電子裝置,例如手機、筆記型電腦、桌上型電腦...等等。而在另一實施例中,電子裝置100可以是固態硬碟或符合通用快閃記憶體儲存(Universal Flash Storage,UFS)或嵌入式多媒體記憶卡(Embedded Multi Media Card,EMMC) 規格之嵌入式儲存裝置,且可以設置在手機、筆記型電腦、桌上型電腦之中,而此時主裝置130可以是手機、筆記型電腦、桌上型電腦的一處理器。
第2圖為依據本發明一實施例之快閃記憶體模組120中一區塊200的示意圖,其中快閃記憶體模組120為立體NAND型快閃記憶體。如第2圖所示,區塊200包含了多個記憶單元(例如圖示的浮閘電晶體202或是其他的電荷捕捉(charge trap)元件),其透過多條位元線(圖示僅繪示了BL1~BL3)及多條字元線(例如圖示WL0~WL2、WL4~WL6)來構成立體NAND型快閃記憶體架構。在第2圖中,以最上面的一個平面為例,字元線WL0上的所有浮閘電晶體構成了至少一資料頁,字元線WL1上的所有浮閘電晶體構成了另至少一資料頁,而字元線WL2的所有浮閘電晶體構成了再另至少一資料頁...以此類堆。此外,根據快閃記憶體寫入方式的不同,字元線WL0與資料頁(邏輯資料頁)之間的定義也會有所不同,詳細來說,當使用單層式儲存(Single-Level Cell,SLC)的方式寫入時,字元線WL0上的所有浮閘電晶體僅對應到單一邏輯資料頁;當使用雙層式儲存(Multi-Level Cell,MLC)的方式寫入時,字元線WL0上的所有浮閘電晶體對應到兩個邏輯資料頁;當使用三層式儲存(Triple-Level Cell,TLC)的方式寫入時,字元線WL0上的所有浮閘電晶體對應到三個邏輯資料頁;以及當使用四層式儲存(Quad-Level Cell,QLC)的方式寫入時,字元線WL0上的所有浮閘電晶體對應到四個邏輯資料頁。由於本技術領域中具有通常知識者應能了解立體NAND型快閃記憶體的結構以及字元線及資料頁之間的關係,故相關的細節在此不予贅述。
第3圖為根據本發明一第一實施例之快閃記憶體控制器110控制快閃記憶體模組120進行垃圾收集操作的流程圖。在步驟300中,流程開始,且快閃記憶體控制器110與快閃記憶體模組120由上電,亦即由關機或斷電狀態進入啟 動階段。在步驟302中,快閃記憶體控制器110與快閃記憶體模組120進行初始化操作,亦即快閃記憶體控制器110開始建立系統操作所需的對照表(look-up table),例如可以自快閃記憶體模組120中讀取相關的資料以建立出所需的對照表,並暫存在緩衝記憶體116中。需注意的是,為了避免初始化時間太久而影響到使用者的感受,快閃記憶體控制器110的進行初始化操作有一個預設時間範圍的限制,亦即所有的初始化操作需要在一預設時間範圍內完成,而這個預設時間範圍通常很短,例如1秒或2秒左右。此外,由於快閃記憶體控制器110的初始化操作一般來說會設計的可以在1秒內完成,因此,本實施例提出了一種在初始化操作完成後,且快閃記憶體控制器110上電後的時間尚未超出上述預設時間範圍的情形下,快閃記憶體控制器110在這段期間內對快閃記憶體模組120進行一特殊的垃圾收集操作,以解決先前技術中所提到之備用區塊不足的問題。
在步驟304中,快閃記憶體控制器110中的微處理器112判斷目前快閃記憶體模組120內的備用區塊的數量是否低於一第一臨界值,若是,則流程進入到步驟306;若否,則流程進入到步驟314。具體來說,微處理器112可以透過緩衝記憶體116內所儲存的一些對照表來判斷出目前快閃記憶體模組120內備用區塊的數量,其中備用區塊也可稱為空白區塊,亦即尚未進行資料寫入的區塊,或者僅包含無效資料的區塊。在本實例中,第一臨界值可以是一個較高的數值,例如快閃記憶體模組120內區塊總數的20%或30%。舉例來說,參考第4圖,快閃記憶體模組120包含了多個有資料寫入的資料區塊410_1、410_2、410_3、...以及多個備用區塊420_1~420_N,假設快閃記憶體模組120的容量為8十億位元組(GB)、每一個區塊的容量為16MB、且區塊總數為500,則當個備用區塊420_1~420_N的數量低於100或150時,流程便進入到步驟306。需注意的是,上述第一臨界值的範例係僅供說明使用,而非作為本發明的限制。
在步驟306,微處理器112控制快閃記憶體模組120開始進行垃圾收集操作。詳細來說,微處理器112可以根據一些內部的判斷標準來選擇可以進行垃圾收集操作的區塊,例如選擇無效資料頁最多的區塊、資料品質最差的區塊、讀取次數最多的區塊、抹除次數最多的區塊、...、及/或其他任何判斷標準,並將這些所選擇的區塊內的有效資料依序搬移至一個備用區塊中。以第4圖為例來說明,微處理器112可以先將資料區塊410_1內之有效資料頁的內容依序搬移至備用區塊420_1,並等待資料區塊410_1的有效資料頁全部搬移後再開始將資料區塊410_2內之有效資料頁的內容依序搬移至備用區塊420_1、之後等待資料區塊410_2的有效資料頁全部搬移後再開始將資料區塊410_3內之有效資料頁的內容依序搬移至備用區塊420_1...以此類推。
在進行垃圾收集操作的期間,於步驟308,微處理器112持續地判斷快閃記憶體控制器110上電後的時間是否超出一預設時間範圍,例如1秒或2秒,若超出預設時間範圍,流程進入步驟314;若尚未超出預設時間範圍,則流程進入到步驟310以繼續進行未完成的垃圾收集操作。
在步驟312,微處理器112判斷目前所進行的垃圾收集操作是否已經完成,若是,則流程回到步驟304;若否,則流程回到步驟308。詳細來說,微處理器112可以根據備用區塊420_1的所有資料頁是否都已經寫滿以判斷垃圾收集操作是否已經完成,亦即當備用區塊420_1的最後一個資料頁完成資料寫入時,這一次的垃圾收集操作便結束,且微處理器112開始更新相關的邏輯位址與實體位址的映射表,並將資料區塊410_1、410_2、410_3內的資料抹除後來作為備用區塊。在一例子中,若是在資料區塊410_3的有效資料尚未全部搬移的情形 下備用區塊420_1的所有資料頁就都已經寫滿了,則此時垃圾收集操作結束,但資料區塊410_3的內容則全部保留,並等待下一次的垃圾收集操作再進行處理。
在以上步驟304~312的操作中,主要描述了在快閃記憶體控制器110在進行初始化的預設時間範圍內,利用初始化完成後的剩餘時間來進行垃圾收集操作,且此時所進行的垃圾收集操作具有較高的第一臨界值,亦即在備用區塊的數量尚稱足夠的情形下便進行垃圾收集操作。此外,在步驟304中,若是微處理器112判斷目前快閃記憶體模組120內的備用區塊的數量高於第一臨界值,則代表目前備用區塊的數量很足夠,因此,微處理器112在進行初始化的預設時間範圍內不會主動進行任何的垃圾收集操作,而流程直接進入到步驟314;另外,在步驟308中,若是快閃記憶體控制器110上電後的時間是超出預設時間範圍,則此時微處理器112會暫時停止垃圾收集操作並進入到步驟314,例如暫時停止將資料區塊410_1~410_3的有效資料搬移至備用區塊420_1,且保留資料區塊410_1~410_3的內容。
在步驟314中,微處理器112將用來決定是否進行垃圾收集操作的標準由第一臨界值修改為第二臨界值,其中第二臨界值可以是低於第一臨界值的任意數值,例如第二臨界值可以是快閃記憶體模組120內區塊總數的10%。
在步驟316中,快閃記憶體控制器110與快閃記憶體模組120一般存取操作,例如讀取、寫入及資料管理。此外,微處理器112開啟一背景操作,其中該背景操作係用來在快閃記憶體控制器110與快閃記憶體模組120處於閒置狀態時開始進行垃圾處理操作,例如當接收到來自主裝置130的一個寫入/讀取命令後,若是在一段時間內(例如10毫秒或100毫秒內)沒有接收到另外的寫入/讀取命 令,則可以開始繼續完成之前尚未完成的垃圾收集操作,或是開啟一個新的垃圾收集操作。舉例來說,假設在步驟306所開始進行的垃圾收集操作因為超出步驟308所述的預設時間範圍而暫停,則此時微處理器112可以利用快閃記憶體控制器110處於閒置狀態時開始逐步地將資料區塊410_1~410_3的有效資料搬移至備用區塊420_1,直到備用區塊420_1的所有資料頁就都寫滿為止,以結束這一次的垃圾收集操作。而在備用區塊420_1完成垃圾收集操作並做為資料區塊之後,後續微處理器112只有在快閃記憶體模組120內的備用區塊的數量低於第二臨界值時才會開始垃圾收集操作,以避免頻繁的垃圾收集操作影響到快閃記憶體控制器110的正常存取。
如以上第3圖的實施例所述,透過在初始化操作的預設時間範圍內使用較高的第一臨界值來做為垃圾收集操作的判斷基準,可以充分利用上述預設時間範圍的剩餘時間盡可能來額外產生一些備用區塊,以避免備用區塊數量不足的問題。此外,在初始化完成後的一般操作中,透過使用較低的第二臨界值來做為垃圾收集操作的判斷基準,可以避免頻繁的垃圾收集操作影響到快閃記憶體控制器110的正常存取。
第5圖為根據本發明一第二實施例之快閃記憶體控制器110控制快閃記憶體模組120進行垃圾收集操作的流程圖。在步驟500中,流程開始,且快閃記憶體控制器110與快閃記憶體模組120由上電,亦即由關機或斷電狀態進入啟動階段。在步驟502中,快閃記憶體控制器110與快閃記憶體模組120進行初始化操作。在步驟504中,快閃記憶體控制器110中的微處理器112判斷目前快閃記憶體模組120內的備用區塊的數量是否低於一第一臨界值,若是,則流程進入到步驟506;若否,則流程進入到步驟514。舉例來說,第一臨界值可以是一個較高 的數值,例如快閃記憶體模組120內區塊總數的20%或30%。在步驟506,微處理器112控制快閃記憶體模組120開始進行垃圾收集操作。詳細來說,微處理器112可以根據一些內部的判斷標準來選擇可以進行垃圾收集操作的區塊,並將這些所選擇的區塊內的有效資料依序搬移至一個備用區塊中。以第4圖為例來說明,微處理器112可以依序資料區塊410_1、420_2、420_3內之有效資料頁的內容依序搬移至備用區塊420_1。在進行垃圾收集操作的期間,於步驟508,微處理器112持續地判斷快閃記憶體控制器110上電後的時間是否超出一預設時間範圍,例如1秒或2秒,若超出預設時間範圍,流程進入步驟514;若尚未超出預設時間範圍,則流程進入到步驟510以繼續進行未完成的垃圾收集操作。
需注意的是,以上步驟500~510的操作內容與第3圖之步驟300~310的操作內容類似,因此細節部分在此忽略不贅述。
在步驟512,微處理器112判斷目前已經將有效資料全部複製到備用區塊的資料區塊的數量是否到達一特定數量,若是,則流程進入步驟514;若否,則流程回到步驟508。詳細來說,該特定數量可以是“2”,亦即只要資料區塊410_1、420_2的所有有效資料都複製到備用區塊420_1之後,微處理器112便結束這一次的垃圾收集操作,且微處理器112可以將備用區塊420_1的剩餘資料頁寫入冗餘資料(dummy data)且開始更新相關的邏輯位址與實體位址的映射表,並將資料區塊410_1、410_2內的資料抹除後來作為備用區塊。因此,由於這次垃圾收集操作中備用區塊420_1轉為資料區塊,但有兩個資料區塊410_1、410_2轉為備用區塊,因此整體來說快閃記憶體模組120內之備用區塊的數量增加了。
在步驟514中,微處理器112將用來決定是否進行垃圾收集操作的標 準由第一臨界值修改為第二臨界值,其中第二臨界值可以是低於第一臨界值的任意數值,例如第二臨界值可以是快閃記憶體模組120內區塊總數的10%。
在步驟516中,微處理器112開啟一背景操作,其中該背景操作係用來在快閃記憶體控制器110與快閃記憶體模組120處於閒置狀態時進行垃圾處理操作,例如當接收到來自主裝置130的一個寫入/讀取命令後,若是在一段時間內(例如10毫秒或100毫秒內)沒有接收到另外的寫入/讀取命令,則可以開始繼續完成之前尚未完成的垃圾收集操作,或是開啟一個新的垃圾收集操作。舉例來說,假設在步驟506所開始進行的垃圾收集操作因為超出步驟508所述的預設時間範圍而暫停,則此時微處理器112可以利用快閃記憶體控制器110處於閒置狀態時逐步地將資料區塊410_1~410_3的有效資料搬移至備用區塊420_1,直到備用區塊420_1的所有資料頁就都寫滿為止,以結束這一次的垃圾收集操作。在另一例子中,微處理器112可以利用快閃記憶體控制器110處於閒置狀態時逐步地將資料區塊410_1、410_2的有效資料搬移至備用區塊420_1,直到資料區塊410_2的所有有效資料均複製到備用區塊420_1,之後便結束這一次的垃圾收集操作,將備用區塊420_1的剩餘資料頁寫入冗餘資料(dummy data)且開始更新相關的邏輯位址與實體位址的映射表,並將資料區塊410_1、410_2內的資料抹除後來作為備用區塊。此外,在備用區塊420_1完成垃圾收集操作並做為資料區塊之後,後續微處理器112只有在快閃記憶體模組120內的備用區塊的數量低於第二臨界值時才會開始垃圾收集操作,以避免頻繁的垃圾收集操作影響到快閃記憶體控制器110的正常存取。
如以上第5圖的實施例所述,透過在初始化操作的預設時間範圍內使用較高的第一臨界值來做為垃圾收集操作的判斷基準,可以充分利用上述預設 時間範圍的剩餘時間盡可能來額外產生一些備用區塊,以避免備用區塊數量不足的問題。而在一實施例中,由於在上述預設時間範圍的剩餘時間所進行的垃圾收集操作在額外多產生一個備用區塊的情形下便停止(亦即,兩個資料區塊410_1、410_2完成所有有效資料的搬移並轉為備用區塊),因此可以避免這次的垃圾收集操作過度影響到後續快閃記憶體控制器110的正常存取,且也可以降低因為遭遇到不正常斷電而導致垃圾收集操作一直無法完成的機率。
以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
300~316:步驟

Claims (20)

  1. 一種快閃記憶體控制器,其中該快閃記憶體控制器係用來存取一快閃記憶體模組,且該快閃記憶體控制器包含有:一唯讀記憶體,用來儲存一程式碼;一微處理器,用來執行該程式碼以控制對該快閃記憶體模組之存取;其中當該快閃記憶體控制器上電並進行一初始化操作時,該微處理器在該初始化操作的一預設時間範圍內,判斷該快閃記憶體模組內之備用區塊的數量是否低於一第一臨界值,以決定是否要進行一垃圾收集操作;以及當該快閃記憶體控制器上電後的時間超出該預設時間範圍,該微處理器判斷該快閃記憶體模組內之備用區塊的數量是否低於一第二臨界值,以決定是否要進行另一垃圾收集操作,其中該第二臨界值低於該第一臨界值。
  2. 如申請專利範圍第1項所述之快閃記憶體控制器,其中當該快閃記憶體控制器上電並進行該初始化操作時,若是該快閃記憶體模組內之備用區塊的數量是不低於該第一臨界值,該微處理器不會在該預設時間範圍內對該快閃記憶體模組進行任何的垃圾收集操作;以及若是該快閃記憶體模組內之備用區塊的數量是低於該第一臨界值,該微處理器對該快閃記憶體模組進行該垃圾收集操作。
  3. 如申請專利範圍第1或2項所述之快閃記憶體控制器,其中當該快閃記憶體控制器上電後的時間超出該預設時間範圍,但是該垃圾收集操作尚未完成,則該微處理器執行一背景操作以在判斷該快閃記憶體控制器處於閒置狀態時開始繼續進行該垃圾收集操作,直到該垃圾收集操作結束為 止;以及在該垃圾收集操作結束後,若是該快閃記憶體模組內之備用區塊的數量是不低於該第二臨界值,該微處理器不對該快閃記憶體模組進行該另一垃圾收集操作;且若是該快閃記憶體模組內之備用區塊的數量是低於該第二臨界值,該微處理器對該快閃記憶體模組進行該另一垃圾收集操作。
  4. 如申請專利範圍第3項所述之快閃記憶體控制器,其中當該快閃記憶體控制器上電後的時間超出該預設時間範圍,但是該垃圾收集操作尚未完成,則該微處理器執行該背景操作以在判斷該快閃記憶體控制器處於閒置狀態時開始繼續進行該垃圾收集操作,直到用來儲存資料區塊之有效資料的一備用區塊的所有資料頁都寫滿為止,以結束該垃圾收集操作。
  5. 如申請專利範圍第3項所述之快閃記憶體控制器,其中當該快閃記憶體控制器上電後的時間超出該預設時間範圍,但是該垃圾收集操作尚未完成,則該微處理器執行該背景操作以在判斷該快閃記憶體控制器處於閒置狀態時開始繼續進行該垃圾收集操作,直到將有效資料複製到一備用區塊之多個資料區塊的數量到達一特定數量為止,以結束該垃圾收集操作。
  6. 如申請專利範圍第5項所述之快閃記憶體控制器,其中該特定數量為二。
  7. 如申請專利範圍第5項所述之快閃記憶體控制器,其中當該具有特定數量的該多個資料區塊的所有有效資料都複製到該備用區塊之後,若是該備用區塊尚有剩餘資料頁,則該微處理器將該些剩餘資料頁寫入冗餘資料。
  8. 一種電子裝置,包含有:一快閃記憶體模組;以及一快閃記憶體控制器,用以存取該快閃記憶體模組;其中當該快閃記憶體控制器上電並進行一初始化操作時,該快閃記憶體控制器在該初始化操作的一預設時間範圍內,判斷該快閃記憶體模組內之備用區塊的數量是否低於一第一臨界值,以決定是否要進行一垃圾收集操作;以及當該快閃記憶體控制器上電後的時間超出該預設時間範圍,該快閃記憶體控制器判斷該快閃記憶體模組內之備用區塊的數量是否低於一第二臨界值,以決定是否要進行另一垃圾收集操作,其中該第二臨界值低於該第一臨界值。
  9. 如申請專利範圍第8項所述之電子裝置,其中當該快閃記憶體控制器上電並進行該初始化操作時,若是該快閃記憶體模組內之備用區塊的數量是不低於該第一臨界值,該快閃記憶體控制器不會在該預設時間範圍內對該快閃記憶體模組進行任何的垃圾收集操作;以及若是該快閃記憶體模組內之備用區塊的數量是低於該第一臨界值,該快閃記憶體控制器對該快閃記憶體模組進行該垃圾收集操作。
  10. 如申請專利範圍第8或9項所述之電子裝置,其中當該快閃記憶體控制器上電後的時間超出該預設時間範圍,但是該垃圾收集操作尚未完成,則該快閃記憶體控制器執行一背景操作以在判斷該快閃記憶體控制器處於閒置狀態時開始繼續進行該垃圾收集操作,直到該垃圾收集操作結束為止;以及在該垃圾收集操作結束後,若是該快閃記憶體模組內之備用區 塊的數量是不低於該第二臨界值,該快閃記憶體控制器不對該快閃記憶體模組進行該另一垃圾收集操作;且若是該快閃記憶體模組內之備用區塊的數量是低於該第二臨界值,該快閃記憶體控制器對該快閃記憶體模組進行該另一垃圾收集操作。
  11. 如申請專利範圍第10項所述之電子裝置,其中當該快閃記憶體控制器上電後的時間超出該預設時間範圍,但是該垃圾收集操作尚未完成,則該快閃記憶體控制器執行該背景操作以在判斷該快閃記憶體控制器處於閒置狀態時開始繼續進行該垃圾收集操作,直到用來儲存資料區塊之有效資料的一備用區塊的所有資料頁都寫滿為止,以結束該垃圾收集操作。
  12. 如申請專利範圍第10項所述之電子裝置,其中當該快閃記憶體控制器上電後的時間超出該預設時間範圍,但是該垃圾收集操作尚未完成,則該快閃記憶體控制器執行該背景操作以在判斷該快閃記憶體控制器處於閒置狀態時開始繼續進行該垃圾收集操作,直到將有效資料複製到一備用區塊之多個資料區塊的數量到達一特定數量為止,以結束該垃圾收集操作。
  13. 如申請專利範圍第12項所述之電子裝置,其中該特定數量為二。
  14. 如申請專利範圍第12項所述之電子裝置,其中當該具有特定數量的該多個資料區塊的所有有效資料都複製到該備用區塊之後,若是該備用區塊尚有剩餘資料頁,則該快閃記憶體控制器將該些剩餘資料頁寫入冗餘資料。
  15. 一種對一快閃記憶體模組進行垃圾收集操作的方法,包含有:當用來存取該快閃記憶體模組的一快閃記憶體控制器上電並進行一初始化操作時,在該初始化操作的一預設時間範圍內,判斷該快閃記憶體模組內之備用區塊的數量是否低於一第一臨界值,以決定是否要進行一垃圾收集操作;以及當該快閃記憶體控制器上電後的時間超出該預設時間範圍,判斷該快閃記憶體模組內之備用區塊的數量是否低於一第二臨界值,以決定是否要進行另一垃圾收集操作,其中該第二臨界值低於該第一臨界值。
  16. 如申請專利範圍第15項所述之方法,其中判斷該快閃記憶體模組內之備用區塊的數量是否低於該第一臨界值,以決定是否要進行該垃圾收集操作的步驟包含有:當該快閃記憶體控制器上電並進行該初始化操作時,若是該快閃記憶體模組內之備用區塊的數量是不低於該第一臨界值,不會在該預設時間範圍內對該快閃記憶體模組進行任何的垃圾收集操作;以及若是該快閃記憶體模組內之備用區塊的數量是低於該第一臨界值,對該快閃記憶體模組進行該垃圾收集操作。
  17. 如申請專利範圍第15或16項所述之方法,另包含有:當該快閃記憶體控制器上電後的時間超出該預設時間範圍,但是該垃圾收集操作尚未完成,則執行一背景操作以在判斷該快閃記憶體控制器處於閒置狀態時開始繼續進行該垃圾收集操作,直到該垃圾收集操作結束為止;以及在該垃圾收集操作結束後,若是該快閃記憶體模組內之備用區塊的數量是 不低於該第二臨界值,不對該快閃記憶體模組進行該另一垃圾收集操作;若是該快閃記憶體模組內之備用區塊的數量是低於該第二臨界值,對該快閃記憶體模組進行該另一垃圾收集操作。
  18. 如申請專利範圍第17項所述之方法,其中當該快閃記憶體控制器上電後的時間超出該預設時間範圍,但是該垃圾收集操作尚未完成,則執行該背景操作以在判斷該快閃記憶體控制器處於閒置狀態時開始繼續進行該垃圾收集操作,直到該垃圾收集操作結束為止的步驟包含有:當該快閃記憶體控制器上電後的時間超出該預設時間範圍,但是該垃圾收集操作尚未完成,則執行該背景操作以在該快閃記憶體控制器處於閒置狀態時繼續進行該垃圾收集操作,直到用來儲存資料區塊之有效資料的一備用區塊的所有資料頁都寫滿為止,以結束該垃圾收集操作。
  19. 如申請專利範圍第17項所述之方法,其中當該快閃記憶體控制器上電後的時間超出該預設時間範圍,但是該垃圾收集操作尚未完成,則執行該背景操作以在該快閃記憶體控制器處於閒置狀態時繼續進行該垃圾收集操作,直到該垃圾收集操作結束為止的步驟包含有:當該快閃記憶體控制器上電後的時間超出該預設時間範圍,但是該垃圾收集操作尚未完成,則執行該背景操作以在判斷該快閃記憶體控制器處於閒置狀態時開始繼續進行該垃圾收集操作,直到將有效資料複製到一備用區塊之多個資料區塊的數量到達一特定數量為止,以結束該垃圾收集操作。
  20. 如申請專利範圍第19項所述之方法,其中該特定數量為二。
TW109122199A 2020-07-01 2020-07-01 電子裝置、快閃記憶體控制器及快閃記憶體模組進行垃圾收集操作的方法 TWI748542B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
TW109122199A TWI748542B (zh) 2020-07-01 2020-07-01 電子裝置、快閃記憶體控制器及快閃記憶體模組進行垃圾收集操作的方法
CN202010972113.3A CN113886279A (zh) 2020-07-01 2020-09-16 电子装置、快闪存储器控制器及模块进行垃圾收集操作的方法
US17/082,039 US11194502B1 (en) 2020-07-01 2020-10-28 Electronic device, flash memory controller and method for performing garbage collection operation on flash memory module

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW109122199A TWI748542B (zh) 2020-07-01 2020-07-01 電子裝置、快閃記憶體控制器及快閃記憶體模組進行垃圾收集操作的方法

Publications (2)

Publication Number Publication Date
TWI748542B true TWI748542B (zh) 2021-12-01
TW202203011A TW202203011A (zh) 2022-01-16

Family

ID=78818733

Family Applications (1)

Application Number Title Priority Date Filing Date
TW109122199A TWI748542B (zh) 2020-07-01 2020-07-01 電子裝置、快閃記憶體控制器及快閃記憶體模組進行垃圾收集操作的方法

Country Status (3)

Country Link
US (1) US11194502B1 (zh)
CN (1) CN113886279A (zh)
TW (1) TWI748542B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI824843B (zh) * 2022-11-24 2023-12-01 慧榮科技股份有限公司 記憶裝置的控制方法與相關的快閃記憶體控制器與記憶裝置

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200085513A (ko) * 2019-01-07 2020-07-15 에스케이하이닉스 주식회사 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106557434A (zh) * 2016-10-28 2017-04-05 武汉斗鱼网络科技有限公司 一种界面缓存方法及***
US20170300410A1 (en) * 2016-04-13 2017-10-19 Nanjing University Method and System for Optimizing Deterministic Garbage Collection in Nand Flash Storage Systems
TW201835757A (zh) * 2017-03-22 2018-10-01 慧榮科技股份有限公司 垃圾回收方法以及使用該方法的裝置
US20190227927A1 (en) * 2018-01-19 2019-07-25 Shannon Systems Ltd. Data storage device and data storage method for dynamically executing a garbage-collection process
TW202011199A (zh) * 2018-09-07 2020-03-16 慧榮科技股份有限公司 資料儲存裝置以及非揮發式記憶體控制方法
CN111159059A (zh) * 2019-12-27 2020-05-15 深圳大普微电子科技有限公司 一种垃圾回收方法、装置及非易失性的存储设备

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170300410A1 (en) * 2016-04-13 2017-10-19 Nanjing University Method and System for Optimizing Deterministic Garbage Collection in Nand Flash Storage Systems
CN106557434A (zh) * 2016-10-28 2017-04-05 武汉斗鱼网络科技有限公司 一种界面缓存方法及***
TW201835757A (zh) * 2017-03-22 2018-10-01 慧榮科技股份有限公司 垃圾回收方法以及使用該方法的裝置
US20190227927A1 (en) * 2018-01-19 2019-07-25 Shannon Systems Ltd. Data storage device and data storage method for dynamically executing a garbage-collection process
TW202011199A (zh) * 2018-09-07 2020-03-16 慧榮科技股份有限公司 資料儲存裝置以及非揮發式記憶體控制方法
CN111159059A (zh) * 2019-12-27 2020-05-15 深圳大普微电子科技有限公司 一种垃圾回收方法、装置及非易失性的存储设备

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI824843B (zh) * 2022-11-24 2023-12-01 慧榮科技股份有限公司 記憶裝置的控制方法與相關的快閃記憶體控制器與記憶裝置

Also Published As

Publication number Publication date
US11194502B1 (en) 2021-12-07
TW202203011A (zh) 2022-01-16
CN113886279A (zh) 2022-01-04

Similar Documents

Publication Publication Date Title
CN110908925B (zh) 高效能垃圾收集方法以及数据存储装置及其控制器
JP4524309B2 (ja) フラッシュメモリ用のメモリコントローラ
TWI696074B (zh) 管理快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置
TWI807674B (zh) 快閃記憶體控制器的控制方法、快閃記憶體控制器以及儲存裝置
TW202009939A (zh) 快閃記憶體控制器、管理快閃記憶體模組的方法及相關的電子裝置
TWI748542B (zh) 電子裝置、快閃記憶體控制器及快閃記憶體模組進行垃圾收集操作的方法
TWI734063B (zh) 快閃記憶體控制器、管理快閃記憶體模組的方法及相關的電子裝置
CN110069362B (zh) 数据储存装置与数据处理方法
TWI722938B (zh) 記憶裝置、快閃記憶體控制器及其存取方法
TWI720852B (zh) 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置
TWI759580B (zh) 管理快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置
TWI687930B (zh) 快閃記憶體控制器、管理快閃記憶體模組的方法及相關的電子裝置
TWI746927B (zh) 管理快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置
TWI664527B (zh) 用來於一記憶裝置中進行初始化之方法、記憶裝置及其控制器以及電子裝置
US11249676B2 (en) Electronic device, flash memory controller and associated control method
US11947818B2 (en) Method for accessing flash memory module and associated flash memory controller and electronic device
TWI760094B (zh) 記憶裝置、快閃記憶體控制器及其存取方法
TWI781886B (zh) 管理快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置
TWI769100B (zh) 管理快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置
TWI670598B (zh) 管理快閃記憶體模組的方法及相關的快閃記憶體控制器及電子裝置
TWI768336B (zh) 管理快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置
TW202234253A (zh) 管理快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置