CN106021013B - 非挥发性存储器装置及其操作方法 - Google Patents

非挥发性存储器装置及其操作方法 Download PDF

Info

Publication number
CN106021013B
CN106021013B CN201610292306.8A CN201610292306A CN106021013B CN 106021013 B CN106021013 B CN 106021013B CN 201610292306 A CN201610292306 A CN 201610292306A CN 106021013 B CN106021013 B CN 106021013B
Authority
CN
China
Prior art keywords
block
block address
controller
page
those
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
CN201610292306.8A
Other languages
English (en)
Other versions
CN106021013A (zh
Inventor
黄胜辉
赖义麟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Via Technologies Inc
Original Assignee
Via Technologies Inc
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 Via Technologies Inc filed Critical Via Technologies Inc
Publication of CN106021013A publication Critical patent/CN106021013A/zh
Application granted granted Critical
Publication of CN106021013B publication Critical patent/CN106021013B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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

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 pageaddress)。主机(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是依照本发明实施例说明一种非挥发性存储器装置的电路方块示意图。
图2是依照本发明一实施例说明图1所示非挥发性存储器装置的操作方法示意图。
图3是依照本发明另一实施例说明图1所示非挥发性存储器装置的操作方法示意图。
图4是依照本发明一实施例说明储存块数据搬移操作的操作方法示意图。
图5是依照本发明一实施例说明图1所示非挥发性储存电路的部份非挥发性储存块(物理块)的示意图。
附图元件说明
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是依照本发明实施例说明一种非挥发性存储器(non-volatile memory,NVM)装置100的电路方块示意图。非挥发性存储器装置100耦接至主机10。非挥发性存储器装置100的例子包括个人计算机存储卡国际协会(Personal Computer Memory CardInternational 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 advancedtechnology attachment,SATA)、快速外围元件互连(peripheral componentinterconnect express,PCI-express)、集成驱动电子装置(integrated driveelectronics,IDE)接口、通用串行总线(universal serial bus,USB)、雷电(Thunderbolt)接口或其他接口。本发明并未局限于主机10与非挥发性存储器装置100之间的接口结构。
非挥发性存储器装置100包括控制器110、主存储器120以及非挥发性储存电路130。控制器110通过上述标准化接口耦接至主机10。控制器110耦接至主存储器120与非挥发性储存电路130。主存储器120的例子包括动态随机存取存储器(dynamic random accessmemory,DRAM)、静态随机存取存储器(static random access memory,SRAM)或是其他挥发性存储器(volatile memory)。非挥发性储存电路130举例而言是快闪存储器(FLASHmemory)。非挥发性储存电路130具有由多个物理块地址所定址的多个非挥发性储存块。主存储器120具有映射表(mapping table)MT,其中映射表MT用以记录多个逻辑块地址与非挥发性储存电路130的物理块地址的转换关系。非挥发性存储器装置100的控制器110依据主存储器120内的映射表MT,将主机10的存取指令(例如「写」指令、「读」指令或是其他指令)的逻辑地址转换为非挥发性储存电路130的物理地址。
由于数据读取干扰(data read disturbance)的影响,在多次对快闪存储器(非挥发性储存电路130)的某一物理页/物理块进行读取操作的情形下,随着时间的增加(或随着读取次数的增加),此物理页/物理块发生错误的比特数量随之增加。当一个物理页中发生错误的比特数量小于某个容忍数量时,错误检查和纠正(Error Checking andCorrecting,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 BlockPool)中。当某个子映射表需要额外的非挥发性储存块(物理块)时,控制器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++)、硬件描述语言(hardwaredescription 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的运作效能。依据扫描操作的结果,控制器可以动态决定是否进行储存块数据搬移操作,以避免储存块(物理块)数据遗失。
虽然本发明已以实施例公开如上,然其并非用以限定本发明,任何本领域普通技术人员,在不脱离本发明的精神和范围内,当可作些许的更动与润饰,因此本发明的保护范围当视后附的权利要求所限定者为准。

Claims (38)

1.一种非挥发性存储器装置,包括:
一非挥发性储存电路,具有由多个物理块地址所定址的多个非挥发性储存块;
一主存储器,用以存放一映射表,其中该映射表用以记录多个逻辑块地址与该些物理块地址的转换关系;以及
一控制器,耦接至该主存储器与该非挥发性储存电路,其中该控制器将该些逻辑块地址分群为多个逻辑块地址群组,而该些逻辑块地址群组的每一个包括多个逻辑块地址;该些逻辑块地址群组的每一个被分配有一个群组读取计数值;该些群组读取计数值的调整是由一主机的读指令所触发;当该些群组读取计数值中的一个读取计数值超出一预设范围时,该控制器对该读取计数值所对应的一对应逻辑块地址群组的该些逻辑块地址所对应的该些非挥发性储存块进行一扫描操作以检查错误比特数量;以及该控制器依据该扫描操作的结果而决定是否对该对应逻辑块地址群组的该些逻辑块地址所对应的该些非挥发性储存块的其中一个储存块进行一储存块数据搬移操作,
其中该扫描操作包括:
由该控制器对该对应逻辑块地址群组所对应的该些非挥发性储存块进行一粗略扫描;
由该控制器依照该粗略扫描的结果来决定是否对该对应逻辑块地址群组所对应的该些非挥发性储存块的其中一个可疑储存块进行一细扫描;以及
由该控制器依照该细扫描的结果来决定是否对该可疑储存块进行该储存块数据搬移操作,以将该可疑储存块的数据搬移至一闲置储存块。
2.如权利要求1所述的非挥发性存储器装置,其中当该主机发出该读指令给该控制器时,该控制器依照该映射表将该读指令的一目标逻辑块地址转换为一目标物理块地址,依照该读指令存取该目标物理块地址所定址的一非挥发性储存块,以及将该些群组读取计数值中该目标逻辑块地址所对应的一读取计数值增加一步阶值。
3.如权利要求1所述的非挥发性存储器装置,其中当该主机发出该读指令给该控制器时,该控制器依照该映射表将该读指令的一目标逻辑块地址转换为一目标物理块地址,依照该读指令存取该目标物理块地址所定址的一非挥发性储存块,以及将该些群组读取计数值中该目标逻辑块地址所对应的一读取计数值减少一步阶值。
4.如权利要求1所述的非挥发性存储器装置,其中该控制器比较该些群组读取计数值与一阈值以判断该些群组读取计数值与该预设范围的关系;当该些群组读取计数值中的一个读取计数值大于该阈值时,该控制器对该读取计数值所对应的该对应逻辑块地址群组的该些逻辑块地址所对应的该些非挥发性储存块进行该扫描操作以检查错误比特数量。
5.如权利要求1所述的非挥发性存储器装置,其中该控制器比较该些群组读取计数值与一阈值以判断该些群组读取计数值与该预设范围的关系;当该些群组读取计数值中的一个读取计数值小于该阈值时,该控制器对该读取计数值所对应的该对应逻辑块地址群组的该些逻辑块地址所对应的该些非挥发性储存块进行该扫描操作以检查错误比特数量。
6.如权利要求1所述的非挥发性存储器装置,其中该粗略扫描包括:
由一页指针指向该对应逻辑块地址群组所对应的该些非挥发性储存块其中一个储存块的一物理页;
由该控制器检查该页指针所指的该物理页以及至少一邻近物理页的错误比特数量;以及
当该页指针所指的该物理页与所述至少一邻近物理页的该错误比特数量小于一第一阈值时,由该控制器将该页指针改指向该对应逻辑块地址群组所对应的该些非挥发性储存块其中另一个储存块的一物理页。
7.如权利要求6所述的非挥发性存储器装置,其中当该页指针所指的该物理页与所述至少一邻近物理页的该错误比特数量大于该第一阈值时,该控制器将该物理页所属的储存块进行该细扫描。
8.如权利要求1所述的非挥发性存储器装置,其中该粗略扫描包括:
由一页指针指向该对应逻辑块地址群组所对应的该些非挥发性储存块其中一个储存块的一物理页;
由该控制器检查该页指针所指的该物理页的错误比特数量;以及
当该页指针所指的该物理页的该错误比特数量小于一第一阈值时,由该控制器将该页指针改指向该对应逻辑块地址群组所对应的该些非挥发性储存块其中另一个储存块的一物理页。
9.如权利要求8所述的非挥发性存储器装置,其中当该页指针所指的该物理页的该错误比特数量大于该第一阈值时,由该控制器将该物理页所属的储存块进行该细扫描。
10.如权利要求1所述的非挥发性存储器装置,其中当该对应逻辑块地址群组所对应的该些非挥发性储存块的所有物理页均完成该粗略扫描时,由该控制器将该对应逻辑块地址群组所对应的该读取计数值重置为一初始值。
11.如权利要求1所述的非挥发性存储器装置,其中该细扫描包括:
由一页指针指向该对应逻辑块地址群组所对应的该些非挥发性储存块其中一个储存块的一物理页;
由该控制器检查该页指针所指的该物理页所属的储存块的有效物理页各自的错误比特数量;以及
当该页指针所对应的储存块所属的有效物理页各自的该错误比特数量均小于一第二阈值时,该控制器不重置该对应逻辑块地址群组所对应的该读取计数值。
12.如权利要求1所述的非挥发性存储器装置,其中该细扫描包括:
由一页指针指向该对应逻辑块地址群组所对应的该些非挥发性储存块其中一个储存块的一物理页;
由该控制器检查该页指针所指的该物理页所属的储存块的所有物理页各自的错误比特数量;以及
当该页指针所对应的储存块所属的所有物理页各自的该错误比特数量均小于一第二阈值时,该控制器不重置该对应逻辑块地址群组所对应的该读取计数值。
13.如权利要求1所述的非挥发性存储器装置,其中当该可疑储存块的其中一个物理页的该错误比特数量大于一第二阈值时,由该控制器将该可疑储存块进行该储存块数据搬移操作以将该可疑储存块的数据搬移至该闲置储存块,以及由该控制器将该对应逻辑块地址群组所对应的该读取计数值重置为一初始值。
14.一种非挥发性存储器装置,包括:
一非挥发性储存电路,具有由多个物理块地址所定址的多个非挥发性储存块;
一主存储器,用以存放一映射表,其中该映射表用以记录多个逻辑块地址与该些物理块地址的转换关系;以及
一控制器,耦接至该主存储器与该非挥发性储存电路,其中该控制器将该些逻辑块地址分群为多个逻辑块地址群组,而该些逻辑块地址群组的每一个包括多个逻辑块地址;该些逻辑块地址群组的每一个被分配有一个群组读取计数值;该些群组读取计数值的调整是由一主机的读指令所触发;当该些群组读取计数值中的一个读取计数值超出一预设范围时,该控制器对该读取计数值所对应的一对应逻辑块地址群组的该些逻辑块地址所对应的该些非挥发性储存块进行一扫描操作以检查错误比特数量;以及该控制器依据该扫描操作的结果而决定是否对该对应逻辑块地址群组的该些逻辑块地址所对应的该些非挥发性储存块的其中一个储存块进行一储存块数据搬移操作,
其中该扫描操作包括:
由一页指针指向该对应逻辑块地址群组所对应的该些非挥发性储存块其中一个储存块的一物理页;
由该控制器检查该页指针所指的该物理页的错误比特数量;以及
当该页指针所指的该物理页的该错误比特数量小于一阈值时,由该控制器将该页指针改指向该对应逻辑块地址群组所对应的该些非挥发性储存块其中另一个储存块的一物理页。
15.如权利要求14所述的非挥发性存储器装置,其中当该对应逻辑块地址群组所对应的该些非挥发性储存块的所有物理页均完成该扫描操作时,由该控制器将该对应逻辑块地址群组所对应的该读取计数值重置为一初始值。
16.如权利要求14所述的非挥发性存储器装置,其中当该页指针所指的该物理页的该错误比特数量大于该阈值时,由该控制器将该物理页所属的储存块进行该储存块数据搬移操作,以将该储存块的数据搬移至一闲置储存块。
17.一种非挥发性存储器装置,包括:
一非挥发性储存电路,具有由多个物理块地址所定址的多个非挥发性储存块;
一主存储器,用以存放一映射表,其中该映射表用以记录多个逻辑块地址与该些物理块地址的转换关系;以及
一控制器,耦接至该主存储器与该非挥发性储存电路,其中该控制器将该些逻辑块地址分群为多个逻辑块地址群组,而该些逻辑块地址群组的每一个包括多个逻辑块地址;该些逻辑块地址群组的每一个被分配有一个群组读取计数值;该些群组读取计数值的调整是由一主机的读指令所触发;当该些群组读取计数值中的一个读取计数值超出一预设范围时,该控制器对该读取计数值所对应的一对应逻辑块地址群组的该些逻辑块地址所对应的该些非挥发性储存块进行一扫描操作以检查错误比特数量;以及该控制器依据该扫描操作的结果而决定是否对该对应逻辑块地址群组的该些逻辑块地址所对应的该些非挥发性储存块的其中一个储存块进行一储存块数据搬移操作,
其中该扫描操作包括:
由一块指针指向该对应逻辑块地址群组所对应的该些非挥发性储存块其中一个储存块;
由该控制器检查该块指针所指的该储存块的错误比特数量;以及
当该块指针所指的该储存块的该错误比特数量小于一阈值时,由该控制器将该块指针改指向该对应逻辑块地址群组所对应的该些非挥发性储存块其中另一个储存块。
18.如权利要求17所述的非挥发性存储器装置,其中当该对应逻辑块地址群组所对应的该些非挥发性储存块均完成该扫描操作时,由该控制器将该对应逻辑块地址群组所对应的该读取计数值重置为一初始值。
19.如权利要求17所述的非挥发性存储器装置,其中当该块指针所指的该储存块的该错误比特数量大于该阈值时,由该控制器将该块指针所指的该储存块进行该储存块数据搬移操作,以将该储存块的数据搬移至一闲置储存块。
20.一种非挥发性存储器装置的操作方法,包括:
配置一非挥发性储存电路,其中该非挥发性储存电路具有由多个物理块地址所定址的多个非挥发性储存块;
配置一主存储器以存放一映射表,其中该映射表用以记录多个逻辑块地址与该些物理块地址的转换关系;
由一控制器将该些逻辑块地址分群为多个逻辑块地址群组,其中该些逻辑块地址群组的每一个包括多个逻辑块地址,以及该些逻辑块地址群组的每一个被分配有一个群组读取计数值;
依据一主机的读指令而触发该些群组读取计数值的调整;
当该些群组读取计数值中的一个读取计数值超出一预设范围时,由该控制器对该读取计数值所对应的一对应逻辑块地址群组的该些逻辑块地址所对应的该些非挥发性储存块进行一扫描操作,以检查错误比特数量;以及
由该控制器依据该扫描操作的结果而决定是否对该对应逻辑块地址群组的该些逻辑块地址所对应的该些非挥发性储存块的其中一个储存块进行一储存块数据搬移操作,
其中该扫描操作包括:
由该控制器对该对应逻辑块地址群组所对应的该些非挥发性储存块进行一粗略扫描;
由该控制器依照该粗略扫描的结果来决定是否对该对应逻辑块地址群组所对应的该些非挥发性储存块的其中一个可疑储存块进行一细扫描;以及
由该控制器依照该细扫描的结果来决定是否对该可疑储存块进行该储存块数据搬移操作,以将该可疑储存块的数据搬移至一闲置储存块。
21.如权利要求20所述的非挥发性存储器装置的操作方法,其中所述依据该主机的读指令而触发该些群组读取计数值的调整的步骤包括:
当该主机发出该读指令给该控制器时,由该控制器依照该映射表将该读指令的一目标逻辑块地址转换为一目标物理块地址,依照该读指令存取该目标物理块地址所定址的一非挥发性储存块,以及将该些群组读取计数值中该目标逻辑块地址所对应的一读取计数值增加一步阶值。
22.如权利要求20所述的非挥发性存储器装置的操作方法,其中所述依据该主机的读指令而触发该些群组读取计数值的调整的步骤包括:
当该主机发出该读指令给该控制器时,由该控制器依照该映射表将该读指令的一目标逻辑块地址转换为一目标物理块地址,依照该读指令存取该目标物理块地址所定址的一非挥发性储存块,以及将该些群组读取计数值中该目标逻辑块地址所对应的一读取计数值减少一步阶值。
23.如权利要求20所述的非挥发性存储器装置的操作方法,更包括:
由该控制器比较该些群组读取计数值与一阈值,以判断该些群组读取计数值与该预设范围的关系;
当该些群组读取计数值中的一个读取计数值大于该阈值时,由该控制器对该读取计数值所对应的该对应逻辑块地址群组的该些逻辑块地址所对应的该些非挥发性储存块进行该扫描操作,以检查错误比特数量。
24.如权利要求20所述的非挥发性存储器装置的操作方法,更包括:
由该控制器比较该些群组读取计数值与一阈值,以判断该些群组读取计数值与该预设范围的关系;
当该些群组读取计数值中的一个读取计数值小于该阈值时,由该控制器对该读取计数值所对应的该对应逻辑块地址群组的该些逻辑块地址所对应的该些非挥发性储存块进行该扫描操作以检查错误比特数量。
25.如权利要求20所述的非挥发性存储器装置的操作方法,其中该粗略扫描包括:
由一页指针指向该对应逻辑块地址群组所对应的该些非挥发性储存块其中一个储存块的一物理页;
由该控制器检查该页指针所指的该物理页与至少一邻近物理页的错误比特数量;以及
当该页指针所指的该物理页与所述至少一邻近物理页的该错误比特数量小于一第一阈值时,由该控制器将该页指针改指向该对应逻辑块地址群组所对应的该些非挥发性储存块其中另一个储存块的一物理页。
26.如权利要求25所述的非挥发性存储器装置的操作方法,其中当该页指针所指的该物理页与所述至少一邻近物理页的该错误比特数量大于该第一阈值时,由该控制器将该物理页所属的储存块进行该细扫描。
27.如权利要求20所述的非挥发性存储器装置的操作方法,其中该粗略扫描包括:
由一页指针指向该对应逻辑块地址群组所对应的该些非挥发性储存块其中一个储存块的一物理页;
由该控制器检查该页指针所指的该物理页的错误比特数量;以及
当该页指针所指的该物理页的该错误比特数量小于一第一阈值时,由该控制器将该页指针改指向该对应逻辑块地址群组所对应的该些非挥发性储存块其中另一个储存块的一物理页。
28.如权利要求27所述的非挥发性存储器装置的操作方法,其中当该页指针所指的该物理页的该错误比特数量大于该第一阈值时,由该控制器将该物理页所属的储存块进行该细扫描。
29.如权利要求20所述的非挥发性存储器装置的操作方法,其中当该对应逻辑块地址群组所对应的该些非挥发性储存块的所有物理页均完成该粗略扫描时,由该控制器将该对应逻辑块地址群组所对应的该读取计数值重置为一初始值。
30.如权利要求20所述的非挥发性存储器装置的操作方法,其中该细扫描包括:
由一页指针指向该对应逻辑块地址群组所对应的该些非挥发性储存块其中一个储存块的一物理页;
由该控制器检查该页指针所指的该物理页所属的储存块的有效物理页各自的错误比特数量;以及
当该页指针所对应的储存块所属的有效物理页各自的该错误比特数量均小于一第二阈值时,该控制器不重置该对应逻辑块地址群组所对应的该读取计数值。
31.如权利要求20所述的非挥发性存储器装置的操作方法,其中该细扫描包括:
由一页指针指向该对应逻辑块地址群组所对应的该些非挥发性储存块其中一个储存块的一物理页;
由该控制器检查该页指针所指的该物理页所属的储存块的所有物理页各自的错误比特数量;以及
当该页指针所对应的储存块所属的所有物理页各自的该错误比特数量均小于一第二阈值时,该控制器不重置该对应逻辑块地址群组所对应的该读取计数值。
32.如权利要求20所述的非挥发性存储器装置的操作方法,其中当该可疑储存块的其中一个物理页的该错误比特数量大于一第二阈值时,由该控制器将该可疑储存块进行该储存块数据搬移操作以将该可疑储存块的数据搬移至该闲置储存块,以及由该控制器将该对应逻辑块地址群组所对应的该读取计数值重置为一初始值。
33.一种非挥发性存储器装置的操作方法,包括:
配置一非挥发性储存电路,其中该非挥发性储存电路具有由多个物理块地址所定址的多个非挥发性储存块;
配置一主存储器以存放一映射表,其中该映射表用以记录多个逻辑块地址与该些物理块地址的转换关系;
由一控制器将该些逻辑块地址分群为多个逻辑块地址群组,其中该些逻辑块地址群组的每一个包括多个逻辑块地址,以及该些逻辑块地址群组的每一个被分配有一个群组读取计数值;
依据一主机的读指令而触发该些群组读取计数值的调整;
当该些群组读取计数值中的一个读取计数值超出一预设范围时,由该控制器对该读取计数值所对应的一对应逻辑块地址群组的该些逻辑块地址所对应的该些非挥发性储存块进行一扫描操作,以检查错误比特数量;以及
由该控制器依据该扫描操作的结果而决定是否对该对应逻辑块地址群组的该些逻辑块地址所对应的该些非挥发性储存块的其中一个储存块进行一储存块数据搬移操作,
其中该扫描操作包括:
由一页指针指向该对应逻辑块地址群组所对应的该些非挥发性储存块其中一个储存块的一物理页;
由该控制器检查该页指针所指的该物理页的错误比特数量;以及
当该页指针所指的该物理页的该错误比特数量小于一阈值时,由该控制器将该页指针改指向该对应逻辑块地址群组所对应的该些非挥发性储存块其中另一个储存块的一物理页。
34.如权利要求33所述的非挥发性存储器装置的操作方法,其中当该对应逻辑块地址群组所对应的该些非挥发性储存块的所有物理页均完成该扫描操作时,由该控制器将该对应逻辑块地址群组所对应的该读取计数值重置为一初始值。
35.如权利要求33所述的非挥发性存储器装置的操作方法,其中当该页指针所指的该物理页的该错误比特数量大于该阈值时,由该控制器将该物理页所属的储存块进行该储存块数据搬移操作,以将该储存块的数据搬移至一闲置储存块。
36.一种非挥发性存储器装置的操作方法,包括:
配置一非挥发性储存电路,其中该非挥发性储存电路具有由多个物理块地址所定址的多个非挥发性储存块;
配置一主存储器以存放一映射表,其中该映射表用以记录多个逻辑块地址与该些物理块地址的转换关系;
由一控制器将该些逻辑块地址分群为多个逻辑块地址群组,其中该些逻辑块地址群组的每一个包括多个逻辑块地址,以及该些逻辑块地址群组的每一个被分配有一个群组读取计数值;
依据一主机的读指令而触发该些群组读取计数值的调整;
当该些群组读取计数值中的一个读取计数值超出一预设范围时,由该控制器对该读取计数值所对应的一对应逻辑块地址群组的该些逻辑块地址所对应的该些非挥发性储存块进行一扫描操作,以检查错误比特数量;以及
由该控制器依据该扫描操作的结果而决定是否对该对应逻辑块地址群组的该些逻辑块地址所对应的该些非挥发性储存块的其中一个储存块进行一储存块数据搬移操作,
其中该扫描操作包括:
由一块指针指向该对应逻辑块地址群组所对应的该些非挥发性储存块其中一个储存块;
由该控制器检查该块指针所指的该储存块的错误比特数量;以及
当该块指针所指的该储存块的该错误比特数量小于一阈值时,由该控制器将该块指针改指向该对应逻辑块地址群组所对应的该些非挥发性储存块其中另一个储存块。
37.如权利要求36所述的非挥发性存储器装置的操作方法,其中当该对应逻辑块地址群组所对应的该些非挥发性储存块均完成该扫描操作时,由该控制器将该对应逻辑块地址群组所对应的该读取计数值重置为一初始值。
38.如权利要求36所述的非挥发性存储器装置的操作方法,其中当该块指针所指的该储存块的该错误比特数量大于该阈值时,由该控制器将该块指针所指的该储存块进行该储存块数据搬移操作,以将该储存块的数据搬移至一闲置储存块。
CN201610292306.8A 2016-03-22 2016-05-05 非挥发性存储器装置及其操作方法 Active CN106021013B (zh)

Applications Claiming Priority (2)

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

Publications (2)

Publication Number Publication Date
CN106021013A CN106021013A (zh) 2016-10-12
CN106021013B true CN106021013B (zh) 2019-02-01

Family

ID=57081935

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610292306.8A Active CN106021013B (zh) 2016-03-22 2016-05-05 非挥发性存储器装置及其操作方法

Country Status (3)

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

Families Citing this family (30)

* 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
US10866746B2 (en) 2017-12-28 2020-12-15 Silicon Motion Inc. Memory addressing methods and associated controller, memory device and host
TWI692689B (zh) 2017-12-28 2020-05-01 慧榮科技股份有限公司 記憶卡控制器、記憶卡、使用於記憶卡控制器的方法以及連接至記憶卡的電子裝置
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 慧榮科技股份有限公司 資料儲存裝置及用於存取邏輯至物理位址映射表之方法
KR20200137181A (ko) 2019-05-29 2020-12-09 에스케이하이닉스 주식회사 메모리 시스템에서 맵정보를 전송하는 장치
KR20200123684A (ko) 2019-04-22 2020-10-30 에스케이하이닉스 주식회사 메모리 시스템에서 맵 정보를 전송하는 장치
KR20210004322A (ko) 2019-07-04 2021-01-13 에스케이하이닉스 주식회사 메모리 시스템에서 맵정보 및 리드카운트를 전송하는 장치 및 방법
KR20200139433A (ko) 2019-06-04 2020-12-14 에스케이하이닉스 주식회사 컨트롤러의 동작 방법 및 메모리 시스템
US11422942B2 (en) 2019-04-02 2022-08-23 SK Hynix Inc. Memory system for utilizing a memory included in an external device
US11416408B2 (en) 2019-07-05 2022-08-16 SK Hynix Inc. Memory system, memory controller and method for operating memory system
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 长江存储科技有限责任公司 一种闪存存储器及其错误比特计数检测方法和系统
US11500752B2 (en) 2020-09-02 2022-11-15 Samsung Electronics Co., Ltd. Multi-non-volatile memory solid state drive block-level failure prediction with separate log per non-volatile memory
TWI796882B (zh) 2021-12-20 2023-03-21 群聯電子股份有限公司 讀取干擾檢查方法、記憶體儲存裝置及記憶體控制電路單元

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103870399A (zh) * 2012-12-18 2014-06-18 群联电子股份有限公司 存储器管理方法、存储器控制器与存储器储存装置
CN104714896A (zh) * 2013-12-17 2015-06-17 慧荣科技股份有限公司 数据储存装置及其数据维护方法
CN105022695A (zh) * 2014-04-21 2015-11-04 群联电子股份有限公司 数据存储方法、存储器控制电路单元与存储器存储装置
CN105320464A (zh) * 2014-07-21 2016-02-10 群联电子股份有限公司 防止读取干扰的方法、存储器控制电路单元与存储装置

Family Cites Families (15)

* 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
TWI514140B (zh) 2013-02-05 2015-12-21 Via Tech Inc 非揮發性記憶裝置及其操作方法
JP6206161B2 (ja) * 2013-12-18 2017-10-04 富士通株式会社 ストレージ制御装置、制御方法、および制御プログラム
TWI527037B (zh) 2014-04-10 2016-03-21 群聯電子股份有限公司 資料儲存方法、記憶體控制電路單元與記憶體儲存裝置
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

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103870399A (zh) * 2012-12-18 2014-06-18 群联电子股份有限公司 存储器管理方法、存储器控制器与存储器储存装置
CN104714896A (zh) * 2013-12-17 2015-06-17 慧荣科技股份有限公司 数据储存装置及其数据维护方法
CN105022695A (zh) * 2014-04-21 2015-11-04 群联电子股份有限公司 数据存储方法、存储器控制电路单元与存储器存储装置
CN105320464A (zh) * 2014-07-21 2016-02-10 群联电子股份有限公司 防止读取干扰的方法、存储器控制电路单元与存储装置

Also Published As

Publication number Publication date
TW201734794A (zh) 2017-10-01
CN106021013A (zh) 2016-10-12
TWI599880B (zh) 2017-09-21
US10108366B2 (en) 2018-10-23
US20170277471A1 (en) 2017-09-28

Similar Documents

Publication Publication Date Title
CN106021013B (zh) 非挥发性存储器装置及其操作方法
CN105975404B (zh) 非易失性存储器装置及其操作方法
CN107644667B (zh) 对用于各种工作负载的固态驱动器的内部预处理
CN104102585B (zh) 映射信息记录方法、存储器控制器与存储器储存装置
TWI409633B (zh) 快閃記憶體儲存裝置、其控制器與資料寫入方法
CN104166636B (zh) 存储器储存装置及其还原方法与存储器控制器
US20210133096A1 (en) Memory system and operating method thereof
KR20170053278A (ko) 데이터 저장 장치 및 그것의 동작 방법
CN107025071A (zh) 非易失性存储器装置及其垃圾收集方法
US9304900B2 (en) Data reading method, memory controller, and memory storage device
CN106448737A (zh) 读取闪存数据的方法、装置以及固态驱动器
US20200183831A1 (en) Storage system and system garbage collection method
CN103425589A (zh) 控制装置、存储装置以及存储控制方法
KR101649357B1 (ko) 데이터 저장 장치, 그것의 동작 방법, 그리고 그것을 포함한 스토리지 서버
CN109558334B (zh) 垃圾数据回收方法及固态存储设备
KR20210027563A (ko) 저장 장치 및 그 동작 방법
CN106649144A (zh) 数据储存设备及其操作方法
CN104866429A (zh) 存储器管理方法、存储器控制电路单元与存储器存储装置
TWI506438B (zh) 資料儲存裝置及其管理方法
TWI501244B (zh) 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置
CN103914391B (zh) 数据读取方法、存储器控制器与存储器存储装置
KR20170086840A (ko) 데이터 저장 장치 및 그것의 동작 방법
CN102880432B (zh) 利用数据有限寿命提高闪存芯片写入速度的方法、系统及其控制器
CN107102953A (zh) 非易失性存储器装置及其迭代排序方法
CN107229580A (zh) 顺序流检测方法与装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant