TWI652679B - 記憶體控制器、記憶體系統及控制方法 - Google Patents
記憶體控制器、記憶體系統及控制方法 Download PDFInfo
- Publication number
- TWI652679B TWI652679B TW107108134A TW107108134A TWI652679B TW I652679 B TWI652679 B TW I652679B TW 107108134 A TW107108134 A TW 107108134A TW 107108134 A TW107108134 A TW 107108134A TW I652679 B TWI652679 B TW I652679B
- Authority
- TW
- Taiwan
- Prior art keywords
- block
- physical
- plane
- blocks
- data
- Prior art date
Links
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/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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
-
- 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/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0646—Configuration or reconfiguration
-
- 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/061—Improving I/O performance
-
- 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/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
- 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/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/349—Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
- G11C16/3495—Circuits or methods to detect or delay wearout of nonvolatile EPROM or EEPROM memory devices, e.g. by counting numbers of erase or reprogram cycles, by using multiple memory areas serially or cyclically
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/70—Masking faults in memories by using spares or by reconfiguring
- G11C29/76—Masking faults in memories by using spares or by reconfiguring using address translation or modifications
-
- 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/7202—Allocation control and policies
-
- 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/7209—Validity control, e.g. using flags, time stamps or sequence numbers
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2211/00—Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C2211/56—Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
- G11C2211/564—Miscellaneous aspects
- G11C2211/5644—Multilevel memory comprising counting devices
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2211/00—Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C2211/56—Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
- G11C2211/564—Miscellaneous aspects
- G11C2211/5646—Multilevel memory with flag bits, e.g. for showing that a "first page" of a word line is programmed but not a "second page"
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/52—Protection of memory contents; Detection of errors in memory contents
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
本發明提供用於記憶體的超級區塊的區塊配置管理的系統、方法及裝置包括計算機可讀媒體。記憶體例如NAND快閃記憶體。一方面,一記憶體控制器用以管理一記憶體中的超級區塊的區塊配置,包括控制電路耦接至記憶體。記憶體具有至少二平面的物理區塊。控制電路用以保存平面中的各物理區塊的區塊資訊以及基於平面中的物理區塊的區塊資訊組合來自平面的一或多個物理區塊為一超級區塊。
Description
本發明是有關於記憶體控制器、記憶體系統及控制方法。特別是關於用於超級區塊組成的記憶體控制器、記憶體系統及控制方法。
為了管理像是NAND快閃記憶體的記憶體,可指定邏輯超級區塊,使得每個超級區塊將來自記憶體中不同平面的多個物理區塊組合在一起。位在一個超級區塊中的物理區塊可同時運行。然而,超級區塊通常在一開始時就在記憶體中被指定。每個超級區塊被當作一個整體的區塊而被管理,其中物理區塊的組合不會改變,直到其中一個物理區塊磨損。此外,超級區塊內沒有資料的最佳化配置,這可能會導致效率低下。
本揭露描述記憶體中超級區塊的區塊配置管理的系統與技術,可精細地管理物理區塊而增進(或最佳化)效率,其中記憶體可例如NAND快閃記憶體的非揮發性記憶體。
本揭露的一方面揭露一種用於記憶體中的超級區塊的區塊配置管理的記憶體控制器,包括一控制電路耦接至具有至少二平面的物理區塊的記憶體,控制電路用以保存此些平面中的各物理區塊的區塊資訊,控制電路基於此些平面中的此些物理區塊的區塊資訊組合此些平面的一或多個物理區塊為一超級區塊。物理區塊的區塊資訊可包括下列至少其中之一:擦除計數、有效計數、頁讀取計數、擦除延遲時間、指示此物理區塊是否位於一目前資料區塊的一第一旗標或指示此物理區塊是否為一未使用區塊的一第二旗標。
在一些實施例中,對於各平面,控制電路是用以基於此平面的此些物理區塊的區塊資訊選擇此平面的此些物理區塊中具有一最小擦除計數的一未使用物理區塊。在一些例子中,控制電路是用以:基於從此些平面中所選的未使用物理區塊的擦除計數決定一閥值;回應於所選的未使用物理區塊具有大於所決定的閥值的判斷,決定不為超級區塊選取所選的未使用物理區塊;以及回應於所選的未使用物理區塊具有不大於所決定的閥值的判斷,決定為超級區塊選取所選的未使用物理區塊。
在一些實施例中,控制電路是用以計算各平面的此些物理區塊的有效計數的一個別的總和;比較此些平面的有效計數的個別的總和;以及基於比較得出的一結果,決定是否為超級區塊從此些平面中選擇一物理區塊。
在一些實施例中,控制電路是用以計算此些平面的此些物理區塊的擦除計數的一個別的最大值;選擇一平面,所選平面的擦
除計數的個別的最大值小於擦除計數的個別的最大值中的最大者;選擇此平面中的未使用物理區塊,其中各所選的未使用物理區塊的一擦除延遲時間大於此所選平面中的物理區塊的擦除延遲時間的最小者;以及選擇一物理區塊,此物理區塊具有此些所選的未使用物理區塊中擦除計數的最小者。
在一些例子中,控制電路是用以:回應於此超級區塊無法儲存更多資料的判斷,釋放此超級區塊以獲得個別的資料區塊。在一些例子中,控制電路是用以:回應於一平面中的未使用區塊的數量小於一第一回收閥值的判斷,選取此平面中具有有效計數最小者的一物理區塊為一犧牲者區塊。
在一些實施例中,控制電路是用以回應於一平面中的未使用區塊的數量不小於一第一回收閥值且此平面中存在一緊急區塊的判斷,選取此緊急區塊為一犧牲者區塊。控制電路可用以藉由以下至少一決定一物理區塊為一緊急區塊:此物理區塊曾發生過一編程失敗;此物理區塊中的錯誤位元的數量達到一第一閥值,或此物理區塊中的錯誤位元的數量小於第一閥值且達到一第二閥值,第二閥值小於第一閥值。
在一些實施例中,控制電路是用以:回應於一平面中的未使用區塊的數量不小於一第二回收閥值的判斷,藉由比較一權重值與一閥值選取此平面中的一物理區塊為一犧牲者區塊,其中權重值是基於一或多個參數(因子)包括區塊類型、有效計數、擦除排序(erase order)及擦除延遲時間決定。在一些例子中,控制電路是用以計算各平
面中的犧牲者區塊的一個別數量;選擇此些平面中具有個別數量中最大者的一平面,所選平面包括具有小於一預設閥值的權重值的一或多個其他的物理區塊,其中一較小的有效計數相較於一較大的有效計數對應至一較小的權重值,且一較長的擦除延遲時間相較於一較短的擦除延遲時間對應至一較小的權重值;以及選擇一物理區塊,藉由確定此物理區塊是在一邏輯與實體對應表(logical to physical table,L2P table)中相同於在此平面中的一特定數量的犧牲者區塊,且此特定數量高於此平面中的各一或多其他物理區塊的數量。
控制電路可用以:基於一或多個回收優先度策略配置要被遷移的一或多個平面的一或多個犧牲者區塊中的有效資料;以及同時地將有效資料遷移至一目前資料區塊。控制電路也可用以:擦除不具有有效資料的一犧牲者區塊以獲得一未使用物理區塊。
在一些實施例中,控制電路是用以決定要被寫入記憶體的資料的特徵。此資料可包括來自記憶體外部的一裝置的至少一資料、來自記憶體的要被遷移的有效資料或相關於記憶體的元資料(metadata),且特徵可包括下列至少其中之一:安全等級、內部系統等級或讀取及寫入頻率等級。
在一些例子中,控制電路是用以基於被決定要被寫入的資料的特徵組合來自各平面的物理區塊為一超級區塊。在一些例子中,控制電路是用以:回應於不存在空白超級頁以儲存此資料的判斷,組合來自各平面的物理區塊為超級區塊;基於要被寫入的資料的特徵擦除各所選物理區塊;以及組合來自平面中的物理區塊的單頁(single
page)以獲得用以儲存此資料的一超級頁。在一些例子中,控制電路是用以:基於所計算的資料的特徵來對資料進行分類;基於所計算的資料的特徵和超級區塊中各個物理區塊的區塊資訊將資料配置到超級區塊中的各個物理區塊;以及對超級區塊的一或多個超級頁進行編程以儲存資料。
本揭露的另一方面揭露一種記憶體系統包括:包括至少二平面的物理區塊的一記憶體;以及一記憶體控制器。記憶體控制器用以藉由保存此些平面中的各物理區塊的區塊資訊管理記憶體的物理區塊,及基於此些平面中的此些物理區塊的區塊資訊組合此些平面的一或多個物理區塊為一超級區塊。
本揭露的又一方面揭露藉由記憶體控制器管理記憶體中的超級區塊組成方法,包括:由記憶體控制器的一控制電路保存記憶體的至少二平面的物理區塊各自的區塊資訊;由控制電路計算要被寫入記憶體的資料的一或多個特徵;以及由控制電路基於此些平面中的此些物理區塊的區塊資訊及此資料的特徵組合此些平面的一或多個物理區塊為一超級區塊。
上述技術的實現包括方法、電路、系統、計算機程序產品和計算機可讀媒體。在一個示例中,方法可藉由耦合到非揮發性性記憶體的記憶體控制器來執行,並且此方法可包括由記憶體控制器執行的上述動作,例如,超級區塊組成方法的動作。在另一個示例中,一個這樣的計算機程序產品可適合實現於儲存由一或多個處理器執行的指令的非揮發性機器可讀媒體中。指令可用以致使一或多個處理器
執行上述動作。一個這樣的計算機可讀媒體儲存有指令,當此些指令被一或多個處理器執行時致使一或多個處理器執行上述動作。
此技術可記錄管理資訊,例如,位於記憶體中不同平面的各單一的物理區塊擦除計數及/或有效計數,並參考此資訊以組合(配置)位於不同平面的至少一物理區塊以寫入外部資料、元資料及/或遷移的內部有效資料。需要注意的是,一個區塊的區塊資訊主要是指使用此區塊的相關資料包括擦除計數、有效計數、頁讀取計數、擦除延遲時間、未使用旗標、或CDB旗標,且區塊資訊可不包括區塊在所在的平面中的記憶體位置及/或一區塊編號(或一位置編號)。相較於在超級區塊中綁定物理區塊進行管理,本技術可以提高回收效率,減少資料遷移,減少物理區塊的擦除次數,解決因不必要的複製而導致的效能下降和使用壽命下降的問題。本技術可通過任何適當類型的控制器來實現,以提高記憶體的效率。控制器可為記憶體的一部分、設置在耦合到記憶體的主機中或或者從外部耦合到主機和記憶體及/或與主機協作。控制器可包括快閃記憶體轉換層(flash translation layer,FTL)管理。
本技術可應用於各種記憶體類型,諸如單階儲存單元(single-level cell,SLC)裝置、多階儲存單元(multi-level cell,MLC)裝置(如雙階儲存單元(2-level cell)裝置、三階儲存單元(triple-level cell)裝置)、四階儲存單元(quad-level cell,QLC)裝置,或其任何合適的組合。本技術可應用於各種類型的非揮發性記憶體系統,諸如NAND快閃記憶體、NOR快閃記憶體、相變化記憶體(phase-change memory,
PCM)等。額外地或可替代地,此技術可應用於各種類型的裝置和系統,例如安全數位(secure digital,SD)卡、嵌入式多媒體卡(embedded multimedia card,eMMC)、固態硬碟(solid state drive,SSD)、嵌入式系統、硬碟、光碟、磁帶或其他。系統可為混合系統、包括以上多種類型的儲存裝置。
所揭露的一或多個實施方式的細節將在底下搭配所附圖式進行說明。藉由說明書、圖式和申請專利範圍,本發明的其他特徵、方面和優點將變得顯而易見。
100‧‧‧系統
110‧‧‧裝置
112‧‧‧裝置控制器
113‧‧‧處理器
114‧‧‧內部記憶體
116‧‧‧記憶體
120‧‧‧主機裝置
202‧‧‧超級區塊
400‧‧‧區塊資訊表
表1、表2‧‧‧擦除資訊表
702~708、802~812、902~908、1002~1006、1304~1308、1402~1410‧‧‧步驟
第1圖繪示依據一或多個實施例的用以管理記憶體的系統一例。
第2A圖繪示依據一或多個實施例的記憶體中被指定的超級區塊的一例。
第2B圖繪示依據一或多個實施例的記憶體中被指定的超級區塊的另一例。
第3圖繪示依據一或多個實施例的管理記憶體中的區塊的一例的狀態圖。
第4圖繪示依據一或多個實施例的一平面的區塊資訊表的一例。
第5圖繪示依據一或多個實施例基於未使用區塊計數指定一超級區塊的技術的一例。
第6圖繪示依據一或多個實施例頻寬與未使用區塊群組之間關係的一例。
第7圖繪示依據一或多個實施例決定一超級區塊的組成的程序的一例。
第8圖繪示依據一或多個實施例於一平面中選取一犧牲者區塊的一例。
第9圖繪示依據一或多個實施例藉由一緊急策略選取一犧牲者區塊的程序的一例。
第10圖繪示依據一或多個實施例藉由依照需求策略的選取一犧牲者區塊的程序的一例。
第11圖繪示依據一或多個實施例回收操作的一例。
第12A圖繪示依據一或多個實施例回收操作中的資料遷移步驟的一例。
第12B圖繪示依據一或多個實施例回收操作中的釋放區塊步驟的一例。
第12C圖繪示依據一或多個實施例回收操作中的選取犧牲者區塊步驟的一例。
第13圖繪示依據一或多個實施例定位一超級頁的程序的一例。
第14圖繪示依據一或多個實施例用於管理記憶體中的超級區塊的區塊配置的程序的一例。
第1圖繪示的例子是用於管理記憶體的一系統100。系統100包括一裝置110以及一主機裝置120。裝置110包括一裝置控制器112以及一記憶體116。裝置控制器112包括一處理器113以及一內部記憶體114。
在一些實施例中,裝置110是一儲存裝置。例如,裝置110可為一嵌入式多媒體卡(embedded multimedia card,eMMC)、一安全數位(secure digital,SD)卡、一固態硬碟(solid state drive,SSD)或其他適合的儲存件。在一些實施例中,裝置110是一智慧型手錶、一數位相機或一媒體撥放器。在一些實施例中,裝置110是耦接至主機裝置120的一客戶端裝置。例如,裝置110是主機裝置120為一數位相機或一媒體撥放器中的一SD卡。
裝置控制器120可為一通用微處理器或一專用微控制器。在一些實施例中,裝置控制器112是用於裝置110的一記憶體控制器。之後的段落描述的技術所基於的實施例中裝置控制器112是一記憶體控制器。然而,描述於之後段落的技術也可應用於裝置控制器112為不同於記憶體控制器的其他類型的控制器的實施例中。裝置控制器112也可包括在主機裝置120中,或是從外部耦接於主機裝置120或裝置110。
處理器113是用以執行指令及處理資料。指令包括韌體指令及/或以韌體碼及/或其他程式碼分別儲存於內部記憶體114的其他程式指令。資料包括對應於韌體的資料及/或在適合的資料中由處理器執行的其他程式。在一些實施例中,處理器113是一通用微處理器或一
專用微控制器。處理器113也可指一中央處理器(central processing unit,CPU)。
處理器113從內部記憶體114中存取指令及資料。在一些實施例中,內部記憶體114是一靜態隨機存記憶體(Static Random Access Memory,SRAM)或一動態隨機存記憶體(Dynamic Random Access Memory,DRAM)。例如,在一些實施例中,當裝置110是一eMMC、一SD卡或一智慧型手錶,內部記憶體114是一SRAM。在一些實施例中,當裝置110是一數位相機或一媒體撥放器,內部記憶體是一DRAM。
在一些實施例中,內部記憶體是包括於裝置控制器112中的一快取記憶體,如第1圖所示。內部記憶體114儲存有對應於由處理器113執行的指令的指令碼,及/或處理器113在運行期間所要求的資料。
裝置控制器112從記憶體116傳送指令碼及/或資料到內部記憶體114。在一些實施例中,記憶體116是用以長期儲存指令及/或資料的一非揮發性記憶體,例如一NAND快閃記憶體裝置或其他適合的非揮發性記憶體裝置。在記憶體116為NAND快閃記憶體的實施例中,裝置110是一快閃記憶體裝置,例如一快閃記憶體卡,且裝置控制器112是一NAND快閃記憶體控制器。例如,在一些實施例中,當裝置110是一eMMC或一SD卡,記憶體116是一NAND快閃記憶體;在一些實施例中,當裝置110是一數位相機,記憶體116是一SD卡;以及在一
些實施例中,當裝置110是一媒體撥放器,記憶體116是一硬碟。僅為了說明的目的,之後的敘述以記憶體116是NAND快閃記憶體為例。
當於下文進一步描述細節時,裝置控制器112是用於記憶體116中的超級區塊的區塊配置管理。裝置控制器112可保存基於個別物理區塊的區塊資訊、而不是一整個超級區塊、基於一策略(例如基於擦除計數)在一平面中選擇一空閒區塊、組合位於不同平面的至少一區塊為一超級區塊、及/或基於一策略(例如基於貪婪、刷新或壽命)在一平面中選擇一犧牲者區塊。裝置控制器112可回應於一需求,例如來自主機裝置120的寫入外部資料的一請求,指定一超級區塊或分配一超級區塊、從一犧牲者區塊遷移有效資料、及/或儲存記憶體116的元資料(meta data)。
資料可以在一安全等級、一內部系統等級或一通常資料等級上被特徵化。在通常資料等級上,資料可基於寫入或讀取頻率被特徵化為具有一「熱度」等級。例如,資料的熱度等級可被分級從(1)經常被寫入及讀取的資料、(2)經常被寫入但不常被讀取的資料、(3)經常被讀取但不常被寫入的資料、至(4)不常被寫入及讀取的資料,依序遞減。在安全等級上,資料可包括安全或可靠資料,可被視為熱資料。在內部系統等級上,資料包括系統管理資料,可被視為熱資料。
裝置控制器112可用於超級區塊中的資料配置管理,如與本揭露同時提出申請的美國專利申請”MANAGING DATA ARRANGEMENT IN SUPER BLOCKS”所描述,其內容經引用結合於此。例如,裝置控制器112可依據資料的特徵(例如熱或冷)分類資料並
在編程一超級頁時藉由特徵分散資料以將具有相同特徵的資料聚集在一物理區塊中。特別地,裝置控制器112可基於策略,例如未使用區塊計數/平面的擦除計數配置資料位置,以平均地分散具有不同特徵的資料至不同的平面,並聚集具有類似特徵例如相鄰邏輯位址/存取頻率的資料至同一個平面。在本文中特徵(character)及特徵(characteristic)將被互換的使用。
第2A圖繪示於一記憶體中指定超級區塊的一例。記憶體可為第1圖所示的記憶體116。記憶體可包括一或多個記憶體裝置。在一些實施例中,記憶體包括多個晶片(die)。各晶片可為一記憶體晶片(memory chip),且可包括多個記憶體陣列及外設電路於其上。一記憶體陣列可包括多個平面,各平面包括具有多個物理區塊的記憶胞。各物理區塊可包括可儲存多個扇片的資料的多個頁的記憶胞。
來自一共同平面的兩個物理區塊無法同時***作(例如擦除),但來自兩個不同平面的兩個物理區塊可同時***作。一超級區塊可被例如像第1圖所示的控制器112的一記憶體控制器指定,以組合位於不同平面的至少一物理區塊。超級區塊中的各物理區塊來自不同平面,也就是說,任何平面不可提供多於一個的區塊給超級區塊。超級區塊包括多個超級頁(super page),各超級頁組合對應於在超級區塊中的多個物理區塊的多個頁。超級頁中的各頁可具有於與各自對應的物理區塊中的一相同頁編號。一個超級頁可通過同時編程超級頁中的所有頁而被編程。
如第2圖所示,記憶體包括從晶片#0到晶片#x-1的x個晶片。晶片#0包括從平面#0到平面#i-1的i個平面,且各平面包括mi+1個物理區塊,其中0,1,...,或m是指示一個對應的區塊在平面中的物理位置的一位置編號。晶片#i-1包括從平面#0到平面#j-1的j個平面,各平面包括n+1個物理區塊,其中0,1,...,或n是指示一個對應的區塊在平面中的物理位置的一位置編號。x、i及j是大於1的整數且m及n是大於0的整數,其中i等於j或i不等於j,m等於n或m不等於n。在一些例子中,記憶體包括多個晶片,且各晶片包括一平面。
在一些例子中,一超級區塊包括具有一相同的位置編號的多個區塊。一超級區塊可包括來自記憶體的各晶片的各平面的一個區塊;這提供最大頻寬。例如,如第2A圖所示,超級區塊202包括來自記憶體的各個平面的位置編號0的區塊。然而,一超級區塊可包括少於所有平面,例如來自少於所有晶片或少於一晶片中所有平面的位置編號0的區塊。因此,超級區塊204具有少於超級區塊202的區塊(數量),且超級區塊204具有較小的頻寬。超級區塊206只包括一個物理區塊例如來自一平面(例如晶片#0的平面#0)的區塊#m。
在一些例子中,一超級區塊組合來自不同平面中具有不同位置編號的物理區塊。如第2B圖所示,示例的超級區塊250組合來自晶片#0的平面#0的區塊#5、來自晶片#0的平面#1的區塊#18、來自晶片#1的平面#0的區塊#66以及來自晶片#1的平面#1的區塊#21。超級頁252組合來自超級區塊250中的四個區塊中的頁。此四個頁具有一相同頁編號於各自的區塊中,且於超級頁252被編程時可同時地被編程。
在一些例子中,一超級區塊組合來自不同平面具有相同記憶體類型的區塊,例如,SLC、MLC、TLC或QLC。在一些例子中,一超級區塊組合來自不同平面具有不同記憶體類型例如混合SLC及MLC的區塊。
如下面進一步詳細敘述的,超級區塊可被部署來寫入更新資料,例如來自主機裝置的資料的記憶體外的資料,或遷移有效資料,例如記憶體內的資料,或寫入元資料,例如快閃記憶體轉換層(FTL)管理資料。如果超級區塊無法再被寫入/遷移,組合的區塊也可被釋放。
第3圖繪示記憶體中管理區塊的示意圖300的一例。記憶體可為第1圖所示的記憶體116,且可被一控制器例如第1圖所示的控制器112管理。示意圖300說明了藉由一控制器進行記憶體中超級區塊組成方法的概略情況。
記憶體包括多個平面,各平面具有一或多個物理區塊。雙級設置可被用來分類以控制記憶體中的物理區塊。第一級是單一區塊級,其中為資料區塊,未使用區塊(例如,空閒區塊或空的區塊)和「犧牲者」區塊。如下面進一步詳細描述的,犧牲者區塊是要被回收到未使用區塊中的區塊。第二級是超級區塊級,其中超級區塊是開放資料寫入的目前資料區塊(current data block,CDB)。
例如在一開始,當記憶體被初始化,記憶體中的物理區塊被放入以單一區塊層級管理的未使用區塊群組302。控制器保存未使用區塊群組302中的個別物理區塊的區塊資訊。區塊資訊將在第4及4B圖中進一步說明。
控制器可基於平面的各物哩區塊的區塊資訊從各平面選擇不多於一個物理區塊並組合所選物理區塊以獲得一超級區塊。超級區塊包括來自平面組合的至少一物理區塊。在一些例子中,控制器可從一平面選擇二或多個物理區塊(例如SLC區塊)到超級區塊。第5A到7圖說明超級區塊的組合(或選擇)的不同實施例或策略。控制器可在記憶體中組合一或多個超級區塊(或目前資料區塊(CDB))。CDB是位於以超級區塊層級管理的目前資料區塊群組304。
當一超級區塊(或一目前資料區塊)無法再儲存更多資料時,目前資料區塊會被釋放為單一的物理區塊,並被放到以單一區塊層級管理的資料區塊群組306中。
依據如第8至10圖進一步說明的的一或多個策略,資料區塊群組306中的一資料區塊可被指派為一犧牲者區塊。犧牲者區塊被放置在以單一區塊層級管理的犧牲者區塊群組308中。
如在第11至12C圖中進一步說明的,可對犧牲者區塊群組308中的一或多個犧牲者區塊執行一回收操作。犧牲者區塊中的有效資料可被遷移至目前區塊群組304中的一或多個超級區塊(或CDB)。於是一個填滿無效資料的犧牲者區塊可被釋放(例如擦除),而成為放置於未使用區塊群組302的未使用區塊。
如上所述,目前資料區塊群組304是以超級區塊層級管理,而各未使用區塊群組302、資料區塊群組306及犧牲者區塊群組308是以單一區塊層級管理。在這種方式下,此記憶體可被精細地管理,並能夠增進或最佳化記憶體的效能。
第4圖繪示記憶體中的一平面的區塊資訊表400的一個示例。記憶體可為第1圖所示的記憶體116,且平面可為第1圖所示的任何平面(例如晶片#0的平面#0)。平面可包括N-1個物理區塊。各平面可具有各自獨立於記憶體中其他平面的的表。一記憶體控制器(例如第1圖所示的控制器112)可為記憶體中的各平面管理區塊資訊表。如表400所示,區塊資訊可包括將在底下說明的多個參數(因子)。
一CDB旗標區域指示一單一區塊是否在一目前資料區塊(CDB)中。當CDB旗標為真(true),此單一區塊是在CDB中。當CDB旗標為假(false),此單一區塊不在CDB中,且可為一資料區塊(例如在如第3圖所示的資料區塊群組306中)或為一未使用區塊(例如在如第3圖所示的未使用區塊群組302中)。
未使用旗標區域可指示一單一區塊是否是一未使用資料區塊。當未使用旗標為真,此單一區塊可被撿取至一目前資料區塊,且此單一區塊的有效計數及讀取計數會被設為0。當未使用旗標為假,此單一區塊可為CDB或資料區塊群組的一資料區塊中。
擦除計數區域是用以記錄擦除操作被執行在一單一區塊的次數。當擦除次數在一閥值之下,此單一區塊可被認為是一緊急區塊或已經磨損的一損壞區塊。
有效計數區域是用以記錄一單一區塊中儲存的有效資料的數量。有效計數越大,儲存的有效資料越多,這代表剩餘越少的未使用次數以及此單一區塊會越塊被用上或程為資料區塊群組中的一
資料區塊。一平面的一總和有效計數(或有效計數的總數)為此平面中所有區塊的有效計數的總和。
頁讀取計數(read count by page)記錄在一單一區塊中有多少頁被讀取過。讀取計數也可記錄此單一區塊被讀取過幾次,也就是執行於此單一區塊上的讀取操作的次數總和。
例如,在第4圖中,對於單一區塊編號1,CDB旗標為真(true),未使用旗標為假(false),擦除計數為6,有效計數為102,以及頁讀取計數分別為100、54、...、77。對於區塊編號N-1,CDB旗標為假,未使用旗標為真,擦除計數為5,有效計數為0,以及頁讀取計數皆為0。
區塊資訊也可包括各單一區塊的擦除延遲時間,擦除延遲時間記錄此單一區塊上次被擦除的時間點到目前時間點之間的時間。表1顯示擦除資訊表的一例,擦除資訊表包括擦除排序(例如從最新一次到第十新的一次)以及相關的權重(%)。擦除排序越小,權重越高。例如,如表1所示,擦除排序從最新一次到第十新的一次,權重分別為90%、80%、70%、...、0%。
表2顯示擦除資訊表的另一例,擦除資訊表包括擦除延遲時間以及相關的權重(%)。擦除延遲時間越少,權重越高。如表2所示,擦除延遲時間(erase delay time,EDT)少於一分鐘的權重為100%,擦除延遲時間少於三分鐘的權重為60%,擦除延遲時間少於十五分鐘的權重為30%,擦除延遲時間少於二小時的權重為10%,以及擦除延遲時間大於或等於二小時的權重為0。
表1及/或表2的擦除資訊表可被用以避免短時間內頻繁地擦除區塊。因短時間內頻繁地擦除區塊可能導致記憶胞嚴重磨損。在一些例子中,「排序(order)」及「延遲時間(delay time)」(即擦除延遲時間)可被用作阻止選取一空閒區塊及/或一犧牲者區塊的標準。例如,選取一空閒區塊時,控制器可取得各空閒區塊的個別的擦除計數,並參考表1或表2以取得空閒區塊的權重。接著,對於各空閒區塊可藉由將自各的權重乘上一個數字(例如所有空閒區塊的擦除計數中的最大者)計算出各自對應的一個加權數字(weighted number)。控制器可藉由比較計算出的加權數字選取一空閒區塊。例如,用於一特定的區塊的值可被計算為此區塊的擦除計數與此區塊的權重數字的和。例如,控制器可選取一空閒區塊,此空閒區塊的擦除計數與權重數字的和為空閒區塊中最小的。
在一些例子中,控制器可依據相似於選取一空閒區塊的程序選擇一犧牲者區塊。控制器可取得各候選犧牲者區塊的個別的擦除計數,並參考表1或表2以取得候選犧牲者區塊的個別的權重。接著,對於各候選犧牲者區塊可藉由將自各的權重乘上一個數字計算出各自對應的一個加權數字。控制器可藉由比較候選犧牲者區塊的個別的有效計數與個別的權重數字的和選擇一犧牲者區塊。例如,控制器可選擇一犧牲者區塊,此犧牲者區塊的有效計數與權重數字的和是候選犧牲者區塊中最小的。
第5圖繪示基於未使用區塊計數指定一超級區塊的技術500的一例。超級區塊組合來自具有相近的未使用區塊計數的平面的物理區塊。如第5圖所示,超級區塊組合來自晶片#0及晶片#1的四個不同的平面的四個物理區塊。各平面的未使用區塊計數分別為5、10、6及8。
如上所述,資料可根據各自的特徵(例如熱度/冷度)被特徵化。如第5圖所示的示例,要被寫入的資料包括四個群組的資料:第一熱資料、第二熱資料、溫資料及冷資料。此四個群組的資料可基於各自的特徵及超級區塊中的資料區塊的特徵而被配置到超級區塊的超級頁中個別的頁。在一些例子中,具有未使用區塊計數少於其他平面的平面可比其他平面具有更多有效資料。由於熱資料比冷資料更容易成為無效資料,熱資料會被放進具有未使用區塊計數較其他平面低的平面的區塊中。在這種方式下,區塊可更簡單地被回收為未使用區塊,且未使用區塊計數可被平衡。如第5圖所示,第一熱資料被配置到具有未使用區塊計數5的晶片#0的平面#0的區塊中,第二熱資料被配置到具
有未使用區塊計數6的晶片#1的平面#0的區塊中,溫資料被配置到具有未使用區塊計數8的晶片#1的平面#1的區塊中以及冷資料被配置到具有未使用區塊計數10的晶片#0的平面#1的區塊中。
表3顯示基於擦除計數指定超級區塊的技術的一例。首先,各平面中的物理區塊中具有最小擦除計數的一單一未使用區塊被選擇。接著,若一特定所選區塊的擦除計數遠大於其他所選區塊,此特定區塊會被放棄,也就是,不會被選取或組合到超級區塊中。
在一些實施例中,一閥值是基於從平面的所選區塊的擦除計數決定。若一特定所選區塊具有大於所決定的閥值的擦除計數,此特定所選區塊會被放棄,也就是說,不被使用於超級區塊;若一特定所選區塊具有不大於所決定的閥值,此特定所選區塊會被組合到超級區塊中。
如表3所示,來自四個平面的各所選區塊的擦除計數分別為5、6及51。閥值可被決定為擦除計數的平均值再乘上一係數。此係數可為一常數(例如依據經驗資料預先決定)。例如,係數為2,且閥值為33。只有來自晶片#1的平面#1的所選區塊具有大於閥值的擦除計數51。因此,來自晶片#1的平面#1的所選區塊被放棄。其他三個所選區塊可被組合到超級區塊。
表4顯示基於有效計數平衡指定超級區塊的技術的一例。首先,各平面的物理區塊的有效計數被加總以獲得各平面的一個別的總和有效計數(有效計數總計或有效計數總和)。接著,比較平面的個別的有效計數總和且基於比較的結果,決定是否為超級區塊從此些平面的其中之一選擇一物理區塊。若一平面具有遠大於其他平面的有效計數總和,來自此平面的一物理區塊將被決定不包括在超級區塊中。在一些例子中,一閥值可基於平面的個別的有效計數總和決定,且藉由比較各平面的有效計數總和與閥值分別決定是否為超級區塊選擇來自各平面的物理區塊。
如表4所示,晶片#0的平面#0的有效計數總和為3452,晶片#0的平面#1的有效計數總和為3500,晶片#1的平面#0的有效計數總和為6980以及晶片#1的平面#1的有效計數總和為3587。由於6980遠大於其他有效計數總和,故控制器不會選擇來自晶片#1的平面#0的物理區塊。
第6圖繪示頻寬與未使用區塊群組的關係600的一例。在情境(a)中,未使用區塊群組包括來自晶片#0的平面#0及平面#1的未使用區塊以及來自晶片#1的平面#0及平面#1的未使用區塊。各平面中的未使用區塊的最小的擦除計數EC分別為12、12、10及10。依據表3所
示的技術,各平面中具有最小擦除計數的區塊會被組合以獲得一超級區塊(或一目前資料區塊)。因此,超級區塊包括來自四個平面的四個單一區塊,且超級區塊中的各超級頁包括此四個單一區塊的四個頁。也就是說,超級頁具有一最大頻寬4。
在情境(b)中,未使用區塊群組包括來自晶片#0的平面#0及平面#1的未使用區塊以及來自晶片#1的平面#0及平面#1的未使用區塊。依據表3所示的技術,由於各平面中的未使用區塊的最小的擦除計數EC分別為12、12、44及10,44遠大於其他擦除計數,因此晶片#1的平面#0中不會有區塊被選取。三個區塊來自其他三個平面會被選取以獲得一超級區塊(或一目前資料區塊),此三個區塊為具有個平面中最小的擦除計數的區塊。因此,超級區塊包括來自此三個平面的三個單一區塊,超級區塊中的超級頁包括此三個單一區塊中的三個頁。也就是說,此超級區塊具有一較少的頻寬3。
一個超級區塊的組合可依據多個因子決定,包括:區塊的記憶體類型(例如SLC、MLC、TLC、QLC或其組合)以滿足一需求、擦除延遲時間以減少損害、擦除計數總和以平衡負載,以及各擦除計數以分級磨損程度。記憶體控制器可參考一或多個所述因子以從不同的平面選取空閒或未使用區塊(例如依據優先度及/或公式)。對於不同的記憶體,優先度及/或公式也可有所不同。
第7圖繪示程序700的一例,程序700用以依據一優先度為記憶體決定一超級區塊的組合。記憶體可為第1圖所示的記憶體116。程序700可藉由一控制器(例如第1圖所示的控制器112)執行。
不具有擦除計數的最大值的平面會被選擇(702),且空閒區塊從此些平面中選擇。如表3中所說明的,依據技術,具有擦除計數的最大值的區塊的平面(例如表3中晶片#1的平面#1)會被放棄。不具有擦除計數的最大值的平面(例如表3中晶片#0的平面#0及平面#1以及晶片#1的平面#1)會被選擇到超級區塊中。
在所選平面中選擇不具有一最小擦除延遲時間的空閒區塊的候選者(704)。如表2中所說明的,選擇具有較長擦除延遲時間的區塊是有利於減少損害的。在各所選平面中,區塊中具有一最小擦除延遲時間的空閒區塊會被放棄,且平面中的其他空閒區塊可被選取為超級區塊的空閒區塊的候選者。在一些例子中,擦除延遲時間的一閥值(例如可預先決定為一小時),以及具有大於閥值的擦除延遲時間的空閒區塊可被選擇為超級區塊的空閒區塊的候選者。
從候選者中選擇各平面中具有一最小擦除計數的一空閒區塊(706)。此步驟可根據表3的技術而被執行。
所選空閒區塊的區塊類型藉由一需求被決定,以及所選空閒區塊被組合為超級區塊(708)。區塊的記憶體類型(例如SLC、MLC、TLC、QLC或其組合)可基於需求而被決定。接著,各所選空閒區塊可基於各自被決定的記憶體類型被擦除並組合為超級區塊。
第8圖繪示於記憶體中的一平面選取一犧牲者區塊的程序800的一例。記憶體可為第1圖所示的記憶體112。如底下所說明的,控制器可藉由一或多個策略於一平面中選取一犧牲者區塊。
控制器判斷此平面中的未使用區塊的數量是否少於一第一閥值(例如一緊急回收閥值)(802)。控制器可藉由監看平面的一區塊資訊表(例如第4圖中的區塊資訊表400)管理未使用區塊群組(例如第3圖中的未使用區塊群組302)。
若控制器判斷此平面中的未使用區塊的數量少於第一閥值,控制器執行一貪婪(greedy)策略,其中貪婪策略為選取相較於平面中其他區塊具有最小的有效計數的一單一區塊為一犧牲者區塊(804)。
若控制器判斷此平面中的未使用區塊的數量不少於第一閥值,控制器判斷是否發生一緊急區塊(806)。在一些例子中,控制器可在運行期間標記一區塊為緊急區塊。回應於此平面中的未使用區塊的數量不少於第一閥值的判斷,控制器可檢查是否存在任何緊急區塊。
在一些例子中,例如第9圖所示,回應於此平面中的未使用區塊的數量不少於第一閥值的判斷,控制器檢查各個區塊以判斷是否有一損壞區塊或一單一區塊中的錯誤位元數量達到一閥值。若控制器判斷存在一緊急區塊,控制器執行一緊急(urgent)策略,其中緊急策略為選取緊急區塊為一犧牲者區塊(808)。
第9圖繪示依據一緊急策略選取一犧牲者區塊的程序900的一例。控制器(例如第8圖中的控制器)判斷是否有任何區塊曾發生過編程失敗(902)。若控制器判斷有區塊曾發生過編程失敗,控制器選取此區塊為一犧牲者區塊(904)。
若控制器判斷沒有區塊曾發生過編程失敗,控制器進一步判斷是否有任何區塊的錯誤位元的數量達到一第一閥值(906)。第一閥值可為一磨損閥值,磨損閥值可預先選定以指示磨損的區塊。第一閥值是用以檢查一區塊的耐久度問題。各區塊具有一編程/擦除(program/erase,P/E)極限週期。當一區塊被過度使用,此區塊中的資料被認為是容易失真的,且資料的錯誤位元述可能會很多。若一個區塊中的錯誤位元的數量達到第一閥值,此區塊可被認為是已磨損或是一損壞區塊或存在耐久度問題。若控制器判斷一區塊中的錯誤位元數量達到第一閥值,控制器選取此區塊為一犧牲者區塊(904)。
當控制器判斷沒有區塊中的錯誤位元的數量達到第一閥值,控制器判斷是否有任何區塊的錯誤位元數量達到一第二閥值(908)。第二閥值可為一刷新閥值,且是用以檢查讀取干擾及/或保存問題。若一區塊中的錯誤位元數量達到一第二閥值,此區塊中的資料需要被遷移到其他區塊以確保資料的正確性,於是此區塊會被回收到未使用區塊群組中。第二閥值小於第一閥值。若控制器判斷沒有區塊的錯誤位元的數量達到第二閥值,程序900結束。若控制器判斷有區塊的錯誤位元數量達到第二閥值,控制器選取此區咼為一犧牲者區塊(904)。
在一些例子中,程序900由控制器執行以判斷是否存在一緊急區塊。若控制器判斷有區塊曾發生編程失敗,控制器可標記此區塊為緊急區塊。若控制器判斷有區塊的錯誤位元數量達到第一閥值,控制器可標記此區塊為緊急區塊。若控制器判斷有區塊的錯誤位
元數量達到第二閥值,控制器可標記此區塊為緊急區塊。如上所述,在第8圖的步驟806中,控制器可檢查是否有任何區塊被標記為緊急區塊。
回到第8圖,若控制器判斷沒有緊急區塊,控制器判斷未使用區塊的數量是否少於一第二回收閥值(810)。第二回收閥值可被認為是一「貪婪」回收閥值。第二回收閥值大於第一回收閥值。若控制器判斷未使用區塊的數量少於第二回收閥值,程序800繼續到步驟804,也就是說,控制器執行貪婪策略(選取此平面中相較於其他區塊具有最小有效計數的一單一區塊為一犧牲區塊)。
若控制器判斷未使用區塊的數量不少於第二回收閥值,控制器執行依照需求(on-demand)策略(812),例如將在第10圖進一步說明的。對於依照需求策略,控制器可參考一或多個因子清單以藉由一優先度或一公式選取一犧牲者區塊。因子清單可包括擦除計數、此平面中犧牲者區塊的數量、擦除延遲時間、區塊類型、有效計數、頁讀取計數以及一邏輯與實體對應表(logical to physical table,L2P table)中與此平面相同的其他犧牲者區塊的數量。因子清單可被保存於此平面的一區塊資訊表(例如第4圖的表400、表1的表1及/或表2的表2)。
在一些例子中,可決定此平面中各單一區塊的一權重值。控制器可選取具有權重值達到一閥值的一單一區塊為一犧牲者區塊。若沒有單一區塊達到此標準,控制器判斷不選取此平面中任何區塊為犧牲者區塊。
第10圖繪示依據一依照需求策略選取一犧牲者區塊的程序1000的一例。程序1000可由一控制器(例如第8圖中的控制器)執行。
控制器選擇具有一或多個犧牲者區塊的一平面(1002)。接著控制器為此平面中的各區塊計算個別的權重值以縮小犧牲者區塊的候選者(的數量)(1004)。控制器可基於此平面的區塊資訊表中的一或多個因子計算權重值。因子可包括區塊類型、有效計數及/或擦除延遲時間。在本揭露中,具有較小權重值的區塊較適合被選為犧牲者區塊。
在一些例子中,因子包括區塊類型及有效計數,這可被用最大化資料遷移的好處。例如,假設一區塊若被設置為SLC可儲存100單位,若被設置為MLC可儲存200單位,若被設置為TLC可儲存300單位。對於此平面中的一區塊,權重值可為有效計數/每一記憶胞的位元數,其中每一記憶胞的位元數是基於一區塊類型。若此區塊具有小於一閥值的權重值,控制器可選擇此區塊為犧牲者區塊的候選者。
在一些例子中,因子包括擦除延遲時間,這可被用來縮小頻繁擦除帶來的損害。如表2中的擦除資訊表2所示,擦除延遲時間越短,此區塊的權重值越大,且此區塊被選為犧牲者區塊的機率越低。在一些例子中,若一區塊的擦除延遲時間的權重小於一閥值,控制器可選取此區塊為犧牲者區塊的候選者。
在一些例子中,因子可包括區塊類型、有效計數及擦除延遲時間。一區塊的權重值可被表示為如下所示的一公式:
權重值=擦除延遲時間的權重*n+有效計數/每一記憶胞的位元數,其中n為一整數。為避免選到一個具有短(或小)擦除延遲時間的區塊,n可為大於一的整數(例如2)。控制器可將所計算出的此區塊的權重值與一閥值進行比較。當權重值小於閥值,控制器可選擇此區塊為犧牲者區塊的候選者。
在犧牲者區塊的候選者之間,若有一犧牲者區塊的候選者具有相同於邏輯與實體對應表(L2P)中的候選者的一最大數量的其他犧牲者區塊(例如在與候選者相同的記憶體分割中),控制器選擇此候選者為一犧牲者區塊(1006)。
依據第8-10圖所述的一或多個策略,資料區塊群組(例如第3圖的資料區塊群組306)中的一或多個區塊可被選取或指派為犧牲者區塊。犧牲者區塊可藉由一回收操作被回收。
第11圖繪示回收操作1100的一例。二個犧牲者區塊分別在晶片#0及晶片#1中,各犧牲者區塊包括二頁有效資料(在第11圖中,非共享且標記為「1」),其餘的資料為無效。來自此二犧牲者區塊的此四頁有效資料被一起遷移至超級區塊,犧牲者區塊中的有效資料變為無效資料,於是此二犧牲者區塊被無效資料所填滿,而可以被釋放(例如擦除)以成為未使用區塊。
回收操作可基於一或多個優先策略被執行。在一些例子中,一個緊急類型的犧牲者區塊可被指定為高優先度。犧牲者區塊可從一緊急區塊選取。在一些例子中,如第8圖的步驟802所說明的,若一平面中未使用區塊的數量少於一緊急回收閥值,將需要迅速地釋放
此平面中的犧牲者區塊為未使用區塊。因此,此些犧牲者區塊可被指定為高優先度。
在一些例子中,如第8圖的步驟810所說明的,若一平面中的未使用區塊的數量少於一貪婪回收閥值,一「廢棄物收集」會依據一貪婪策略觸發。貪婪回收閥值高於緊急為收閥值,且藉由貪婪策略所選取的犧牲者區塊可具有一低於藉由緊急策略所選取的犧牲者區塊的優先度。
在一些例子中,具有相同邏輯群組(例如在相同的L2P表)的犧牲者區塊會有相同的優先度,且犧牲區塊中的資料可被聚集在一起以遷移,這將能減少邏輯與實體對應表(L2P)額外寫入次數,降低元資料超出(metadata overhead)。
第12A-12C圖繪示由控制器執行的回收操作的步驟的一例。第12A圖繪示回收操作中的資料遷移的步驟1200的一例。如第12A圖所示,晶片D#0的平面P#0有三個犧牲者區塊,晶片D#0的平面P#1有二個犧牲者區塊,晶片D#1的平面P#0有一個犧牲者區塊,以及晶片D#1的平面P#1有一個犧牲者區塊。控制器可根據一或多個如前文說明的優先度策略安排資料的放置位置。在第12A圖中,晶片D#0的平面P#0有二頁有效資料、晶片D#0的平面P#1有一頁有效資料以及晶片D#1的平面P#0有一頁有效資料被選取以遷移至目前資料區塊中的一超級頁中,其中此超級頁包括四個單一區塊中的四個頁。所選頁在第12A圖中被標記為「1」。
第12B圖繪示回收操作中的區塊釋放步驟1230的一例。若一區塊被填滿無效資料(例如晶片D#0的平面P#1的區塊1232),
此區塊會被釋放(或擦除)並放置到晶片D#0的平面P#1的未使用區塊群組。
第12C圖繪示回收操作中選取犧牲者區塊的步驟1250的一例。在一犧牲者區塊被釋放(如第12B圖所示)後,控制器可繼續選取其他犧牲者區塊並持續遷移(資料)直到完成一回收觸發條件。例如,晶片D#1的平面P#1的區塊1252被控制器選取為犧牲者區塊,且可進一步被控制器選取以回收。如前所述,回收觸發條件可為在平面中的未使用區塊的數量不少於一緊急回收閥值或不少於一貪婪回收閥值或沒有緊急區塊需要被處理。
第13圖繪示依據需求分配超級頁的程序1300的一例。需求可包括從一主機裝置(例如第1圖的主機裝置120)寫入更新資料到一記憶體(例如第1圖的記憶體116)。程序1300可由一控制器(例如第1圖的控制器112)執行。需求也可包括遷移有效資料至記憶體及/或寫入像是用以管理快閃記憶體轉換層(Flash Translation Layer,FTL)的元資料。
控制器判斷是否有任何空白的超級頁適合儲存與需求的相關的資料(1302)。如前文所述,一超級區塊可在記憶體中被指定。此超級區塊包括多個超級頁。此超級區塊可包括一或多個物理區塊,所述物理區塊可具有相同或不同的區塊類型。
若控制判斷存在一或多個空白超級頁適合用以儲存此資料,程序1300結束且控制器可將資料編程到空白的超級頁。
若控制器判斷沒有空白的超級頁適合用以儲存此資料,控制器在記憶體的不同的平面中依據如前所述的一或多個策略選取至少一區塊(1304)。接著,控制器根據各單一區塊的特徵擦除各單
一區塊,各單一區塊的特徵是根據需求來決定(1306)。例如,若此需求需要儲存安全資料,一區塊可被擦除為一SLC區塊。若需求需要儲存串流資料,一區塊可被擦除為一MLC區塊。接著,控制器將來自平面的已被擦除的單一區塊組合為一超級區塊,其中來自此些平面的單一區塊中的單一頁會被組合為一或多個超級頁(1308)。此些超級頁可被用以儲存相關於此需求的資料。
第14圖繪示用於記憶體中的超級區塊組成方法的程序1400的一例。記憶體可為第1圖的記憶體116。記憶體可包括一或多個記憶體裝置且可具有至少二平面的物理區塊。程序1400可由一控制器(例如第1圖的控制器112)執行。控制器可用以管理記憶體中的超級區塊的區塊配置。
控制器保存平面中各物理區塊的區塊資訊(1402)。物理區塊的區塊資訊可包括一或多個參數,所述參數(因子)包括擦除計數、有效計數、頁讀取計數、擦除延遲時間、指示此物理區塊是否在一目前資料區塊的一第一旗標以及指示此物理區塊是否為一未使用區塊的一第二旗標。各平面可具有一區塊資訊表,此區塊資訊表儲存平面中的物理區塊的區塊資訊。平面的區塊資訊表可相互獨立。
控制器組合來自此些平面的至少一區塊為一超級區塊(1404)。控制器基於此些平面的物理區塊的區塊資訊於各平面中選取不多於一個物理區塊以獲得超級區塊。
在一些例子中,對於各平面,控制器被用以基於此平面的物理區塊的區塊資訊選擇一未使用物理區塊,此未使用區塊為此平
面的物理區塊中具有一最小擦除計數者。接著,控制器可用以基於從此些平面中所選的未使用物理區塊的擦除計數決定一閥值。回應於所選的未使用物理區塊具有大於所決定的閥值的一判斷,控制器可決定為超級區塊不選取所選的未使用物理區塊。回應於所選的未使用物理區塊具有不大於所決定的閥值的一判斷,控制器可決定為超級區塊選取所選的未使用物理區塊。
在一些例子中,控制器用以計算各平面的此些物理區塊各自的有效計數的一個別的總和,比較此些平面的此些有效計數的個別的總和,以及基於比較得出的一結果,決定是否為超級區塊從此些平面中選擇一物理區塊。例如,控制器可基於此些平面的有效計數的總和計算一閥值。若一平面的有效計數的總和達到此閥值,控制器可決定不從此平面選擇一物理區塊。若一平面的有效計數的總和不多於此閥值,控制器可決定從此平面選擇一物理區塊。
在一些例子中,控制器可用以從此些平面中選擇一平面,其中控制器在各平面中選取一未使用區塊,此未使用區塊具有小於其他區塊的擦除計數,且不具有此平面中的一最小擦除延遲時間。若所選的區塊的其中之一具有遠大於其他所選的區塊的擦除計數及/或具有遠小於其他所選的區塊的擦除延遲時間,控制器可決定不為超級區塊選取此未使用物理區塊。
超級區塊可被用以儲存更新資料、遷移資料或元資料。當控制器判斷超級區塊無法儲存更多資料時,控制器釋放控制區塊為個別的資料區塊(1406)。
控制器例如根據一或多個策略從此些平面中選取一或多個犧牲者區塊(1408)。在一些例子中,回應於平面中的未使用區塊的數量小於一第一回收閥值(例如一緊急回收閥值)的一判斷,控制器執行一貪婪策略,其中貪婪策略為在其中一個平面中選取具有一最小有效計數的物理區塊為犧牲者區塊。
在一些例子中,回應於平面中的未使用區塊的數量不少於一第一回收閥值且存在一緊急區塊的一判斷,控制器執行一緊急策略,其中緊急策略為選取此緊急區塊為一犧牲者區塊。控制器可用以藉由以下至少其中之一決定一物理區塊為一緊急區塊:此物理區塊曾發生過編程失敗、此物理區塊中的錯誤計數達到一第一閥值(例如針對耐久度問題的一磨損閥值)或此物理區塊中的錯誤計數達到一第二閥值(例如針對讀取干擾及/或保存問題的一刷新閥值)。
在一些例子中,回應於此平面中的未使用區塊的數量不小於一第二回收閥值的一判斷,控制器選取一物理區塊為一犧牲者區塊,此物理區塊具有達到一閥值的一權重值。物理區塊的權重值可基於一或多個參數(包括區塊類型、有效計數及擦除延遲時間)被計算出來。
在一些例子中,控制器用以從此些平面中選擇一平面。所選的平面可為此些平面中具有一最大數量的犧牲者區塊者。所選的平面也可具有多個物理區塊,且各此些物理區塊具有小於預先決定的閥值的一權重值。對於各此些物理區塊,控制器可計算此平面中犧牲區塊在相同於此區塊的一邏輯與實體對應表(L2P)的數量。控制器可選
取在同樣的L2P表中具有最大數量的犧牲者區塊的物理區塊為一犧牲者區塊。
控制器回收犧牲者區塊為未使用區塊(1410)。控制器可基於一或多個優先度策略執行一回收操作。控制器可用以基於回收優先度策略安排來自一或多個平面的一或多個犧牲者區塊中要被遷移的有效資料,接著同時遷移所述有效資料至一目前資料區塊(例如其他具有一或多個空閒超級頁的超級區塊)。接著,控制器可擦除不具有有效資料的犧牲者區塊以獲得未使用物理區塊。
在一些實施例中,控制器被用以決定要被寫入記憶體的資料的一或多個特徵。資料可包括來自記憶體外部的一裝置的至少一資料、來自記憶體要被遷移的有效資料或相關於記憶體的元資料。特徵可包括以下至少其中之一:一安全等級、一內部系統等級或一讀取及寫入頻率等級。
在一些例子中,控制器基於所決定的要被寫入的資料的特徵從各平面選取物理區塊以獲得超級區塊。
在一些例子中,控制器被用以回應於沒有空白超級頁可用以儲存此資料的一判斷,從各平面選取物理區塊,基於所決定的要寫入的資料的特徵擦除所選的物理區塊,以及組合來自此些平面的此些物理區塊的單一頁以獲得用以儲存此資料的一超級頁。
在一些例子中,控制器被用以:基於所決定的此資料的特徵分類此資料,基於所決定的此資料的特徵配置此資料至超級區塊
中的個別的物理區塊,以及編程此超級區塊的一或多個超級頁以儲存此資料。
所揭露的及其他例子可由一或多個計算機程序產品實現,例如編碼於一計算機可讀媒體的一或多個模組的計算機程序指令,可由資料處理裝置執行或用以控制資料處理裝置的操作。計算機可讀媒體可為一計算機可讀儲存裝置、一機器可讀儲存基板或上述一或多個的組合。「資料處理裝置」包括所有用以處理資料的裝置(apparatus、device)及機器(mechine),例如包括可編程處理器、一計算機或多處理器或計算機。裝置除了硬體之外可包括創造計算機程序所要求的一執行環境的程式碼(例如構成處理器韌體的程式碼)、一協議堆疊、一資料庫管理系統、一操作系統或上述的一或多個的組合。
系統包括所有用以處理資料的裝置(apparatus、device)及機器(mechine),例如包括可編程處理器、一計算機或多處理器或計算機。裝置除了硬體之外可包括創造計算機程序所要求的一執行環境的程式碼(例如構成處理器韌體的程式碼)、一協議堆疊、一資料庫管理系統、一操作系統或上述的一或多個的組合。
計算機程序(也被理解為程式、軟體、軟體應用程式、腳本或程式碼)可以任何形式的程式語言(包括編(compile)或譯(interpret)語言)寫成,且其可被以任何方式佈署(例如包括單獨程式或一模組、元件、子例行程序或其他適合用於一計算機環境的單位)。計算機程序不一定要對應於一文件或在一文件系統中。程式可被儲存於含有其他程式或資料的一文件的一部份(例如儲存於標記語言檔案的
一或多個腳本)或儲存於多個協作文件(例如儲存一或多個模組、子程式或部分程式碼的多個文件)。計算機程序可以佈署在一台計算機上,或者位於一個站點或跨多個站點分佈並通過網際網絡連接的多台計算機上執行。
本發明中描述的程序和邏輯流程可由一或多個可編程執行一或多個計算機程序的一或多個可編程處理器來執行,以執行在此描述的功能。處理和邏輯流程也可以由專用的邏輯電路(例如現場可編程閘陣列(field programmable gate array,FPGA)或特殊應用集成電路(application specific integrated circuit,ASIC)來實現。裝置同樣地也可以上述方式實現。
適合用以執行計算機程序的處理器例如包括通常或專用微處理器及任何類型的數位計算機的任何一或多個處理器。一般而言,處理器可接收指令及來自唯讀記憶體及/或隨機存取記憶體的一或多個資料。計算機的基本元件可包括用以執行指令的處理器及用以儲存指令及資料的一或多個記憶體裝置。一般而言,計算機也可包括用於儲存資料的一或多個大容量儲存裝置(例如磁碟、磁光碟或光碟)及/或操作性地耦接至一或多個大容量儲存資料以傳送或接收資料。然而,計算機不必定要具有這些裝置。適合用以儲存計算機程序指令及資料的計算機可讀媒體可包括所有形式的非揮發性記憶體、媒體及記憶體裝置,例如包括半導體記憶體裝置(例如EPROM、EEPROM及快閃記憶體裝置);磁碟。處理器及記憶體可由特殊目的邏輯電路輔助或併入特殊目的邏輯電路中。
雖然本文件描述了許多特定例子,但這些例子不應被用來限制本發明所要主張的範圍或可以被主張的範圍,而應被認為是對特定實施例的特定特徵的描述。相反地,在單個實施例的上下文中描述的各種特徵也可在多個實施例中單獨或以任何合適的子組合來實現。此外,儘管上文將特徵描述為在某些組合下起作用,即使最初主張如此,但是在一些情況下,來自所要求保護的組合的一或多個特徵可從該組合中刪除,並且所要求保護的組合可針對子組合或子組合的變形。相似地,儘管在圖式中以特定的順序描述操作,但這不應被理解為必須要以所示出的特定順序或順序執行這樣的操作,或者要執行所有示出的操作,以實現所要的結果。
本文僅公開了一些示例和實施方式。本領域具有通常知識者可基於所公開的內容對所描述的示例和實現以及其他實施做出變化、修改和增強。
Claims (19)
- 一種記憶體控制器,用於一記憶體的超級區塊的區塊配置管理,該記憶體控制器包括:控制電路,耦接至該記憶體,該記憶體具有至少二平面的物理區塊,該控制電路被用以:保存該些平面中的各該物理區塊的區塊資訊;以及基於該些平面中的該些物理區塊的該些區塊資訊組合來自該些平面的一或多個所述物理區塊為一超級區塊;其中,該物理區塊的該區塊資訊包括以下至少其中之一:擦除計數、有效計數、頁讀取計數、擦除延遲時間、用以指示該物理區塊是否在一目前資料區塊的一第一旗標或用以指示該物理區塊是否為一未使用區塊的一第二旗標。
- 如申請專利範圍第1項所述之記憶體控制器,其中對於各該平面,該控制電路是用以基於該平面的該些物理區塊的該些區塊資訊選取一未使用物理區塊,該未使用物理區塊為於該平面的該些物理區塊中具有一最小擦除計數者。
- 如申請專利範圍第2項所述之記憶體控制器,其中該控制電路被用以:基於從該些平面中所選的該些未使用物理區塊的該些擦除計數決定一閥值;回應於一所選的未使用物理區塊具有大於所決定的該閥值的一擦除計數的一判斷,決定不為該超級區塊選取所選的該未使用物理區塊;以及回應於一所選的未使用物理區塊具有不大於所決定的該閥值的一擦除計數的一判斷,決定為該超級區塊選取所選的該未使用物理區塊。
- 如申請專利範圍第1項所述之記憶體控制器,其中該控制電路被用以:計算各該平面中的該些物理區塊的該些有效計數的一個別的總和;比較該些平面的該些個別的總和;以及基於該比較的一結果,判斷是否要為該超級區塊從該些平面的其中之一選取一物理區塊。
- 如申請專利範圍第1項所述之記憶體控制器,其中該控制電路被用以:計算各該平面中的該些物理區塊的該些擦除計數的一個別的最大值;選取一平面,該平面具有小於該些擦除計數的該些個別的最大值的最大者的該些擦除計數的該個別的最大值;以及在所選的該平面中選擇未使用物理區塊,其中各該所選的未使用物理區塊的一擦除延遲時間大於該所選的平面中的該些物理區塊的該些擦除延遲時間的最小者;以及選取一物理區塊,該物理區塊為該些所選的未使用物理區塊中具有一最小擦除計數者。
- 如申請專利範圍第1項所述之記憶體控制器,其中該控制電路被用以:回應於該超級區塊無法再儲存更多資料的一判斷,釋放該超級區塊以獲得個別的資料區塊。
- 如申請專利範圍第1項所述之記憶體控制器,其中該控制電路被用以:回應於一平面中的未使用區塊的數量小於一第一回收閥值的一判斷,選取一物理區塊為一犧牲者區塊,該物理區塊在該平面中具有一最小有效計數。
- 如申請專利範圍第1項所述之記憶體控制器,其中該控制電路被用以:回應於一平面中的未使用區塊的數量不小於一第一回收閥值且該平面中存在一緊急區塊的一判斷,選取該緊急區塊為一犧牲者區塊。
- 如申請專利範圍第8項所述之記憶體控制器,其中該控制電路被用以依據以下至少其中之一決定一物理區塊為一緊急區塊:該物理區塊曾發生過一編程失敗、該物理區塊中的錯誤位元的數量達到一第一閥值、或者該物理區塊中的錯誤位元的數量小於該第一閥值且達到一第二閥值,該第二閥值小於該第一閥值。
- 如申請專利範圍第1項所述之記憶體控制器,其中該控制電路被用以:回應於一平面中的未使用區塊的數量不小於一第二回收閥值的一判斷,藉由比較一權重值與一閥值選取該平面中的一物理區塊為一犧牲者區塊,其中該物理區塊的該權重值是基於一或多個參數計算得出,該一或多個參數包括區塊類型、有效計數、擦除排序以及擦除延遲時間。
- 如申請專利範圍第1項所述之記憶體控制器,其中該控制電路被用以:計算各該平面的該些犧牲者區塊的一個別的數量;選取一平面,該平面為該些平面中具有該些犧牲者區塊的該些個別的數量的最大者,該所選的平面包括一或多個其他物理區塊,該一或多個其他物理區塊具有小於該預先決定的閥值的該權重值,其中該有效計數越小,該權重值越小,且該擦除延遲時間越長,該權重值越小;以及選取該物理區塊,藉由確定該物理區塊是在一邏輯與實體對應表中相同於在該平面中的一特定數量的犧牲者區塊,且該特定數量高於該平面中的各一或多其他物理區塊的數量。
- 如申請專利範圍第1項所述之記憶體控制器,其中該控制電路被用以:基於一或多個回收優先度策略,安排遷移來自一或多個平面的一或多個犧牲者區塊中的有效資料;以及同時地遷移所述有效資料至一目前資料區塊。
- 如申請專利範圍第1項所述之記憶體控制器,其中該控制電路被用以:擦除不具有有效資料的一犧牲者區塊以獲得一未使用物理區塊。
- 如申請專利範圍第1項所述之記憶體控制器,其中該控制電路被用以決定要被寫入該記憶體的至少一資料的一或多個特徵;其中該資料以下至少其中之一:來自該記憶體外部的一裝置的資料、來自該記憶體要被遷移的有效資料或相關於該記憶體的元資料,以及其中所述特徵包括以下至少其中之一:一安全等級、一內部系統等級或一讀取及寫入頻率等級。
- 如申請專利範圍第15項所述之記憶體控制器,其中該控制電路被用以:基於要寫入的所述資料的所決定的所述特徵組合來自該些平面的該些物理區塊為該超級區塊。
- 如申請專利範圍第15項所述之記憶體控制器,其中該控制電路被用以:回應於沒有超級頁以儲存所述資料的一判斷,組合來自各該平面的該些物理區塊為該超級區塊;基於要被寫入的所述資料的被決定的所述特徵組合來自該些物理區塊的多個單一頁以獲得用以儲存所述資料的一超級頁。
- 如申請專利範圍第15項所述之記憶體控制器,其中該控制電路被用以:基於所述資料的所決定的所述特徵分類所述資料;基於所述資料的所決定的所述特徵及該超級區塊中的各該物理區塊的該區塊資訊配置所述資料至該超級區塊中的個別的該些物理區塊;以及編程該超級區塊的一或多個所述超級頁以儲存所述資料。
- 一種記憶體系統包括:一記憶體,包括至少二平面的物理區塊;以及一記憶體控制器,用以管理該記憶體的該些物理區塊,藉由:保存該些平面中的各該物理區塊的區塊資訊;以及基於該些平面中的該些物理區塊的該些區塊資訊組合來自該些平面的一或多個所述物理區塊為一超級區塊;其中,該物理區塊的該區塊資訊包括以下至少其中之一:擦除計數、有效計數、頁讀取計數、擦除延遲時間、用以指示該物理區塊是否在一目前資料區塊的一第一旗標或用以指示該物理區塊是否為一未使用區塊的一第二旗標。
- 一種控制方法,用以藉由一記憶體控制器進行一記憶體的超級區塊的區塊配置管理,該控制方法包括:由該控制器的一控制電路保存該記憶體的至少二平面中的各物理區塊的區塊資訊;由該控制電路決定要被寫入該記憶體的資料的一或多個特徵;以及由該控制電路基於要被寫入的所述資料的所決定的所述特徵組合來自該些平面的一或多個所述物理區塊為一超級區塊;其中,該物理區塊的該區塊資訊包括以下至少其中之一:擦除計數、有效計數、頁讀取計數、擦除延遲時間、用以指示該物理區塊是否在一目前資料區塊的一第一旗標或用以指示該物理區塊是否為一未使用區塊的一第二旗標。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/836,476 | 2017-12-08 | ||
US15/836,476 US10445230B2 (en) | 2017-12-08 | 2017-12-08 | Managing block arrangement of super blocks |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI652679B true TWI652679B (zh) | 2019-03-01 |
TW201926351A TW201926351A (zh) | 2019-07-01 |
Family
ID=66590744
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW107108134A TWI652679B (zh) | 2017-12-08 | 2018-03-09 | 記憶體控制器、記憶體系統及控制方法 |
Country Status (3)
Country | Link |
---|---|
US (2) | US10445230B2 (zh) |
CN (1) | CN109901788B (zh) |
TW (1) | TWI652679B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111694759A (zh) * | 2019-03-14 | 2020-09-22 | 点序科技股份有限公司 | 快闪存储器管理方法及快闪存储器 |
TWI718635B (zh) * | 2019-03-04 | 2021-02-11 | 慧榮科技股份有限公司 | 非對稱型平面管理方法以及資料儲存裝置及其控制器 |
US11210005B2 (en) | 2019-03-04 | 2021-12-28 | Silicon Motion, Inc. | Unbalanced plane management method, associated data storage device and controller thereof |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10949113B2 (en) * | 2018-01-10 | 2021-03-16 | SK Hynix Inc. | Retention aware block mapping in flash-based solid state drives |
US10922221B2 (en) * | 2018-03-28 | 2021-02-16 | Micron Technology, Inc. | Memory management |
KR102549548B1 (ko) * | 2018-05-08 | 2023-06-30 | 에스케이하이닉스 주식회사 | 메모리 시스템, 그것의 동작 방법 및 전자 장치 |
CN110489051A (zh) * | 2018-05-14 | 2019-11-22 | 慧荣科技股份有限公司 | 数据储存装置及***信息的编程方法 |
US10783024B2 (en) * | 2018-10-12 | 2020-09-22 | International Business Machines Corporation | Reducing block calibration overhead using read error triage |
KR20200043814A (ko) * | 2018-10-18 | 2020-04-28 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작 방법 |
KR20200068259A (ko) * | 2018-12-05 | 2020-06-15 | 에스케이하이닉스 주식회사 | 컨트롤러 및 컨트롤러의 동작방법 |
TWI718492B (zh) * | 2019-03-12 | 2021-02-11 | 群聯電子股份有限公司 | 資料儲存方法、記憶體儲存裝置及記憶體控制電路單元 |
KR20210089853A (ko) * | 2020-01-09 | 2021-07-19 | 에스케이하이닉스 주식회사 | 컨트롤러 및 컨트롤러의 동작방법 |
KR20210101973A (ko) * | 2020-02-11 | 2021-08-19 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작 방법 |
KR20210115954A (ko) * | 2020-03-17 | 2021-09-27 | 에스케이하이닉스 주식회사 | 컨트롤러 및 메모리 시스템 |
TWI748410B (zh) * | 2020-04-15 | 2021-12-01 | 慧榮科技股份有限公司 | 用來針對非揮發性記憶體進行區塊管理的方法以及設備 |
US20220075523A1 (en) * | 2020-09-08 | 2022-03-10 | Qualcomm Incorporated | Flash memory local purge |
US11675509B2 (en) | 2020-10-29 | 2023-06-13 | Micron Technology, Inc. | Multiple open block families supporting multiple cursors of a memory device |
CN112506811B (zh) * | 2020-12-17 | 2023-06-09 | 湖南翰博薇微电子科技有限公司 | 基于固态硬盘内数据冷热划分的数据块动态分配方法、装置 |
US20220261182A1 (en) * | 2021-02-17 | 2022-08-18 | SK Hynix Inc. | Superblock linkage systems and method for asymmetric die packages |
KR102569823B1 (ko) * | 2021-02-24 | 2023-08-24 | 에스케이하이닉스 주식회사 | 스토리지 장치 및 그 동작 방법 |
KR20220131058A (ko) * | 2021-03-19 | 2022-09-27 | 에스케이하이닉스 주식회사 | 스토리지 장치 및 그 동작 방법 |
KR102344380B1 (ko) * | 2021-06-02 | 2021-12-28 | 삼성전자주식회사 | 비휘발성 메모리 장치, 그것을 제어하는 제어기, 그것을 포함하는 저장 장치 및 그것의 동작 방법 |
CN113590505B (zh) * | 2021-06-30 | 2024-07-19 | 深圳大普微电子股份有限公司 | 地址映射方法、固态硬盘控制器及固态硬盘 |
CN115827289A (zh) * | 2021-09-17 | 2023-03-21 | 伊姆西Ip控股有限责任公司 | 故障处理方法、电子设备和程序产品 |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100512181B1 (ko) | 2003-07-11 | 2005-09-05 | 삼성전자주식회사 | 멀티 레벨 셀을 갖는 플래시 메모리 장치와 그것의 독출방법 및 프로그램 방법 |
US7139864B2 (en) * | 2003-12-30 | 2006-11-21 | Sandisk Corporation | Non-volatile memory and method with block management system |
US7383375B2 (en) * | 2003-12-30 | 2008-06-03 | Sandisk Corporation | Data run programming |
US20050144516A1 (en) * | 2003-12-30 | 2005-06-30 | Gonzalez Carlos J. | Adaptive deterministic grouping of blocks into multi-block units |
US7433993B2 (en) * | 2003-12-30 | 2008-10-07 | San Disk Corportion | Adaptive metablocks |
US7350044B2 (en) * | 2004-01-30 | 2008-03-25 | Micron Technology, Inc. | Data move method and apparatus |
US7409489B2 (en) * | 2005-08-03 | 2008-08-05 | Sandisk Corporation | Scheduling of reclaim operations in non-volatile memory |
US7747896B1 (en) * | 2006-06-30 | 2010-06-29 | Guillermo Rozas | Dual ported replicated data cache |
US20080052446A1 (en) | 2006-08-28 | 2008-02-28 | Sandisk Il Ltd. | Logical super block mapping for NAND flash memory |
US8954654B2 (en) * | 2008-06-18 | 2015-02-10 | Super Talent Technology, Corp. | Virtual memory device (VMD) application/driver with dual-level interception for data-type splitting, meta-page grouping, and diversion of temp files to ramdisks for enhanced flash endurance |
CN101615427B (zh) * | 2008-06-24 | 2012-08-08 | 群联电子股份有限公司 | 非易失性存储器的存储器管理方法及使用此方法的控制器 |
US8239614B2 (en) * | 2009-03-04 | 2012-08-07 | Micron Technology, Inc. | Memory super block allocation |
US8095765B2 (en) | 2009-03-04 | 2012-01-10 | Micron Technology, Inc. | Memory block management |
US8832507B2 (en) | 2010-08-23 | 2014-09-09 | Apple Inc. | Systems and methods for generating dynamic super blocks |
KR20120084906A (ko) | 2011-01-21 | 2012-07-31 | 에스케이하이닉스 주식회사 | 비휘발성 메모리 시스템 및 그 관리 방법 |
US9454474B2 (en) * | 2013-03-05 | 2016-09-27 | Western Digital Technologies, Inc. | Methods, devices and systems for two stage power-on map rebuild with free space accounting in a solid state drive |
US9431113B2 (en) | 2013-08-07 | 2016-08-30 | Sandisk Technologies Llc | Data storage system with dynamic erase block grouping mechanism and method of operation thereof |
US9632712B2 (en) * | 2014-07-02 | 2017-04-25 | Sandisk Technologies Llc | System and method of updating metablocks associated with multiple memory dies |
US20160147444A1 (en) * | 2014-11-23 | 2016-05-26 | Apple Inc. | Parallel data storage in groups of memory blocks having similar performance characteristics |
US10141049B2 (en) * | 2014-12-19 | 2018-11-27 | Sandisk Technologies Llc | Nonvolatile memory system storing system data in marginal word lines |
CN105938419B (zh) * | 2015-03-04 | 2019-05-14 | 慧荣科技股份有限公司 | 数据储存装置及其数据维护方法 |
US10180805B2 (en) | 2015-03-25 | 2019-01-15 | SK Hynix Inc. | Memory system and operating method thereof |
US10126970B2 (en) * | 2015-12-11 | 2018-11-13 | Sandisk Technologies Llc | Paired metablocks in non-volatile storage device |
-
2017
- 2017-12-08 US US15/836,476 patent/US10445230B2/en active Active
-
2018
- 2018-03-09 TW TW107108134A patent/TWI652679B/zh active
- 2018-03-09 CN CN201810197962.9A patent/CN109901788B/zh active Active
-
2019
- 2019-09-17 US US16/572,922 patent/US10915442B2/en active Active
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI718635B (zh) * | 2019-03-04 | 2021-02-11 | 慧榮科技股份有限公司 | 非對稱型平面管理方法以及資料儲存裝置及其控制器 |
US11210005B2 (en) | 2019-03-04 | 2021-12-28 | Silicon Motion, Inc. | Unbalanced plane management method, associated data storage device and controller thereof |
TWI752784B (zh) * | 2019-03-04 | 2022-01-11 | 慧榮科技股份有限公司 | 非對稱型平面管理方法以及資料儲存裝置及其控制器 |
TWI781846B (zh) * | 2019-03-04 | 2022-10-21 | 慧榮科技股份有限公司 | 非對稱型平面管理方法以及資料儲存裝置及其控制器 |
US11809723B2 (en) | 2019-03-04 | 2023-11-07 | Silicon Motion, Inc. | Unbalanced plane management method, associated data storage device and controller thereof |
CN111694759A (zh) * | 2019-03-14 | 2020-09-22 | 点序科技股份有限公司 | 快闪存储器管理方法及快闪存储器 |
TWI776028B (zh) * | 2019-03-14 | 2022-09-01 | 點序科技股份有限公司 | 快閃記憶體管理方法及快閃記憶體 |
CN111694759B (zh) * | 2019-03-14 | 2023-06-27 | 点序科技股份有限公司 | 快闪存储器管理方法及快闪存储器 |
Also Published As
Publication number | Publication date |
---|---|
US10445230B2 (en) | 2019-10-15 |
TW201926351A (zh) | 2019-07-01 |
US20200012596A1 (en) | 2020-01-09 |
US10915442B2 (en) | 2021-02-09 |
CN109901788B (zh) | 2023-08-11 |
US20190179741A1 (en) | 2019-06-13 |
CN109901788A (zh) | 2019-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI652679B (zh) | 記憶體控制器、記憶體系統及控制方法 | |
US10387243B2 (en) | Managing data arrangement in a super block | |
US10996863B1 (en) | Nonvolatile memory with configurable zone/namespace parameters and host-directed copying of data across zones/namespaces | |
US9753653B2 (en) | High-priority NAND operations management | |
US9612953B1 (en) | Data placement based on data properties in a tiered storage device system | |
US9298534B2 (en) | Memory system and constructing method of logical block | |
US8438361B2 (en) | Logical block storage in a storage device | |
US9298608B2 (en) | Biasing for wear leveling in storage systems | |
CN113015965B (zh) | 基于小计写入计数器执行混合损耗均衡操作 | |
US8738876B2 (en) | Method for performing block management, and associated memory device and controller thereof | |
CN104216665B (zh) | 多层单元固态硬盘的存储管理方法 | |
US20140075100A1 (en) | Memory system, computer system, and memory management method | |
US20160118132A1 (en) | Low Impact Read Disturb Handling | |
US20120023144A1 (en) | Managing Wear in Flash Memory | |
US20150199268A1 (en) | Data placement based on data retention in a tiered storage device system | |
US10126970B2 (en) | Paired metablocks in non-volatile storage device | |
US11645006B2 (en) | Read performance of memory devices | |
CN113924546A (zh) | 非易失性存储器中的磨损感知块模式转换 | |
US10324648B1 (en) | Wear-based access optimization | |
US20170199680A1 (en) | System and method of write amplification factor mitigation and flash lifespan extension | |
CN114631147A (zh) | 计算非易失性随机存取存储器中的校正读取电压偏移 | |
TW202238369A (zh) | 在快閃記憶體中進行耗損平衡操作的方法和相關控制器以及儲存系統 | |
WO2015109128A1 (en) | Data replacement based on data properties and data retention in a tiered storage device system | |
US20240241642A1 (en) | Storage device including non-volatile memory device and operating method of storage device | |
US20240069782A1 (en) | Storage device including nonvolatile memory device and operating method of storage device |