CN107608908A - 用于数据储存装置的磨损平均方法 - Google Patents

用于数据储存装置的磨损平均方法 Download PDF

Info

Publication number
CN107608908A
CN107608908A CN201710449659.9A CN201710449659A CN107608908A CN 107608908 A CN107608908 A CN 107608908A CN 201710449659 A CN201710449659 A CN 201710449659A CN 107608908 A CN107608908 A CN 107608908A
Authority
CN
China
Prior art keywords
block
data
abrasion
averaging method
blocks
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
Application number
CN201710449659.9A
Other languages
English (en)
Other versions
CN107608908B (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.)
Silicon Motion Inc
Original Assignee
Silicon Motion 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 Silicon Motion Inc filed Critical Silicon Motion Inc
Publication of CN107608908A publication Critical patent/CN107608908A/zh
Application granted granted Critical
Publication of CN107608908B publication Critical patent/CN107608908B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • G11C16/3495Circuits or methods to detect or delay wearout of nonvolatile EPROM or EEPROM memory devices, e.g. by counting numbers of erase or reprogram cycles, by using multiple memory areas serially or cyclically
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • 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
    • G06F2212/1036Life time enhancement
    • 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/7211Wear leveling
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0409Online test
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring

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)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Computer Security & Cryptography (AREA)

Abstract

本发明提出一种用于数据储存装置的磨损平均方法。所述磨损平均方法包括以下步骤:维持管理表,其中,管理表记录有对应多个区块的多个物理区块号和多个区块状态;选择具有多个区块状态之一和第一最小物理区块号的第一备用区块作为当前临时区块;从主机接收写入命令;判断写入命令中的数据是否应被写入当前临时区块;当判断结果为否,则选择具有多个区块状态之一和第二最小物理区块号的第二备用区块作为下一临时区块;以及将数据写入下一临时区块。

Description

