TW201926350A - 記憶體控制器、記憶體系統及於一記憶體中管理資料配置的方法 - Google Patents
記憶體控制器、記憶體系統及於一記憶體中管理資料配置的方法 Download PDFInfo
- Publication number
- TW201926350A TW201926350A TW107105679A TW107105679A TW201926350A TW 201926350 A TW201926350 A TW 201926350A TW 107105679 A TW107105679 A TW 107105679A TW 107105679 A TW107105679 A TW 107105679A TW 201926350 A TW201926350 A TW 201926350A
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- block
- super
- page
- memory
- Prior art date
Links
Classifications
-
- 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
- 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
- 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/0608—Saving storage space on storage systems
-
- 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
-
- 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/1041—Resource optimization
- G06F2212/1044—Space efficiency 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/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/7205—Cleaning, compaction, garbage collection, erase control
-
- 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/7208—Multiple device management, e.g. distributing data over multiple flash devices
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一種系統、方法及包含電腦可讀式媒體之裝置,用以管理於一記憶體中的一超級區塊之資料配置。於一方面,記憶體具有一平面,平面包含至少兩個物理區塊,控制電路被設置用以判斷一或多個待寫入記憶體的資料特徵;基於被判斷的一或多個資料特徵及平面之此些物理區塊的一區塊資訊,以配置一超級區塊的一超級頁面,超級區塊組合來自平面上的一或多個物理區塊,超級頁面組合來自超級區塊中相應一或多個物理區塊的一或多個單一頁面;配置一資料至超級頁面中的一或多個單一頁面;以及編程超級頁面以將資料寫入一或多個單一頁面。
Description
本案是有關於一種記憶體控制器、記憶體系統及於一記憶體中管理資料配置的方法。特別是有關於一種於一記憶體的一超級區塊中管理資料配置的記憶體控制器、記憶體系統及於一記憶體中管理資料配置的方法。
為了管理像是NAND型快閃記憶體之類的記憶體,可以指定邏輯超級區塊(super block),使得每個超級區塊將來自記憶體中不同平面的多個物理區塊組合起來。超級區塊中的物理區塊可以同時運行。然而,通常超級區塊最初在記憶體中被指定為每個超級區塊作為整體區塊(whole block)來管理,其中物理區塊的組合直到其中一個用盡之前不會變化,且在超級區塊中沒有最佳化的資料配置,此可能導致效率低落。
本案揭露用以於一記憶體的一超級區塊中管理資料配置的系統及技術,例如,一非揮發性記憶體系統,像是NAND型快閃記憶體,其可以藉由精細的粒度(fine granularity)以管理物理區塊及資料配置,藉此改進(或最佳化)效能。
本案之一態樣是提供一種記憶體控制器,用以管理一記憶體中的資料配置,記憶體控制器包含:一控制電路,耦接於記憶體,記憶體具有一平面,平面包含至少兩個物理區塊,控制電路被設置用以判斷一或多個待寫入記憶體的資料特徵;基於被判斷的一或多個資料特徵及平面之此些物理區塊的一區塊資訊,以配置一超級區塊(super block)的一超級頁面(super page),超級區塊組合來自平面上的一或多個物理區塊,超級頁面組合來自超級區塊中相應一或多個物理區塊的一或多個單一頁面(single page);配置一資料至超級頁面中的一或多個單一頁面;以及編程超級頁面以將資料寫入一或多個單一頁面。
控制電路被設置為藉由判斷超級區塊包含超級頁面且超級頁面為空白並適於儲存資料,以配置超級區塊的超級頁面。控制電路被設置為用以配置超級區塊的超級頁面,基於平面之一或多個物理區塊的區塊資訊,以由平面選擇一或多個物理區塊;基於資料特徵,擦除每一個被選擇的一或多個物理區塊;以及從平面中的一或多個物理區塊以組合一或多個單一頁面至超級頁面。
於一些實施例中,控制電路被設置為配置資料至超級頁面中的一或多個單一頁面,藉由於超級頁面中的一第一空白單頁準備資料;判斷一第二空白單頁位於超級頁面中;以及於第二空白單頁準備資料。於一些例子中,控制電路被設置為於第一空白單頁準備資料,藉由判斷資料具有一特徵,特徵對應至包含第一空白單頁之一第一物理區塊之特徵;將資料填入第一空白單頁。於一些例子中,控制電路被設置為於第一空白單頁準備資料;控制電路被設置為於第一空白單頁準備資料;將資料及回收資料填入第一空白單頁。於一些例子中,控制電路被設置為用以判斷資料具有特徵對應至第一物理區塊之特徵,係藉由判斷資料包含一可靠資料及第一物理區塊為一單層式儲存(SLC)區塊;資料包含一一般資料及第一物理區塊為一多層式儲存(MLC)區塊、三層式儲存(TLC)區塊及四層式儲存(QLC)區塊之其中之一者;或是資料包含一熱門資料且於超級區塊中第一物理區塊具有少於至少一其他物理區塊的一擦除次數。
於一些實施例中,控制電路被設置為藉由一各別程式特徵同步編程具有資料的每個一或多個單一頁面,以編程超級頁面,單一頁面的各別程式特徵對應至被配置於單一頁面的資料的一特徵。於一些例子中,資料包含一可靠資料,可靠資料被配置至單一頁面,且單一頁面為一單層式儲存(SLC)頁面。於一些例子中,資料包含一一般資料,一般資料被配置至單一頁面,且單一頁面為為一多層式儲存(MLC)頁面,以及一般資料藉由一全序列編程方法及一LM編程方法,以被編程至單一頁面。
於一些例子中,資料與一指令相關,以及其中控制電路被設置為依據一需求,以分析資料特徵。於一些例子中,需求包含一寫入需求,用以從一主機之外部耦接的記憶體寫入資料;一回收需求,用以搬移位於記憶體中的至少一犧牲區塊之一有效資料;或一系統需求,用以儲存與記憶體相關之一元資料;以及資料包含來自主機的一回收資料、有效資料或元資料之至少其中之一者。於一些例子中,需求包含一系列的寫入需求,以及控制電路被設置以藉由將來自平面的最大數量的一或多個物理區塊組合到超級區塊並擦除每個位於超級區塊之或多個物理區塊,使得每個位於超級區塊之一或多個物理區塊成為單層式儲存(SLC)、多層式儲存(MLC) 、三層式儲存(TLC)或四層式儲存(QLC)之類型的其中之一者,藉此以配置超級區塊的超級頁面。
控制電路被設置以基於判斷的資料特徵分類資料;以及其中控制電路被設置為藉由依據所判斷的資料特徵,將分類的資料配置到超級頁面中的不同單一頁面,以將資料配置到超級頁面中的一或多個單一頁面,使得具有相同特徵的資料被收集在同一單一頁面中。
於一些例子中,控制電路被設置為基於一資料來源、一存取頻率、一系統或一塊取、或一另一資料或一元資料,以分類資料。於一些例子中,控制電路被設置用以依據被判斷的資料特徵,以判斷資料包含不同類型資料;以及藉由為超級頁面中的不同類型的資料準備一相應之單一頁面以配置超級區塊的超級頁面。
於一些實施例中,控制電路被設置以維持平面中每個獨立物理區塊的區塊資訊;以及其中平面中的一物理區塊的區塊資訊包括一或多個參數,一或多個參數包含一區塊類型、一擦除次數、一有效次數、一讀取次數、一擦除延遲時間、一第一標誌用以指示是否物理區塊位於一當前資料區塊,及一第二標誌用以指示是否物理區塊為一未使用區塊。於一些例子中,控制電路被設置為用以組合複數個超級區塊,每個超級區塊被配置為用於相應類型的資料。
本案之另一態樣是提供一種記憶體系統,包含:一記憶體包含複數個物理區塊;以及一控制器,被設置為用以管理一記憶體中的資料配置,藉由判斷待寫入記憶體的一或多個資料特徵;基於被判斷的一或多個資料特徵以配置一超級區塊的一超級頁面及此些物理區塊的區塊資訊,超級區塊組合來自記憶體的一或多個物理區塊,超級頁面組合來自超級區塊中相應一或多個物理區塊的一或多個單一頁面;配置一資料至超級頁面中的一或多個單一頁面;以及編程超級資料以將資料寫入至一或多個單一頁面。
本案之另一態樣是提供一種於一記憶體中管理資料配置的方法,包含:藉由一控制電路維持記憶體中獨立物理區塊的區塊資訊;控制電路根據一需求及區塊資訊以配置一超級區塊的一超級頁面,超級區塊將來自記憶體的至少一個物理區塊進行組合,超級頁面組合來自超級區塊中至少一物理區塊所對應的至少一單一頁面;藉由控制電路準備超級頁面的至少一單一頁面中的一資料,資料包括與需求相關的資料;藉由控制電路編程超級頁面已將資料寫入至少一單一頁面中。
上述技術的實現包括方法、電路、系統、電腦程式產品和電腦可讀性媒體。在一個例子中,可透過耦接到非揮發性性記憶體的記憶體控制器以執行一方法,並且此方法可以包括藉由記憶體控制器執行的上述操作,例如用於管理超級區塊的區塊配置之操作。在另一個例子中,一個這樣的電腦程式產品適當地嵌入非揮發性機器可讀性媒體中,非揮發性機器可讀性媒體可儲存一個或多個處理器執行的指令。指令被配置為使得一個或多個處理器執行上述操作。一種這樣儲存指令的電腦可讀性媒體,在指令由一個或多個處理器執行時,被配置為促使一個或多個處理器執行上述操作。
這些技術可以保持記憶體的不同平面中的每個單一物理區塊的區塊訊息(例如,擦除次數及/或有效計數),並且參考此訊息組合(或配置)不同平面中的至少一個物理區塊,以儲存寫入資料、回收資料和/或元資料。需注意的是,區塊的區塊訊息主要指與包括擦除次數、有效次數,逐頁讀取次數、擦除延遲時間、未使用標誌或CDB標誌的區塊之使用相關的訊息,並且區塊訊息可以不包括記憶體地址在其平面中的區塊和/或區塊編號(或位置編號)。這些技術提供了分散/收集機制以透過細粒度優化效率,例如,當編程一超級頁面以收集具有相同(或相似)特性且位於相同物理區塊的資料時,透過根據資料的特性(例如,熱門/冷門,系統/快取,資料/元資料)對資料進行分類以及依據資料特性以分散資料。相較於綁定超級區塊中的物理塊以進行管理,此技術可以提高回收效率,減少資料班移,減少物理區塊的擦除次數,解決由於不必要的複製而導致的性能下降和使用壽命下降的問題。這些技術可以同時在一個超級區塊中操作多個物理塊,並獲得最大的資料吞吐量頻寬。這些技術可以透過任何適當類型的控制器來實現,以提高記憶體的效率。控制器可以是記憶體的一部分,駐留在耦接至記憶體的主機中,或在外部耦接至主機和記憶體及/或與主機互動。控制器可以包括快閃翻譯層(flash translation layer,FTL)管理。
此些技術可以應用於各種記憶體類型,像是單層式儲存(Single-Level Cell,SLC)裝置、多層式儲存(Multi-level cell,MLC)裝置、三層式儲存(Triple-Level Cell,TLC)裝置、四層式儲存(Quad-level cell,QLC)裝置或其任何合適的組合。此技術可以應用於各種類型的非揮發性性記憶體系統,像是NAND閃存記憶體,NOR閃存記憶體,AND閃存記憶體,相變記憶體記憶體(phase-change memory ,PCM)等等。另外或可替代地,這些技術可以應用於各種類型的設備和系統,例如安全數位(secure digital,SD)卡、嵌入式多媒體卡(embedded multimedia card,eMMC)、固態驅動器(solid-state drives,SSD)、嵌入式系統、硬碟、光碟、磁帶或其他。系統可以是混合系統,包括以上多種類型的儲存裝置。
在圖式和下述中闡述了一個或多個公開的實現的細節。由說明書、圖式和權利要求,可使本案其他特徵、方面和優點將變得顯而易見。
第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卡。
裝置控制器112可以是一通用微處理器或一專用微控制器。於一些實施例中,裝置控制器112是裝置110的一記憶體控制器。以下部分描述裝置控制器112為記憶體控制器之實現的各種技術。然而,在以下部分中描述的技術也適用於裝置控制器112為不同於一記憶體控制器的另一類型之控制器的實現。裝置控制器112亦可以被包含於一主機裝置120或被外部地耦接於主機裝置120或裝置110。
處理器113被設置為執行指令並處理資料。此些指令包含韌體指令及/或其他程式指令,其分別作為韌體代碼(firmware code)及/或程式代碼,儲存於內部記憶體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。於一些實施例中,當裝置10是一數位相機或一多媒體撥放器時,內部記憶體114是一DRAM。
於一些實施例中,內部記憶體114為一快閃記憶體(cache memory),其包含於裝置控制器112中,如第1圖所示。內部記憶體114儲存指令代碼及/或資處理器113在運行時所請求的資料,指令代碼相當於處理器113所執行的指令。
裝置控制器112將記憶體116的指令代碼及/或資料傳送到內部記憶體114。於一些實施例中,記憶體116唯一非揮發性記憶體,被配置為用以長期儲存指令及/或資料,例如,一NAND型快閃記憶體裝置,或一些其他適合的非揮發性記憶體裝置。在記憶體116是NAND型快閃記憶體的實施例中,裝置110是一快閃記憶體裝置,例如,一快閃記憶卡,及裝置控制器112為一NAND型快閃控制器。例如,於一些實施例中,當裝置110是一eMMC或一SD卡時,記憶體116為一NAND型快閃(NAND flash);於一些實施例中,當裝置110是數位相機,記憶體116是一SD卡;及於一些實施例中,當裝置110是一多媒體撥放器,記憶體116是一硬碟(hard disk)。僅為了說明之目的,以下描述使用NAND型快閃記憶體作為記憶體116的示例。
裝置控制器112可以被設置以管理於記憶體116中超級區塊的區塊配置,如美國專利US15/836476,標題為超級區塊的區塊管理配置(“MANAGING BLOCK ARRANGEMENT OF SUPER BLOCKS”) 其與本案優先權文件US 15/836476同日提交其內容藉由整體引用併入本文。舉例而言,裝置控制器112可以基於獨立物理區塊以維持區塊資訊,而不是基於整個超級區塊,裝置控制器112基於一策略以於一平面中選擇一空閒區塊(free block),例如,基於擦除次數(erase count)、未使用的區塊數量(unused block count)、總有效次數(total valid count),及/或擦除延遲時間(erase delay time),將不同平面的至少一區塊組合至一超級區塊,及/或於平面中基於一策略(例如,貪婪(greedy)、刷新(refresh)或磨損平衡(wera-leveling))以選擇一犧牲區塊(victim block)。
裝置控制器112可以根據一或多個特徵以分類資料。用語「字符」(“character”)和“特徵”(“characteristic”)在本文中可以互換使用。於一些例子中,資料根據資料源進行分類。一第一資料源可以是用以由主機裝置120更新資料的一寫入命令。資料在記憶體116(或裝置110)的外部,並且可以是使用者資料。第二資料源可以是一區塊回收(block reclaim),將有效資料由一或多個犧牲區塊搬移至超級區塊(或一當前資料區塊)。資料可以被視為回收資料(reclaim data)。第三資料源可以是記憶體116(或裝置110)的元數據(metadata),例如,系統管理資料,像是快閃翻譯層(flash translation layer,FTL)表。回收資料和元資料位於記憶體116(或裝置110)的內部。
於一些例子中,資料根據存取頻率進行分類。於一些例子下,資料的存取頻率可以透過讀取次數、寫入次數、或更新前的搬移次數以判斷。於一些例子下,資料的存取頻率可以由上次存取的增量時間(delta time)以決定,例如,上次讀取與當前更新時間之間的時間區間。根據資料存取頻率以決定一熱門度(或冷門度),資料的存取頻率越高,資料的熱門度越高。
於一些例子中,資料以安全級別分類之,內部系統級別或是一般資料級別。在一般資料級別中,資料可以基於頻繁的寫入及讀取(或一存取頻率)被分類為具有高熱門度。例如,資料熱門度可由以下順序逐漸地降低(1)頻繁寫入及讀取的資料,(2)頻繁寫入但很少讀取的資料,(3)很少寫入但頻繁讀取的資料,(4)很少寫入及很少讀取的資料。安全級別(security level)的資料中,可以包含安全或或可靠的資料,此些資料可以被視為熱門資料。內部系統級別的資料中,可以包含系統管理資料,此些資料可以被視為熱門資料。
於一些例子中,資料依據系統或快取以分類。於一些例子下,可以從例如來自主機裝置120之命令的一或多個參數獲得提示,以區分正常的、系統的,或快取的資料。例如,命令可以包含用於指示系統資料的標誌(flag)及/或用於指示快取的另一個標誌,系統資料及/或快取資料可以被指定為熱門資料。於另一例子中,若與命令相關的資料小於一預設長度,例如16千位元組(kilobyte,KB),則資料可以被分類為熱門資料。若與命令相關的資料大於一預設長度,例如128KB,則資料可以被分類為冷門資料。
於一些例子中,裝置控制器112可以透過存取位址及/或長度以分類資料。若存取位址位於一內部系統區域,例如檔案分配表(file allocation table,FAT)中,則將資料分類為內部系統資料(及/或熱門資料)。若資料長度小於一門檻值,例如16KB,則可將資料是為快取資料(及/或熱門資料)。
如以下進一步詳細討論的,裝置控制器112可以被配置為管理一超級區塊中的資料配置。例如,裝置控制器112可回應於一需求,例如,由主機裝置120寫入外部資料的請求、由一犧牲區塊搬移有效資料的請求,及/或儲存記憶體116之元資料的請求,以指定超級區塊或分配超級頁面。如上所述,裝置控制器112可以根據資料的特徵(例如,熱門/冷門、系統/快取,及/或資料/元資料),對資料進行分類,並且在對超級頁面進行編程(program)時,收集在相同物理區塊中具有相同特徵的資料。具體而言,裝置控制器112可以透過策略,例如,未使用的區塊數/平面上的擦除次數,以安排資料放置在不同平面上,且均勻地分散具有不同特徵的資料於不同平面上,並於相同平面上收集具有類似特徵的資料,例如相鄰邏輯位址/存取頻率。
第2A圖繪示於一記憶體中指定的超級區塊之示例200。記憶體可以是第1圖中的記憶體116。記憶體可以包含一或多個記憶體裝置。於一些實施例中,記憶體包含多個晶圓(Die)。每個晶圓可以是一記憶體晶片,且其上包含多個記憶體陣列及周邊電路。一記憶體陣列可以包含多個平面,每個平面包含多個記憶體單元的多個物理區塊。每個物理區塊可包含多個記憶體單元的頁面,其可以儲存多個資料區段。
位於共同平面的兩個物理區塊不能同時被操作(例如,擦除),但位於不同平面的兩個物理區塊可以同時被操作。一超級區塊可以被指定,例如藉由第1圖中的控制器112指定,以組合來自不同平面的至少一物理區塊。每個超級區塊中的物理區塊來自不同的平面,即任何平面不能在超級區塊中提供多於一個區塊。超級區塊包含多個超級頁面,每個超級頁面組合來自多個超級區塊中對應的多個物理區塊的多個頁面。超級頁面中的每個頁面在其相應的物理區塊中可以具有一相同的頁碼。超級頁面可以被編程,超級頁面中的所有頁面可以被同時編程。
如第2A圖所示,記憶體包含x晶圓,從晶圓#0至晶圓#x-1。晶圓#0包含i個平面,由平面#0至平面#i-1,每個平面包含m+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。在一些例子中,記憶體包含多個晶圓,且每個晶元包含一平面。
於一些例子中,一超級區塊包含具有相同位置號碼的多個區塊,一超級區塊可以包含來自記憶體中每個晶圓的每個平面的一區塊,此提供最大的頻寬(bandwidth)。例如,如第2A圖所示,超級區塊202包含記憶體中每個平面的位置編號為0的區塊。然而,一超級快可包含具有相同位置編號的區塊,但是來自少於所有平面的區塊,例如來自少於全部的經援或少於一晶圓之全部平面。例如,超級區塊204包含來自多個晶圓的區塊,但不包含每一個晶圓的所有平面。因此,超級區塊204具有比超級區塊202更少的區塊,且具有更小的頻寬。超級區塊206只包含一個物理區塊,例如,一平面之區塊#m,例如,於晶圓#0中的平面#0。
於一些例子中,超級區塊將來自不同平面的不同位置編號的物理區塊組合在一起。如第2B圖所示,例如超級區塊250將晶圓#0的平面#0中的區塊#5、晶圓#0的平面#1中的區塊#18、晶圓#1的平面#0中的區塊#66及晶圓#1的平面#1中的區塊#21組合在一起。超級頁面252組合超級區塊250中的四個區塊中的四個頁面。此四個頁面在其區塊中具有相同的頁碼,且在超級頁面252被編程時可以被同時編程。
於一些實施例中,一超級區塊將來自不同的相同記憶體類型的區塊組合在一起,例如,單層式儲存(Single-Level Cell,SLC)、多層式儲存(Multi-level cell,MLC) 、三層式儲存(Triple-Level Cell,TLC)或四層式儲存(Quad-level cell,QLC)。超級塊組合來自不同記憶體類型的區塊,例如,來自不同平面的混合SLC及MLC。
如在下面進一步詳細討論的,一超級區塊可以被部署以寫入更新資料,例如記憶體外部的資料,像是來自主機裝置的資料,以搬移有效資料,例如,記憶體中的資料,或寫入元資料,例如用於快閃翻譯層(FTL)管理的資料。若超級區塊不能寫入/搬移時,一超級區塊亦可以釋放區塊的組合。
第3圖繪示於一記憶體中管理區塊的示例300。記憶體可以是第1圖中的記憶體116,且可以被一控制器以管理,例如,第1圖中的控制器112。示例圖300繪示出由控制器管理記憶體中的超級區塊之配置的一概況。
記憶體包含多個平面,每個平面具有一或多個物理區塊。兩層式(two-level)的設置可以被分類以控制記憶體中的硬體區塊。第一層是單區塊層(single block level),其中資料區塊、未使用的區塊(例如空閒區塊(free block)或空區塊(empty)),及犧牲區塊皆屬之。如下面進一步詳細討論的,犧牲區塊是要被回收到未使用區塊中的區塊。第二層是超級區塊層(super block level),其中超級區塊是當前資料區塊(current data blocks,CDBs),開啟用以進行資料寫入。
初始時,例如,當記憶體被初始化時,記憶體中的物理區塊被放入未使用區塊群組302中,未使用區塊群組302係由單區塊層進行管理。控制器保持未使用區塊群組302中的各個物理區塊的區塊訊息。於後述表一、表二中進一步詳細描述區塊訊息。
控制器可以從每個平面中選擇不超過一個物理區塊,並根據一或多個策略,組合被選擇的物理區塊,基於平面上物理區塊的區塊訊息以獲得一超級區塊,例如,基於擦除次數、剩餘有效次數及/或擦除延遲時間。超級區塊包含從此些平面組合的至少一物理區塊。控制器可將一或多個超級區塊(或當前資料區塊)組合(combine)於記憶體中,當前資料區塊位於當前資料區塊群組304中,當前資料區塊群組304係由超級區塊層進行管理。
當一超級區塊(或一當前資料區塊)不能儲存更多資料時,當前資料區塊被釋放(Release)為單獨資料區塊的資料區塊群組306,資料區塊群組306係由單區塊層進行管理。
資料區塊群組306中的資料區塊可以依據一或多個策略,例如基於貪婪、刷新或磨損平衡策略,而被指定(assign)為一犧牲區塊。犧牲區塊被放入犧牲區塊群組308,犧牲區塊群組308係由單區塊層進行管理。
回收操作(reclaim operation)可以被執行於犧牲區塊群組308中的一或多個犧牲區塊上。位於犧牲區塊中的有效資料可以被搬移(migrate)到當前資料區塊群組304中的一或多個超級區塊(或當前資料區塊)。然後,當一犧牲區塊充滿無效的資料時,犧牲區塊可以被釋出(free),例如,擦除,以成為未使用區塊,其可以被推送到未使用區塊群組302。
如上所述,當前資料區塊群組304係由超級區塊層進行管理,而未使用區塊群組302、資料區塊群組306及犧牲區塊群組308中的每一者係由單區塊層進行管理。藉由此方法,此記憶體可精細地被管理,此可提高或優化記憶體的效率。
第4圖繪示一記憶體之一平面的區塊資訊表400之一例。區塊資訊表400的各欄位由左而右分別用以表示單一區塊編號、當前區塊標誌、未使用旗標、擦除次數、有效次數及逐頁讀取次數。記憶體可以是第1圖中的記憶體116,平面可以是第1圖中的任何平面,例如,於晶圓#0上的平面#0。平面可以包含N-1個物理區塊。每個平面可以具有其自己的且獨立於其他位於相同記憶體中其他平面的表(table)。記憶體控制器,例如,第1圖的控制器112,可管理記憶體中每個平面的區塊資訊表。如區塊資訊表400所繪示,區塊資料可以包含於下述討論的多個參數。
當前資料區塊標誌欄位指示是否一單一區塊位於當前資料區塊中,若當前資料區塊標誌為真(true),則單一區塊位於當前資料區塊中。若當前資料區塊標誌為假(false),單一區塊不位於當前資料區塊中,且可以是一個資料區塊,例如,位於第3圖之資料區塊群組306中,或一未使用區塊,例如,位於第3圖之未使用區塊群組302中。
未使用標誌欄位可以指示是否一單一區塊為未使用資料區塊。若未使用標誌為真,則單一區塊可以被選取至一當前資料區塊,並將其有效次數及讀取次數設置為0。若未使用標誌為假,則單一區塊可以位於當前資料區塊中,也可以位於資料區塊群組的一資料區塊中。
擦除次數欄位用於紀錄單一區塊被執行擦除操作的次數。擦除次數與單一區塊的P/E(編程/擦除)週期相關。當擦除次數超過一門檻值時,單一區塊可以被認為是一緊急區塊或已被磨損的一壞損區塊。
有效次數欄位用以記錄在一單一區塊中有多少有效資料。有效次數越大,儲存的有效資料越多,此代表剩餘未使用的次數越少,單一區塊用盡的速度越快,或成為資料區塊群組中的資料區塊的速度越快。平面的總有效次數(或有效次數的總數)為平面中所有區塊的有效次數的的總和。
藉由逐頁讀取次數欄位可透過頁面紀錄讀取單一區塊中每個頁面被讀取的次數。讀取次數還可以記錄單一區塊被讀取的次數,即單一區塊上的讀取操作之總和。
於一例子中,如第4圖所示,對於第1區塊1而言,當前資料區塊標誌為真,未使用標誌為假,擦除次數為6,有效次數為102,且每頁讀取次數分別為100、54、…、77。對於第N-1區塊而言,當前資料區塊為假,未使用標誌為真,擦除次數為5,有效次數為0,且每頁讀取次數皆為0。
區塊訊息還可以包含一單一區塊的擦除延遲時間,其記錄從單一區塊被擦除的時間點至當前時間點的一區段時間。表一為擦除資訊表的一例,其包含擦除順序,從倒數第一到倒數第十,及其相關聯的權重(%),擦除順序越小,權重越高。例如,如表一所示,從最後一次擦除到倒數第十次擦除之次序的權重分別是90%、80%、70%、…、0。表一
表二為擦除資訊表的另一例子,其包含擦除延遲時間及其相關的權重(%)。擦除延遲時間越短,權重越高。如表二所示,擦除延遲時間(erase delay time,EDT)小於1分鐘時的權重為100%,擦除延遲時間小於3分鐘時的權重為60%,擦除延遲時間小於15分鐘時為30%,擦除延遲時間小於2小時的權重為10%,擦除延遲時間不小於兩小時的權重為0。表二
擦除資訊表(表一、表二)可以被用以避免在一短時間內頻繁地擦除區塊,在短時間內頻繁地擦除區塊將會嚴重地耗損記憶體單元(memory cells)。於一些例子中,「順序」或「延遲時間」可以被作為計量以限制選擇空閒區塊及/或犧牲區塊。例如,在選擇空閒區塊期間,控制器可以獲得每個空閒區塊的相應擦除次數並參考擦除資訊表(表一、表二)以取得每個空閒區塊的相應權重。然後,對於每個空閒區塊可以透過將各個權重乘一個數,例如所有空閒區塊的最大擦除次數,以計算各自的加權數。然後,控制器可以透過比較相應的擦除次數和相應空閒區塊之間的加權數之總和,以選擇一空閒區塊。例如,控制器可以選擇具有相應擦除次數和相應加權數最小和的空閒區塊。
於一些例子中,控制器可以依據一類似選擇一空閒區塊的程序,以選擇一犧牲區塊。控制器可以取得每個候選犧牲區塊的相應擦除次數,並參考擦除資訊表(表一、表二)以取得候選犧牲區塊的相應權重。然後,對於每個候選犧牲區塊,可以透過將相應權重乘以一數值,例如,所有候選犧牲區塊的一最大有效次數,以計算相應的加權數。然後,控制器可以透過比較候選犧牲區塊之間的相應有效次數和相應的加權數之總和,以選擇一犧牲區塊。例如,控制器可以選擇具有最大的相應有效次數和相應的加權數之總和的犧牲區塊。
第5圖繪示配置資料至一超級區塊的一超級頁面的示例500。資料配置可以基於資料的一或多個資料特徵及超級區塊中的一或多個物理區塊之特徵。物理區塊之特徵可以存放在包括物理區塊的相應平面的區塊訊息表中,例如第4圖的區塊資訊表400及表一的擦除資訊表。
於一些例子中,超級區塊將來自具有接近未使用區塊數之平面的物理區塊進行組合。如第5圖所繪示的,超級區塊由晶圓D#0及D#1中四個對應的平面,以組合四個物理區塊。每個平面之未使用區塊數分別為5、10、6及8。
如上所述,資料可以根據其特徵,如熱門度/冷門度,以被分類。如第5圖所示的例子,待寫入的資料包含四個群組之資料:第一熱門資料、第二熱門資料、次熱門資料(warm data)、冷門資料。此四個群組之資料可以基於其特徵及超級區塊中的區塊特徵,以被配置至超級區塊的超級頁面中之相應的頁面。
於一些例子中,具有未使用區塊數少於其他平面之一平面,此平面可能具有比其他平面更多的有效資料。由於熱門資料比冷門資料更容易變成無效資料,熱門資料可以被放置於具有較少未使用區塊之平面上的區塊中。以此方式,區塊可以更容易地被回收到一未使用區塊,且平面上的未使用區塊數可以被平衡。如第5圖所示,第一熱門資料被配置至平面P#0之區塊,D#0中的此區塊具有5個未使用區塊數,第二熱門資料被配置至平面P#0之區塊,D#1中的此區塊具有6個未使用區塊數,次熱門資料被配置至平面P#1之區塊,D#1中的此區塊具有8個未使用區塊數,冷門資料被配置至平面P#1之區塊,D#0中的此區塊具有10個未使用區塊數。
第6圖繪示用以將資料由一需求寫入於一記憶體中之一超級區塊的一超級頁面的流程600之示例。記憶體可以是第1圖的記憶體116,且流程600可以由一控制器以執行,例如第1圖的控制器112。
控制器判斷是否有任何寫入/回收需求(602)。如上所述,在一些例子中,需求是來自主機裝置,例如第1圖中的主機裝置120,由外部耦接於記憶體。需求可以包括從主機裝置將資料,例如使用者資料,寫入記憶體的請求。於一些例子中,需求是區塊回收請求,以內部地將有效資料從記憶體中的犧牲區塊搬移至記憶體一超級區塊(或一當前資料區塊)。於一些例子中,需求是將元資料寫入記憶體116,例如,系統管理資料項是快閃翻譯層表。需求亦可以包含二或多個寫入需求,區域回收請求及元資料寫入需求。
若控制器判斷沒有寫入/回收需求,則結束流程600。若控制器判斷有寫入/回收需求,則控制器依據需求配置一超級頁面(604),例如,於第7圖中進一步所討論的。
於配置超級頁面之前,控制器可以分類與需求相關的資料。如上所述,資料可以根據資料源、存取頻率、系統或快取、及/或資料或元資料以進行分類。不同類型的區塊可以適合儲存具有不同特徵的資料。例如,單層式儲存區塊適合儲存可信賴的資料,而多層式儲存區塊適合儲存一般資料,例如來自主機裝置的使用者資料。多層式儲存區塊可儲存比單層式儲存區塊更多的資料,且多層式儲存區塊可以被用於儲存來自一系列寫入需求的資料串流。具有較小擦除次數的區塊適合儲存熱門資料,而具有較大擦除次數的區塊適合儲存冷門資料或回收資料。
被分配的超級頁面可組合來自超級區塊中的對應物理區塊的一或多個單一頁面。控制器執行一迴圈以配置超級頁面中的資料。控制器在超級頁面中的單一頁面中準備及填入資料(606),例如,於圖8進一步詳細討論之內容。然後,控制器判斷超級頁面中是否還有任何的空白單頁(608)。若控制器判斷超級頁面中存在空白單頁,則流程回到步驟606以繼續迴圈。
若控制器判斷超級頁面中沒有空白單頁,也就是超級頁面中的所有單一葉面都被分配資料,則控制器編程超級頁面610,即係將資料同時編程至超級頁面中的所有單一頁面。
第7圖繪示根據需求於超級區塊中分配超級頁面之流程700的示例。流程700可以如第6圖的步驟604一樣地被控制器執行,需求可以是第6圖中的需求。
控制器判斷是否存在任何適合儲存資料的空白超級頁面(702)。若控制器判斷存在適合儲存資料的空白超級頁面,則控制器配置超級區塊以儲存資料,且結束流程700。控制器可以繼續執行第6圖的步驟606。
於一些情況下,控制器判斷沒有適合儲存資料的空白超級頁面。例如,資料為安全資料。然而,超級頁面不結合一單一單層式儲存(SLC)頁面,因此超級頁面不適合儲存資料。於一些例子中,控制器參考將不同類型的數據與不同類型的頁面(或區塊)相關聯的一表格。例如,可靠資料包含安全資料及系統資料,可靠資料可以與具有單層式儲存(SLC)類型的頁面相關聯,一般資料包含使用者資料和串流資料,可以與具有多層式儲存(MLC)類型的頁面相關聯。若控制器基於此表,判斷空白超級頁面具有與一或多種類型資料相關聯的一或多個單一頁面,則控制器判斷超級頁面適合儲存資料。若控制器基於此表,判斷空白超級頁面不具有與此些類型資料相關聯的一或多個單一頁面,則控制器判斷超級頁面不適合儲存資料。
回應於判斷不存在適合於儲存資料的空白超級頁面,控制器例如基於需求和/或根據需要選擇(或組合)記憶體之不同平面中的至少一區塊(704),例如,基於需求及/或一或多個用以組合超級區塊的策略。例如,策略可以基於擦除次數、未使用區塊數、總有效次數、總擦除次數及/或擦除延遲時間。
於一些例子中,控制器判斷需求與寫入順序相關。控制器可以選擇相同類型的區塊(單層式儲存(SLC)、多層式儲存(MLC)、三層式儲存(TLC)或四層式儲存(QLC)),例如單層式儲存(SLC)用以儲存可靠資料或多層式儲存(MLC)用以儲存一般資料,並且使用來自平面最大數量的區塊以組合超級區塊,例如使超級區塊的頻寬最大化。於一些例子中,由於單層式儲存(SLC)可以用作非揮發性快取,以避免資料在停電時的丟失,控制器可以將資料放入單層式儲存(SLC),然後在遷移到三層式儲存(TLC)(或四層式儲存(QLC))。於一些例子中,控制器根據需求以判斷一系列的寫入包含不同的串流資料。控制器可以組合不同的超級區塊,並將不同的資料串流分散至不同的超級區塊。例如,一超級區塊可以被設置為儲存使用者資料,一超級區塊可以被設置為儲存可靠資料,一超級區塊可以被設置為儲存元資料及一超級區塊可以被設置為儲存混和資料。
於一些例子中,控制器判斷需求與不同的程式資料相關。控制器可以將不同類型的資料分成超級區塊內的不同單一區塊,並根據需求將每個單一區塊(或頁)設置對應的擦除/編程特徵。例如,一或多個多層式儲存(MLC)區塊用於儲存一般資料且衣或多個單層式儲存(SLC)區塊用於儲存可靠資料。
然後,控制器透過由需求決定的特徵以擦除每個單一區塊(706)。此特徵可包含區塊的擦除/編程特徵。例如,如上所述,如果需求需要儲存可靠資料,一單一區塊可以被擦除為單層式儲存(SLC)區塊,並且隨後依據此特徵被編程以儲存可靠資料。若需求需要儲存一般資料,則區塊可以被擦除為多層式儲存(MLC)區塊。若需求需要儲存可靠資料和一般資料,則控制器可以將多個區塊擦除為單層式儲存(SLC)區塊與多層式儲存(MLC)區塊的組合。
然後,控制器組合將擦除過的單一區塊從平面至超級區塊,其中來自平面單一區塊中的單一頁面被組合為一超級頁面(708)。超級頁面可以被用以儲存與需求相關的資料。接著,控制器可以進行執行第6圖中的步驟606。
第8圖繪示用以準備資料以對超級頁面中的單一頁面進行編程的流程800之示例。流程800可以如第6圖的步驟606一樣地被控制器執行。資料與寫入/回收需求相關,例如第6圖的需求。超級頁面可以是第7圖配置的超級頁面。第7圖中所述之組合的超級區塊中,超級頁面包括來自不同平面之相應的單一區塊的多個單一頁面。流程800是為了超級頁面中的單一區塊的單一頁面準備資料。
控制器判斷是否需求中有任何資料具有相同(或相似)特徵的單一區塊(或單一頁面)(802)。例如,資料的特徵對應於單一區塊(或單一頁面)的特徵。如上所述,控制器可以儲存一表,此表關於不同類型的資料與不同類型的區塊(或頁面)。於一些例子中,若資料包含可靠資料及單一區塊為單層式儲存(SLC)區塊,則控制器判斷需求中的資料具有與單一區塊相同(或相似)的特徵。如果資料包含可靠資料,且單一區塊為多層式儲存(MLC)資料,則控制器判斷資料不具有與單一區塊相同(或相似)的特徵。於一些例子中,如果資料被分類為熱門資料且單一區塊被設置為(或適合於)儲存熱門資料,則控制器判斷需求中的資料具有與單一區塊相同(或相似)的特徵。例如,單一區塊可以具有適合於儲存熱門資料的一小擦除次數。若資料被分類為熱門資料且單一區塊被配置為存冷門資料或不是和儲存熱門資料,則控制器判斷需求中的資料不具有與單一區塊相同(或相似)的特徵。
如果控制器判斷需求中的資料具有與單一區塊相同(或相似)的特徵,則控制器接收具有與區塊(804)相同(或相似)特徵的寫入資料。於一些例子中,控制器可以判斷需求中是否存在任何其他的寫入資料具有與區塊相同(或相似)的特徵,及/或是否存在任何寫入資料與另一個需求具有與區塊相同(或相似)的特徵。需求中的所有資料可以來自主機,且可以被接收到記憶體中的緩衝器,供之後編程使用。
然後,流程800進行到步驟806,其中控制器判斷在單一頁面中是否存在任何空閒空間(除了保留用於元資料的空閒空間)以進行回收(或「垃圾收集」)。藉此,控制器可以最大化超級頁面的編程頻寬,從而最大化記憶體的效率。回收用以由一或多個犧牲區塊中搬移有效資料。於一些例子中,於步驟804,若控制器判斷需求中的資料不具有與單一區塊相同(或相似)的特徵,則流程800進入步驟806。
如果控制器判斷在單一頁面中有空閒空間進行回收,則控制器選擇具有與區塊相同(或相似)的回收資料(808)。例如,如果此區塊被配置(或合適)以儲存熱門資料,控制器選擇分類為熱門資料的回收資料。如果此區塊是單層式儲存(SLC)區塊,則控制器選擇歸類為可靠資料的回收資料,例如系統資料或安全資料。如果此區塊是多層式儲存(MLC)區塊,則控制器選擇歸類為使用者資料的回收資料。
然後,流程800進入步驟810,其中控制器判斷此頁面中是否存在任何元資料更新需求(810)。於一些例子中,於步驟806中,若控制器判斷單一頁面中沒有空閒空間以進行回收,流程800亦進入步驟810。
控制器判斷此頁面中存在元資料更新需求,控制器將元資料準備至緩衝器中(812)。然後,控制器將資料和/或元資料轉儲存至緩衝器中,以供單一頁面依據此特徵進行編程(814)。控制器可以將寫入資料填入單一頁面。控制器可以在單一頁面的一部分,例如多個記憶體單元,按照需求配置寫入資料,並在單一頁面的其餘部分中回收資料。
於一些例子中,於步驟810,若控制器判斷頁面中沒有元資料更新需求,流程800亦會進入步驟814。控制器可以重複流程800,如第6圖所繪示的,已準備資料至超級頁面中的所有單一頁面。
第9~11圖繪示分配超級頁面並在超級頁面中配置資料的示例。每個例子可以由控制器,例如第1圖的控制器112實現,控制器112耦接至一記憶體,例如為第1圖的記憶體116。
第9圖繪示例如從一主機裝置像是第1圖中的主機裝置120進行一系列寫入需求時,分配一超級頁面的示例900。控制器可以判斷需求是針對包括大量資料的一系列寫入。於一些例子中,控制器可以判斷與需求相關聯之資料的長度。若此長度比一預設門檻值長,例如預設門檻值為128kB,則控制器判斷需求為一系列的寫入。於一些例子中,需求包含指示一系列的寫入之提示,且控制器可以判斷需求是由提示開始之一系列的寫入。控制器可以例如,根據第7圖的流程700,以配置超級頁面902於超級區塊中儲存資料。控制器可以最大化在超級區塊中之被組合的區塊之數量,所有區塊可以配置為多層式儲存(MLC)區塊。
如第9圖所示,超級區塊在來自四個平面的四個多層式儲存(MLC)區塊中以兩個晶片晶圓0和晶圓1組合,四個多層式儲存(MLC)區塊分別為位於平面0的多層式儲存區塊a、位於平面1的多層式儲存區塊b、位於平面0的多層式儲存區塊c及位於平面1的多層式儲存區塊d。單一區塊中的每個頁具有16k*8個記憶體單元且每個頁可以儲存32kB資料,在每個記憶體單元以多層式儲存(MLC)編程時。由於超級頁面包含四個單獨的多層式儲存(MLC)頁面,超級頁面可以被配置已用於儲存128kB資料。然後,控制器可以接收128kB資料,將資料配置在超級頁面中並編程超級頁面。資料可以被編程到超級頁面中,此超級頁面組合多層式儲存(MLC)頁面,例如藉由在第12A圖中進一步討論的一系列方法。
第10圖繪示於一超級區塊中配置一超級頁面以混合熱門、冷門及回收資料的示例1000。超級區塊將三個單層式儲存(SLC)區塊組合在兩個晶片晶圓0和晶圓1中。
控制器可以維護每個平面的區塊資訊表,其包含平面中物理區塊的區塊訊息。控制器可以根據平面中的物理區塊的區塊訊息及資料的特徵以判斷超級區塊的組合。例如,控制器可以基於區塊的總擦除次數(total erase counts,TECs)以判斷超級區塊的組合。於一些例子中,控制器判斷平面的總擦除次數(TEC)是否超過一門檻值。如果平面的總擦除次數(TEC)超過門檻值,則控制器不會從此平面選擇區塊至超級區塊。門檻值可以基於經驗值或平面的總擦除次數(TEC)以決定。於一些實施例中,每個平面的總擦除次數(TEC)測量每個平面的磨損狀態。控制器可以監測最小總擦除次數(TEC)與最大總擦除次數(TEC)之間的差值,並根據差值設置一個門檻值,基於差值以觸發一冷卻配置策略使得所有平面的磨損程度相同。
如第10圖所繪示的,晶圓0的平面0與平面1及晶圓1的平面0與平面1的總擦除次數(TEC)分別為00、01、10和11。由於晶圓1的平面1之總擦除次數(TEC)太高,控制器可判斷不要從此平面選擇一區塊,並允許此平面冷卻下來。替代地,控制器選擇晶圓0中位於平面0的單層式儲存(SLC)區塊a,以收集此區塊的熱門資料,選擇晶圓0中位於平面1中的單層式儲存(SLC)區塊b,以收集此區塊的冷門資料,選擇晶圓1中位於平面0中的單層式儲存(SLC)區塊c,以收集此區塊的回收資料,選擇晶圓1中位於平面1中的單層式儲存(SLC)區塊d,不配置以冷卻之。因此,控制器分配超級頁面1002,其組合來自單層式儲存(SLC)區塊a、單層式儲存(SLC)區塊b、單層式儲存(SLC)區塊c之此三者單一頁面。如果每個頁面包含16k*8個記憶體單元,超級頁面可以提供48kB資料空間。
在特定的例子中,控制器由一主機接收32kB寫入資料,例如,第1圖中的主機裝置120,並評斷(或判斷)熱門/冷門資料,例如,藉由上述的更新計次或更新增量時間以判斷熱門/冷門資料。控制器可以由犧牲區塊接收16kB的有效資料。然後,控制器可以透過同時對具有16kB熱門資料的單層式儲存(SLC)區塊a中的單一頁面和具有16kB冷門資料的單層式儲存(SLC)區塊b中的單一頁面,及具有16kB回收資料的單層式儲存(SLC)區塊c中的單一頁面進行編程,以編程超級頁面1002。
第11圖繪示配置包含混合類型區塊以儲存混合資料的一超級頁面的示例1100,其為配置一超級頁面包含2多層式儲存頁面及2單層式儲存頁面之例,於此例中,超級頁面的示例1100包含位於平面0的多層式儲存區塊a、位於平面1的多層式儲存區塊b、位於平面0的多層式儲存區塊c及位於平面1的多層式儲存區塊d。混合資料可以包含一般資料、系統資料及元資料,一般資料例如來自第1圖之主機設備120,系統資料(例如可靠資料)例如來自主機,元資料例如用於快閃翻譯層(FTL)管理的元資料。
控制器可以於超級區塊中分配一超級頁面1102,以儲存混合資料。基於要寫入超級頁面1102中的資料,例如依據第7圖之流程700,控制器可以將位於晶圓0的兩個多層式儲存(MLC)區塊及位於晶圓1的兩個單層式儲存(SLC)區塊組合至超級區塊中。因此,超級頁面可以組合兩個多層式儲存(MLC)頁面及兩個單層式儲存(SLC)頁面。超級區塊將混合的單層式儲存(SLC)區塊、多層式儲存(MLC)區塊及資料編程至超級區塊中,其例如依據第12B圖所進一步詳述的LM編程方法。
舉例而言,若每一頁包含16k*8個記憶體單元,且超級快的映射顆粒(mapping granularity)為4kB,每一個單層式儲存(SLC)頁面可以具有四個分配單元(allocation units,AUs),每個多層式儲存(MLC)頁可以具有八個分配單元(AUs)。控制器可接收來自主機的一般資料包含X個分配單元(AU)熱門資料及Y個分配單元冷門資料,及來自主機的Z個分配單元(AU)系統資料,其中X或Y不大於八,且Z不大於四。依據第8圖的流程800,控制器可從記憶體的犧牲區塊中選擇(8-X)個熱門資料、(8-Y)個冷門資料及(4-Z)個系統資料。控制器可以從控制器內部記憶體準備28kB的元資料,例如,第1圖的內部記憶體114,及/或從一或多個其他記憶體的區塊。例如,控制器可以準備位於平面1之晶元0的區塊b中的12kB元資料及位於平面1之晶元1的區塊d中的16kB元資料。
然後,控制器可以透過同時編程多層式儲存(MLC)區塊a中之單一頁面,其具有X個熱門一般資料及分配單元(AU)0至分配單元(AU)7中的(8-X) 個熱門回收資料、多層式儲存(MLC)區塊b中的單一頁面,其具有Y個冷門一般資料及分配單元(AU)8到分配單元(AU)15中的(8-Y)個冷門回收資料、在單層式儲存(SLC)區塊c中的單一頁面,其具有Z個系統資料和分配單元(AU)16至分配單元(AU)19中的(4-Z)個回收系統資料,及單層式儲存(SLC)區塊d中的單一頁面,其在分配單元(AU)20至分配單元(AU)23中具有元資料,以編程超級頁面1102。
第12A~12B圖分別繪示藉由全序列(full sequence)方法1200(第12A圖)及LM編程方法1250(第12B圖)以編程多層式儲存(MLC)的例子。此些方法可以由控制器以執行,控制器例如第1圖中的控制器112,控制器112耦接至記憶體,記憶體例如為第1圖中的記憶體116。
對於第12A圖所示的全序列方法,控制器可以準備對所有單元(例如,最低有效位元(least significant bit,LSB)及最高有效位元(most significant bit,MSB)兩者)中的位元進行編程。假設每個字線(word line)有m位元單元和n*8k個單元,例如每單一頁面。單一頁面可以儲存m*n kB的資料。對於全序列方法,控制器可以準備m*n kB的資料,以將字線上每個單元之所有位元編程在一起。另外,於第12A圖中,橫軸為單元的電壓門檻值,縱軸為各電壓的單元數。每個單元只指示11/01/00/10狀態中的一個,且全部四個分布包括n*8k個單元門檻值電壓狀態。全序列方法可用於在多層式儲存(MLC)區塊中編程資料,其可增進編程效率。
對於LM編程方法,記憶體單元的最低有效位元首先被編程,在記憶體單元的最低有效位元被編程後,最高有效位元被編程。對於這個過程,控制器可以準備n kB的資料,在每個字線的每個單元中以編程為一位元,然後編程字線m次,儲存m*n kB之資料。如第12B圖所示,一旦一個區塊設置了一擦除功能,且藉由單層式儲存(SLC)模式以編程,此方法會與多層式儲存(MLC)模式的情形不同。單層式儲存(SLC)模式不需要全序列或LM編程方法對一個單元中的多個位元進行編碼。於一些例子中,控制器可以在同一平面內分配m個單層式儲存(SLC)區塊,且每個單層式儲存(SLC)區塊具有固定的空間,可以被編程以更新資料。於一些例子中,控制器可以配置一個不具有單層式儲存(SLC)頁面的超級頁面。例如,控制器可以配置包括單層式儲存(SLC)頁面及多層式儲存(MLC)頁面的第一超級頁面,並且配置不含單層式儲存(SLC)頁面但包含多層式儲存(MLC)頁面第二超級頁面。於一些例子中,控制器可以使用LM編程方法在同一平面內組合兩個單層式儲存(SLC)區塊,以便與超級區塊內的其他多層式儲存(MLC)區塊(每個單元具有兩個位元)具有相同的頁碼。
第13圖繪示從主機端及裝置端兩者配置資料至記憶體中之多個超級區塊的示例1300。主機可以是第1圖的主機裝置120,裝置可以是第1圖的裝置110,且記憶體可以是第1圖的記憶體116。資料配置可以由一控制器以執行,例如第1圖的控制器112。
待寫入記憶體的資料可以包含來自主機的使用者資料、來自記憶體的回收資料,及來自裝置110(或記憶體)的元資料。控制器可以針對不同類型的資料進行分類,並且組合n個超級區塊,以根據如上所述的一或多個策略來配置資料。每個超級區塊是當前資料區塊(CDB),包含來自記憶體中不同平面的多個單一區塊。
控制器可以為不同類型的資料配置不同的超級區塊。例如,第13圖所示,當前資料區塊(CDB)#1被設置以儲存來自主機的使用者資料、當前資料區塊(CDB)#2被設置以儲存使用者資料、回收資料及元資料、…、當前資料區塊(CDB)#n-1被設置以儲存回收資料,及當前資料區塊(CDB)#n被設置以儲存元資料。控制器可同時管理n個超級區塊。
本案所公開及其他示例可以被實現為一個或多個電腦程式產品,例如,由電腦可讀性媒體所編碼的電腦程式指令之一個或多個模組,用於由資料處理設備執行或者控制資料處理設備之操作。電腦可讀性媒體可以是一機器可讀性儲存裝置、一機器可讀性儲存基板、一記憶體裝置或其一或多者之組合。「資料處理裝置」之用語涵蓋用於處理資料的所有設備、裝置和機器,例如包括一可編程處理器、一電腦或多個處理器或電腦。除了硬體之外,設備還可以包括為電腦程式創建執行環境的程式碼,例如,用以構成處理器之韌體的程式碼,一協議組(protocol stack)、一資料庫管理系統、一作業系統,或其至少一或多者之組合。
系統可以涵蓋用於處理資料的所有設備、裝置及機器,例如包括一可編程處理器、一電腦或多個處理器或電腦。除了硬體之外,系統還可以包括為電腦程式創建執行環境的程式碼,例如,用以構成處理器之韌體的程式碼,一協議組(protocol stack)、一資料庫管理系統、一作業系統,或其至少一或多者之組合。
電腦軟體(也稱為程式,軟體,軟體應用程式,腳本(script)或程式碼)可以以任何形式的程式語言編寫,包括編譯或直譯語言,並且可以以任何形式部署,包括一獨立程式、一模組、一元件、一子例行程式(subroutine)或其他單元適合於計算環境中使用。電腦軟體不一定對應於檔案系統中的一檔案。程式可以儲存在保存其他程式或資料(例如,儲存於標記語言檔案(markup language document)中的一個或多個腳本)的一檔案之一部分中,專用於所討論的程式之單一檔案中,或者儲存在多個協調檔案(例如,多個檔案儲存一或多個模組、子程式或程式碼的部分)。電腦軟體可以部署在一台電腦上,或是位於一個站點或分散於多個站點並透過通訊網路互連的多台電腦上執行。
本文中描述的程序(process)和邏輯流程可以由一或多個可編程處理器執行一或多個電腦程式以實現本文所述的功能。程序和邏輯流程也可以由專用邏輯電路,例如,FPGA(現場可程式化閘陣列)或ASIC(特殊應用積體電路)以執行,且裝置也可以由此實現。
適合執行一電腦程式的處理器包括,通用和專用微處理器兩種,及任何類型的數位電腦之任何一個或多個處理器,可作為例子。通常,處理器將從唯讀記憶體或隨機存取記憶體或此兩者接收指令和資料。一電腦的基本元件可以包括用於執行指令的處理器及用於儲存指令和資料的一或多個記憶體裝置。通常,一電腦還可以包括,一個或多個用於儲存資料的大容量儲存裝置,例如,磁碟,磁光碟或光碟,或者可操作地耦接,以從其接收資料、傳送資料、或接收及傳送資料。然而,一電腦不需要有這樣的裝置。電腦可讀性媒體適於儲存電腦程式指令及資料,電腦可讀性媒體可以包括所有形式的非揮發性記憶體、媒體和記憶體裝置,例如包括半導體記憶體裝置,例如EPROM,EEPROM,和快閃記憶體裝置、磁碟。處理器和記憶體可以由專用邏輯電路以擴充,或者併入專用邏輯電路。
雖然本文可描述許多細節,但是這些不應被解釋為對要求保護的發明範圍或可能要求保護的發明範圍之限制,而是作為特定於特定實施例的特徵的描述。在本文所描述的一些特徵不僅在單一實施例實現,也可以在單一實施例中組合多個單一實施例實現。相反地,在單一實施例的上下文中描述的各種特徵也可以在多個實施例中單獨或以任何合適的子組合來實現。此外,儘管上文可以將特徵描述為以某些組合運作,甚至最初的要求保護範圍亦同,但是在一些情況下,來自所要求保護的組合的一個或多個特徵可以從此組合中刪除,並且所要求保護的組合可以針對子組合或子組合之變形。類似地,儘管在附圖中以特定的順序描述了操作,但是這不應該被理解為要求以所繪示的特定順序或按順序執行此操作,或者要執行所有繪示出的操作以實現預期的結果。
雖然本案已以實施例揭露如上,然其並非用以限定本案,任何熟習此技藝者,在不脫離本案之精神和範圍內,當可作各種之更動與潤飾,因此本案之保護範圍當視後附之申請專利範圍所界定者為準。
100‧‧‧系統
110‧‧‧裝置
112‧‧‧裝置控制器
113‧‧‧處理器
114‧‧‧內部記憶體
116‧‧‧記憶體
120‧‧‧主機裝置
200‧‧‧於一記憶體中指定的超級區塊之示例
202、204、206、250‧‧‧超級區塊
252、902、1002、1102‧‧‧超級頁面
300‧‧‧繪示於一記憶體中管理區塊的示例300
302‧‧‧未使用區塊群組
304‧‧‧當前資料區塊群組
306‧‧‧資料區塊群組
308‧‧‧犧牲區塊群組
400‧‧‧區塊資訊表
500‧‧‧配置資料至一超級區塊的一超級頁面的示例
600‧‧‧將資料由一需求寫入於一記憶體中之一超級區塊的一超級頁面的流程
700‧‧‧根據需求於超級區塊中分配超級頁面之流程
800‧‧‧準備資料以對超級頁面中的單一頁面進行編程的流程
602~610、702~708、802~812‧‧‧步驟
900‧‧‧主機裝置進行一系列寫入需求時,分配一超級頁面的示例
1000‧‧‧於一超級區塊中配置一超級頁面以混合熱門、冷門及回收資料的示例
1100‧‧‧配置包含混合類型區塊以儲存混合資料的一超級頁面的示例
1200‧‧‧全序列方法
1250‧‧‧LM編程方法
1300‧‧‧從主機端及裝置端兩者配置資料至記憶體中之多個超級區塊的示例
為讓本揭示內容之上述和其他目的、特徵、優點與實施例能更明顯易懂,所附圖示之說明如下: 第1圖係根據本案一或多個實施例所繪示之用以管理記憶體的一系統; 第2A圖係根據本案一或多個實施例所繪示之一記憶體中指定之超級區塊; 第2B圖係根據本案一或多個實施例所繪示之一記憶體中之另一超級區塊; 第3圖係根據本案一或多個實施例所繪示之於一記憶體中管理區塊之一狀態圖; 第4圖係根據本案一或多個實施例所繪示之於一記憶體中之一平面的一區塊資料表之一例; 第5圖係根據本案一或多個實施例所繪示的配置資料至一超級頁面之一例;以及 第6圖係根據本案一或多個實施例所繪示的一種程序用以將資料從一需求寫入至一超級區塊的一超級頁面之一例。 第7圖係根據本案一或多個實施例所繪示的一種程序用以依據一需求以配置一超級頁面之一例。 第8圖係根據本案一或多個實施例所繪示的一種程序用以準備資料以編程具有一超級頁面的一單一頁面之一例。 第9圖係根據本案一或多個實施例所繪示的配置一超級頁面用以依序寫入之一例。 第10圖係根據本案一或多個實施例所繪示的配置用於混和類型資料的一超級頁面之一例。 第11圖係根據本案一或多個實施例所繪示的配置包含混合類型資料的區塊用以儲存混和資料的一超級頁面之一例。 第12A圖係根據本案一或多個實施例所繪示的藉由全序列編程方法以編程一MLC單元之一例。 第12B圖係根據本案一或多個實施例所繪示的的藉由LM編程方法以編程一MLC單元之一例。 第13圖係根據本案一或多個實施例所繪示的游一主機及一客戶端配置資料至多個超級區塊之一例。
Claims (20)
- 一種記憶體控制器,用以管理一記憶體中的資料配置,該記憶體控制器包含: 一控制電路,耦接於該記憶體,該記憶體具有一平面,該平面包含至少兩個物理區塊,該控制電路被設置用以: 判斷一或多個待寫入該記憶體的資料特徵; 基於被判斷的該一或多個資料特徵及該平面之該些物理區塊的一區塊資訊,以配置一超級區塊(super block)的一超級頁面(super page),該超級區塊組合來自該平面上的一或多個物理區塊,該超級頁面組合來自該超級區塊中相應該一或多個物理區塊的一或多個單一頁面(single page); 配置一資料至該超級頁面中的該一或多個單一頁面;以及 編程該超級頁面以將該資料寫入該一或多個單一頁面。
- 如申請專利範圍第1項所述之記憶體控制器,其中該控制電路被設置為藉由判斷該超級區塊包含該超級頁面且該超級頁面為空白並適於儲存該資料,以配置該超級區塊的該超級頁面。
- 如申請專利範圍第1項所述之記憶體控制器,其中該控制電路被設置為用以配置該超級區塊的該超級頁面,藉由: 基於該平面之該一或多個物理區塊的該區塊資訊,以由該平面選擇該一或多個物理區塊; 基於該資料特徵,擦除每一個被選擇的該一或多個物理區塊;以及 從該平面中的該一或多個物理區塊以組合該一或多個單一頁面至該超級頁面。
- 申請專利範圍第1項所述之記憶體控制器,其中該控制電路被設置為配置該資料至該超級頁面中的該一或多個單一頁面,藉由: 於該超級頁面中的一第一空白單頁準備該資料; 判斷一第二空白單頁位於該超級頁面中;以及 於該第二空白單頁準備該資料。
- 如申請專利範圍第4項所述之記憶體控制器,其中該控制電路被設置為於該第一空白單頁準備該資料,藉由: 判斷該資料具有一特徵,該特徵對應至包含該第一空白單頁之一第一物理區塊之特徵; 將該資料填入該第一空白單頁。
- 如申請專利範圍第4項所述之記憶體控制器,其中該控制電路被設置為於該第一空白單頁準備該資料,藉由: 回應於一判斷,該判斷係表示該第一空白單頁存在於一空閒空間,選擇從一或多個犧牲區塊中一回收資料,該回收資料具有一特徵對應至該第一物理區塊之特徵;以及 將該資料及該回收資料填入該第一空白單頁。
- 如申請專利範圍第1項所述之記憶體控制器,其中該控制電路被設置為用以判斷該資料具有該特徵對應至該第一物理區塊之特徵,係藉由判斷: 該資料包含一可靠資料及該第一物理區塊為一單層式儲存(SLC)區塊; 該資料包含一一般資料及該第一物理區塊為一多層式儲存(MLC)區塊、三層式儲存(TLC)區塊及四層式儲存(QLC)區塊之其中之一者;或是 該資料包含一熱門資料且於該超級區塊中該第一物理區塊具有少於至少一其他物理區塊的一擦除次數。
- 如申請專利範圍第1項所述之記憶體控制器,其中該控制電路被設置為藉由一各別程式特徵同步編程具有該資料的每個該一或多個單一頁面,以編程該超級頁面,該單一頁面的該各別程式特徵對應至被配置於該單一頁面的資料的一特徵。
- 如申請專利範圍第8項所述之記憶體控制器,其中該資料包含一可靠資料,該可靠資料被配置至該單一頁面,且該單一頁面為一單層式儲存(SLC)頁面。
- 如申請專利範圍第8項所述之記憶體控制器,其中該資料包含一一般資料,該一般資料被配置至該單一頁面,且該單一頁面為為一多層式儲存(MLC)頁面,以及 其中該一般資料藉由一全序列編程方法及一LM編程方法,以被編程至該單一頁面。
- 如申請專利範圍第1項所述之記憶體控制器,其中該資料與一指令相關,以及 其中該控制電路被設置為依據一需求,以分析該資料特徵。
- 如申請專利範圍第11項所述之記憶體控制器,其中該需求包含: 一寫入需求,用以從一主機之外部耦接的該記憶體寫入資料; 一回收需求,用以搬移位於該記憶體中的至少一犧牲區塊之一有效資料;或 一系統需求,用以儲存與該記憶體相關之一元資料;以及 其中該資料包含來自該主機的一回收資料、該有效資料或該元資料之至少其中之一者。
- 如申請專利範圍第11項所述之記憶體控制器,其中該需求包含一系列的寫入需求,以及 其中該控制電路被設置以藉由將來自該平面的最大數量的該一或多個物理區塊組合到該超級區塊並擦除每個位於該超級區塊之該一或多個物理區塊,使得每個位於該超級區塊之該一或多個物理區塊成為單層式儲存(SLC)、多層式儲存(MLC) 、三層式儲存(TLC)或四層式儲存(QLC)之類型的其中之一者,藉此以配置該超級區塊的該超級頁面。
- 如申請專利範圍第1項所述之記憶體控制器,其中該控制電路被設置以基於判斷的該資料特徵分類該資料;以及 其中該控制電路被設置為藉由依據所判斷的該資料特徵,將分類的該資料配置到該超級頁面中的不同單一頁面,以將該資料配置到該超級頁面中的該一或多個單一頁面,使得具有相同特徵的該資料被收集在同一單一頁面中。
- 如申請專利範圍第1項所述之記憶體控制器,其中該控制電路被設置為基於一資料來源、一存取頻率、一系統或一塊取、或一另一資料或一元資料,以分類該資料。
- 如申請專利範圍第1項所述之記憶體控制器,其中該控制電路被設置用以: 依據被判斷的該資料特徵,以判斷該資料包含不同類型資料;以及 藉由為該超級頁面中的不同類型的資料準備一相應之單一頁面以配置該超級區塊的該超級頁面。
- 如申請專利範圍第1項所述之記憶體控制器,其中該控制電路被設置以維持該平面中每個獨立物理區塊的該區塊資訊;以及 其中該平面中的一物理區塊的該區塊資訊包括一或多個參數,該一或多個參數包含一區塊類型、一擦除次數、一有效次數、一讀取次數、一擦除延遲時間、一第一標誌用以指示是否該物理區塊位於一當前資料區塊,及一第二標誌用以指示是否該物理區塊為一未使用區塊。
- 如申請專利範圍第1項所述之記憶體控制器,其中該控制電路被設置為用以組合複數個超級區塊,每個超級區塊被配置為用於相應類型的資料。
- 一種記憶體系統,包含: 一記憶體,包含複數個物理區塊;以及 一控制器,被設置為用以管理一記憶體中的資料配置,藉由: 判斷待寫入記憶體的一或多個資料特徵; 基於該被判斷的該一或多個資料特徵以配置一超級區塊的一超級頁面及該些物理區塊的區塊資訊,該超級區塊組合來自該記憶體的一或多個物理區塊,該超級頁面組合來自該超級區塊中相應一或多個物理區塊的一或多個單一頁面; 配置一資料至該超級頁面中的該一或多個單一頁面;以及 編程該超級資料以將該資料寫入至該一或多個單一頁面。
- 一種於一記憶體中管理資料配置的方法,包含: 藉由一控制電路維持該記憶體中獨立物理區塊的區塊資訊; 該控制電路根據一需求及該區塊資訊以配置一超級區塊的一超級頁面,該超級區塊將來自該記憶體的至少一個物理區塊進行組合,該超級頁面組合來自該超級區塊中該至少一物理區塊所對應的至少一單一頁面; 藉由該控制電路準備該超級頁面的該至少一單一頁面中的一資料,該資料包括與該需求相關的資料; 藉由該控制電路編程該超級頁面已將該資料寫入該至少一單一頁面中。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/835,859 US10387243B2 (en) | 2017-12-08 | 2017-12-08 | Managing data arrangement in a super block |
US15/835,859 | 2017-12-08 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI647702B TWI647702B (zh) | 2019-01-11 |
TW201926350A true TW201926350A (zh) | 2019-07-01 |
Family
ID=65804174
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW107105679A TWI647702B (zh) | 2017-12-08 | 2018-02-14 | 記憶體控制器、記憶體系統及於一記憶體中管理資料配置的方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10387243B2 (zh) |
CN (1) | CN109902039B (zh) |
TW (1) | TWI647702B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11809748B2 (en) | 2022-03-10 | 2023-11-07 | Silicon Motion, Inc. | Control method of flash memory controller and associated flash memory controller and electronic device |
Families Citing this family (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11614893B2 (en) | 2010-09-15 | 2023-03-28 | Pure Storage, Inc. | Optimizing storage device access based on latency |
KR102516106B1 (ko) * | 2018-02-14 | 2023-03-31 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 이를 포함하는 메모리 시스템 |
CN108829344A (zh) * | 2018-05-24 | 2018-11-16 | 北京百度网讯科技有限公司 | 数据存储方法、装置及存储介质 |
KR20200043814A (ko) * | 2018-10-18 | 2020-04-28 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작 방법 |
KR20200052150A (ko) * | 2018-11-06 | 2020-05-14 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작방법 |
KR20200076923A (ko) * | 2018-12-20 | 2020-06-30 | 에스케이하이닉스 주식회사 | 저장 장치, 컨트롤러 및 저장 장치의 동작 방법 |
KR20200085522A (ko) * | 2019-01-07 | 2020-07-15 | 에스케이하이닉스 주식회사 | 이종 메모리를 갖는 메인 메모리 장치, 이를 포함하는 컴퓨터 시스템 및 그것의 데이터 관리 방법 |
US11194473B1 (en) * | 2019-01-23 | 2021-12-07 | Pure Storage, Inc. | Programming frequently read data to low latency portions of a solid-state storage array |
KR20200134784A (ko) * | 2019-05-23 | 2020-12-02 | 에스케이하이닉스 주식회사 | 저장 장치 및 그 동작 방법 |
US10937468B2 (en) | 2019-07-03 | 2021-03-02 | Micron Technology, Inc. | Memory with configurable die powerup delay |
US10991413B2 (en) * | 2019-07-03 | 2021-04-27 | Micron Technology, Inc. | Memory with programmable die refresh stagger |
KR20210025412A (ko) * | 2019-08-27 | 2021-03-09 | 에스케이하이닉스 주식회사 | 메모리 시스템, 메모리 컨트롤러 및 동작 방법 |
US11640259B2 (en) * | 2020-05-21 | 2023-05-02 | Western Digital Technologies, Inc. | Use of surplus erase block pairs in super block formation |
US11726689B2 (en) * | 2020-11-20 | 2023-08-15 | Micron Technology, Inc. | Time-based combining for block families of a memory device |
US20220171713A1 (en) * | 2020-11-30 | 2022-06-02 | Micron Technology, Inc. | Temperature-aware data management in memory sub-systems |
KR20220089868A (ko) * | 2020-12-22 | 2022-06-29 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그 동작 방법 |
US11847324B2 (en) | 2020-12-31 | 2023-12-19 | Pure Storage, Inc. | Optimizing resiliency groups for data regions of a storage system |
US11614880B2 (en) | 2020-12-31 | 2023-03-28 | Pure Storage, Inc. | Storage system with selectable write paths |
CN112817879B (zh) * | 2021-01-11 | 2023-04-11 | 成都佰维存储科技有限公司 | 垃圾回收方法、装置、可读存储介质及电子设备 |
TWI808384B (zh) * | 2021-02-23 | 2023-07-11 | 慧榮科技股份有限公司 | 儲存裝置、快閃記憶體控制器及其控制方法 |
KR102569823B1 (ko) * | 2021-02-24 | 2023-08-24 | 에스케이하이닉스 주식회사 | 스토리지 장치 및 그 동작 방법 |
CN112905388B (zh) * | 2021-03-15 | 2023-12-15 | 杭州迪普科技股份有限公司 | 页面配置信息处理方法及装置 |
US20230359365A1 (en) * | 2021-03-16 | 2023-11-09 | Micron Technology, Inc. | Memory management procedures for write boost mode |
KR20230018215A (ko) * | 2021-07-29 | 2023-02-07 | 삼성전자주식회사 | 스토리지 장치, 스토리지 컨트롤러 및 스토리지 컨트롤러의 동작 방법 |
US11593032B1 (en) * | 2021-08-06 | 2023-02-28 | Micron Technology, Inc. | Memory sub-system data migration |
US20230176778A1 (en) * | 2021-12-06 | 2023-06-08 | Micron Technology, Inc. | Managing single-level and multi-level programming operations |
US20230333761A1 (en) * | 2022-04-14 | 2023-10-19 | Western Digital Technologies, Inc. | Tracking Data Usage in Storage Devices |
CN116382598B (zh) * | 2023-06-05 | 2023-09-08 | 深圳大普微电子科技有限公司 | 数据搬移方法、闪存设备控制器及闪存设备 |
TWI831704B (zh) * | 2023-06-12 | 2024-02-01 | 慧榮科技股份有限公司 | 藉助於動態區塊配置來進行記憶體裝置的儲存空間管理之方法、記憶體控制器、記憶體裝置以及電子裝置 |
CN117472590B (zh) * | 2023-12-27 | 2024-03-19 | 苏州元脑智能科技有限公司 | 存储调度方法、组件、存储装置、计算机设备及介质 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100512181B1 (ko) | 2003-07-11 | 2005-09-05 | 삼성전자주식회사 | 멀티 레벨 셀을 갖는 플래시 메모리 장치와 그것의 독출방법 및 프로그램 방법 |
US20050251617A1 (en) * | 2004-05-07 | 2005-11-10 | Sinclair Alan W | Hybrid non-volatile memory system |
US7350044B2 (en) * | 2004-01-30 | 2008-03-25 | Micron Technology, Inc. | Data move method and apparatus |
US20080052446A1 (en) | 2006-08-28 | 2008-02-28 | Sandisk Il Ltd. | Logical super block mapping for NAND flash memory |
US8762620B2 (en) * | 2007-12-27 | 2014-06-24 | Sandisk Enterprise Ip Llc | Multiprocessor storage controller |
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 |
US8688894B2 (en) | 2009-09-03 | 2014-04-01 | Pioneer Chip Technology Ltd. | Page based management of flash storage |
KR101638061B1 (ko) * | 2009-10-27 | 2016-07-08 | 삼성전자주식회사 | 플래시 메모리 시스템 및 그것의 플래시 조각 모음 방법 |
US8832507B2 (en) | 2010-08-23 | 2014-09-09 | Apple Inc. | Systems and methods for generating dynamic super blocks |
CN102866956B (zh) * | 2012-09-14 | 2015-02-18 | 上海宝存信息科技有限公司 | 基于固态存储介质的数据实时跟踪存储系统及方法 |
US8914670B2 (en) * | 2012-11-07 | 2014-12-16 | Apple Inc. | Redundancy schemes for non-volatile memory using parity zones having new and old parity blocks |
US9715445B2 (en) * | 2013-03-14 | 2017-07-25 | Sandisk Technologies Llc | File differentiation based on data block identification |
US9262268B2 (en) * | 2013-12-20 | 2016-02-16 | Seagate Technology Llc | Method to distribute user data and error correction data over different page types by leveraging error rate variations |
US9632712B2 (en) * | 2014-07-02 | 2017-04-25 | Sandisk Technologies Llc | System and method of updating metablocks associated with multiple memory dies |
US10141049B2 (en) * | 2014-12-19 | 2018-11-27 | Sandisk Technologies Llc | Nonvolatile memory system storing system data in marginal word lines |
US10180805B2 (en) | 2015-03-25 | 2019-01-15 | SK Hynix Inc. | Memory system and operating method thereof |
CN107422992A (zh) * | 2017-07-31 | 2017-12-01 | 郑州云海信息技术有限公司 | 一种SSD运行时Journal保存方法及系统 |
-
2017
- 2017-12-08 US US15/835,859 patent/US10387243B2/en active Active
-
2018
- 2018-02-14 TW TW107105679A patent/TWI647702B/zh active
- 2018-02-24 CN CN201810157021.2A patent/CN109902039B/zh active Active
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11809748B2 (en) | 2022-03-10 | 2023-11-07 | Silicon Motion, Inc. | Control method of flash memory controller and associated flash memory controller and electronic device |
TWI823649B (zh) * | 2022-03-10 | 2023-11-21 | 慧榮科技股份有限公司 | 快閃記憶體控制器的控制方法、快閃記憶體控制器以及電子裝置 |
Also Published As
Publication number | Publication date |
---|---|
CN109902039B (zh) | 2023-02-28 |
TWI647702B (zh) | 2019-01-11 |
CN109902039A (zh) | 2019-06-18 |
US10387243B2 (en) | 2019-08-20 |
US20190179698A1 (en) | 2019-06-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI647702B (zh) | 記憶體控制器、記憶體系統及於一記憶體中管理資料配置的方法 | |
US10915442B2 (en) | Managing block arrangement of super blocks | |
JP7366795B2 (ja) | メモリシステムおよび制御方法 | |
US8886990B2 (en) | Block management schemes in hybrid SLC/MLC memory | |
JP5907255B2 (ja) | Lsb及びmsbページにおける選択的データ記憶 | |
US9996302B2 (en) | Storage device writing data on the basis of stream | |
KR101596652B1 (ko) | 비휘발성 메모리에 대한 탄력적인 웨어 관리 | |
US20160062885A1 (en) | Garbage collection method for nonvolatile memory device | |
JP2021114038A (ja) | メモリシステムおよび制御方法 | |
WO2016135955A1 (ja) | 不揮発性メモリデバイス | |
US11436136B2 (en) | Memory system including non-volatile buffer and control method thereof | |
US9875039B2 (en) | Method and apparatus for wear-leveling non-volatile memory | |
JP7353934B2 (ja) | メモリシステムおよび制御方法 | |
KR20120030137A (ko) | 영구 가비지 컬렉션을 갖는 메모리 시스템 | |
Alsalibi et al. | A survey of techniques for architecting slc/mlc/tlc hybrid flash memory–based ssds | |
KR101403922B1 (ko) | 접근 빈도에 따라 데이터를 할당하는 저장장치 및 저장방법 | |
US20230176965A1 (en) | Media management based on data access metrics | |
TWI718710B (zh) | 資料儲存裝置以及非揮發式記憶體控制方法 | |
CN112130749A (zh) | 数据储存装置以及非挥发式存储器控制方法 | |
Im et al. | Storage architecture and software support for SLC/MLC combined flash memory | |
Kim et al. | Garbage collection technique using erasure interval for NAND flash memory-based storage systems | |
US20220269598A1 (en) | Wear leveling based on sub-group write counts in a memory sub-system | |
Matsui et al. | 3X Faster Speed Solid-State Drive with a Write Order Based Garbage Collection Scheme |