TWI698878B - 記憶體元件及其控制器與系統和其重新編排資料的方法 - Google Patents
記憶體元件及其控制器與系統和其重新編排資料的方法 Download PDFInfo
- Publication number
- TWI698878B TWI698878B TW107130179A TW107130179A TWI698878B TW I698878 B TWI698878 B TW I698878B TW 107130179 A TW107130179 A TW 107130179A TW 107130179 A TW107130179 A TW 107130179A TW I698878 B TWI698878 B TW I698878B
- Authority
- TW
- Taiwan
- Prior art keywords
- logical
- physical
- block
- page
- pages
- Prior art date
Links
Images
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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/142—Reconfiguring to eliminate the error
-
- 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/1068—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 in sector programmable memories, e.g. flash disk
-
- 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
- G06F12/0646—Configuration or reconfiguration
-
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/82—Solving problems relating to consistency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7211—Wear leveling
-
- 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/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0411—Online error correction
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
提供在記憶體系統更新操作中用於重新編排資料的方法、系統以及包含電腦可讀取介質的裝置。此方法包括:判定邏輯區塊中的一個特定邏輯頁面,因為存在於一個特定實體頁面中的複數個錯誤位元而導致失效。此特定實體頁面位於與邏輯區塊映射的第一實體區塊之中,並且對應於此特定邏輯頁面;邏輯區塊中的複數個邏輯頁面,係以一個起始映射順序映射到第一實體區塊中的實體頁面。以邏輯區的一個重新編排的映射順序,對第一實體區塊執行一個更新操作,其中重新編排的映射順序與起始映射順序不同。在更新操作中,邏輯區塊中的這些邏輯頁面,以重新編排的映射順序,被映射到第二實體區塊中的複數個實體頁面。
Description
本揭露書是有關於一種記憶體系統及其重新編排資料的
方法。
某些記憶體系統,例如NAND快閃記憶體,面臨因重複讀取操作所引起的讀取干擾效應,這些干擾效應可能影響資料的完整性。為了防止資料損毀,記憶體控制器會對記憶體中的實體區塊(physical blocks)執行更新操作(refresh operations)。在某些情況下,從邏輯區塊(logic block)中的邏輯頁面(logic page)映射到實體區塊中的實體頁面(physical page)的映射順序(mapping order)是固定的,並且在更新操作期間,儲存於弱頁面(weak page)或記憶層中的資料,可能會被重複地複製到實體區塊中的相同實體位址(physical address)上。這種情形會導致頻繁的更新操作在實體區塊中進行,進而影響記憶體的效能
本說明書係揭露一種在記憶體系統,例如NAND快閃記憶體的非揮發性記憶體系統,進行更新操作時,用於對資料進行重新編排的系統和技術。
本說明書的一個面向在於揭露一種在記憶體元件的更新操作中,用於重新編排資料的方法,此方法包括下述步驟:首先,判定邏輯區塊中的一個特定邏輯頁面,因為存在於一個特定實體頁面中的複數個錯誤位元(error bits)而導致失效。其中,此特定實體頁面位於與邏輯區塊映射的第一實體區塊之中,並且對應於此特定邏輯頁面;邏輯區塊中的複數個邏輯頁面,係以一個起始映射順序,映射到第一實體區塊中的實體頁面。接著,以邏輯區的一個重新編排的映射順序,對第一實體區塊執行一個更新操作,其中重新編排的映射順序與起始映射順序不同。在更新操作中,邏輯區塊中的這些邏輯頁面,以重新編排的映射順序,被映射到第二實體區塊中的複數個實體頁面。
判定特定邏輯頁面失效的步驟,可以包括判定特定實體頁面的錯誤位元的數目是否超過一個預定門檻值(predetermined threshold)。此預定門檻值可以根據錯誤校正碼(error correcting code,ECC)針對此特定實體頁面所能夠更正的錯誤位元數目來決定。
在一些實施例中,重新編排的映射順序,係以一個偏離數值(offset number)偏離初始映射順序,且被複數個邏輯頁面所映射的第二實體區塊的複數個實體頁面位址(physical page addresses,PPA)會以此一偏離數值,偏離被邏輯頁面所映射的第
一實體區塊的複數個實體頁面位址。在一些實施例中,此一偏離數值為1。此方法還包括,可以將此一偏離數值存儲在邏輯-實體位址映射表(logical to physical(L2P)address mapping table)中。
在一些實施例中,此方法還包括,判定是否達到一個標準(criterion)。其中,此一標準與一個或多個由記憶體元件中的失效邏輯頁面所引起的更新操作相關聯(associated with);以及,響應(in response to)達到此標準的判定,以邏輯區塊的重新編排映射順序,對第一實體區塊執行更新操作。
在一些實施例中,判定已達到標準的步驟,包括判定邏輯區塊的更新次數不小於更新次數的預定門檻值。其中,更新次數係被設定為:當對映射於邏輯區塊的一實體區塊執行一次更新操作時,更新次數隨之增加。
在一些實施例中,判定已達到標準的步驟,包括判定記憶體元件的更新次數不小於更新次數的預定門檻值。其中,更新次數係被設定為:當對記憶體元件的一實體區塊執行一次更新操作時,其次數隨之增加。此一實體區塊可以與不同於此一邏輯塊的一個第二邏輯塊產生映射。
在一些實施例中,判定已達到標準的步驟,包括判定失效的特定邏輯頁面的邏輯頁面位址(logical page address,LPA)與已失效邏輯頁面的已儲存邏輯頁面位址相同。
在一些實施例中,判定已達到標準的步驟,包括判定失效的特定邏輯頁面的特定邏輯頁面位址,是否存在於已失效邏輯頁面的邏輯頁面位址儲存表列(stored list)之中。此方法更包
括,藉由將複數個最近失效的邏輯頁面的複數個邏輯頁面位址納入已失效邏輯頁面的邏輯頁面位址儲存表列中,來更新已失效邏輯頁面的邏輯頁面位址儲存表列。此方法還可以包括:藉由納入具有複數個超過預定門檻值之失效時間(failed times)的失效邏輯頁面的邏輯頁面位址,來更新已失效邏輯頁面的邏輯頁面位址儲存表列。
此方法可以包括:以重新編排的映射順序,將第一實體區塊的實體頁面中的資料遷移到第二實體區塊的實體頁面。此方法可以包括:藉由將邏輯區塊對應於第二實體區塊的邏輯-實體位址映射儲存至邏輯-實體位址映射表,來更新邏輯-實體位址映射表。
本說明書的另一個面向在於揭露一種用於更新操作以重新編排資料的記憶體系統,包括一個記憶體元件和一個記憶體控制器。此記憶體元件包括複數個實體區塊,其中每一個實體區塊具有複數個實體頁面。記憶體控制器耦接至記憶體元件,並且配置來:判定邏輯區塊中的一個特定邏輯頁面,因一個特定實體頁面中的複數個錯誤位元導致失效。其中,此特定實體頁面位於與邏輯區塊映射的第一實體區塊之中,並且對應於特定邏輯頁面;邏輯區塊中的邏輯頁面,係以起始映射順序映射到第一實體區塊中的實體頁面。以邏輯區的重新編排的映射順序,對第一實體區塊執行一個更新操作,其中重新編排的映射順序與起始映射順序不同。在更新操作中,邏輯區塊中的邏輯頁面,以重新編排的映射順序,被映射到第二實體區塊中的實體頁面。
在一些實施例中,記憶體控制器係配置來:判定是否達到一個標準。其中,此一標準與一個或多個由記憶體元件中的失效邏輯頁面所引起的更新操作相關聯。記憶體控制器可以配置來響應達到此標準的判定,採用邏輯區塊重新編排的映射順序,對第一實體區塊執行更新操作。記憶體控制器可以配置來響應達到此標準的判定,採用邏輯區塊的固定映射順序(fixed mapping order),對第一實體區塊執行一個第二更新操作。其中,固定映射順序與起始映射順序相同。在第二更新操作中,邏輯區塊中的邏輯頁面,以固定映射順序,被映射到第三實體區塊中的實體頁面。
在一些實施例中,此一標準包含以下之一者:邏輯區塊的更新次數不小於一第一更新次數門檻值、記憶體元件的更新次數不小於一第二更新次數門檻值、特定邏輯頁面的邏輯頁面位址與已失效邏輯頁面的邏輯頁面位址相同以及特定邏輯頁面的特定邏輯頁面位址存在於已失效邏輯頁面的邏輯頁面位址儲存表列之中。
在一些實施例中,記憶體控制器係配置來藉由判定特定實體頁面中錯誤位元的數量超過一個預設門檻值來判定此特定邏輯頁面失效。其中此預設門檻值可以根據錯誤校正碼針對此特定實體頁面所能夠更正的錯誤位元數目來決定。
在一些實施例中,記憶體控制器係配置來將第一實體區塊的實體頁面中的資料,以重新編排的映射順序,遷移到第二實體區塊的實體頁面;以及藉由儲存邏輯區塊對應於第二實體區塊的邏輯-實體位址映射,來更新邏輯-實體位址映射表。
重新編排的映射順序,以一個偏離數值,偏離初始映射順序,且邏輯頁面所映射的第二實體區塊中的實體頁面位址會以此一偏離數值,偏離邏輯頁面所映射的第一實體區塊中的實體頁面位址。在一些實施例中,此一偏離數值為1。此方法還包括,可以將此一偏離數值存儲至邏輯-實體位址映射表中。記憶體元件可以是二維平面記憶體元件和三維立體記憶體元件其中之一者。
本說明書的又一個面向在於揭露一種在記憶體元件的更新操作中,用於重新編排資料的記憶體控制器,此記憶體控制器包括至少一個處理器(processor)、至少一個非暫態機器可讀取的儲存介質(non-transitory machine-readable storage medium),耦合到前述的至少一個處理器。且此非暫態機器可讀取的儲存介質中,儲存有機器可執行指令(machine-executable instructions)。當這些機器可執行指令被前述的至少一個處理器執行時,會使前述的至少一個處理器執行下述操作,包括:判定邏輯區塊中的一個特定邏輯頁面,因為存在於一個特定實體頁面中的複數個錯誤位元而導致失效。其中,此特定實體頁面位於與邏輯區塊映射的第一實體區塊之中,並且對應於特定邏輯頁面;邏輯區塊中的邏輯頁面係以一個起始映射順序,映射到第一實體區塊中的實體頁面。判定是否達到一個標準。其中,此一標準與一個或多個由記憶體元件中的失效邏輯頁面所引起的更新操作相關聯;以及,響應未達到此標準的判定,以邏輯區塊的一個固定映射順序對第一實體區塊執行第一更新操作。固定映射順序與起始映射順序相同。在第一更新操作中,邏輯區塊中的邏輯頁面,以固定映射順序,被映射到第二實體區塊中的實體頁面。響應達
到此標準的判定,以邏輯區塊的一個重新編排映射順序對第一實體區塊執行第二更新操作;重新編排的映射順序與起始映射順序不同。在第二更新操作中,邏輯區塊中的邏輯頁面,以重新編排的映射順序,被映射到第三實體區塊中的實體頁面。
本說明書的又另一個面向在於揭露一種在記憶體元件的更新操作中用於重新編排資料的方法,此方法包括下述步驟:判定邏輯區塊中的一個特定邏輯頁面,因為存在於一個特定實體頁面中的複數個錯誤位元而導致失效。其中,此特定實體頁面位於與邏輯區塊映射的第一實體區塊之中,並且對應此特定邏輯頁面;對第一實體區塊執行一更新操作,以至少一個寫入參數,將第一實體區塊中的資料重新編排到第二實體區塊中。其中,前述的至少一個寫入參數,與用來將資料寫入第一實體區塊的寫入參數不同。
前述的至少一個寫入參數可以包括邏輯區塊的寫入時間、寫入電壓、間隔時間(internal time)或映射順序。在一些實施例中,當邏輯區塊中的特定邏輯頁面因為存在於一個特定實體區塊中的複數個錯誤位元而導致失效時,藉由重新編排寫入時間,寫入電壓,間隔時間,邏輯區塊的映射順序來執行更新操作。
在一些實施例中,邏輯區塊中的邏輯頁面,係以一個起始映射順序,被映射到第一實體區塊的實體頁面;邏輯區塊中的邏輯頁面,係藉由與起始映射順序不同的一個重新編排映射順序,被映射到第二實體區塊的實體頁面。
上述技術的實現包括方法、系統、電腦程式產品(computer program products)和電腦可讀取介質(computer-readable media)。在一個實施例中,上述方法可以由耦接到非揮發性記憶體的記憶體控制器來執行。且上述方法可以包括由記憶體控制器執行的動作,例如在記憶體元件的更新操作中,用於重新編排資料的動作。在另一個實施例中,電腦程式產品,可以適當地以非暫態機器可讀取介質來實現。其中,非暫態機器可讀取介質係用來儲存一個或多個由處理器所執行的指令。這些指令被配置來驅使一個或多個處理器執行上述動作。當被一個或多個處理器執行上述動作時,前述電腦可讀取介質係用來儲存被配置來驅使一個或多個處理器執行上述動作的指令。
在上述技術中,可以使用邏輯-實體位址映射的方式,以固定順序、重新編排的順序或二者來進行更新操作。決定更新操作究係要採用哪種映射順序的標準,可取決於邏輯頁面位址、記憶體或邏輯區塊亦或實體位址的更新次數。重新編排順序的偏離數值(或實體位置的位移數值(physical location shift number)),可以在邏輯-實體位址映射表中被更新,或者以任何種類的記憶胞或定義(definitions),例如使用來計算實際的實體位址的索引,來加以記錄。重新編排順序的偏移或實體位置移位數值,可以在頁面位址(對於二維平面記憶體元件)、儲存層位址(對於三維立體記憶體元件)或區塊位址中計算出來。記憶體控制器可以管理對一個區塊或不同數量的區塊或頁面進行更新操作時資料的重新編排。
這些技術,可以藉由任何類型的控制器來加以實現,以減少記憶體元件的更新操作遭受到讀取干擾、資料保持和/或其他干擾影響。這些技術可以應用於任何類型的資料遷移或重新編排,以便將資料從原始區塊遷移到新的區塊,例如更新操作和錯誤處理(error handling)。
這些技術可以應用於各種類型的記憶體元件,例如單層記憶胞(single-level cell,SLC)元件,或多層記憶胞(multi-level cell,MLC)元件,例如雙層記憶胞元件,亦或三層記憶胞(triple-level cell,TLC)元件。這些技術可以應用於各種空間尺寸的記憶體系統,例如二維平面記憶體系統或三維立體記憶體系統。這些技術可以應用於各種類型的非揮發性記憶體系統,例如NAND快閃記憶體系統等。另外或替代地,這些技術可以應用於各種類型的元件和系統,例如安全數位(secure digital,SD)卡、嵌入式多媒體卡(embedded multimedia cards,eMMC)或固態驅動器(solid-state drives,SSD)、嵌入式系統等。
為了對本說明書之上述及其他方面有更佳的瞭解,下文特舉實施例,並配合所附圖式詳細說明如下:
100:系統
110:裝置
112:控制器
113:處理器
114:內部記憶體元件
116:記憶體元件
120:主機元件
140:記憶體區塊
141:記憶胞
142:記憶胞頁面
143:源極選擇電晶體
144:記憶胞串列
145:接地選擇電晶體
146:源極選擇線
148:接地選擇線
149:共同源極線
150:記憶體區塊
152:記憶胞頁面
154:記憶胞串列
156:源極選擇線
158:接地選擇線
159:共同源極線
160:記憶胞
170:記憶體層
302:判定特定頁面中的失效位元數目超過與錯誤校正碼相關聯的門檻值
304:判定是否達到標準?
306:以固定映射順序來執行更新操作
308:以重新編排的映射順序來執行更新操作
352:將邏輯區塊中的邏輯頁面以重新編排列的映射順序映射到新的實體區塊
354:將對應於邏輯頁面的資料遷移到新的實體區塊
356:將新的邏輯-實體位址映射步驟或偏離數值記錄在邏輯-實體位址映射表中
BL0、BL1、...、BLn-1、BLn:列位元線
WL0、WL1、...、WLn-1、WLn:字元線
GST:接地選擇電晶體
SST:源極選擇電晶體
GSL:接地選擇線
SSL:源極選擇線
LPA:邏輯頁面位址
PPA:實體頁面位址
第1A圖係根據一或多個實施例所繪示的一種包含記憶體元件的系統。
第1B圖係根據一或多個實施例所繪示的一種包含記憶體區塊的系統。
第1C圖係根據一或多個實施例所繪示的一種二維平面記憶體區塊。
第1D圖係根據一或多個實施例所繪示的一種邏輯-實體位址映射表。
第1E圖係根據一或多個實施例所繪示的一種三維立體記憶體區塊。
第2圖係繪示因重複讀取操作對記憶體層產生讀取干擾影響的一個示例。
第3A圖係根據一或多個實施例,繪示在記憶體中重新編排資料的流程。
第3B圖係根據一或多個實施例,繪示用於更新操作的標準的一個示例。
第3C圖係根據一或多個實施例,繪示更新操作的資料重新編排流程。
第4圖係根據一或多個實施例,繪示使用邏輯區塊的更新次數標準來進行資料重新編排。
第5圖係根據一或多個實施例,繪示使用記憶體的更新次數標準來進行資料重新編排。
第6圖係根據一或多個實施例,繪示使用比較新失效之邏輯頁面的邏輯頁面位址與已失效邏輯頁面的已儲存邏輯頁面位址所產生的標準,來重新編排資料。
第7圖係根據一或多個實施例,繪示使用判斷新失效之邏輯頁面的邏輯頁面位址是否存在於已失效邏輯頁面的邏輯頁面位址儲存表列中所產生的標準,來重新編排資料。
本說明書的實施例提供了用於在記憶體系統中重新編排資料,例如用於記憶體系統中的更新操作,的系統與方法,以減少讀取干擾效應。在同一實體位址上進行重複讀取操作會對記憶體元件形成壓力,進而導致讀取干擾。同樣地,在一個或多個邏輯頁面(例如,熱讀取點)上所進行的重複讀取操作,可能會對與特定邏輯頁面或記憶層相關聯的實體位址造成嚴重的讀取干擾。如果在多次更新操作(multiple refresh operations)期間,將特定邏輯頁面或記憶層映射到實體區塊中的相同實體位址,則這個實體區塊可能會產生很高的失效位元數目,這可能導致這個實體區塊更頻繁的更新操作。但是,如果在多次更新操作期間,將特定邏輯頁面或記憶層映射到不同實體區塊中的不同實體位址,則可以延長實體區塊的生命週期,以承受更多的更新操作。
如下面詳細討論的內容,邏輯區塊中的邏輯頁面可以採用固定順序、重新編排順序或兩者來映射到實體區塊上。記憶體控制器可以被配置來,根據實體頁面或記憶層的失效位元數目(或錯誤位元數目)與錯誤校正碼之門檻值的比較結果,決定何時對邏輯區塊(或被邏輯區塊映射到的實體區塊)執行更新操作。記憶體控制器可以被配置來,根據個別邏輯區塊的更新次數、記憶體元件的更新次數、新失效頁面或
記憶層的邏輯頁面位址與已失效頁面或記憶層的已儲存邏輯頁面位址的比較結果、判斷新失效頁面或記憶層的邏輯頁面位址是否存在於已失效頁面或記憶層的邏輯頁面位址儲存表列中,決定使用何種映射順序(固定順序、重新編排順序)。
第1A圖係繪示用於重新編排資料的系統100的實施例。系統100包括裝置(device)110和主機元件(host device)120。裝置110包括元件控制器(device controller)112和記憶體元件(memory)116。元件控制器112包括處理器113和內部記憶體元件(internal memory)114。
在一些實施例中,裝置110可以是一種儲存元件(storage device)。例如,裝置110可以是嵌入式多媒體卡、安全數位卡、固態驅動器或一些其他合適的記憶體元件。在一些實施方式中,裝置110可以是智慧手錶、數位相機或媒體播放器。在一些實施例中,裝置110可以是耦接到主機元件120的客戶端元件(client device)。例如,裝置110可以是數位相機中的安全數位卡或是主機元件120的媒體播放器。
元件控制器112可以是通用微處理器(general-purpose microprocessor)或專用微控制器(application-specific microcontroller)。在一些實現中,元件控制器112是裝置110的記憶體控制器。以下內容是描述以記憶體器控制器來實現元件控制器112的各種技術。然而,以下內容中所描述的技術,也適用於以非記憶體控制器的另一類控制器來實現元件控制器112的實施例。
處理器113被配置來執行指令和處理資料。指令包括硬體指令(firmware instructions)和/或在輔助記憶體元件(secondary memory)中分別已儲存為硬體代碼(firmware code)和/或其他程式碼(program code)的其他程式指令(program instructions)。上述的資料包括與硬體和/或被處理器所執行之其他程式相對應的程式資料(program data),以及其他合適的資料。在一些實施例中,處理器113可以是通用微處理器或專用微控制器。處理器113也稱為中央處理單元(central processing unit,CPU)。
處理器113從內部記憶體元件114存取指令和資料。在一些實施例中,內部記憶體元件114可以是靜態隨機存取記憶體元件(Static Random Access Memory,SRAM)或動態隨機存取記憶體元件(Dynamic Random Access Memory,DRAM)。例如,在一些實施例中,當裝置110是嵌入式多媒體卡、安全數位卡或智慧手錶時,內部記憶體元件114是靜態隨機存取記憶體元件。在一些實施例中,當裝置110是數位相機或媒體播放器時,內部記憶體元件114是動態隨機存取記憶體元件。
在一些實施例中,內部記憶體元件114是包括在元件控制器112中的快取記憶體(cache memory),如第1A圖所繪示。內部記憶體元件114係用來存儲與處理器113所執行之指令對應的指令代碼,和/或處理器113在運作期間(runtime)所請求的資料。
元件控制器112將指令代碼和/或資料從記憶體元件116傳送到內部記憶體元件114。在一些實施例中,記憶體元件
116可以是一種被配置來用於指令和/或資料長期儲存的非揮發性記憶體元件,例如,NAND快閃記憶體元件,或一些其他合適的非揮發性記憶體元件。在記憶體元件116為NAND快閃記憶體元件的實施例中,裝置110可以是快閃記憶體裝置,例如快閃記憶體卡,且元件控制器112可以是NAND快閃記憶體控制器。例如,在一些實施例中,當裝置110是嵌入式多媒體卡或安全數位卡時,記憶體元件116可以是NAND快閃記憶體元件。在一些實施例中,當裝置110是數位相機時,記憶體元件116可以是安全數位卡;在一些實施例中,當裝置110是媒體播放器時,記憶體元件116可以是硬碟。值得注意的是,雖然以下描述內容是使用NAND快閃記憶體元件作為存儲器116的示例,但其僅係為了清楚說明起見,非用以限定本發明的專利範圍。
如下面所進一步詳細討論的內容,元件控制器112被配置來檢測記憶體元件116的資料完整性(data integrity),例如記憶體元件116的讀取干擾。元件控制器112可以檢測記憶體元件116中各個頁面或區塊相對應的失效位元數目(或錯誤位元數目)。例如藉由奇偶校驗(parity check)以及儲存所計數的錯誤數量來檢測錯誤。然後,元件控制器112可以判定頁面的失效位元數目(或錯誤位元數目)是否超過,例如與錯誤校正碼相關聯的,門檻值。如果頁面中的失效位元數目超過門檻值,則元件控制器112會決定對包含此一頁面的區塊執行更新操作。元件控制器112可以根據是否達到某一標準來決定採用哪一種映射順序。此一標準可以基於先前被執行,並且由記憶體元件116中的失效邏輯(或實體)頁面所引起的一個或多個更新操作來決定。此一標準可以包括邏輯
區塊的更新次數不小於(等於或大於)預定門檻值、記憶體元件116的更新次數不小於預定門檻值、新失效頁面或記憶層的邏輯頁面位址與已失效頁面或記憶層的已儲存邏輯頁面位址相同,或者新失效頁面或記憶層的邏輯頁面位址存在於已失效頁面或記憶層的邏輯頁面位址儲存表列之中。當未達到此標準時,元件控制器112採用固定映射順序,將邏輯區塊映射到新的實體區塊上。當達到此標準時,元件控制器112採用重新編排的映射順序,將邏輯區塊映射到新的實體區塊上。
第1B圖係繪示包括複數個實體區塊118的記憶體元件116的配置示意圖。記憶體元件116可以是二維平面記憶體元件或三立體記憶體元件。
第1C圖係繪示當記憶體元件116是二維平面記憶體元件時,記憶體區塊140的配置示意圖。記憶體區塊140可以是第1B圖所繪示的區塊118。記憶體區塊140包括複數個記憶胞141,這些記憶胞141串聯耦接至列位元線(column bit lines)BL0、BL1、...、BLn-1和BLn,以形成多個記憶胞串列(cell strings)144,並且串聯耦接至行字元線WL0、WL1、...、WLn-1和WLn,以形成複數個記憶胞頁面(cell pages)142。
記憶胞串列144可以包括彼此串聯連接的多個記憶胞141、源極選擇電晶體(source select transistor,SST)143和接地選擇電晶體(ground select transistor,GST)145。源極選擇電晶體143的閘極連接到源極選擇線(source select line,SSL)146。不同串列中的源極選擇電晶體143的閘極也連接到相同的源極選擇線。記憶胞141的閘極分別連接到字元線WL0、
WL1、...、WLn-1和WLn。記憶胞141經由接地選擇電晶體145連接到共同源極線(common source line,CSL)149。接地選擇電晶體145的閘極連接到接地選擇線(ground select line,GSL)148。不同記憶胞串列中的接地選擇電晶體145的閘極也連接到相同的接地選擇線。記憶胞頁面142中可以包括多個記憶胞141。記憶胞頁面142中的記憶胞141的閘極,串聯耦接到相應的字元線(WL)。當輸入電壓施加到字元線時,輸入電壓也會被施加到記憶胞頁面142中的記憶胞141的閘極。
為了在讀取操作中讀取記憶體區塊140中的特定記憶胞頁面142,將較低的電壓施加到對應於特定記憶胞頁面142的字元線上。同時,將較高的電壓施加到記憶體區塊140中的其他記憶胞頁面上。當特定記憶胞頁面142被讀取很多次,例如超過1億次時,較高的電壓會以相同的大量次數重複地施加到其他記憶胞頁面上,這可能導致另一個記憶胞頁面的讀取干擾。在未被讀取的其他記憶胞頁面中,某一個未被讀取的特定記憶胞頁面可能會遭受到嚴重的讀取干擾。此一未被讀取的特定記憶胞頁面可以被視為是一種弱頁面。
裝置110可以包括快閃轉換層(Flash Translation Layer,FTL)用以管理讀取、寫入和抹除操作。快閃轉換層可以儲存於元件控制器112中,例如儲存於內部記憶體元件114中。快閃轉換層使用邏輯-實體位址映射表。此邏輯-實體位址映射表係儲存從邏輯區塊中的邏輯頁面映射到實體區塊中的實體頁之間的映射資料。
邏輯區塊可以具有邏輯區塊位址(logical block address,LBA)。邏輯區塊中的每一個邏輯頁面可以具有邏輯頁面位址。邏輯頁面位址可以包括邏輯區塊的邏輯區塊位址以及這個邏輯區塊中的頁碼或頁面偏移(page offset)。實體區塊可以具有實體區塊位址(physical block address,PBA)。實體區塊中的每一個實體頁面可以具有實體頁面位址(physical page address,PPA)。實體頁面位址可以包括,實體區塊的實體區塊位址以及實體區塊中的頁碼或頁面偏移。
利用這種管理方法,可以從具有邏輯頁面位址索引(index)的位址表列,例如,邏輯-實體位址映射表列,獲取實體頁面位址。實體頁面位是記憶體元件116中用來對應邏輯頁面的位址。例如,當裝置110從主機元件120接收到讀取指令時,裝置110可以識別與讀取指令相關聯的一個或多個邏輯頁面位址,並使用邏輯-實體位址映射表列來確定相應的實體頁面位址。
第1D圖繪示一種邏輯-實體位址映射表列。邏輯區塊0包括N個邏輯頁面。每一個邏輯頁面具有從(0,0)到(0,N)的對應邏輯頁面位址。對應於邏輯區塊0的數據被儲存在包含有N個實體頁面的實體區塊A中。邏輯-實體位址映射表列儲存了從邏輯區塊0中的N個邏輯頁面對應到實體區塊A中的N個實體頁面的映射資料。例如,邏輯頁面位址(0,0)、...邏輯頁面位址(0,N)被順序映射到實體頁面位址(A,0)...實體頁面位址(A,N)。
第1E圖繪示當記憶體元件116是三維立體記憶體區塊時,三維立體記憶體區塊150的示意圖。記憶體區塊150可以
是第1B圖所繪示的區塊118。記憶胞160以三維立體方式排列,例如,在XYZ坐標系中排列,並耦接到多條字元線以形成複數個記憶胞頁面152,且耦接到複數條位元線以形成記憶胞串列154。記憶胞串列154包含有多個串聯連接的記憶胞160。其中,這些記憶胞160之一者,可以被配置來作為源極選擇電晶體,耦接到源極選擇線156;且記憶胞160之另一者,可以被配置來作為接地選擇電晶體,耦接到接地選擇線158。這些記憶胞160可以經由此一接地選擇電晶體連接到共同源極線159。
記憶體區塊150可包括,例如,沿Z方向垂直堆疊的多個記憶體層170。每一個記憶體層170可以是,例如,位於X-Y平面上,包含複數個記憶胞頁面152的二維平面層。
為了在讀取操作中讀取記憶體層170中的特定記憶胞頁面152,會將較低電壓施加到對應於特定記憶胞頁面152的字元線上。較低電壓也會被施加到記憶體層170中的其他記憶胞頁面152。同時,較高的電壓也會被施加到記憶體區塊150中的其他記憶體層上。當特定記憶胞頁面152被讀取很多次時,例如超過1億次時,這個較高的電壓將會以相同大量的次數,被施加到其他記憶體層上,這可能導致讀取干擾。在其他的記憶體層中,某一特定記憶體層可能遭受嚴重的讀取干擾。此一特定記憶體層可以被認為是弱層。
第2圖係繪示因重複讀取操作對記憶體層產生讀取干擾影響的一個示例。記憶體層可以是第1圖所繪示位於三維立體
記憶體元件(例如第1A圖所繪示的記憶體元件116)中的區塊(例如第1D圖所示的記憶體區塊150)中的記憶體層170。記憶體區塊150包括N個記憶體層170。
如第2圖中的圖形A所繪示,當在記憶層8(或記憶層8中的頁面)上重複執行讀取操作時,例如,重複執行超過1億次,記憶體區塊中的其他記憶層會經歷不同程度的讀取干擾,並且具有不同程度的失效位元數目,其範圍從「少」到「中等」。在其他記憶層中,記憶層1具有最高(例如,中等)的失效位元數目。因此,記憶層1可以被認定為是弱層。
如第2圖中的圖形B所繪示,當在記憶層2(或記憶層2中的頁面)上重複執行讀取操作時,例如,重複執行超過1億次,記憶體區塊中的其他記憶層同樣會經歷不同程度的讀取干擾,並且具有不同程度的失效位元數目,其範圍從「少」到「高」。較特別的是,記憶層1仍具有最高(例如,較高)的失效位元數目。當讀取記憶層2時,記憶層1具有比讀取記憶層8時更高的失效位元數目,這可能是由於記憶層2與弱層1相鄰的緣故。
在一些實施例中,錯誤校正碼可以糾正記憶體頁面或記憶層中的失效位元(或錯誤位元)。當記憶體頁面或記憶層中的失效位元數目(或失效位元計數)超過與錯誤校正碼相關聯的門檻值時,記憶體頁面或記憶體層被視為失效的頁面或記憶體層。然後,可以對包含有失效的頁面或記憶體層的記憶體區塊執行更新操作。例如,弱層(如第2圖所示的記憶體層1)與同一個記憶體區
塊中的其他記憶體層相比,成為失效記憶體層,導致需要對記憶體區塊進行更新操作的機率較高。
本說明書的實施例提供了用於更新操作的資料重新編排方法,以減少對弱層或記憶體頁面的讀取干擾,從而減少對包含有弱層或記憶體頁面的記憶體區塊所進行的更新操作次數。以下內容將使用包含有複數個記憶體頁面的二維平面記憶體系統作為實施例來進行描述,其僅係用於例示說明,類似的方法也可以應用於包含有複數個記憶體頁面的三維立體面記憶體系統。
第3A圖係根據一或多個實施例,繪示在記憶體中重新編排資料的流程300。流程300可以由記憶體控制器,例如第1A圖所繪示的元件控制器112,來執行。記憶體元件可以是第1A圖所繪示的記憶體元件116。
記憶體控制器可以檢測(和/或監視)實體區塊中的實體頁面的失效位元數目。此實體區塊可以對應一個邏輯區塊,且每一個實體頁面與邏輯區塊中相應的邏輯頁面對應。每一個邏輯頁面都有一個邏輯頁面位址。實體頁面的失效位元數目,也可以被認為是對應於(或映射到)此一實體頁面的邏輯頁面或邏輯頁面位址的失效位元數目。
記憶體控制器判定特定頁面中的失效位元數目(或錯誤位元數目)超過與錯誤校正碼相關聯的門檻值(參見步驟302)。錯誤校正碼可以被配置來校正最大數量的錯誤位元,例如
126位元。門檻值可以設定為是這個最大數量的50%、60%、70%、80%或90%。當判定特定頁面中的失效位元數目超過錯誤校正碼的門檻值時,可以將特定頁面視為(標記或標定)為失效頁面,且相應的邏輯頁面可以被視為失效的邏輯頁面位址。例如,如第6圖所繪示的實體區塊A中的邏輯頁面位址(0,0)。記憶體控制器可以決定對實體區塊執行更新操作。
在更新操作期間,實體區塊中的資料可以被遷移到新的空實體區塊,並且此一實體區塊中的每一個實體頁面中的資料可以被遷移到新實體區塊中的新實體頁面。原本映射到實體區塊之實體頁面的邏輯頁面位址,可以被重新映射到新實體區塊的新實體頁面。
在一些實施例中,在新實體區塊中被重新映射的邏輯頁面位址,其順序可以與原實體區塊所映射的邏輯頁面位址的順序相同。也就是說,用於更新操作的邏輯頁面位址的映射順序是固定的。原實體區塊中的邏輯頁面位址的順序可以是一種序列順序(sequential order)。例如,如第4圖所繪示,邏輯區塊0包括768個邏輯頁面,其具有從(0,0)到(0,767)的相應邏輯頁面位址。邏輯區塊0最初是以從邏輯頁面位址(0,0)映射到實體塊A的實體頁面位址(A,0)、從邏輯頁面位址(0,1)映射到實體頁面位址(A,1),...以及從邏輯頁面位址(0,767)映射到實體頁面位址(A,767)的順序,來進行映射。也就是說,邏輯區塊0中的邏輯頁面0到767按順序映射到實體區塊A中的實體頁面0到767。
在邏輯區塊0的第一更新操作中,實體區塊A中的資料被遷移到實體區塊B,且根據從邏輯頁面位址(0,0)映射到實體頁面位址(B,0)、從邏輯頁面位址(0,1)映射到實體頁面位址(B,1)、......以及從邏輯頁面位址(0,767)映射到實體頁面位址(B,767)的重新映射順序,將邏輯區塊0重新映射到實體區塊B。也就是說,邏輯區塊0中的各個邏輯頁面0到767分別按順序映射到實體區塊B中的實體頁面0到767。實體區塊B的邏輯頁面位址的映射順序與實體區塊A的邏輯頁面位址映射順序相同。因此,第一次更新操作的邏輯頁面位址的映射順序是固定的。
類似地,在邏輯區塊0的第二更新操作中,實體區塊B中的資料被遷移到實體區塊C,且邏輯區塊0被重新映射到實體區塊C。實體區塊C的邏輯頁面位址的重新映射順序,與實體區塊B的邏輯頁面位址的映射順序相同。第二更新操作中的邏輯頁面位址的映射順序與第一更新操作的邏輯頁面位址的映射順序相同。
在一些實施例中,可以重新編排新實體區塊中重新映射的邏輯頁面位址的順序,以使其與映射到原實體區塊的邏輯頁面位址的順序不同。也就是說,用於更新操作的邏輯頁面位址的映射順序是會改變的,或者用於依順序進行更新操作的邏輯頁面位址的映射順序是會改變的。新實體區塊中的邏輯頁面位址的順序可以是一種偏移順序(offset order)。例如,如第4圖所繪示,在邏輯區塊0的第三更新操作中,實體區塊C中的資料被遷移到實體區塊D,且根據從邏輯頁面位址(0,0)映射到實體頁面位址
(D,1)、從邏輯頁面位址(0,1)映射到實體頁面位址(D,2)、.....以及從邏輯頁面位址(0,767)映射到實體頁面位址(D,0)的重新映射順序,將邏輯區塊0重新映射到實體區塊D。也就是說,邏輯區塊0中的各個邏輯頁面0、1、...到767,被映射到實體區塊D中的各個實體頁面1、2、...到0。實體區塊D的邏輯頁面位址的映射順序不同於實體區塊C的邏輯頁面位址的映射順序。因此,用於第三更新操作的邏輯頁面位址的映射順序與用於第二更新操作的邏輯頁面位址的映射順序不同。
類似地,在邏輯區塊0的第四更新操作中,實體區塊D中的資料被遷移到實體區塊E,且根據從邏輯頁面位址(0,0)映射到實體頁面位址(E,2)、從邏輯頁面位址(0,1)映射到實體頁面位址(E,3)、......以及從邏輯頁面位址(0,767)映射到實體頁面位址(E,1)的重新映射順序,將邏輯區塊0重新映射到實體區塊E。也就是說,邏輯區塊0中的各個邏輯頁面0、1、...到767,被映射到實體區塊D中的各個實體頁面2、3...到1。實體區塊E中的邏輯頁面位址的映射順序不同於實體區塊D中的邏輯頁面位址的映射順序。因此,用於第四更新操作的邏輯頁面位址的映射順序,與用於第三新操作的邏輯頁面位址的映射順序不同。用於第四更新操作的邏輯頁面位址的映射順序,也與用於第二新操作的邏輯頁面位址的映射順序(如第4圖所繪示)不同。
在一些實施例中,對於不同的更新操作,新實體區塊的映射順序可以採用相同的偏離數值來偏離原始實體區塊的映射順序。例如,如第4圖所示,在第三更新操作中,實體區塊D的
邏輯頁面位址的映射順序,從實體區塊C的邏輯頁面位址的映射順序偏離1;在第四更新操作中,實體區塊E的邏輯頁面位址的映射順序,也從實體區塊D的邏輯頁面位址的映射順序偏離1。在一些實施例中,不同的更新操作,可以使用不同的偏離數值來使映射順序產生偏離。也就是說,偏離數值是可以改變的。例如,第一偏離數值可以是1,第二偏離數值可以是2。在一些實施例中,下一個順序的序列偏離數值(sequential offset number),可以小於排列在前的偏移數。在某些情況下,下一個順序的序列偏離數值可以大於排列在前的另一個偏離數值。
請再參照第3A圖,記憶體控制器判定(是否)達到標準(步驟304)。此一標準可以基於記憶體元件中的失效邏輯頁面所導致的一個或多個更新操作。如果記憶體控制器判定未達到標準,則記憶體控制器會決定以固定映射順序,對實體區塊來執行更新操作(步驟306)。也就是說,新實體區塊的邏輯頁面位址的映射順序與實體區塊的邏輯頁面位址的映射順序相同。
如果記憶體控制器確定達到標準,則記憶體控制器會決定以重新編排的映射順序,來對實體區塊執行更新操作(步驟308)。新實體區塊的邏輯頁面位址的映射順序被重新編排,使其與原實體區塊的邏輯頁面位址的映射順序不同。藉由這種方式,在多次更新操作之後,將邏輯區塊重新映射回相同的實體區塊時,同一個實體區塊的邏輯頁面位址的映射順序可以不同。因此,可以將弱頁面重新編排到同一個實體區塊中的不同實體頁面,這可以減少對實體區塊的讀取干擾。
在一些實施例中,重新編排的映射順序可以藉由一個偏離數值偏離先前的映射順序。偏離數值可以被認為是重新編排順序的偏移或實體位置的位移數值。偏離數值可以是1、2、3,或小於實體區塊之頁數的任何其他值。例如,如第4圖中所繪示,第三更新操作的偏離數值為1。邏輯頁面位址(0,0)所映射的實體頁面位址,從實體區塊C的實體頁面位址(C,0)重新映射到實體區塊D中的實體頁面位址(D,1);且邏輯頁面位址(0,1)所映射的實體頁面位址,從實體區塊C的實體頁面位址(C,1)重新映射到實體區塊D的實體頁面位址(D,2)。與實體區塊C的邏輯頁面位址的實體位置相比,實體區塊D的每一個邏輯頁面位址的實體位置偏離1。因此,邏輯頁面位址(0,767)所映射的實體頁面位址,從實體區塊C的實體頁面位址(C,767)重新映射到實體區塊D的實體頁面位址(D,0)。
在一些實施例中,重新編排的映射順序可以是一種雜亂次序(scrambling order)或是一種隨機次序(random order)。邏輯頁面位址映射到實體區塊的映射順序,可以是一種序列順序,也可以是一種不連續的順序(discontinuous order)。在一些實施例中,在重新編排的映射順序中,失效的邏輯頁面位址,例如邏輯頁面位址(0,0),與另一個邏輯頁面位址交換,且其他邏輯頁面位址保持不變。在一些實施例中,重新編排的映射順序可以基於統計分析,例如根據邏輯頁面位址所要映射到的新實體區塊中的實體頁面的失效位元數目,來決定。
在一些實施例中,如圖3A所繪示,流程300從步驟302直接進行步驟308而不執行步驟304。即,響應於記憶體控制器判定特定頁面中的失敗位元數目(或錯誤位元數)已超過與錯誤校正碼相關聯的門檻值(步驟302)。記憶體控制器可以決定,根據重新編排的映射順序,在實體區塊上執行更新操作的步驟(步驟308),而不執行判定是否達到標準的步驟(步驟304)。
第3B圖係根據一或多個實施例,繪示用於更新操作的標準的一個示例。第4圖至第7圖係繪示根據第3B圖所繪示的各個標準進行更新操作的實施例。在這些實施例中,重新編排的映射順序,係採用偏離數值1來偏離先前的映射順序。然而,這些實施例中僅以說明為目的,採用不同偏離數值的其他重新編排的映射順序,也可以在本發明中實施。另外這些實施例中,係使用同一個標準來決定更新操作採用哪種映射順序。然而,這些實施例中僅以說明為目的,在其他實施例中,也可以使用兩個或更多個標準來決定更新操作採用哪種映射順序。例如,如果達到兩個或更多個標準中的任何一個,則執行更新操作。
在第一實施例中,上述的標準是:邏輯區塊的更新次數不小於更新次數的門檻值。更新次數是對邏輯區塊執行更新操作的次數。記憶體控制器可以監控記憶體元件中的更新操作,並儲存記憶體元件中各個邏輯區塊的更新次數。當記憶體控制器判定邏輯區塊的更新次數小於更新次數門檻值時,記憶體控制器會決定以固定的映射順序來執行更新操作(步驟306)。當記憶體控
制器判定邏輯區塊的更新次數不小於更新次數門檻值時,記憶體控制器會決定以重新編排的映射順序來執行更新操作(步驟308)。
如第4圖所繪示,記憶體控制器將邏輯區塊的更新次數的門檻值設定為2。邏輯區塊0最初被映射到實體區塊A。邏輯區塊0可以包括一個或多個弱頁面。當邏輯區塊0中的弱頁面的失效位元數目超過門檻值時,如第3A圖的步驟302中所述,則對邏輯區塊0執行更新操作。此一更新操作係對邏輯區塊0目前所映射的實體區塊執行。
如第4圖所繪示,邏輯區塊0經歷第一更新操作,並且從區塊A重新映射到區塊B。當邏輯區塊的更新次數小於更新次數門檻值2時,記憶體控制器會決定以固定的映射順序來執行第一更新操作。因此,區塊A的邏輯頁面位址映射到實體頁面位址的映射順序與區塊B的邏輯頁面位址映射到實體頁面位址的映射順序相同。在第一次更新操作之後,邏輯區塊0的更新次數從0增加到1。在第二更新操作中,邏輯區塊0從區塊B重新映射到區塊C。當邏輯區塊0的更新計數比更新次數門檻值小1時,記憶體控制器會決定,以固定的映射順序來執行第二更新操作。因此,區塊C的邏輯頁面位址映射到實體頁面位址的映射順序與區塊B的邏輯頁面位址映射到實體頁面位址的映射順序相同。因此,在第二更新操作之後,邏輯區塊0的更新次數增加到2。
當確定邏輯區塊0經歷第三更新操作時,記憶體控制器判定更新次數2與更新次數門檻值2相同。記憶體控制器響應
此判定,決定以重新編排的映射順序來執行第三更新操作。如上所述,邏輯區塊0從區塊C重新映射到區塊D。區塊D的邏輯頁面位址的映射順序,與區塊C的邏輯頁面位址的映射順序不同。區塊D的邏輯頁面位址的映射順序,可以偏離區塊C的邏輯頁面位址的映射順序。偏離數值可以是1。類似地,當確定邏輯區塊0經歷第四更新操作時,記憶體控制器判定更新次數3大於更新次數門檻值2。記憶體控制器響應此判定,決定以重新編排的映射順序來執行第四更新操作。如上所述,邏輯區塊0從區塊D重新映射到區塊E。區塊E的邏輯頁面位址的映射順序,與區塊D的邏輯頁面位址的映射順序不同。區塊E的邏輯頁面位址的映射順序,可以偏離區塊D的邏輯頁面位址的映射順序。偏離數值可以是1。
請再參照第3B圖,在第二實施例中,上述的標準是:記憶體元件的更新次數不小於更新次數的門檻值。更新次數是對記憶體元件中的實體區塊執行的更新操作的次數。實體區塊對應於一個或多個邏輯區塊。記憶體控制器可以監控記憶體元件中所有的實體區塊(或所有邏輯區塊)的更新操作,並儲存記憶體元件的更新操作次數。當記憶體控制器判定記憶體元件的更新次數小於更新次數門檻值時,記憶體控制器會決定以固定的映射順序來執行更新操作(步驟306)。當記憶體控制器判定記憶體元件的更新次數不小於更新次數門檻值時,記憶體控制器會決定以重新編排的映射順序來執行更新操作(步驟308)。
如第5圖所繪示,記憶體控制器將記憶體元件的更新次數門檻值設定為2。記憶體元件包括邏輯區塊0和邏輯區塊1。
邏輯區塊0最初被映射到實體區塊A,並且包括768個邏輯頁面,這些邏輯頁面具有從(0,0)到(0,767)的邏輯頁面位址,並且分別映射到從(A,0)到(A,767)的實體頁面位址。邏輯區塊1最初被映射到實體區塊C,並且包括768個邏輯頁面。這些邏輯頁面具有從(1,0)到(1,767)的邏輯頁面位址,且分別映射到從(C,0)到(C,767)的實體頁面位址。
邏輯區塊0首先經歷更新操作,並且從區塊A重新映射到區塊B。當記憶體元件的更新次數小於更新次數門檻值2時,記憶體控制器會決定以固定的映射順序來執行第一更新操作。因此,邏輯區塊0的邏輯頁面位址映射到實體區塊B的實體頁面位址的映射順序,與邏輯區塊0的邏輯頁面位址映射到實體區塊A的實體頁面位址的映射順序相同。因此,在第一次更新操作之後,記憶體元件的更新次數從0增加到1。
邏輯區塊1經歷更新操作,並且從區塊C重新映射到區塊D。當記憶體元件的更新次數比更新次數門檻值小1時,記憶體控制器會決定以固定的映射順序來執行第二更新。因此,邏輯區塊1的邏輯頁面位址映射到實體區塊D的實體頁面位址的映射順序,與邏輯區塊1的邏輯頁面位址映射到實體區塊C的實體頁面位址的映射順序相同。因此,在第二次更新操作之後,記憶體元件的更新次數增加到2。
當判定邏輯區塊0在記憶體元件經歷第三更新操作時,記憶體控制器判定更新次數2與更新次數門檻值2相同(或不小
於2)。響應達到此標準的判定,記憶體控制器會決定以重新編排的映射順序來執行第三更新操作,將邏輯區塊0從區塊B重新映射到區塊E。邏輯區塊0的邏輯頁面位址映射到實體區塊B的映射順與序邏輯區塊0的邏輯頁面位址映射到實體塊E的映射順序不同。而用來將邏輯頁面位址映射到實體區塊E的重新編排的映射順序,會偏離用來將邏輯頁面位址映射到實體區塊B的映射順序。其中,偏離數值可以是1。
請再參照第3B圖,在第三實施例中,上述的標準是:新失效邏輯頁面位址與已儲存的失效邏輯頁面位址(或已儲存的更新邏輯頁面位址)相同。也就是說,此一標準是新失效邏輯頁面的邏輯頁面位址與已儲存的失效邏輯頁面的邏輯頁面位址相同。如前所述,在邏輯區塊中,可能存在比其他頁面失效機率更高的弱頁面。記憶體控制器可以監控邏輯區塊中各個邏輯頁面的失效位元數目。當弱頁面失效時,例如,當弱頁面的失效位元數目大於與錯誤校正碼相關聯的門檻值時,記憶體控制器會將失效頁面記錄為會導致邏輯區塊進行更新操作的失效邏輯頁面位址(或更新邏輯頁面位址)。當新的失效邏輯頁面位址產生時(例如,藉由記憶體控制器判定邏輯頁面位址的失效位元數目大於門檻值),記憶體控制器會比較新失效的邏輯頁面位址和先前已儲存的已失效的邏輯頁面位址(或已儲存的更新邏輯頁面位址)。如果記憶體控制器判定新失效的邏輯頁面位址與先前已儲存的已失效的邏輯頁面位址不同,則記憶體控制器會決定以固定的映射順序來執行邏輯區塊的更新操作(步驟306)。當記憶體控制器判定新失效的
邏輯頁面位址與先前已儲存的失效的邏輯頁面位址相同時,記憶體控制器會決定以重新編排的映射順序來執行邏輯區塊的更新操作(步驟308)。
如第6圖所繪示,邏輯區塊0最初被映射到實體區塊A。邏輯區塊0可以包括弱頁面邏輯頁面位址(0,0)。當邏輯頁面位址(0,0)的失效位元數目超過與錯誤校正碼相關聯的門檻值時,邏輯頁面位址(0,0)即變成新的失效的邏輯頁面位址,而這將會導致邏輯區塊0被執行第一更新操作。由於邏輯頁面位址(0,0)並未存在於先前已儲存的已失效的邏輯頁面位址之中,記憶體控制器會決定以固定的映射順序來對邏輯區塊執行第一更新操作。因此,區塊A的邏輯頁面位址映射到實體頁面位址的映射順序,與新區塊B的邏輯頁面位址映射到實體頁面位址的映射順序相同。因此,在第一次更新操作之後,記憶體控制器會將失效的邏輯頁面位址(0,0)加以儲存。
在重複讀取操作之後,當區塊B中的邏輯頁面位址(0,0)的失效位元數目超過預定門檻值時,邏輯頁面位址(0,0)即變成新的失效的邏輯頁面位址,而這將會導致邏輯區塊0被執行第二更新操作。記憶體控制器判定新的失效邏輯頁面位址(0,0)與先前已儲存的已失效的邏輯頁面位址(或更新邏輯頁面位址)(0,0)相同。響應達到此標準的判定,記憶體控制器會決定以重新編排的映射順序來執行第二更新操作,將邏輯區塊0從區塊B重新映射到區塊C。將邏輯區塊0的邏輯頁面位址映射到區塊C的映射順序,與將邏輯區塊0的邏輯頁面位址映射到區塊B的映射順序不同。用
來將邏輯頁面位址映射到區塊C的重新編排的映射順序,可以偏離用來將邏輯頁面位址映射到區塊B的映射順序。偏離數值可以是1。因此,在第二次更新操作之後,記憶體控制器仍將已失效的邏輯頁面位址更新為邏輯頁面位址(0,0)。
在一些實施例中,記憶體控制器可以在多重更新操作中監控失效的邏輯頁面位址,並且將多個失效的邏輯頁面位址中最大失效者(例如,具有最大的失效數目)的邏輯頁面位址加以儲存,以作為先前已儲存的已失效邏輯頁面位址,用於下一次更新操作中與新失效的邏輯頁面位址進行比較。用來作為比較基準的已儲存的已失效邏輯頁面位址,可以在每次更新操作之後進行資料更新。
在一些實施例中,記憶體元件包括兩個或更多個邏輯區塊。第一邏輯區塊中的第一弱邏輯頁面位址可能會引起第一更新操作。則記憶體控制器會儲存第一邏輯頁面位址,用於在下一次更新操作中與新失效的邏輯頁面位址進行比較。如果第二邏輯區塊中的第二弱邏輯頁面位址引起第二更新操作,則記憶體控制器會判定失效的第二邏輯頁面位址與先前已儲存的已失效的第一邏輯頁面位址並不相同,並且決定以固定的映射順序對第二邏輯區塊執行第二更新操作。在第二更新操作之後,記憶體控制器會儲存第二邏輯頁面位址,用以在下一個更新操作中與新失效的邏輯頁面位址進行比較。如果第一邏輯區塊中的第一弱邏輯頁面位址引起第三更新操作,則記憶體控制器會判定失效的第一邏輯頁面位址與先前已儲存的已失效的第二邏輯頁面位址並不相同,
且記憶體控制器會決定以固定映射順序來對第一邏輯區塊執行第三更新操作,而不是如第6圖所繪示,以重新編排的映射順序來執行第三更新操作。因此,第三實施例中所述的標準(以及第6圖所繪示的標準)可能不會應用於包括多個邏輯區塊的記憶體元件之中。
請再參照第3B圖,在第四實施例中,上述的標準是:新失效的邏輯頁面位址存在於已失效邏輯頁面的邏輯頁面位址儲存表列(或已更新邏輯頁面位址儲存表列)中。也就是說,此一標準是新失效的邏輯頁面的邏輯頁面位址存在於已失效邏輯頁面的邏輯頁面位址儲存表列之中。記憶體控制器可以監控每個更新操作,並根據來自於更新操作中的一個或多個邏輯區塊的失效輯頁面位址來形成一個表列。當記憶體控制器判斷新失效的邏輯頁面位址時,記憶體控制器判定新失效的邏輯頁面位址是否存在於已失效邏輯頁面位址儲存表列之中。如果記憶體控制器判定新失效的邏輯頁面位址不存在於已失效邏輯頁面位址儲存表列之中,則記憶體控制器會決定以固定映射順序對具有失效的邏輯頁面位址的邏輯區塊執行更新操作(步驟306)。當記憶體控制器判定新失效的邏輯頁面位址存在於已失效邏輯頁面位址儲存表列之中時,記憶體控制器會決定以重新編排的映射順序對具有失效的邏輯頁面位址的邏輯區塊執行更新操作(步驟308)。
在一些實施例中,記憶體控制器可以通過在更新操作納入所有失效邏輯頁面位址來形成上述已失效邏輯頁面位址儲存表列。在一些實施例中,記憶體控制器可以失效的頻率(或統計
分析)為基礎,將具有多個大於門檻值(例如,2)之失敗時間的每一個邏輯頁面位址納入,以形成上述已失效邏輯頁面位址儲存表列。
在一些實施例中,記憶體控制器可以最近失效的邏輯頁面位址來形成上述表列,並且持續更新表列。例如,記憶體控制器儲存三個最近失效的邏輯頁面位址(3,4,5)的表列。如果新失效的邏輯頁面位址為6,則將已失效邏輯頁面位址儲存表列更新為(4,5,6)。如果新失效的邏輯頁面位址為,則將已失效邏輯頁面位址儲存表列更新為(5,6,7)。
在一個實施例中,如第6圖所繪示,在第一更新操作中,邏輯區塊0的邏輯頁面位址(0,0)失效,並且記憶體控制器將邏輯頁面位址(0,0)儲存在已失效邏輯頁面位址儲存表列中。在第二更新操作中,邏輯頁面位址(0,0)再次失效,且記憶體控制器判定新失效的邏輯頁面位址(0,0)存在於已失效邏輯頁面位址儲存表列中。響應達到此標準的判定,記憶體控制器以利用重新編排的映射順序來執行第二更新操作。在第二更新操作之後,記憶體控制器更新已失效邏輯頁面位址儲存表列以仍然將邏輯頁面位址(0,0)納入已失效邏輯頁面位址儲存表列中。
在另一個實施例中,如第7圖所繪示,記憶體控制器包括邏輯區塊0和邏輯區塊1。邏輯區塊0最初被映射到實體區塊A,並且包括768個邏輯頁面,具有從(0,0)到(0,767)的邏輯頁面位址,且分別映射到從(A,0)到(A,767)的實體頁面位址。邏輯區塊1最初被映射到實體區塊C,且包括768個邏輯頁面,具有從(1,0)
到(1,767)的邏輯頁面位址,且分別映射到從(C,0)到(C,767)的實體頁面位址。
最初,記憶體控制器中所儲存的已失效邏輯頁面位址儲存表列是空的。首先,邏輯區塊0的邏輯頁面位址(0,0)失效。記憶體控制器判定失效邏輯頁面位址(0,0)不存在於已失效邏輯頁面位址儲存表列中,並決定以固定映射順序來執行第一更新操作。因此,如第7圖的圖示(A)所繪示,邏輯區塊0從區塊A重新映射到區塊B,且用來將邏輯區塊0的邏輯頁面位址映射到區塊B的實體頁面位址的映射順序,與用來將邏輯區塊0的邏輯頁面位址映射到區塊的實體頁面位址的映射順序相同。在第一更新操作中,記憶體控制器更新已失效邏輯頁面位址儲存表列,將邏輯頁面位址(0,0)納入,作為第一失效邏輯頁面位址,如第7圖的圖示(D)所繪示。
第二,邏輯區塊1的邏輯頁面位址(1,0)失效。記憶體控制器判定失效的邏輯頁面位址(1,0)不存在於已失效邏輯頁面位址儲存表列中,並決定以固定映射順序執行第二更新操作。因此,如第7圖的圖示(B)所繪示,邏輯區塊1從區塊C重新映射到區塊D,且用來將邏輯區塊1的邏輯頁面位址映射到區塊C的實體頁面位址的映射順序,與用來將邏輯區塊1的邏輯頁面位址映射到區塊D的實體頁面位址的映射順序相同。在第二更新操作中,記憶體控制器更新已失效邏輯頁面位址儲存表列,將邏輯頁面位址(1,0)納入,作為第二失效邏輯頁面位址,如第7圖的圖示(D)所繪示。
第三,邏輯區塊0的邏輯頁面位址(0,0)再次失效。記憶體控制器判定失效的邏輯頁面位址(0,0)存在於圖示(D)所繪示的已失效邏輯頁面位址儲存表列中,並決定以重新編排的映射順序來執行第三更新操作。因此,如第7圖的圖示(C)所繪示,邏輯區塊0從區塊B重新映射到區塊E,且用來將邏輯區塊0的邏輯頁面位址映射到區塊E的實體頁面位址的映射順序,與用來將邏輯區塊0的邏輯頁面位址映射到區塊B的實體頁面位址的映射順序。用來將邏輯頁面位址映射到區塊E的重新排列的映射順序可以偏離用來將邏輯頁面位址映射到區塊E的映射順序。偏離數值可以是1。在第三次更新操作之後,記憶體控制器會更新已失效邏輯頁面位址儲存表列,仍然將邏輯頁面位址(0,0)和(1,0)納入已失效邏輯頁面位址儲存表列中,如第7圖的圖示(D)所繪示。
請參照第3C圖,第3C圖係繪示更新操作的資料重新編排流程350的實施例。流程350可以由第3A圖所繪示的記憶體控制器執行。流程350可以是第3A圖所繪示的步驟308。
將邏輯區塊中的邏輯頁面以重新編排列的映射順序映射到新的實體區塊(步驟352)。如上所述,重新編排的映射順序不同於映射到當前實體區塊的邏輯頁面的當前映射順序。重新編排的映射順序,可以藉由一個,例如偏離數值(或偏移參數),偏離當前的映射順序。其中,重新編排的映射順序可以是一種雜亂次序或是一種隨機次序。
基於重新編排的映射順序,將對應於邏輯頁面的資料遷移(或複製)到新的實體區塊(步驟354)。記憶體控制器可以從包含有失效實體頁面的實體區塊讀取資料,例如,將資料讀取到資料緩衝器(data buffer)中。記憶體控制器還可以對,例如,存儲在資料緩衝器中的,資料執行糾錯處理。然後基於重新編排的映射順序,將經過糾錯的資料寫入新的實體區塊中。從邏輯區塊的邏輯頁面到新實體區塊的實體頁面的映射是一次新的邏輯-實體位址映射步驟。新的邏輯-實體位址映射步驟或其偏離數值會被記錄在記憶體控制器的邏輯-實體位址映射表中(步驟356)。基於新的邏輯-實體位址映射步驟或其偏離數值,記憶體控制器可以決定與邏輯位址(或邏輯頁面)相對應的實體位址(或實體頁面)。
儘管上面討論的實施例是採用記憶體控制器以失效的邏輯頁面位址來決定上述的判斷標準,但也可以採用記憶體控制器以失效的實體頁面位址來決定上述的判斷標準。類似地,記憶體控制器還可以使用實體區塊的更新次數來決定上述的判斷標準。
上述所公開的實施例和其他實施例,可以藉由一個或多個電腦程式產品,例如,可在電腦可讀取介質上進行編碼(encode),以執行或控制資料處理裝置(data processing apparatus)的一個或多個電腦程式指令模組(modules of computer program instructions),來實現。電腦可讀取介質可以是機器可讀取儲存元件(machine-readable storage device)、機器可讀取儲存基材(machine-readable storage substrate)、記憶
體元件或它們中的一個或多個的組合。「資料處理裝置」一詞包括用於處理資料的所有裝置、元件和機器,包括例如可程式處理器(programmable processor)、電腦或多處理器(multiple processors)或電腦。除了硬體之外,此一裝置還可以包括為上述電腦程式所創建的執行環境(execution environment)的編碼(code),例如,構成處理器韌體(processor firmware)的編碼、通訊協定堆疊(protocol stack)、資料庫管理系統(database management system)、操作系統,或者它們中的一個或多個的組合,或其他更多。
系統可以包含用於處理資料的所有裝置、元件和機器,包括例如可程式處理器、電腦或多處理器或電腦。除了硬體之外,此一裝置還可以包括為上述電腦程式所創建的執行環境的編碼,例如,構成處理器韌體的編碼、通訊協定堆疊、資料庫管理系統、操作系統,或者它們中的一個或多個的組合,或其他更多。
電腦程式(computer program)(也稱為程式、軟體,軟體應用程式、描述語言(script)或編碼)可以使用任何形式的程式語言來編寫,包括編譯式或直釋式語言(compiled or interpreted languages),並且可以以任何形式來加以安排,包括作為獨立程式或者作為適合在運算環境中使用的模組、組件、副程式(subroutine)或其他單元。電腦程式不一定是對應於檔案系統中的檔案。程式可以存儲在文件的一部分中,該文件保存其他程式或資料(例如,儲存在標記語言檔(markup language document)
中的一個或多個描述語言),儲存在專用於該程式的單一檔案中,或儲存在多個協調檔案(coordinated files)中(例如,儲存一個或多個模組、子程式或部分編碼的檔案)。電腦程式可以被安排在一個電腦上或被安排在位於一個站點上或分佈在多個站點上並藉由通信網絡互連的多個電腦上來加以執行。
本說明書中所描述的步驟和邏輯流程(processes and logic flows)可以由執行一個或多個電腦程式的一個或多個可程式處理器來執行,以實現本文描述的功能。所描述的步驟和邏輯流程也可以由專用邏輯電路(special purpose logic circuitry),例如現場可程式化邏輯閘陣列(field programmable gate array,FPGA)或特殊應用積體電路(application specific integrated circuit,ASIC)來執行。
適合用於執行電腦程式的處理器包括通用和專用微處理器(general and special purpose microprocessors),以及任何類型的數位電腦的任何一個或多個處理器。通常,處理器將從唯讀記憶體或隨機存取記憶體或兩者接收指令和資料。電腦的基本元件可包括用於執行指令的處理器和用於存儲指令和資料的一個或多個記憶體元件。通常,電腦還可以包括或可操作地耦接至一個或多個大容量儲存元件,以接收資料或將資料傳輸到一個或多個大容量儲存元件或兩者,以存儲資料,例如磁碟,磁光碟或光碟。不過,電腦可以不需要這樣的設備。適用於儲存電腦程式指令和資料的電腦可讀取介質可以包括所有形式的非揮發性記憶體元件、介質和記憶體元件,包括例如半導體記憶體元件,
例如電子抹除式可複寫唯讀記憶體(electrically erasable programmable read only memory,EEPROM)、可抹除程式化唯讀記憶(erasable programmable read only memory,EPROM)和塊記憶體元件;磁碟。處理器和存儲器可以由專用邏輯電路補充或併入專用邏輯電路中。
雖然本發明已以較佳實施例揭露如上,然其並非用以限定本發明,任何該技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
302:判定特定頁面中的失效位元數目超過與錯誤校正碼相關聯的門檻值
304:判定是否達到標準?
306:以固定映射順序來執行更新操作
308:以重新編排的映射順序來執行更新操作
Claims (25)
- 一種在一記憶體元件中,用於重新編排資料的方法,包括:判定一邏輯區塊中的一特定邏輯頁面,因為存在於一特定實體頁面中的複數個錯誤位元而導致失效;其中,該特定實體頁面位於與該邏輯區塊映射的一第一實體區塊之中,並且對應於該特定邏輯頁面;該邏輯區塊中的複數個邏輯頁面係以一起始映射順序映射到該第一實體區塊中的複數個實體頁面;以該邏輯區塊的一重新編排的映射順序,對該第一實體區塊執行一更新操作,其中該重新編排的映射順序與該起始映射順序不同;在該更新操作中,該邏輯區塊中的該些邏輯頁面,以該重新編排的映射順序,被映射到一第二實體區塊的複數個實體頁面;判定已達到一標準,其中該標準與由該記憶體元件的複數個失效邏輯頁面所引起的一個或多個更新操作相關聯;以及響應達到該標準的判定,以該邏輯區塊的該重新編排映射順序,對該第一實體區塊執行該更新操作。
- 如申請專利範圍第1項所述之方法,其中判定該特定邏輯頁面失效的步驟,包括:判定該特定實體頁面的該些錯誤位元的數目超過一預定門檻值。
- 如申請專利範圍第2項所述之方法,其中該預定門檻值係根據一錯誤校正碼對該特定實體頁面所能夠更正的一錯誤位元數目來決定。
- 如申請專利範圍第1項所述之方法,其中該重新編排的映射順序係以一偏離數值偏離該起始映射順序;以及被該些邏輯頁面映射到的該第二實體區塊的複數個實體頁面地址,以該偏離數值偏離被該些邏輯頁面映射到的該第一實體區塊的複數個實體頁面地址。
- 如申請專利範圍第1項所述之方法,其中判定已達到該標準的步驟,包括:判定該邏輯區塊的一更新次數不小於一更新次數的預定門檻值;其中,該更新次數係被設定為:當對映射於該邏輯區塊的一實體區塊執行一更新操作時,該更新次數隨之增加。
- 如申請專利範圍第1項所述之方法,其中判定已達到該標準的步驟,包括:判定該記憶體元件的更新次數不小於一更新次數的預定門檻值; 其中,更新次數係被設定為:當對該記憶體元件的一實體區塊執行一更新操作時,該更新次數隨之增加。
- 如申請專利範圍第6項所述之方法,其中該實體區塊與不同於該邏輯區塊的一個第二邏輯區塊產生映射。
- 如申請專利範圍第1項所述之方法,其中判定已達到該標準的步驟,包括:判定失效的該特定邏輯頁面的一邏輯頁面位址與一已失效邏輯頁面的一已儲存邏輯頁面位址相同。
- 如申請專利範圍第1項所述之方法,其中判定已達到該標準的步驟,包括:判定失效的該特定邏輯頁面的一特定邏輯頁面位址存在於一已失效邏輯頁面的邏輯頁面位址儲存表列之中。
- 如申請專利範圍第9項所述之方法,更包括:藉由將複數個最近失效的邏輯頁面的複數個邏輯頁面位址納入該已失效邏輯頁面的邏輯頁面位址儲存表列,來更新該已失效邏輯頁面的邏輯頁面位址儲存表列。
- 如申請專利範圍第1項所述之方法,更包括:以該重新編排的映射順序,將該第一實體區塊的該些實體頁面中的一資料遷移到該第二實體區塊的該些實體頁面中。
- 如申請專利範圍第1項所述之方法,更包括:藉由儲存將該邏輯區塊映射到該第二實體區塊的一邏輯-實體位址映射,來更新一邏輯-實體位址映射表。
- 一種記憶體系統,包括:一記憶體元件,包括複數個實體區塊,其中每一該些實體區塊具有複數個實體頁面;以及一記憶體控制器,耦接至該記憶體元件,並且配置來:判定一邏輯區塊中的一特定邏輯頁面,因存在於一特定實體頁面中的複數個錯誤位元而導致失效;其中,該特定實體頁面位於與該邏輯區塊映射的一第一實體區塊之中,並且對應於該特定邏輯頁面;該邏輯區塊中的複數個邏輯頁面係以一起始映射順序映射到該第一實體區塊中的複數個實體頁面;以該邏輯區塊的一重新編排的映射順序,對該第一實體區塊執行一更新操作,其中該重新編排的映射順序與該起始映射順序不同;在該更新操作中,該邏輯區塊中的該些邏輯頁面,以該重新編排的映射順序,被映射到 一第二實體區塊的複數個實體頁面,其中該重新編排的映射順序係以一偏離數值偏離該起始映射順序;以及被該些邏輯頁面映射的該第二實體區塊的複數個實體頁面地址,以該偏離數值偏離被該些邏輯頁面映射的該第一實體區塊的複數個實體頁面地址。
- 如申請專利範圍第13項所述之記憶體系統,其中該記憶體控制器係配置來:判定是否已達到一標準;其中該標準與由該記憶體元件中的複數個失效邏輯頁面所引起的一或多個更新操作相關聯;響應達到該標準的判定,以該邏輯區塊的該重新編排的映射順序,對該第一實體區塊執行該更新操作;響應未達到該標準的判定,以該邏輯區塊的一固定映射順序,對該第一實體區塊執行一第二更新操作;其中,該固定映射順序與該起始映射順序相同;在該第二更新操作中,該邏輯區塊中的該些邏輯頁面,以該固定映射順序,被映射到一第三實體區塊中的複數個實體頁面。
- 如申請專利範圍第14項所述之記憶體系統,其中該標準包括下述之一者:該邏輯區塊的一更新次數不小於一第一更新次數門檻值、 該記憶體元件一更新次數不小於一第二更新次數門檻值、該特定邏輯頁面的一邏輯頁面位址與一已失效邏輯頁面的一已儲存邏輯頁面位址相同,以及該特定邏輯頁面的該邏輯頁面位址存在於一已失效邏輯頁面的邏輯頁面位址儲存表列之中。
- 如申請專利範圍第13項所述之記憶體系統,其中該記憶體控制器係配置來:藉由確定該特定實體頁面的該些錯誤位元的數目超過一預定門檻值來判定該特定實體頁面失效;其中該預定門檻值係根據一錯誤校正碼對該特定實體頁面所能夠更正的一錯誤位元數目來決定。
- 如申請專利範圍第13項所述之記憶體系統,其中該記憶體控制器係配置來:以該重新編排的映射順序,將該第一實體區塊的該些實體頁面中的一資料遷移到該第二實體區塊的該些實體頁面中;以及藉由儲存將該邏輯區塊映射到該第二實體區塊的一邏輯-實體位址映射,來更新一邏輯-實體位址映射表。
- 一種記憶體控制器,包括: 至少一處理器;以及至少一非暫態機器可讀取的儲存介質,耦合到該至少一個處理器,且其上儲存有機器可執行指令,當該些機器可執行指令被該至少一處理器執行時,會使該至少一處理器執行複數個操作,包括:判定一邏輯區塊中的一特定邏輯頁面,因存在於一特定實體頁面中的複數個錯誤位元而導致失效;其中,該特定實體頁面位於與該邏輯區塊映射的一第一實體區塊之中,並且對應於該特定邏輯頁面;該邏輯區塊中的複數個邏輯頁面係以一起始映射順序映射到該第一實體區塊中的複數個實體頁面;判定是否已達到一標準;其中該標準與由該記憶體元件中的複數個失效邏輯頁面所引起的一或多個更新操作相關聯;響應未達到該標準的判定,以該邏輯區塊的一固定映射順序,對該第一實體區塊執行一第一更新操作,其中該固定映射順序與該起始映射順序相同;在該第一更新操作中,該邏輯區塊中的該些邏輯頁面,以該固定映射順序,被映射到一第二實體區塊中的複數個實體頁面;響應達到該標準的判定,以該邏輯區塊的一重新編排映射順序,對該第一實體區塊執行第二更新操作;該重新編排的映射順序與該起始映射順序不同;在該第二更新操作中,該邏輯區塊中的該些邏輯頁面,以該重新編排的映射順序,被映射到一第三實體區塊中的複數個實體頁面。
- 一種在一記憶體元件中重新編排資料的方法,包括:判定一邏輯區塊中的一特定邏輯頁面,因存在於一特定實體頁面中的複數個錯誤位元而導致失效;其中,該特定實體頁面位於與該邏輯區塊映射的一第一實體區塊之中,並且對應於該特定邏輯頁面;以及對該第一實體區塊的執行一更新操作,以至少一寫入參數,將該第一實體區塊中的一資料重新編排到一第二實體區塊中;其中該至少一寫入參數與用來將該資料寫入該第一實體區塊的一寫入參數不同。
- 如申請專利範圍第19項所述之方法,其中該至少一寫入參數包括:該邏輯區塊的一寫入時間、一寫入電壓、一間隔時間或一映射順序。
- 如申請專利範圍第19項所述之方法,其中該邏輯區塊中的複數個邏輯頁面係以一起始映射順序映射到該第一實體區塊中的複數個實體頁面;且該邏輯區塊中的該些邏輯頁面,以不同於該起始映射順序的一重新排列的映射順序,映射到一第二實體區塊的複數個實體頁面。
- 一種在一記憶體元件中,用於重新編排資料的方法,包括:判定一邏輯區塊中的一特定邏輯頁面,因為存在於一特定實體頁面中的複數個錯誤位元而導致失效;其中,該特定實體頁面位於與該邏輯區塊映射的一第一實體區塊之中,並且對應於該特定邏輯頁面;該邏輯區塊中的複數個邏輯頁面係以一起始映射順序映射到該第一實體區塊中的複數個實體頁面;以該邏輯區塊的一重新編排的映射順序,對該第一實體區塊執行一更新操作,其中該重新編排的映射順序與該起始映射順序不同;在該更新操作中,該邏輯區塊中的該些邏輯頁面,以該重新編排的映射順序,被映射到一第二實體區塊的複數個實體頁面,其中該重新編排的映射順序係以一偏離數值偏離該起始映射順序;以及被該些邏輯頁面映射到的該第二實體區塊的複數個實體頁面地址,以該偏離數值偏離被該些邏輯頁面映射到的該第一實體區塊的複數個實體頁面地址。
- 如申請專利範圍第22項所述之方法,更包括:判定已達到一標準,其中該標準與由該記憶體元件的複數個失效邏輯頁面所引起的一個或多個更新操作相關聯;以及 響應達到該標準的判定,以該邏輯區塊的該重新編排映射順序,對該第一實體區塊執行該更新操作。
- 一種記憶體系統,包括:一記憶體元件,包括複數個實體區塊,其中每一該些實體區塊具有複數個實體頁面;以及一記憶體控制器,耦接至該記憶體元件,並且配置來:判定一邏輯區塊中的一特定邏輯頁面,因存在於一特定實體頁面中的複數個錯誤位元而導致失效;其中,該特定實體頁面位於與該邏輯區塊映射的一第一實體區塊之中,並且對應於該特定邏輯頁面;該邏輯區塊中的複數個邏輯頁面係以一起始映射順序映射到該第一實體區塊中的複數個實體頁面;以該邏輯區塊的一重新編排的映射順序,對該第一實體區塊執行一更新操作,其中該重新編排的映射順序與該起始映射順序不同;在該更新操作中,該邏輯區塊中的該些邏輯頁面,以該重新編排的映射順序,被映射到一第二實體區塊的複數個實體頁面;判定是否已達到一標準;其中該標準與由該記憶體元件中的複數個失效邏輯頁面所引起的一或多個更新操作相關聯;響應達到該標準的判定,以該邏輯區塊的該重新編排的映射順序,對該第一實體區塊執行該更新操作;以及 響應未達到該標準的判定,以該邏輯區塊的一固定映射順序,對該第一實體區塊執行一第二更新操作;其中,該固定映射順序與該起始映射順序相同;在該第二更新操作中,該邏輯區塊中的該些邏輯頁面,以該固定映射順序,被映射到一第三實體區塊中的複數個實體頁面。
- 如申請專利範圍第24項所述之記憶體系統,其中該重新編排的映射順序係以一偏離數值偏離該起始映射順序;以及被該些邏輯頁面映射的該第二實體區塊的複數個實體頁面地址,以該偏離數值偏離被該些邏輯頁面映射的該第一實體區塊的複數個實體頁面地址。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JPJP2018-082594 | 2018-04-23 | ||
JP2018082594A JP7020989B2 (ja) | 2018-04-23 | 2018-04-23 | 不揮発性記憶装置、メモリ制御装置、及びメモリ制御方法 |
US16/031,012 | 2018-07-10 | ||
US16/031,012 US10795770B2 (en) | 2018-04-23 | 2018-07-10 | Rearranging data in memory systems |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202001915A TW202001915A (zh) | 2020-01-01 |
TWI698878B true TWI698878B (zh) | 2020-07-11 |
Family
ID=68237878
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW107130179A TWI698878B (zh) | 2018-04-23 | 2018-08-29 | 記憶體元件及其控制器與系統和其重新編排資料的方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10795770B2 (zh) |
JP (1) | JP7020989B2 (zh) |
CN (1) | CN110389906B (zh) |
TW (1) | TWI698878B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11409661B2 (en) * | 2020-08-18 | 2022-08-09 | Micron Technology, Inc. | Logical-to-physical mapping |
CN114063918B (zh) * | 2021-11-12 | 2023-08-15 | 深圳宏芯宇电子股份有限公司 | 数据存取方法、存储器存储装置及存储器控制器 |
US11886735B2 (en) * | 2022-03-22 | 2024-01-30 | Micron Technology, Inc. | Data movement based on address table activity |
US20230402085A1 (en) * | 2022-06-13 | 2023-12-14 | Macronix International Co., Ltd. | Managing Data Refresh in Semiconductor Devices |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5479638A (en) * | 1993-03-26 | 1995-12-26 | Cirrus Logic, Inc. | Flash memory mass storage architecture incorporation wear leveling technique |
US7797481B2 (en) * | 2007-06-14 | 2010-09-14 | Samsung Electronics Co., Ltd. | Method and apparatus for flash memory wear-leveling using logical groups |
TW201201214A (en) * | 2010-06-25 | 2012-01-01 | Macronix Int Co Ltd | Method and apparatus for high-speed byte-access in block-based flash memory |
TW201734810A (zh) * | 2016-03-22 | 2017-10-01 | 威盛電子股份有限公司 | 非揮發性記憶體裝置及其操作方法 |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7660941B2 (en) | 2003-09-10 | 2010-02-09 | Super Talent Electronics, Inc. | Two-level RAM lookup table for block and page allocation and wear-leveling in limited-write flash-memories |
US6856568B1 (en) * | 2000-04-25 | 2005-02-15 | Multi Level Memory Technology | Refresh operations that change address mappings in a non-volatile memory |
JP4256198B2 (ja) * | 2003-04-22 | 2009-04-22 | 株式会社東芝 | データ記憶システム |
KR100526188B1 (ko) * | 2003-12-30 | 2005-11-04 | 삼성전자주식회사 | 플래시 메모리의 주소 사상 방법, 사상 정보 관리 방법 및상기 방법을 이용한 플래시 메모리 |
JP5076411B2 (ja) | 2005-11-30 | 2012-11-21 | ソニー株式会社 | 記憶装置、コンピュータシステム |
WO2008077284A1 (en) | 2006-12-27 | 2008-07-03 | Intel Corporation | Initiative wear leveling for non-volatile memory |
JP5283845B2 (ja) * | 2007-02-07 | 2013-09-04 | 株式会社メガチップス | ビットエラーの予防方法、情報処理装置 |
US7793036B2 (en) * | 2007-05-30 | 2010-09-07 | Intel Corporation | Method and arrangements for utilizing NAND memory |
KR101606453B1 (ko) * | 2009-05-13 | 2016-04-01 | 삼성전자주식회사 | 비휘발성 데이터 저장 장치의 읽기 및 쓰기 성능 향상 방법 |
JP2011203916A (ja) * | 2010-03-25 | 2011-10-13 | Toshiba Corp | メモリコントローラ、および半導体記憶装置 |
WO2011143628A2 (en) * | 2010-05-13 | 2011-11-17 | Fusion-Io, Inc. | Apparatus, system, and method for conditional and atomic storage operations |
CN102592670B (zh) * | 2011-01-07 | 2015-09-30 | 群联电子股份有限公司 | 数据写入方法、存储器控制器与存储器储存装置 |
TWI456393B (zh) * | 2012-12-24 | 2014-10-11 | Phison Electronics Corp | 資料讀取方法、記憶體控制器與記憶體儲存裝置 |
TWI514140B (zh) * | 2013-02-05 | 2015-12-21 | Via Tech Inc | 非揮發性記憶裝置及其操作方法 |
US9547459B1 (en) * | 2013-06-27 | 2017-01-17 | EMC IP Holding Company LLC | Techniques for data relocation based on access patterns |
US9298534B2 (en) * | 2013-09-05 | 2016-03-29 | Kabushiki Kaisha Toshiba | Memory system and constructing method of logical block |
JP2016184402A (ja) * | 2015-03-26 | 2016-10-20 | パナソニックIpマネジメント株式会社 | メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、及びメモリ制御方法 |
US9898200B2 (en) | 2016-02-18 | 2018-02-20 | Samsung Electronics Co., Ltd | Memory device having a translation layer with multiple associative sectors |
US9842059B2 (en) * | 2016-04-14 | 2017-12-12 | Western Digital Technologies, Inc. | Wear leveling in storage devices |
US10761976B2 (en) * | 2016-11-28 | 2020-09-01 | Arm Limited | Method and apparatus for memory wear leveling |
US9865323B1 (en) * | 2016-12-07 | 2018-01-09 | Toshiba Memory Corporation | Memory device including volatile memory, nonvolatile memory and controller |
KR20180079584A (ko) * | 2016-12-30 | 2018-07-11 | 에스케이하이닉스 주식회사 | 컨트롤러 및 컨트롤러의 동작 방법 |
JP2019056981A (ja) * | 2017-09-19 | 2019-04-11 | 東芝メモリ株式会社 | メモリシステム |
US10656844B2 (en) * | 2017-10-11 | 2020-05-19 | Western Digital Technologies, Inc. | Non-volatile memory with regional and inter-region wear leveling |
-
2018
- 2018-04-23 JP JP2018082594A patent/JP7020989B2/ja active Active
- 2018-07-10 US US16/031,012 patent/US10795770B2/en active Active
- 2018-08-29 TW TW107130179A patent/TWI698878B/zh active
- 2018-09-14 CN CN201811072863.4A patent/CN110389906B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5479638A (en) * | 1993-03-26 | 1995-12-26 | Cirrus Logic, Inc. | Flash memory mass storage architecture incorporation wear leveling technique |
US7797481B2 (en) * | 2007-06-14 | 2010-09-14 | Samsung Electronics Co., Ltd. | Method and apparatus for flash memory wear-leveling using logical groups |
TW201201214A (en) * | 2010-06-25 | 2012-01-01 | Macronix Int Co Ltd | Method and apparatus for high-speed byte-access in block-based flash memory |
TW201734810A (zh) * | 2016-03-22 | 2017-10-01 | 威盛電子股份有限公司 | 非揮發性記憶體裝置及其操作方法 |
Also Published As
Publication number | Publication date |
---|---|
JP2019192316A (ja) | 2019-10-31 |
CN110389906A (zh) | 2019-10-29 |
JP7020989B2 (ja) | 2022-02-16 |
US10795770B2 (en) | 2020-10-06 |
TW202001915A (zh) | 2020-01-01 |
CN110389906B (zh) | 2022-12-23 |
US20190324855A1 (en) | 2019-10-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101887557B1 (ko) | 플래시 메모리 모듈에 액세스하기 위한 플래시 메모리 제어기 및 메모리 장치, 그리고 관련된 방법 | |
TWI569273B (zh) | 非揮發性記憶體裝置讀取干擾管理方法 | |
US9298545B2 (en) | Data protection across multiple memory blocks | |
TWI698878B (zh) | 記憶體元件及其控制器與系統和其重新編排資料的方法 | |
KR102277521B1 (ko) | 저장 장치 및 그것의 리드 리클레임 및 읽기 방법 | |
US11604695B2 (en) | Copy-back operations in a memory device | |
KR102420955B1 (ko) | 정정 불가능 ecc | |
US11532360B2 (en) | Memory system, memory device, and method for operating memory device | |
US11449421B2 (en) | Memory system, memory controller and method for minimizing data loss using recovery operations in sudden power loss events | |
KR20200122407A (ko) | Nand 데이터 배치 스키마 | |
KR20210099895A (ko) | 메모리 시스템 및 그것의 동작방법 | |
US11656934B2 (en) | Managing open blocks in memory systems | |
US10248594B2 (en) | Programming interruption management | |
US11467903B2 (en) | Memory system and operating method thereof | |
US20240036741A1 (en) | Memory system, memory controller and method for operating memory system, capable of determining target meta memory block on the basis of detected target state | |
US11704050B2 (en) | Memory system for determining a memory area in which a journal is stored according to a number of free memory blocks | |
US11636007B2 (en) | Memory system and operating method thereof for flushing data in data cache with parity | |
US11954349B2 (en) | Memory system for executing a target operation based on a program state of a super memory block and operating method thereof | |
TWI823649B (zh) | 快閃記憶體控制器的控制方法、快閃記憶體控制器以及電子裝置 | |
US20240004566A1 (en) | Memory system for managing namespace using write pointer and write count, memory controller, and method for operating memory system | |
CN113961141A (zh) | 存储器系统、存储器控制器以及操作存储器系统的方法 | |
CN115774518A (zh) | 存储器系统及存储器系统的操作方法 | |
CN112667145A (zh) | 存储器系统、存储器控制器以及操作方法 |