用于数据储存装置的磨损平均方法
技术领域
本发明是有关于一种用于数据储存装置的磨损平均方法(method of wearleveling),尤其是有关于一种用于具有非挥发性存储器(non-volatile memory,NVM)的数据储存装置的磨损平均方法。
背景技术
非挥发性存储器是一种电子存储器设备,具有一些特定能力,例如在断电后仍可在一定时间内维持数据、快速的数据存取以及防震功能。因此,非挥发性存储器广泛地用于记忆卡(memory card)、固态硬盘(solid state drive,SSD)和可携式多媒体装置。非挥发性存储器包括用于储存数据的多个区块(block)。具体地,根据使用情况,区块可被命名为数据区块(data block)或备用区块(spare block)。数据区块指的是储存有(有效)数据的区块,而相对的备用区块指的是未储存有效数据的区块。通常备用区块与备用池(sparepool)或备用队列(spare queue)有关,而数据区块与数据池(data pool)有关。备用区块是从备用池或备用队列中选取出来以保存从主机(host)所发送的数据,并且在此阶段备用区块被命名为临时区块(temporary block)。当临时区块被填满数据或不再保存数据时,临时区块则被命名为数据区块,而接下来的数据会被保存至下一个临时区块。上述的过程会不断地重复。多种磨损平均和垃圾收集(garbage collection)程序已被揭露以平均地使用区块并且单独地再循环具有较少有效数据的数据区块。
非挥发性存储器存在一项非常严重的缺陷,即具有擦写次数(erase times)的限制。不同非挥发性存储器产品的规格对不同类型的非挥发性存储器推荐了不同的擦写次数。以闪存(flash memory)为例,三阶储存单元(triple-level cell,TLC)类型的闪存的擦写次数约为一千次,而单阶储存单元(single-level cell,SLC)类型的闪存的擦写次数约为十万次。 一旦达到了擦写次数,则意味着此区块将被假定为无法再正常工作且可能很快就会失效(out of work)。如果非挥发性存储器没有平均地使用它的区块,则一些区块有可能在早期阶段就失效。在这种情况下,仅剩下少许的区块可用于保存数据,而这将导致数据储存装置的寿命短于预期。另一方面,如果通过磨损平均程序可以使区块平均地被使用的话,则理论上数据储存装置的寿命可明显地延长。因此, 提供一种有效且迅速的磨损平均程序有其需要。
发明内容
因此,本发明的其一目的是提供一种用于数据储存装置的磨损平均方法,所述方法能够平均地利用区块并且迅速地选择下一个临时区块。
本发明提出一种用于数据储存装置的磨损平均方法包括以下步骤:维持管理表,其中,所述管理表记录数据储存装置的多个区块的多个物理区块号和多个区块状态;选择具有多个区块状态之一和最小物理区块号的第一备用区块作为当前临时区块;變更管理表的第一备用区块的区块状态;从主机接收写入命令;判断写入命令中的数据是否应被写入当前临时区块;当判断结果为否,则选择具有多个区块状态之一和最小物理区块号的第二备用区块作为下一个临时区块;以及将数据写入所述下一个临时区块。
本发明另提出一种用于数据储存装置的磨损平均方法包括以下步骤:维持管理表,其中,管理表记录数据储存装置的多个备用区块的多个物理区块号;选择多个备用区块中具有最小物理区块号的第一备用区块作为当前临时区块;更新管理表;从主机接收写入命令;判断写入命令中的数据是否应被写入当前临时区块;当判断结果为否,则选择多个备用区块中具有最小物理区块号的第二备用区块作为下一个临时区块;以及将所述数据写入下一个临时区块。
为让本发明之上述和其他目的、特征和优点能更明显易懂,下文特举较佳实施例并配合所附图式做详细说明如下。
附图说明
图1为依照本发明一实施例的数据储存装置的方块示意图。
图2为依照本发明一实施例的动态磨损平均方法的流程图。
图3是记录有数据储存装置的非挥发性存储器中每一区块的物理区块号和区块状态的示例性管理表。
图4是根据图3所示的管理表修改后的管理表。
图5为依照本发明第一实施例的磨损平均方法的流程图。
图6为交换程序完成后所得的更新后的管理表。
图7为依照本发明第二实施例的磨损平均方法的流程图。
图8为更新后的管理表。
具体实施方式
图1为依照本发明一实施例的数据储存装置的方块示意图。如图所示,本实施例的数据储存装置10用以从外部主机20接收写入命令并将由写入命令所取得的数据保存到数据储存装置10中。主机20可以是诸如桌面计算机、平板计算机、手机或移动装置等电子设备。数据储存装置10包括控制器11以及非挥发性存储器12。非挥发性存储器12优选地为闪存。控制器11电性耦接至主机20和非挥发性存储器12。控制器11包括第一通讯接口111、第二通讯接口112和微处理器113。微处理器113电性耦接至第一通讯接口111以及第二通讯接口112。控制器11经由第一通讯接口111与主机20通讯以接收上述的写入命令。控制器11还经由第二通讯接口112与非挥发性存储器12通讯以存取非挥发性存储器12。第一通讯接口111可以是序列式ATA(serial advanced technology attachment,SATA)、通用串行总线(universal serial bus,USB)、高速外围组件互连(peripheral component interconnectexpress,PCI-E)、通用闪存储存装置(universal flash storage,UFS)、嵌入式多媒体记忆卡(embedded MultiMedia card,eMMC)、安全数字输入/输出(secure digital input/output,SDIO)、mSATA(mini-SATA)或M.2(原称为next generation form factor,NGFF)。在一实施例中,第二通讯接口112可以是开放式NAND闪存接口(open NAND flash interface,ONFI)或Toggle。此外,数据储存装置10优选地包括诸如DRAM的挥发性存储器(volatilememory)13,用作数据缓冲器以加速写入命令的处理。
图2为依照本发明一实施例的动态磨损平均方法的流程图。本发明的动态磨损平均方法优选地用于数据储存装置10。首先,在步骤S102中,维持记录有多个物理区块号(physical block number)和区块状态(block status)的管理表(management table)。所述多个物理区块号指的是管理表中区块的条目(entry)或序列号(sequence number)。当数据储存装置10通电时,初始化程序(initialization procedure)即开始并且向每个区块分配物理区块号和区块状态以产生管理表。管理表由控制器11产生和维护,并保存在非挥发性存储器12中。在操作期间,区块状态会根据区块的当前状态而改变。例如,区块状态可指出某区块当前是备用区块、临时区块或数据区块。控制器11将管理表复制到挥发性存储器13或控制器11中的数据缓冲器以便有效和快速地维护和更新管理表。当本发明的动态磨损平均方法开始时,记录有物理区块号和区块状态的管理表由控制器11维护。所述维护指的是控制器11保持着管理表的内容更新并周期性地或当异常事件发生时将管理表的备份复制到非挥发性存储器12。所述异常事件指的是意外或不正常事件的发生,例如,系统电源突然关闭。有时主机20会向控制器11传送中断信号(interrupt)以反映异常事件的发生。有时,是由控制器11直接侦测出异常事件。当侦测/接收到异常事件时,控制器11从正常模式(normal mode)离开而进入紧急模式(emergency mode)。
图3是记录有数据储存装置10的非挥发性存储器12中每一区块的物理区块号和区块状态的示例性管理表。此外,图3所示的管理表还记录多个擦写次数(erase count)、读取次数(read count)和时间标记(timestamp)。图3的管理表仅仅示例性地记录非挥发性存储器12中的每个区块的物理区块号、区块状态、擦写次数、读取次数和时间标记。在非挥发性存储器12中实际上可以有数千个区块,而为了简化描述,在图3中仅示出了七个区块,但是本发明不以此为限。在图3中,第一和第二区块的物理区块号分别为1和2,是备用区块(区块状态标记为“S”),并且已经分别被擦写50和30次。因为没有数据保存于第一和第二区块,所以时间标记是空白的(void)或者可以被记录为00h或FFh(但不以此为限)。第三区块的物理区块号为3,曾被选取为临时区块(区块状态标记为“T”),并且来自主机20的数据被假定将写入到第三区块中。在2016/1/3保存第一笔数据之前,第三区块曾经是备用区块(图中未示出)。第四、第五和第六区块的物理区块号分别为4、5和6,是数据区块(区块状态标记为“D”),并且已经分别被擦写100、20和150次。第四、第五和第六区块的第一笔数据分别记录于2015/1/1、2016/1/1和2016/1/2。第七区块的物理区块号为7且是备用区块(区块状态标记为“S”)。
值得注意的是,如果管理表未被重新排序(re-sorted)的话,则可以省略物理区块号的那一列。换句话说,管理表内容的重新排序并非基于任何列,而所有的更新是被插入到它们对应的位置/地址(location/address)中。在这种情况下,控制器11可以根据管理表中单元(cell)的位置/地址来确定物理区块号。例如,图4是根据图3所示的管理表修改后的管理表,其中,在图4里物理区块号的那一列被移除。在此修改后的管理表中,第一列记录的是区块的擦写次数。控制器11根据位置/地址0、1、2和3分别确定了第一区块的擦写次数、读取次数、区块状态和时间标记; 根据位置/地址4、5、6和7分别确定了第二区块的擦写次数、读取次数、区块状态和时间标记; 根据位置/地址8、9、10和11分别确定了第三区块的擦写次数、读取次数、区块状态和时间标记等。因此,物理区块号在管理表中可被明确地或隐含地揭露。换句话说,管理表可以以明确或隐含方式记录或揭露物理区块号。
在步骤S104中,控制器11选择具有区块状态“S”和最小物理区块号的备用区块作为当前临时区块(current temporary block)。选择备用区块作为当前临时区块可根据几种不同的选择方法。例如,第一种可以是控制器11直接从备用池中选择具有最小物理区块号的备用区块作为下一临时区块(next temporary block)。第二种可以是控制器11从备用队列中选择具有最小物理区块号的备用区块作为下一临时区块。备用队列指的是在由候选的当前临时区块所形成的队列中的一些备用区块。例如,如果有300个备用区块,则300个备用区块中的30个可以被置于队列中而其余的备用区块则与备用池相关联。第三种可以是控制器11首先排除擦写次数高于阈值(例如200)的所有备用区块,然后再选择具有最小物理区块号的备用区块作为当前临时区块。第四种可以是控制器11选择具有前三个最小物理区块号的区块作为一组,并且从所述组中随机选择一个区块作为当前临时区块。在第一选择方法下,图3的第三区块被选取为当前临时区块,因具有备用区块状态(图中未示出)和最小物理区块号。
在步骤S106中,控制器11从主机20接收写入命令。主机20符合第一通讯接口111的规格并向控制器11发送写入命令。写入命令包括(写入)数据和相应的地址。所述相应的地址优选地是逻辑区块地址(logical block address,LBA)。写入命令还可以包括诸如创建时间(creation time)或最后修改的时间等的元数据(metadata)。控制器11将接收此写入命令的日期或时间记录为写入时间(write time),并将保存在管理表中的时间标记列中。由于数据管理的机制不同,数据可能不会立即写入当前临时区块中。例如,在数据管理的第一种机制中,数据直到数据量达到或超过阈值才会被写入临时区块。例如,控制器11首先判断写入命令中的数据的大小是否等于或大于当前临时区块的数据页(page)的大小(步骤S108)。在数据管理的第二种机制中,数据被立即写入当前临时区块中。由于所述两种机制都有优点和缺点并且在本领域是公知的,因此在此省略其详细描述。
在步骤S110中,控制器11判断写入命令中的数据是否应被写入当前临时区块。 如果步骤S110的判断结果为否,则执行步骤S112。如果步骤S110的判断结果为真,则执行步骤S116。当前临时区块应该连续地保存数据。但是在某些情况下,当前临时区块有可能无法再继续保存数据。例如,当当前临时区块已经被数据所填满而变成数据区块; 或者当当前临时区块因为数据管理的目的而被关闭而不再保存任何数据。在所述的任一种情况下,控制器11将决定将数据写入另一临时区块。为了与当前临时区块区分,所述另一临时区块称为下一临时区块。
在步骤S112中,控制器11选取具有区块状态“S”和另一最小物理区块号的另一备用区块作为下一临时区块。如图3所示,有三个备用区块可用,物理区块号分别是1、2和7。因为1是此三个物理区块号中最小的,所以第一区块将被选取为下一临时区块。当然在不同的机制中,有可能选择第二区块而非第一区块作为下一临时区块。在第一区块是当前临时区块但是不能再保存数据的情况下,在步骤S112中第二或第七区块将被选取为下一临时区块。因为管理表没有被重新排序,所以控制器11可以立即或快速地选取下一临时区块。由于不需要执行复杂的比较程序,例如比较擦写次数、读取次数、时间标记等之间的差异,因此相较于现有技术,本发明的动态磨损平均方法提供了更好的性能。
在步骤S114中,控制器11将数据写入下一临时区块并且最终结束本发明的动态耗损平衡方法。在步骤S116中,控制器11将数据写入当前临时区块并且最终结束本发明的动态耗损平衡方法。
为了平均地利用非挥发性存储器12中的区块,图5揭露了依照本发明第一实施例的磨损平均方法。请处值得注意的是,本实施例的磨损平均方法类似于本发明先前揭露的动态磨损平均方法。图5和图3所使用相同符号的步骤代表相同的步骤内容。
在步骤S202中,产生记录有多个物理区块号、擦写次数和区块状态的管理表。类似于步骤S102,步骤202还记录区块的多个擦写次数。
在步骤S204中,控制器11在后台模式(background mode)下用热备用区块(hotspare block)交换冷数据区块(cold data block)。热区块(hot block)指的是具有较大擦写次数的区块,而热备用区块指的是具有较大擦写次数的备用区块。热区块可以被定义为具有大于热阈值(hot threshold,例如100)的擦写次数的单个区块或一组区块。因此,在随后的例子中,可以从区块组中随机选择一个区块或者直接选择一个具有极值(extreme)的区块作为热备用区块。类似地,冷区块(cold block)指的是具有较小擦写次数的区块,而冷数据区块指的是具有较小擦写次数的数据区块。冷区块可以被定义为具有小于冷阈值(cold threshold,例如30)的擦写次数的单个区块或一组区块。因此,在随后的例子中,可以从区块组中随机选择一个区块或者直接选择一个具有极值的区块作为冷数据区块。当控制器11从主机20接收到命令后,控制器11操作在前台模式(foreground mode)。在前台模式中,控制器11可直接响应命令。当控制器11在一定时间(例如1秒)内没有从主机20接收到任何命令时,控制器11切换到后台模式。在后台模式中,控制器11不直接响应来自主机20的任何命令,而是为了数据管理的目的而执行某些任务,例如静态磨损平均(static wearleveling)或垃圾收集。以图3中的管理表为例,在步骤S204中进入后台模式后,控制器11判定第五区块为冷数据区块,因为擦写次数小于冷阈值且区块状态标示为“D”。控制器11还判定第七区块是热备用区块,因为擦写次数大于热阈值且区块状态被标记为“S”。当冷数据区块和热备用区块被选取或判定后,控制器11对这两个区块执行交换程序(swapprocedure)。交换程序指的是将保存的数据从冷数据区块复制或搬移到热备用区块。如图6中更新后的管理表所示,当交换程序完成后,第五区块中的冷数据区块变成备用区块并且区块状态被重新标记为“S”。类似地,第七区块中的热备用区块变成数据区块并且区块状态被重新标记为“D”。此外在交换程序期间,诸如时间标记等与数据相关的信息也被交换而诸如读取次数等无关信息被重置。当然在交换程序中,仅仅有效数据会被复制或搬移。最后,新备用区块(即第五区块)的擦写次数被递增,亦即,在交换程序完成之后擦写次数立即加一。此外根据使用者的实际需要,擦写次数也可以在稍后的时间点被递增,但是必须在相应的区块被选取为临时区块之前。
在一替代实施例中,控制器11在执行步骤S204之前计算最冷数据区块(coldestdata block)和最热备用区块(hottest spare block)之间的擦写次数差。所述最冷和最热区块分别是冷区块和热区块的极端。步骤S204 仅在满足特定条件时才被执行。例如,仅当最冷数据区块(例如图3中的第五数据区块)和最热备用区块(例如图3中的第七数据区块)之间的擦写次数的差值大于次数阈值(count threshold,例如100),则控制器11才将执行步骤S204。由于其余步骤与本发明的动态磨损平均方法中的步骤相同,因此省略描述。
为了平均地利用非挥发性存储器12中的区块,图7揭露了依照本发明第二实施例的磨损平均方法。请处值得注意的是,本实施例的磨损平均方法类似于本发明先前揭露的动态磨损平均方法。图7和图3所使用相同符号的步骤代表相同的步骤内容。在步骤S302中,产生记录有多个物理区块号、擦写次数、区块状态和时间标记的管理表。 类似于步骤S202,步骤302还记录区块的多个时间标记。
在步骤S304中,控制器11在后台模式下用热备用区块交换旧数据区块(old datablock)。旧数据区块指的是具有旧时间标记的数据区块。如果单个数据区块或一组数据区块的时间标记早于预定时间点(例如2016/1/1),则可将定义为旧数据区块。在后一种情况下(即一组数据区块的时间标记早于预定时间点),可以从区块组中随机选择一个区块或者直接选择一个具有极值的区块作为旧数据区块。以图3中的管理表为例,在进入后台模式之后,控制器11判定第四和第五区块都是旧数据区块,因时间标记皆早于预定时间点并且区块状态被标记为“D”。优选地,第四区块被选取为旧数据区块,因为它是两个区块(即第四和第五区块)中较旧的数据区块。另一方面,优选地,第七区块被选取为热备用区块。当一组区块被定义为旧数据区块或热备用区块时,控制器11可以随机地从区块组中选择任一个区块或者直接选择一个具有极值的区块作为旧数据区块或热备用区块。当旧数据区块和热备用区块被选取后,控制器11对这两个区块执行交换程序。图8示出了执行交换程序后所得的更新后管理表。
在一替代实施例中,控制器11在执行步骤S304之前先计算最旧数据区块和最热备用区块之间的擦写次数差。步骤S304仅在满足特定条件时才被执行。 例如,仅当最旧数据区块(例如图3中的第四区块)和最热备用区块(例如图3中的第七区块)之间的擦写次数的差值大于次数阈值(例如 100),控制器11才将执行步骤S304。由于其余步骤与第一实施例相同,因此省略其描述。
在一替代实施例中,管理表可由复数个子管理表所组成,每一子管理表记录一种区块状态下的每一区块的物理区块号,例如:备用区块子管理表、数据区块子管理表以及临时区块子管理表。如此一来,管理表的尺寸可以进一步简化,且,区块状态的记录可以省略。
虽然本发明以前述的实施例揭露如上,然其并非用于限定本发明,任何熟习此技艺者,在不脱离本发明的精神和范围内,当可作些许的更动与润饰,因此本发明的专利保护范围须视本说明书所附的申请专利范围所界定者为准。

