TW201734794A - 非揮發性記憶體裝置及其操作方法 - Google Patents

非揮發性記憶體裝置及其操作方法 Download PDF

Info

Publication number
TW201734794A
TW201734794A TW105108740A TW105108740A TW201734794A TW 201734794 A TW201734794 A TW 201734794A TW 105108740 A TW105108740 A TW 105108740A TW 105108740 A TW105108740 A TW 105108740A TW 201734794 A TW201734794 A TW 201734794A
Authority
TW
Taiwan
Prior art keywords
block
controller
page
logical block
group
Prior art date
Application number
TW105108740A
Other languages
English (en)
Other versions
TWI599880B (zh
Inventor
黃勝輝
賴義麟
Original Assignee
威盛電子股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 威盛電子股份有限公司 filed Critical 威盛電子股份有限公司
Priority to TW105108740A priority Critical patent/TWI599880B/zh
Priority to CN201610292306.8A priority patent/CN106021013B/zh
Priority to US15/166,268 priority patent/US10108366B2/en
Application granted granted Critical
Publication of TWI599880B publication Critical patent/TWI599880B/zh
Publication of TW201734794A publication Critical patent/TW201734794A/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1048Adding 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0727Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/076Error or fault detection not based on redundancy by exceeding limits by exceeding a count or rate limit, e.g. word- or bit count limit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • G06F2212/2022Flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/46Caching storage objects of specific type in disk cache
    • G06F2212/466Metadata, control data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7204Capacity control, e.g. partitioning, end-of-life degradation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems

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)
  • Computer Security & Cryptography (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Techniques For Improving Reliability Of Storages (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)被讀取時,快閃記憶體的讀取方式會導致在同一區塊中相近於所述某一個記憶胞的其他記憶胞的位元資料可能發生非預期地改變。這即是所謂的資料讀取干擾(data read disturbance)。對於快閃記憶體的一個實體頁而言,在多次對此實體頁進行讀取操作的情形下,隨著時間的增加(或隨著讀取次數的增加),此實體頁發生錯誤的位元數量隨之增加。一般而言,快閃記憶體配置有錯誤檢查和糾正(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的實體位址。
由於資料讀取干擾(data read disturbance)的影響,在多次對快閃記憶體(非揮發性儲存電路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)被分配有一個群組讀取計數值RC_1,第二個邏輯塊位址群組(或子映射表SMT_2)被分配有一個群組讀取計數值RC_2,而第n個邏輯塊位址群組(或子映射表SMT_n)被分配有一個群組讀取計數值RC_n。這些群組讀取計數值RC_1~RC_n的初始值可以依照設計需求來決定。舉例來說,在一些實施例中,這些群組讀取計數值RC_1~RC_n的初始值可以是-15、0、10或是其他實數。這些群組讀取計數值RC_1~RC_n分別表示這些邏輯塊位址群組(或這些子映射表SMT_1~SMT_n)被讀取資料的次數。控制器110可以依據主機10的「讀」指令而觸發這些群組讀取計數值RC_1~RC_n的調整(步驟S230)。
在一些實施例中,當主機10發出「讀」指令給控制器110時,控制器110依照主記憶體120的映射表MT將此「讀」指令的目標邏輯塊位址轉換為目標實體塊位址,然後依照此「讀」指令存取非揮發性儲存電路130中由目標實體塊位址所定址的非揮發性儲存塊(實體塊)。在非揮發性儲存塊(實體塊)完成資料讀取操作後,控制器110可以在步驟S230中將這些群組讀取計數值RC_1~RC_n中所述目標邏輯塊位址所對應的讀取計數值增加一個步階值。所述步階值可以視設計需求來決定。舉例來說,所述步階值可以是1或其他實數。
舉例來說,假設主機10所發出「讀」指令的邏輯塊位址屬於第n個邏輯塊位址群組(或子映射表SMT_n),因此控制器110依照主記憶體120的子映射表SMT_n將此「讀」指令的目標邏輯塊位址轉換為目標實體塊位址,然後依照此「讀」指令存取非揮發性儲存電路130中由目標實體塊位址所定址的非揮發性儲存塊(實體塊)。在非揮發性儲存塊(實體塊)完成資料讀取操作後,控制器110可以將所述目標邏輯塊位址所對應的群組讀取計數值RC_n增加一個步階值。
於步驟S240中,控制器110可以檢查這些群組讀取計數值RC_1~RC_n是否超出預設範圍。所述預設範圍可以視設計需求來決定。若這些群組讀取計數值RC_1~RC_n都沒有超出預設範圍,則控制器110可以回到步驟S230,以便等待主機10所發出的下一個「讀」指令。當這些群組讀取計數值RC_1~RC_n中的一個讀取計數值超出預設範圍時,控制器110可以進行步驟S250,以對該讀取計數值所對應的某一個對應邏輯塊位址群組的邏輯塊位址所對應的非揮發性儲存塊進行掃描操作,以檢查錯誤位元數量。舉例來說(但不限於此),控制器110可以在步驟S240中比較這些群組讀取計數值RC_1~RC_n與一個門檻值,以判斷這些群組讀取計數值RC_1~RC_n與該預設範圍的關係。所述門檻值可以視設計需求來決定。假設控制器110發現第1個邏輯塊位址群組(或子映射表SMT_1)的群組讀取計數值RC_1大於該門檻值,因此控制器110可以對群組讀取計數值RC_1所對應的第1個邏輯塊位址群組(或子映射表SMT_1)的邏輯塊位址所對應的一個或多個非揮發性儲存塊(非揮發性儲存電路130的實體塊)進行掃描操作,以檢查錯誤位元數量。
步驟S230與步驟S240的實現方式不應受限於上述。例如,在另一些實施例中,當主機10發出「讀」指令給控制器110時,控制器110依照主記憶體120的映射表MT將此「讀」指令的目標邏輯塊位址轉換為目標實體塊位址,然後依照此「讀」指令存取非揮發性儲存電路130中由目標實體塊位址所定址的非揮發性儲存塊(實體塊)。在非揮發性儲存塊(實體塊)完成資料讀取操作後,控制器110可以在步驟S230中將這些群組讀取計數值RC_1~RC_n中所述目標邏輯塊位址所對應的讀取計數值減少一個步階值。舉例來說,假設主機10所發出「讀」指令的邏輯塊位址屬於第n個邏輯塊位址群組(或子映射表SMT_n),因此控制器110依照主記憶體120的子映射表SMT_n將此「讀」指令的目標邏輯塊位址轉換為目標實體塊位址,然後依照此「讀」指令存取非揮發性儲存電路130中由目標實體塊位址所定址的非揮發性儲存塊(實體塊)。在非揮發性儲存塊(實體塊)完成資料讀取操作後,控制器110可以將所述目標邏輯塊位址所對應的群組讀取計數值RC_n減少一個步階值。於步驟S240中,控制器110可以比較這些群組讀取計數值RC_1~RC_n與一個門檻值,以判斷這些群組讀取計數值RC_1~RC_n與該預設範圍的關係。所述門檻值可以視設計需求來決定。假設控制器110發現第1個邏輯塊位址群組(或子映射表SMT_1)的群組讀取計數值RC_1小於該門檻值,因此控制器110可以對群組讀取計數值RC_1所對應的第1個邏輯塊位址群組(或子映射表SMT_1)的邏輯塊位址所對應的一個或多個非揮發性儲存塊(非揮發性儲存電路130的實體塊)進行掃描操作(步驟S250),以檢查錯誤位元數量。
控制器110還可以在步驟S250中依據該掃描操作的結果而決定是否將對應邏輯塊位址群組的邏輯塊位址所對應的一個或多個非揮發性儲存塊進行一儲存塊資料搬移操作。舉例來說,假設該掃描操作的結果表示群組讀取計數值RC_1所對應的第1個邏輯塊位址群組(子映射表SMT_1)所對應的一個非揮發性儲存塊(非揮發性儲存電路130的某一個實體塊,在此稱為可疑儲存塊)的錯誤位元數量太多。控制器110可以在步驟S250中將第1個邏輯塊位址群組(子映射表SMT_1)所對應的所述可疑儲存塊進行儲存塊資料搬移操作。控制器110可以將所述可疑儲存塊的資料搬移至一個閒置儲存塊(亦即從自由塊池申請一個自由塊),以及控制器110可以將所述可疑儲存塊所對應的群組讀取計數值RC_1重置為初始值。所述初始值可以視設計需求來決定。舉例來說,所述初始值可以是0或其他實數。在將可疑儲存塊的資料搬移至閒置儲存塊後,子映射表SMT_1被更新,以便將所述閒置儲存塊取代所述可疑儲存塊,並將所述可疑儲存塊釋放回自由塊池中。
因此,本實施例所述非揮發性記憶體裝置100及其操作方法可以記錄多個邏輯塊位址群組(或子映射表SMT_1~SMT_n)各自的群組讀取計數值RC_1~RC_n。這些群組讀取計數值RC_1~RC_n可以表示這些邏輯塊位址群組被進行讀取操作的次數。在長時間(多次)對一個實體塊進行讀取操作的情形下,隨著時間(讀取次數)的增加,此實體塊發生錯誤的位元數量隨之增加。控制器110可以依照這些群組讀取計數值RC_1~RC_n來彈性決定掃描操作的時機,以便適時地檢查對應儲存塊(實體塊)發生錯誤的位元數量。依據掃描操作的結果,控制器可以動態決定是否進行儲存塊資料搬移操作,以避免儲存塊(實體塊)資料遺失。
圖3是依照本發明另一實施例說明圖1所示非揮發性記憶體裝置100的操作方法示意圖。一般而言,控制器110在處理完主機10的目前指令後,控制器110會進入閒置期間來等待主機10的下一個指令。請參照圖1與圖3,在進入閒置期間後,控制器110可以進行步驟S310,以便從多個邏輯塊位址群組(或子映射表SMT_1~SMT_n)各自的群組讀取計數值RC_1~RC_n中找出最大者。於步驟S320中,控制器110可以檢查步驟S310所找出的最大讀取計數值是否超出門檻值。所述門檻值可以視設計需求來決定。當步驟S310所找出的最大讀取計數值沒有超出門檻值時,結束圖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所找出最大讀取計數值是群組讀取計數值RC_1,因此控制器110可以於步驟S251中隨機地(或依某一規則)從第一個邏輯塊位址群組(或子映射表SMT_1)所對應的多個非揮發性儲存塊(非揮發性儲存電路130的實體塊)中選擇一個實體頁,以及檢查此經選擇實體頁的錯誤位元數量。當此經選擇實體頁的錯誤位元數量小於第一門檻值時,圖3所示流程會被結束(等待下一個閒置期間)。當此經選擇實體頁的錯誤位元數量大於第一門檻值時,表示此經選擇實體頁所屬的非揮發性儲存塊(非揮發性儲存電路130的實體塊)是可疑儲存塊,因此控制器110可以進行步驟S253以進行細掃描。
控制器110可以依照粗略掃描的結果來決定是否將對應邏輯塊位址群組所對應的非揮發性儲存塊的其中一個可疑儲存塊進行細掃描。於步驟S253中,控制器110可以對此可疑儲存塊進行細掃描(或檢查此可疑儲存塊的全部實體頁)。在一實施例中,控制器110可以僅對此可疑儲存塊的有效實體頁進行細掃描。上述有效實體頁位址與邏輯位址之對應關係可被記錄於一表格(table)中,也就是說,記憶體之每一有效實體頁位址皆可被對應至某一邏輯位址。舉例來說,可藉由查表先得知此可疑儲存塊的有效實體頁位址,再對上述有效實體頁進行細掃描。於步驟S254中,控制器110可以從細掃描的結果而獲知實體頁的錯誤位元數量是否大於第二門檻值。所述第二門檻值可以視設計需求來決定。舉例來說(但不限於此),假設步驟S310所找出最大讀取計數值是群組讀取計數值RC_2,計數值RC_2對應的實體塊其中有一實體頁的錯誤位元數量大於第一門檻值(滿足步驟S252與S253)。當步驟S254判斷此可疑儲存塊的所有實體頁的錯誤位元數量均小於第二門檻值時,則圖3所示流程會被結束(等待下一個閒置期間),此時計數值RC_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)判斷群組讀取計數值RC_1超出預設範圍(例如大於門檻值),因此將群組讀取計數值RC_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中使用一個頁指標器,此頁指標器可以指向群組讀取計數值RC_1的對應邏輯塊位址群組所對應的非揮發性儲存塊Block_A、Block_B與Block_C其中一個儲存塊的一個實體頁。例如,此頁指標器可以指向非揮發性儲存塊Block_A的一個實體頁Page_A0。在步驟S251中,控制器110可以檢查頁指標器所指的實體頁Page_A0的錯誤位元數量。當頁指標器所指的實體頁Page_A0的錯誤位元數量小於第一門檻值時,控制器110可以將頁指標器改指向群組讀取計數值RC_1的對應邏輯塊位址群組所對應的非揮發性儲存塊Block_A、Block_B與Block_C其中另一個儲存塊的實體頁(例如非揮發性儲存塊Block_B的一個實體頁Page_B0)。控制器110可以檢查頁指標器所指的實體頁Page_B0的錯誤位元數量。當頁指標器所指的實體頁Page_B0的錯誤位元數量小於第一門檻值時,控制器110可以將頁指標器改指向群組讀取計數值RC_1的對應邏輯塊位址群組所對應的非揮發性儲存塊Block_A、Block_B與Block_C其中另一個儲存塊的實體頁(例如非揮發性儲存塊Block_C的一個實體頁Page_C0)。控制器110可以檢查頁指標器所指的實體頁Page_C0的錯誤位元數量。當頁指標器所指的實體頁Page_C0的錯誤位元數量小於第一門檻值時,控制器110可以將頁指標器改指向群組讀取計數值RC_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所示流程會被結束(等待再下一個閒置期間)。以此類推,直到群組讀取計數值RC_1的對應邏輯塊位址群組所對應的非揮發性儲存塊Block_A、Block_B與Block_C的所有實體頁都完成檢查,且非揮發性儲存塊Block_A、Block_B與Block_C的所有實體頁的錯誤位元數量都小於第一門檻值,則所述粗略掃描即被完成。當群組讀取計數值RC_1的對應邏輯塊位址群組所對應的非揮發性儲存塊Block_A、Block_B與Block_C的所有實體頁均完成粗略掃描時,亦即當非揮發性儲存塊Block_A、Block_B與Block_C的所有實體頁的錯誤位元數量都小於第一門檻值時,則控制器110可以將群組讀取計數值RC_1重置為初始值。
在進行粗略掃描的過程中,當發現群組讀取計數值RC_1的對應邏輯塊位址群組所對應的非揮發性儲存塊Block_A、Block_B與Block_C的一個實體頁的錯誤位元數量大於第一門檻值時,亦即步驟S252的判斷結果為「是」,則控制器110可以對此實體頁所屬的可疑儲存塊進行細掃描(步驟S253)。舉例來說,當頁指標器所指的實體頁Page_A1的錯誤位元數量大於第一門檻值時,由控制器110可以將實體頁Page_A1所屬的儲存塊Block_A進行細掃描。
步驟S251所述粗略掃描的實施方式不應受限於上述內容。舉例來說,在另一些實施例中,步驟S251所述粗略掃描可能包括下述操作。控制器110可以在步驟S251中使用一個頁指標器,此頁指標器可以指向群組讀取計數值RC_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可以將頁指標器改指向群組讀取計數值RC_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可以將頁指標器改指向群組讀取計數值RC_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可以將頁指標器改指向群組讀取計數值RC_1的對應邏輯塊位址群組所對應的非揮發性儲存塊Block_A、Block_B與Block_C其中另一個儲存塊的實體頁(例如非揮發性儲存塊Block_B的一個實體頁Page_B2)。以此類推,直到群組讀取計數值RC_1的對應邏輯塊位址群組所對應的非揮發性儲存塊Block_A、Block_B與Block_C的所有實體頁都完成檢查,且非揮發性儲存塊Block_A、Block_B與Block_C的所有實體頁的錯誤位元數量都小於第一門檻值,則所述粗略掃描即被完成。當群組讀取計數值RC_1的對應邏輯塊位址群組所對應的非揮發性儲存塊Block_A、Block_B與Block_C的所有實體頁均完成粗略掃描時,控制器110可以將群組讀取計數值RC_1重置為初始值。在進行粗略掃描的過程中,當頁指標器所指的實體頁與所述至少一個鄰近實體頁的錯誤位元數量大於第一門檻值時,控制器110可以將此頁指標器所指的實體頁所屬的可疑儲存塊進行細掃描(步驟S253)。
在一些實施例中,步驟S251所述粗略掃描還可能包括下述操作。上述頁指標器將依據一查表指向非揮發性儲存塊中的實體頁(該些實體頁可為相鄰,也可為不相鄰,然不以此為限),上述查表中定義了非揮發性儲存塊中需進行粗略掃描的實體頁。在一實施例中,上述查表可定義至少一非揮發性儲存塊的多個實體頁,也可定義多個非揮發性儲存塊的多個實體頁。舉例來說,控制器110可依據查表Table1(未繪示)依序檢查非揮發性儲存塊Block_A中實體頁的錯誤位元數量。依據查表Table1,當頁指標器所指的非揮發性儲存塊Block_A中實體頁的錯誤位元數量小於第一門檻值時,控制器110可以將頁指標器改指向群組讀取計數值RC_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的判斷結果為「否」,則結束圖3所示流程(等待下一個閒置期間)。當頁指標器所對應的儲存塊Block_A所屬的所有實體頁Page_A0~Page_A255的其中一個實體頁(例如實體頁Page_A3)的有效資料的錯誤位元數量大於第二門檻值時,控制器110可以將頁指標器所對應的儲存塊Block_A進行「儲存塊資料搬移操作」(步驟S255)以將儲存塊Block_A的資料搬移至閒置儲存塊。在完成「儲存塊資料搬移操作」後,控制器110可以將對應邏輯塊位址群組(或子映射表SMT_1)所對應的群組讀取計數值RC_1重置為初始值。
本案所述「掃描操作」的實現方式不應限於圖3所述。例如在另一些實施例中,所述「掃描操作」可能包括下述操作。在此假設群組讀取計數值RC_1超出預設範圍(例如大於門檻值),因此群組讀取計數值RC_1的第一邏輯塊位址群組(或子映射表SMT_1)所對應的非揮發性儲存塊(實體塊)Block_A、Block_B與Block_C被繪示於圖5。因為群組讀取計數值RC_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)所對應的群組讀取計數值RC_1重置為初始值。當頁指標器所指的實體頁(例如實體頁Page_C0)的錯誤位元數量大於門檻值時,控制器110可以將該實體頁所屬的儲存塊(例如儲存塊Block_C)進行「儲存塊資料搬移操作」,以將儲存塊的資料搬移至閒置儲存塊。在一實施例中,當該實體頁所屬的儲存塊(例如儲存塊Block_C)之資料被搬移後,該儲存塊(例如儲存塊Block_C)所對應的群組讀取計數值RC_1重置為初始值。
在又一些實施例中,所述「掃描操作」可能包括下述操作。在此假設群組讀取計數值RC_1超出預設範圍(例如大於門檻值),因此群組讀取計數值RC_1的第一邏輯塊位址群組(或子映射表SMT_1)所對應的非揮發性儲存塊(實體塊)Block_A、Block_B與Block_C被繪示於圖5。因為群組讀取計數值RC_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)所對應的群組讀取計數值RC_1重置為初始值。當塊指標器所指的儲存塊(例如實體頁儲存塊Block_C)的錯誤位元數量大於門檻值時,控制器110可以將塊指標器所指的儲存塊Block_C進行「儲存塊資料搬移操作」,以將儲存塊Block_C的資料搬移至閒置儲存塊。在一實施例中,當上述儲存塊(例如實體頁儲存塊Block_C)之資料被搬移後,該儲存塊(例如實體頁儲存塊Block_C)所對應的群組讀取計數值RC_1重置為初始值。
在另一些實施例中,在某一實體塊完成資料讀取操作後,控制器110可以將這些群組讀取計數值RC_1~RC_n中所述某一實體塊所對應的讀取計數值「減少」一個步階值。因此在另一些實施例中,圖3所示一個或多個步驟可以被對應改變。例如,在進入閒置期間後,控制器110可以在步驟S310中從多個邏輯塊位址群組(或子映射表SMT_1~SMT_n)各自的群組讀取計數值RC_1~RC_n中找出「最小者」。控制器110可以於步驟S320中檢查步驟S310所找出的「最小讀取計數值」是否「小於」門檻值。所述門檻值可以視設計需求來決定。當步驟S310所找出的「最小讀取計數值」沒有「小於」門檻值時,結束圖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)各自的群組讀取計數值RC_1~RC_n。這些群組讀取計數值RC_1~RC_n可以表示這些邏輯塊位址群組被進行讀取操作的次數。在長時間(多次)對一個實體塊進行讀取操作的情形下,隨著時間(讀取次數)的增加,此實體塊發生錯誤的位元數量將隨之增加。非揮發性記憶體裝置100的控制器110可以依照這些群組讀取計數值RC_1~RC_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所示非揮發性儲存電路的部份非揮發性儲存塊(實體塊)的示意圖。
S210~S250‧‧‧步驟

