TWI455139B - 記憶體區塊選擇 - Google Patents
記憶體區塊選擇 Download PDFInfo
- Publication number
- TWI455139B TWI455139B TW099106312A TW99106312A TWI455139B TW I455139 B TWI455139 B TW I455139B TW 099106312 A TW099106312 A TW 099106312A TW 99106312 A TW99106312 A TW 99106312A TW I455139 B TWI455139 B TW I455139B
- Authority
- TW
- Taiwan
- Prior art keywords
- groups
- write operation
- superblocks
- group
- free
- 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
-
- 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
- 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
-
- 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/7204—Capacity control, e.g. partitioning, end-of-life degradation
-
- 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
Description
一般而言,本發明係關於半導體記憶體裝置、方法及系統,且更特定而言,係關於記憶體區塊選擇。
通常將記憶體裝置提供為電腦或其他電子裝置中之內部半導體積體電路。存在包含揮發性及非揮發性記憶體之諸多不同類型記憶體。揮發性記憶體可需要電力來維持其資料且包含隨機存取記憶體(RAM)、動態隨機存取記憶體(DRAM)及同步動態隨機存取記憶體(SDRAM)以及其他記憶體。非揮發性記憶體可藉由在不被供電時仍保持所儲存之資訊而提供持久資料且可包含NAND快閃記憶體、NOR快閃記憶體、唯讀記憶體(ROM)、電可擦除可程式化ROM(EEPROM)、可擦除可程式化ROM(EPROM)及相變隨機存取記憶體(PCRAM)以及其他記憶體。
記憶體裝置可組合在一起以形成一固態驅動器(SSD)。一固態驅動器可包含非揮發性記憶體,例如,NAND快閃記憶體及NOR快閃記憶體,及/或可包含揮發性記憶體,例如,DRAM及SRAM,亦包含各種其他類型之非揮發性及揮發性記憶體。
可使用一SSD來替換硬碟驅動器作為一電腦之主要儲存裝置,此乃因該固態驅動器可在效能、大小、重量、耐用性、操作溫度範圍及功率消耗方面具有優於硬驅動器之優點。舉例而言,SSD在與磁碟驅動器相比時因其缺乏移動部件而可具有優越效能,此可改善與磁碟驅動器相關聯之尋覓時間、延時及其他機電延遲。SSD製造商可使用非揮發性快閃記憶體來形成可不使用一內部電池供應之快閃SSD,因此允許該驅動器更通用且更小型。
一SSD可包含若干記憶體裝置,例如,若干記憶體晶片(如本文中所使用,「若干」某物可係指此等事物中之一者或多者,例如,若干記憶體裝置可係指一個或多個記憶體裝置)。如熟習此項技術者將瞭解,一記憶體晶片可包含若干晶粒。每一晶粒上可包含若干記憶體陣列及週邊電路。一記憶體陣列可包含若干平面,其中每一平面包含若干實體記憶體胞區塊。每一實體區塊可包含可儲存若干資料磁區之若干記憶體胞頁。
舉例而言,一SSD內之記憶體區塊選擇可涉及確定向哪些實體區塊寫入資料及擦除哪些實體區塊,以及欲以其寫入及擦除實體區塊之次序。用於SSD中之記憶體胞可限於有限數目之寫入擦除循環,該有限數目之寫入擦除循環可確定驅動器之壽命。因而,改良記憶體區塊選擇效率及分配效率可增加一SSD之壽命。
本發明包含用於記憶體區塊選擇之方法及裝置。在一個或多個實施例中,一記憶體控制器包含控制電路,其耦合至一個或多個記憶體裝置,該等記憶體裝置具有多個與其相關聯之平面群組,每一群組包含至少兩個組織成超級區塊之實體區塊平面,其中每一超級區塊包含來自該至少兩個平面中之每一者之一實體區塊。該控制電路經組態以接收與一寫入操作相關聯之一第一未指派邏輯區塊位址(LBA)且確定該多個群組中之一選定一者內之一特定自由超級區塊以用於接收與該寫入操作相關聯之資料。
在本發明之以下詳細說明中,參照形成本發明之一部分且其中以圖解說明方式顯示可如何實踐本發明之一個或多個實施例之隨附圖式。充分詳細地闡述此等實施例以使熟習此項技術者能夠實踐本發明之該等實施例,且應理解,可利用其他實施例且可在不背離本發明之範疇之情況下作出製程、電、及/或結構改變。如本文中所使用,標示符「M」、「N」、「S」、「R」及「B」(尤其是關於圖式中之參考編號)指示本發明之一個或多個實施例可包含如此標示之若干特定特徵。該等標示符可表示特定特徵之相同或不同數目。
本文中之圖遵循以下之一編號慣例,其中第一個數位或前幾個數位對應於圖式圖編號且剩餘數位識別圖式中之一元件或組件。不同圖之間的類似元件或組件可藉由使用類似數位來識別。舉例而言,110可參考圖1中之元件「10」,且一類似元件在圖2中可稱為210。如將瞭解,可添加、更換及/或消除本文中各種實施例中所示之元件以提供本發明之若干額外實施例。另外,如將瞭解,該等圖中所提供之元件之比例及相對標度意欲圖解說明本發明之實施例且不應理解為具有一限制意義。
圖1係包含多個實體區塊104-0(區塊0)、104-1(區塊1)、...、104-B(區塊B)且可根據本發明之一個或多個實施例操作之一記憶體陣列102之一圖示。雖然圖1中未顯示,但熟習此項技術者將瞭解,記憶體陣列102可連同與其操作相關聯之各種週邊電路一起位於一特定半導體晶粒上。
在圖1中所示之實例中,指示符「B」用於指示陣列102可包含若干實體區塊。作為一實例,陣列102中實體區塊之數目可係128個區塊、512個區塊或1,024個區塊,但實施例並不限於一陣列102中128之特定倍數或任一特定數目之實體區塊。此外,實施例並不限於陣列中所使用記憶體之類型,例如,非揮發性、揮發性等。在圖1中所圖解說明之實施例中,記憶體陣列102可係(舉例而言)一NAND快閃記憶體陣列102。
在此實例中,每一實體區塊104-0、104-1、...、104-B包含可作為一單位一起擦除之記憶體胞,例如,每一實體區塊中之胞可以一大致同時之方式被擦除。舉例而言,每一實體區塊中之胞可在一單個操作中一起被擦除。每一實體區塊(例如,104-0、104-1、...、104-B)含有耦合至一存取線(例如,一字線)之若干實體記憶體胞列(例如,106-0、106-1、...、106-R)。指示符「R」用於指示一實體區塊(例如,104-0、104-1、...、104-B)可包含若干列。在某些實施例中,每一實體區塊中列(例如,字線)之數目可係32,但實施例並不限於每實體區塊特定數目之列106-0、106-1、...、106-R。
如熟悉此項技術者將瞭解,每一列106-0、106-1、...、106-R可儲存一個或多個資料頁。一頁係指一程式化及/或讀取單位,例如,一起程式化及/或讀取或者作為一功能性記憶體胞群組之若干胞。在圖1中所示之實施例中,每一列106-0、106-1、...、106-R儲存一個資料頁。然而,本發明之實施例並不限於此。舉例而言,在本發明之某些實施例中,每一列可儲存多個資料頁。
在本發明之一個或多個實施例中,且如圖1中所示,與列106-0、106-1、...、106-R相關聯之一頁可根據若干實體資料磁區108-0、108-1、...、108-S儲存資料。指示符「S」用於指示一列(例如,106-0、106-1、...、106-R)可包含若干實體磁區。每一實體磁區108-0、108-1、...、108-S可對應於一邏輯磁區且可包含額外負擔資訊(諸如,錯誤校正碼(ECC)資訊及邏輯區塊位址(LBA)資訊)以及使用者資料。如熟習此項技術者將瞭解,邏輯區塊定址係通常由一主機用來識別一邏輯資訊磁區之一方案。作為一實例,一邏輯磁區可儲存表示若干資料位元組(例如,256個位元組、512個位元組或1,024個位元組)之資訊。實施例並不限於此等實例。
應注意,實體區塊104-0、104-1、...、104-B、列106-0、106-1、...、106-R、磁區108-0、108-1、...、108-S及頁之其他格式及/或組態係可能的。舉例而言,實體區塊104-0、104-1、...、104-B之列106-0、106-1、...、106-R可包含一單個邏輯磁區,該單個邏輯磁區可包含(舉例而言)多於或少於512個位元組之資料。
圖2係圖解說明具有可根據本發明之一個或多個實施例操作之多個平面群組之若干記憶體裝置之一圖示。根據本文中所闡述之一個或多個實施例,出於記憶體區塊選擇之目的,將實體記憶體胞區塊之平面組織成群組。在一個或多個實施例中,一群組可包含來自一個或多個不同記憶體陣列之若干平面。在一個或多個實施例中,對應於一群組之一個或多個平面可係來自不同記憶體裝置。
圖2中所示之實施例包含四個記憶體裝置230-0、230-1、230-2及230-3。記憶體裝置230-0、230-1、230-2及230-3之組合可稱為一記憶體單元,諸如,本文中結合圖3所進一步闡述之記憶體單元325。在一個或多個實施例中,記憶體裝置230-0、230-1、230-2及230-3形成一固態驅動器(SSD)之一記憶體單元。
記憶體裝置230-0、230-1、230-2及230-3各自可係包含每晶片多個晶粒之一半導體記憶體晶片。熟悉此項技術者將瞭解,一特定晶片上之每一晶粒可包含一記憶體陣列以及與其操作相關聯之各種週邊電路(圖2中未顯示)。
在圖2中所圖解說明之實施例中,每一記憶體裝置230-0、230-1、230-2及230-3包含兩個記憶體陣列202-0及202-1(分別顯示為晶粒0及晶粒1)。每一記憶體陣列202-0及202-1可係(諸如)結合圖1所闡述之陣列102之一快閃記憶體陣列。舉例而言,每一記憶體陣列202-0及202-1包含多個實體記憶體胞區塊,諸如,圖1中所示之區塊104-0、104-2、...、104-B。
如熟習此項技術者將瞭解,可將一陣列(例如,202-0及202-1)之實體區塊組織成多個平面。舉例而言,在圖2中所圖解說明之實施例中,可將該等記憶體陣列中之每一者劃分成一第一實體區塊平面(平面0)及一第二實體區塊平面(平面1)。然而,本發明之實施例並不限於每陣列特定數目之平面。舉例而言,在各種實施例中,一記憶體陣列可包含僅一個平面或可包含多於兩個平面。
在圖2中所圖解說明之實施例中,可將與記憶體裝置230-0、230-1、230-2及230-3相關聯之實體區塊平面組織成兩個群組,例如,240-0(群組0)及240-1(群組1)。在圖2中所圖解說明之實施例中,每一群組240-0及240-1包含來自四個記憶體陣列中之每一者之該等平面中之每一者。舉例而言,群組240-0包含四個記憶體裝置230-0、230-1、230-2及230-3中之每一者內之陣列202-0(晶粒0)之平面(平面0及平面1)。群組240-1包含四個記憶體裝置230-0、230-1、230-2及230-3中之每一者內之陣列202-1(晶粒1)之平面(平面0及平面1)。
實施例並不限於圖2中所示之實例。舉例而言,在一個或多個實施例中,一群組可包含一單個陣列內平面之一集合。作為一實例,一個群組可包含裝置230-0之陣列202-0之平面0及平面1,另一群組可包含裝置230-0之陣列202-1之平面0及平面1,且另一群組可包含裝置230-1之陣列202-0之平面0及平面1。
在某些實施例中,一群組可包含一單個記憶體裝置之不同陣列內之若干平面。作為一實例,一個群組可包含裝置230-0之陣列202-0之平面0及陣列202-1之平面0,且另一群組可包含裝置230-0之陣列202-0之平面1及陣列202-1之平面1。作為另一實例,一個群組可包含裝置230-0之陣列202-0之平面0及平面1以及陣列202-1之平面0及平面1,且另一群組可包含裝置230-1之陣列202-0之平面0及平面1以及陣列202-1之平面0及平面1。
在其中陣列(例如,202-0及202-1)包含多個平面之實施例中,平面之一群組可在某些實施例中包含來自不同記憶體裝置之一個或多個陣列中之每一者之一個平面。舉例而言,參照圖2,在一個或多個實施例中,若干群組中之每一者可包含來自四個各別記憶體裝置內四個記憶體陣列中之每一者之一個平面之一集合。舉例而言,一個群組可包含四個記憶體裝置230-0、230-1、230-2及230-3中之每一者內之陣列202-0(晶粒0)之平面0。一第二群組可包含四個記憶體裝置230-0、230-1、230-2及230-3中之每一者內之陣列202-0(晶粒0)之平面1。一第三群組可包含四個記憶體裝置230-0、230-1、230-2及230-3中之每一者內之陣列202-1(晶粒1)之平面0,且一第四群組可包含四個記憶體裝置230-0、230-1、230-2及230-3中之每一者內之陣列202-1(晶粒1)之平面1。
在一個或多個實施例中,且如圖2中所圖解說明,群組240-0及240-1各自具有若干與其相關聯之超級區塊,例如,超級區塊0、超級區塊1、...、超級區塊N。如本文中所使用,一超級區塊可係指包含來自一對應群組內每一平面之一實體區塊之實體區塊之一集合。在一個或多個實施例中,一超級區塊可橫跨多個記憶體裝置。舉例而言,一超級區塊可係包含來自一對應群組內之不同記憶體裝置內之至少兩個記憶體陣列中之每一者內之一平面之一實體區塊之實體區塊之一集合。
實施例並不限於每群組特定數目之超級區塊。作為一實例,一群組(例如,240-0及240-1)可包含每群組64個、512個或1,024個超級區塊。在圖2中所圖解說明之實施例中,與群組240-0相關聯之超級區塊245-0、245-1、...、245-N各自係包含來自與四個各別記憶體裝置230-0、230-1、230-2及230-3相關聯之四個陣列202-0(例如,晶粒0)中之每一者之若干實體區塊之實體區塊之一各別集合。同樣,與群組240-1相關聯之超級區塊245-0、245-1、...、245-N各自係包含來自與四個各別記憶體裝置230-0、230-1、230-2及230-3相關聯之四個陣列202-1(例如,晶粒1)中之每一者之若干實體區塊之實體區塊之一各別集合。
在本發明之一個或多個實施例中,對於對應於一特定群組之若干平面中之每一者而言,一超級區塊可係每平面一個實體區塊之一集合。舉例而言,在圖2中所圖解說明之實施例中,超級區塊245-0、245-1、...、245-N中之每一者可係八個實體區塊(對於群組之四個不同記憶體裝置230-0、230-1、230-2及230-3之每一陣列202-0而言每平面一個區塊)之一各別集合。
然而,在一個或多個實施例中,一超級區塊並非必須包含來自一給定記憶體陣列(例如,202-0及202-1)中之每一平面之一實體區塊。舉例而言,在圖2中所圖解說明之實施例中,超級區塊245-0、245-1、...、245-N中之每一者可係四個實體區塊(例如,來自群組之四個不同記憶體裝置230-0、230-1、230-2及230-3之每一陣列202-0中之平面中之一者的一個區塊或來自四個不同記憶體裝置230-0、230-1、230-2及230-3之每一陣列202-1中之平面中之一者的一個區塊)之一各別集合。
在各種實施例中,可同時對一超級區塊之實體區塊執行一擦除操作。亦即,可大致同時擦除一特定超級區塊之實體區塊集合。並且,在各種實施例中,可同時自與一特定超級區塊相關聯之實體區塊頁讀取且可同時寫入至該等實體區塊頁。
本發明之實施例並不限於圖2中所圖解說明之實例。舉例而言,在一個或多個實施例中,一群組可包含多於或少於四個記憶體陣列內之實體區塊平面。作為一實例,可將圖2中所示之實施例組織成四個群組:一第一群組可包含記憶體裝置230-0及230-1內之陣列202-0(晶粒0)之平面;一第二群組可包含記憶體裝置230-2及230-3內之陣列202-0(晶粒0)之平面;一第三群組可包含記憶體裝置230-0及230-1內之陣列202-1(晶粒1)之平面;且一第四群組可包含記憶體裝置230-2及230-3內之陣列202-1(晶粒1)之平面。在此實例中,與該四個群組相關聯之超級區塊可包含兩個實體區塊(來自與特定群組相關聯之兩個陣列中之每一者的一個實體區塊)或可包含四個實體區塊(對於與特定群組相關聯之兩個陣列中之每一者而言每平面一個實體區塊)。作為一實例,對於每超級區塊總共4,096個實體磁區而言,四個實體區塊(對於與特定群組相關聯之兩個陣列中之每一者而言每平面一個實體區塊)之一超級區塊可包含每實體區塊128個頁及每頁(假定4KB之頁)8個實體磁區。在此實例中,可將4,096個位址之一LBA範圍映射至一特定4,096磁區之實體超級區塊。然而,本發明之實施例並不限於一特定頁大小、磁區大小、及/或實體區塊大小。舉例而言,實施例並不限於每超級區塊特定數目之磁區。
在一個或多個實施例中,一特定超級區塊(例如,245-0至245-N)內之實體區塊可具有不同區塊位置編號。亦即,一特定超級區塊內之實體區塊可在對應於一給定群組(例如,240-0及240-1)之平面內位於不同定位處。作為一個實例,考量對應於群組240-0之超級區塊245-0之實體區塊。對應於超級區塊245-0之實體區塊集合可包含位於接近裝置230-0之陣列202-0之一頂部部分之實體區塊且可包含位於接近裝置230-1、230-2及230-3之陣列202-0之中間或下部部分之實體區塊。
如下文結合圖3所進一步闡述,一記憶體系統(諸如,一固態驅動器)可包含一控制器,該控制器可自一記憶體存取裝置(例如,一主機裝置(諸如,一膝上型電腦、一PC、一媒體播放器、一數位相機等)之一處理器)接收與資料寫入操作相關聯之邏輯區塊位址(LBA)。然後,該控制器可確定在其處寫入對應於寫入操作之資料之一特定實體位置(例如,一實體區塊位址(PBA))。該控制器可使用各種方法來確定將資料寫入至其之一自由區塊之位置。舉例而言,可維持一個或多個查找表(LUT)以用於將LBA映射至自由PBA。
圖3係根據本發明之一個或多個實施例之一記憶體系統300之一功能方塊圖。在一個或多個實施例中,系統300係一固態驅動器。亦即,圖3之實施例可圖解說明一固態驅動器300之一個實施例之組件及架構。在圖3中所圖解說明之實施例中,系統300包含一控制器320、一主機介面324、一陣列介面326及固態記憶體單元325。
在圖3中所圖解所之實施例中,記憶體單元325包含若干記憶體裝置330-0、330-1、...、330-N。作為一實例,該等記憶體裝置可係(諸如)快閃記憶體(例如,NAND快閃或NOR快閃裝置)之非揮發性記憶體裝置以及其他裝置。記憶體裝置330-0、330-1、...、330-N可係(諸如)結合圖2所闡述之記憶體裝置230-0、230-1、230-2及230-3之記憶體裝置。雖然在圖3中未顯示,但在一個或多個實施例中,記憶體裝置330-0、330-1、...、330-N中之每一者可與SSD 300之一特定通道相關聯。亦即,系統300可係一多通道系統。
在一個或多個實施例中,且如圖3中所圖解說明,記憶體裝置330-0、330-1、...、330-N中之每一者包含若干記憶體陣列302-0、302-1、302-3、...、302-M。記憶體陣列302-0、302-1、302-3、...、302-M可係(諸如)結合圖1所闡述之記憶體陣列102或結合圖2所闡述之記憶體陣列202-0及202-1之陣列。舉例而言,記憶體陣列302-0、302-1、302-3、...、302-M中之每一者可包含多個實體記憶體胞區塊。在一個或多個實施例中,記憶體陣列302-0、302-1、302-3、...、302-M中之每一者可表示一單個晶粒,且記憶體裝置330-0、330-1、...、330-N中之每一者可表示具有每晶片多個晶粒之一記憶體晶片。
在一個或多個實施例中,可如上文結合圖2所闡述將記憶體單元325內之實體記憶體胞區塊之平面組織成多個群組。舉例而言,該等群組可具有若干與其相關聯之超級區塊。該等超級區塊可係實體區塊之各別集合,其中每一集合包含來自對應於該群組之多個平面之一實體區塊。
如圖3中所圖解說明,記憶體單元325可經由一陣列介面326耦合至控制器320。陣列介面326可用於在記憶體單元325與控制器320之間傳送資訊。控制器320可經由主機介面324耦合至一記憶體存取裝置(例如,一主機裝置之一處理器(未顯示))。一主機裝置可包含一計算裝置,諸如,一個人電腦(PC)、一膝上型電腦、一數位相機、一媒體播放器或一蜂巢式電話以及各種其他計算裝置。作為一實例,當記憶體單元325如圖3中所圖解說明用於一計算裝置中之資料儲存時,主機介面324可係一串列先進技術附件(SATA)以及其他裝置,例如,控制器320可係一SATA控制器或一USB控制器以及其他裝置。亦即,實施例並不限於一特定類型之控制器320及/或主機介面324。
在一個或多個實施例中,且如圖3中所圖解說明,控制器320包含控制電路322。控制電路322可包含一處理器323、一空間管理器327、一記憶體329(例如,一RAM)以及用於記憶體系統300之操作之其他控制電路(未顯示)。在一個或多個實施例中,控制器320用於將資料寫入至記憶體單元325且自記憶體單元325讀取資料。
在一個或多個實施例中,控制器320可經由主機介面324自一主機裝置接收邏輯區塊位址(LBA)331。與記憶體區塊選擇之先前技術方法不同,在本發明之一個或多個實施例中,由控制器320接收之LBA 331可係未指派LBA。亦即,所接收之LBA 331並未預先指派給一特定群組,例如,諸如圖2中所示之群組240-0及240-1之一平面群組。同樣,在各種實施例中,所接收之LBA 331並未預先指派給一特定超級區塊,例如,圖2中所示之超級區塊245-0至245-N。
舉例而言,在一個或多個實施例中,控制電路(例如,控制電路322)經組態以接收與一第一寫入操作相關聯之一第一未指派LBA且確定該多個群組中之一選定一者內之一特定自由超級區塊以用於接收與該第一寫入操作相關聯之資料。如本文中所使用,一未指派LBA係指未預先指派給一特定群組之一LBA,因此當結合一寫入操作接收該LBA時,並未預先確定欲將與該寫入操作相關聯之資料寫入至哪一位置(例如,群組)。
在一個或多個實施例中,控制電路322經組態以將包含第一未指派LBA之一LBA範圍指派給多個群組中之選定一者內之特定自由超級區塊。在各種實施例中,控制電路322可經組態以接收與一第二寫入操作相關聯之一第二LBA且當該第二LBA係在指派給該選定超級區塊之LBA範圍內(例如,該第二LBA尚未被寫入或存取但係在先前指派給一特定超級區塊之LBA範圍內)時將對應於該第二寫入操作之資料寫入至相同選定超級區塊。
在一個或多個實施例中,該第二LBA可係一未指派LBA(例如,該第二LBA可係不在先前指派給一特定超級區塊之一LBA範圍內之一LBA)。在此等實施例中,控制電路可經組態以將該第二未指派LBA指派給一不同選定超級區塊(例如,除將對應於第一寫入操作之資料寫入至其之選定超級區塊以外之一超級區塊)。
在各種實施例中,控制電路322經組態以針對多個群組中之每一者追蹤每一群組中可用之自由超級區塊之數目。控制電路322可經組態以至少部分地基於該多個群組中之每一者內可用自由超級區塊之數目選擇該多個群組中之一者來接收與該第一寫入操作相關聯之資料。在一個或多個實施例中,該控制電路經組態以至少部分地基於對於該多個群組中之每一者而言自由超級區塊與已使用超級區塊之一比選擇該多個群組中之一者來接收與該第一寫入操作相關聯之資料。
在一個或多個實施例中,控制電路322經組態以在該第一寫入操作之後將該多個群組中之各別選定一者指派給先前未指派LBA,以使得將與所有後續寫入操作相關聯之對應於先前未指派LBA之資料寫入至各別經指派群組內之一自由超級區塊。
如下文參照圖4A至圖4D所進一步闡述,在一個或多個實施例中,控制電路322經組態以接收與一第二寫入操作相關聯之一第二LBA(例如,與一後續寫入操作相關聯之一不同LBA),且確定該多個群組中之一選定一者內之一特定自由超級區塊以用於接收與該第二寫入操作相關聯之資料。控制電路322可經組態以選擇多個群組中之一者以在一循環比對基礎上接收與後續寫入操作相關聯之資料。在各種實施例中,該多個群組中之與後續寫入操作相關聯之選定一者係不同於該多個群組中之與寫入操作相關聯之選定一者。
如本文中所使用,術語第一寫入操作及第二寫入操作可用於指示不同寫入操作,例如,一特定寫入操作及一後續寫入操作。亦即,術語第一及第二寫入操作不限於連續操作或一特定執行時間。
在各種實施例中,一旦將一未指派LBA指派給一特定群組(例如,在一第一寫入操作中指派給多個群組中之一選定一者內之一特定超級區塊),即可更新與一第二(例如,後續)寫入操作相關聯之特定LBA(例如,先前未指派LBA)。在一個或多個實施例中,將一新自由超級區塊指派給與第二寫入操作相關聯之先前未指派LBA,以使得將對應於該第二寫入操作之已更新資料寫入至該新超級區塊(例如,不同於在第一操作中將對應於特定LBA之資料寫入至其之超級區塊之一超級區塊)。在一個或多個此等實施例中,該新超級區塊可與在第一操作中將對應於特定LBA之資料寫入至其之超級區塊在相同群組中或在一不同群組中。
如本文中所闡述,可以各種方式(例如,基於針對該等群組中之每一者所確定之自由超級區塊之一計數、基於與該等群組中之每一者相關聯之自由超級區塊與已使用超級區塊之一比、在該等群組間之一循環比對基礎上等)選擇與該第二寫入操作相關聯之新超級區塊。舉例而言,在某些實施例中,控制電路322可經組態以針對該多個群組中之每一者確定自由超級區塊之當前數目且至少部分地基於針對該多個群組中之每一者所確定之自由超級區塊之當前數目選擇該多個群組中之一者來接收對應於該第二寫入操作之資料。在各種實施例中,將對應於該第二寫入操作之資料寫入至具有最高數目自由超級區塊之群組內之一超區塊。
作為一實例,在某些實施例中,超級區塊中之每一者能夠儲存可對應於4,096個LBA之4,096個資料磁區(例如,在此實例中,假定一LBA對應於一個資料磁區)。在此實例中,可將4,096個LBA之一範圍指派給超級區塊中之每一者。在各種實施例中,若控制電路接收係在先前指派給一特定超級區塊之一LBA範圍內之一LBA,則將對應於LBA之資料寫入至相同特定超級區塊。若所接收之LBA係一未指派LBA(例如,係在先前指派給一超級區塊之一LBA範圍之外之一LBA),則將對應於彼LBA之資料寫入至一新(例如,不同)超級區塊。
在其中將一記憶體單元(諸如,記憶體單元325)之實體記憶體胞區塊組織成多個群組(諸如,圖2中所示之群組240-0及240-1)之記憶體區塊選擇之各種先前技術方法中,將一控制器結合一寫入操作所接收之LBA中之每一LBA或特定範圍預先指派給一特定群組。在此等先前方法中,控制器接收一特定LBA且然後搜尋將該LBA預先指派給其之特定群組以找到彼特定群組內然後將資料寫入至其之一自由超級區塊。
然而,在各種例項中,與主機裝置相關聯之一操作系統或應用程式可將資料更新(例如,重寫)至相同LBA或LBA範圍。舉例而言,可頻繁地更新對應於一特定LBA之資料。在此等情況下,由於將特定LBA預先指派給一特定群組,因此對應於該特定LBA之每一後續寫入操作導致控制器將資料寫入至相同群組內之一選定實體區塊。此等先前技術記憶體區塊選擇方法可導致跨越記憶體單元之不均勻磨損,此乃因某些群組內之實體區塊頻繁地被程式化(例如,被寫入及擦除),而其他群組內之實體區塊可保持很少使用。跨越一記憶體單元(諸如,記憶體單元325)之不均勻磨損可產生(諸如)與重度使用之實體區塊相關聯之無法校正寫入錯誤及擦除錯誤之問題且可減少該記憶體單元之使用壽命。
在一個或多個實施例中,在一循環比對基礎上執行對欲將與第一寫入操作相關聯之資料寫入至其之特定群組及欲將與第二寫入操作相關聯之資料寫入至其之特額定群組之選擇。亦即,若選擇一特定群組來接收與第一寫入操作相關聯之資料,則選擇一不同群組來接收與第二寫入操作相關聯之資料。在一個或多個實施例中,可選擇不同群組來接收與後續寫入操作相關聯之資料直至該等群組中之每一者至少被選擇了一次來接收資料為止。
在一個或多個實施例中,控制電路(例如,322)可經組態以針對多個記憶體陣列群組中之每一者追蹤每一群組(例如,結合圖2所闡述之群組240-0及240-1)中可用自由超級區塊之數目。作為一實例,可維持每一群組內自由超級區塊之數目之一計數。作為另一實例,在一個或多個實施例中,可維持一列表(例如,一查找表(LUT)),該列表指示對於每一群組而言可用之自由超級區塊之數目。該計數及/或列表可儲存於各種位置中,諸如,控制器320之一記憶體329內或記憶體單元325內以及其他位置。如熟習此項技術者將瞭解,可藉由其他類型之硬體、軟體及/或韌體執行控制電路322之功能。
在一個或多個實施例中,對欲將與一特定寫入操作相關聯之資料寫入至其之特定群組及欲將與一後續寫入操作相關聯之資料寫入至其之特定群組之選擇係至少部分地基於多個群組中之每一者中可用自由超級區塊之數目。舉例而言,在各種實施例中,選擇具有最高數目自由超級區塊之特定群組來接收與該第一寫入操作相關聯之資料。同樣,在各種實施例中,選擇具有最高數目自由超級區塊之特定群組來接收與後續寫入操作相關聯之資料。在其中基於具有最高數目自由超級區塊之群組選擇特定群組之實施例中,對於特定及後續寫入操作兩者而言選定群組可係相同的。
在一個或多個實施例中,對欲將與一特定寫入操作相關聯之資料寫入至其之特定群組及欲將與一後續寫入操作相關聯之資料寫入至其之特定群組之選擇係至少部分地基於對於多個群組中之每一者而言自由超級區塊與已使用超級區塊之一比。在各種實施例中,控制電路可經組態以確定對於群組(例如,圖2中所示之群組240-0及240-1)中之每一者而言自由超級區塊與已使用超級區塊之一初始比(例如,在初始化時),且然後可在寫入一自由超級區塊時針對每一群組更新該等比。作為一實例,在各種實施例中,選擇具有最高自由超級區塊與已使用超級區塊比之特定群組來接收與第一寫入操作相關聯之資料。同樣,在若干實施例中,選擇具有最高自由超級區塊與已使用超級區塊比之特定群組來接收與後續寫入操作相關聯之資料。在其中基於具有最高自由超級區塊與已使用超級區塊比之群組選擇特定群組之實施例中,對於特定及後續寫入操作兩者而言選定群組可係相同的。
在一個或多個實施例中,控制電路(例如,320)經組態以確定選定群組內將對應於特定所接收LBA之資料寫入至其之一特定超級區塊。舉例而言,可搜尋與該選定群組相關聯之一表以確定該選定群組內之一適當自由超級區塊。在一個或多個實施例中,控制電路可經組態以在第一寫入操作之後將多個群組中之選定一者指派給一第一特定未指派LBA,以使得將與所有後續寫入操作相關聯之對應於先前未指派LBA之資料寫入至經指派群組內之一自由超級區塊。
亦即,在一個或多個實施例中,一旦一控制器結合一特定寫入操作接收一未指派LBA且將與其相關聯之資料寫入至選定群組內之一超級區塊,該控制器即可將彼特定LBA指派給該特定選定群組,以使得當該控制器結合後續寫入操作接收相同特定LBA時,將資料寫入至經指派群組。在某些實施例中,一旦該控制器結合下一特定寫入操作接收一第二特定未指派LBA且將與其相關聯之資料寫入至一不同選定群組(例如,不同於與第一特定未指派LBA相關聯之特定選定群組之一選定群組),該控制器即可將彼第二特定LBA指派給不同選定群組,以使得當該控制器結合後續寫入操作接收該第二特定LBA時,將資料寫入至經指派之不同群組。
圖4A、圖4B、圖4C及圖4D係顯示根據本發明之一個或多個實施例之記憶體區塊選擇之功能性方塊圖。在圖4A中所圖解說明之實施例中,邏輯區塊位址431表示一控制器420所接收之與一特定寫入操作相關聯之一特定未指派LBA(LBA 0)。圖4B圖解說明圖4A之寫入操作之後(例如,一第一寫入操作之後)若干平面群組(例如,圖2中所示之群組240-0及240-1)內之實體超級區塊(例如,圖2中所示之超級區塊245-0至245-N)之狀態。
在圖4C中所圖解說明之實施例中,邏輯區塊位址431表示控制器420所接收之與一後續寫入操作(例如,圖4A及圖4B之操作之後之一寫入操作)相關聯之相同特定LBA(LBA 0)。亦即,圖4C中之邏輯區塊位址431表示處於一已更新狀態之LBA 0,例如,與LBA 0相關聯之資料係已更新資料。類似地,在圖4D所圖解說明之實施例中,邏輯區塊位址431表示控制器420所接收之與圖4A及圖4B之操作之後之一寫入操作相關聯之相同特定LBA(LBA 0)。亦即,圖4D中之邏輯區塊位址431亦表示處於一已更新狀態之LBA 0,例如,與LBA 0相關聯之資料係已更新資料。控制器420可係(諸如)上文結合圖3所闡述之控制器320之一控制器。
在圖4A、圖4B、圖4C及圖4D中所圖解說明之實施例中,控制器420耦合至一記憶體單元425,例如,結合圖3所闡述之記憶體單元325之一記憶體單元。如所圖解說明,將記憶體單元425組織成若干群組,例如,如所示之群組0、群組1、群組2及群組3。圖4A、圖4B、圖4C及圖4D中所圖解說明之群組可係(諸如)結合圖2所闡述之群組240-0及240-1之平面群組。舉例而言,在圖4A、圖4B、圖4C及圖4D中所圖解說明之實施例中,多個群組各自可包含來自對應於群組(例如,該等群組可包含(諸如)結合圖2所闡述之超級區塊245-0、245-1、...、245-N之超級區塊)之至少兩個平面中之每一者之一實體區塊之一各別集合。如所圖解說明,每一群組包含八個超級區塊。亦即,每一群組包含位於位置SB0至SB7中之每一者處之一超級區塊。如上文結合圖2所闡述,在各種實施例中,超級區塊可包含來自位於不同記憶體陣列(例如,202-0及202-1)內及/或不同記憶體裝置(例如,230-0、230-1、230-2及230-3)內之平面之實體區塊。
圖4A中所示之實施例圖解說明該等群組(群組0至群組3)中之每一者內之超級區塊在對應於邏輯區塊位址431之一寫入操作(例如,一第一寫入操作)時之狀態,而圖4B圖解說明該等群組中之每一者內之超級區塊在該寫入操作之後且在一後續操作(例如,一第二寫入操作)之前之狀態。圖4C中所示之實施例圖解說明該等群組中之每一者內之超級區塊在對應於邏輯區塊位址431之一後續寫入操作(例如,一第二寫入操作)之後之狀態。圖4D中所示之實施例亦圖解說明該等群組中之每一者內之超級區塊在對應於邏輯區塊位址431之一後續寫入操作(例如,一第二寫入操作)之後之狀態。
在圖4A、圖4B、圖4C及圖4D中所圖解說明之實施例中,標記為「已使用」之超級區塊表示含有有效資料之超級區塊且當前不可用於接收與寫入操作相關聯之資料。標記為「舊」之超級區塊表示含有過期資料之超級區塊,例如,該等超級區塊含有不再有效之資料且欲在變為可用於接收寫入資料之前被擦除。未標記為「已使用」或「舊」之超級區塊係自由超級區塊,例如,當前可用於接收寫入資料之已擦除超級區塊。
如上文所提及,在一個或多個實施例中,控制電路(例如,控制器420之控制電路)可經組態以在一第一寫入操作中將對應於一特定LBA(例如,LBA 0)之資料寫入至多個群組中之一選定一者內之超級區塊中之一選定一者且在一第二寫入操作(例如,一後續寫入操作)中將對應於該特定LBA之已更新資料寫入至該多個群組中之一選定一者內之超級區塊中之一選定一者。
如上文所提及,在一個或多個實施例中,可追蹤多個群組(例如,群組0至群組3)中之每一者之自由實體區塊之數目。舉例而言,且如圖4A中所圖解說明,在此實例中,群組0經確定具有四個自由超級區塊,群組1經確定具有四個自由超級區塊,群組2經確定具有五個自由超級區塊,且群組3經確定具有六個超級區塊。在圖4A中所圖解說明之實施例中,基於多個群組中之每一者中所確定自由超級區塊之數目選擇群組435(群組3)來接收對應於LBA 0 431之資料。
在此實例中,基於具有最高數目自由超級區塊之群組之事實選擇群組3來接收對應於LBA 0 431之資料。亦即,在圖4A中,選擇群組435,此乃因群組3具有六個自由超級區塊,其比其他群組中可用自由超級區塊之數目多。
在一個或多個實施例中,控制器420將所接收之LBA(例如,在圖4A中所示之實例中之LBA 0 431)指派給選定群組(例如,群組435)內之一特定自由實體超級區塊。舉例而言,可搜尋選定群組435以確定用於接收對應於相關聯寫入操作之資料一適當自由超級區塊。在圖4A中所圖解說明之實例中,將所接收之LBA(例如,LBA 0 431)指派給位於群組3中之位置SB2處之超級區塊(其係選定超級區塊441)。因而,將對應於與圖4A中所圖解說明之實例相關聯之第一寫入操作之資料寫入至對應於選定群組435內之選定超級區塊441之PBA。
圖4B圖解說明群組0至群組3內之超級區塊在圖4A之第一寫入操作之後之狀態。因而,選定超級區塊441之狀態在圖4B中顯示為已使用,此乃因超級區塊441現在含有有效資料且不再係一自由實體超級區塊。
在圖4C中所圖解說明之實施例中,邏輯區塊位址431表示控制器420所接收之與一第二寫入操作(例如,圖4A及圖4B之寫入操作之後之一寫入操作)相關聯之相同特定LBA(LBA 0)。亦即,圖4C中之邏輯區塊位址431表示處於一已更新狀態之LBA 0,例如,與LBA 0相關聯之資料係已更新資料。控制器420經組態以在第二寫入操作(例如,後續寫入操作)中將對應於LBA 0 431之已更新資料寫入至多個群組中之一選定一者內之超級區塊中之一選定一者。
在一個或多個實施例中,且如圖4C中所示之實例中所圖解說明,用於接收與後續寫入操作相關聯之已更新資料之選定群組可係與在第一寫入操作中選定之群組相同之群組。亦即,在一個或多個實施例中,一旦將一特定LBA指派給一群組,即可保持將彼LBA指派給該群組,以使得在一後續寫入操作中將與該特定LBA相關聯之已更新資料寫入至相同群組內之一選定超級區塊。
舉例而言,在圖4A及圖4B中所圖解說明之實例中,將所接收之與第一寫入操作相關聯之LBA(例如,LBA 0 431)指派給群組3。在圖4C中所圖解說明之實例中,結合一後續寫入操作接收相同LBA(例如,LBA 0 431)且將已更新資料寫入至相同群組(例如,在此實例中之群組3)內之一自由超級區塊。在圖4C中所示之實例中,用於接收已更新資料之選定自由超級區塊位於選定群組438內之位置SB3處。因而,將選定超級區塊443標記為已使用,此乃因其現在含有有效資料。如圖4C中所示,超級區塊441之狀態已自已使用改變為舊,此乃因超級區塊441內之資料現在係過期的(例如,無效的)。
在一個或多個實施例中,且如下文結合圖4D所闡述,多個群組中之用於在一後續寫入操作(例如,一第二寫入操作)中接收對應於一特定LBA之資料之選定一者可不同於該多個群組中之用於在一先前寫入操作(例如,一第一寫入操作)中接收對應於相同特定LBA之資料之選定一者。亦即,在一個或多個實施例中,一旦將一特定LBA指派給一群組,即可將彼LBA指派給一不同群組,以使得在一後續寫入操作中將與該特定LBA相關聯之已更新資料寫入至一不同群組內之一選定超級區塊。
舉例而言,在圖4D中所圖解說明之實施例中,邏輯區塊位址432表示控制器420所接收之與一第二寫入操作(例如,圖4A及圖4B之寫入操作之後之一寫入操作)相關聯之相同特定LBA(LBA 0)。亦即,圖4D中之邏輯區塊位址432表示處於一已更新狀態之LBA 0,例如,與LBA 0相關聯之資料可係已更新資料。控制器420經組態以在第二寫入操作(例如,後續寫入操作)中將對應於LBA 0 432之已更新資料寫入至多個群組中之一選定一者內之超級區塊中之一選定一者。
舉例而言,在圖4A及圖4B中所圖解說明之實例中,將所接收之與第一寫入操作相關聯之LBA(例如,LBA 0 431)指派給群組3。在圖4D中所圖解說明之實例中,結合一後續寫入操作接收相同LBA(例如,LBA 0)且將已更新資料寫入至一不同群組(例如,此實例中之群組2)內之一自由超級區塊。在圖4D中所示之實例中,選定群組438內用於接收已更新資料之選定自由超級區塊位於選定群組438內之位置SB3處。因而,將選定超級區塊447標記為已使用,此乃因其現在含有有效資料。如圖4D中所示,超級區塊441之狀態已自已使用改變為舊,此乃因超級區塊441內之資料現在係過期的(例如,無效的)。
在圖4A至圖4D中所圖解說明之實施例中,可基於多個群組中具有最高數目自由實體區塊之那一群組選擇群組435及438。以及,在圖4A及圖4B中,選擇群組435,此乃因群組3具有六個自由超級區塊,其比在其他群組中可用自由超級區塊之數目多。類似地,在圖4D中,選擇群組438,此乃因群組2在後續寫入操作之前具有五個自由超級區塊,其比其他群組中可用自由超級區塊之數目多。
在圖4A至圖4D中所圖解說明之實施例中,未將所接收之LBA(例如,LBA 0)預先指派給多個群組(例如,群組0至群組3)中之一特定一者。亦即,在第一寫入操作中在將LBA 0指派給選定群組435之前未將其預先指派給一特定群組,例如,LBA 0在第一寫入操作之前係一未指派LBA。
在圖4D中所圖解說明之實施例中,在第二寫入操作中未保持將LBA 0指派給選定群組435。針對與一特定LBA相關聯之後續寫入操作選擇不同群組可產生(諸如)在多個群組間更有效磨損均衡之益處。
如上文所論述,在一個或多個實施例中,可維持多個群組中之每一者內自由超級區塊之一計數,且可至少部分地基於與特定群組相關聯之自由超級區塊之計數將在圖4A至圖4D中所圖解說明之實施例中所接收之一特定LBA(例如,LBA 0)指派給多個群組中之一者。
如上文所提及,本發明之一個或多個實施例可包含確定多個群組內具有過期資料之實體區塊以及確定何時擦除該等過期區塊。以其擦除該多個群組內過期區塊之方式可影響一記憶體單元(諸如,分別顯示於圖3及圖4中之記憶體單元325及425)之壽命。
在一個或多個實施例中,可在特定時間且在一逐群組基礎上將已擦除之過期實體區塊(例如,標記為「舊」之區塊)加至每一群組中可用自由實體區塊之數目。舉例而言,在一個或多個實施例中,控制器(例如,420)可經組態以針對多個群組中之每一者防止擦除具有過期資料之實體區塊,直至該群組不包含任何自由實體區塊為止。作為一實例,可防止擦除圖4C及圖4D中所示之群組中標記為「舊」之超級區塊,直至特定群組不再具有任何可用自由超級區塊為止。
同樣,在一個或多個實施例中,該控制器可經組態以針對該多個群組中之每一者防止將群組內之已擦除超級區塊加至與該群組相關聯之自由超級區塊之數目,直至該群組不包含任何自由超級區塊為止。舉例而言,在其中維持可用自由超級區塊之一列表之實施例中,可防止將已擦除以便其可接收新資料之過期區塊加至可用自由超級區塊之列表,直至特定群組不包含任何自由超級區塊為止。
在一個或多個實施例中,可在一特定群組仍具有自由超級區塊時擦除該群組內之過期區塊。在某些此等實施例中,不可將已擦除之過期區塊加至自由超級區塊列表直至一合適時間為止。防止將已擦除之過期區塊立即傳回至自由超級區塊列表可藉由防止給新擦除之過期區塊指派一LBA及在該列表上之未經寫入自由超級區塊被寫入之前接收新寫入資料而改良記憶體單元之磨損。
在一個或多個實施例中,藉由大致同時擦除一特定超級區塊內之實體區塊中之每一者來執行擦除操作。舉例而言,參照圖2,可大致同時擦除群組240-0之超級區塊245-0內之實體區塊中之每一者。在一個或多個實施例中,可跨越不同群組一致執行對舊區塊之擦除。舉例而言,參照圖2,可同時擦除群組240-0及240-1兩者之超級區塊245-1內之實體區塊。在一個或多個實施例中,可以一循環比對方式執行對舊區塊之擦除。舉例而言,參照圖4A,可擦除來自群組0之一超級區塊,且可防止擦除來自群組0之另一超級區塊直至已擦除來自群組1、群組2及群組3中之每一者之一超級區塊為止。
本發明包含用於記憶體區塊選擇之方法及裝置。本發明之實施例可藉由改良記憶體單元內之磨損而增加記憶體單元(諸如,快閃記憶體單元)之壽命。在一個或多個實施例中,一記憶體控制器包含控制電路,其耦合至一個或多個記憶體裝置,該等記憶體裝置具有多個與其相關聯之平面群組,每一群組包含至少兩個組織成超級區塊之實體區塊平面,其中每一超級區塊包含來自該至少兩個平面中之每一者之一實體區塊。該控制電路經組態以接收與一寫入操作相關聯之一第一未指派邏輯區塊位址(LBA)且確定該多個群組中之一選定一者內之一特定自由超級區塊以用於接收與該寫入操作相關聯之資料。
雖然本文中已圖解說明及闡述了具體實施例,但熟習此項技術者將瞭解,可用經計算以達成相同結果之一配置來替代所示之具體實施例。本發明意欲涵蓋對本發明之一個或多個實施例之修改或變化。
應理解,以上說明係以一圖解說明性方式而非一限定性方式作出。在審閱以上說明之後,熟習此項技術者將明瞭以上實施例之組合及本文中未具體闡述之其他實施例。本發明之一個或多個實施例之範疇包含其中使用以上結構及方法之其他應用。因此,應參照隨附申請專利範圍連同授權此等申請專利範圍之等效內容之全部範圍來確定本發明之一個或多個實施例之範疇。
在前述實施方式中,出於簡化本發明之目的,將某些特徵一起集合於一單個實施例中。不應將本發明之此方法解釋為反映本發明之所揭示實施例必須使用比明確陳述於每一技術方案中更多之特徵之一意圖。
而是,如以下專利申請範圍反映,發明性標的物在於少於一單個所揭示實施例之所有特徵。因此,以下申請專利範圍藉此併入於實施方式中,其中每一技術方案獨立地作為一單獨實施例。
102...記憶體陣列
104-0...實體區塊
104-1...實體區塊
104-B...實體區塊
106-0...實體記憶體胞列
106-1...實體記憶體胞列
106-R...實體記憶體胞列
108-0...實體資料磁區
108-1...實體資料磁區
108-S...實體資料磁區
202-0...記憶體陣列
202-1...記憶體陣列
230-0...記憶體裝置
230-1...記憶體裝置
230-2...記憶體裝置
230-3...記憶體裝置
240-0...群組
240-1...群組
245-0...超級區塊
245-1...超級區塊
245-N...超級區塊
300...記憶體系統/固態驅動器
302-0...記憶體陣列
302-1...記憶體陣列
302-3...記憶體陣列
302-M...記憶體陣列
320...控制器
322...控制電路
323...處理器
324...主機介面
325...記憶體單元
326...陣列介面
327...空間管理器
329...記憶體
330-0...記憶體裝置
330-1...記憶體裝置
330-N...記憶體裝置
331...邏輯區塊位址
420...控制器
425...記憶體單元
431...邏輯區塊位址
432...邏輯區塊位址
435...群組
438...群組
441...超級區塊
443...超級區塊
447...超級區塊
圖1係包含多個實體區塊且可根據本發明之一個或多個實施例操作之一記憶體陣列之一圖示;
圖2係圖解說明具有可根據本發明之一個或多個實施例操作之多個平面群組之若干記憶體裝置之一圖示;
圖3係根據本發明之一個或多個實施例之一記憶體系統之一功能性方塊圖;及
圖4A、圖4B、圖4C及圖4D係顯示根據本發明之一個或多個實施例之記憶體區塊選擇之功能性方塊圖。
420...控制器
425...記憶體單元
431...邏輯區塊位址
435...群組
441...超級區塊
Claims (31)
- 一種記憶體控制器,其包括:控制電路,其耦合至一個或多個記憶體裝置,該等記憶體裝置具有多個與其相關聯之平面群組,每一群組包含至少兩個組織成超級區塊之實體區塊平面,其中每一超級區塊包含來自該至少兩個平面中之每一者之一實體區塊,且其中該控制電路經組態以:接收與一寫入操作相關聯之一第一未指派邏輯區塊位址(LBA);及確定該多個群組中之一選定一者內之一特定自由超級區塊以接收與該寫入操作相關聯之資料;接收與一後續寫入操作相關聯之一不同未指派LBA;確定該多個群組中之一選定一者內之一特定自由超級區塊以接收與該後續寫入操作相關聯之資料;針對該多個群組中之每一者追蹤每一群組中可用自由超級區塊之數目;確定該等超級區塊中哪些超級區塊具有過期資料;確定何時擦除該等具有過期資料之超級區塊;及針對該多個群組中之每一者防止擦除該等具有過期資料之超級區塊直至該群組不包含任何自由超級區塊為止。
- 如請求項1之記憶體控制器,其中該控制電路經組態以至少部分地基於該多個群組中之每一者中可用自由超級 區塊之該數目選擇該多個群組中之該一者來接收與該寫入操作相關聯之資料。
- 如請求項1之記憶體控制器,其中該控制電路經組態以至少部分地基於對於該多個群組中之每一者而言自由超級區塊與已使用超級區塊之一比選擇該多個群組中之該一者來接收與該寫入操作相關聯之資料。
- 如請求項1之記憶體控制器,其中該控制電路經組態以:接收與一後續寫入操作相關聯之一不同未指派LBA;及確定該多個群組中之一選定一者內之一特定自由超級區塊以接收與該後續寫入操作相關聯之資料。
- 如請求項4之記憶體控制器,其中該控制電路經組態以在一循環比對基礎上選擇該多個群組中之該一者來接收與該後續寫入操作相關聯之資料。
- 如請求項1之記憶體控制器,其中該多個群組中之與該後續寫入操作相關聯之該選定一者係不同於該多個群組中之與該寫入操作相關聯之該選定一者。
- 如請求項1之記憶體控制器,其中該控制電路經組態以:在特定時間且在一逐群組基礎上將已擦除超級區塊加至每一群組中可用自由超級區塊之該數目。
- 如請求項7之記憶體控制器,其中該控制電路經組態以針對該多個群組中之每一者防止將該等已擦除超級區塊加至該群組中可用自由超級區塊之該數目直至該群組不 包含任何自由超級區塊為止。
- 如請求項7之記憶體控制器,其中該控制電路經組態以針對該多個群組中之每一者防止擦除該等具有過期資料之超級區塊直至該群組不包含任何自由超級區塊為止。
- 一種記憶體控制器,其包括:控制電路,其耦合至若干記憶體裝置,該等記憶體裝置具有多個與其相關聯之平面群組,每一群組包含:至少兩個實體區塊平面;及若干超級區塊,其中該等超級區塊中之每一者包括實體區塊之一各別集合,其包含來自該群組中之該至少兩個平面中之每一者之一實體區塊;其中該控制電路經組態以:接收與一第一寫入操作相關聯之一第一未指派LBA;將該第一未指派LBA指派給該多個群組中之一選定一者內之一選定超級區塊;及將對應於該第一寫入操作之資料寫入至該多個群組中之該選定一者內之該選定超級區塊;確定該多個群組中之一選定一者內之一特定自由超級區塊以接收與該第一寫入操作相關聯之資料;接收與一第二寫入操作相關聯之一第二未指派LBA;確定該多個群組中之一選定一者內之一特定自由超級區塊以接收與該第二寫入操作相關聯之資料; 針對該多個群組中之每一者追蹤每一群組中可用自由超級區塊之數目;確定該等超級區塊中哪些超級區塊具有過期資料;確定何時擦除該等具有過期資料之超級區塊;及針對該多個群組中之每一者防止擦除該等具有過期資料之超級區塊直至該群組不包含任何自由超級區塊為止。
- 如請求項10之記憶體控制器,其中與該第二寫入操作相關聯地被指派該第一先前未指派LBA之該選定超級區塊係不同於與該第一寫入操作相關聯地被指派該第一先前未指派LBA之該選定超級區塊。
- 如請求項10之記憶體控制器,其中該多個群組中之該選定一者對於該第一及第二寫入操作而言係不同的。
- 如請求項10之記憶體控制器,其中該控制電路經組態以:針對該多個群組中之每一者確定自由超級區塊之當前數目;及至少部分地基於針對該多個群組中之每一者所確定之自由超級區塊之該當前數目選擇該多個群組中之該選定一者來接收對應於該第二寫入操作之該資料。
- 如請求項10之記憶體控制器,其中該控制電路經組態以與該第二寫入操作相關聯地在一循環比對基礎上選擇該多個群組中之該選定一者。
- 如請求項10之記憶體控制器,其中該控制電路經組態以:接收與一第二寫入操作相關聯之一第二未指派LBA;將該第二先前未指派LBA指派給該多個群組中之一選定一者內之一選定超級區塊;及將對應於該第二寫入操作之資料寫入至該選定超級區塊。
- 如請求項15之記憶體控制器,其中該控制電路經組態以:針對該多個群組中之每一者確定自由超級區塊之數目;及至少部分地基於針對該多個群組中之每一者所確定之自由超級區塊之該數目選擇該多個群組中之該選定一者來接收對應於該第二寫入操作之該資料。
- 一種記憶體控制器,其包括:控制電路,其耦合至若干記憶體裝置,該等記憶體裝置具有多個與其相關聯之平面群組,每一群組包含來自至少兩個記憶體陣列之一平面且具有若干與其相關聯之超級區塊,該等超級區塊中之每一者包括實體區塊之一各別集合,其包含來自該等群組中之一各別一者之該至少兩個記憶體陣列中之每一者之一實體區塊;且其中該控制電路經組態以:接收與一第一寫入操作相關聯之一第一未指派邏輯區塊位址(LBA); 將包含該第一未指派LBA之一LBA範圍指派給該多個群組中之一選定一者內之一選定超級區塊;將對應於該第一寫入操作之資料寫入至該多個群組中之該選定一者內之該選定超級區塊;確定該多個群組中之一選定一者內之一特定自由超級區塊以接收與該第一寫入操作相關聯之資料;接收與一第二寫入操作相關聯之一第二未指派LBA;及確定該多個群組中之一選定一者內之一特定自由超級區塊以接收與該第一寫入操作相關聯之資料;當將該LBA範圍內之該第二LBA指派給該選定超級區塊時將對應於該第二寫入操作之資料寫入至該相同選定超級區塊;針對該多個群組中之每一者追蹤每一群組中可用自由超級區塊之數目;確定該等超級區塊中哪些超級區塊具有過期資料;確定何時擦除該等具有過期資料之超級區塊;及針對該多個群組中之每一者防止擦除該等具有過期資料之超級區塊直至該群組不包含任何自由超級區塊為止。
- 如請求項17之記憶體控制器,其中該控制電路經組態以當將不在該LBA範圍內之第二LBA指派給該選定超級區塊時將該第二未指派LBA指派給與將對應於該第一寫入操作之該資料被寫入至的該選定超級區塊不同之一選定 超級區塊。
- 如請求項18之記憶體控制器,其中該不同之選定超級區塊位於該多個群組中之一不同選定一者中。
- 如請求項19之記憶體控制器,其中該控制電路經組態以:維持該多個群組中之每一者之自由超級區塊之一計數;及至少部分地基於自由超級區塊之該計數選擇該多個群組中之該不同選定一者。
- 如請求項20之記憶體控制器,其中該控制電路經組態以將該第二未指派LBA指派給該多個群組中具有最高數目個自由超級區塊之該不同選定一者內之該不同之選定超級區塊。
- 一種用於一記憶體系統中之區塊選擇之方法,該方法包括:接收與一第一寫入操作相關聯之一第一邏輯區塊位址(LBA);將對應於該第一寫入操作之資料寫入至多個平面群組中一選定群組內之若干超級區塊中之一選定自由超級區塊;將該第一未指派LBA指派給該選定群組以使得對應於該第一未指派LBA之與多個後續寫入操作之一數目相關聯之資料被寫入至該指派選定群組內之一自由超級區塊; 接收與一後續寫入操作相關聯之一第二未指派LBA;將對應於該後續寫入操作之資料寫入至該多個群組中一選定群組內之一選定自由超級區塊中;在該第一寫入操作之後,將與該第一寫入操作相關聯地被寫入之該自由超級區塊自與該各別選定群組相關聯之可用自由超級區塊之一列表中移除;在該後續寫入操作之後,將與該第二寫入操作相關聯地被寫入之該超級區塊自與該各別選定群組相關聯之可用自由超級區塊之一列表中移除;防止將該等經移除超級區塊中之一各別一者傳回至該等列表中之一各別一者,直至該等群組中之該各別一者之該等超級區塊中之每一者已至少被寫入一次為止;及針對該多個群組中之每一者防止擦除該等具有過期資料之超級區塊直至該群組不包含任何自由超級區塊為止。
- 如請求項22之方法,其包含與其他群組中之每一者中自由超級區塊的數目相比至少部分地基於該各別選定群組中自由超級區塊的數目選擇與該第一寫入操作相關聯之該選定群組。
- 如請求項22之方法,其包含與該等其他群組中之每一者中自由超級區塊與已使用超級區塊之一比相比至少部分地基於該各別選定群組中自由超級區塊與已使用超級區塊之一比選擇與該第一寫入操作相關聯之該選定群組。
- 如請求項22之方法,其包含在一循環比對基礎上選擇與 該第一寫入操作相關聯之該選定群組。
- 如請求項22之方法,其包含:接收與一後續寫入操作相關聯之一第二LBA;及將對應於該後續寫入操作之資料寫入至該多個群組中之一選定一者內之一選定自由超級區塊;其中該第二LBA未預先指派給一特定超級區塊且未預先指派給該多個群組中之一特定一者。
- 如請求項26之方法,其中選擇該多個群組中與該後續寫入操作相關聯之該選定一者包含選擇不同於該多個群組中與該第一寫入操作相關聯之該選定一者之一群組。
- 如請求項26之方法,其包含:在該第一寫入操作之後,將與該第一寫入操作相關聯地被寫入之該自由超級區塊自與該各別選定群組相關聯之可用自由超級區塊之一列表中移除;在該後續寫入操作之後,將與該第二寫入操作相關聯地被寫入之該超級區塊自與該各別選定群組相關聯之可用自由超級區塊之一列表中移除;及防止將該等經移除超級區塊中之一各別一者傳回至該等列表中之一各別一者,直至該等群組中之該各別一者之該等超級區塊中之每一者已至少被寫入一次為止。
- 如請求項22之方法,其包含針對每一群組執行以下操作:追蹤該群組中之自由超級區塊之數目;在寫入至一超級區塊之後,將該超級區塊自自由超級 區塊之一列表中移除;及在擦除該超級區塊之後,將該超級區塊加至自由超級區塊之該列表。
- 如請求項22之方法,其包含藉由大致同時擦除一特定超級區塊內之所有該等實體區塊來對該等超級區塊執行擦除操作。
- 如請求項30之方法,其包含藉由大致同時擦除來自該多個群組中之每一者之至少一個超級區塊來對該記憶體系統執行擦除操作。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/397,402 US8239614B2 (en) | 2009-03-04 | 2009-03-04 | Memory super block allocation |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201040971A TW201040971A (en) | 2010-11-16 |
TWI455139B true TWI455139B (zh) | 2014-10-01 |
Family
ID=42679245
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW099106312A TWI455139B (zh) | 2009-03-04 | 2010-03-04 | 記憶體區塊選擇 |
Country Status (7)
Country | Link |
---|---|
US (2) | US8239614B2 (zh) |
EP (1) | EP2404239B1 (zh) |
JP (1) | JP5458419B2 (zh) |
KR (1) | KR101343237B1 (zh) |
CN (1) | CN102341793B (zh) |
TW (1) | TWI455139B (zh) |
WO (1) | WO2010101608A2 (zh) |
Families Citing this family (76)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8239614B2 (en) * | 2009-03-04 | 2012-08-07 | Micron Technology, Inc. | Memory super block allocation |
US8918588B2 (en) * | 2009-04-07 | 2014-12-23 | International Business Machines Corporation | Maintaining a cache of blocks from a plurality of data streams |
JP2011198433A (ja) * | 2010-03-23 | 2011-10-06 | Toshiba Corp | メモリシステム |
US8612804B1 (en) * | 2010-09-30 | 2013-12-17 | Western Digital Technologies, Inc. | System and method for improving wear-leveling performance in solid-state memory |
US8495338B2 (en) * | 2010-12-03 | 2013-07-23 | Micron Technology, Inc. | Transaction log recovery |
US8935466B2 (en) | 2011-03-28 | 2015-01-13 | SMART Storage Systems, Inc. | Data storage system with non-volatile memory and method of operation thereof |
US8762625B2 (en) | 2011-04-14 | 2014-06-24 | Apple Inc. | Stochastic block allocation for improved wear leveling |
US8898373B1 (en) | 2011-06-29 | 2014-11-25 | Western Digital Technologies, Inc. | System and method for improving wear-leveling performance in solid-state memory |
US9098399B2 (en) | 2011-08-31 | 2015-08-04 | SMART Storage Systems, Inc. | Electronic system with storage management mechanism and method of operation thereof |
US9063844B2 (en) | 2011-09-02 | 2015-06-23 | SMART Storage Systems, Inc. | Non-volatile memory management system with time measure mechanism and method of operation thereof |
US9021231B2 (en) | 2011-09-02 | 2015-04-28 | SMART Storage Systems, Inc. | Storage control system with write amplification control mechanism and method of operation thereof |
US9021319B2 (en) | 2011-09-02 | 2015-04-28 | SMART Storage Systems, Inc. | Non-volatile memory management system with load leveling and method of operation thereof |
US9239781B2 (en) | 2012-02-07 | 2016-01-19 | SMART Storage Systems, Inc. | Storage control system with erase block mechanism and method of operation thereof |
US8949689B2 (en) | 2012-06-11 | 2015-02-03 | SMART Storage Systems, Inc. | Storage control system with data management mechanism and method of operation thereof |
US9013922B2 (en) * | 2012-09-20 | 2015-04-21 | Silicon Motion, Inc. | Data storage device and flash memory control method thereof |
US9671962B2 (en) * | 2012-11-30 | 2017-06-06 | Sandisk Technologies Llc | Storage control system with data management mechanism of parity and method of operation thereof |
US9123445B2 (en) | 2013-01-22 | 2015-09-01 | SMART Storage Systems, Inc. | Storage control system with data management mechanism and method of operation thereof |
US9329928B2 (en) | 2013-02-20 | 2016-05-03 | Sandisk Enterprise IP LLC. | Bandwidth optimization in a non-volatile memory system |
US9214965B2 (en) | 2013-02-20 | 2015-12-15 | Sandisk Enterprise Ip Llc | Method and system for improving data integrity in non-volatile storage |
US9183137B2 (en) | 2013-02-27 | 2015-11-10 | SMART Storage Systems, Inc. | Storage control system with data management mechanism and method of operation thereof |
US9470720B2 (en) | 2013-03-08 | 2016-10-18 | Sandisk Technologies Llc | Test system with localized heating and method of manufacture thereof |
US8966164B1 (en) * | 2013-09-27 | 2015-02-24 | Avalanche Technology, Inc. | Storage processor managing NVME logically addressed solid state disk array |
US9465732B2 (en) | 2013-03-15 | 2016-10-11 | Sandisk Technologies Llc | Binning of blocks for dynamic linking |
US9043780B2 (en) | 2013-03-27 | 2015-05-26 | SMART Storage Systems, Inc. | Electronic system with system modification control mechanism and method of operation thereof |
US10049037B2 (en) | 2013-04-05 | 2018-08-14 | Sandisk Enterprise Ip Llc | Data management in a storage system |
US9170941B2 (en) | 2013-04-05 | 2015-10-27 | Sandisk Enterprises IP LLC | Data hardening in a storage system |
US9543025B2 (en) | 2013-04-11 | 2017-01-10 | Sandisk Technologies Llc | Storage control system with power-off time estimation mechanism and method of operation thereof |
US10546648B2 (en) | 2013-04-12 | 2020-01-28 | Sandisk Technologies Llc | Storage control system with data management mechanism and method of operation thereof |
US9898056B2 (en) | 2013-06-19 | 2018-02-20 | Sandisk Technologies Llc | Electronic assembly with thermal channel and method of manufacture thereof |
US9313874B2 (en) | 2013-06-19 | 2016-04-12 | SMART Storage Systems, Inc. | Electronic system with heat extraction and method of manufacture thereof |
US9367353B1 (en) | 2013-06-25 | 2016-06-14 | Sandisk Technologies Inc. | Storage control system with power throttling mechanism and method of operation thereof |
US9244519B1 (en) | 2013-06-25 | 2016-01-26 | Smart Storage Systems. Inc. | Storage system with data transfer rate adjustment for power throttling |
WO2015008338A1 (ja) * | 2013-07-16 | 2015-01-22 | 富士通株式会社 | 情報処理装置、制御回路、制御プログラム、および制御方法 |
US9146850B2 (en) | 2013-08-01 | 2015-09-29 | SMART Storage Systems, Inc. | Data storage system with dynamic read threshold mechanism and method of operation thereof |
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 |
US9448946B2 (en) | 2013-08-07 | 2016-09-20 | Sandisk Technologies Llc | Data storage system with stale data mechanism and method of operation thereof |
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 |
US9152555B2 (en) | 2013-11-15 | 2015-10-06 | Sandisk Enterprise IP LLC. | Data management with modular erase in a data storage system |
US9823863B1 (en) * | 2014-06-30 | 2017-11-21 | Sk Hynix Memory Solutions Inc. | Sub-blocks and meta pages for mapping table rebuild |
US20160124639A1 (en) * | 2014-11-05 | 2016-05-05 | SanDisk Technologies, Inc. | Dynamic storage channel |
US20160179401A1 (en) * | 2014-12-17 | 2016-06-23 | Sk Hynix Memory Solutions Inc. | Memory system and the operation method thereof |
US10102146B2 (en) * | 2015-03-26 | 2018-10-16 | SK Hynix Inc. | Memory system and operating method for improving rebuild efficiency |
CN105159843B (zh) * | 2015-10-19 | 2018-07-31 | 深圳芯邦科技股份有限公司 | 一种基于超级块的多通道管理方法与系统 |
CN106940623B (zh) * | 2016-01-04 | 2020-06-09 | 群联电子股份有限公司 | 存储器管理方法、存储器控制电路单元及存储器储存装置 |
US10031845B2 (en) * | 2016-04-01 | 2018-07-24 | Intel Corporation | Method and apparatus for processing sequential writes to a block group of physical blocks in a memory device |
KR102593352B1 (ko) | 2016-05-04 | 2023-10-26 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
US10282111B2 (en) * | 2016-07-29 | 2019-05-07 | Western Digital Technologies, Inc. | Adaptive wear levelling |
KR20180039351A (ko) * | 2016-10-10 | 2018-04-18 | 에스케이하이닉스 주식회사 | 메모리 장치 및 메모리 장치의 동작 방법 |
KR102645572B1 (ko) * | 2016-11-29 | 2024-03-11 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그의 동작 방법 |
WO2018118569A1 (en) * | 2016-12-21 | 2018-06-28 | Cryptography Research, Inc. | Protecting parallel multiplication operations from external monitoring attacks |
JP6802933B2 (ja) * | 2017-03-21 | 2020-12-23 | マイクロン テクノロジー,インク. | 自動動的ワード線開始電圧のための装置及び方法 |
KR20190031693A (ko) * | 2017-09-18 | 2019-03-27 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
US10977182B2 (en) * | 2017-12-01 | 2021-04-13 | Micron Technology, Inc. | Logical block mapping based on an offset |
US10387243B2 (en) | 2017-12-08 | 2019-08-20 | Macronix International Co., Ltd. | Managing data arrangement in a super block |
US10445230B2 (en) | 2017-12-08 | 2019-10-15 | Macronix International Co., Ltd. | Managing block arrangement of super blocks |
US10372355B2 (en) * | 2017-12-29 | 2019-08-06 | Micron Technology, Inc. | Managing partial superblocks in a NAND device |
KR20190083148A (ko) * | 2018-01-03 | 2019-07-11 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 및 그것을 포함하는 데이터 처리 시스템 |
KR102620727B1 (ko) * | 2018-04-18 | 2024-01-03 | 에스케이하이닉스 주식회사 | 전자 장치 |
TWI687811B (zh) * | 2018-05-14 | 2020-03-11 | 慧榮科技股份有限公司 | 資料儲存裝置及系統資訊的編程方法 |
US10740026B2 (en) * | 2018-05-18 | 2020-08-11 | Micron Technology, Inc. | Time indicator of super block operations |
KR102611566B1 (ko) * | 2018-07-06 | 2023-12-07 | 삼성전자주식회사 | 솔리드 스테이트 드라이브 및 그의 메모리 할당 방법 |
US11086533B2 (en) * | 2018-08-31 | 2021-08-10 | Wipro Limited | Method and system for optimizing storage space in a storage unit |
US10949123B2 (en) * | 2018-10-18 | 2021-03-16 | Western Digital Technologies, Inc. | Using interleaved writes to separate die planes |
KR20200044460A (ko) * | 2018-10-19 | 2020-04-29 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작방법 |
CN111651371B (zh) | 2019-03-04 | 2023-06-16 | 慧荣科技股份有限公司 | 非对称型平面管理方法以及数据存储装置及其控制器 |
US11693773B2 (en) * | 2019-03-15 | 2023-07-04 | Kioxia Corporation | Systems and methods for implementing a four-dimensional superblock |
TWI769386B (zh) * | 2019-07-04 | 2022-07-01 | 群聯電子股份有限公司 | 資料抹除方法、記憶體控制電路單元及記憶體儲存裝置 |
US11194516B2 (en) * | 2019-10-08 | 2021-12-07 | Micron Technology, Inc. | Media type selection |
US11461363B2 (en) * | 2020-03-31 | 2022-10-04 | Sap Se | Memory allocation and deallocation mechanism to reduce fragmentation and enhance defragmentation performance |
US11841794B2 (en) | 2020-12-16 | 2023-12-12 | Micron Technology, Inc. | Memory sub-system write sequence track |
KR20220131058A (ko) * | 2021-03-19 | 2022-09-27 | 에스케이하이닉스 주식회사 | 스토리지 장치 및 그 동작 방법 |
JP2022147448A (ja) | 2021-03-23 | 2022-10-06 | キオクシア株式会社 | メモリシステム及びデータ管理方法 |
JP2023001573A (ja) * | 2021-06-21 | 2023-01-06 | キオクシア株式会社 | メモリシステムおよび制御方法 |
US11640254B2 (en) * | 2021-08-25 | 2023-05-02 | Western Digital Technologies, Inc. | Controlled imbalance in super block allocation in ZNS SSD |
KR20230048747A (ko) * | 2021-10-05 | 2023-04-12 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
CN114328283B (zh) * | 2021-12-29 | 2022-11-18 | 上海芯存天下电子科技有限公司 | 计数地址获取方法、计数方法、装置、设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040083335A1 (en) * | 2002-10-28 | 2004-04-29 | Gonzalez Carlos J. | Automated wear leveling in non-volatile storage systems |
US20040205289A1 (en) * | 2003-04-11 | 2004-10-14 | Sujaya Srinivasan | Reclaiming blocks in a block-alterable memory |
US20050144516A1 (en) * | 2003-12-30 | 2005-06-30 | Gonzalez Carlos J. | Adaptive deterministic grouping of blocks into multi-block units |
US20050251617A1 (en) * | 2004-05-07 | 2005-11-10 | Sinclair Alan W | Hybrid non-volatile memory system |
EP1739683A1 (en) * | 1999-04-01 | 2007-01-03 | Lexar Media, Inc. | Space management for managing high capacity nonvolatile memory |
US20080052446A1 (en) * | 2006-08-28 | 2008-02-28 | Sandisk Il Ltd. | Logical super block mapping for NAND flash memory |
US20080155175A1 (en) * | 2006-12-26 | 2008-06-26 | Sinclair Alan W | Host System That Manages a LBA Interface With Flash Memory |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8171203B2 (en) | 1995-07-31 | 2012-05-01 | Micron Technology, Inc. | Faster write operations to nonvolatile memory using FSInfo sector manipulation |
WO1997017657A1 (fr) | 1995-11-10 | 1997-05-15 | Sony Corporation | Appareil et procede de traitement d'informations |
US6076137A (en) * | 1997-12-11 | 2000-06-13 | Lexar Media, Inc. | Method and apparatus for storing location identification information within non-volatile memory devices |
US6141249A (en) * | 1999-04-01 | 2000-10-31 | Lexar Media, Inc. | Organization of blocks within a nonvolatile memory unit to effectively decrease sector write operation time |
DE60030876T2 (de) * | 1999-04-01 | 2007-05-03 | Lexar Media, Inc., Fremont | Bereichsverwaltung eines nichtflüchtigen Speichers mit hoher Kapazität |
US6901498B2 (en) * | 2002-12-09 | 2005-05-31 | Sandisk Corporation | Zone boundary adjustment for defects in non-volatile memories |
US7631138B2 (en) * | 2003-12-30 | 2009-12-08 | Sandisk Corporation | Adaptive mode switching of flash memory address mapping based on host usage characteristics |
US20050144363A1 (en) * | 2003-12-30 | 2005-06-30 | Sinclair Alan W. | Data boundary management |
JP4977703B2 (ja) * | 2005-08-03 | 2012-07-18 | サンディスク コーポレイション | 予定再生操作を伴う不揮発性メモリ |
JP2007094900A (ja) | 2005-09-29 | 2007-04-12 | Eastman Kodak Co | アクセス装置 |
JP2009521045A (ja) * | 2005-12-21 | 2009-05-28 | エヌエックスピー ビー ヴィ | ブロック消去可能なメモリ場所を有する不揮発性メモリ |
JP2007199905A (ja) * | 2006-01-25 | 2007-08-09 | Toshiba Corp | 半導体記憶装置の制御方法 |
US7424587B2 (en) * | 2006-05-23 | 2008-09-09 | Dataram, Inc. | Methods for managing data writes and reads to a hybrid solid-state disk drive |
US7934052B2 (en) * | 2007-12-27 | 2011-04-26 | Pliant Technology, Inc. | System and method for performing host initiated mass storage commands using a hierarchy of data structures |
US20090271562A1 (en) * | 2008-04-25 | 2009-10-29 | Sinclair Alan W | Method and system for storage address re-mapping for a multi-bank memory device |
US8239614B2 (en) * | 2009-03-04 | 2012-08-07 | Micron Technology, Inc. | Memory super block allocation |
-
2009
- 2009-03-04 US US12/397,402 patent/US8239614B2/en active Active
-
2010
- 2010-02-24 CN CN201080010413.8A patent/CN102341793B/zh active Active
- 2010-02-24 WO PCT/US2010/000539 patent/WO2010101608A2/en active Application Filing
- 2010-02-24 JP JP2011552932A patent/JP5458419B2/ja active Active
- 2010-02-24 KR KR1020117023032A patent/KR101343237B1/ko active IP Right Grant
- 2010-02-24 EP EP10749033.6A patent/EP2404239B1/en active Active
- 2010-03-04 TW TW099106312A patent/TWI455139B/zh active
-
2012
- 2012-08-06 US US13/567,680 patent/US8751731B2/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1739683A1 (en) * | 1999-04-01 | 2007-01-03 | Lexar Media, Inc. | Space management for managing high capacity nonvolatile memory |
US20040083335A1 (en) * | 2002-10-28 | 2004-04-29 | Gonzalez Carlos J. | Automated wear leveling in non-volatile storage systems |
US20040205289A1 (en) * | 2003-04-11 | 2004-10-14 | Sujaya Srinivasan | Reclaiming blocks in a block-alterable memory |
US20050144516A1 (en) * | 2003-12-30 | 2005-06-30 | Gonzalez Carlos J. | Adaptive deterministic grouping of blocks into multi-block units |
US20050251617A1 (en) * | 2004-05-07 | 2005-11-10 | Sinclair Alan W | Hybrid non-volatile memory system |
US20080052446A1 (en) * | 2006-08-28 | 2008-02-28 | Sandisk Il Ltd. | Logical super block mapping for NAND flash memory |
US20080155175A1 (en) * | 2006-12-26 | 2008-06-26 | Sinclair Alan W | Host System That Manages a LBA Interface With Flash Memory |
Non-Patent Citations (1)
Title |
---|
Eran Gal and Sivan Toledo. "Algorithms and Data Structures for Flash Memories", Jun. 2005, ACM Computing Surveys. Li-Pin Chang and Tei-Wei Kuo, "An Adaptive Striping Architecture for Flash Memory Storage Systems of Embedded Systems" , Sep. 2002, IEEE. RTAS '02. Marshall F. McKusick et al. "A Fast File System for UNIX." Aug. 1984. ACM. ACM Transactions on Computer Systems. vol. 2 * |
Also Published As
Publication number | Publication date |
---|---|
CN102341793B (zh) | 2015-02-04 |
US8751731B2 (en) | 2014-06-10 |
WO2010101608A3 (en) | 2010-11-25 |
KR101343237B1 (ko) | 2013-12-18 |
WO2010101608A2 (en) | 2010-09-10 |
EP2404239B1 (en) | 2018-12-12 |
US20100228928A1 (en) | 2010-09-09 |
EP2404239A4 (en) | 2012-12-05 |
CN102341793A (zh) | 2012-02-01 |
JP2012519899A (ja) | 2012-08-30 |
TW201040971A (en) | 2010-11-16 |
US8239614B2 (en) | 2012-08-07 |
EP2404239A2 (en) | 2012-01-11 |
US20120303931A1 (en) | 2012-11-29 |
JP5458419B2 (ja) | 2014-04-02 |
KR20110127728A (ko) | 2011-11-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI455139B (zh) | 記憶體區塊選擇 | |
TWI424315B (zh) | 記憶體區塊管理 | |
US10102119B2 (en) | Garbage collection based on queued and/or selected write commands | |
US7395404B2 (en) | Cluster auto-alignment for storing addressable data packets in a non-volatile memory array | |
US8046526B2 (en) | Wear leveling method and controller using the same | |
US8108589B2 (en) | Wear leveling method and controller using the same | |
US8407397B2 (en) | Block management method for flash memory and controller and storage system using the same | |
CN110998543B (zh) | 用于磨损平整的方法和存储器设备 | |
CN102292711A (zh) | 固态存储器格式化 | |
US10283196B2 (en) | Data writing method, memory control circuit unit and memory storage apparatus | |
JP2012058770A (ja) | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 |