Claims (15)

1.一种用于数据储存装置的磨损平均方法,包括以下步骤:
维持一管理表,其中,所述管理表记录所述数据储存装置的多个区块的多个物理区块号和多个区块状态;
选择具有所述多个区块状态之一和最小物理区块号的一第一备用区块作为一当前临时区块;
變更所述管理表的所述第一备用区块的所述区块状态;
从主机接收一写入命令;
判断所述写入命令中的数据是否应被写入所述当前临时区块;
当判断结果为否,则选择具有所述多个区块状态之一和最小物理区块号的一第二备用区块作为下一个临时区块;以及
将所述数据写入所述下一个临时区块。
2.如权利要求1所述的磨损平均方法,其特征在于,所述第一备用区块和所述第二备用区块的物理区块号是从由多个最小物理区块号所形成的一组中随机选择。
3.如权利要求1所述的磨损平均方法,其特征在于,判断所述写入命令中的所述数据是否应被写入所述当前临时区块的步骤还包括以下步骤:
判断所述数据的大小是否等于或大于所述当前临时区块的数据页的大小。
4.如权利要求1所述的磨损平均方法,包括以下步骤:
在一后台模式下用一热备用区块交换一冷数据区块,其中,所述冷数据区块的区块状态和所述热备用区块的区块状态不同。
5.如权利要求4所述的磨损平均方法,其特征在于,所述冷数据区块从多个数据区块中选取,且所述热备用区块从多个备用区块中选取。
6.如权利要求5所述的磨损平均方法,其特征在于,所述冷数据区块的所述擦写次数小于一冷阈值。
7.如权利要求5所述的磨损平均方法,其特征在于,所述热备用区块的所述擦写次数大于一热阈值。
8.如权利要求4所述的磨损平均方法,其特征在于,所述冷数据区块和所述热备用区块之间的一擦写次数差值大于一次数阈值。
9.如权利要求1所述的磨损平均方法,更包括以下步骤:
在一后台模式下用一热备用区块交换一旧数据区块,其中,所述热备用区块的区块状态和所述旧数据区块的区块状态不同。
10.如权利要求9所述的磨损平均方法,其特征在于,所述旧数据区块从多个数据区块中选取,且所述热备用区块从多个备用区块中选取。
11.如权利要求9所述的磨损平均方法,其特征在于,所述旧数据区块的一时间标记早于一预定时间点。
12.一种用于数据储存装置的磨损平均方法,包括以下步骤:
维持一管理表,其中,所述管理表记录所述数据储存装置的多个备用区块的多个物理区块号;
选择所述多个备用区块中具有最小物理区块号的一第一备用区块作为一当前临时区块;
更新所述管理表;
从主机接收一写入命令;
判断所述写入命令中的数据是否应被写入所述当前临时区块;
当判断结果为否,则选择所述多个备用区块中具有最小物理区块号的一第二备用区块作为下一个临时区块;以及
将所述数据写入所述下一个临时区块。
13.如权利要求12所述的磨损平均方法,其特征在于,更新所述管理表乃将所述第一备用区块的物理区块号自所述管理表中移除。
14.如权利要求12所述的磨损平均方法,包括以下步骤:
在一后台模式下用一热备用区块交换一冷数据区块,其中,所述热备用区块选自于所述多个备用区块。
15.如权利要求12所述的磨损平均方法,更包括以下步骤:
在一后台模式下用一热备用区块交换一旧数据区块,其中,所述热备用区块选自于所述多个备用区块。
CN201710449659.9A 2016-07-11 2017-06-14 用于数据储存装置的磨损平均方法 Active CN107608908B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/207,456 2016-07-11
US15/207,456 US9830098B1 (en) 2016-07-11 2016-07-11 Method of wear leveling for data storage device

