TWI631463B - 非揮發性記憶體裝置及其操作方法 - Google Patents
非揮發性記憶體裝置及其操作方法 Download PDFInfo
- Publication number
- TWI631463B TWI631463B TW105108737A TW105108737A TWI631463B TW I631463 B TWI631463 B TW I631463B TW 105108737 A TW105108737 A TW 105108737A TW 105108737 A TW105108737 A TW 105108737A TW I631463 B TWI631463 B TW I631463B
- Authority
- TW
- Taiwan
- Prior art keywords
- controller
- block
- page
- group
- logical block
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/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
- 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/1471—Saving, restoring, recovering or retrying involving logging of persistent data for recovery
-
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
- G06F3/0649—Lifecycle management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
- G06F2212/2022—Flash memory
-
- 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/7204—Capacity control, e.g. partitioning, end-of-life degradation
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)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Computer Security & Cryptography (AREA)
Abstract
一種非揮發性記憶體裝置及其操作方法。非揮發性記憶體裝置包括非揮發性儲存電路、主記憶體以及控制器。邏輯塊位址群組的每一個包括多個邏輯塊位址。這些邏輯塊位址群組的每一個被分配有一個群組年齡參數。這些群組年齡參數的調整是由主機的寫指令所觸發。當這些群組年齡參數中的一個年齡參數超出預設範圍時,控制器對年齡參數的對應邏輯塊位址群組所對應的非揮發性儲存電路的非揮發性儲存塊進行掃描操作,以檢查錯誤位元數量。控制器依據掃描操作的結果而決定是否將對應邏輯塊位址群組所對應的非揮發性儲存塊進行儲存塊資料搬移操作。
Description
本發明是有關於一種記憶體裝置,且特別是有關於一種非揮發性記憶體裝置及其操作方法。
一般固態硬碟(solid state disk/drive, SSD)或隨身碟(memory disk)在操作過程中,需要使用映射表(mapping table)來記錄邏輯位址(logical address)至實體位址(physical address)的映射關係(或轉換關係)。所述邏輯位址可能包括邏輯塊位址(logical block address, LBA)及/或邏輯頁位址(logical page address),而所述實體位址可能包括實體塊位址(physical block address, PBA)及/或實體頁位址(physical page address)。主機(host)通常係依據頁面映射(Page Mapping)、區塊映射(Block Mapping)、置換區塊(Replacement Block)或日誌區塊(Log Block)等模式對固態硬碟或隨身碟內之資料進行存取。儘管不同模式對應的映射表所存儲的內容各不相同,但當固態硬碟或隨身碟接收主機的存取指令時,固態硬碟或隨身碟均須依據映射表而將該存取指令的邏輯位址轉換為固態硬碟或隨身碟中快閃記憶體(FLASH memory)的實體位址,然後對轉換獲得的實體位址所指的實體記憶體(實體塊或實體頁)執行該存取指令。
在不斷執行主機的眾多存取指令的過程中,邏輯位址與實體位址之對應關係可能會被對應地改變,因此映射表的內容可能會被不斷地更新。通常映射表被儲存在動態隨機存取記憶體(dynamic random access memory, DRAM)中,以便加快存取速度。當固態硬碟或隨身碟進行斷電(power-off)程序時,映射表會被保存於固態硬碟或隨身碟內的快閃記憶體中,以確保不會因為斷電而佚失了映射表的內容。當供電給固態硬碟或隨身碟時,固態硬碟會進行初始化程序。於初始化程序中,固態硬碟或隨身碟可以從快閃記憶體讀出映射表,以及將該映射表寫回動態隨機存取記憶體。
一般而言,快閃記憶體的記憶胞(memory cell)的浮置閘(floating gate)會有漏電現象。在沒有對記憶胞進行寫入操作的情形下,隨著時間的增加,記憶胞的浮置閘的漏電現象會越嚴重。記憶胞的浮置閘的漏電現象可能會造成位元資料發生錯誤。對於快閃記憶體的一個實體頁而言,在長時間沒有對此實體頁進行寫入操作的情形下,隨著時間的增加,此實體頁發生錯誤的位元數量隨之增加。一般而言,快閃記憶體配置有錯誤檢查和糾正(Error Checking and Correcting, ECC)機制。當資料中每單位位元量(例如1K Bytes,或一個實體頁的位元數量)發生錯誤的位元數量小於某個容忍數量時,ECC機制可以修正這些發生錯誤的位元,因此快閃記憶體可以提供正確資料給主機。當資料中每單位位元量發生錯誤的位元數量大於所述某個容忍數量時,則所述ECC機制就無法修正這些發生錯誤的位元。錯誤位元太多而無法被ECC機制修復,此表示資料遺失。
本發明提供一種非揮發性記憶體裝置及其操作方法,以彈性決定掃描操作的時機,以及依據掃描操作的結果而動態決定是否進行儲存塊資料搬移操作,以避免資料遺失。
本發明的實施例提供一種非揮發性記憶體裝置,包括非揮發性儲存電路、主記憶體以及控制器。非揮發性儲存電路具有由多個實體塊位址所定址的多個非揮發性儲存塊。主記憶體用以存放映射表,其中映射表用以記錄多個邏輯塊位址與這些實體塊位址之轉換關係。控制器耦接至主記憶體與非揮發性儲存電路。控制器將這些邏輯塊位址分群為多個邏輯塊位址群組,而這些邏輯塊位址群組的每一個包括多個邏輯塊位址。這些邏輯塊位址群組的每一個被分配有一個群組年齡參數。這些群組年齡參數的調整是由主機的寫指令所觸發。當這些群組年齡參數中的一個年齡參數超出預設範圍時,控制器對年齡參數所對應的對應邏輯塊位址群組的邏輯塊位址所對應的非揮發性儲存塊進行掃描操作,以檢查錯誤位元數量。控制器依據掃描操作的結果而決定是否將對應邏輯塊位址群組的邏輯塊位址所對應的非揮發性儲存塊的其中一個儲存塊進行儲存塊資料搬移操作。
本發明的實施例提供一種非揮發性記憶體裝置的操作方法。此操作方法包括:配置非揮發性儲存電路,其中非揮發性儲存電路具有由多個實體塊位址所定址的多個非揮發性儲存塊;配置主記憶體以存放映射表,其中映射表用以記錄多個邏輯塊位址與這些實體塊位址之轉換關係;由控制器將這些邏輯塊位址分群為多個邏輯塊位址群組,其中這些邏輯塊位址群組的每一個包括多個邏輯塊位址,以及這些邏輯塊位址群組的每一個被分配有一個群組年齡參數;依據主機的寫指令而觸發這些群組年齡參數的調整;當這些群組年齡參數中的一個年齡參數超出預設範圍時,由控制器對年齡參數所對應的對應邏輯塊位址群組的邏輯塊位址所對應的非揮發性儲存塊進行掃描操作,以檢查錯誤位元數量;以及由控制器依據掃描操作的結果而決定是否將對應邏輯塊位址群組的邏輯塊位址所對應的非揮發性儲存塊的其中一個儲存塊進行儲存塊資料搬移操作。
基於上述,本發明實施例所述非揮發性記憶體裝置及其操作方法可以記錄多個邏輯塊位址群組各自的群組年齡參數。控制器可以依照這些群組年齡參數來彈性決定掃描操作的時機。依據掃描操作的結果,控制器可以動態決定是否進行儲存塊資料搬移操作,以避免資料遺失。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
在本案說明書全文(包括申請專利範圍)中所使用的「耦接(或連接)」一詞可指任何直接或間接的連接手段。舉例而言,若文中描述第一裝置耦接(或連接)於第二裝置,則應該被解釋成該第一裝置可以直接連接於該第二裝置,或者該第一裝置可以透過其他裝置或某種連接手段而間接地連接至該第二裝置。另外,凡可能之處,在圖式及實施方式中使用相同標號的元件/構件/步驟代表相同或類似部分。不同實施例中使用相同標號或使用相同用語的元件/構件/步驟可以相互參照相關說明。
圖1是依照本發明實施例說明一種非揮發性記憶體(non-volatile memory, NVM)裝置100的電路方塊示意圖。非揮發性記憶體裝置100耦接至主機10。非揮發性記憶體裝置100的例子包括個人電腦記憶卡國際協會(Personal Computer Memory Card International Association, PCMCIA)卡、小型快閃(compact flash, CF)卡、智慧型媒體卡(smart media card, SM, SMC)、隨身碟(memory stick)、多媒體卡(multimedia card, MMC、RS-MMC、MMC-micro)、安全數位卡(security card, SD, miniSD, microSD, SDHC)、通用快閃儲存(universal flash storage, UFS)裝置、固態硬碟(solid state disk/drive, SSD)等等。依照不同的應用情境,非揮發性記憶體裝置100可以儲存音訊、影像及/或視訊資料。
主機10的例子包括電腦、手持式電子裝置或其他電子裝置。例如,主機10可以是個人電腦、手持式電腦、個人數位助理(personal digital assistant, PDA)、可攜式媒體播放器(portable media player, PMP)、MP3播放器、智慧型手機(smart phone) 、數位相機、攝錄機(camcorders)、錄音機、遊戲機、傳真機、掃描器、印表機等等。
主機10與非揮發性記憶體裝置100可利用任一種標準化介面予以有效地相互連接。例如,所述標準化介面包括小型電腦系統介面(small computer system interface, SCSI)、串列連接小型電腦系統介面(Serial Attached SCSI, SAS)、增強型小型裝置介面(Enhanced Small Disk Interface, ESDI)、串列先進技術連接(serial advanced technology attachment, SATA)、快速週邊元件互連(peripheral component interconnect express, PCI-express)、整合式電子裝置(integrated drive electronics, IDE)介面、通用串列匯流排(universal serial bus, USB)、雷電(Thunderbolt)介面或其他介面。本發明並未侷限於主機10與非揮發性記憶體裝置100之間的介面結構。
非揮發性記憶體裝置100包括控制器110、主記憶體120以及非揮發性儲存電路130。控制器110透過上述標準化介面耦接至主機10。控制器110耦接至主記憶體120與非揮發性儲存電路130。主記憶體120的例子包括動態隨機存取記憶體(dynamic random access memory, DRAM)、靜態隨機存取記憶體(static random access memory, SRAM)或是其他揮發性記憶體(volatile memory)。非揮發性儲存電路130舉例而言是快閃記憶體(FLASH memory)。非揮發性儲存電路130具有由多個實體塊位址所定址的多個非揮發性儲存塊。主記憶體120具有映射表(mapping table)MT,其中映射表MT用以記錄多個邏輯塊位址與非揮發性儲存電路130的實體塊位址之轉換關係。非揮發性記憶體裝置100的控制器110依據主記憶體120內的映射表MT,將主機10的存取指令(例如「寫」指令、「讀」指令或是其他指令)的邏輯位址轉換為非揮發性儲存電路130的實體位址。
在沒有對快閃記憶體的記憶胞進行寫入操作的情形下,隨著時間的增加,記憶胞的浮置閘的漏電現象會越嚴重。記憶胞的浮置閘的漏電現象可能會造成位元資料發生錯誤。若以快閃記憶體(非揮發性儲存電路130)的一個實體頁觀之,在長時間沒有對此實體頁進行寫入操作的情形下,隨著時間的增加,此實體頁發生錯誤的位元數量隨之增加。當一個實體頁中發生錯誤的位元數量小於某個容忍數量時,錯誤檢查和糾正(Error Checking and Correcting, ECC)機制可以修正這些發生錯誤的位元,因此非揮發性儲存電路130可以提供正確資料給主機10。當一個實體頁中發生錯誤的位元數量大於所述某個容忍數量時,則所述ECC機制就無法修正這些發生錯誤的位元。錯誤位元太多而無法被ECC機制修復,將造成資料的遺失。因此必須有一種機制,在實體頁的資料還能被ECC機制修正回來的情況下,即時地將錯誤位元很多的實體頁(或實體塊)的資料搬移/複製到另一個實體頁(或實體塊)。
圖2是依照本發明一實施例說明圖1所示非揮發性記憶體裝置100的操作方法示意圖。請參照圖1與圖2,於步驟S210中配置非揮發性儲存電路130、主記憶體120與控制器110於非揮發性記憶體裝置100。控制器110進行步驟S220,以便將主機端的多個邏輯位址(例如,邏輯塊位址(logical block address, LBA))分群為多個邏輯塊位址群組,其中這些邏輯塊位址群組的每一個包括多個邏輯塊位址。例如,假設共有10000個邏輯塊位址,則步驟S220可以將這些邏輯位址分群為400個邏輯塊位址群組,其中每一個邏輯塊位址群組各自具有25個邏輯塊位址。上述邏輯塊位址的數量以及邏輯塊位址群組的數量,可以依據實際設計需求而決定。
上述分群的方式,可以依據實際設計需求而決定。在一些實施例中,邏輯塊位址的分群方式可以依照邏輯塊位址值的順序。例如,假設每一個邏輯塊位址群組各自具有30個邏輯位址,則步驟S220可以將邏輯塊位址0~29分群為邏輯塊位址群組0,將邏輯塊位址30~59分群為邏輯塊位址群組1,其餘依此類推。在另一些實施例中,基於平均磨損(wear-leveling)的考量或是其他考量,步驟S220可以用不連續的方式對邏輯塊位址進行分群。例如,假設將10000個邏輯塊位址分群為400個邏輯塊位址群組且每一個邏輯塊位址群組各自具有25個邏輯塊位址,則步驟S220可以將邏輯塊位址0、400、800、1200、1600……分群為第1個邏輯塊位址群組,將邏輯塊位址1、401、801、1201、1601……分群為第2個邏輯塊位址群組,其餘依此類推,最後將邏輯塊位址399、799、1199、1599、1999……分群為第400個邏輯塊位址群組。在其他實施例,步驟S220可以用雜湊函數(hash function)對邏輯塊位址進行分群。
在一些實施例中,控制器110還可以在步驟S220中將在主記憶體120內的映射表MT分割為多個子映射表,例如分割為圖1所示之n個子映射表SMT_1、SMT_2、…、SMT_n。也就是說,將主機10的邏輯塊位址分為多個群組,且依據這些群組將映射表MT分割為多個子映射表SMT_1~SMT_n。這些子映射表SMT_1~SMT_n的邏輯塊位址不重疊,對應的實體塊位址(physical block address, PBA)也不重疊。依據步驟S220將邏輯塊位址分群後,每個子映射表對應的邏輯塊位址可以是固定的,而對應的實體塊位址是動態分配的。非揮發性儲存電路130中所有尚未被分配的自由塊(Free Block)被放在一個自由塊池(Free Block Pool)中。當某個子映射表需要額外的非揮發性儲存塊(實體塊)時,控制器110可以從自由塊池申請一個自由塊給所述某個子映射表。前述從自由塊池申請一個自由塊,可以根據平均磨損(Wear leveling)的策略進行分配。
這些邏輯塊位址群組(或這些子映射表SMT_1~SMT_n)的每一個被分配有一個群組年齡參數。例如,第一個邏輯塊位址群組(或子映射表SMT_1)被分配有一個群組年齡參數Age_1,第二個邏輯塊位址群組(或子映射表SMT_2)被分配有一個群組年齡參數Age_2,而第n個邏輯塊位址群組(或子映射表SMT_n)被分配有一個群組年齡參數Age_n。這些群組年齡參數Age_1~Age_n的初始值可以依照設計需求來決定。舉例來說,在一些實施例中,這些群組年齡參數Age_1~Age_n的初始值可以是-15、0、10或是其他實數。這些群組年齡參數Age_1~Age_n分別表示這些邏輯塊位址群組(或這些子映射表SMT_1~SMT_n)沒有被寫入資料的期間的時間長度。在一些實施例中,控制器110可以計時方式而觸發這些群組年齡參數Age_1~Age_n的調整。在另一些實施例中,控制器110可以依據主機10的「寫」指令而觸發這些群組年齡參數Age_1~Age_n的調整(步驟S230)。
舉例來說,在一些實施例中,當主機10發出「寫」指令給控制器110時,控制器110在步驟S230中可以對這些群組年齡參數Age_1~Age_n各自增加一個步階值。所述步階值可以視設計需求來決定。舉例來說,所述步階值可以是1或其他實數。在另一些實施例中,當主機10發出「寫」指令給控制器110時,控制器110在步驟S230中可以對這些群組年齡參數Age_1~Age_n各自減少一個步階值。
在另一些實施例中,控制器110具有一個指標器,以指向這些群組年齡參數Age_1~Age_n的其中一目標年齡參數。當主機10發出「寫」指令給控制器110時,控制器110在步驟S230中只對指標器所指的目標年齡參數增加一個步階值,並使指標器改指向這些群組年齡參數Age_1~Age_n中的下一個年齡參數作為新的目標年齡參數。舉例來說,假設指標器指向群組年齡參數Age_1。當主機10發出「寫」指令給控制器110時,控制器110只對指標器所指的目標年齡參數(此時為群組年齡參數Age_1)增加一個步階值,而其他群組年齡參數Age_2~Age_n不會被更動。在群組年齡參數Age_1完成增加後,控制器110使指標器改指向下一個年齡參數(例如群組年齡參數Age_2)作為新的目標年齡參數。當主機10發出另一個「寫」指令給控制器110時,控制器110只對指標器所指的目標年齡參數(此時為群組年齡參數Age_2)增加一個步階值,而其他群組年齡參數(例如Age_1與Age_n)不會被更動。在群組年齡參數Age_2完成增加後,控制器110使指標器改指向下一個年齡參數(例如群組年齡參數Age_3)作為新的目標年齡參數。
當主機10發出「寫」指令給控制器110時,控制器110依照主記憶體120的映射表MT將此「寫」指令的目標邏輯塊位址轉換為目標實體塊位址,然後依照此「寫」指令存取非揮發性儲存電路130中由目標實體塊位址所定址的非揮發性儲存塊(實體塊)。在非揮發性儲存塊(實體塊)完成資料寫入操作後,控制器110可以在步驟S230中將這些群組年齡參數Age_1~Age_n中所述目標邏輯塊位址所對應的年齡參數重置為初始值。舉例來說,假設主機10所發出「寫」指令的邏輯塊位址屬於第n個邏輯塊位址群組(或子映射表SMT_n),因此控制器110依照主記憶體120的子映射表SMT_n將此「寫」指令的目標邏輯塊位址轉換為目標實體塊位址,然後依照此「寫」指令存取非揮發性儲存電路130中由目標實體塊位址所定址的非揮發性儲存塊(實體塊)。在非揮發性儲存塊(實體塊)完成資料寫入操作後,控制器110可以將所述目標邏輯塊位址所對應的群組年齡參數Age_n重置為初始值。所述初始值可以視設計需求來決定。舉例來說,所述初始值可以是0或其他實數。
於步驟S240中,控制器110可以檢查這些群組年齡參數Age_1~Age_n是否超出預設範圍。所述預設範圍可以視設計需求來決定。若這些群組年齡參數Age_1~Age_n都沒有超出預設範圍,則控制器110可以回到步驟S230,以便等待主機10所發出的下一個「寫」指令。當這些群組年齡參數Age_1~Age_n中的一個年齡參數超出預設範圍時,控制器110可以進行步驟S250,以對該年齡參數所對應的某一個對應邏輯塊位址群組的邏輯塊位址所對應的非揮發性儲存塊進行掃描操作,以檢查錯誤位元數量。舉例來說(但不限於此),控制器110可以在步驟S240中比較這些群組年齡參數Age_1~Age_n與一個門檻值,以判斷這些群組年齡參數Age_1~Age_n與該預設範圍的關係。所述門檻值可以視設計需求來決定。假設控制器110發現第1個邏輯塊位址群組(或子映射表SMT_1)的群組年齡參數Age_1大於該門檻值,因此控制器110可以對群組年齡參數Age_1所對應的第1個邏輯塊位址群組(或子映射表SMT_1)的邏輯塊位址所對應的一個或多個非揮發性儲存塊(非揮發性儲存電路130的實體塊)進行掃描操作,以檢查錯誤位元數量。
步驟S230與步驟S240的實現方式不應受限於上述。例如,在另一些實施例中,當主機10發出「寫」指令給控制器110時,控制器110在步驟S230中只對指標器所指的目標年齡參數減少一個步階值,並使指標器改指向這些群組年齡參數Age_1~Age_n中的下一個年齡參數作為新的目標年齡參數。舉例來說,假設指標器指向群組年齡參數Age_1。當主機10發出「寫」指令給控制器110時,控制器110只對指標器所指的目標年齡參數(此時為群組年齡參數Age_1)減少一個步階值,而其他群組年齡參數Age_2~Age_n不會被更動。在群組年齡參數Age_1完成減少後,控制器110使指標器改指向下一個年齡參數(例如群組年齡參數Age_2)作為新的目標年齡參數。當主機10發出另一個「寫」指令給控制器110時,控制器110只對指標器所指的目標年齡參數(此時為群組年齡參數Age_2)減少一個步階值,而其他群組年齡參數(例如Age_1與Age_n)不會被更動。在群組年齡參數Age_2完成減少後,控制器110使指標器改指向下一個年齡參數(例如群組年齡參數Age_3)作為新的目標年齡參數。於步驟S240中,控制器110可以比較這些群組年齡參數Age_1~Age_n與一個門檻值,以判斷這些群組年齡參數Age_1~Age_n與該預設範圍的關係。所述門檻值可以視設計需求來決定。假設控制器110發現第1個邏輯塊位址群組(或子映射表SMT_1)的群組年齡參數Age_1小於該門檻值,因此控制器110可以對群組年齡參數Age_1所對應的第1個邏輯塊位址群組(或子映射表SMT_1)的邏輯塊位址所對應的一個或多個非揮發性儲存塊(非揮發性儲存電路130的實體塊)進行掃描操作(步驟S250),以檢查錯誤位元數量。
控制器110還可以在步驟S250中依據該掃描操作的結果而決定是否將對應邏輯塊位址群組的邏輯塊位址所對應的一個或多個非揮發性儲存塊進行一儲存塊資料搬移操作。舉例來說,假設該掃描操作的結果表示群組年齡參數Age_1所對應的第1個邏輯塊位址群組(子映射表SMT_1)所對應的一個非揮發性儲存塊(非揮發性儲存電路130的某一個實體塊,在此稱為可疑儲存塊)的錯誤位元數量太多。控制器110可以在步驟S250中將第1個邏輯塊位址群組(子映射表SMT_1)所對應的所述可疑儲存塊進行儲存塊資料搬移操作。控制器110可以將所述可疑儲存塊的資料搬移至一個閒置儲存塊(亦即從自由塊池申請一個自由塊),以及控制器110可以將所述可疑儲存塊所對應的群組年齡參數Age_1重置為初始值。所述初始值可以視設計需求來決定。舉例來說,所述初始值可以是0或其他實數。在將可疑儲存塊的資料搬移至閒置儲存塊後,子映射表SMT_1被更新,以便將所述閒置儲存塊取代所述可疑儲存塊,並將所述可疑儲存塊釋放回自由塊池中。
因此,本實施例所述非揮發性記憶體裝置100及其操作方法可以記錄多個邏輯塊位址群組(或子映射表SMT_1~SMT_n)各自的群組年齡參數Age_1~Age_n。這些群組年齡參數Age_1~Age_n可以表示這些邏輯塊位址群組未被進行寫入操作的時間長度。在長時間沒有對一個實體塊進行寫入操作的情形下,隨著時間的增加,此實體塊發生錯誤的位元數量隨之增加。控制器110可以依照這些群組年齡參數Age_1~Age_n來彈性決定掃描操作的時機,以便適時地檢查對應儲存塊(實體塊)發生錯誤的位元數量。依據掃描操作的結果,控制器可以動態決定是否進行儲存塊資料搬移操作,以避免儲存塊(實體塊)資料遺失。
圖3是依照本發明另一實施例說明圖1所示非揮發性記憶體裝置100的操作方法示意圖。一般而言,控制器110在處理完主機10的目前指令後,控制器110會進入閒置期間來等待主機10的下一個指令。請參照圖1與圖3,在進入閒置期間後,控制器110可以進行步驟S310,以便從多個邏輯塊位址群組(或子映射表SMT_1~SMT_n)各自的群組年齡參數Age_1~Age_n中找出最大者。於步驟S320中,控制器110可以檢查步驟S310所找出的最大年齡參數是否超出門檻值。所述門檻值可以視設計需求來決定。當步驟S310所找出的最大年齡參數沒有超出門檻值時,表示非揮發性儲存電路130的所有實體塊所儲存的資料都很「年輕」,因此結束圖3所示流程(等待下一個閒置期間)。當步驟S310所找出的最大年齡參數超出門檻值時,表示此最大年齡參數所對應的一個或多個非揮發性儲存塊(非揮發性儲存電路130的實體塊)的資料可能太「老」。儲存在實體塊的資料太「老」,意味著此實體塊發生錯誤的位元數量可能太多。因此,控制器110可以進行步驟S250,以對步驟S310所找出的最大年齡參數所對應的某一個對應邏輯塊位址群組所對應的非揮發性儲存塊(非揮發性儲存電路130的實體塊)進行掃描操作。掃描操作可以進一步確認非揮發性儲存塊(非揮發性儲存電路130的實體塊)的錯誤位元數量。圖3所示步驟S320與步驟S250可以參照圖2所示步驟S240與步驟S250的相關說明而類推。
於圖3所示實施例中,步驟S250所述掃描操作包括子步驟S251~S255。於步驟S251中,控制器110可以將對應邏輯塊位址群組(亦即步驟S310所找出最大年齡參數所對應的群組)所對應的非揮發性儲存塊(非揮發性儲存電路130的實體塊)進行粗略掃描。於步驟S252中,控制器110可以從粗略掃描的結果而獲知實體頁的錯誤位元數量是否大於第一門檻值。所述第一門檻值可以視設計需求來決定。舉例來說(但不限於此),假設步驟S310所找出最大年齡參數是群組年齡參數Age_1,因此控制器110可以於步驟S251中隨機地(或依某一規則)從第一個邏輯塊位址群組(或子映射表SMT_1)所對應的多個非揮發性儲存塊(非揮發性儲存電路130的實體塊)中選擇一個實體頁,以及檢查此經選擇實體頁的錯誤位元數量。當此經選擇實體頁的錯誤位元數量小於第一門檻值時,圖3所示流程會被結束(等待下一個閒置期間)。當此經選擇實體頁的錯誤位元數量大於第一門檻值時,表示此經選擇實體頁所屬的非揮發性儲存塊(非揮發性儲存電路130的實體塊)是可疑儲存塊,因此控制器110可以進行步驟S253以進行細掃描。
控制器110可以依照粗略掃描的結果來決定是否將對應邏輯塊位址群組所對應的非揮發性儲存塊的其中一個可疑儲存塊進行細掃描。於步驟S253中,控制器110可以對此可疑儲存塊進行細掃描(或檢查此可疑儲存塊的全部實體頁)。在一實施例中,控制器110可以僅對此可疑儲存塊的有效實體頁進行細掃描。上述有效實體頁位址與邏輯位址之對應關係可被記錄於一表格(table)中,也就是說,記憶體之每一有效實體頁位址皆可被對應至某一邏輯位址。舉例來說,可藉由查表先得知此可疑儲存塊的有效實體頁位址,再對上述有效實體頁進行細掃描。於步驟S254中,控制器110可以從細掃描的結果而獲知實體頁的錯誤位元數量是否大於第二門檻值。所述第二門檻值可以視設計需求來決定。舉例來說(但不限於此),假設步驟S310所找出最大年齡參數是群組年齡參數Age_2,群組年齡參數Age_2對應的實體塊其中有一實體頁的錯誤位元數量大於第一門檻值(滿足步驟S252與S253)。當步驟S254判斷此可疑儲存塊的所有實體頁的錯誤位元數量均小於第二門檻值時,則圖3所示流程會被結束(等待下一個閒置期間),此時群組年齡參數Age_2尚未被重置。控制器110可以依照細掃描的結果來決定是否對可疑儲存塊進行儲存塊資料搬移操作,以將可疑儲存塊的資料搬移至閒置儲存塊。當步驟S254判斷此可疑儲存塊中有某一個實體頁的錯誤位元數量大於第二門檻值時,表示此可疑儲存塊的錯誤位元太多,因此控制器110可以進行步驟S255以準備進行儲存塊資料搬移操作,以及將所述可疑儲存塊所對應的群組年齡參數重置為初始值。
一般而言,閒置期間是很短暫的。為了避免影響非揮發性記憶體裝置100的操作效率,步驟S255是將此可疑儲存塊的「儲存塊資料搬移旗標」的值設為「真」(例如邏輯值1),而不是真正對此可疑儲存塊進行儲存塊資料搬移操作。完成步驟S255後,圖3所示流程會被結束(等待下一個閒置期間)。圖4是依照本發明一實施例說明儲存塊資料搬移操作的操作方法示意圖。請參照圖1與圖4,在進入閒置期間後,控制器110可以進行步驟S410,以便檢查非揮發性儲存電路130的所有實體塊(非揮發性儲存塊)的「儲存塊資料搬移旗標」。當控制器110在步驟S410判斷非揮發性儲存電路130的所有實體塊的「儲存塊資料搬移旗標」的值均不為「真」時,圖4所示流程會被結束(等待下一個閒置期間)。當控制器110在步驟S410判斷有一個實體塊(非揮發性儲存塊,在此稱為可疑儲存塊)的「儲存塊資料搬移旗標」的值為「真」時,控制器110可以進行步驟S420,以將此可疑儲存塊的資料搬移至閒置儲存塊。在將可疑儲存塊的資料搬移至閒置儲存塊後,所述可疑儲存塊將被所述閒置儲存塊取代,並將所述可疑儲存塊釋放回自由塊池中。完成步驟S420後,圖4所示流程會被結束(等待下一個閒置期間)。
圖5是依照本發明一實施例說明圖1所示非揮發性儲存電路130的部份非揮發性儲存塊(實體塊)的示意圖。在此假設圖2所示步驟S240(或圖3所示步驟S320)判斷群組年齡參數Age_1超出預設範圍(例如大於門檻值),因此將群組年齡參數Age_1的第一邏輯塊位址群組(或子映射表SMT_1)所對應的非揮發性儲存塊(實體塊)Block_A、Block_B與Block_C繪示於圖5。圖5雖繪示三個非揮發性儲存塊Block_A、Block_B與Block_C,但在其他實施例中,一個邏輯塊位址群組所對應的非揮發性儲存塊的數量可能是2個、4個或更多個。舉例來說,非揮發性儲存塊Block_A具有實體頁Page_A0、Page_A1、Page_A2、Page_A3、…、Page_A255,非揮發性儲存塊Block_B具有實體頁Page_B0、Page_B1、Page_B2、Page_B3、…、Page_B255,而非揮發性儲存塊Block_C具有實體頁Page_C0、Page_C1、Page_C2、Page_C3、…、Page_C255。
請參照圖1、圖3與圖5,在一些實施例中,步驟S251所述粗略掃描可能包括下述操作。控制器110可以在步驟S251中使用一個頁指標器,此頁指標器可以指向群組年齡參數Age_1的對應邏輯塊位址群組所對應的非揮發性儲存塊Block_A、Block_B與Block_C其中一個儲存塊的一個實體頁。例如,此頁指標器可以指向非揮發性儲存塊Block_A的一個實體頁Page_A0。在步驟S251中,控制器110可以檢查頁指標器所指的實體頁Page_A0的錯誤位元數量。當頁指標器所指的實體頁Page_A0的錯誤位元數量小於第一門檻值時,控制器110可以將頁指標器改指向群組年齡參數Age_1的對應邏輯塊位址群組所對應的非揮發性儲存塊Block_A、Block_B與Block_C其中另一個儲存塊的實體頁(例如非揮發性儲存塊Block_B的一個實體頁Page_B0)。控制器110可以檢查頁指標器所指的實體頁Page_B0的錯誤位元數量。當頁指標器所指的實體頁Page_B0的錯誤位元數量小於第一門檻值時,控制器110可以將頁指標器改指向群組年齡參數Age_1的對應邏輯塊位址群組所對應的非揮發性儲存塊Block_A、Block_B與Block_C其中另一個儲存塊的實體頁(例如非揮發性儲存塊Block_C的一個實體頁Page_C0)。控制器110可以檢查頁指標器所指的實體頁Page_C0的錯誤位元數量。當頁指標器所指的實體頁Page_C0的錯誤位元數量小於第一門檻值時,控制器110可以將頁指標器改指向群組年齡參數Age_1的對應邏輯塊位址群組所對應的非揮發性儲存塊Block_A、Block_B與Block_C其中另一個儲存塊的實體頁(例如非揮發性儲存塊Block_A的一個實體頁Page_A1)。在目前的閒置期間,當實體頁Page_A0、Page_B0與Page_C0的錯誤位元數量都小於第一門檻值時,步驟S252的判斷結果為「否」,使得圖3所示流程會被結束(等待下一個閒置期間)。以此類推,當進入下一個閒置期間,控制器110可以接續檢查實體頁Page_A1、Page_B1與Page_C1的錯誤位元數量。當實體頁Page_A1、Page_B1與Page_C1的錯誤位元數量都小於第一門檻值時,步驟S252的判斷結果為「否」,使得圖3所示流程會被結束(等待再下一個閒置期間)。以此類推,直到群組年齡參數Age_1的對應邏輯塊位址群組所對應的非揮發性儲存塊Block_A、Block_B與Block_C的所有實體頁都完成檢查,且非揮發性儲存塊Block_A、Block_B與Block_C的所有實體頁的錯誤位元數量都小於第一門檻值,則所述粗略掃描即被完成。當群組年齡參數Age_1的對應邏輯塊位址群組所對應的非揮發性儲存塊Block_A、Block_B與Block_C的所有實體頁均完成粗略掃描時,亦即當非揮發性儲存塊Block_A、Block_B與Block_C的所有實體頁的錯誤位元數量都小於第一門檻值時,則控制器110可以將群組年齡參數Age_1重置為初始值。
在進行粗略掃描的過程中,當發現群組年齡參數Age_1的對應邏輯塊位址群組所對應的非揮發性儲存塊Block_A、Block_B與Block_C的一個實體頁的錯誤位元數量大於第一門檻值時,亦即步驟S252的判斷結果為「是」,則控制器110可以對此實體頁所屬的可疑儲存塊進行細掃描(步驟S253)。舉例來說,當頁指標器所指的實體頁Page_A1的錯誤位元數量大於第一門檻值時,由控制器110可以將實體頁Page_A1所屬的儲存塊Block_A進行細掃描。
步驟S251所述粗略掃描的實施方式不應受限於上述內容。舉例來說,在另一些實施例中,步驟S251所述粗略掃描可能包括下述操作。控制器110可以在步驟S251中使用一個頁指標器,此頁指標器可以指向群組年齡參數Age_1的對應邏輯塊位址群組所對應的非揮發性儲存塊Block_A、Block_B與Block_C其中一個儲存塊的一個實體頁。例如,此頁指標器可以指向非揮發性儲存塊Block_B的一個實體頁Page_B1。在步驟S251中,控制器110可以檢查頁指標器所指的實體頁Page_B1以及至少一個鄰近實體頁的錯誤位元數量。所述至少一個鄰近實體頁是鄰近於頁指標器所指的實體頁Page_B1的一個或多個其他實體頁。依照設計需求,當頁指標器指向實體頁Page_B1時,所述至少一個鄰近實體頁可以包括實體頁Page_B0、實體頁Page_B2、實體頁Page_B3與/或其他實體頁。舉例來說,當頁指標器指向實體頁Page_B1時,所述至少一個鄰近實體頁可以包括實體頁Page_B0與實體頁Page_B2。當頁指標器所指的實體頁Page_B1與所述至少一個鄰近實體頁(例如Page_B0與Page_B2)的錯誤位元數量小於第一門檻值時,控制器110可以將頁指標器改指向群組年齡參數Age_1的對應邏輯塊位址群組所對應的非揮發性儲存塊Block_A、Block_B與Block_C其中另一個儲存塊的實體頁(例如非揮發性儲存塊Block_C的一個實體頁Page_C1)。控制器110可以檢查頁指標器所指的實體頁Page_C1與所述至少一個鄰近實體頁(例如Page_C0與Page_C2)的錯誤位元數量。當頁指標器所指的實體頁Page_C1與所述至少一個鄰近實體頁(例如Page_C0與Page_C2)的錯誤位元數量小於第一門檻值時,控制器110可以將頁指標器改指向群組年齡參數Age_1的對應邏輯塊位址群組所對應的非揮發性儲存塊Block_A、Block_B與Block_C其中另一個儲存塊的實體頁(例如非揮發性儲存塊Block_A的一個實體頁Page_A2)。控制器110可以檢查頁指標器所指的實體頁Page_A2與所述至少一個鄰近實體頁(例如Page_A1與Page_A3)的錯誤位元數量。當頁指標器所指的實體頁Page_A2與所述至少一個鄰近實體頁(例如Page_A1與Page_A3)的錯誤位元數量小於第一門檻值時,控制器110可以將頁指標器改指向群組年齡參數Age_1的對應邏輯塊位址群組所對應的非揮發性儲存塊Block_A、Block_B與Block_C其中另一個儲存塊的實體頁(例如非揮發性儲存塊Block_B的一個實體頁Page_B2)。以此類推,直到群組年齡參數Age_1的對應邏輯塊位址群組所對應的非揮發性儲存塊Block_A、Block_B與Block_C的所有實體頁都完成檢查,且非揮發性儲存塊Block_A、Block_B與Block_C的所有實體頁的錯誤位元數量都小於第一門檻值,則所述粗略掃描即被完成。當群組年齡參數Age_1的對應邏輯塊位址群組所對應的非揮發性儲存塊Block_A、Block_B與Block_C的所有實體頁均完成粗略掃描時,則控制器110可以將群組年齡參數Age_1重置為初始值。在進行粗略掃描的過程中,當頁指標器所指的實體頁與所述至少一個鄰近實體頁的錯誤位元數量大於第一門檻值時,控制器110可以將此頁指標器所指的實體頁所屬的儲存塊進行細掃描(步驟S253)。
在一些實施例中,步驟S251所述粗略掃描還可能包括下述操作。上述頁指標器將依據一查表指向非揮發性儲存塊中的實體頁(該些實體頁可為相鄰,也可為不相鄰,然不以此為限),上述查表中定義了非揮發性儲存塊中需進行粗略掃描的實體頁。在一實施例中,上述查表可定義至少一非揮發性儲存塊的多個實體頁,也可定義多個非揮發性儲存塊的多個實體頁。舉例來說,控制器110可依據查表Table1(未繪示)依序檢查非揮發性儲存塊Block_A中實體頁的錯誤位元數量。依據查表Table1,當頁指標器所指的非揮發性儲存塊Block_A中實體頁的錯誤位元數量小於第一門檻值時,控制器110可以將頁指標器改指向群組年齡參數Age_1的對應邏輯塊位址群組所對應的非揮發性儲存塊Block_B的實體頁。以此類推,直到非揮發性儲存塊Block_A、Block_B與Block_C的所有實體頁的錯誤位元數量都小於第一門檻值,則所述粗略掃描即被完成。在另一實施例中,每一非揮發性儲存塊亦可具有各自的查表,用以定義了各自非揮發性儲存塊中需進行粗略掃描的實體頁。舉例來說,控制器110可依據查表Table2(未繪示)依序檢查非揮發性儲存塊Block_B中實體頁的錯誤位元數量,控制器110可依據查表Table3(未繪示)依序檢查非揮發性儲存塊Block_C中實體頁的錯誤位元數量。
步驟S253所述細掃描可能包括下述操作。控制器110可以在步驟S253中檢查該頁指標器所指的實體頁Page_A1所屬的儲存塊Block_A的所有實體頁Page_A0~Page_A255,以獲得實體頁Page_A0~Page_A255的有效資料的錯誤位元數量。當頁指標器所對應的儲存塊Block_A所屬的所有實體頁Page_A0~Page_A255各自的有效資料的錯誤位元數量均小於第二門檻值時,步驟S254的判斷結果為「否」,使得控制器110將對應邏輯塊位址群組(或子映射表SMT_1)所對應的群組年齡參數Age_1重置為初始值,以及結束圖3所示流程(等待下一個閒置期間)。當頁指標器所對應的儲存塊Block_A所屬的所有實體頁Page_A0~Page_A255的其中一個實體頁(例如實體頁Page_A3)的有效資料的錯誤位元數量大於第二門檻值時,控制器110可以將頁指標器所對應的儲存塊Block_A進行「儲存塊資料搬移操作」(步驟S255)以將儲存塊Block_A的資料搬移至閒置儲存塊。在完成「儲存塊資料搬移操作」後,控制器110可以將對應邏輯塊位址群組(或子映射表SMT_1)所對應的群組年齡參數Age_1重置為初始值。
本案所述「掃描操作」的實現方式不應限於圖3所述。例如在另一些實施例中,所述「掃描操作」可能包括下述操作。在此假設群組年齡參數Age_1超出預設範圍(例如大於門檻值),因此群組年齡參數Age_1的第一邏輯塊位址群組(或子映射表SMT_1)所對應的非揮發性儲存塊(實體塊)Block_A、Block_B與Block_C被繪示於圖5。因為群組年齡參數Age_1大於門檻值,所以第一邏輯塊位址群組(或子映射表SMT_1)所對應的非揮發性儲存塊(實體塊)Block_A、Block_B與Block_C將會進行「掃描操作」。請參照圖1與圖5,控制器110可以使用一個頁指標器,此頁指標器指向對應邏輯塊位址群組(第一邏輯塊位址群組,或子映射表SMT_1)所對應的非揮發性儲存塊其中一個儲存塊的實體頁。例如,此頁指標器可以指向非揮發性儲存塊Block_A的一個實體頁Page_A0。控制器110可以檢查頁指標器所指的實體頁Page_A0的錯誤位元數量。當頁指標器所指的實體頁Page_A0的錯誤位元數量小於第一門檻值時,控制器110可以將頁指標器改指向非揮發性儲存塊Block_A、Block_B與Block_C其中另一個儲存塊的實體頁(例如非揮發性儲存塊Block_B的一個實體頁Page_B0)。控制器110可以檢查頁指標器所指的實體頁Page_B0的錯誤位元數量。當頁指標器所指的實體頁Page_B0的錯誤位元數量小於第一門檻值時,控制器110可以將頁指標器改指向非揮發性儲存塊Block_A、Block_B與Block_C其中另一個儲存塊的實體頁(例如非揮發性儲存塊Block_C的一個實體頁Page_C0)。控制器110可以檢查頁指標器所指的實體頁Page_C0的錯誤位元數量。當頁指標器所指的實體頁Page_C0的錯誤位元數量小於第一門檻值時,控制器110可以將頁指標器改指向非揮發性儲存塊Block_A、Block_B與Block_C其中另一個儲存塊的實體頁(例如非揮發性儲存塊Block_A的一個實體頁Page_A1)。以此類推,當對應邏輯塊位址群組(第一邏輯塊位址群組,或子映射表SMT_1)所對應的非揮發性儲存塊Block_A、Block_B與Block_C的所有實體頁均完成掃描操作時,也就是當非揮發性儲存塊Block_A、Block_B與Block_C的所有實體頁的錯誤位元數量都小於第一門檻值時,控制器110可以將對應邏輯塊位址群組(第一邏輯塊位址群組,或子映射表SMT_1)所對應的群組年齡參數Age_1重置為初始值。當頁指標器所指的實體頁(例如實體頁Page_C0)的錯誤位元數量大於門檻值時,控制器110可以將該實體頁所屬的儲存塊(例如儲存塊Block_C)進行「儲存塊資料搬移操作」,以將儲存塊的資料搬移至閒置儲存塊。在一實施例中,當該實體頁所屬的儲存塊(例如儲存塊Block_C)之資料被搬移後,該儲存塊(例如儲存塊Block_C)所對應的群組年齡參數Age_1重置為初始值。
在又一些實施例中,所述「掃描操作」可能包括下述操作。在此假設群組年齡參數Age_1超出預設範圍(例如大於門檻值),因此群組年齡參數Age_1的第一邏輯塊位址群組(或子映射表SMT_1)所對應的非揮發性儲存塊(實體塊)Block_A、Block_B與Block_C被繪示於圖5。因為群組年齡參數Age_1大於門檻值,所以第一邏輯塊位址群組(或子映射表SMT_1)所對應的非揮發性儲存塊(實體塊)Block_A、Block_B與Block_C將會進行「掃描操作」。請參照圖1與圖5,控制器110可以使用一個塊指標器,此塊指標器指向對應邏輯塊位址群組(第一邏輯塊位址群組,或子映射表SMT_1)所對應的非揮發性儲存塊其中一個儲存塊。例如,此塊指標器可以指向非揮發性儲存塊(實體塊)Block_A、Block_B與Block_C其中一個儲存塊Block_A。控制器110可以檢查塊指標器所指的儲存塊Block_A的全部實體頁的錯誤位元數量。當塊指標器所指的儲存塊Block_A的錯誤位元數量小於門檻值時,控制器110可以將塊指標器改指向非揮發性儲存塊Block_A、Block_B與Block_C其中另一個儲存塊(例如儲存塊Block_B)。控制器110可以檢查塊指標器所指的儲存塊Block_B的全部實體頁的錯誤位元數量。當塊指標器所指的儲存塊Block_B的錯誤位元數量小於門檻值時,控制器110可以將塊指標器改指向非揮發性儲存塊Block_A、Block_B與Block_C其中另一個儲存塊(例如儲存塊Block_C)。控制器110可以檢查塊指標器所指的儲存塊Block_C的全部實體頁的錯誤位元數量。當塊指標器所指的儲存塊Block_C的錯誤位元數量小於門檻值時,控制器110可以將塊指標器改指向非揮發性儲存塊Block_A、Block_B與Block_C其中另一個儲存塊(例如儲存塊Block_A)。
當對應邏輯塊位址群組(第一邏輯塊位址群組,或子映射表SMT_1)所對應的非揮發性儲存塊Block_A、Block_B與Block_C均完成掃描操作時,也就是當非揮發性儲存塊Block_A、Block_B與Block_C的錯誤位元數量都小於門檻值時,控制器110可以將對應邏輯塊位址群組(第一邏輯塊位址群組,或子映射表SMT_1)所對應的群組年齡參數Age_1重置為初始值。當塊指標器所指的儲存塊(例如實體頁儲存塊Block_C)的錯誤位元數量大於門檻值時,控制器110可以將塊指標器所指的儲存塊Block_C進行「儲存塊資料搬移操作」,以將儲存塊Block_C的資料搬移至閒置儲存塊。在一實施例中,當上述儲存塊(例如儲存塊Block_C)之資料被搬移後,該儲存塊(例如儲存塊Block_C)所對應的群組年齡參數Age_1重置為初始值。
在另一些實施例中,在某一實體塊完成資料寫入操作後,控制器110可以將這些群組年齡參數Age_1~Age_n中所述某一實體塊所對應的群組年齡參數「減少」一個步階值。因此在另一些實施例中,圖3所示一個或多個步驟可以被對應改變。例如,在進入閒置期間後,控制器110可以進行步驟S310,以便從多個邏輯塊位址群組(或子映射表SMT_1~SMT_n)各自的群組年齡參數Age_1~Age_n中找出「最小者」。於步驟S320中,控制器110可以檢查步驟S310所找出的「最小年齡參數」是否「小於」門檻值。所述門檻值可以視設計需求來決定。當步驟S310所找出的「最小年齡參數」沒有「小於」門檻值時,表示非揮發性儲存電路130的所有實體塊所儲存的資料都很「年輕」,因此結束圖3所示流程(等待下一個閒置期間)。當步驟S310所找出的「最小年齡參數」「小於」門檻值時,表示此「最小年齡參數」所對應的一個或多個非揮發性儲存塊(非揮發性儲存電路130的實體塊)的資料可能太「老」。因此,控制器110可以進行步驟S250,以對步驟S310所找出的「最小年齡參數」所對應的某一個對應邏輯塊位址群組所對應的非揮發性儲存塊(非揮發性儲存電路130的實體塊)進行掃描操作。
值得注意的是,在不同的應用情境中,控制器110與/或主記憶體120的相關功能可以利用一般的編程語言(programming languages,例如C或C++)、硬體描述語言(hardware description languages,例如Verilog HDL或VHDL)或其他合適的編程語言來實現為軟體、韌體或硬體。可執行所述相關功能的軟體(或韌體)可以被佈置為任何已知的計算機可存取媒體(computer-accessible medias),例如磁帶(magnetic tapes)、半導體(semiconductors)記憶體、磁盤(magnetic disks)或光盤(compact disks,例如CD-ROM或DVD-ROM),或者可通過互聯網(Internet)、有線通信(wired communication)、無線通信(wireless communication)或其它通信介質傳送所述軟體(或韌體)。所述軟體(或韌體)可以被存放在計算機的可存取媒體中,以便於由計算機的處理器來存取/執行所述軟體(或韌體)的編程碼(programming codes)。另外,本發明的裝置和方法可以通過硬體和軟體的組合來實現。
綜上所述,本發明諸實施例所述非揮發性記憶體裝置100及其操作方法可以記錄多個邏輯塊位址群組(或子映射表SMT_1~SMT_n)各自的群組年齡參數Age_1~Age_n。這些群組年齡參數Age_1~Age_n可以表示這些邏輯塊位址群組已有多久未被進行寫入操作。在長時間沒有對一個實體塊進行寫入操作的情形下,隨著時間的增加,此實體塊發生錯誤的位元數量隨之增加。非揮發性記憶體裝置100的控制器110可以依照這些群組年齡參數Age_1~Age_n來彈性決定掃描操作的時機,以便適時地檢查非揮發性儲存電路130的部份儲存塊(實體塊)發生錯誤的位元數量。每次所進行掃描操作的對象不是非揮發性儲存電路130的全部儲存塊,因此可以避免影響非揮發性記憶體裝置100的運作效能。依據掃描操作的結果,控制器可以動態決定是否進行儲存塊資料搬移操作,以避免儲存塊(實體塊)資料遺失。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
10‧‧‧主機
100‧‧‧非揮發性記憶體裝置
110‧‧‧控制器
120‧‧‧主記憶體
130‧‧‧非揮發性儲存電路
Block_A、Block_B、Block_C‧‧‧非揮發性儲存塊
MT‧‧‧映射表
Page_A0、Page_A1、Page_A2、Page_A3、Page_A255、Page_B0、Page_B1、Page_B2、Page_B3、Page_B255、Page_C0、Page_C1、Page_C2、Page_C3、Page_C255‧‧‧實體頁
S210~S250、S251~S255、S310~S320、S410~S420‧‧‧步驟
SMT_1、SMT_2、SMT_n‧‧‧子映射表
圖1是依照本發明實施例說明一種非揮發性記憶體裝置的電路方塊示意圖。 圖2是依照本發明一實施例說明圖1所示非揮發性記憶體裝置的操作方法示意圖。 圖3是依照本發明另一實施例說明圖1所示非揮發性記憶體裝置的操作方法示意圖。 圖4是依照本發明一實施例說明儲存塊資料搬移操作的操作方法示意圖。 圖5是依照本發明一實施例說明圖1所示非揮發性儲存電路的部份非揮發性儲存塊(實體塊)的示意圖。
Claims (46)
- 一種非揮發性記憶體裝置,包括: 一非揮發性儲存電路,具有由多個實體塊位址所定址的多個非揮發性儲存塊; 一主記憶體,用以存放一映射表,其中該映射表用以記錄多個邏輯塊位址與該些實體塊位址之轉換關係;以及 一控制器,耦接至該主記憶體與該非揮發性儲存電路,其中該控制器將該些邏輯塊位址分群為多個邏輯塊位址群組,而該些邏輯塊位址群組的每一個包括多個邏輯塊位址;該些邏輯塊位址群組的每一個被分配有一個群組年齡參數;該些群組年齡參數的調整是由一主機的寫指令所觸發;當該些群組年齡參數中的一個年齡參數超出一預設範圍時,該控制器對該年齡參數所對應的一對應邏輯塊位址群組的該些邏輯塊位址所對應的該些非揮發性儲存塊進行一掃描操作以檢查錯誤位元數量;以及該控制器依據該掃描操作的結果而決定是否對該對應邏輯塊位址群組的該些邏輯塊位址所對應的該些非揮發性儲存塊的其中一個儲存塊進行一儲存塊資料搬移操作。
- 如申請專利範圍第1項所述的非揮發性記憶體裝置,其中當該主機發出該寫指令給該控制器時,該控制器對該些群組年齡參數各自增加一步階值。
- 如申請專利範圍第1項所述的非揮發性記憶體裝置,其中當該主機發出該寫指令給該控制器時,該控制器對該些群組年齡參數各自減少一步階值。
- 如申請專利範圍第1項所述的非揮發性記憶體裝置,其中一指標器指向該些群組年齡參數的其中一目標年齡參數;以及當該主機發出該寫指令給該控制器時,該控制器對該指標器所指的該目標年齡參數增加一步階值,並使該指標器改指向該些群組年齡參數中的下一個年齡參數作為新的目標年齡參數。
- 如申請專利範圍第1項所述的非揮發性記憶體裝置,其中一指標器指向該些群組年齡參數的其中一目標年齡參數;以及當該主機發出該寫指令給該控制器時,該控制器對該指標器所指的該目標年齡參數減少一步階值,並使該指標器改指向該些群組年齡參數中的下一個年齡參數作為新的目標年齡參數。
- 如申請專利範圍第1項所述的非揮發性記憶體裝置,其中當該主機發出該寫指令給該控制器時,該控制器依照該映射表將該寫指令的一目標邏輯塊位址轉換為一目標實體塊位址,依照該寫指令存取該目標實體塊位址所定址的一非揮發性儲存塊,以及將該些群組年齡參數中該目標邏輯塊位址所對應的一年齡參數重置為一初始值。
- 如申請專利範圍第1項所述的非揮發性記憶體裝置,其中該控制器比較該些群組年齡參數與一門檻值以判斷該些群組年齡參數與該預設範圍的關係;當該些群組年齡參數中的一個年齡參數大於該門檻值時,該控制器對該年齡參數所對應的該對應邏輯塊位址群組的該些邏輯塊位址所對應的該些非揮發性儲存塊進行該掃描操作以檢查錯誤位元數量。
- 如申請專利範圍第1項所述的非揮發性記憶體裝置,其中該控制器比較該些群組年齡參數與一門檻值以判斷該些群組年齡參數與該預設範圍的關係;當該些群組年齡參數中的一個年齡參數小於該門檻值時,該控制器對該年齡參數所對應的該對應邏輯塊位址群組的該些邏輯塊位址所對應的該些非揮發性儲存塊進行該掃描操作以檢查錯誤位元數量。
- 如申請專利範圍第1項所述的非揮發性記憶體裝置,其中該掃描操作包括: 由該控制器對該對應邏輯塊位址群組所對應的該些非揮發性儲存塊進行一粗略掃描; 由該控制器依照該粗略掃描的結果來決定是否對該對應邏輯塊位址群組所對應的該些非揮發性儲存塊的其中一個可疑儲存塊進行一細掃描;以及 由該控制器依照該細掃描的結果來決定是否對該可疑儲存塊進行該儲存塊資料搬移操作,以將該可疑儲存塊的資料搬移至一閒置儲存塊。
- 如申請專利範圍第9項所述的非揮發性記憶體裝置,其中該粗略掃描包括: 由一頁指標器指向該對應邏輯塊位址群組所對應的該些非揮發性儲存塊其中一個儲存塊的一實體頁; 由該控制器檢查該頁指標器所指的該實體頁以及至少一鄰近實體頁的錯誤位元數量;以及 當該頁指標器所指的該實體頁以及所述至少一鄰近實體頁的該錯誤位元數量小於一第一門檻值時,由該控制器將該頁指標器改指向該對應邏輯塊位址群組所對應的該些非揮發性儲存塊其中另一個儲存塊的一實體頁。
- 如申請專利範圍第10項所述的非揮發性記憶體裝置,其中當該頁指標器所指的該實體頁以及所述至少一鄰近實體頁的該錯誤位元數量大於該第一門檻值時,由該控制器將該實體頁所屬的該儲存塊進行該細掃描。
- 如申請專利範圍第9項所述的非揮發性記憶體裝置,其中該粗略掃描包括: 由一頁指標器指向該對應邏輯塊位址群組所對應的該些非揮發性儲存塊其中一個儲存塊的一實體頁; 由該控制器檢查該頁指標器所指的該實體頁的錯誤位元數量;以及 當該頁指標器所指的該實體頁的該錯誤位元數量小於一第一門檻值時,由該控制器將該頁指標器改指向該對應邏輯塊位址群組所對應的該些非揮發性儲存塊其中另一個儲存塊的一實體頁。
- 如申請專利範圍第12項所述的非揮發性記憶體裝置,其中當該頁指標器所指的該實體頁的該錯誤位元數量大於該第一門檻值時,由該控制器將該實體頁所屬的該儲存塊進行該細掃描。
- 如申請專利範圍第9項所述的非揮發性記憶體裝置,其中當該對應邏輯塊位址群組所對應的該些非揮發性儲存塊的所有實體頁均完成該粗略掃描時,由該控制器將該對應邏輯塊位址群組所對應的該年齡參數重置為一初始值。
- 如申請專利範圍第9項所述的非揮發性記憶體裝置,其中該細掃描包括: 由一頁指標器指向該對應邏輯塊位址群組所對應的該些非揮發性儲存塊其中一個儲存塊的一實體頁; 由該控制器檢查該頁指標器所指的該實體頁所屬的該儲存塊的有效實體頁各自的錯誤位元數量;以及 當該頁指標器所對應的該儲存塊所屬的有效實體頁各自的該錯誤位元數量均小於一第二門檻值時,該控制器不重置該對應邏輯塊位址群組所對應的該年齡參數。
- 如申請專利範圍第9項所述的非揮發性記憶體裝置,其中該細掃描包括: 由一頁指標器指向該對應邏輯塊位址群組所對應的該些非揮發性儲存塊其中一個儲存塊的一實體頁; 由該控制器檢查該頁指標器所指的該實體頁所屬的該儲存塊的所有實體頁各自的錯誤位元數量;以及 當該頁指標器所對應的該儲存塊所屬的所有實體頁各自的該錯誤位元數量均小於一第二門檻值時,該控制器不重置該對應邏輯塊位址群組所對應的該年齡參數。
- 如申請專利範圍第9項所述的非揮發性記憶體裝置,其中當該可疑儲存塊的其中一個實體頁的該錯誤位元數量大於一第二門檻值時,由該控制器將該可疑儲存塊進行該儲存塊資料搬移操作以將該可疑儲存塊的資料搬移至該閒置儲存塊,以及由該控制器將該對應邏輯塊位址群組所對應的該年齡參數重置為該初始值。
- 如申請專利範圍第1項所述的非揮發性記憶體裝置,其中該掃描操作包括: 由一頁指標器指向該對應邏輯塊位址群組所對應的該些非揮發性儲存塊其中一個儲存塊的一實體頁; 由該控制器檢查該頁指標器所指的該實體頁的錯誤位元數量;以及 當該頁指標器所指的該實體頁的該錯誤位元數量小於一門檻值時,由該控制器將該頁指標器改指向該對應邏輯塊位址群組所對應的該些非揮發性儲存塊其中另一個儲存塊的一實體頁。
- 如申請專利範圍第18項所述的非揮發性記憶體裝置,其中當該對應邏輯塊位址群組所對應的該些非揮發性儲存塊的所有實體頁均完成該掃描操作時,由該控制器將該對應邏輯塊位址群組所對應的該年齡參數重置為一初始值。
- 如申請專利範圍第18項所述的非揮發性記憶體裝置,其中當該頁指標器所指的該實體頁的該錯誤位元數量大於該門檻值時,由該控制器將該實體頁所屬的該儲存塊進行該儲存塊資料搬移操作,以將該儲存塊的資料搬移至一閒置儲存塊。
- 如申請專利範圍第1項所述的非揮發性記憶體裝置,其中該掃描操作包括: 由一塊指標器指向該對應邏輯塊位址群組所對應的該些非揮發性儲存塊其中一個儲存塊; 由該控制器檢查該塊指標器所指的該儲存塊的錯誤位元數量;以及 當該塊指標器所指的該儲存塊的該錯誤位元數量小於一門檻值時,由該控制器將該塊指標器改指向該對應邏輯塊位址群組所對應的該些非揮發性儲存塊其中另一個儲存塊。
- 如申請專利範圍第21項所述的非揮發性記憶體裝置,其中當該對應邏輯塊位址群組所對應的該些非揮發性儲存塊均完成該掃描操作時,由該控制器將該對應邏輯塊位址群組所對應的該年齡參數重置為一初始值。
- 如申請專利範圍第21項所述的非揮發性記憶體裝置,其中當該塊指標器所指的該儲存塊的該錯誤位元數量大於該門檻值時,由該控制器將該塊指標器所指的該儲存塊進行該儲存塊資料搬移操作,以將該儲存塊的資料搬移至一閒置儲存塊。
- 一種非揮發性記憶體裝置的操作方法,包括: 配置一非揮發性儲存電路,其中該非揮發性儲存電路具有由多個實體塊位址所定址的多個非揮發性儲存塊; 配置一主記憶體以存放一映射表,其中該映射表用以記錄多個邏輯塊位址與該些實體塊位址之轉換關係; 由一控制器將該些邏輯塊位址分群為多個邏輯塊位址群組,其中該些邏輯塊位址群組的每一個包括多個邏輯塊位址,以及該些邏輯塊位址群組的每一個被分配有一個群組年齡參數; 依據一主機的寫指令而觸發該些群組年齡參數的調整; 當該些群組年齡參數中的一個年齡參數超出一預設範圍時,由該控制器對該年齡參數所對應的一對應邏輯塊位址群組的該些邏輯塊位址所對應的該些非揮發性儲存塊進行一掃描操作,以檢查錯誤位元數量;以及 由該控制器依據該掃描操作的結果而決定是否對該對應邏輯塊位址群組的該些邏輯塊位址所對應的該些非揮發性儲存塊的其中一個儲存塊進行一儲存塊資料搬移操作。
- 如申請專利範圍第24項所述的非揮發性記憶體裝置的操作方法,其中所述依據該主機的寫指令而觸發該些群組年齡參數的調整之步驟包括: 當該主機發出該寫指令給該控制器時,由該控制器對該些群組年齡參數各自增加一步階值。
- 如申請專利範圍第24項所述的非揮發性記憶體裝置的操作方法,其中所述依據該主機的寫指令而觸發該些群組年齡參數的調整之步驟包括: 當該主機發出該寫指令給該控制器時,由該控制器對該些群組年齡參數各自減少一步階值。
- 如申請專利範圍第24項所述的非揮發性記憶體裝置的操作方法,其中所述依據該主機的寫指令而觸發該些群組年齡參數的調整之步驟包括: 由一指標器指向該些群組年齡參數的其中一目標年齡參數;以及 當該主機發出該寫指令給該控制器時,由該控制器對該指標器所指的該目標年齡參數增加一步階值,並使該指標器改指向該些群組年齡參數中的下一個年齡參數作為新的目標年齡參數。
- 如申請專利範圍第24項所述的非揮發性記憶體裝置的操作方法,其中所述依據該主機的寫指令而觸發該些群組年齡參數的調整之步驟包括: 由一指標器指向該些群組年齡參數的其中一目標年齡參數;以及 當該主機發出該寫指令給該控制器時,由該控制器對該指標器所指的該目標年齡參數減少一步階值,並使該指標器改指向該些群組年齡參數中的下一個年齡參數作為新的目標年齡參數。
- 如申請專利範圍第24項所述的非揮發性記憶體裝置的操作方法,其中所述依據該主機的寫指令而觸發該些群組年齡參數的調整之步驟包括: 當該主機發出該寫指令給該控制器時,由該控制器依照該映射表將該寫指令的一目標邏輯塊位址轉換為一目標實體塊位址,依照該寫指令存取該目標實體塊位址所定址的一非揮發性儲存塊,以及將該些群組年齡參數中該目標邏輯塊位址所對應的一年齡參數重置為一初始值。
- 如申請專利範圍第24項所述的非揮發性記憶體裝置的操作方法,更包括: 由該控制器比較該些群組年齡參數與一門檻值,以判斷該些群組年齡參數與該預設範圍的關係; 當該些群組年齡參數中的一個年齡參數大於該門檻值時,由該控制器對該年齡參數所對應的該對應邏輯塊位址群組的該些邏輯塊位址所對應的該些非揮發性儲存塊進行該掃描操作,以檢查錯誤位元數量。
- 如申請專利範圍第24項所述的非揮發性記憶體裝置的操作方法,更包括: 由該控制器比較該些群組年齡參數與一門檻值,以判斷該些群組年齡參數與該預設範圍的關係; 當該些群組年齡參數中的一個年齡參數小於該門檻值時,由該控制器對該年齡參數所對應的該對應邏輯塊位址群組的該些邏輯塊位址所對應的該些非揮發性儲存塊進行該掃描操作,以檢查錯誤位元數量。
- 如申請專利範圍第24項所述的非揮發性記憶體裝置的操作方法,其中該掃描操作包括: 由該控制器對該對應邏輯塊位址群組所對應的該些非揮發性儲存塊進行一粗略掃描; 由該控制器依照該粗略掃描的結果來決定是否對該對應邏輯塊位址群組所對應的該些非揮發性儲存塊的其中一個可疑儲存塊進行一細掃描;以及 由該控制器依照該細掃描的結果來決定是否對該可疑儲存塊進行該儲存塊資料搬移操作,以將該可疑儲存塊的資料搬移至一閒置儲存塊。
- 如申請專利範圍第32項所述的非揮發性記憶體裝置的操作方法,其中該粗略掃描包括: 由一頁指標器指向該對應邏輯塊位址群組所對應的該些非揮發性儲存塊其中一個儲存塊的一實體頁; 由該控制器檢查該頁指標器所指的該實體頁以及至少一鄰近實體頁的錯誤位元數量;以及 當該頁指標器所指的該實體頁以及所述至少一鄰近實體頁的該錯誤位元數量小於一第一門檻值時,由該控制器將該頁指標器改指向該對應邏輯塊位址群組所對應的該些非揮發性儲存塊其中另一個儲存塊的一實體頁。
- 如申請專利範圍第33項所述的非揮發性記憶體裝置的操作方法,其中當該頁指標器所指的該實體頁以及所述至少一鄰近實體頁的該錯誤位元數量大於該第一門檻值時,由該控制器將該實體頁所屬的該儲存塊進行該細掃描。
- 如申請專利範圍第32項所述的非揮發性記憶體裝置的操作方法,其中該粗略掃描包括: 由一頁指標器指向該對應邏輯塊位址群組所對應的該些非揮發性儲存塊其中一個儲存塊的一實體頁; 由該控制器檢查該頁指標器所指的該實體頁的錯誤位元數量;以及 當該頁指標器所指的該實體頁的該錯誤位元數量小於一第一門檻值時,由該控制器將該頁指標器改指向該對應邏輯塊位址群組所對應的該些非揮發性儲存塊其中另一個儲存塊的一實體頁。
- 如申請專利範圍第35項所述的非揮發性記憶體裝置的操作方法,其中當該頁指標器所指的該實體頁的該錯誤位元數量大於該第一門檻值時,由該控制器將該實體頁所屬的該儲存塊進行該細掃描。
- 如申請專利範圍第32項所述的非揮發性記憶體裝置的操作方法,其中當該對應邏輯塊位址群組所對應的該些非揮發性儲存塊的所有實體頁均完成該粗略掃描時,由該控制器將該對應邏輯塊位址群組所對應的該年齡參數重置為一初始值。
- 如申請專利範圍第32項所述的非揮發性記憶體裝置的操作方法,其中該細掃描包括: 由一頁指標器指向該對應邏輯塊位址群組所對應的該些非揮發性儲存塊其中一個儲存塊的一實體頁; 由該控制器檢查該頁指標器所指的該實體頁所屬的該儲存塊的有效實體頁各自的錯誤位元數量;以及 當該頁指標器所對應的該儲存塊所屬的有效實體頁各自的該錯誤位元數量均小於一第二門檻值時,該控制器不重置該對應邏輯塊位址群組所對應的該年齡參數。
- 如申請專利範圍第32項所述的非揮發性記憶體裝置的操作方法,其中該細掃描包括: 由一頁指標器指向該對應邏輯塊位址群組所對應的該些非揮發性儲存塊其中一個儲存塊的一實體頁; 由該控制器檢查該頁指標器所指的該實體頁所屬的該儲存塊的所有實體頁各自的錯誤位元數量;以及 當該頁指標器所對應的該儲存塊所屬的所有實體頁各自的該錯誤位元數量均小於一第二門檻值時,該控制器不重置該對應邏輯塊位址群組所對應的該年齡參數。
- 如申請專利範圍第32項所述的非揮發性記憶體裝置的操作方法,其中當該可疑儲存塊的其中一個實體頁的該錯誤位元數量大於一第二門檻值時,由該控制器將該可疑儲存塊進行該儲存塊資料搬移操作以將該可疑儲存塊的資料搬移至該閒置儲存塊,以及由該控制器將該對應邏輯塊位址群組所對應的該年齡參數重置為該初始值。
- 如申請專利範圍第24項所述的非揮發性記憶體裝置的操作方法,其中該掃描操作包括: 由一頁指標器指向該對應邏輯塊位址群組所對應的該些非揮發性儲存塊其中一個儲存塊的一實體頁; 由該控制器檢查該頁指標器所指的該實體頁的錯誤位元數量;以及 當該頁指標器所指的該實體頁的該錯誤位元數量小於一門檻值時,由該控制器將該頁指標器改指向該對應邏輯塊位址群組所對應的該些非揮發性儲存塊其中另一個儲存塊的一實體頁。
- 如申請專利範圍第41項所述的非揮發性記憶體裝置的操作方法,其中當該對應邏輯塊位址群組所對應的該些非揮發性儲存塊的所有實體頁均完成該掃描操作時,由該控制器將該對應邏輯塊位址群組所對應的該年齡參數重置為一初始值。
- 如申請專利範圍第41項所述的非揮發性記憶體裝置的操作方法,其中當該頁指標器所指的該實體頁的該錯誤位元數量大於該門檻值時,由該控制器將該實體頁所屬的該儲存塊進行該儲存塊資料搬移操作,以將該儲存塊的資料搬移至一閒置儲存塊。
- 如申請專利範圍第24項所述的非揮發性記憶體裝置的操作方法,其中該掃描操作包括: 由一塊指標器指向該對應邏輯塊位址群組所對應的該些非揮發性儲存塊其中一個儲存塊; 由該控制器檢查該塊指標器所指的該儲存塊的錯誤位元數量;以及 當該塊指標器所指的該儲存塊的該錯誤位元數量小於一門檻值時,由該控制器將該塊指標器改指向該對應邏輯塊位址群組所對應的該些非揮發性儲存塊其中另一個儲存塊。
- 如申請專利範圍第44項所述的非揮發性記憶體裝置的操作方法,其中當該對應邏輯塊位址群組所對應的該些非揮發性儲存塊均完成該掃描操作時,由該控制器將該對應邏輯塊位址群組所對應的該年齡參數重置為一初始值。
- 如申請專利範圍第44項所述的非揮發性記憶體裝置的操作方法,其中當該塊指標器所指的該儲存塊的該錯誤位元數量大於該門檻值時,由該控制器將該塊指標器所指的該儲存塊進行該儲存塊資料搬移操作,以將該儲存塊的資料搬移至一閒置儲存塊。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW105108737A TWI631463B (zh) | 2016-03-22 | 2016-03-22 | 非揮發性記憶體裝置及其操作方法 |
CN201610292194.6A CN105975404B (zh) | 2016-03-22 | 2016-05-05 | 非易失性存储器装置及其操作方法 |
US15/166,272 US10289559B2 (en) | 2016-03-22 | 2016-05-27 | Non-volatile memory apparatus and operating method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW105108737A TWI631463B (zh) | 2016-03-22 | 2016-03-22 | 非揮發性記憶體裝置及其操作方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201734810A TW201734810A (zh) | 2017-10-01 |
TWI631463B true TWI631463B (zh) | 2018-08-01 |
Family
ID=56994014
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW105108737A TWI631463B (zh) | 2016-03-22 | 2016-03-22 | 非揮發性記憶體裝置及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10289559B2 (zh) |
CN (1) | CN105975404B (zh) |
TW (1) | TWI631463B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9971515B2 (en) * | 2016-09-13 | 2018-05-15 | Western Digital Technologies, Inc. | Incremental background media scan |
CN108073475A (zh) * | 2016-11-15 | 2018-05-25 | 广明光电股份有限公司 | 固态硬盘备份对照表的方法 |
CN108877858B (zh) * | 2017-05-10 | 2021-02-19 | 慧荣科技股份有限公司 | 储存装置以及刷新方法 |
CN108877856B (zh) | 2017-05-10 | 2021-02-19 | 慧荣科技股份有限公司 | 储存装置、记录方法以及预载方法 |
JP7020989B2 (ja) | 2018-04-23 | 2022-02-16 | 株式会社メガチップス | 不揮発性記憶装置、メモリ制御装置、及びメモリ制御方法 |
US11340810B2 (en) * | 2018-10-09 | 2022-05-24 | Western Digital Technologies, Inc. | Optimizing data storage device operation by grouping logical block addresses and/or physical block addresses using hints |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6539503B1 (en) * | 1999-11-23 | 2003-03-25 | Hewlett-Packard Company | Method and apparatus for testing error detection |
US20120059978A1 (en) * | 2010-09-07 | 2012-03-08 | Daniel L Rosenband | Storage array controller for flash-based storage devices |
TWI525631B (zh) * | 2011-11-14 | 2016-03-11 | Lsi公司 | 儲存裝置及其操作方法 |
TWI527037B (zh) * | 2014-04-10 | 2016-03-21 | 群聯電子股份有限公司 | 資料儲存方法、記憶體控制電路單元與記憶體儲存裝置 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6763424B2 (en) | 2001-01-19 | 2004-07-13 | Sandisk Corporation | Partial block data programming and reading operations in a non-volatile memory |
US7464240B2 (en) * | 2006-05-23 | 2008-12-09 | Data Ram, Inc. | Hybrid solid state disk drive with controller |
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 |
TWI442230B (zh) | 2011-04-28 | 2014-06-21 | Phison Electronics Corp | 資料寫入方法、記憶體控制器與記憶體儲存裝置 |
US8838883B2 (en) * | 2012-04-13 | 2014-09-16 | Sandisk Technologies Inc. | System and method of adjusting a programming step size for a block of a memory |
TWI514140B (zh) | 2013-02-05 | 2015-12-21 | Via Tech Inc | 非揮發性記憶裝置及其操作方法 |
TW201608475A (zh) | 2014-08-26 | 2016-03-01 | Innodisk Corp | 非揮發性記憶體裝置之損耗平均管理方法 |
US10409526B2 (en) * | 2014-12-17 | 2019-09-10 | Violin Systems Llc | Adaptive garbage collection |
-
2016
- 2016-03-22 TW TW105108737A patent/TWI631463B/zh active
- 2016-05-05 CN CN201610292194.6A patent/CN105975404B/zh active Active
- 2016-05-27 US US15/166,272 patent/US10289559B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6539503B1 (en) * | 1999-11-23 | 2003-03-25 | Hewlett-Packard Company | Method and apparatus for testing error detection |
US20120059978A1 (en) * | 2010-09-07 | 2012-03-08 | Daniel L Rosenband | Storage array controller for flash-based storage devices |
TWI525631B (zh) * | 2011-11-14 | 2016-03-11 | Lsi公司 | 儲存裝置及其操作方法 |
TWI527037B (zh) * | 2014-04-10 | 2016-03-21 | 群聯電子股份有限公司 | 資料儲存方法、記憶體控制電路單元與記憶體儲存裝置 |
Also Published As
Publication number | Publication date |
---|---|
TW201734810A (zh) | 2017-10-01 |
US10289559B2 (en) | 2019-05-14 |
CN105975404A (zh) | 2016-09-28 |
US20170277472A1 (en) | 2017-09-28 |
CN105975404B (zh) | 2019-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI599880B (zh) | 非揮發性記憶體裝置及其操作方法 | |
TWI631463B (zh) | 非揮發性記憶體裝置及其操作方法 | |
US11126544B2 (en) | Method and apparatus for efficient garbage collection based on access probability of data | |
US20160342463A1 (en) | Data protection in a namespace | |
US9164833B2 (en) | Data storage device, operating method thereof and data processing system including the same | |
KR20180080589A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
US20110296084A1 (en) | Data storage apparatus and method of writing data | |
US9176865B2 (en) | Data writing method, memory controller, and memory storage device | |
JP5631938B2 (ja) | 半導体記憶装置 | |
US11204864B2 (en) | Data storage devices and data processing methods for improving the accessing performance of the data storage devices | |
TWI459198B (zh) | 記憶體儲存裝置、其記憶體控制器與有效資料識別方法 | |
CN106897026B (zh) | 非易失性存储器装置及其地址分类方法 | |
KR20190048453A (ko) | 저장 장치 및 메모리 시스템 | |
CN113590503A (zh) | 一种非挥发性记忆体存储器的垃圾回收方法与垃圾回收系统 | |
CN107102953B (zh) | 非易失性存储器装置及其迭代排序方法 | |
TWI501244B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
US20130219119A1 (en) | Writing new data of a first block size to a second block size using a write-write mode | |
US10733107B2 (en) | Non-volatile memory apparatus and address classification method thereof | |
US20200226058A1 (en) | Apparatus and method for checking valid data in memory system | |
CN113590502B (zh) | 一种非挥发性记忆体存储设备的垃圾回收方法与垃圾回收系统 | |
US8521946B2 (en) | Semiconductor disk devices and related methods of randomly accessing data | |
TWI651650B (zh) | 記憶體管理方法及使用所述方法的儲存控制器 | |
TWI749903B (zh) | 快閃記憶體控制器、記憶體裝置以及存取快閃記憶體模組之方法 | |
TWI553477B (zh) | 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 | |
US20220066921A1 (en) | Nonvolatile memory, memory system, and control method of nonvolatile memory |