CN105975404A - 非易失性存储器装置及其操作方法 - Google Patents
非易失性存储器装置及其操作方法 Download PDFInfo
- Publication number
- CN105975404A CN105975404A CN201610292194.6A CN201610292194A CN105975404A CN 105975404 A CN105975404 A CN 105975404A CN 201610292194 A CN201610292194 A CN 201610292194A CN 105975404 A CN105975404 A CN 105975404A
- Authority
- CN
- China
- Prior art keywords
- block
- controller
- volatile memory
- memory block
- page
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title abstract description 15
- 230000015654 memory Effects 0.000 claims abstract description 374
- 230000001960 triggered effect Effects 0.000 claims abstract description 5
- 238000013507 mapping Methods 0.000 claims description 68
- 238000012005 ligant binding assay Methods 0.000 claims description 50
- 238000013459 approach Methods 0.000 claims description 35
- 230000008859 change Effects 0.000 claims description 12
- 101150014742 AGE1 gene Proteins 0.000 description 73
- 238000013461 design Methods 0.000 description 14
- 238000010586 diagram Methods 0.000 description 14
- 239000007787 solid Substances 0.000 description 13
- 230000007246 mechanism Effects 0.000 description 9
- 230000008569 process Effects 0.000 description 9
- 238000007667 floating Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 230000006399 behavior Effects 0.000 description 4
- 238000000151 deposition Methods 0.000 description 4
- 238000002372 labelling Methods 0.000 description 4
- 230000004899 motility Effects 0.000 description 4
- 241000208340 Araliaceae Species 0.000 description 3
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 3
- 235000003140 Panax quinquefolius Nutrition 0.000 description 3
- 238000012937 correction Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 235000008434 ginseng Nutrition 0.000 description 3
- 238000007689 inspection Methods 0.000 description 3
- 238000005299 abrasion Methods 0.000 description 2
- 230000005611 electricity Effects 0.000 description 2
- 238000010304 firing Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 101000934888 Homo sapiens Succinate dehydrogenase cytochrome b560 subunit, mitochondrial Proteins 0.000 description 1
- 102100025393 Succinate dehydrogenase cytochrome b560 subunit, mitochondrial Human genes 0.000 description 1
- 241000519996 Teucrium chamaedrys Species 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000005314 correlation function Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000011067 equilibration Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- APTZNLHMIGJTEW-UHFFFAOYSA-N pyraflufen-ethyl Chemical compound C1=C(Cl)C(OCC(=O)OCC)=CC(C=2C(=C(OC(F)F)N(C)N=2)Cl)=C1F APTZNLHMIGJTEW-UHFFFAOYSA-N 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0646—Configuration or reconfiguration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1471—Saving, restoring, recovering or retrying involving logging of persistent data for recovery
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
- G06F3/0649—Lifecycle management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
- G06F2212/2022—Flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7204—Capacity control, e.g. partitioning, end-of-life degradation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Computer Security & Cryptography (AREA)
Abstract
一种非易失性存储器装置及其操作方法。非易失性存储器装置包括非易失性存储电路、主存储器以及控制器。逻辑块地址群组的每一个包括多个逻辑块地址。这些逻辑块地址群组的每一个被分配有一个群组年龄参数。这些群组年龄参数的调整是由主机的写指令所触发。当这些群组年龄参数中的一个年龄参数超出预设范围时,控制器对年龄参数的对应逻辑块地址群组所对应的非易失性存储电路的非易失性存储块进行扫描操作,以检查错误位数量。控制器依据扫描操作的结果而决定是否将对应逻辑块地址群组所对应的非易失性存储块进行存储块数据搬移操作。
Description
技术领域
本发明涉及一种存储器装置,且特别是涉及一种非易失性存储器装置及其操作方法。
背景技术
一般固态硬盘(solid state disk/drive,SSD)或随身磁盘(memory disk)在操作过程中,需要使用映射表(mapping table)来记录逻辑地址(logicaladdress)至物理地址(physical address)的映射关系(或转换关系)。所述逻辑地址可能包括逻辑块地址(logical block address,LBA)及/或逻辑页地址(logical page address),而所述物理地址可能包括物理块地址(physical blockaddress,PBA)及/或物理页地址(physical page address)。主机(host)通常依据页面映射(Page Mapping)、区块映射(Block Mapping)、置换区块(Replacement Block)或日志区块(Log Block)等模式对固态硬盘或随身磁盘内的数据进行存取。尽管不同模式对应的映射表所存储的内容各不相同,但当固态硬盘或随身磁盘接收主机的存取指令时,固态硬盘或随身磁盘均须依据映射表而将该存取指令的逻辑地址转换为固态硬盘或随身磁盘中闪存(FLASH memory)的物理地址,然后对转换获得的物理地址所指的物理存储器(物理块或物理页)执行该存取指令。
在不断执行主机的众多存取指令的过程中,逻辑地址与物理地址的对应关系可能会被对应地改变,因此映射表的内容可能会被不断地更新。通常映射表被存储在动态随机存取存储器(dynamic random access memory,DRAM)中,以便加快存取速度。当固态硬盘或随身磁盘进行断电(power-off)程序时,映射表会被保存于固态硬盘或随身磁盘内的闪存中,以确保不会因为断电而佚失了映射表的内容。当供电给固态硬盘或随身磁盘时,固态硬盘会进行初始化程序。于初始化程序中,固态硬盘或随身磁盘可以从闪存读出映射表,以及将该映射表写回动态随机存取存储器。
一般而言,闪存的存储单元(memory cell)的浮置栅极(floating gate)会有漏电现象。在没有对存储单元进行写入操作的情形下,随着时间的增加,存储单元的浮置栅极的漏电现象会越严重。存储单元的浮置栅极的漏电现象可能会造成位数据发生错误。对于闪存的一个物理页而言,在长时间没有对此物理页进行写入操作的情形下,随着时间的增加,此物理页发生错误的位数量随之增加。一般而言,闪存配置有错误检查和纠正(Error Checking andCorrecting,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的例子包括个人计算机存储卡国际协会(PersonalComputer 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 digitalassistant,PDA)、可携式媒体播放器(portable media player,PMP)、MP3播放器、智能手机(smart phone)、数位相机、摄录机(camcorders)、录音机、游戏机、传真机、扫描器、印表机等等。
主机10与非易失性存储器装置100可利用任一种标准化接口予以有效地相互连接。例如,所述标准化接口包括小型计算机系统接口(small computersystem 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)或是其他易失性存储器(volatilememory)。非易失性存储电路130举例而言是闪存(FLASH memory)。非易失性存储电路130具有由多个物理块地址所寻址的多个非易失性存储块。主存储器120具有映射表(mapping table)MT,其中映射表MT用以记录多个逻辑块地址与非易失性存储电路130的物理块地址的转换关系。非易失性存储器装置100的控制器110依据主存储器120内的映射表MT,将主机10的存取指令(例如「写」指令、「读」指令或是其他指令)的逻辑地址转换为非易失性存储电路130的物理地址。
在没有对闪存的存储单元进行写入操作的情形下,随着时间的增加,存储单元的浮置栅极的漏电现象会越严重。存储单元的浮置栅极的漏电现象可能会造成位数据发生错误。若以闪存(非易失性存储电路130)的一个物理页观之,在长时间没有对此物理页进行写入操作的情形下,随着时间的增加,此物理页发生错误的位数量随之增加。当一个物理页中发生错误的位数量小于某个容忍数量时,错误检查和纠正(Error Checking and Correcting,ECC)机制可以修正这些发生错误的位,因此非易失性存储电路130可以提供正确数据给主机10。当一个物理页中发生错误的位数量大于所述某个容忍数量时,则所述ECC机制就无法修正这些发生错误的位。错误位太多而无法被ECC机制修复,将造成数据的遗失。因此必须有一种机制,在物理页的数据还能被ECC机制修正回来的情况下,即时地将错误位很多的物理页(或物理块)的数据搬移/复制到另一个物理页(或物理块)。
图2是依照本发明一实施例说明图1所示非易失性存储器装置100的操作方法示意图。请参照图1与图2,于步骤S210中配置非易失性存储电路130、主存储器120与控制器110于非易失性存储器装置100。控制器110进行步骤S220,以便将主机端的多个逻辑地址(例如,逻辑块地址(logicalblock 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中所有尚未被分配的自由块(FreeBlock)被放在一个自由块池(Free Block Pool)中。当某个子映射表需要额外的非易失性存储块(物理块)时,控制器110可以从自由块池申请一个自由块给所述某个子映射表。前述从自由块池申请一个自由块,可以根据平均磨损(Wear leveling)的策略进行分配。
这些逻辑块地址群组(或这些子映射表SMT_1~SMT_n)的每一个被分配有一个群组年龄参数。例如,第一个逻辑块地址群组(或子映射表SMT_1)被分配有一个群组年龄参数Age_1,第二个逻辑块地址群组(或子映射表SMT_2)被分配有一个群组年龄参数Age_2,而第n个逻辑块地址群组(或子映射表SMT_n)被分配有一个群组年龄参数Age_n。这些群组年龄参数Age_1~Age_n的初始值可以依照设计需求来决定。举例来说,在一些实施例中,这些群组年龄参数Age_1~Age_n的初始值可以是-15、0、10或是其他实数。这些群组年龄参数Age_1~Age_n分别表示这些逻辑块地址群组(或这些子映射表SMT_1~SMT_n)没有被写入数据的期间的时间长度。在一些实施例中,控制器110可以计时方式而触发这些群组年龄参数Age_1~Age_n的调整。在另一些实施例中,控制器110可以依据主机10的「写」指令而触发这些群组年龄参数Age_1~Age_n的调整(步骤S230)。
举例来说,在一些实施例中,当主机10发出「写」指令给控制器110时,控制器110在步骤S230中可以对这些群组年龄参数Age_1~Age_n各自增加一个步阶值。所述步阶值可以视设计需求来决定。举例来说,所述步阶值可以是1或其他实数。在另一些实施例中,当主机10发出「写」指令给控制器110时,控制器110在步骤S230中可以对这些群组年龄参数Age_1~Age_n各自减少一个步阶值。
在另一些实施例中,控制器110具有一个指针,以指向这些群组年龄参数Age_1~Age_n的其中一目标年龄参数。当主机10发出「写」指令给控制器110时,控制器110在步骤S230中只对指针所指的目标年龄参数增加一个步阶值,并使指针改指向这些群组年龄参数Age_1~Age_n中的下一个年龄参数作为新的目标年龄参数。举例来说,假设指针指向群组年龄参数Age_1。当主机10发出「写」指令给控制器110时,控制器110只对指针所指的目标年龄参数(此时为群组年龄参数Age_1)增加一个步阶值,而其他群组年龄参数Age_2~Age_n不会被更动。在群组年龄参数Age_1完成增加后,控制器110使指针改指向下一个年龄参数(例如群组年龄参数Age_2)作为新的目标年龄参数。当主机10发出另一个「写」指令给控制器110时,控制器110只对指针所指的目标年龄参数(此时为群组年龄参数Age_2)增加一个步阶值,而其他群组年龄参数(例如Age_1与Age_n)不会被更动。在群组年龄参数Age_2完成增加后,控制器110使指针改指向下一个年龄参数(例如群组年龄参数Age_3)作为新的目标年龄参数。
当主机10发出「写」指令给控制器110时,控制器110依照主存储器120的映射表MT将此「写」指令的目标逻辑块地址转换为目标物理块地址,然后依照此「写」指令存取非易失性存储电路130中由目标物理块地址所寻址的非易失性存储块(物理块)。在非易失性存储块(物理块)完成数据写入操作后,控制器110可以在步骤S230中将这些群组年龄参数Age_1~Age_n中所述目标逻辑块地址所对应的年龄参数重置为初始值。举例来说,假设主机10所发出「写」指令的逻辑块地址属于第n个逻辑块地址群组(或子映射表SMT_n),因此控制器110依照主存储器120的子映射表SMT_n将此「写」指令的目标逻辑块地址转换为目标物理块地址,然后依照此「写」指令存取非易失性存储电路130中由目标物理块地址所寻址的非易失性存储块(物理块)。在非易失性存储块(物理块)完成数据写入操作后,控制器110可以将所述目标逻辑块地址所对应的群组年龄参数Age_n重置为初始值。所述初始值可以视设计需求来决定。举例来说,所述初始值可以是0或其他实数。
于步骤S240中,控制器110可以检查这些群组年龄参数Age_1~Age_n是否超出预设范围。所述预设范围可以视设计需求来决定。若这些群组年龄参数Age_1~Age_n都没有超出预设范围,则控制器110可以回到步骤S230,以便等待主机10所发出的下一个「写」指令。当这些群组年龄参数Age_1~Age_n中的一个年龄参数超出预设范围时,控制器110可以进行步骤S250,以对该年龄参数所对应的某一个对应逻辑块地址群组的逻辑块地址所对应的非易失性存储块进行扫描操作,以检查错误位数量。举例来说(但不限于此),控制器110可以在步骤S240中比较这些群组年龄参数Age_1~Age_n与一个阈值,以判断这些群组年龄参数Age_1~Age_n与该预设范围的关系。所述阈值可以视设计需求来决定。假设控制器110发现第1个逻辑块地址群组(或子映射表SMT_1)的群组年龄参数Age_1大于该阈值,因此控制器110可以对群组年龄参数Age_1所对应的第1个逻辑块地址群组(或子映射表SMT_1)的逻辑块地址所对应的一个或多个非易失性存储块(非易失性存储电路130的物理块)进行扫描操作,以检查错误位数量。
步骤S230与步骤S240的实现方式不应受限于上述。例如,在另一些实施例中,当主机10发出「写」指令给控制器110时,控制器110在步骤S230中只对指针所指的目标年龄参数减少一个步阶值,并使指针改指向这些群组年龄参数Age_1~Age_n中的下一个年龄参数作为新的目标年龄参数。举例来说,假设指针指向群组年龄参数Age_1。当主机10发出「写」指令给控制器110时,控制器110只对指针所指的目标年龄参数(此时为群组年龄参数Age_1)减少一个步阶值,而其他群组年龄参数Age_2~Age_n不会被更动。在群组年龄参数Age_1完成减少后,控制器110使指针改指向下一个年龄参数(例如群组年龄参数Age_2)作为新的目标年龄参数。当主机10发出另一个「写」指令给控制器110时,控制器110只对指针所指的目标年龄参数(此时为群组年龄参数Age_2)减少一个步阶值,而其他群组年龄参数(例如Age_1与Age_n)不会被更动。在群组年龄参数Age_2完成减少后,控制器110使指针改指向下一个年龄参数(例如群组年龄参数Age_3)作为新的目标年龄参数。于步骤S240中,控制器110可以比较这些群组年龄参数Age_1~Age_n与一个阈值,以判断这些群组年龄参数Age_1~Age_n与该预设范围的关系。所述阈值可以视设计需求来决定。假设控制器110发现第1个逻辑块地址群组(或子映射表SMT_1)的群组年龄参数Age_1小于该阈值,因此控制器110可以对群组年龄参数Age_1所对应的第1个逻辑块地址群组(或子映射表SMT_1)的逻辑块地址所对应的一个或多个非易失性存储块(非易失性存储电路130的物理块)进行扫描操作(步骤S250),以检查错误位数量。
控制器110还可以在步骤S250中依据该扫描操作的结果而决定是否将对应逻辑块地址群组的逻辑块地址所对应的一个或多个非易失性存储块进行一存储块数据搬移操作。举例来说,假设该扫描操作的结果表示群组年龄参数Age_1所对应的第1个逻辑块地址群组(子映射表SMT_1)所对应的一个非易失性存储块(非易失性存储电路130的某一个物理块,在此称为可疑存储块)的错误位数量太多。控制器110可以在步骤S250中将第1个逻辑块地址群组(子映射表SMT_1)所对应的所述可疑存储块进行存储块数据搬移操作。控制器110可以将所述可疑存储块的数据搬移至一个空闲存储块(亦即从自由块池申请一个自由块),以及控制器110可以将所述可疑存储块所对应的群组年龄参数Age_1重置为初始值。所述初始值可以视设计需求来决定。举例来说,所述初始值可以是0或其他实数。在将可疑存储块的数据搬移至空闲存储块后,子映射表SMT_1被更新,以便将所述空闲存储块取代所述可疑存储块,并将所述可疑存储块释放回自由块池中。
因此,本实施例所述非易失性存储器装置100及其操作方法可以记录多个逻辑块地址群组(或子映射表SMT_1~SMT_n)各自的群组年龄参数Age_1~Age_n。这些群组年龄参数Age_1~Age_n可以表示这些逻辑块地址群组未被进行写入操作的时间长度。在长时间没有对一个物理块进行写入操作的情形下,随着时间的增加,此物理块发生错误的位数量随之增加。控制器110可以依照这些群组年龄参数Age_1~Age_n来灵活性决定扫描操作的时机,以便适时地检查对应存储块(物理块)发生错误的位数量。依据扫描操作的结果,控制器可以动态决定是否进行存储块数据搬移操作,以避免存储块(物理块)数据遗失。
图3是依照本发明另一实施例说明图1所示非易失性存储器装置100的操作方法示意图。一般而言,控制器110在处理完主机10的目前指令后,控制器110会进入空闲期间来等待主机10的下一个指令。请参照图1与图3,在进入空闲期间后,控制器110可以进行步骤S310,以便从多个逻辑块地址群组(或子映射表SMT_1~SMT_n)各自的群组年龄参数Age_1~Age_n中找出最大者。于步骤S320中,控制器110可以检查步骤S310所找出的最大年龄参数是否超出阈值。所述阈值可以视设计需求来决定。当步骤S310所找出的最大年龄参数没有超出阈值时,表示非易失性存储电路130的所有物理块所存储的数据都很「年轻」,因此结束图3所示流程(等待下一个空闲期间)。当步骤S310所找出的最大年龄参数超出阈值时,表示此最大年龄参数所对应的一个或多个非易失性存储块(非易失性存储电路130的物理块)的数据可能太「老」。存储在物理块的数据太「老」,意味着此物理块发生错误的位数量可能太多。因此,控制器110可以进行步骤S250,以对步骤S310所找出的最大年龄参数所对应的某一个对应逻辑块地址群组所对应的非易失性存储块(非易失性存储电路130的物理块)进行扫描操作。扫描操作可以进一步确认非易失性存储块(非易失性存储电路130的物理块)的错误位数量。图3所示步骤S320与步骤S250可以参照图2所示步骤S240与步骤S250的相关说明而类推。
于图3所示实施例中,步骤S250所述扫描操作包括子步骤S251~S255。于步骤S251中,控制器110可以将对应逻辑块地址群组(亦即步骤S310所找出最大年龄参数所对应的群组)所对应的非易失性存储块(非易失性存储电路130的物理块)进行粗略扫描。于步骤S252中,控制器110可以从粗略扫描的结果而获知物理页的错误位数量是否大于第一阈值。所述第一阈值可以视设计需求来决定。举例来说(但不限于此),假设步骤S310所找出最大年龄参数是群组年龄参数Age_1,因此控制器110可以于步骤S251中随机地(或依某一规则)从第一个逻辑块地址群组(或子映射表SMT_1)所对应的多个非易失性存储块(非易失性存储电路130的物理块)中选择一个物理页,以及检查此经选择物理页的错误位数量。当此经选择物理页的错误位数量小于第一阈值时,图3所示流程会被结束(等待下一个空闲期间)。当此经选择物理页的错误位数量大于第一阈值时,表示此经选择物理页所属的非易失性存储块(非易失性存储电路130的物理块)是可疑存储块,因此控制器110可以进行步骤S253以进行细扫描。
控制器110可以依照粗略扫描的结果来决定是否将对应逻辑块地址群组所对应的非易失性存储块的其中一个可疑存储块进行细扫描。于步骤S253中,控制器110可以对此可疑存储块进行细扫描(或检查此可疑存储块的全部物理页)。在一实施例中,控制器110可以仅对此可疑存储块的有效物理页进行细扫描。上述有效物理页地址与逻辑地址的对应关系可被记录于一表格(table)中,也就是说,存储器的每一有效物理页地址皆可被对应至某一逻辑地址。举例来说,可藉由查表先得知此可疑存储块的有效物理页地址,再对上述有效物理页进行细扫描。于步骤S254中,控制器110可以从细扫描的结果而获知物理页的错误位数量是否大于第二阈值。所述第二阈值可以视设计需求来决定。举例来说(但不限于此),假设步骤S310所找出最大年龄参数是群组年龄参数Age_2,群组年龄参数Age_2对应的物理块其中有一物理页的错误位数量大于第一阈值(满足步骤S252与S253)。当步骤S254判断此可疑存储块的所有物理页的错误位数量均小于第二阈值时,则图3所示流程会被结束(等待下一个空闲期间),此时群组年龄参数Age_2尚未被重置。控制器110可以依照细扫描的结果来决定是否对可疑存储块进行存储块数据搬移操作,以将可疑存储块的数据搬移至空闲存储块。当步骤S254判断此可疑存储块中有某一个物理页的错误位数量大于第二阈值时,表示此可疑存储块的错误位太多,因此控制器110可以进行步骤S255以准备进行存储块数据搬移操作,以及将所述可疑存储块所对应的群组年龄参数重置为初始值。
一般而言,空闲期间是很短暂的。为了避免影响非易失性存储器装置100的操作效率,步骤S255是将此可疑存储块的「存储块数据搬移标记」的值设为「真」(例如逻辑值1),而不是真正对此可疑存储块进行存储块数据搬移操作。完成步骤S255后,图3所示流程会被结束(等待下一个空闲期间)。图4是依照本发明一实施例说明存储块数据搬移操作的操作方法示意图。请参照图1与图4,在进入空闲期间后,控制器110可以进行步骤S410,以便检查非易失性存储电路130的所有物理块(非易失性存储块)的「存储块数据搬移标记」。当控制器110在步骤S410判断非易失性存储电路130的所有物理块的「存储块数据搬移标记」的值均不为「真」时,图4所示流程会被结束(等待下一个空闲期间)。当控制器110在步骤S410判断有一个物理块(非易失性存储块,在此称为可疑存储块)的「存储块数据搬移标记」的值为「真」时,控制器110可以进行步骤S420,以将此可疑存储块的数据搬移至空闲存储块。在将可疑存储块的数据搬移至空闲存储块后,所述可疑存储块将被所述空闲存储块取代,并将所述可疑存储块释放回自由块池中。完成步骤S420后,图4所示流程会被结束(等待下一个空闲期间)。
图5是依照本发明一实施例说明图1所示非易失性存储电路130的部份非易失性存储块(物理块)的示意图。在此假设图2所示步骤S240(或图3所示步骤S320)判断群组年龄参数Age_1超出预设范围(例如大于阈值),因此将群组年龄参数Age_1的第一逻辑块地址群组(或子映射表SMT_1)所对应的非易失性存储块(物理块)Block_A、Block_B与Block_C绘示于图5。图5虽绘示三个非易失性存储块Block_A、Block_B与Block_C,但在其他实施例中,一个逻辑块地址群组所对应的非易失性存储块的数量可能是2个、4个或更多个。举例来说,非易失性存储块Block_A具有物理页Page_A0、Page_A1、Page_A2、Page_A3、…、Page_A255,非易失性存储块Block_B具有物理页Page_B0、Page_B1、Page_B2、Page_B3、…、Page_B255,而非易失性存储块Block_C具有物理页Page_C0、Page_C1、Page_C2、Page_C3、…、Page_C255。
请参照图1、图3与图5,在一些实施例中,步骤S251所述粗略扫描可能包括下述操作。控制器110可以在步骤S251中使用一个页指针,此页指针可以指向群组年龄参数Age_1的对应逻辑块地址群组所对应的非易失性存储块Block_A、Block_B与Block_C其中一个存储块的一个物理页。例如,此页指针可以指向非易失性存储块Block_A的一个物理页Page_A0。在步骤S251中,控制器110可以检查页指针所指的物理页Page_A0的错误位数量。当页指针所指的物理页Page_A0的错误位数量小于第一阈值时,控制器110可以将页指针改指向群组年龄参数Age_1的对应逻辑块地址群组所对应的非易失性存储块Block_A、Block_B与Block_C其中另一个存储块的物理页(例如非易失性存储块Block_B的一个物理页Page_B0)。控制器110可以检查页指针所指的物理页Page_B0的错误位数量。当页指针所指的物理页Page_B0的错误位数量小于第一阈值时,控制器110可以将页指针改指向群组年龄参数Age_1的对应逻辑块地址群组所对应的非易失性存储块Block_A、Block_B与Block_C其中另一个存储块的物理页(例如非易失性存储块Block_C的一个物理页Page_C0)。控制器110可以检查页指针所指的物理页Page_C0的错误位数量。当页指针所指的物理页Page_C0的错误位数量小于第一阈值时,控制器110可以将页指针改指向群组年龄参数Age_1的对应逻辑块地址群组所对应的非易失性存储块Block_A、Block_B与Block_C其中另一个存储块的物理页(例如非易失性存储块Block_A的一个物理页Page_A1)。在目前的空闲期间,当物理页Page_A0、Page_B0与Page_C0的错误位数量都小于第一阈值时,步骤S252的判断结果为「否」,使得图3所示流程会被结束(等待下一个空闲期间)。以此类推,当进入下一个空闲期间,控制器110可以接续检查物理页Page_A1、Page_B1与Page_C1的错误位数量。当物理页Page_A1、Page_B1与Page_C1的错误位数量都小于第一阈值时,步骤S252的判断结果为「否」,使得图3所示流程会被结束(等待再下一个空闲期间)。以此类推,直到群组年龄参数Age_1的对应逻辑块地址群组所对应的非易失性存储块Block_A、Block_B与Block_C的所有物理页都完成检查,且非易失性存储块Block_A、Block_B与Block_C的所有物理页的错误位数量都小于第一阈值,则所述粗略扫描即被完成。当群组年龄参数Age_1的对应逻辑块地址群组所对应的非易失性存储块Block_A、Block_B与Block_C的所有物理页均完成粗略扫描时,亦即当非易失性存储块Block_A、Block_B与Block_C的所有物理页的错误位数量都小于第一阈值时,则控制器110可以将群组年龄参数Age_1重置为初始值。
在进行粗略扫描的过程中,当发现群组年龄参数Age_1的对应逻辑块地址群组所对应的非易失性存储块Block_A、Block_B与Block_C的一个物理页的错误位数量大于第一阈值时,亦即步骤S252的判断结果为「是」,则控制器110可以对此物理页所属的可疑存储块进行细扫描(步骤S253)。举例来说,当页指针所指的物理页Page_A1的错误位数量大于第一阈值时,由控制器110可以将物理页Page_A1所属的存储块Block_A进行细扫描。
步骤S251所述粗略扫描的实施方式不应受限于上述内容。举例来说,在另一些实施例中,步骤S251所述粗略扫描可能包括下述操作。控制器110可以在步骤S251中使用一个页指针,此页指针可以指向群组年龄参数Age_1的对应逻辑块地址群组所对应的非易失性存储块Block_A、Block_B与Block_C其中一个存储块的一个物理页。例如,此页指针可以指向非易失性存储块Block_B的一个物理页Page_B1。在步骤S251中,控制器110可以检查页指针所指的物理页Page_B1以及至少一个邻近物理页的错误位数量。所述至少一个邻近物理页是邻近于页指针所指的物理页Page_B1的一个或多个其他物理页。依照设计需求,当页指针指向物理页Page_B1时,所述至少一个邻近物理页可以包括物理页Page_B0、物理页Page_B2、物理页Page_B3与/或其他物理页。举例来说,当页指针指向物理页Page_B1时,所述至少一个邻近物理页可以包括物理页Page_B0与物理页Page_B2。当页指针所指的物理页Page_B1与所述至少一个邻近物理页(例如Page_B0与Page_B2)的错误位数量小于第一阈值时,控制器110可以将页指针改指向群组年龄参数Age_1的对应逻辑块地址群组所对应的非易失性存储块Block_A、Block_B与Block_C其中另一个存储块的物理页(例如非易失性存储块Block_C的一个物理页Page_C1)。控制器110可以检查页指针所指的物理页Page_C1与所述至少一个邻近物理页(例如Page_C0与Page_C2)的错误位数量。当页指针所指的物理页Page_C1与所述至少一个邻近物理页(例如Page_C0与Page_C2)的错误位数量小于第一阈值时,控制器110可以将页指针改指向群组年龄参数Age_1的对应逻辑块地址群组所对应的非易失性存储块Block_A、Block_B与Block_C其中另一个存储块的物理页(例如非易失性存储块Block_A的一个物理页Page_A2)。控制器110可以检查页指针所指的物理页Page_A2与所述至少一个邻近物理页(例如Page_A1与Page_A3)的错误位数量。当页指针所指的物理页Page_A2与所述至少一个邻近物理页(例如Page_A1与Page_A3)的错误位数量小于第一阈值时,控制器110可以将页指针改指向群组年龄参数Age_1的对应逻辑块地址群组所对应的非易失性存储块Block_A、Block_B与Block_C其中另一个存储块的物理页(例如非易失性存储块Block_B的一个物理页Page_B2)。以此类推,直到群组年龄参数Age_1的对应逻辑块地址群组所对应的非易失性存储块Block_A、Block_B与Block_C的所有物理页都完成检查,且非易失性存储块Block_A、Block_B与Block_C的所有物理页的错误位数量都小于第一阈值,则所述粗略扫描即被完成。当群组年龄参数Age_1的对应逻辑块地址群组所对应的非易失性存储块Block_A、Block_B与Block_C的所有物理页均完成粗略扫描时,则控制器110可以将群组年龄参数Age_1重置为初始值。在进行粗略扫描的过程中,当页指针所指的物理页与所述至少一个邻近物理页的错误位数量大于第一阈值时,控制器110可以将此页指针所指的物理页所属的存储块进行细扫描(步骤S253)。
在一些实施例中,步骤S251所述粗略扫描还可能包括下述操作。上述页指针将依据一查表指向非易失性存储块中的物理页(该些物理页可为相邻,也可为不相邻,然不以此为限),上述查表中定义了非易失性存储块中需进行粗略扫描的物理页。在一实施例中,上述查表可定义至少一非易失性存储块的多个物理页,也可定义多个非易失性存储块的多个物理页。举例来说,控制器110可依据查表Table1(未绘示)依序检查非易失性存储块Block_A中物理页的错误位数量。依据查表Table1,当页指针所指的非易失性存储块Block_A中物理页的错误位数量小于第一阈值时,控制器110可以将页指针改指向群组年龄参数Age_1的对应逻辑块地址群组所对应的非易失性存储块Block_B的物理页。以此类推,直到非易失性存储块Block_A、Block_B与Block_C的所有物理页的错误位数量都小于第一阈值,则所述粗略扫描即被完成。在另一实施例中,每一非易失性存储块亦可具有各自的查表,用以定义了各自非易失性存储块中需进行粗略扫描的物理页。举例来说,控制器110可依据查表Table2(未绘示)依序检查非易失性存储块Block_B中物理页的错误位数量,控制器110可依据查表Table3(未绘示)依序检查非易失性存储块Block_C中物理页的错误位数量。
步骤S253所述细扫描可能包括下述操作。控制器110可以在步骤S253中检查该页指针所指的物理页Page_A1所属的存储块Block_A的所有物理页Page_A0~Page_A255,以获得物理页Page_A0~Page_A255的有效数据的错误位数量。当页指针所对应的存储块Block_A所属的所有物理页Page_A0~Page_A255各自的有效数据的错误位数量均小于第二阈值时,步骤S254的判断结果为「否」,使得控制器110将对应逻辑块地址群组(或子映射表SMT_1)所对应的群组年龄参数Age_1重置为初始值,以及结束图3所示流程(等待下一个空闲期间)。当页指针所对应的存储块Block_A所属的所有物理页Page_A0~Page_A255的其中一个物理页(例如物理页Page_A3)的有效数据的错误位数量大于第二阈值时,控制器110可以将页指针所对应的存储块Block_A进行「存储块数据搬移操作」(步骤S255)以将存储块Block_A的数据搬移至空闲存储块。在完成「存储块数据搬移操作」后,控制器110可以将对应逻辑块地址群组(或子映射表SMT_1)所对应的群组年龄参数Age_1重置为初始值。
本案所述「扫描操作」的实现方式不应限于图3所述。例如在另一些实施例中,所述「扫描操作」可能包括下述操作。在此假设群组年龄参数Age_1超出预设范围(例如大于阈值),因此群组年龄参数Age_1的第一逻辑块地址群组(或子映射表SMT_1)所对应的非易失性存储块(物理块)Block_A、Block_B与Block_C被绘示于图5。因为群组年龄参数Age_1大于阈值,所以第一逻辑块地址群组(或子映射表SMT_1)所对应的非易失性存储块(物理块)Block_A、Block_B与Block_C将会进行「扫描操作」。请参照图1与图5,控制器110可以使用一个页指针,此页指针指向对应逻辑块地址群组(第一逻辑块地址群组,或子映射表SMT_1)所对应的非易失性存储块其中一个存储块的物理页。例如,此页指针可以指向非易失性存储块Block_A的一个物理页Page_A0。控制器110可以检查页指针所指的物理页Page_A0的错误位数量。当页指针所指的物理页Page_A0的错误位数量小于第一阈值时,控制器110可以将页指针改指向非易失性存储块Block_A、Block_B与Block_C其中另一个存储块的物理页(例如非易失性存储块Block_B的一个物理页Page_B0)。控制器110可以检查页指针所指的物理页Page_B0的错误位数量。当页指针所指的物理页Page_B0的错误位数量小于第一阈值时,控制器110可以将页指针改指向非易失性存储块Block_A、Block_B与Block_C其中另一个存储块的物理页(例如非易失性存储块Block_C的一个物理页Page_C0)。控制器110可以检查页指针所指的物理页Page_C0的错误位数量。当页指针所指的物理页Page_C0的错误位数量小于第一阈值时,控制器110可以将页指针改指向非易失性存储块Block_A、Block_B与Block_C其中另一个存储块的物理页(例如非易失性存储块Block_A的一个物理页Page_A1)。以此类推,当对应逻辑块地址群组(第一逻辑块地址群组,或子映射表SMT_1)所对应的非易失性存储块Block_A、Block_B与Block_C的所有物理页均完成扫描操作时,也就是当非易失性存储块Block_A、Block_B与Block_C的所有物理页的错误位数量都小于第一阈值时,控制器110可以将对应逻辑块地址群组(第一逻辑块地址群组,或子映射表SMT_1)所对应的群组年龄参数Age_1重置为初始值。当页指针所指的物理页(例如物理页Page_C0)的错误位数量大于阈值时,控制器110可以将该物理页所属的存储块(例如存储块Block_C)进行「存储块数据搬移操作」,以将存储块的数据搬移至空闲存储块。在一实施例中,当该物理页所属的存储块(例如存储块Block_C)的数据被搬移后,该存储块(例如存储块Block_C)所对应的群组年龄参数Age_1重置为初始值。
在又一些实施例中,所述「扫描操作」可能包括下述操作。在此假设群组年龄参数Age_1超出预设范围(例如大于阈值),因此群组年龄参数Age_1的第一逻辑块地址群组(或子映射表SMT_1)所对应的非易失性存储块(物理块)Block_A、Block_B与Block_C被绘示于图5。因为群组年龄参数Age_1大于阈值,所以第一逻辑块地址群组(或子映射表SMT_1)所对应的非易失性存储块(物理块)Block_A、Block_B与Block_C将会进行「扫描操作」。请参照图1与图5,控制器110可以使用一个块指针,此块指针指向对应逻辑块地址群组(第一逻辑块地址群组,或子映射表SMT_1)所对应的非易失性存储块其中一个存储块。例如,此块指针可以指向非易失性存储块(物理块)Block_A、Block_B与Block_C其中一个存储块Block_A。控制器110可以检查块指针所指的存储块Block_A的全部物理页的错误位数量。当块指针所指的存储块Block_A的错误位数量小于阈值时,控制器110可以将块指针改指向非易失性存储块Block_A、Block_B与Block_C其中另一个存储块(例如存储块Block_B)。控制器110可以检查块指针所指的存储块Block_B的全部物理页的错误位数量。当块指针所指的存储块Block_B的错误位数量小于阈值时,控制器110可以将块指针改指向非易失性存储块Block_A、Block_B与Block_C其中另一个存储块(例如存储块Block_C)。控制器110可以检查块指针所指的存储块Block_C的全部物理页的错误位数量。当块指针所指的存储块Block_C的错误位数量小于阈值时,控制器110可以将块指针改指向非易失性存储块Block_A、Block_B与Block_C其中另一个存储块(例如存储块Block_A)。
当对应逻辑块地址群组(第一逻辑块地址群组,或子映射表SMT_1)所对应的非易失性存储块Block_A、Block_B与Block_C均完成扫描操作时,也就是当非易失性存储块Block_A、Block_B与Block_C的错误位数量都小于阈值时,控制器110可以将对应逻辑块地址群组(第一逻辑块地址群组,或子映射表SMT_1)所对应的群组年龄参数Age_1重置为初始值。当块指针所指的存储块(例如物理页存储块Block_C)的错误位数量大于阈值时,控制器110可以将块指针所指的存储块Block_C进行「存储块数据搬移操作」,以将存储块Block_C的数据搬移至空闲存储块。在一实施例中,当上述存储块(例如存储块Block_C)的数据被搬移后,该存储块(例如存储块Block_C)所对应的群组年龄参数Age_1重置为初始值。
在另一些实施例中,在某一物理块完成数据写入操作后,控制器110可以将这些群组年龄参数Age_1~Age_n中所述某一物理块所对应的群组年龄参数「减少」一个步阶值。因此在另一些实施例中,图3所示一个或多个步骤可以被对应改变。例如,在进入空闲期间后,控制器110可以进行步骤S310,以便从多个逻辑块地址群组(或子映射表SMT_1~SMT_n)各自的群组年龄参数Age_1~Age_n中找出「最小者」。于步骤S320中,控制器110可以检查步骤S310所找出的「最小年龄参数」是否「小于」阈值。所述阈值可以视设计需求来决定。当步骤S310所找出的「最小年龄参数」没有「小于」阈值时,表示非易失性存储电路130的所有物理块所存储的数据都很「年轻」,因此结束图3所示流程(等待下一个空闲期间)。当步骤S310所找出的「最小年龄参数」「小于」阈值时,表示此「最小年龄参数」所对应的一个或多个非易失性存储块(非易失性存储电路130的物理块)的数据可能太「老」。因此,控制器110可以进行步骤S250,以对步骤S310所找出的「最小年龄参数」所对应的某一个对应逻辑块地址群组所对应的非易失性存储块(非易失性存储电路130的物理块)进行扫描操作。
值得注意的是,在不同的应用情境中,控制器110与/或主存储器120的相关功能可以利用一般的编程语言(programming languages,例如C或C++)、硬件描述语言(hardware description languages,例如Verilog HDL或VHDL)或其他合适的编程语言来实现为软件、固件或硬件。可执行所述相关功能的软件(或固件)可以被布置为任何已知的计算机可存取媒体(computer-accessible medias),例如磁带(magnetic tapes)、半导体(semiconductors)存储器、磁盘(magnetic disks)或光盘(compact disks,例如CD-ROM或DVD-ROM),或者可通过互联网(Internet)、有线通信(wiredcommunication)、无线通信(wireless communication)或其它通信介质传送所述软件(或固件)。所述软件(或固件)可以被存放在计算机的可存取媒体中,以便于由计算机的处理器来存取/执行所述软件(或固件)的编程码(programming codes)。另外,本发明的装置和方法可以通过硬件和软件的组合来实现。
综上所述,本发明诸实施例所述非易失性存储器装置100及其操作方法可以记录多个逻辑块地址群组(或子映射表SMT_1~SMT_n)各自的群组年龄参数Age_1~Age_n。这些群组年龄参数Age_1~Age_n可以表示这些逻辑块地址群组已有多久未被进行写入操作。在长时间没有对一个物理块进行写入操作的情形下,随着时间的增加,此物理块发生错误的位数量随之增加。非易失性存储器装置100的控制器110可以依照这些群组年龄参数Age_1~Age_n来灵活性决定扫描操作的时机,以便适时地检查非易失性存储电路130的部份存储块(物理块)发生错误的位数量。每次所进行扫描操作的对象不是非易失性存储电路130的全部存储块,因此可以避免影响非易失性存储器装置100的运作效能。依据扫描操作的结果,控制器可以动态决定是否进行存储块数据搬移操作,以避免存储块(物理块)数据遗失。
虽然本发明已以实施例揭露如上,然其并非用以限定本发明,任何本领域技术人员,在不脱离本发明的精神和范围内,当可作些许的更动与润饰,故本发明的保护范围当权利要求书所界定者为准。
Claims (46)
1.一种非易失性存储器装置,包括:
一非易失性存储电路,具有由多个物理块地址所寻址的多个非易失性存储块;
一主存储器,用以存放一映射表,其中该映射表用以记录多个逻辑块地址与该些物理块地址的转换关系;以及
一控制器,耦接至该主存储器与该非易失性存储电路,其中该控制器将该些逻辑块地址分群为多个逻辑块地址群组,而该些逻辑块地址群组的每一个包括多个逻辑块地址;该些逻辑块地址群组的每一个被分配有一个群组年龄参数;该些群组年龄参数的调整是由一主机的写指令所触发;当该些群组年龄参数中的一个年龄参数超出一预设范围时,该控制器对该年龄参数所对应的一对应逻辑块地址群组的该些逻辑块地址所对应的该些非易失性存储块进行一扫描操作以检查错误位数量;以及该控制器依据该扫描操作的结果而决定是否对该对应逻辑块地址群组的该些逻辑块地址所对应的该些非易失性存储块的其中一个存储块进行一存储块数据搬移操作。
2.根据权利要求1所述的非易失性存储器装置,其中当该主机发出该写指令给该控制器时,该控制器对该些群组年龄参数各自增加一步阶值。
3.根据权利要求1所述的非易失性存储器装置,其中当该主机发出该写指令给该控制器时,该控制器对该些群组年龄参数各自减少一步阶值。
4.根据权利要求1所述的非易失性存储器装置,其中一指针指向该些群组年龄参数的其中一目标年龄参数;以及当该主机发出该写指令给该控制器时,该控制器对该指针所指的该目标年龄参数增加一步阶值,并使该指针改指向该些群组年龄参数中的下一个年龄参数作为新的目标年龄参数。
5.根据权利要求1所述的非易失性存储器装置,其中一指针指向该些群组年龄参数的其中一目标年龄参数;以及当该主机发出该写指令给该控制器时,该控制器对该指针所指的该目标年龄参数减少一步阶值,并使该指针改指向该些群组年龄参数中的下一个年龄参数作为新的目标年龄参数。
6.根据权利要求1所述的非易失性存储器装置,其中当该主机发出该写指令给该控制器时,该控制器依照该映射表将该写指令的一目标逻辑块地址转换为一目标物理块地址,依照该写指令存取该目标物理块地址所寻址的一非易失性存储块,以及将该些群组年龄参数中该目标逻辑块地址所对应的一年龄参数重置为一初始值。
7.根据权利要求1所述的非易失性存储器装置,其中该控制器比较该些群组年龄参数与一阈值以判断该些群组年龄参数与该预设范围的关系;当该些群组年龄参数中的一个年龄参数大于该阈值时,该控制器对该年龄参数所对应的该对应逻辑块地址群组的该些逻辑块地址所对应的该些非易失性存储块进行该扫描操作以检查错误位数量。
8.根据权利要求1所述的非易失性存储器装置,其中该控制器比较该些群组年龄参数与一阈值以判断该些群组年龄参数与该预设范围的关系;当该些群组年龄参数中的一个年龄参数小于该阈值时,该控制器对该年龄参数所对应的该对应逻辑块地址群组的该些逻辑块地址所对应的该些非易失性存储块进行该扫描操作以检查错误位数量。
9.根据权利要求1所述的非易失性存储器装置,其中该扫描操作包括:
由该控制器对该对应逻辑块地址群组所对应的该些非易失性存储块进行一粗略扫描;
由该控制器依照该粗略扫描的结果来决定是否对该对应逻辑块地址群组所对应的该些非易失性存储块的其中一个可疑存储块进行一细扫描;以及
由该控制器依照该细扫描的结果来决定是否对该可疑存储块进行该存储块数据搬移操作,以将该可疑存储块的数据搬移至一空闲存储块。
10.根据权利要求9所述的非易失性存储器装置,其中该粗略扫描包括:
由一页指针指向该对应逻辑块地址群组所对应的该些非易失性存储块其中一个存储块的一物理页;
由该控制器检查该页指针所指的该物理页以及至少一邻近物理页的错误位数量;以及
当该页指针所指的该物理页以及所述至少一邻近物理页的该错误位数量小于一第一阈值时,由该控制器将该页指针改指向该对应逻辑块地址群组所对应的该些非易失性存储块其中另一个存储块的一物理页。
11.根据权利要求10所述的非易失性存储器装置,其中当该页指针所指的该物理页以及所述至少一邻近物理页的该错误位数量大于该第一阈值时,由该控制器将该物理页所属的该存储块进行该细扫描。
12.根据权利要求9所述的非易失性存储器装置,其中该粗略扫描包括:
由一页指针指向该对应逻辑块地址群组所对应的该些非易失性存储块其中一个存储块的一物理页;
由该控制器检查该页指针所指的该物理页的错误位数量;以及
当该页指针所指的该物理页的该错误位数量小于一第一阈值时,由该控制器将该页指针改指向该对应逻辑块地址群组所对应的该些非易失性存储块其中另一个存储块的一物理页。
13.根据权利要求12所述的非易失性存储器装置,其中当该页指针所指的该物理页的该错误位数量大于该第一阈值时,由该控制器将该物理页所属的该存储块进行该细扫描。
14.根据权利要求9所述的非易失性存储器装置,其中当该对应逻辑块地址群组所对应的该些非易失性存储块的所有物理页均完成该粗略扫描时,由该控制器将该对应逻辑块地址群组所对应的该年龄参数重置为一初始值。
15.根据权利要求9所述的非易失性存储器装置,其中该细扫描包括:
由一页指针指向该对应逻辑块地址群组所对应的该些非易失性存储块其中一个存储块的一物理页;
由该控制器检查该页指针所指的该物理页所属的该存储块的有效物理页各自的错误位数量;以及
当该页指针所对应的该存储块所属的有效物理页各自的该错误位数量均小于一第二阈值时,该控制器不重置该对应逻辑块地址群组所对应的该年龄参数。
16.根据权利要求9所述的非易失性存储器装置,其中该细扫描包括:
由一页指针指向该对应逻辑块地址群组所对应的该些非易失性存储块其中一个存储块的一物理页;
由该控制器检查该页指针所指的该物理页所属的该存储块的所有物理页各自的错误位数量;以及
当该页指针所对应的该存储块所属的所有物理页各自的该错误位数量均小于一第二阈值时,该控制器不重置该对应逻辑块地址群组所对应的该年龄参数。
17.根据权利要求9所述的非易失性存储器装置,其中当该可疑存储块的其中一个物理页的该错误位数量大于一第二阈值时,由该控制器将该可疑存储块进行该存储块数据搬移操作以将该可疑存储块的数据搬移至该空闲存储块,以及由该控制器将该对应逻辑块地址群组所对应的该年龄参数重置为该初始值。
18.根据权利要求1所述的非易失性存储器装置,其中该扫描操作包括:
由一页指针指向该对应逻辑块地址群组所对应的该些非易失性存储块其中一个存储块的一物理页;
由该控制器检查该页指针所指的该物理页的错误位数量;以及
当该页指针所指的该物理页的该错误位数量小于一阈值时,由该控制器将该页指针改指向该对应逻辑块地址群组所对应的该些非易失性存储块其中另一个存储块的一物理页。
19.根据权利要求18所述的非易失性存储器装置,其中当该对应逻辑块地址群组所对应的该些非易失性存储块的所有物理页均完成该扫描操作时,由该控制器将该对应逻辑块地址群组所对应的该年龄参数重置为一初始值。
20.根据权利要求18所述的非易失性存储器装置,其中当该页指针所指的该物理页的该错误位数量大于该阈值时,由该控制器将该物理页所属的该存储块进行该存储块数据搬移操作,以将该存储块的数据搬移至一空闲存储块。
21.根据权利要求1所述的非易失性存储器装置,其中该扫描操作包括:
由一块指针指向该对应逻辑块地址群组所对应的该些非易失性存储块其中一个存储块;
由该控制器检查该块指针所指的该存储块的错误位数量;以及
当该块指针所指的该存储块的该错误位数量小于一阈值时,由该控制器将该块指针改指向该对应逻辑块地址群组所对应的该些非易失性存储块其中另一个存储块。
22.根据权利要求21所述的非易失性存储器装置,其中当该对应逻辑块地址群组所对应的该些非易失性存储块均完成该扫描操作时,由该控制器将该对应逻辑块地址群组所对应的该年龄参数重置为一初始值。
23.根据权利要求21所述的非易失性存储器装置,其中当该块指针所指的该存储块的该错误位数量大于该阈值时,由该控制器将该块指针所指的该存储块进行该存储块数据搬移操作,以将该存储块的数据搬移至一空闲存储块。
24.一种非易失性存储器装置的操作方法,包括:
配置一非易失性存储电路,其中该非易失性存储电路具有由多个物理块地址所寻址的多个非易失性存储块;
配置一主存储器以存放一映射表,其中该映射表用以记录多个逻辑块地址与该些物理块地址的转换关系;
由一控制器将该些逻辑块地址分群为多个逻辑块地址群组,其中该些逻辑块地址群组的每一个包括多个逻辑块地址,以及该些逻辑块地址群组的每一个被分配有一个群组年龄参数;
依据一主机的写指令而触发该些群组年龄参数的调整;
当该些群组年龄参数中的一个年龄参数超出一预设范围时,由该控制器对该年龄参数所对应的一对应逻辑块地址群组的该些逻辑块地址所对应的该些非易失性存储块进行一扫描操作,以检查错误位数量;以及
由该控制器依据该扫描操作的结果而决定是否对该对应逻辑块地址群组的该些逻辑块地址所对应的该些非易失性存储块的其中一个存储块进行一存储块数据搬移操作。
25.根据权利要求24所述的非易失性存储器装置的操作方法,其中所述依据该主机的写指令而触发该些群组年龄参数的调整的步骤包括:
当该主机发出该写指令给该控制器时,由该控制器对该些群组年龄参数各自增加一步阶值。
26.根据权利要求24所述的非易失性存储器装置的操作方法,其中所述依据该主机的写指令而触发该些群组年龄参数的调整的步骤包括:
当该主机发出该写指令给该控制器时,由该控制器对该些群组年龄参数各自减少一步阶值。
27.根据权利要求24所述的非易失性存储器装置的操作方法,其中所述依据该主机的写指令而触发该些群组年龄参数的调整的步骤包括:
由一指针指向该些群组年龄参数的其中一目标年龄参数;以及
当该主机发出该写指令给该控制器时,由该控制器对该指针所指的该目标年龄参数增加一步阶值,并使该指针改指向该些群组年龄参数中的下一个年龄参数作为新的目标年龄参数。
28.根据权利要求24所述的非易失性存储器装置的操作方法,其中所述依据该主机的写指令而触发该些群组年龄参数的调整的步骤包括:
由一指针指向该些群组年龄参数的其中一目标年龄参数;以及
当该主机发出该写指令给该控制器时,由该控制器对该指针所指的该目标年龄参数减少一步阶值,并使该指针改指向该些群组年龄参数中的下一个年龄参数作为新的目标年龄参数。
29.根据权利要求24所述的非易失性存储器装置的操作方法,其中所述依据该主机的写指令而触发该些群组年龄参数的调整的步骤包括:
当该主机发出该写指令给该控制器时,由该控制器依照该映射表将该写指令的一目标逻辑块地址转换为一目标物理块地址,依照该写指令存取该目标物理块地址所寻址的一非易失性存储块,以及将该些群组年龄参数中该目标逻辑块地址所对应的一年龄参数重置为一初始值。
30.根据权利要求24所述的非易失性存储器装置的操作方法,还包括:
由该控制器比较该些群组年龄参数与一阈值,以判断该些群组年龄参数与该预设范围的关系;
当该些群组年龄参数中的一个年龄参数大于该阈值时,由该控制器对该年龄参数所对应的该对应逻辑块地址群组的该些逻辑块地址所对应的该些非易失性存储块进行该扫描操作,以检查错误位数量。
31.根据权利要求24所述的非易失性存储器装置的操作方法,还包括:
由该控制器比较该些群组年龄参数与一阈值,以判断该些群组年龄参数与该预设范围的关系;
当该些群组年龄参数中的一个年龄参数小于该阈值时,由该控制器对该年龄参数所对应的该对应逻辑块地址群组的该些逻辑块地址所对应的该些非易失性存储块进行该扫描操作,以检查错误位数量。
32.根据权利要求24所述的非易失性存储器装置的操作方法,其中该扫描操作包括:
由该控制器对该对应逻辑块地址群组所对应的该些非易失性存储块进行一粗略扫描;
由该控制器依照该粗略扫描的结果来决定是否对该对应逻辑块地址群组所对应的该些非易失性存储块的其中一个可疑存储块进行一细扫描;以及
由该控制器依照该细扫描的结果来决定是否对该可疑存储块进行该存储块数据搬移操作,以将该可疑存储块的数据搬移至一空闲存储块。
33.根据权利要求32所述的非易失性存储器装置的操作方法,其中该粗略扫描包括:
由一页指针指向该对应逻辑块地址群组所对应的该些非易失性存储块其中一个存储块的一物理页;
由该控制器检查该页指针所指的该物理页以及至少一邻近物理页的错误位数量;以及
当该页指针所指的该物理页以及所述至少一邻近物理页的该错误位数量小于一第一阈值时,由该控制器将该页指针改指向该对应逻辑块地址群组所对应的该些非易失性存储块其中另一个存储块的一物理页。
34.根据权利要求33所述的非易失性存储器装置的操作方法,其中当该页指针所指的该物理页以及所述至少一邻近物理页的该错误位数量大于该第一阈值时,由该控制器将该物理页所属的该存储块进行该细扫描。
35.根据权利要求32所述的非易失性存储器装置的操作方法,其中该粗略扫描包括:
由一页指针指向该对应逻辑块地址群组所对应的该些非易失性存储块其中一个存储块的一物理页;
由该控制器检查该页指针所指的该物理页的错误位数量;以及
当该页指针所指的该物理页的该错误位数量小于一第一阈值时,由该控制器将该页指针改指向该对应逻辑块地址群组所对应的该些非易失性存储块其中另一个存储块的一物理页。
36.根据权利要求35所述的非易失性存储器装置的操作方法,其中当该页指针所指的该物理页的该错误位数量大于该第一阈值时,由该控制器将该物理页所属的该存储块进行该细扫描。
37.根据权利要求32所述的非易失性存储器装置的操作方法,其中当该对应逻辑块地址群组所对应的该些非易失性存储块的所有物理页均完成该粗略扫描时,由该控制器将该对应逻辑块地址群组所对应的该年龄参数重置为一初始值。
38.根据权利要求32所述的非易失性存储器装置的操作方法,其中该细扫描包括:
由一页指针指向该对应逻辑块地址群组所对应的该些非易失性存储块其中一个存储块的一物理页;
由该控制器检查该页指针所指的该物理页所属的该存储块的有效物理页各自的错误位数量;以及
当该页指针所对应的该存储块所属的有效物理页各自的该错误位数量均小于一第二阈值时,该控制器不重置该对应逻辑块地址群组所对应的该年龄参数。
39.根据权利要求32所述的非易失性存储器装置的操作方法,其中该细扫描包括:
由一页指针指向该对应逻辑块地址群组所对应的该些非易失性存储块其中一个存储块的一物理页;
由该控制器检查该页指针所指的该物理页所属的该存储块的所有物理页各自的错误位数量;以及
当该页指针所对应的该存储块所属的所有物理页各自的该错误位数量均小于一第二阈值时,该控制器不重置该对应逻辑块地址群组所对应的该年龄参数。
40.根据权利要求32所述的非易失性存储器装置的操作方法,其中当该可疑存储块的其中一个物理页的该错误位数量大于一第二阈值时,由该控制器将该可疑存储块进行该存储块数据搬移操作以将该可疑存储块的数据搬移至该空闲存储块,以及由该控制器将该对应逻辑块地址群组所对应的该年龄参数重置为该初始值。
41.根据权利要求24所述的非易失性存储器装置的操作方法,其中该扫描操作包括:
由一页指针指向该对应逻辑块地址群组所对应的该些非易失性存储块其中一个存储块的一物理页;
由该控制器检查该页指针所指的该物理页的错误位数量;以及
当该页指针所指的该物理页的该错误位数量小于一阈值时,由该控制器将该页指针改指向该对应逻辑块地址群组所对应的该些非易失性存储块其中另一个存储块的一物理页。
42.根据权利要求41所述的非易失性存储器装置的操作方法,其中当该对应逻辑块地址群组所对应的该些非易失性存储块的所有物理页均完成该扫描操作时,由该控制器将该对应逻辑块地址群组所对应的该年龄参数重置为一初始值。
43.根据权利要求41所述的非易失性存储器装置的操作方法,其中当该页指针所指的该物理页的该错误位数量大于该阈值时,由该控制器将该物理页所属的该存储块进行该存储块数据搬移操作,以将该存储块的数据搬移至一空闲存储块。
44.根据权利要求24所述的非易失性存储器装置的操作方法,其中该扫描操作包括:
由一块指针指向该对应逻辑块地址群组所对应的该些非易失性存储块其中一个存储块;
由该控制器检查该块指针所指的该存储块的错误位数量;以及
当该块指针所指的该存储块的该错误位数量小于一阈值时,由该控制器将该块指针改指向该对应逻辑块地址群组所对应的该些非易失性存储块其中另一个存储块。
45.根据权利要求44所述的非易失性存储器装置的操作方法,其中当该对应逻辑块地址群组所对应的该些非易失性存储块均完成该扫描操作时,由该控制器将该对应逻辑块地址群组所对应的该年龄参数重置为一初始值。
46.根据权利要求44所述的非易失性存储器装置的操作方法,其中当该块指针所指的该存储块的该错误位数量大于该阈值时,由该控制器将该块指针所指的该存储块进行该存储块数据搬移操作,以将该存储块的数据搬移至一空闲存储块。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW105108737 | 2016-03-22 | ||
TW105108737A TWI631463B (zh) | 2016-03-22 | 2016-03-22 | 非揮發性記憶體裝置及其操作方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105975404A true CN105975404A (zh) | 2016-09-28 |
CN105975404B CN105975404B (zh) | 2019-02-01 |
Family
ID=56994014
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610292194.6A Active CN105975404B (zh) | 2016-03-22 | 2016-05-05 | 非易失性存储器装置及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10289559B2 (zh) |
CN (1) | CN105975404B (zh) |
TW (1) | TWI631463B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108073475A (zh) * | 2016-11-15 | 2018-05-25 | 广明光电股份有限公司 | 固态硬盘备份对照表的方法 |
CN110389906A (zh) * | 2018-04-23 | 2019-10-29 | 旺宏电子股份有限公司 | 存储器元件中重新编排数据的方法、及其控制器与系统 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9971515B2 (en) * | 2016-09-13 | 2018-05-15 | Western Digital Technologies, Inc. | Incremental background media scan |
CN108877858B (zh) * | 2017-05-10 | 2021-02-19 | 慧荣科技股份有限公司 | 储存装置以及刷新方法 |
CN108877856B (zh) | 2017-05-10 | 2021-02-19 | 慧荣科技股份有限公司 | 储存装置、记录方法以及预载方法 |
US11340810B2 (en) * | 2018-10-09 | 2022-05-24 | Western Digital Technologies, Inc. | Optimizing data storage device operation by grouping logical block addresses and/or physical block addresses using hints |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6539503B1 (en) * | 1999-11-23 | 2003-03-25 | Hewlett-Packard Company | Method and apparatus for testing error detection |
CN103597443A (zh) * | 2011-11-14 | 2014-02-19 | Lsi公司 | 存储设备固件以及制造软件 |
US8850114B2 (en) * | 2010-09-07 | 2014-09-30 | Daniel L Rosenband | Storage array controller for flash-based storage devices |
TW201539455A (zh) * | 2014-04-10 | 2015-10-16 | Phison Electronics Corp | 資料儲存方法、記憶體控制電路單元與記憶體儲存裝置 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6763424B2 (en) | 2001-01-19 | 2004-07-13 | Sandisk Corporation | Partial block data programming and reading operations in a non-volatile memory |
US7464240B2 (en) * | 2006-05-23 | 2008-12-09 | Data Ram, Inc. | Hybrid solid state disk drive with controller |
JP2011203916A (ja) | 2010-03-25 | 2011-10-13 | Toshiba Corp | メモリコントローラ、および半導体記憶装置 |
WO2011143628A2 (en) * | 2010-05-13 | 2011-11-17 | Fusion-Io, Inc. | Apparatus, system, and method for conditional and atomic storage operations |
TWI442230B (zh) | 2011-04-28 | 2014-06-21 | Phison Electronics Corp | 資料寫入方法、記憶體控制器與記憶體儲存裝置 |
US8838883B2 (en) * | 2012-04-13 | 2014-09-16 | Sandisk Technologies Inc. | System and method of adjusting a programming step size for a block of a memory |
TWI514140B (zh) | 2013-02-05 | 2015-12-21 | Via Tech Inc | 非揮發性記憶裝置及其操作方法 |
TW201608475A (zh) | 2014-08-26 | 2016-03-01 | Innodisk Corp | 非揮發性記憶體裝置之損耗平均管理方法 |
US10409526B2 (en) * | 2014-12-17 | 2019-09-10 | Violin Systems Llc | Adaptive garbage collection |
-
2016
- 2016-03-22 TW TW105108737A patent/TWI631463B/zh active
- 2016-05-05 CN CN201610292194.6A patent/CN105975404B/zh active Active
- 2016-05-27 US US15/166,272 patent/US10289559B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6539503B1 (en) * | 1999-11-23 | 2003-03-25 | Hewlett-Packard Company | Method and apparatus for testing error detection |
US8850114B2 (en) * | 2010-09-07 | 2014-09-30 | Daniel L Rosenband | Storage array controller for flash-based storage devices |
CN103597443A (zh) * | 2011-11-14 | 2014-02-19 | Lsi公司 | 存储设备固件以及制造软件 |
TW201539455A (zh) * | 2014-04-10 | 2015-10-16 | Phison Electronics Corp | 資料儲存方法、記憶體控制電路單元與記憶體儲存裝置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108073475A (zh) * | 2016-11-15 | 2018-05-25 | 广明光电股份有限公司 | 固态硬盘备份对照表的方法 |
CN110389906A (zh) * | 2018-04-23 | 2019-10-29 | 旺宏电子股份有限公司 | 存储器元件中重新编排数据的方法、及其控制器与系统 |
CN110389906B (zh) * | 2018-04-23 | 2022-12-23 | 旺宏电子股份有限公司 | 存储器元件中重新编排数据的方法、及其控制器与系统 |
Also Published As
Publication number | Publication date |
---|---|
TW201734810A (zh) | 2017-10-01 |
TWI631463B (zh) | 2018-08-01 |
US10289559B2 (en) | 2019-05-14 |
US20170277472A1 (en) | 2017-09-28 |
CN105975404B (zh) | 2019-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106021013B (zh) | 非挥发性存储器装置及其操作方法 | |
CN105975404A (zh) | 非易失性存储器装置及其操作方法 | |
US10628319B2 (en) | Methods for caching and reading data to be programmed into a storage unit and apparatuses using the same | |
US8583868B2 (en) | Storage system cache using flash memory with direct block access | |
CN106448737B (zh) | 读取闪存数据的方法、装置以及固态驱动器 | |
CN105934749B (zh) | 用于数据存储系统的垃圾收集和数据重定位 | |
US11126544B2 (en) | Method and apparatus for efficient garbage collection based on access probability of data | |
US8438361B2 (en) | Logical block storage in a storage device | |
US8832357B2 (en) | Memory system having a plurality of writing mode | |
CN108139902A (zh) | 用于提供混合模式来访问ssd驱动器的方法和装置 | |
CN110618945B (zh) | 存储系统 | |
US10372382B2 (en) | Methods and apparatus for read disturb detection based on logical domain | |
US9176865B2 (en) | Data writing method, memory controller, and memory storage device | |
US8886884B2 (en) | System and method for increasing read and write speeds of hybrid storage unit | |
CN106067321A (zh) | 适于存储器编程暂停-恢复的控制器 | |
US8516184B2 (en) | Data updating using mark count threshold in non-volatile memory | |
CN108027764B (zh) | 可转换的叶的存储器映射 | |
KR101374065B1 (ko) | 칩 레벨 평행 플래시 메모리를 위한 정보 분별 방법 및 장치 | |
CN107632942A (zh) | 一种固态硬盘实现lba级别trim命令的方法 | |
CN107341071A (zh) | 存取快闪存储器中储存单元的方法以及使用该方法的装置 | |
CN107102953A (zh) | 非易失性存储器装置及其迭代排序方法 | |
US10007601B2 (en) | Data storage device and operating method for flash memory | |
US8972650B2 (en) | Methods and systems for performing efficient page reads in a non-volatile memory | |
CN110088722A (zh) | 用于识别存储器设备中的读取或写入流的位置检测的系统和方法 | |
US9798470B2 (en) | Memory system for storing and processing translation information |
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 |