Publications (2)

Publication Number Publication Date
CN107608908A true CN107608908A (zh) 2018-01-19
CN107608908B CN107608908B (zh) 2020-09-08

Family

ID=60407732

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710449659.9A Active CN107608908B (zh) 2016-07-11 2017-06-14 用于数据储存装置的磨损平均方法

Country Status (3)

Country Link
US (2) US9830098B1 (zh)
CN (1) CN107608908B (zh)
TW (2) TWI632457B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110825313A (zh) * 2018-08-10 2020-02-21 宇瞻科技股份有限公司 依时间戳管理作业程序的储存系统及其管理方法
CN114860624A (zh) * 2022-05-23 2022-08-05 深圳市芯存科技有限公司 一种基于Nandflash芯片的数据擦写方法及系统

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6814107B2 (ja) * 2017-08-02 2021-01-13 ルネサスエレクトロニクス株式会社 半導体記憶装置、及び半導体記憶装置の制御方法
TWI643069B (zh) * 2017-12-29 2018-12-01 國科美國研究實驗室 Dynamic management of flash memory
TWI659299B (zh) * 2018-04-19 2019-05-11 慧榮科技股份有限公司 資料儲存裝置及應用其的預防資料錯誤方法
KR20190123990A (ko) * 2018-04-25 2019-11-04 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법
US10620867B2 (en) * 2018-06-04 2020-04-14 Dell Products, L.P. System and method for performing wear leveling at a non-volatile firmware memory
TWI673607B (zh) * 2018-08-10 2019-10-01 宇瞻科技股份有限公司 依時間戳記管理作業程序之儲存系統及其管理方法
TWI678699B (zh) * 2018-09-19 2019-12-01 華邦電子股份有限公司 快閃記憶體儲存裝置及其操作方法
EP3627308A1 (en) 2018-09-20 2020-03-25 STMicroelectronics Srl A method of managing memories, corresponding circuit, device and computer program product
US10884627B2 (en) * 2018-09-26 2021-01-05 International Business Machines Corporation Compacting data in a dispersed storage network
TWI718492B (zh) 2019-03-12 2021-02-11 群聯電子股份有限公司 資料儲存方法、記憶體儲存裝置及記憶體控制電路單元
TWI688958B (zh) * 2019-08-23 2020-03-21 群聯電子股份有限公司 冷區域判斷方法、記憶體控制電路單元與記憶體儲存裝置
US11409664B2 (en) * 2020-05-08 2022-08-09 International Business Machines Corporation Logical memory allocation and provisioning using timestamps
TWI733568B (zh) * 2020-08-27 2021-07-11 慧榮科技股份有限公司 記憶裝置、快閃記憶體控制器及其存取方法
US20220222008A1 (en) * 2021-01-14 2022-07-14 Silicon Motion, Inc. Method for managing flash memory module and associated flash memory controller and memory device
US11543993B1 (en) * 2021-06-17 2023-01-03 Western Digital Technologies, Inc. Fast garbage collection in zoned namespaces SSDs
CN113986140B (zh) * 2021-11-03 2023-10-27 深圳市源微创新实业有限公司 一种高传输率大容量云存储固态硬盘
US11899977B2 (en) * 2022-03-10 2024-02-13 Silicon Motion, Inc. Method and apparatus for performing access management of memory device with aid of serial number assignment timing control
TWI829363B (zh) * 2022-09-26 2024-01-11 慧榮科技股份有限公司 資料處理方法及對應之資料儲存裝置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102135943A (zh) * 2011-03-23 2011-07-27 华为终端有限公司 闪存数据的存储、访问方法及装置
US8046526B2 (en) * 2007-09-27 2011-10-25 Phison Electronics Corp. Wear leveling method and controller using the same
TW201510722A (zh) * 2009-09-03 2015-03-16 Pioneer Chip Technology Ltd 以頁面為基礎管理快閃儲存裝置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3544859B2 (ja) * 1998-05-11 2004-07-21 富士通株式会社 不揮発性半導体メモリを使用した2次記憶装置
US7103732B1 (en) 2002-10-28 2006-09-05 Sandisk Corporation Method and apparatus for managing an erase count block
CN101256535B (zh) 2007-03-01 2011-03-09 创惟科技股份有限公司 硬盘资料读写快取装置及方法
JP4666081B2 (ja) * 2009-02-09 2011-04-06 Tdk株式会社 メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP2010287049A (ja) * 2009-06-11 2010-12-24 Toshiba Corp メモリシステムおよびメモリシステムの管理方法
JP2011203916A (ja) * 2010-03-25 2011-10-13 Toshiba Corp メモリコントローラ、および半導体記憶装置
CN103392207B (zh) 2011-10-05 2017-08-04 希捷科技有限公司 非易失性存储的自身日志记录和层级一致性
US9037779B2 (en) * 2011-12-19 2015-05-19 Sandisk Technologies Inc. Systems and methods for performing variable flash wear leveling
US20130311700A1 (en) * 2012-05-20 2013-11-21 Chung-Jwu Chen Extending Lifetime For Non-volatile Memory Apparatus
KR102210961B1 (ko) * 2013-06-12 2021-02-03 삼성전자주식회사 불휘발성 메모리 장치를 포함하는 메모리 시스템 및 그것의 동적 접근 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8046526B2 (en) * 2007-09-27 2011-10-25 Phison Electronics Corp. Wear leveling method and controller using the same
TW201510722A (zh) * 2009-09-03 2015-03-16 Pioneer Chip Technology Ltd 以頁面為基礎管理快閃儲存裝置
CN102135943A (zh) * 2011-03-23 2011-07-27 华为终端有限公司 闪存数据的存储、访问方法及装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110825313A (zh) * 2018-08-10 2020-02-21 宇瞻科技股份有限公司 依时间戳管理作业程序的储存系统及其管理方法
CN114860624A (zh) * 2022-05-23 2022-08-05 深圳市芯存科技有限公司 一种基于Nandflash芯片的数据擦写方法及系统
CN114860624B (zh) * 2022-05-23 2023-04-28 深圳市芯存科技有限公司 一种基于Nandflash芯片的数据擦写方法及系统