Claims (40)

  1. 一種非揮發性記憶體裝置,包括: 一非揮發性儲存電路,具有由多個實體塊位址所定址的多個非揮發性儲存塊; 一主記憶體,用以存放一映射表,其中該映射表用以記錄多個邏輯塊位址與該些實體塊位址之轉換關係;以及 一控制器,耦接至該主記憶體與該非揮發性儲存電路,其中該控制器將該些邏輯塊位址分群為多個邏輯塊位址群組,而該些邏輯塊位址群組的每一個包括多個邏輯塊位址;該些邏輯塊位址群組的每一個被分配有一個群組讀取計數值;該些群組讀取計數值的調整是由一主機的讀指令所觸發;當該些群組讀取計數值中的一個讀取計數值超出一預設範圍時,該控制器對該讀取計數值所對應的一對應邏輯塊位址群組的該些邏輯塊位址所對應的該些非揮發性儲存塊進行一掃描操作以檢查錯誤位元數量;以及該控制器依據該掃描操作的結果而決定是否對該對應邏輯塊位址群組的該些邏輯塊位址所對應的該些非揮發性儲存塊的其中一個儲存塊進行一儲存塊資料搬移操作。
  2. 如申請專利範圍第1項所述的非揮發性記憶體裝置,其中當該主機發出該讀指令給該控制器時,該控制器依照該映射表將該讀指令的一目標邏輯塊位址轉換為一目標實體塊位址,依照該讀指令存取該目標實體塊位址所定址的一非揮發性儲存塊,以及將該些群組讀取計數值中該目標邏輯塊位址所對應的一讀取計數值增加一步階值。
  3. 如申請專利範圍第1項所述的非揮發性記憶體裝置,其中當該主機發出該讀指令給該控制器時,該控制器依照該映射表將該讀指令的一目標邏輯塊位址轉換為一目標實體塊位址,依照該讀指令存取該目標實體塊位址所定址的一非揮發性儲存塊,以及將該些群組讀取計數值中該目標邏輯塊位址所對應的一讀取計數值減少一步階值。
  4. 如申請專利範圍第1項所述的非揮發性記憶體裝置,其中該控制器比較該些群組讀取計數值與一門檻值以判斷該些群組讀取計數值與該預設範圍的關係;當該些群組讀取計數值中的一個讀取計數值大於該門檻值時,該控制器對該讀取計數值所對應的該對應邏輯塊位址群組的該些邏輯塊位址所對應的該些非揮發性儲存塊進行該掃描操作以檢查錯誤位元數量。
  5. 如申請專利範圍第1項所述的非揮發性記憶體裝置,其中該控制器比較該些群組讀取計數值與一門檻值以判斷該些群組讀取計數值與該預設範圍的關係;當該些群組讀取計數值中的一個讀取計數值小於該門檻值時,該控制器對該讀取計數值所對應的該對應邏輯塊位址群組的該些邏輯塊位址所對應的該些非揮發性儲存塊進行該掃描操作以檢查錯誤位元數量。
  6. 如申請專利範圍第1項所述的非揮發性記憶體裝置,其中該掃描操作包括: 由該控制器對該對應邏輯塊位址群組所對應的該些非揮發性儲存塊進行一粗略掃描; 由該控制器依照該粗略掃描的結果來決定是否對該對應邏輯塊位址群組所對應的該些非揮發性儲存塊的其中一個可疑儲存塊進行一細掃描;以及 由該控制器依照該細掃描的結果來決定是否對該可疑儲存塊進行該儲存塊資料搬移操作,以將該可疑儲存塊的資料搬移至一閒置儲存塊。
  7. 如申請專利範圍第6項所述的非揮發性記憶體裝置,其中該粗略掃描包括: 由一頁指標器指向該對應邏輯塊位址群組所對應的該些非揮發性儲存塊其中一個儲存塊的一實體頁; 由該控制器檢查該頁指標器所指的該實體頁以及至少一鄰近實體頁的錯誤位元數量;以及 當該頁指標器所指的該實體頁與所述至少一鄰近實體頁的該錯誤位元數量小於一第一門檻值時,由該控制器將該頁指標器改指向該對應邏輯塊位址群組所對應的該些非揮發性儲存塊其中另一個儲存塊的一實體頁。
  8. 如申請專利範圍第7項所述的非揮發性記憶體裝置,其中當該頁指標器所指的該實體頁與所述至少一鄰近實體頁的該錯誤位元數量大於該第一門檻值時,該控制器將該實體頁所屬的該儲存塊進行該細掃描。
  9. 如申請專利範圍第6項所述的非揮發性記憶體裝置,其中該粗略掃描包括: 由一頁指標器指向該對應邏輯塊位址群組所對應的該些非揮發性儲存塊其中一個儲存塊的一實體頁; 由該控制器檢查該頁指標器所指的該實體頁的錯誤位元數量;以及 當該頁指標器所指的該實體頁的該錯誤位元數量小於一第一門檻值時,由該控制器將該頁指標器改指向該對應邏輯塊位址群組所對應的該些非揮發性儲存塊其中另一個儲存塊的一實體頁。
  10. 如申請專利範圍第9項所述的非揮發性記憶體裝置,其中當該頁指標器所指的該實體頁的該錯誤位元數量大於該第一門檻值時,由該控制器將該實體頁所屬的該儲存塊進行該細掃描。
  11. 如申請專利範圍第6項所述的非揮發性記憶體裝置,其中當該對應邏輯塊位址群組所對應的該些非揮發性儲存塊的所有實體頁均完成該粗略掃描時,由該控制器將該對應邏輯塊位址群組所對應的該讀取計數值重置為一初始值。
  12. 如申請專利範圍第6項所述的非揮發性記憶體裝置,其中該細掃描包括: 由一頁指標器指向該對應邏輯塊位址群組所對應的該些非揮發性儲存塊其中一個儲存塊的一實體頁; 由該控制器檢查該頁指標器所指的該實體頁所屬的該儲存塊的有效實體頁各自的錯誤位元數量;以及 當該頁指標器所對應的該儲存塊所屬的有效實體頁各自的該錯誤位元數量均小於一第二門檻值時,該控制器不重置該對應邏輯塊位址群組所對應的該讀取計數值。
  13. 如申請專利範圍第6項所述的非揮發性記憶體裝置,其中該細掃描包括: 由一頁指標器指向該對應邏輯塊位址群組所對應的該些非揮發性儲存塊其中一個儲存塊的一實體頁; 由該控制器檢查該頁指標器所指的該實體頁所屬的該儲存塊的所有實體頁各自的錯誤位元數量;以及 當該頁指標器所對應的該儲存塊所屬的所有實體頁各自的該錯誤位元數量均小於一第二門檻值時,該控制器不重置該對應邏輯塊位址群組所對應的該讀取計數值。
  14. 如申請專利範圍第6項所述的非揮發性記憶體裝置,其中當該可疑儲存塊的其中一個實體頁的該錯誤位元數量大於一第二門檻值時,由該控制器將該可疑儲存塊進行該儲存塊資料搬移操作以將該可疑儲存塊的資料搬移至該閒置儲存塊,以及由該控制器將該對應邏輯塊位址群組所對應的該讀取計數值重置為該初始值。
  15. 如申請專利範圍第1項所述的非揮發性記憶體裝置,其中該掃描操作包括: 由一頁指標器指向該對應邏輯塊位址群組所對應的該些非揮發性儲存塊其中一個儲存塊的一實體頁; 由該控制器檢查該頁指標器所指的該實體頁的錯誤位元數量;以及 當該頁指標器所指的該實體頁的該錯誤位元數量小於一門檻值時,由該控制器將該頁指標器改指向該對應邏輯塊位址群組所對應的該些非揮發性儲存塊其中另一個儲存塊的一實體頁。
  16. 如申請專利範圍第15項所述的非揮發性記憶體裝置,其中當該對應邏輯塊位址群組所對應的該些非揮發性儲存塊的所有實體頁均完成該掃描操作時,由該控制器將該對應邏輯塊位址群組所對應的該讀取計數值重置為一初始值。
  17. 如申請專利範圍第15項所述的非揮發性記憶體裝置,其中當該頁指標器所指的該實體頁的該錯誤位元數量大於該門檻值時,由該控制器將該實體頁所屬的該儲存塊進行該儲存塊資料搬移操作,以將該儲存塊的資料搬移至一閒置儲存塊。
  18. 如申請專利範圍第1項所述的非揮發性記憶體裝置,其中該掃描操作包括: 由一塊指標器指向該對應邏輯塊位址群組所對應的該些非揮發性儲存塊其中一個儲存塊; 由該控制器檢查該塊指標器所指的該儲存塊的錯誤位元數量;以及 當該塊指標器所指的該儲存塊的該錯誤位元數量小於一門檻值時,由該控制器將該塊指標器改指向該對應邏輯塊位址群組所對應的該些非揮發性儲存塊其中另一個儲存塊。
  19. 如申請專利範圍第18項所述的非揮發性記憶體裝置,其中當該對應邏輯塊位址群組所對應的該些非揮發性儲存塊均完成該掃描操作時,由該控制器將該對應邏輯塊位址群組所對應的該讀取計數值重置為一初始值。
  20. 如申請專利範圍第18項所述的非揮發性記憶體裝置,其中當該塊指標器所指的該儲存塊的該錯誤位元數量大於該門檻值時,由該控制器將該塊指標器所指的該儲存塊進行該儲存塊資料搬移操作,以將該儲存塊的資料搬移至一閒置儲存塊。
  21. 一種非揮發性記憶體裝置的操作方法,包括: 配置一非揮發性儲存電路,其中該非揮發性儲存電路具有由多個實體塊位址所定址的多個非揮發性儲存塊; 配置一主記憶體以存放一映射表,其中該映射表用以記錄多個邏輯塊位址與該些實體塊位址之轉換關係; 由一控制器將該些邏輯塊位址分群為多個邏輯塊位址群組,其中該些邏輯塊位址群組的每一個包括多個邏輯塊位址,以及該些邏輯塊位址群組的每一個被分配有一個群組讀取計數值; 依據一主機的讀指令而觸發該些群組讀取計數值的調整; 當該些群組讀取計數值中的一個讀取計數值超出一預設範圍時,由該控制器對該讀取計數值所對應的一對應邏輯塊位址群組的該些邏輯塊位址所對應的該些非揮發性儲存塊進行一掃描操作,以檢查錯誤位元數量;以及 由該控制器依據該掃描操作的結果而決定是否對該對應邏輯塊位址群組的該些邏輯塊位址所對應的該些非揮發性儲存塊的其中一個儲存塊進行一儲存塊資料搬移操作。
  22. 如申請專利範圍第21項所述的非揮發性記憶體裝置的操作方法,其中所述依據該主機的讀指令而觸發該些群組讀取計數值的調整之步驟包括: 當該主機發出該讀指令給該控制器時,由該控制器依照該映射表將該讀指令的一目標邏輯塊位址轉換為一目標實體塊位址,依照該讀指令存取該目標實體塊位址所定址的一非揮發性儲存塊,以及將該些群組讀取計數值中該目標邏輯塊位址所對應的一讀取計數值增加一步階值。
  23. 如申請專利範圍第21項所述的非揮發性記憶體裝置的操作方法,其中所述依據該主機的讀指令而觸發該些群組讀取計數值的調整之步驟包括: 當該主機發出該讀指令給該控制器時,由該控制器依照該映射表將該讀指令的一目標邏輯塊位址轉換為一目標實體塊位址,依照該讀指令存取該目標實體塊位址所定址的一非揮發性儲存塊,以及將該些群組讀取計數值中該目標邏輯塊位址所對應的一讀取計數值減少一步階值。
  24. 如申請專利範圍第21項所述的非揮發性記憶體裝置的操作方法,更包括: 由該控制器比較該些群組讀取計數值與一門檻值,以判斷該些群組讀取計數值與該預設範圍的關係; 當該些群組讀取計數值中的一個讀取計數值大於該門檻值時,由該控制器對該讀取計數值所對應的該對應邏輯塊位址群組的該些邏輯塊位址所對應的該些非揮發性儲存塊進行該掃描操作,以檢查錯誤位元數量。
  25. 如申請專利範圍第21項所述的非揮發性記憶體裝置的操作方法,更包括:      由該控制器比較該些群組讀取計數值與一門檻值,以判斷該些群組讀取計數值與該預設範圍的關係;      當該些群組讀取計數值中的一個讀取計數值小於該門檻值時,由該控制器對該讀取計數值所對應的該對應邏輯塊位址群組的該些邏輯塊位址所對應的該些非揮發性儲存塊進行該掃描操作以檢查錯誤位元數量。
  26. 如申請專利範圍第21項所述的非揮發性記憶體裝置的操作方法,其中該掃描操作包括: 由該控制器對該對應邏輯塊位址群組所對應的該些非揮發性儲存塊進行一粗略掃描; 由該控制器依照該粗略掃描的結果來決定是否對該對應邏輯塊位址群組所對應的該些非揮發性儲存塊的其中一個可疑儲存塊進行一細掃描;以及 由該控制器依照該細掃描的結果來決定是否對該可疑儲存塊進行該儲存塊資料搬移操作,以將該可疑儲存塊的資料搬移至一閒置儲存塊。
  27. 如申請專利範圍第26項所述的非揮發性記憶體裝置的操作方法,其中該粗略掃描包括: 由一頁指標器指向該對應邏輯塊位址群組所對應的該些非揮發性儲存塊其中一個儲存塊的一實體頁; 由該控制器檢查該頁指標器所指的該實體頁與至少一鄰近實體頁的錯誤位元數量;以及 當該頁指標器所指的該實體頁與所述至少一鄰近實體頁的該錯誤位元數量小於一第一門檻值時,由該控制器將該頁指標器改指向該對應邏輯塊位址群組所對應的該些非揮發性儲存塊其中另一個儲存塊的一實體頁。
  28. 如申請專利範圍第27項所述的非揮發性記憶體裝置的操作方法,其中當該頁指標器所指的該實體頁與所述至少一鄰近實體頁的該錯誤位元數量大於該第一門檻值時,由該控制器將該實體頁所屬的該儲存塊進行該細掃描。
  29. 如申請專利範圍第26項所述的非揮發性記憶體裝置的操作方法,其中該粗略掃描包括: 由一頁指標器指向該對應邏輯塊位址群組所對應的該些非揮發性儲存塊其中一個儲存塊的一實體頁; 由該控制器檢查該頁指標器所指的該實體頁的錯誤位元數量;以及 當該頁指標器所指的該實體頁的該錯誤位元數量小於一第一門檻值時,由該控制器將該頁指標器改指向該對應邏輯塊位址群組所對應的該些非揮發性儲存塊其中另一個儲存塊的一實體頁。
  30. 如申請專利範圍第29項所述的非揮發性記憶體裝置的操作方法,其中當該頁指標器所指的該實體頁的該錯誤位元數量大於該第一門檻值時,由該控制器將該實體頁所屬的該儲存塊進行該細掃描。
  31. 如申請專利範圍第26項所述的非揮發性記憶體裝置的操作方法,其中當該對應邏輯塊位址群組所對應的該些非揮發性儲存塊的所有實體頁均完成該粗略掃描時,由該控制器將該對應邏輯塊位址群組所對應的該讀取計數值重置為一初始值。
  32. 如申請專利範圍第26項所述的非揮發性記憶體裝置的操作方法,其中該細掃描包括: 由一頁指標器指向該對應邏輯塊位址群組所對應的該些非揮發性儲存塊其中一個儲存塊的一實體頁; 由該控制器檢查該頁指標器所指的該實體頁所屬的該儲存塊的有效實體頁各自的錯誤位元數量;以及 當該頁指標器所對應的該儲存塊所屬的有效實體頁各自的該錯誤位元數量均小於一第二門檻值時,該控制器不重置該對應邏輯塊位址群組所對應的該讀取計數值。
  33. 如申請專利範圍第26項所述的非揮發性記憶體裝置的操作方法,其中該細掃描包括: 由一頁指標器指向該對應邏輯塊位址群組所對應的該些非揮發性儲存塊其中一個儲存塊的一實體頁; 由該控制器檢查該頁指標器所指的該實體頁所屬的該儲存塊的所有實體頁各自的錯誤位元數量;以及 當該頁指標器所對應的該儲存塊所屬的所有實體頁各自的該錯誤位元數量均小於一第二門檻值時,該控制器不重置該對應邏輯塊位址群組所對應的該讀取計數值。
  34. 如申請專利範圍第26項所述的非揮發性記憶體裝置的操作方法,其中當該可疑儲存塊的其中一個實體頁的該錯誤位元數量大於一第二門檻值時,由該控制器將該可疑儲存塊進行該儲存塊資料搬移操作以將該可疑儲存塊的資料搬移至該閒置儲存塊,以及由該控制器將該對應邏輯塊位址群組所對應的該讀取計數值重置為該初始值。
  35. 如申請專利範圍第21項所述的非揮發性記憶體裝置的操作方法,其中該掃描操作包括: 由一頁指標器指向該對應邏輯塊位址群組所對應的該些非揮發性儲存塊其中一個儲存塊的一實體頁; 由該控制器檢查該頁指標器所指的該實體頁的錯誤位元數量;以及 當該頁指標器所指的該實體頁的該錯誤位元數量小於一門檻值時,由該控制器將該頁指標器改指向該對應邏輯塊位址群組所對應的該些非揮發性儲存塊其中另一個儲存塊的一實體頁。
  36. 如申請專利範圍第35項所述的非揮發性記憶體裝置的操作方法,其中當該對應邏輯塊位址群組所對應的該些非揮發性儲存塊的所有實體頁均完成該掃描操作時,由該控制器將該對應邏輯塊位址群組所對應的該讀取計數值重置為一初始值。
  37. 如申請專利範圍第35項所述的非揮發性記憶體裝置的操作方法,其中當該頁指標器所指的該實體頁的該錯誤位元數量大於該門檻值時,由該控制器將該實體頁所屬的該儲存塊進行該儲存塊資料搬移操作,以將該儲存塊的資料搬移至一閒置儲存塊。
  38. 如申請專利範圍第21項所述的非揮發性記憶體裝置的操作方法,其中該掃描操作包括: 由一塊指標器指向該對應邏輯塊位址群組所對應的該些非揮發性儲存塊其中一個儲存塊; 由該控制器檢查該塊指標器所指的該儲存塊的錯誤位元數量;以及 當該塊指標器所指的該儲存塊的該錯誤位元數量小於一門檻值時,由該控制器將該塊指標器改指向該對應邏輯塊位址群組所對應的該些非揮發性儲存塊其中另一個儲存塊。
  39. 如申請專利範圍第38項所述的非揮發性記憶體裝置的操作方法,其中當該對應邏輯塊位址群組所對應的該些非揮發性儲存塊均完成該掃描操作時,由該控制器將該對應邏輯塊位址群組所對應的該讀取計數值重置為一初始值。
  40. 如申請專利範圍第38項所述的非揮發性記憶體裝置的操作方法,其中當該塊指標器所指的該儲存塊的該錯誤位元數量大於該門檻值時,由該控制器將該塊指標器所指的該儲存塊進行該儲存塊資料搬移操作,以將該儲存塊的資料搬移至一閒置儲存塊。
TW105108740A 2016-03-22 2016-03-22 非揮發性記憶體裝置及其操作方法 TWI599880B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
TW105108740A TWI599880B (zh) 2016-03-22 2016-03-22 非揮發性記憶體裝置及其操作方法
CN201610292306.8A CN106021013B (zh) 2016-03-22 2016-05-05 非挥发性存储器装置及其操作方法
US15/166,268 US10108366B2 (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
TW105108740A TWI599880B (zh) 2016-03-22 2016-03-22 非揮發性記憶體裝置及其操作方法

Publications (2)

Publication Number Publication Date
TWI599880B TWI599880B (zh) 2017-09-21
TW201734794A true TW201734794A (zh) 2017-10-01

Family

ID=57081935

Family Applications (1)

Application Number Title Priority Date Filing Date
TW105108740A TWI599880B (zh) 2016-03-22 2016-03-22 非揮發性記憶體裝置及其操作方法

Country Status (3)

Country Link
US (1) US10108366B2 (zh)
CN (1) CN106021013B (zh)
TW (1) TWI599880B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI796882B (zh) * 2021-12-20 2023-03-21 群聯電子股份有限公司 讀取干擾檢查方法、記憶體儲存裝置及記憶體控制電路單元

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10835387B2 (en) 2010-09-03 2020-11-17 Globus Medical Inc. Expandable fusion device and method of installation thereof
US9946490B2 (en) * 2016-07-28 2018-04-17 Western Digital Technologies, Inc. Bit-level indirection defragmentation
CN106776095B (zh) * 2016-12-22 2020-01-03 湖南国科微电子股份有限公司 Ssd固态硬盘数据可靠性智能检测方法及检测装置
US10372382B2 (en) * 2016-12-29 2019-08-06 Western Digital Technologies, Inc. Methods and apparatus for read disturb detection based on logical domain
CN108877856B (zh) 2017-05-10 2021-02-19 慧荣科技股份有限公司 储存装置、记录方法以及预载方法
CN108877858B (zh) * 2017-05-10 2021-02-19 慧荣科技股份有限公司 储存装置以及刷新方法
KR102233400B1 (ko) * 2017-05-29 2021-03-26 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
TWI679534B (zh) * 2017-09-18 2019-12-11 慧榮科技股份有限公司 資料儲存裝置以及資料儲存方法
US10446243B2 (en) * 2017-12-18 2019-10-15 Macronix International Co., Ltd. Storage device and associated control method to determine target memory blocks for probe operation
TWI792073B (zh) 2017-12-28 2023-02-11 慧榮科技股份有限公司 快閃記憶體控制器、安全數位卡、使用於快閃記憶體控制器的方法以及存取安全數位卡的主機
US10866746B2 (en) 2017-12-28 2020-12-15 Silicon Motion Inc. Memory addressing methods and associated controller, memory device and host
KR102578188B1 (ko) 2018-05-15 2023-09-14 에스케이하이닉스 주식회사 메모리 컨트롤러 및 이의 동작 방법
KR20200021821A (ko) * 2018-08-21 2020-03-02 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법
US11068365B2 (en) * 2018-08-23 2021-07-20 Micron Technology, Inc. Data recovery within a memory sub-system without moving or processing the data through a host
US10691377B2 (en) 2018-09-21 2020-06-23 Micron Technology, Inc. Adjusting scan event thresholds to mitigate memory errors
KR20200060053A (ko) * 2018-11-22 2020-05-29 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
KR20200078047A (ko) * 2018-12-21 2020-07-01 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
CN111367464B (zh) * 2018-12-25 2024-02-20 兆易创新科技集团股份有限公司 一种存储空间管理方法及装置
TWI709854B (zh) * 2019-01-21 2020-11-11 慧榮科技股份有限公司 資料儲存裝置及用於存取邏輯至物理位址映射表之方法
US11422942B2 (en) 2019-04-02 2022-08-23 SK Hynix Inc. Memory system for utilizing a memory included in an external device
KR20200137181A (ko) 2019-05-29 2020-12-09 에스케이하이닉스 주식회사 메모리 시스템에서 맵정보를 전송하는 장치
US11416408B2 (en) 2019-07-05 2022-08-16 SK Hynix Inc. Memory system, memory controller and method for operating memory system
KR20200123684A (ko) 2019-04-22 2020-10-30 에스케이하이닉스 주식회사 메모리 시스템에서 맵 정보를 전송하는 장치
KR20200139433A (ko) 2019-06-04 2020-12-14 에스케이하이닉스 주식회사 컨트롤러의 동작 방법 및 메모리 시스템
KR20210004322A (ko) 2019-07-04 2021-01-13 에스케이하이닉스 주식회사 메모리 시스템에서 맵정보 및 리드카운트를 전송하는 장치 및 방법
TWI719550B (zh) * 2019-07-23 2021-02-21 慧榮科技股份有限公司 記憶體控制器、資料儲存裝置及其開卡方法
US11567670B2 (en) * 2019-10-25 2023-01-31 Samsung Electronics Co., Ltd. Firmware-based SSD block failure prediction and avoidance scheme
CN111638994B (zh) * 2020-06-01 2021-05-04 长江存储科技有限责任公司 一种闪存存储器及其错误比特计数检测方法和系统
US11500753B2 (en) 2020-09-02 2022-11-15 Samsung Electronics Co., Ltd. Multi-non-volatile memory solid state drive block-level failure prediction with unified device log

Family Cites Families (19)

* Cited by examiner, † Cited by third party
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
US6763424B2 (en) 2001-01-19 2004-07-13 Sandisk Corporation Partial block data programming and reading operations in a non-volatile memory
JP2008287404A (ja) * 2007-05-16 2008-11-27 Hitachi Ltd 読み出しによる非アクセスメモリセルのデータ破壊を検出及び回復する装置、及びその方法
US7937521B2 (en) * 2008-01-29 2011-05-03 Cadence Design Systems, Inc. Read disturbance management in a non-volatile memory system
US7818525B1 (en) * 2009-08-12 2010-10-19 Texas Memory Systems, Inc. Efficient reduction of read disturb errors in NAND FLASH memory
JP2011203916A (ja) 2010-03-25 2011-10-13 Toshiba Corp メモリコントローラ、および半導体記憶装置
US8850114B2 (en) 2010-09-07 2014-09-30 Daniel L Rosenband Storage array controller for flash-based storage devices
TWI442230B (zh) 2011-04-28 2014-06-21 Phison Electronics Corp 資料寫入方法、記憶體控制器與記憶體儲存裝置
US10803970B2 (en) 2011-11-14 2020-10-13 Seagate Technology Llc Solid-state disk manufacturing self test
CN103870399B (zh) * 2012-12-18 2017-03-01 群联电子股份有限公司 存储器管理方法、存储器控制器与存储器储存装置
TWI514140B (zh) 2013-02-05 2015-12-21 Via Tech Inc 非揮發性記憶裝置及其操作方法
TWI525635B (zh) * 2013-12-17 2016-03-11 慧榮科技股份有限公司 資料儲存裝置及其資料維護方法
JP6206161B2 (ja) * 2013-12-18 2017-10-04 富士通株式会社 ストレージ制御装置、制御方法、および制御プログラム
TWI527037B (zh) 2014-04-10 2016-03-21 群聯電子股份有限公司 資料儲存方法、記憶體控制電路單元與記憶體儲存裝置
CN105022695A (zh) * 2014-04-21 2015-11-04 群联电子股份有限公司 数据存储方法、存储器控制电路单元与存储器存储装置
CN105320464B (zh) * 2014-07-21 2018-07-31 群联电子股份有限公司 防止读取干扰的方法、存储器控制电路单元与存储装置
JP6226830B2 (ja) * 2014-07-24 2017-11-08 株式会社東芝 情報処理装置、データアクセス方法およびプログラム
TW201608475A (zh) 2014-08-26 2016-03-01 Innodisk Corp 非揮發性記憶體裝置之損耗平均管理方法
US9563373B2 (en) * 2014-10-21 2017-02-07 International Business Machines Corporation Detecting error count deviations for non-volatile memory blocks for advanced non-volatile memory block management

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI796882B (zh) * 2021-12-20 2023-03-21 群聯電子股份有限公司 讀取干擾檢查方法、記憶體儲存裝置及記憶體控制電路單元
US11797222B2 (en) 2021-12-20 2023-10-24 Phison Electronics Corp. Read disturb checking method, memory storage device and memory control circuit unit

Also Published As

Publication number Publication date
US20170277471A1 (en) 2017-09-28
CN106021013A (zh) 2016-10-12
TWI599880B (zh) 2017-09-21
US10108366B2 (en) 2018-10-23
CN106021013B (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
US8332579B2 (en) Data storage apparatus and method of writing data
US9164833B2 (en) Data storage device, operating method thereof and data processing system including the same
KR20180080589A (ko) 데이터 저장 장치 및 그것의 동작 방법
US11204864B2 (en) Data storage devices and data processing methods for improving the accessing performance of the data storage devices
US10990536B2 (en) Memory controller, operating method of the memory controller, and storage device including the memory controller
CN106897026B (zh) 非易失性存储器装置及其地址分类方法
TW201810282A (zh) 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置
CN107102953B (zh) 非易失性存储器装置及其迭代排序方法
US9213486B2 (en) Writing new data of a first block size to a second block size using a write-write mode
US10942848B2 (en) Apparatus and method for checking valid data in memory system
KR20190048453A (ko) 저장 장치 및 메모리 시스템
US8521946B2 (en) Semiconductor disk devices and related methods of randomly accessing data
TWI651650B (zh) 記憶體管理方法及使用所述方法的儲存控制器
CN113590502A (zh) 一种非挥发性记忆体存储设备的垃圾回收方法与垃圾回收系统
US10733107B2 (en) Non-volatile memory apparatus and address classification method thereof
JP5910596B2 (ja) ストレージ管理システム、ストレージ管理方法、プログラム、および、情報処理システム
US11615019B2 (en) Non-volatile storage device, host device, and data storage system to increase data write speed
KR20210001206A (ko) 컨트롤러, 메모리 시스템 및 그것의 동작 방법
US10942858B2 (en) Data storage devices and data processing methods
CN110851372B (zh) 储存装置及快取区定址方法
US10884660B2 (en) Memory management method, memory storage device and memory control circuit unit