TWI782654B - 垃圾回收操作的管理機制 - Google Patents
垃圾回收操作的管理機制 Download PDFInfo
- Publication number
- TWI782654B TWI782654B TW110128884A TW110128884A TWI782654B TW I782654 B TWI782654 B TW I782654B TW 110128884 A TW110128884 A TW 110128884A TW 110128884 A TW110128884 A TW 110128884A TW I782654 B TWI782654 B TW I782654B
- Authority
- TW
- Taiwan
- Prior art keywords
- garbage collection
- spare
- spare area
- collection operation
- flash memory
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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
- G06F3/0607—Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
-
- 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/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]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7205—Cleaning, compaction, garbage collection, erase control
Abstract
一種用於管理一快閃記憶體上的一垃圾回收操作的方法,包含:計算該快閃記憶體中的一總體備用區域,該總體備用區域包含該快閃記憶體中的複數個備用區塊裡的備用區域,和主機寫入命令寫入的使用者資料所對應的一個或多個目標區塊裡的備用區域、該垃圾回收操作寫入的有效資料所對應的一個或多個目的區塊裡的備用區域、以及該垃圾回收操作讀取的有效資料所對應的一來源區塊裡的備用區域中的至少兩者;根據該總體備用區域,決定一調整因子;以及根據一垃圾回收操作對主機命令的基本比例和該調整因子,對該來源區塊執行該垃圾回收操作。
Description
本發明關於快閃記憶體,尤指用於管理快閃記憶體上的垃圾回收操作的方法與控制器,以及相關儲存裝置。
快閃記憶體在先天上並不支援覆寫操作。當需要將已儲存在快閃記憶體中的舊資料替換成新資料時,新資料將被寫入新位置,而舊位置中的資料則變為無效。因此,當覆寫舊資料的需求重複發生時,無效資料的數量也隨之增加。為了確保快閃記憶體中具備充足的儲存空間來保存資料,需要將無效資料抹除。通常來說,快閃記憶體依靠垃圾回收(Garbage Collection,GC)操作來釋放無效資料所佔用的空間。
垃圾回收操作從快閃記憶體中選擇一來源區塊,並且僅將有效頁(即,具有有效資料的頁(Page))從來源區塊上複製到目的區塊。當所有的有效頁都被複製到目的區塊後,來源區塊將被抹除,從而變成可供資料寫入的備用區塊。
由於垃圾回收操作屬於快閃記憶體裝置的內部行為。因此,記憶體控制器需要一邊基於垃圾回收操作進行有效資料的傳輸,也需要一邊基於主機命令(host command)來處理使用者資料的寫入。這意味著一旦垃圾回收操作操作發生,將會對主機命令下達的寫入操作有所限制,並導致對主機命令的響應時
間不穩定,從而引發快閃記憶體的寫入性能下降。有鑑於此,本領域需要一種管理垃圾回收操作的機制。
如前所述,本發明目的之一在於提供一種機制,管理快閃記憶體上的垃圾回收操作。其中,本發明實施例基於一垃圾回收啟動臨界值,決定啟動垃圾回收操作的時機,以及根據備用區塊的當前數量來調整“垃圾回收操作對主機命令”的寫入比例。在這樣的實施例中,圾垃回收操作的啟動取決於,快閃記憶體中備用區塊的當前數量,是否小於該垃圾回收啟動臨界值,而非取決於快閃記憶體轉換層(Flash Translation Layer,FTL)所維護的目標備用區塊數。這樣可以避免垃圾回收操作頻繁地啟動和結束,以免過度影響對主機命令的響應時間。本發明實施例還基於來源區塊和一個或多個候選來源區塊的總體有效頁百分比,決定“垃圾回收操作對主機命令”的基本比例。在這樣的實施例中,考慮了一個或多個候選來源區塊,並且平緩不同來源區塊間的有效頁百分比變化。因此,“垃圾回收操作對主機命令”的基本比例和“垃圾回收操作對主機命令”的寫入比例的變化可以更加緩和,從而使快閃記憶體對主機命令的響應時間更加穩定。本發明實施例還以較小的單元來估計快閃記憶體的總體備用區域。在這樣的實施例中,可以以較小的單位(例如4K位元組)而不是以區塊為單位,估計快閃記憶體的備用區域。由於備用區域的變化以較小的單位被反映出來,因此可以透過更精細的方式,調整與備用區域大小息息相關的“垃圾回收操作對主機命令”的寫入比例,並且也可減少對主機命令的響應時間的影響。
本發明之一實施例提供一種用於管理一快閃記憶體上的一垃圾回收操作的方法。該方法包含:計算該快閃記憶體中的一總體備用區域,該總體備
用區域包含該快閃記憶體中的複數個備用區塊裡的備用區域,和主機寫入命令寫入的使用者資料所對應的一個或多個目標區塊裡的備用區域、該垃圾回收操作寫入的有效資料所對應的一個或多個目的區塊裡的備用區域、以及該垃圾回收操作讀取的有效資料所對應的一來源區塊裡的備用區域中的至少兩者;根據該總體備用區域,決定一調整因子;以及根據一垃圾回收操作對主機命令的基本比例和該調整因子,對該來源區塊執行該垃圾回收操作。
本發明之一實施例提供一種用於管理一快閃記憶體上的一垃圾回收操作的方法,該方法包含:根據該快閃記憶體中複數個備用區塊裡的備用區域,和主機寫入命令寫入的使用者資料所對應的一個或多個目標區塊裡的備用區域,計算該快閃記憶體中的一總體備用區域;根據該總體備用區域,決定一調整因子;以及根據一垃圾回收操作對主機命令的基本比例和該調整因子,對該來源區塊執行該垃圾回收操作。
本發明之一實施例提供一種用於控制一快閃記憶體的運作並且管理該快閃記憶體上的一垃圾回收操作的控制器。該控制器包含:一儲存單元用於儲存資訊以及程式碼;以及一處理單元用於根據儲存於該儲存單元或該快閃記憶體中的程式碼與資訊,執行以下操作:計算該快閃記憶體中的一總體備用區域,該總體備用區域包含該快閃記憶體中複數個備用區塊裡的備用區域,和主機寫入命令寫入的使用者資料所對應的一個或多個目標區塊裡的備用區域、該垃圾回收操作寫入的有效資料所對應的一個或多個目的區塊裡的備用區域、以及該垃圾回收操作讀取的有效資料所對應的一來源區塊裡的備用區域中的至少兩者;根據該總體備用區域,決定一調整因子;以及根據一垃圾回收操作對主機命令的基本比例和該調整因子,對該來源區塊執行該垃圾回收操作。
本發明之一實施例提供一種用於控制一快閃記憶體的運作並且管理該快閃記憶體上的一垃圾回收操作的控制器。該控制器包含:一儲存單元用於儲存資訊以及程式碼;以及一處理單元用於根據儲存於該儲存單元或該快閃記憶體中的程式碼與資訊,執行以下操作:根據該快閃記憶體中複數個備用區塊裡的備用區域,和主機寫入命令寫入的使用者資料所對應的一個或多個目標區塊裡的備用區域,計算該快閃記憶體中的一總體備用區域;根據該總體備用區域,決定一調整因子;以及根據一垃圾回收操作對主機命令的基本比例和該調整因子,對該來源區塊執行該垃圾回收操作。
本發明之一實施例提供一種儲存裝置。該儲存裝置包含:一快閃記憶體用於提供儲存空間;以及一控制器耦接於該快閃記憶體,並且用於控制該快閃記憶體的運作,從而管理該快閃記憶體上的一垃圾回收操作。該控制器包含:一儲存單元用於儲存資訊與程式碼;以及一處理單元用於根據儲存於該儲存單元或該快閃記憶體中的程式碼與資訊,執行以下操作:計算該快閃記憶體中的一總體備用區域,該總體備用區域包含該快閃記憶體中的複數個備用區塊裡的備用區域,和主機寫入命令寫入的使用者資料所對應的一個或多個目標區塊裡的備用區域、該垃圾回收操作寫入的有效資料所對應的一個或多個目的區塊裡的備用區域、以及該垃圾回收操作讀取的有效資料所對應的一來源區塊裡的備用區域中的至少兩者;根據該總體備用區域,決定一調整因子;以及根據一垃圾回收操作對主機命令的基本比例和該調整因子,對該來源區塊執行該垃圾回收操作。
本發明之一實施例提供一種儲存裝置。該儲存裝置包含:一快閃記
憶體用於提供儲存空間;以及一控制器耦接於該快閃記憶體,並且用於控制該快閃記憶體的運作,從而管理該快閃記憶體上的一垃圾回收操作。該控制器包含:一儲存單元用於儲存資訊與程式碼;以及一處理單元用於根據儲存於該儲存單元或該快閃記憶體中的程式碼與資訊,執行以下操作:根據該快閃記憶體中複數個備用區塊裡的備用區域,和主機寫入命令寫入的使用者資料所對應的一個或多個目標區塊裡的備用區域,計算該快閃記憶體中的一總體備用區域;根據該總體備用區域,決定一調整因子;以及根據一垃圾回收操作對主機命令的基本比例和該調整因子,對該來源區塊執行該垃圾回收操作。
10:電子裝置
50:主控裝置
52:處理器
100:儲存裝置
120:NV記憶體
122_1~122_N:NV記憶體元件
110:記憶體控制器
112:微處理器112
112M:ROM
112C:程式碼
114:控制邏輯電路
115:垃圾回收操作管理引擎
116:揮發性記憶體
118:傳輸介面電路
310~350、610~670、810~880、1010~1090:步驟
第1圖繪示本發明實施例的儲存裝置的架構示意圖。
第2圖繪示本發明第一實施例中,備用區塊的當前數量、目標備用區塊數、調整因子和垃圾回收啟動臨界值之間的關係。
第3圖繪示本發明第一實施例中,管理垃圾回收操作的方法流程圖。
第4圖繪示本發明第二實施例中,備用區塊的當前數量、目標備用區塊數、調整因子和垃圾回收啟動臨界值之間的關係。
第5圖繪示本發明第三實施例中,備用區塊的當前數量、目標備用區塊數、調整因子和垃圾回收啟動臨界值之間的關係。
第6圖繪示本發明第三實施例中,管理垃圾回收操作的方法流程圖。
第7A~7D圖繪示本發明的多個實施例如何決定總體有效頁百分比。
第8圖繪示本發明第四、第五和第六實施例中,管理垃圾回收操作的方法流程圖。
第9圖繪示本發明實施例中,快閃記憶體的不同區塊中的備用區域。
第10圖繪示本發明第七實施例中,管理垃圾回收操作的方法流程圖。
在以下內文中,描述了許多具體細節以提供閱讀者對本發明實施例的透徹理解。然而,本領域的技術人士將能理解,如何在缺少一個或多個具體細節的情況下,或者利用其他方法或元件或材料等來實現本發明。在其他情況下,眾所皆知的結構、材料或操作不會被示出或詳細描述,從而避免模糊本發明的核心概念。
說明書中提到的「一實施例」意味著該實施例所描述的特定特徵、結構或特性可能被包含於本發明的至少一個實施例中。因此,本說明書中各處出現的「在一實施例中」不一定意味著同一個實施例。此外,前述的特定特徵、結構或特性可以以任何合適的形式在一個或多個實施例中結合。
總覽
第1圖為本發明實施例之電子裝置10的架構示意圖。如圖所示,電子裝置10包含主控裝置(host device)50與儲存裝置100。主控裝置50可包含:至少一處理器52,用來控制主控裝置50之運作。在不同實施例中,主控裝置50可以是(但不限於):智慧型手機、平板電腦、可穿戴裝置、個人電腦、筆記型電腦、數位相機、數位錄影機、遊戲主機、車用導航系統、印表機、掃描器或者伺服器。另外,在不同實施例中,記憶體裝置100可以是(但不限於):可攜式儲存裝置(如符合SD/MMC、CF、MS、XD或UFS標準之記憶卡)、固態硬碟(solid state drive,SSD)以及各種嵌入式(embedded)儲存裝置(如符合UFS或EMMC規格之嵌入式儲存裝置)。
在本發明的各種實施例中,儲存裝置100可以包含如記憶體控制器
110之類的控制器,並且還可以包括非揮發性(non-volatile,NV)記憶體120。NV記憶體120用於儲存資訊。NV記憶體120可以包括一個或多個NV記憶體元件,例如,多個NV記憶體元件122_1-122_N。再者,NV記憶體120可以是快閃記憶體,並且NV記憶體元件122_1-122_N可以分別是多個快閃記憶體晶片或多個快閃記憶體裸晶,但本發明不限於此。另外,NV記憶體120可以包含具有二維結構的記憶體單元(memory cells),或者可以包含具有三維結構的記憶體單元。
如第1圖所示,記憶體控制器110可以包含如微處理器112之類的處理電路、只讀存儲器(read-only memory,ROM)112M之類的儲存元件、控制邏輯電路114、垃圾回收操作管理引擎115、揮發性記憶體116和傳輸介面電路118。其中,這些元件的至少一部分(例如,一部分或全部)可以通過匯流排彼此互連。揮發性記憶體116由隨機存取記憶體(random-access memory,RAM)實現。例如,揮發性記憶體116可以是靜態RAM(static RAM,SRAM)。揮發性記憶體116可以用於向記憶體控制器110提供內部儲存空間,例如,暫時性地儲存資訊。另外,本實施例的ROM 112M用於儲存程式碼112C,而微處理器112用於執行程式碼112C,從而控制對NV記憶體120的存取。在另一個實施例中,程式碼112C可以被儲存在NV記憶體120中。
記憶體控制器110透過控制邏輯電路114控制NV記憶體120的讀取、寫入和抹除。此外,記憶體控制器110可以同時基於來自主控裝置50的主機命令執行使用者資料的寫入,以及基於垃圾回收操作從NV記憶體120中蒐集的有效資料,執行有效資料的寫入。控制邏輯電路114可以進一步用於控制NV記憶體120,其包含錯誤校正(error correction code,ECC)電路(未示出),以執行資料保護和/或校正,但是本發明不限於此。傳輸介面電路118符合特定的資料傳輸規
範(例如,序列進階技術附加裝置(Serial Advanced Technology Attachment,SATA)規範、通用序列匯流排(Universal Serial Bus,USB)規範、快捷外設互聯標準((Peripheral Component Interconnect Express,PCIE)規範、嵌入式多媒體卡(Embedded Multimedia Card,eMMC)規範、或通用快閃記憶體儲存(Universal Flash Storage,UFS)規範,並可以根據特定的通信規範與主控裝置50進行通信。
一般來說,主控裝置50可以透過向記憶體控制器110發送主機命令和相應的邏輯位址來間接存取儲存裝置100。記憶體控制器110接收主機命令和邏輯位址,將主機命令轉換為記憶體操作命令,並且進一步用記憶體操作命令控制NV記憶體120,從而對NV記憶體120內具有特定物理位址的記憶體單元(memory cells)或資料頁(pages),執行讀、寫或抹除操作,其中物理位址對應於邏輯位址。當記憶體控制器110對NV記憶體元件122_1-122_N內的任何NV記憶體元件122_k執行抹除操作時,NV記憶體元件122_k中的至少一個區塊(block)可以被抹除。另外,NV記憶體元件122_k的每個區塊可以包括多個頁,並且可以在一個或多個頁上執行存取操作(例如,讀取或寫入)。
垃圾回收操作的啟動時機與比例調節
本發明實施例提供了方法機制,用於決定NV記憶體120上的垃圾回收操作的啟動時機,以及決定記憶體控制器110如何在一定時間內同時處理有效資料以及使用者資料的寫入,所參考的“垃圾回收操作對主機命令”的寫入比例。
通常來說,在記憶體控制器110上所實現的快閃記憶體轉換層(Flash Translation Layer,FTL)功能會在NV記憶體120中維持最小數量的備用區塊(spare block),亦即,目標備用區塊數,從而確保記憶體控制器110總是可以擁有足夠
的備用區塊進行調動,例如,進行壞區塊替換(bad block replacement)。如果檢測到備用區塊的當前數量少於目標備用區塊數,習知的記憶體控制器通常會啟動垃圾回收操作。在這類機制下,若備用區塊的當前數量接近目標備用區塊數,則記憶體控制器可能會頻繁地啟動和結束垃圾回收操作,這可能導致對主機命令的響應時間發生劇烈變化,從而影響快閃記憶體的寫入性能。
有鑑於此,本發明的記憶體控制器110設置一種垃圾回收啟動臨界值,該值不同於儲存裝置100的FTL所維持的目標備用區塊數。在本發明中,記憶體控制器110根據備用區塊的當前數量與該垃圾回收啟動臨界值之間的比較,決定是否啟動垃圾回收操作。根據本發明的實施例,垃圾回收啟動臨界值高於由FTL所維持的目標備用區塊數。因此,即使NV記憶體120中的備用區塊的當前數量仍高於目標備用區塊數,記憶體控制器110也可以啟動垃圾回收操作。
此外,由於記憶體控制器110需要同時處理基於垃圾回收操作的有效資料寫入,以及基於主機命令的使用者資料寫入,因此記憶體控制器110將決定“垃圾回收操作對主機命令”的寫入比例GHWR,並根據“垃圾回收操作對主機命令”的寫入比例GHWR來進行垃圾回收操作。其中,“垃圾回收操作對主機命令”的寫入比例GHWR代表在一定時間內,基於垃圾回收操作的有效資料的寫入量,和主控裝置50所發送的主機命令中的使用者資料的寫入量之比。如此一來,才能在保持備用區塊的數量,和穩定儲存裝置100的寫入性能之間達到平衡。
在本發明的實施例中,記憶體控制器110根據“垃圾回收操作對主機命令”的基本比例BR以及調整因子K,決定“垃圾回收操作對主機命令”的寫入比例GHWR,其中,GHWR=K*BR。“垃圾回收操作對主機命令”的基本比例BR
是根據來源區塊的有效頁百分比P來決定,其中,“垃圾回收操作對主機命令”的基本比例BR可以透過以下算式獲得:BR=P/(1-P)。來源區塊的有效頁百分比P代表來源區塊中的有效頁與所有頁之數量比。“垃圾回收操作對主機命令”的基本比例BR反映了基於垃圾回收操作的最低寫入量,並且指出垃圾回收操作需要移動多少有效資料才能與主機命令的寫入達到平衡,從而穩定NV記憶體120中備用區塊的當前數量。
調整因子K是根據備用區塊的當前數量CN所決定的,並且與備用區塊的當前數量CN之間呈負相關。由於調整因子K的緣故,隨著備用區塊的當前數量的減少,“垃圾回收操作對主機命令”的寫入比例GHWR將提升。因此,如果NV記憶體120中的備用區塊數量不足,則記憶體控制器110將執行更多基於垃圾回收操作的寫入,對目的區塊寫入更多的有效資料。另一方面,如果NV存儲器120中的備用區塊充足,則記憶體控制器110將執行更多基於主機命令的使用者資料寫入。
請參考第2圖,該圖繪示了在本發明第一實施例中,備用區塊的當前數量CN、目標備用區塊數TG、垃圾回收啟動臨界值TH和調整因子K之間的關聯。在第一實施例中,當備用區塊的當前數量CN減少到低於垃圾回收啟動臨界值TH時,記憶體控制器110將啟動垃圾回收操作。如果備用區塊的當前數量CN等於垃圾回收啟動臨界值TH,則調整因子K將被設為零。在備用區塊的當前數量CN達到目標備用區塊數TG之前,“垃圾回收操作對主機命令”的寫入比例GHWR持續低於“垃圾回收操作對主機命令”的基本比例BR。因此,記憶體控制器110將不會執行過多基於垃圾回收操作的有效資料寫入,這導致備用區塊的當前數量會緩步CN減少。
一旦備用區塊的當前數量CN減少至目標備用區塊數TG,調整因子K增加至1。此時,“垃圾回收操作對主機命令”的寫入比例GHWR等於“垃圾回收操作對主機命令”的基本比例BR,可滿足垃圾回收操作的最低寫入量要求。當備用區塊的當前數量CN小於目標備用區塊數TG之後,調整因子K將大於1,這意味著“垃圾回收操作對主機命令”的寫入比例GHWR會大於“垃圾回收操作對主機命令”的基本比例BR。此時,記憶體控制器110將執行更多基於垃圾回收操作的有效資料寫入,從而釋放由更多無效頁所佔用的儲存區域,使得備用區塊數量顯著地增加。
第3圖繪示了本發明第一實施例中,在快閃記憶體上執行垃圾回收操作的相關流程。在步驟310中,記憶體控制器110判斷NV記憶體120中備用區塊的當前數量CN是否低於垃圾回收啟動臨界值TH,垃圾回收啟動臨界值TH是一個預定的備用區塊數量,並且被設置為低於FTL所維持的目標備用區塊數TG。如果記憶體控制器110確認NV記憶體120中的備用區塊的當前數量CN小於垃圾回收啟動臨界值TH,則流程進入步驟320;否則,流程停留在步驟310。在步驟320中,記憶體控制器110根據來源區塊的有效頁百分比P,計算“垃圾回收操作對主機命令”的基本比例BR。在步驟330中,記憶體控制器110根據備用區塊的當前數量CN,決定調整因子K。其中,調整因子K與備用區塊的當前數量CN間有著如第2圖所示的負相關關係。在步驟340中,記憶體控制器110根據調整因子K和“垃圾回收操作對主機命令”的基本比例BR,決定“垃圾回收操作對主機命令”的寫入比例GHWR。在步驟350中,記憶體控制器110在執行主機寫入操作(即,根據主控裝置50發送的主機命令寫入使用者資料)的同時,還根據“垃圾回收操作對主機命令”的寫入比例GHWR,執行垃圾回收寫入操作(即,基於垃圾回收操作,
將有效資料搬移至目的區塊)。在步驟360中,記憶體控制器110結束垃圾回收操作。在某些實施例中,記憶體控制器110還可以在結束垃圾回收操作之前,檢查是否垃圾回收操作當前所寫入的目的區塊已被寫滿(例如,每個頁都被寫入資料)。如果目的區塊尚未被寫滿,則流程可以返回到步驟320,繼續執行垃圾回收操作。
請參考第4圖,該圖繪示了本發明第二實施例中,備用區塊的當前數量CN、目標備用區塊數TG、垃圾回收啟動臨界值TH和調整因子K之間的關係。在第二實施例中,一旦備用區塊的當前數量CN低於垃圾回收啟動臨界值TH,則記憶體控制器110會決定啟動垃圾回收操作。同樣地,調整因子K和備用區塊的當前數量CN之間呈負相關。本發明第一實施例與第二實施例之間的區別在於,當垃圾回收操作開始時,調整因子K為非零值(即,大於0且小於1)。另外,由於第二實施例中垃圾回收操作的管理流程與第一實施例相似,為求說明書之簡單扼要,此處未展示詳細流程圖。
請參考第5圖,該圖繪示了本發明第三實施例中,備用區塊的當前數量CN,目標備用區塊數TG,垃圾回收啟動臨界值TH2,垃圾回收終止臨界值TH1和調整因子K之間的關係。在本發明的第三實施例中,當備用區塊的當前數量CN減少至低於垃圾回收啟動臨界值TH2時,記憶體控制器110決定啟動垃圾回收操作。此時,調整因子K將為非零值(即,大於0且小於1)。因此,記憶體控制器110將不會執行過多基於垃圾回收操作的有效資料寫入。隨著備用區塊的當前數量減少,調整因子K增加。一旦備用區塊的當前數量CN等於目標備用區塊數TG時,調整因子K等於1。在備用區塊的當前數量CN小於目標備用區塊數TG之後,調整因子K將大於1,進一步導致記憶體控制器110執行更多基於垃圾回收操作的
有效資料寫入。另一方面,僅有當備用區塊的當前數量增加到垃圾回收終止臨界值TH1時,記憶體控制器110才會決定終止垃圾回收操作。此時,調整因子K將為零。該實施例與先前實施例之間的區別在於,記憶體控制器110依靠高於垃圾回收啟動臨界值TH2的垃圾回收終止臨界值TH1,判斷是否終止垃圾回收操作,以及依靠垃圾回收啟動臨界值TH2,判斷是否啟動垃圾回收操作。
第6圖繪示了本發明第三實施例中,管理快閃記憶體上的垃圾回收操作的方法流程圖。在步驟610中,記憶體控制器110判斷NV記憶體120中的備用區塊的當前數量CN是否低於垃圾回收啟動臨界值TH2。如果記憶體控制器110確認NV記憶體120中的備用區塊的當前數量CN小於垃圾回收啟動臨界值TH2,則流程進入步驟620;否則,流程停留在步驟610。在步驟620中,記憶體控制器110根據來源區塊的有效頁百分比P,計算“垃圾回收操作對主機命令”的基本比例BR。在步驟630中,記憶體控制器110根據第5圖所示的關係,基於備用區塊的當前數量CN來決定調整因子K。在步驟640中,記憶體控制器110根據調整因子K和“垃圾回收操作對主機命令”的基本比例BR,決定“垃圾回收操作對主機命令”的寫入比例GHWR。在步驟650中,記憶體控制器110在執行主機寫入操作(即,根據主控裝置50發送的主機命令,寫入使用者資料)的同時,根據“垃圾回收操作對主機命令”的寫入比例GHWR,執行垃圾回收寫入操作(即,將垃圾回收操作蒐集的有效資料,寫入至目的區塊)。在步驟660中,記憶體控制器110判斷備用區塊的當前數量CN是否高於垃圾回收終止臨界值TH1。如果是,則流程進入步驟670,終止垃圾回收操作;否則,流程返回到步驟620,繼續執行垃圾回收操作。在步驟670中,記憶體控制器110終止垃圾回收操作。在一個實施例中,記憶體控制器110還可以在終止垃圾回收操作之前,檢查是否垃圾回收操作當前所寫入的目的區塊,已被完全寫滿(例如,每個頁已被寫入資料)。如果目的區
塊尚未完全寫滿,則流程可以返回到步驟620,繼續執行垃圾回收操作。
總而言之,本發明實施例提供了用於決定垃圾回收啟動時機,和“垃圾回收操作對主機命令”的寫入比例的方法。其中,本發明將垃圾回收啟動臨界值TH(或TH2)設置成高於目標備用區塊數TG,並且根據備用區塊的當前數量CN,動態地調整“垃圾回收操作對主機命令”的寫入比例GHWR。當垃圾回收操作剛啟動時,記憶體控制器110將不會執行過多基於垃圾回收操作的有效資料寫入。直到備用區塊的當前數量CN低於目標備用區塊數TG,記憶體控制器110將執行更多基於垃圾回收操作的有效資料寫入。有鑑於此,本發明可以防止垃圾回收操作頻繁地啟動和終止,從而使得對主機命令的響應時間更加穩定。
基本比例的決定
本發明實施例提供了決定“垃圾回收操作對主機命令”的基本比例的機制。根據本發明各種實施例,“垃圾回收操作對主機命令”的基本比例係根據總體有效頁百分比來計算。其中,總體有效頁百分比是根據垃圾回收操作當前搬移出有效資料的來源區塊中的有效頁數量,以及一個或多個候選源區塊的有效頁數量來決定。
一般來說,來源區塊的有效頁百分比,與記憶體控制器在垃圾回收操作期間,寫入目的區塊的有效資料量有關。因此,當針對不同的來源區塊執行垃圾回收操作時,“垃圾回收操作對主機”的基本比例和“垃圾回收操作對主機”的寫入比例將發生變動。一旦將來源區塊從一個換成另一個,對主機命令的響應時間可能會發生劇烈變動,並且快閃記憶體的寫入性能可能會下降。
為了解決這樣的問題,本發明實施例在計算有效頁百分比時,還考慮了一個或多個候選來源區塊。具體來說,記憶體控制器110可以在決定垃圾回收操作的來源區塊時,同時選擇一個或多個候選來源區塊。來源區塊可以由快閃記憶體控制器110,根據特定策略來選取。例如,具有最多無效頁的一個區塊,可以被選為來源區塊。基於這樣的策略,記憶體控制器110還可以從無效頁為第二、第三、...和第N多的那些區塊中,選取候選來源區塊。換句話說,具有比其他區塊更多的無效頁的那些區塊,都可以被選作為候選來源區塊。請注意,這種策略並非本發明實質範疇的限制。根據本發明的各種實施例,在選擇一個或多個候選來源區塊時可以考慮其他因素。
一旦選擇了來源區塊和候選來源區塊,則根據本發明各個實施例,記憶體控制器110可以基於來源區塊和候選來源區塊中的有效頁數量,以不同的方式來決定總體有效頁百分比P。
在本發明第四實施例中,可以透過對來源區塊b0的有效頁百分比p0和候選來源區塊b1~bk的有效頁百分比p1~pk進行平均,計算出總體有效頁百分比P,其中k是候選來源區塊的數量,並且可以是大於1的任何整數。據此,記憶體控制器110根據以下式決定總體有效頁百分比P:P=(p0+p1+...+pk)/(k+1)
在第7A圖所示的本發明第五實施例中,透過計算來源區塊b0的有效頁百分比p0和候選來源區塊b1-bk的有效頁百分比p1-pk的加權平均值,確定總體有效頁百分比P。在這樣的實施例中,記憶體控制器110還額外決定來源區塊b0
的權重w0和候選來源區塊b1~bk的權重w1~wk。在一個優選實施例中,權重w0可以大於權重w1~wk,並且權重w0~wk的總和為1。據此,記憶體控制器110根據以下式決定總體有效頁百分比P:P=w0*p0+w1*p1+...+wk*pk
在這個實施例中,區塊的權重與區塊中的無效頁數量相關。例如,如果候選來源區塊b1~b3中的無效頁n1~n3的數量具有n1>n2>n3的關係,則候選來源區塊b1~b3的權重w1~w3將具有w1>w2>w3的關係。此外,如果記憶體控制器110已經完成將來源區塊b0的有效頁資料搬移到目的區塊的操作,並且繼續將來源區塊b1的有效頁資料搬移到目的區塊上,則記憶體控制器110可以重新選擇候選來源區塊。此時,重新選擇的候選來源區塊可以與先前選擇的候選來源區塊b2~bk相同或不同。這是因為記憶體控制器110上運行的其他機制,可能會導致區塊中無效頁數量持續改變。另外,如果記憶體控制器110已經完成了將來源區塊b0中的有效頁資料搬移到目的區塊的操作,記憶體控制器110可以重新選擇一個區塊,而不是使用候選來源區塊中的第一順位區塊b1作為之後的來源區塊。
在本發明第六實施例中,可以透過對來源區塊b0和候選來源區塊b1~b3中的有效頁數量執行移動平均計算,來決定總體有效頁百分比P。請注意,此處的候選來源區塊的數量並非對本發明的限制。
請參考第7B~7D圖以進一步理解。如圖所示,第7B圖繪示了來源區塊b0和候選來源區塊b1~b3,其中區塊中的陰影單元代表無效頁,而區塊中的白色單元代表有效頁。移動窗口MW從來源區塊b0和候選來源區塊b1~b3中,選擇
垃圾回收操作尚未處理過的預定數量頁(例如,G個頁)。具體來說,移動窗口MW的選擇範圍開始於來源區塊b0中的頁i,並且結束於候選來源區塊b3中的頁面w。因此,記憶體控制器110根據移動窗口MW中的有效頁數量與移動窗口MW中的總頁數G之比,決定總體有效頁百分比P。如第7B圖所示,總體有效頁百分比P為:P=(6+17+18+12)/24*3
在一個實施例中,記憶體控制器110可以在垃圾回收操作期間的任何時間點,重新決定來源區塊b0和候選來源區塊b1~b3的總體有效頁百分比P。例如,如第7C圖所示,在來源區塊b0中的頁i~頁(i+3)已經經過垃圾回收操作處理後(亦即,來源區塊b0的頁i、(i+2)和(i+3)中的資料已被搬移到目的區塊),記憶體控制器110可以重新決定總體有效頁百分比P。這時,移動窗口MV向下移動,以選擇尚未處理的頁。選擇範圍將從來源區塊b0中的頁(i+4)處開始,並在候選來源區塊b3中的頁(w+4)處結束。因此,記憶體控制器110將根據由移動窗口MV所選擇的G個頁中的有效頁數量來重新決定總體有效頁百分比P。
根據本發明各個實施例,記憶體控制器110可以在重新決定總體有效頁百分比P的同時,重新選擇候選來源區塊。請參考第7D圖中的更多細節。在垃圾回收操作已經處理了來源區塊b0中的幾個頁之後,記憶體控制器110可以重新決定總體有效頁百分比P。如第7D圖所示,記憶體控制器110可以重新選擇候選來源區塊(即,區塊b4~b6),並根據移動窗口MV從來源區塊b0和候選來源區塊b4~b6中,選擇的G個頁中的有效頁數量,重新決定總體有效頁百分比P。在一個實施例中,當決定移動窗口MW所選擇的頁中的總體有效頁百分比P時,記憶體
控制器110還可以對不同區塊中的有效頁數,給予一定的權重,並據此計算總體有效頁百分比P。例如,來源區塊b0中的有效頁數給予權重w0,候選來源區塊b4~b6中的有效頁數給予權重w1~w3。
一旦記憶體控制器110計算了總體有效頁百分比P,則可以相應地執行垃圾回收操作。記憶體控制器110可以根據NV記憶體120中的備用區塊的當前數量CN確定調整因子K。而且,記憶體控制器110可以根據總體有效頁百分比P,計算“垃圾回收操作對主機命令”的基本比例BR。最終,記憶體控制器110根據調整因子K、和“垃圾回收操作對主機命令”的基本比例BR,決定前述的“垃圾回收操作對主機命令”的寫入比例GHWR,並且根據“垃圾回收操作對主機命令”的寫入比例GHWR,同時執行垃圾回收寫入操作,以及主機命令寫入操作。
第8圖繪示了本發明第四、第五和第六實施例中,管理快閃記憶體上的垃圾回收操作的方法流程圖。在步驟810中,記憶體控制器110根據特定策略,如區塊中無效頁數量,從NV記憶體120中選擇來源區塊和至少一個候選來源區塊。在步驟820中,記憶體控制器根據來源區塊和至少一個候選來源區塊中的有效頁數,決定總體有效頁百分比P。根據前述實施例,可以透過一般平均值、加權平均值或移動平均值計算,獲得總體有效頁百分比P。在步驟830中,記憶體控制器110根據總體有效頁百分比P,計算“垃圾回收操作對主機命令”的基本比例BR,其中BR=P/(1-P)。在步驟840中,記憶體控制器110根據備用區塊的當前數量決定調整因子K。其中,調整因子K和備用區塊的當前數量之間具有負相關關係,並且可以具有如第2、4或5圖所示的關係。在步驟850中,記憶體控制器110根據調整因子K,和“垃圾回收操作對主機命令”的基本比例BR,決定“垃圾回收操作對主機命令”的寫入比例GHWR。其中,“垃圾回收操作對主機命令”的寫
入比例GHWR可以由下式決定:GHWR=K *BR。在步驟860中,記憶體控制器110在執行主機寫入操作(即,根據主控裝置50發送的主機命令,寫入使用者資料)的同時,根據“垃圾回收操作對主機命令”的寫入比例GHWR,執行垃圾回收寫入操作(即,將垃圾回收操作蒐集的有效資料,寫入至目的區塊)。在步驟870中,記憶體控制器110判斷垃圾回收操作當前所寫入的目的區塊是否已經被完全寫滿(即,是否每個頁都被寫入資料)。如果是,則流程結束,記憶體控制器110結束垃圾回收操作;否則,流程進入步驟880,記憶體控制器110進一步判斷當前來源區塊是否已經被完全讀取(即,是否每個有效頁的資料已經被搬移到目的區塊)。如果是,則流程返回到步驟810,重新選擇來源區塊和一個或多個候選來源區塊;否則,流程返回到步驟860,繼續執行垃圾回收操作。
在上述實施例中,本發明依靠選擇一個或多個候選來源區塊,計算總體有效頁百分比,以緩和不同來源區塊之間的有效頁百分比的變動。因此,當來源區塊從一個換成另一個時,可以避免“垃圾回收操作對主機命令”的基本比例BR,以及“垃圾回收操作對主機命令”的寫入比例GHWR的劇烈變動。有鑑於此,本發明可以維持對主機命令的響應時間的穩定性,避免在垃圾回收操作期間降低快閃記憶體的寫入性能。
備用區域的估計與調整因子的決定
本發明實施例提供了估計快閃記憶體的備用區域(spare area)的機制。在這樣的實施例中,記憶體控制器110以較小的單元,而不是區塊為單位,估計NV記憶體120的總體備用區域。根據本發明的各種實施例,存在幾種大小待評估的備用區域,例如,主機命令中的使用者資料所寫入的一個或多個目標區塊(target blocks)裡的備用區域(A)、垃圾回收操作中的有效資料所寫入的一
個或多個目的區塊(destination blocks)裡的備用區域(B)、垃圾回收操作從其讀取有效資料的來源區裡的備用區域(C)以及NV記憶體120中備用區塊(spare block)裡的備用區域(D)。本發明會根據上述的備用區域,估計出NV記憶體120的總體備用區域。
請參考第9圖所揭露的細節。首先,備用區域(A)代表一個或多個目標區塊中,尚未使用/寫入的邏輯區塊位址。其中,這一個或多個目標區塊是主機命令中的使用者資料當前被寫入的區塊。其次,備用區域(B)代表一個或多個目的區塊中,尚未使用/寫入的邏輯區塊位址。其中,這一個或多個目的區塊是當前已被寫入,或者即將要被寫入垃圾回收操作所蒐集的有效資料的區塊。在一些實施例中,使用者資料當前被寫入的一個或多個目標區塊,可以跟有效資料當前被寫入或即將要被寫入的一個或多個目的塊相同。因此,備用區域(A)可能與備用區域(B)相同。在一些實施例中,主機命令中的用使用者資料可以同時被寫入一個以上的目標區塊。因此,備用區域(A)將是使用者資料當前被寫入的每個目標區塊中,各別的備用區域的總和。在一些實施例中,垃圾回收操作的有效資料可以同時被寫入一個以上的目的地塊。因此,備用區域(B)將是有效資料當前被寫入或即將要被寫入的每個目的區塊中,各別的備用區的總和。
再者,備用區域(C)代表示來源區塊中,已被垃圾回收操作所讀取的邏輯區塊位址(即,已被搬移至目的區塊的資料量),其中,垃圾回收操作將從來源區塊讀取有效資料。由於備用區域(C)在來源區塊被抹除之前,無法用於寫入新資料。因此,需要透過估計已經由垃圾回收操作複製/讀取的來源區塊中的資料量,以及來源區塊的有效頁百分比的比例,才能計算出備用區域(C)。
也就是說,備用區域(C)應由以下式決定:Moved_D/P。其中,Moved_D是來源區塊中,已透過垃圾回收操作複製/讀取的資料量,P是來源區塊中的有效頁百分比。在一些實施例中,垃圾回收操作可能同時讀取一個以上的來源區塊。因此,備用區域(C)將是垃圾回收操作當前讀取有效資料的每個來源區塊中,各別的備用區域的總和。第四,備用區域(D)代表NV記憶體120中備用區塊的邏輯區塊位址。
根據本發明的多個實施例,記憶體控制器110可以利用以下的加總式之一來估計NV記憶體120的總體備用區域:
1)備用區域(A)+備用區域(D)
2)備用區域(A)+備用區域(B)+備用區域(D)
3)備用區域(A)+備用區域(B)+備用區域(C)+備用區域(D)
4)備用區域(B)+備用區域(C)+備用區域(D)
5)備用區域(A)+備用區域(C)+備用區域(D)
一旦記憶體控制器110計算出NV記憶體120的總體備用區域,記憶體控制器110就可以相應地執行垃圾回收操作。記憶體控制器110可以根據計算出的NV記憶體120的總體備用區域,決定調整因子K。據此,記憶體控制器110根據調整因子K和“垃圾回收操作對主機命令”的基本比例BR,來決定上述垃圾回收操作對主機命令”的寫入比例GHWR,從而在執行主機寫入操作的同時,根據寫入比率GHWR執行垃圾回收寫操作。
在極端情況下,可以用4K位元組為單位估計總體備用區域。這遠小
於習知技術中用於估計備用區域的單位:128K或256K位元組(即,區塊大小)。由於備用區域的變動以較小的單位反映出來,調整因子K的改變也更細微,可以讓“垃圾回收操作對主機命令”的寫入比例GHWR被更精細地調節。另外,本發明可以在每次基於主機命令和/或垃圾回收的寫入操作發生後,追蹤備用區域的變化(例如,備用區域(A)、備用區域(B)和備用區域(C))。因此,總體備用區域可以更迅速地反映出快閃記憶體內的備用區域的改變。記憶體控制器110可以在執行垃圾回收操作期間的任何時間點內,重新決定調整因子K,以及“垃圾回收操作對主機命令”的寫入比例GHWR。
在本發明的優選實施例中,如果NV記憶體120中的備用區塊的當前數量小於或等於,一個比NV記憶體120的FTL所維持的目標備用區塊數還高的垃圾回收操作啟動臨界值,則記憶體控制器110可能決定啟動垃圾回收操作。而在另一個實施例中,僅有在備用區塊的當前數量小於或等於目標備用區塊數時,記憶體控制器110才可能決定啟動垃圾回收操作。
第10圖繪示了本發明第七實施例中,管理快閃記憶體的垃圾回收操作的方法流程圖。在步驟1010中,記憶體控制器110從NV記憶體120中選擇垃圾回收操作的來源區塊。在步驟1020中,記憶體控制器110根據來源區塊中的有效頁數量,決定有效頁百分比P。在步驟1030中,記憶體控制器110根據有效頁百分比P,計算“垃圾回收操作對主機命令”的基本比例BR,其中,“垃圾回收操作對主機命令”的基本比例BR可以透過以下方式決定:BR=P/(1-P)。在步驟1040中,記憶體控制器110估計NV記憶體120中的總體備用區域。根據本發明的各種實施例,記憶體控制器110可以將主機命令的一個或多個目標區塊、垃圾回收操作的目的區塊、垃圾回收操作的來源區塊、以及NV記憶體120中的備用區塊等
各種區塊中的備用區域,納入計算。在步驟1050中,記憶體控制器110根據總體備用區域,決定調整因子K,其中,調整因子K和總體備用區域的大小之間可能具有如第2、4與5圖所示的負相關關係。在步驟1060中,記憶體控制器根據調整因子K和“垃圾回收操作對主機命令”的基本比例BR,決定“垃圾回收操作對主機命令”的寫入比例GHWR,其中“垃圾回收操作對主機命令”的寫入比率GHWR可以透過以下方式決定:GHWR=K*BR。在步驟1070中,記憶體控制器110在執行主機寫入操作(即,根據由主控裝置50發送的主機命令,寫入使用者資料)的同時,根據“垃圾回收操作對主機命令”的寫入比率GHWR,執行垃圾回收操作(即,將垃圾回收操作中所蒐集的有效資料,寫入至目的區塊)。在步驟1080中,記憶體控制器110判斷垃圾回收操作當前所寫入的目的地塊,是否已經被完全寫滿(例如,每個頁都已經被寫入)。如果是,則流程結束,記憶體控制器110將結束垃圾回收操作;否則,流程進入步驟1090,記憶體控制器110判斷當前的來源區塊是否已經被完全讀取(即,每個有效頁的資料已經被搬移到目的區塊)。如果是,則流程返回到步驟1010,重新選擇來源區塊;否則,流程返回到步驟1070,繼續執行垃圾回收操作。
在上述實施例中,記憶體控制器110以較小的單元來估計快閃記憶體的總體備用區域。因此,調整因子K可以反映出快閃記憶體備用區域的細微改變,從而使用更精細的方式,調整“垃圾回收操作對主機命令”的寫入比率GHWR,避免對主機命令的響應時間發生劇烈變動。此外,由於估計出的總體備用區域可以更準確地反映快閃記憶體內的可用空間(即,以較小的單位來估計),並且即時地(即,在每次寫入操作之後重新進行估計),因此,記憶體控制器110所執行的垃圾回收操作可以對快閃記憶體中的可用空間有更好的響應。
本發明之實施例可使用硬體、軟體、韌體以及其相關結合來完成。藉由適當之一指令執行系統,可使用儲存於一記憶體中之軟體或韌體來實作本發明的實施例。就硬體而言,則是可應用下列任一技術或其相關結合來完成:具有可根據資料信號執行邏輯功能之邏輯閘的一個別運算邏輯、具有合適的組合邏輯閘之一特定應用積體電路(application specific integrated circuit,ASIC)、可程式閘陣列(programmable gate array,PGA)或一現場可程式閘陣列(field programmable gate array,FPGA)等。
說明書內的流程圖中的流程和方塊示出了基於本發明的各種實施例的系統、方法和電腦軟體產品所能實現的架構,功能和操作。在這方面,流程圖或功能方塊圖中的每個方塊可以代表程式碼的模組,區段或者是部分,其包括用於實現指定的邏輯功能的一個或多個可執行指令。另外,功能方塊圖以及/或流程圖中的每個方塊,以及方塊的組合,基本上可以由執行指定功能或動作的專用硬體系統來實現,或專用硬體和電腦程式指令的組合來實現。這些電腦程式指令還可以存儲在電腦可讀媒體中,該媒體可以使電腦或其他可編程數據處理裝置以特定方式工作,使得存儲在電腦可讀媒體中的指令,實現流程圖以及/或功能方塊圖中的方塊所指定的功能/動作。
以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
1010~1090:步驟
Claims (18)
- 一種用於管理一快閃記憶體上的一垃圾回收操作的方法,包含:計算該快閃記憶體中的一總體備用區域,該總體備用區域包含該快閃記憶體中的複數個備用區塊裡的備用區域,和主機寫入命令的使用者資料當前所寫入的一個或多個目標區塊裡的備用區域、該垃圾回收操作的有效資料當前所寫入的一個或多個目的區塊裡的備用區域、以及當前將該垃圾回收操作的有效資料從中讀出的一來源區塊裡的備用區域中的至少兩者;根據該總體備用區域,決定一調整因子;以及根據一垃圾回收操作對主機命令的基本比例和該調整因子,對該來源區塊執行該垃圾回收操作。
- 如請求項1所述的方法,其中該調整因子與該總體備用區域的大小之間呈負相關。
- 如請求項1所述的方法,其中計算該快閃記憶體中的該總體備用區域的步驟包含:根據基於該垃圾回收操作,從該來源區塊被複製到一目的區塊的資料量與該來源區塊的一有效頁百分比之間的比例,計算出該來源區塊裡的備用區域。
- 如請求項1所述的方法,其中計算該快閃記憶體中的該總體備用區域的步驟包含:根據該些備用區塊裡的備用區域、該一個或多個目標區塊裡的備用區域以及 該一個或多個目的區塊裡的備用區域的總和,計算該總體備用區域;根據該些備用區塊裡的備用區域、該一個或多個目標區塊裡的備用區域、該一個或多個目的區塊裡的備用區域以及該來源區塊裡的備用區域的總和,計算該總體備用區域;根據該些備用區塊裡的備用區域、該一個或多個目的區塊裡的備用區域以及該來源區塊裡的備用區域的總和,計算該總體備用區域;或根據該些備用區塊裡的備用區域、該一個或多個目標區塊裡的備用區域以及該來源區塊裡的備用區域的總和,計算該總體備用區域。
- 如請求項1所述的方法,其中執行該垃圾回收操作的步驟包含:根據該來源區塊的一有效頁百分比,決定一垃圾回收操作對主機命令的基本比例;根據該垃圾回收操作對主機命令的基本比例和該調整因子的乘積,決定一垃圾回收操作對主機命令的寫入比例,其中該垃圾回收操作對主機命令的寫入比例指出,基於垃圾回收操作的有效資料寫入量與基於主機命令的使用者資料寫入量之間的一比例;以及當執行基於主機寫入命令的使用者資料寫入時,根據該垃圾回收操作對主機命令的寫入比例,執行基於該垃圾回收操作的有效資料寫入。
- 一種用於管理一快閃記憶體上的一垃圾回收操作的方法,包含:根據該快閃記憶體中複數個備用區塊裡的備用區域,和主機寫入命令的使用者資料當前所寫入的一個或多個目標區塊裡的備用區域,計算該快閃記憶體中的一總體備用區域;根據該總體備用區域,決定一調整因子;以及 根據一垃圾回收操作對主機命令的基本比例和該調整因子,對該垃圾回收操作的一來源區塊執行該垃圾回收操作。
- 一種用於控制一快閃記憶體的運作並且管理該快閃記憶體上的一垃圾回收操作的控制器,包含:一儲存單元,用於儲存資訊以及程式碼;以及一處理單元,用於根據儲存於該儲存單元或該快閃記憶體中的程式碼與資訊,執行以下操作:計算該快閃記憶體中的一總體備用區域,該總體備用區域包含該快閃記憶體中複數個備用區塊裡的備用區域,和主機寫入命令的使用者資料當前所寫入的一個或多個目標區塊裡的備用區域、該垃圾回收操作的有效資料當前所寫入的一個或多個目的區塊裡的備用區域、以及當前將該垃圾回收操作的有效資料從中讀出的一來源區塊裡的備用區域中的至少兩者;根據該總體備用區域,決定一調整因子;以及根據一垃圾回收操作對主機命令的基本比例和該調整因子,對該來源區塊執行該垃圾回收操作。
- 如請求項7所述的控制器,其中該調整因子與該總體備用區域的大小之間呈負相關。
- 如請求項7所述的控制器,其中該處理單元執行以下操作:根據基於該垃圾回收操作,從該來源區塊被複製到一目的區塊的資料量與該來源區塊的一有效頁百分比之間的比例,計算出該來源區塊裡的備用區 域。
- 如請求項7所述的控制器,其中該處理單元執行以下操作:根據該些備用區塊裡的備用區域、該一個或多個目標區塊裡的備用區域以及該一個或多個目的區塊裡的備用區域的總和,計算該總體備用區域;根據該些備用區塊裡的備用區域、該一個或多個目標區塊裡的備用區域、該一個或多個目的區塊裡的備用區域以及該來源區塊裡的備用區域的總和,計算該總體備用區域;根據該些備用區塊裡的備用區域、該一個或多個目的區塊裡的備用區域以及該來源區塊裡的備用區域的總和,計算該總體備用區域;或根據該些備用區塊裡的備用區域、該一個或多個目標區塊裡的備用區域以及該來源區塊裡的備用區域的總和,計算該總體備用區域。
- 如請求項7所述的控制器,其中該處理單元執行以下操作:根據該來源區塊的一有效頁百分比,決定一垃圾回收操作對主機命令的基本比例;根據該垃圾回收操作對主機命令的基本比例和該調整因子的乘積,決定一垃圾回收操作對主機命令的寫入比例,其中該垃圾回收操作對主機命令的寫入比例指出,基於垃圾回收操作的有效資料寫入量與基於主機命令的使用者資料寫入量之間的一比例;以及當執行基於主機寫入命令的使用者資料寫入時,根據該垃圾回收操作對主機命令的寫入比例,執行基於該垃圾回收操作的有效資料寫入。
- 一種用於控制一快閃記憶體的運作並且管理該快閃記憶體上的一 垃圾回收操作的控制器,包含:一儲存單元,用於儲存資訊以及程式碼;以及一處理單元,用於根據儲存於該儲存單元或該快閃記憶體中的程式碼與資訊,執行以下操作:根據該快閃記憶體中複數個備用區塊裡的備用區域,和主機寫入命令的使用者資料當前所寫入的一個或多個目標區塊裡的備用區域,計算該快閃記憶體中的一總體備用區域;根據該總體備用區域,決定一調整因子;以及根據一垃圾回收操作對主機命令的基本比例和該調整因子,對該垃圾回收操作的一來源區塊執行該垃圾回收操作。
- 如請求項12所述的控制器,其中該調整因子與該總體備用區域的大小之間呈負相關。
- 如請求項12所述的控制器,其中該處理單元執行以下操作:根據基於該垃圾回收操作,從該來源區塊被複製到一目的區塊的資料量與該來源區塊的一有效頁百分比之間的比例,計算出該來源區塊裡的備用區域。
- 如請求項12所述的控制器,其中該處理單元執行以下操作:根據該快閃記憶體中該些備用區塊裡的備用區域,和主機寫入命令寫入的使用者資料所對應的該一個或多個目標區塊裡的備用區域的總和,計算該總體備用區域。
- 如請求項12所述的控制器,其中該處理單元執行以下操作:根據該來源區塊的一有效頁百分比,決定一垃圾回收操作對主機命令的基本比例;根據該垃圾回收操作對主機命令的基本比例和該調整因子的乘積,決定一垃圾回收操作對主機命令的寫入比例,其中該垃圾回收操作對主機命令的寫入比例指出,基於垃圾回收操作的有效資料寫入量與基於主機命令的使用者資料寫入量之間的一比例;以及當執行基於主機寫入命令的使用者資料寫入時,根據該垃圾回收操作對主機命令的寫入比例,執行基於該垃圾回收操作的有效資料寫入。
- 一種儲存裝置,包含:一快閃記憶體,用於提供儲存空間;一控制器,耦接於該快閃記憶體,用於控制該快閃記憶體的運作,並且管理該快閃記憶體上的一垃圾回收操作,包含:一儲存單元,用於儲存資訊與程式碼;以及一處理單元,用於根據儲存於該儲存單元或該快閃記憶體中的程式碼與資訊,執行以下操作:計算該快閃記憶體中的一總體備用區域,該總體備用區域包含該快閃記憶體中的複數個備用區塊裡的備用區域,和主機寫入命令的使用者資料當前所寫入的一個或多個目標區塊裡的備用區域、該垃圾回收操作的有效資料當前所寫入一個或多個目的區塊裡的備用區域、以及當前將該垃圾回收操作的有效資料從中讀出的一來源區塊裡的備用區域中的至少兩者;根據該總體備用區域,決定一調整因子;以及 根據一垃圾回收操作對主機命令的基本比例和該調整因子,對該來源區塊執行該垃圾回收操作。
- 一種儲存裝置,包含:一快閃記憶體,用於提供儲存空間;一控制器,耦接於該快閃記憶體,用於控制該快閃記憶體的運作,並且管理該快閃記憶體上的一垃圾回收操作,包含:一儲存單元,用於儲存資訊與程式碼;以及一處理單元,用於根據儲存於該儲存單元或該快閃記憶體中的程式碼與資訊,執行以下操作:根據該快閃記憶體中複數個備用區塊裡的備用區域,和主機寫入命令的使用者資料當前所寫入的一個或多個目標區塊裡的備用區域,計算該快閃記憶體中的一總體備用區域;根據該總體備用區域,決定一調整因子;以及根據一垃圾回收操作對主機命令的基本比例和該調整因子,對該垃圾回收操作的一來源區塊執行該垃圾回收操作。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/179,342 | 2021-02-18 | ||
US17/179,342 US11494299B2 (en) | 2021-02-18 | 2021-02-18 | Garbage collection operation management with early garbage collection starting point |
US17/206,137 US11809312B2 (en) | 2021-02-18 | 2021-03-19 | Garbage collection operation management based on overall spare area |
US17/206,137 | 2021-03-19 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202234247A TW202234247A (zh) | 2022-09-01 |
TWI782654B true TWI782654B (zh) | 2022-11-01 |
Family
ID=82801237
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW110117059A TWI784514B (zh) | 2021-02-18 | 2021-05-12 | 垃圾回收操作的管理機制 |
TW110128180A TWI773467B (zh) | 2021-02-18 | 2021-07-30 | 垃圾回收操作的管理機制 |
TW110128884A TWI782654B (zh) | 2021-02-18 | 2021-08-05 | 垃圾回收操作的管理機制 |
Family Applications Before (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW110117059A TWI784514B (zh) | 2021-02-18 | 2021-05-12 | 垃圾回收操作的管理機制 |
TW110128180A TWI773467B (zh) | 2021-02-18 | 2021-07-30 | 垃圾回收操作的管理機制 |
Country Status (3)
Country | Link |
---|---|
US (4) | US11494299B2 (zh) |
CN (3) | CN114968830A (zh) |
TW (3) | TWI784514B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115543864A (zh) * | 2022-09-30 | 2022-12-30 | 荣耀终端有限公司 | 一种内存垃圾的回收方法及电子设备 |
CN116610596B (zh) * | 2023-07-19 | 2023-10-03 | 合肥康芯威存储技术有限公司 | 一种存储器件及其数据处理方法 |
CN116644001B (zh) * | 2023-07-20 | 2023-10-17 | 合肥康芯威存储技术有限公司 | 一种存储器件及其垃圾回收的控制方法 |
CN116610597B (zh) * | 2023-07-20 | 2023-10-17 | 合肥康芯威存储技术有限公司 | 一种存储器件及其垃圾回收的控制方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI376600B (en) * | 2006-09-28 | 2012-11-11 | Sandisk Corp | Memory systems and method for phased garbage collection using phased garbage collection block or scratch pad block as a buffer |
TW201928678A (zh) * | 2017-12-20 | 2019-07-16 | 慧榮科技股份有限公司 | 用於動態執行記憶體回收資料儲存裝置與操作方法 |
CN110058794A (zh) * | 2018-01-19 | 2019-07-26 | 上海宝存信息科技有限公司 | 用于动态执行垃圾回收数据储存装置与操作方法 |
US20200097403A1 (en) * | 2018-09-25 | 2020-03-26 | Western Digital Technologies, Inc. | Recency based victim block selection for garbage collection in a solid state device (ssd) |
CN111930301A (zh) * | 2020-06-29 | 2020-11-13 | 深圳佰维存储科技股份有限公司 | 垃圾回收优化方法、装置、存储介质及电子设备 |
Family Cites Families (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7035967B2 (en) | 2002-10-28 | 2006-04-25 | Sandisk Corporation | Maintaining an average erase count in a non-volatile storage system |
US7752382B2 (en) | 2005-09-09 | 2010-07-06 | Sandisk Il Ltd | Flash memory storage system and method |
KR100881669B1 (ko) | 2006-12-18 | 2009-02-06 | 삼성전자주식회사 | 비휘발성 데이터 저장장치의 정적 데이터 영역 검출 방법,마모도 평준화 방법 및 데이터 유닛 병합 방법과 그 장치 |
TW201015581A (en) | 2008-10-01 | 2010-04-16 | A Data Technology Co Ltd | Non-volatile storage device and control method thereof |
US8082386B2 (en) | 2008-10-21 | 2011-12-20 | Skymedi Corporation | Method of performing wear leveling with variable threshold |
US8725931B1 (en) * | 2010-03-26 | 2014-05-13 | Western Digital Technologies, Inc. | System and method for managing the execution of memory commands in a solid-state memory |
US8521948B2 (en) | 2011-01-03 | 2013-08-27 | Apple Inc. | Handling dynamic and static data for a system having non-volatile memory |
KR20120096212A (ko) | 2011-02-22 | 2012-08-30 | 삼성전자주식회사 | 비휘발성 메모리 장치, 메모리 컨트롤러, 및 이들의 동작 방법 |
US9405670B2 (en) | 2011-06-09 | 2016-08-02 | Tsinghua University | Wear leveling method and apparatus |
US9176862B2 (en) | 2011-12-29 | 2015-11-03 | Sandisk Technologies Inc. | SLC-MLC wear balancing |
US9792073B2 (en) | 2013-09-27 | 2017-10-17 | Avalanche Technology, Inc. | Method of LUN management in a solid state disk array |
US9898404B2 (en) | 2013-07-14 | 2018-02-20 | Cnex Labs | Method and apparatus for providing improved garbage collection process in solid state drive |
US9361222B2 (en) | 2013-08-07 | 2016-06-07 | SMART Storage Systems, Inc. | Electronic system with storage drive life estimation mechanism and method of operation thereof |
TWI516922B (zh) | 2014-03-12 | 2016-01-11 | 慧榮科技股份有限公司 | 資料儲存裝置及快閃記憶體零散資料收集方法 |
US10235056B2 (en) | 2014-09-26 | 2019-03-19 | Western Digital Technologies, Inc. | Storage device health diagnosis |
US10409526B2 (en) | 2014-12-17 | 2019-09-10 | Violin Systems Llc | Adaptive garbage collection |
KR102258126B1 (ko) | 2015-03-19 | 2021-05-28 | 삼성전자주식회사 | 메모리 컨트롤러의 작동 방법, 이를 포함하는 데이터 저장 장치, 및 이를 포함하는 데이터 처리 시스템 |
US9645922B2 (en) | 2015-09-10 | 2017-05-09 | HoneycombData Inc. | Garbage collection in SSD drives |
JP6414853B2 (ja) * | 2015-12-14 | 2018-10-31 | 東芝メモリ株式会社 | メモリシステムおよび制御方法 |
US10185658B2 (en) * | 2016-02-23 | 2019-01-22 | Sandisk Technologies Llc | Efficient implementation of optimized host-based garbage collection strategies using xcopy and multiple logical stripes |
US10095414B2 (en) * | 2016-03-07 | 2018-10-09 | Toshiba Memory Corporation | Memory system including a controller and a nonvolatile memory having memory blocks |
US10339044B2 (en) * | 2016-03-30 | 2019-07-02 | Sandisk Technologies Llc | Method and system for blending data reclamation and data integrity garbage collection |
US10248327B2 (en) * | 2016-04-01 | 2019-04-02 | SK Hynix Inc. | Throttling for a memory system using a GC/HOST ratio and operating method thereof |
CN106547703B (zh) | 2016-10-08 | 2019-05-14 | 华中科技大学 | 一种基于块组结构的ftl优化方法 |
TWI626540B (zh) * | 2017-03-22 | 2018-06-11 | 慧榮科技股份有限公司 | 一般及垃圾回收的資料存取方法以及使用該方法的裝置 |
JP2019057172A (ja) | 2017-09-21 | 2019-04-11 | 東芝メモリ株式会社 | メモリシステムおよび制御方法 |
US10515008B2 (en) | 2017-10-25 | 2019-12-24 | Western Digital Technologies, Inc. | Performance based memory block usage |
TWI670594B (zh) | 2018-01-18 | 2019-09-01 | 慧榮科技股份有限公司 | 資料儲存裝置 |
TWI696115B (zh) | 2018-09-05 | 2020-06-11 | 旺宏電子股份有限公司 | 記憶體儲存裝置及其操作方法 |
TWI705372B (zh) | 2018-12-26 | 2020-09-21 | 旺宏電子股份有限公司 | 快閃記憶體裝置及其控制方法 |
US10956317B2 (en) * | 2019-02-11 | 2021-03-23 | International Business Machines Corporation | Garbage collection in non-volatile memory that fully programs dependent layers in a target block |
CN110489354B (zh) | 2019-08-15 | 2023-05-09 | 山东华芯半导体有限公司 | 支持两种位宽的磨损均衡垃圾回收加速装置 |
US11150825B2 (en) * | 2019-12-05 | 2021-10-19 | Microsoft Technology Licensing, Llc | Adaptive spare block usage in solid state drives |
CN111045956B (zh) | 2019-12-22 | 2021-10-22 | 北京浪潮数据技术有限公司 | 一种基于多核cpu的固态硬盘垃圾回收方法以及装置 |
KR20210092988A (ko) | 2020-01-17 | 2021-07-27 | 에스케이하이닉스 주식회사 | 가비지 콜렉션 동작을 위한 메모리 시스템 및 메모리 시스템의 동작방법 |
JP2022007191A (ja) | 2020-06-25 | 2022-01-13 | キオクシア株式会社 | ストレージデバイス、ストレージシステム及び制御方法 |
-
2021
- 2021-02-18 US US17/179,342 patent/US11494299B2/en active Active
- 2021-03-19 US US17/206,149 patent/US11681615B2/en active Active
- 2021-03-19 US US17/206,137 patent/US11809312B2/en active Active
- 2021-05-12 TW TW110117059A patent/TWI784514B/zh active
- 2021-05-21 CN CN202110558077.0A patent/CN114968830A/zh active Pending
- 2021-07-30 TW TW110128180A patent/TWI773467B/zh active
- 2021-08-05 TW TW110128884A patent/TWI782654B/zh active
-
2022
- 2022-01-05 CN CN202210010553.XA patent/CN114968835A/zh active Pending
- 2022-01-05 CN CN202210009338.8A patent/CN114968834A/zh active Pending
- 2022-09-28 US US17/955,505 patent/US11704241B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI376600B (en) * | 2006-09-28 | 2012-11-11 | Sandisk Corp | Memory systems and method for phased garbage collection using phased garbage collection block or scratch pad block as a buffer |
TW201928678A (zh) * | 2017-12-20 | 2019-07-16 | 慧榮科技股份有限公司 | 用於動態執行記憶體回收資料儲存裝置與操作方法 |
CN110058794A (zh) * | 2018-01-19 | 2019-07-26 | 上海宝存信息科技有限公司 | 用于动态执行垃圾回收数据储存装置与操作方法 |
US20200097403A1 (en) * | 2018-09-25 | 2020-03-26 | Western Digital Technologies, Inc. | Recency based victim block selection for garbage collection in a solid state device (ssd) |
CN111930301A (zh) * | 2020-06-29 | 2020-11-13 | 深圳佰维存储科技股份有限公司 | 垃圾回收优化方法、装置、存储介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
TW202234244A (zh) | 2022-09-01 |
TW202234246A (zh) | 2022-09-01 |
TWI784514B (zh) | 2022-11-21 |
US11809312B2 (en) | 2023-11-07 |
US11494299B2 (en) | 2022-11-08 |
US20220261344A1 (en) | 2022-08-18 |
US11704241B2 (en) | 2023-07-18 |
US20220261343A1 (en) | 2022-08-18 |
US20220261342A1 (en) | 2022-08-18 |
TW202234247A (zh) | 2022-09-01 |
CN114968830A (zh) | 2022-08-30 |
CN114968835A (zh) | 2022-08-30 |
TWI773467B (zh) | 2022-08-01 |
US20230025761A1 (en) | 2023-01-26 |
US11681615B2 (en) | 2023-06-20 |
CN114968834A (zh) | 2022-08-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI782654B (zh) | 垃圾回收操作的管理機制 | |
CN111241006B (zh) | 存储阵列及控制方法 | |
US8463826B2 (en) | Incremental garbage collection for non-volatile memories | |
US20180173620A1 (en) | Data erasure method for solid state drive, and apparatus | |
US20230161475A1 (en) | Memory device and host device | |
CN109522248B (zh) | 存储控制器的操作方法及储存设备的操作方法 | |
TWI437439B (zh) | 用來以動態門檻進行區塊管理之方法及記憶裝置及控制器 | |
KR102002921B1 (ko) | 버퍼 운영 방법 및 그에 따른 반도체 저장 장치 | |
US20180276123A1 (en) | Memory system and control method | |
KR20210099870A (ko) | 메모리 시스템 및 그것의 동작방법 | |
US20220100406A1 (en) | Hard disk control method and related device | |
CN113986773A (zh) | 基于固态硬盘的写放大优化方法、装置及计算机设备 | |
US9804790B2 (en) | Method of operating memory controller and semiconductor storage device including memory controller | |
CN113574497A (zh) | 数据存储方法及存储芯片 | |
US11036414B2 (en) | Data storage device and control method for non-volatile memory with high-efficiency garbage collection | |
CN117632038B (zh) | 损耗平衡方法、存储器存储装置及存储器控制电路单元 | |
CN110618792A (zh) | 基于固态硬盘的内部任务优化方法、装置和计算机设备 | |
CN114664337A (zh) | 调整闪速存储器设备的写窗口大小的方法和装置 | |
CN112817541A (zh) | 写入带宽控制方法、存储器存储装置及存储器控制器 |