Also Published As

Publication number Publication date
CN107608908B (zh) 2020-09-08
TW201802683A (zh) 2018-01-16
US9830098B1 (en) 2017-11-28
TWI632457B (zh) 2018-08-11
TWI597605B (zh) 2017-09-01
US20180039435A1 (en) 2018-02-08
US10031698B2 (en) 2018-07-24
TW201810044A (zh) 2018-03-16

Similar Documents

Publication Publication Date Title
CN107608908A (zh) 用于数据储存装置的磨损平均方法
US10062442B2 (en) Method for managing data blocks and method of data management for data storage device
US8046526B2 (en) Wear leveling method and controller using the same
US20190204888A1 (en) Memory system and controller
US8230161B2 (en) Data backup method for a flash memory and controller and storage system using the same
TWI524183B (zh) 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置
US8438361B2 (en) Logical block storage in a storage device
TWI645404B (zh) 資料儲存裝置以及非揮發式記憶體操作方法
US9880742B2 (en) Valid data merging method, memory controller and memory storage apparatus
US8275931B2 (en) Block management method for flash memory, and storage system and controller using the same
CN108733510A (zh) 数据储存装置及映射表重建方法
JP4930555B2 (ja) 制御装置、制御方法およびストレージシステム
CN101174473A (zh) 在包括闪存的半导体存储装置中提供块状态信息的方法
CN101494085B (zh) 防止非易失性存储器发生读取干扰的方法及其控制器
TWI498899B (zh) 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置
US20130332653A1 (en) Memory management method, and memory controller and memory storage device using the same
US11016889B1 (en) Storage device with enhanced time to ready performance
US9778862B2 (en) Data storing method for preventing data losing during flush operation, memory control circuit unit and memory storage apparatus
CN105653468B (zh) 一种使用mram的存储设备
TWI781846B (zh) 非對稱型平面管理方法以及資料儲存裝置及其控制器
CN102456401B (zh) 区块管理方法、存储器控制器与存储器储存装置
CN117056125A (zh) 管理数据备份方法、存储器存储装置及存储器控制器
CN102855192A (zh) 存储器抹除方法、存储器控制器与存储器储存装置

Legal Events

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