CN109753234A - 存储器系统及非易失性存储器的控制方法 - Google Patents

存储器系统及非易失性存储器的控制方法 Download PDF

Info

Publication number
CN109753234A
CN109753234A CN201810887402.6A CN201810887402A CN109753234A CN 109753234 A CN109753234 A CN 109753234A CN 201810887402 A CN201810887402 A CN 201810887402A CN 109753234 A CN109753234 A CN 109753234A
Authority
CN
China
Prior art keywords
block
data
piece
retention period
consumption degree
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
CN201810887402.6A
Other languages
English (en)
Other versions
CN109753234B (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.)
Kioxia Corp
Original Assignee
Toshiba Memory Corp
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 Toshiba Memory Corp filed Critical Toshiba Memory Corp
Publication of CN109753234A publication Critical patent/CN109753234A/zh
Application granted granted Critical
Publication of CN109753234B publication Critical patent/CN109753234B/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/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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3034Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a storage system, e.g. DASD based or network based
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3055Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • 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/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
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3485Performance evaluation by tracing or monitoring for I/O devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Mathematical Physics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)
  • Memory System (AREA)

Abstract

本发明的实施方式实现一种能够谋求可靠性的提高的存储器系统及非易失性存储器的控制方法。实施方式的存储器系统对非易失性存储器内的多个块各自的消耗度进行管理。存储器系统从主机接收写入请求,该写入请求包含指定应写入的第1数据所需的数据保存期间的参数。存储器系统是对所述多个块中与消耗度对应的数据保存期间为所述指定的数据保存期间以上的第1块,写入所述第1数据。

Description

存储器系统及非易失性存储器的控制方法
[相关申请案]
本申请案享有将日本专利申请案2017-213955号(申请日:2017年11月6日)作为基础申请案的优先权。本申请案是通过参照该基础申请案而包含基础申请案的全部内容。
技术领域
本发明涉及一种存储器系统及非易失性存储器的控制方法。
背景技术
近年来,具备非易失性存储器的存储器系统正广泛地普及。作为此种存储器系统之一,已知有具备NAND(Not AND,与非)型闪速存储器的固态驱动器(SSD,Solid StateDrive)。SSD用作各种计算装置的主存储器。
对于如SSD的存储器系统,业界追求一种用来谋求其可靠性的提高的技术。
发明内容
本发明的实施方式提供一种能够谋求可靠性的提高的存储器系统及非易失性存储器的控制方法。
根据实施方式,能够连接于主机的存储器系统具备:非易失性存储器;及控制器,电连接于所述非易失性存储器,且控制所述非易失性存储器。所述控制器对所述非易失性存储器内的多个块(block)各自的消耗度进行管理。所述控制器从所述主机接收写入请求,该写入请求包含指定应写入的第1数据所需的数据保存期间的参数。所述控制器是對所述多个块中与消耗度对应的数据保存期间为所述指定的数据保存期间以上的第1块,写入所述第1数据。
附图说明
图1是表示第1实施方式的存储器系统的构成例的框图。
图2是表示设置在第1实施方式的存储器系统的NAND接口与多个NAND型闪速存储器裸片的关系的框图。
图3是表示由多个块的集合构筑的超级块(并联单位)的构成例的图。
图4是表示通过第1实施方式的存储器系统执行的擦除动作的序列的时序图。
图5是表示通过第1实施方式的存储器系统执行的写入动作的图。
图6是表示通过第1实施方式的存储器系统管理的块消耗度管理表的例子的图。
图7是表示通过第1实施方式的存储器系统管理的块消耗度管理表的另一例的图。
图8是用来说明应用于第1实施方式的存储器系统的写入指令的图。
图9是表示响应图8的写入指令的接收而通过第1实施方式的存储器系统执行的数据写入处理序列的图。
图10是表示存在具有与由写入指令指定的数据保存期间一致的数据保存期间的块的情况下通过第1实施方式的存储器系统执行的写入目标块的选择方式的图。
图11是表示存在具有与由写入指令指定的数据保存期间一致的数据保存期间的块的情况下通过第1实施方式的存储器系统执行的写入目标块的选择方式的图。
图12是表示存在具有与由写入指令指定的数据保存期间一致的数据保存期间的块的情况下时通过第1实施方式的存储器系统执行的与图11所示的选择方式不同的写入目标块的选择方式的图。
图13是表示不存在具有与由写入指令指定的数据保存期间一致的数据保存期间的块的情况下通过第1实施方式的存储器系统执行的写入目标块的选择方式的图。
图14是表示不存在具有与由写入指令指定的数据保存期间一致的数据保存期间的块的情况下通过第1实施方式的存储器系统执行的写入目标块的选择方式的图。
图15是表示不存在具有与由写入指令指定的数据保存期间一致的数据保存期间的块的情况下通过第1实施方式的存储器系统执行的对所选择的块的利用消耗降低编程模式的数据写入动作的图。
图16是用来对通过第1实施方式的存储器系统执行的利用消耗降低编程模式的数据写入动作时的阈值电压位准进行说明的图。
图17是表示通过第1实施方式的存储器系统执行的基于消耗度将块分类的顺序的流程图。
图18是表示通过第1实施方式的存储器系统执行的基于消耗度选择写入目标块并对所选择的块写入数据的动作的顺序的流程图。
图19是表示通过第1实施方式的存储器系统执行的基于消耗度选择写入目标块并通过消耗降低编程模式对所选择的块写入数据的动作的顺序的流程图。
图20是表示通过第1实施方式的存储器系统执行的基于擦除次数将块分类的顺序的流程图。
图21是表示通过第1实施方式的存储器系统执行的基于擦除次数选择写入目标块并对所选择的块写入数据的动作的顺序的流程图。
图22是表示通过第1实施方式的存储器系统执行的基于擦除次数选择写入目标块并通过消耗降低编程模式对所选择的块写入数据的动作的顺序的流程图。
图23是表示通过第1实施方式的存储器系统执行的基于擦除时间将块分类的顺序的流程图。
图24是表示通过第1实施方式的存储器系统执行的基于擦除时间选择写入目标块并对所选择的块写入数据的动作的顺序的流程图。
图25是表示通过第1实施方式的存储器系统执行的基于擦除时间选择写入目标块并通过消耗降低编程模式对所选择的块写入数据的动作的顺序的流程图。
图26是表示第2实施方式的存储器系统(闪速存储装置)的构成例的框图。
图27是用来说明应用于第2实施方式的存储器系统的写入指令的图。
图28是用来说明对图27的写入指令的响应的图。
图29是用来说明应用于第2实施方式的存储器系统的Trim指令的图。
图30是表示通过主机与第2实施方式的存储器系统执行的数据写入处理序列的图。
图31是包含主机与第1或第2存储器系统的计算机的构成例的图。
具体实施方式
以下,参照图式对实施方式进行说明。
(第1实施方式)
首先,参照图1,对包含第1实施方式的存储器系统的信息处理系统1的构成进行说明。
该存储器系统是以对非易失性存储器写入数据、自非易失性存储器读出数据的方式构成的半导体存储装置。该存储器系统例如作为具备NAND型闪速存储器的闪速存储装置3而实现。闪速存储装置3可作为固态驱动器(SSD)实现,也可作为存储卡实现。
信息处理系统1包含主机(主机装置)2与闪速存储装置3。主机2是对闪速存储装置3进行存取的信息处理装置(计算装置)。主机2可为将大量且多样的数据保存至闪速存储装置3的存储服务器(服务器),也可为个人计算机。
闪速存储装置3可用作作为主机2发挥功能的信息处理装置的主存储器。闪速存储装置3可内置于该信息处理装置,也可经由缆线或网络而连接于该信息处理装置。
作为用来将主机2与闪速存储装置3相互连接的接口,可使用SCSI(SmallComputer System Interface,小型计算机系统接口)、Serial Attached SCSI(SAS,串行连接的SCSI)、ATA(Advanced Technology Attachment,先进技术附接)、Serial ATA(SATA,串行ATA)、PCI Express(PCIe,Peripheral Component Interconnect Express,快速周边组件互连)、以太网(Ethernet)(注册商标)、光纤通道(Fibre channel)、NVM Express(NVMe,非易失性快速存储器)(注册商标)等。
闪速存储装置3具备控制器4及非易失性存储器(NAND型闪速存储器)5。控制器4是以控制NAND型闪速存储器5的方式构成的存储器控制器(控制电路)。闪速存储装置3也可具备随机存取存储器、例如也可具备DRAM(Dynamic Random Access Memory,动态随机存取存储器)6。
NAND型闪速存储器5包含含有呈矩阵状配置的多个存储单元的存储单元阵列。NAND型闪速存储器5可为二维构造的NAND型闪速存储器,也可为三维构造的NAND型闪速存储器。
NAND型闪速存储器5的存储单元阵列包含多个块B0~Bm-1。块B0~Bm-1分别是通过多个页面(此处为页面P0~Pn-1)编成。块B0~Bm-1作为最小的擦除单位发挥功能。块也有称为“物理块”、或“擦除块”的情况。页面P0~Pn-1分别包含连接于同一字线的多个存储单元。页面P0~Pn-1是数据写入动作及数据读取动作的单位。
块B0~Bm-1具有有限的擦除次数。擦除次数也可由编程/擦除周期(Program/Erase cycles)数表示。某一块的一个编程/擦除周期(Program/Erase cycles)包含用于使该块内的所有存储单元成为擦除状态的擦除动作、与对该块的页面分别写入数据的写入动作(编程动作)。
在第1实施方式中,控制器4可对分别包含块的集合的多个超级块进行管理,也可以超级块的单位执行擦除动作。因此,实际上超级块有作为擦除单位发挥功能的情况。因此,使相同的超级块中所含的块各自的擦除次数变得相同。
控制器4是经由如Toggle、ONFI的NAND接口13而电连接于作为非易失性存储器的NAND型闪速存储器5。NAND接口13作为以控制NAND型闪速存储器5的方式构成的NAND控制电路发挥功能。
如图2所示,NAND型闪速存储器5包含多个NAND型闪速存储器裸片。各NAND型闪速存储器裸片是包含含有多个块(物理块)BLK的存储单元阵列与控制该存储单元阵列的周边电路的非易失性存储器裸片。各个NAND型闪速存储器裸片能够独立地动作。因此,NAND型闪速存储器裸片是作为最小的并联动作单位发挥功能。NAND型闪速存储器裸片也称为“NAND型闪速存储器芯片”或“非易失性存储器芯片”。在图2中,例示了如下情况:在NAND接口13连接着16个通道Ch0、Ch1、…Ch15,在这些通道Ch0、Ch1、…Ch15各自分别连接着相同数量(例如每一通道为1个裸片)的NAND型闪速存储器裸片。各通道包含用来与对应的NAND型闪速存储器裸片进行通信的通信线(存储器总线)。
控制器4是经由通道Ch0、Ch1、…Ch15来控制NAND型闪速存储器裸片#0~#15。控制器4能够同时驱动通道Ch0、Ch1、…Ch15。
在图2的构成例中,能够使最大16个NAND型闪速存储器裸片并联动作。
在第1实施方式中,控制器4能够对分别包含多个块BLK的多个并联单位(超级块)进行管理。超级块并不限定于此,也可包含从连接于不同的通道的NAND型闪速存储器裸片#0~#15逐一选择的共计16个块BLK。此外,NAND型闪速存储器裸片#0~#15也可分别具有多面构成。例如在NAND型闪速存储器裸片#0~#15分别具有包含2个面的多面构成的情况下,一个超级块也可包含从与NAND型闪速存储器裸片#0~#15对应的32个面逐一选择的共计32个块BLK。
图3中例示了一个超级块SB包含从NAND型闪速存储器裸片#0~#15逐一选择的共计16个块BLK的情况。在对超级块SB的写入动作中,数据是按照属于NAND型闪速存储器裸片#0的块BLK的页面P0、属于NAND型闪速存储器裸片#1的块BLK的页面P0、…属于NAND型闪速存储器裸片#15的块BLK的页面P0、属于NAND型闪速存储器裸片#0的块BLK的页面P1、属于NAND型闪速存储器裸片#2的块BLK的页面P1、…属于NAND型闪速存储器裸片#15的块BLK的页面P1、…的顺序写入。
接下来,对图1的控制器4的构成进行说明。
控制器4经由多个通道(例如16个通道)而电连接于多个NAND型闪速存储器芯片。控制器4控制NAND型闪速存储器5(多个NAND型闪速存储器芯片)。
控制器4也可作为以执行NAND型闪速存储器5的数据管理及块管理的方式构成的闪速转译层(FTL)发挥功能。通过该FTL执行的数据管理包含(1)表示各逻辑地址与NAND型闪速存储器5的各物理地址之间的对应关系的映射信息的管理、(2)用于隐藏页面单位的读出/写入与块单位的擦除动作的处理等。逻辑地址是为了对闪速存储装置3进行地址指定而通过主机使用的地址。作为该逻辑地址,通常可使用逻辑块地址(LBA)LBA(logical blockaddress(addressing))。
各逻辑块地址(LBA)与各物理地址之间的映射的管理是使用作为地址转换表(逻辑物理地址转换表)发挥功能的查找表(LUT)32执行。控制器4是使用查找表(LUT)32,以特定的管理尺寸单位对各逻辑地址与各物理地址之间的映射进行管理。与某一逻辑地址对应的物理地址表示被写入有该逻辑地址的数据的NAND闪速存储器5内的最新的物理存储位置。地址转换表(LUT32)也可在闪速存储装置3的电源接通时从NAND闪速存储器5载入至DRAM6。
对页面的数据写入相对于每一擦除周期仅可进行1次。因此,控制器4并非将与某一逻辑地址对应的更新数据写入至存储有与该逻辑地址对应的以前的数据的物理存储位置,而写入至其他物理存储位置。而且,控制器4更新查找表(LUT)32而将该逻辑地址与该其他物理存储位置建立关联,并且使以前的数据失效。
块管理包含耗损平均与垃圾收集等。耗损平均是用来使块各自的消耗均匀化的动作。垃圾收集是为了增加能够写入数据的自由块的个数,而将混合存在有效数据与无效数据的若干对象块内的有效数据复制至其他块。此处,有效数据是指从LUT32参照的数据(即与逻辑地址作为最新数据建立关联的数据),且是之后有从主机2读出的可能性的数据。无效数据是指已无从主机2读出的可能性的数据。例如,与某一逻辑地址建立关联的数据为有效数据,与任一逻辑地址均未建立关联的数据为无效数据。
而且,垃圾收集是更新查找表(LUT)32而将所复制的有效数据的逻辑地址分别映射至移动目标的物理地址。通过将有效数据复制至其他块,成为仅无效数据的块作为自由块被解除。由此,该块可在其擦除后重新利用。
控制器4包含主机接口11、CPU(Central Processing Unit,中央处理单元)12、NAND接口13、及DRAM接口14等。这些CPU12、NAND接口13、DRAM接口14经由总线10相互连接。
主机接口11是以执行与主机2的通信的方式构成的主机接口电路。主机接口11从主机2接收各种指令(例如写入指令、读出指令、取消映射(UNMAP)/修整(Trim)指令等)。
CPU12是以控制主机接口11、NAND接口13、及DRAM接口14的方式构成的处理器。CPU12是通过响应闪速存储装置3的电源接通,将存储在NAND型闪速存储器5的控制程式(固件)载入至DRAM6上,并执行该固件而进行各种处理。该CPU12例如除了可执行所述FTL的处理以外,也可执行用于处理来自主机2的各种指令的指令处理等。CPU12的动作是由通过CPU12执行的所述固件控制。此外,FTL处理及指令处理的一部分或全部也可通过控制器4内的专用硬件来执行。
CPU12能够作为擦除次数监控器部21、擦除时间监控器部22、块分类部23、写入动作控制部24及消耗降低处理部25发挥功能。
擦除次数监控器部21是对NAND型闪速存储器5的多个块各自的擦除次数进行监视。擦除次数也可如上所述由编程/擦除周期(Program/Erase cycles)数表示。
擦除时间监控器部22是对NAND型闪速存储器5的多个块各自的擦除时间进行监视。某一块的擦除时间是指至对该块的擦除动作完成为止所需要的时间。
擦除时间监控器部22也可从NAND接口13内所包含的擦除时间测定部13A获取各块的擦除时间。
图4的时序图表示对某一NAND型闪速存储器裸片内的某一块(物理块)的擦除动作序列的例子。NAND接口13是将擦除设定指令“60h”、指定应执行擦除动作的块的地址、擦除开始指令“D0h”经由某一通道内的IO总线而送出至该NAND型闪速存储器裸片。而且,NAND接口13对该NAND型闪速存储器裸片的待命/忙碌信号(RY/BY)进行监视,等待擦除动作的完成。在该NAND型闪速存储器裸片中执行块的擦除动作的期间,该NAND型闪速存储器裸片维持为忙碌状态。在NAND型闪速存储器裸片为忙碌状态的期间,待命/忙碌信号(RY/BY)例如维持为低位准。擦除时间测定部13A也可测定NAND型闪速存储器裸片通过块的擦除动作维持为忙碌状态的时间(tBERASE)作为该块的擦除时间。在该情况下,擦除时间测定部13A也可在擦除动作序列中测定待命/忙碌信号(RY/BY)维持为低位准的时间,并将所测定的时间报告给擦除时间监控器部22。
NAND型闪速存储器裸片执行用于验证块的擦除动作是否成功的验证动作。擦除及验证动作反复进行至擦除动作成功、或擦除及验证动作的循环次数达到所设定的最大循环次数。如果擦除及验证动作完成,则NAND型闪速存储器裸片恢复至待命状态。此时,待命/忙碌信号(RY/BY)例如从低位准恢复至高位准。如果NAND型闪速存储器裸片成为待命状态,则NAND接口13将状态读出指令“70h”经由IO总线送出至NAND型闪速存储器芯片。如果擦除动作成功,则从NAND型闪速存储器裸片对NAND接口13通知表示成功的状态(pass状态)。另一方面,如果擦除动作未成功,则从NAND型闪速存储器裸片对NAND接口13通知表示失败的状态(fail状态)。
或者,控制器4也可不使用待命/忙碌信号(RY/BY)而测定擦除时间(tBERASE)。在该情况下,控制器4也可在擦除动作的期间通过对NAND型闪速存储器裸片芯片反复发行状态读出指令而进行轮询。
块分类部23基于多个块各自的消耗度而将多个块分类为与多个数据保存期间对应的多个块组。某一块的消耗度是指该块中所含的存储单元群的消耗程度。块各自的消耗度也可通过这些块的擦除次数(编程/擦除周期数)表示。随着某一块的消耗进行,该块的擦除时间(tBERASE)增加。因此,块各自的消耗度也可通过这些块的擦除时间(tBERASE)表示。如果块的消耗度大,则有充电至该块内的各存储单元的电荷变得容易泄漏的情况。因此,块的消耗度越大,则与该块对应的数据保存期间(即,该块内的各存储单元能够保存数据的期间)变得越短。
在块各自的消耗度以擦除次数(编程/擦除周期数)表示的情况下,块分类部23也能够基于多个块各自的擦除次数而将多个块分类为与多个数据保存期间对应的多个块组。
在块各自的消耗度以擦除时间表示的情况下,块分类部23也能够基于多个块各自的擦除时间而将多个块分类为与多个数据保存期间对应的多个块组。而且,块分类部23也能够基于多个块各自的擦除次数及擦除时间这两者而将多个块分类为与多个数据保存期间对应的多个块组。
在第1实施方式中,针对每个块监视消耗度(例如擦除次数、擦除时间)的动作及基于消耗度(例如擦除次数、擦除时间)将块分类的动作也可以物理块的单位执行。
此外,在闪速存储装置3为以超级块的单位进行写入动作、读出动作、擦除动作的构成的情况下,针对每个块监视消耗度(例如擦除次数、擦除时间)的动作及基于消耗度(例如擦除次数、擦除时间)将块分类的动作也可以包含多个物理块的并联单位(超级块)的单位执行。构成相同的并联单位(超级块)的块(物理块)的擦除动作因为并联地执行,所以这些块(物理块)具有相同的擦除次数。另外,作为某一并联单位(超级块)的擦除时间,可使用由构成该并联单位(超级块)的块各自的擦除时间所求出的代表值。该代表值也可为这些块各自的擦除时间的平均值。
写入动作控制部24从主机2接收写入请求(写入指令),该写入请求(写入指令)包含指定应写入的数据(写入数据)所需的数据保存期间(data retention term)的参数。在接收到该写入请求的情况下,写入动作控制部24从NAND型闪速存储器5中所含的多个块选择根据消耗度推定的数据保存期间为指定的数据保存期间以上的块作为写入目标块,并将该写入数据写入至所选择的块(写入目标块)。
写入动作控制部24也可在根据消耗度推定的数据保存期间为由写入请求(写入指令)指定的数据保存期间以上的块中,优先选择具有与更短的数据保存期间对应的消耗度的块作为写入目标块。由此,例如能够防止为了写入需要1年数据保存期间的数据,而浪费地使用与10年以上的数据保存期间对应的低消耗度的块。换句话说,为了进行用来写入需要10年数据保存期间的数据的写入请求,可不消耗与该10年以上的数据保存期间对应的低消耗度的块而预先维持。
在该情况下,写入动作控制部24也可在存在被分类为具有与由写入请求(写入指令)指定的数据保存期间一致的数据保存期间的块组的块的情况下,选择被分类为该块组的块作为写入目标块。另外,写入动作控制部24也可在不存在具有与由写入请求(写入指令)指定的数据保存期间一致的数据保存期间的块的情况下,选择被分类为具有比该数据保存期间长的数据保存期间的块组的块作为写入目标块。
另外,写入动作控制部24在根据所选择的块的消耗度推定的数据保存期间与由写入请求(写入指令)指定的数据保存期间相同的情况下,通过第1编程动作将数据(写入数据)写入至所选择的块(写入目标块)。另一方面,写入动作控制部24在根据所选择的块(写入目标块)的消耗度推定的数据保存期间长于由写入请求(写入指令)指定的数据保存期间的情况下,通过第2编程动作将数据(写入数据)写入至所选择的块(写入目标块)。
此处,第1编程动作是指利用通常的编程模式进行的写入动作(编程动作),第2编程动作是指利用充电至第1块的存储单元群的电荷量少的编程模式(以下称为消耗降低编程模式)进行的写入动作(编程动作)。通过执行利用消耗降低编程模式的数据的写入,与执行利用通常的编程模式的数据的写入动作的情况相比,能够降低施加至存储单元群的编程电压、或减少对存储单元群施加编程电压的次数,因此能够减少施加至存储单元群的应力。因此,能够降低存储单元群的消耗,能够使闪速存储装置长寿命化。
此外,在选择应写入写入数据的写入目标块的处理中,该写入目标块也可从不包含有效数据的自由块的组选择。假设为了写入其他写入数据而已经存在所选择的写入目标块的情况下,应写入写入数据的写入目标块也可从该已经存在的写入块与自由块的组中选择。
另外,在闪速存储装置3为以超级块的单位进行写入动作、读出动作、擦除动作的构成的情况下,写入动作控制部24只要从多个超级块(例如不包含有效数据的自由超级块的组)选择根据消耗度推定的数据保存期间为指定的数据保存期间以上的超级块作为写入目标块(写入目标超级块),并将该写入数据写入至所选择的超级块即可。
消耗降低处理部25是通过充电至存储单元群的电荷量比第1编程动作少的第2编程动作(利用消耗降低编程模式进行的编程动作)来执行用于将数据写入至写入目标块的处理。
图1的DRAM接口14是以对DRAM6进行存取控制的方式构成的DRAM控制器。DRAM6的存储区域用来存储写入缓冲器(WB)31、查找表(LUT)32、及系统管理信息33。系统管理信息33包含为了选择具有由主机指定的数据保存期间以上的数据保存期间的写入目标块所需要的各种管理信息。例如系统管理信息33包含下述块消耗度管理表33A、块消耗度管理表33A'。而且,系统管理信息33包含块信息。块信息包含表示NAND型闪速存储器5内的各块中所包含的各数据的有效/无效的旗标(点阵图旗标)。
DRAM接口14是以在CPU12的控制下控制DRAM6的方式构成的DRAM控制电路。DRAM6的存储区域的一部分用来存储写入缓冲器(WB)31、查找表(LUT)32、系统管理信息33。此外,这些写入缓冲器(WB)31、查找表(LUT)32、系统管理信息33也可存储在控制器4内的未图示的SRAM(Static Random Access Memory,静态随机存取存储器)。
接下来,对主机2的构成进行说明。
主机2是执行各种程式的信息处理装置。由信息处理装置执行的程式包含应用软件层41、操作系统(OS)42、文件系统43等。
如一般周知,操作系统(OS)42是以对主机2整体进行管理,控制主机2内的硬件,使应用软件执行用于使硬件及闪速存储装置3能够使用的控制的方式构成的软件。
文件系统43是为了进行用于文件的操作(制作、保存、更新、削除等)的控制而使用。
在应用软件层41必须将如读出指令或写入指令的请求送出至闪速存储装置3时,应用软件层41对OS42送出该请求。OS42将该请求送出至文件系统43。文件系统43将该请求翻译为指令(读出指令、写入指令等)。文件系统43将指令送出至闪速存储装置3。当接收到来自闪速存储装置3的响应时,文件系统43将该响应送出至OS42。OS42将该响应送出至应用软件层41。
图5表示通过第1实施方式的闪速存储装置3执行的数据的写入动作。
各块的状态大致分为存储有效数据的现用块与未存储有效数据的自由块。作为现用块的各块是由称为现用块池51的列表进行管理。另一方面,作为自由块的各块是由称为自由块池52的列表进行管理。
在第1实施方式中,控制器4是从自由块池52内的块选择具有根据消耗度推定的数据保存期间为由写入请求(写入指令)指定的数据保存期间以上的数据保存期间的块,作为从主机2接收的数据的写入目标块。在该情况下,控制器4首先对所选择的块执行擦除动作,由此使该块成为能够写入的擦除状态。如果当前的写入目标块的整体被来自主机2的数据填满,则控制器4将当前的写入目标块移动至现用块池51。
此处,图5中表示从自由块池52选择写入目标块,但未必限定于此。如上所述,在具有由以前的写入请求(写入指令)指定的数据保存期间的块已经作为写入目标块被选择,且尚未被有效数据填满的情况下,也有不从自由块池52内的块重新选择写入目标块的情况。例如有如下情况:如果对于以前的来自主机2的数据已被选作写入目标块的块为满足由此次的写入请求(写入指令)指定的数据保存期间的块,则该块作为对于根据此次的写入请求应被写入的新的写入数据的写入目标块被选择,对所选择的块写入该新的写入数据。
另外,也可能有存在多个已被选作写入目标块且未被有效数据填满的块的状态。例如为如下情况,即,根据写入请求(写入指令)指定1年作为数据保存期间,在选择具有1年数据保存期间的块作为写入目标块后,该具有1年数据保存期间的块未被有效数据填满之前,根据写入请求(写入指令)指定5年作为数据保存期间,选择该具有5年数据保存期间的块作为写入目标块,该具有5年数据保存期间的块也未被有效数据填满。
如果现用块池51内的某一块内的有效数据的一部分因数据更新等而失效,且无效数据量降低至特定值以下,则该块成为垃圾收集的对象。如果通过垃圾收集,该块内的有效数据全部被复制至其他块(自由块),由此该块内的有效数据全部失效,则控制器4将该块移动至自由块池52。
图6表示块消耗度管理表33A。
块消耗度管理表33A是系统管理信息33的一部分,对与多个消耗度对应的多个块组进行管理。
块消耗度管理表33A包含与多个消耗度对应的多个条目。这些条目也可分别包含消耗度字段、块地址字段、及推定的数据保存期间字段。消耗度字段保存根据块的消耗程度进行分级的块的消耗的等级。此外,消耗度越小,意味着消耗的等级越小。在图6的例中,块的消耗度是通过块的擦除次数表示,根据块的擦除次数进行分级。
块地址字段保存与NAND型闪速存储器5中所包含的多个块(物理块)分别对应的多个块地址。在图6的例中,块地址相对于各个块表示为“#1”、“#2”、“#3”、…。该块地址也可通过裸片编号与芯片内块编号的组合来表现。例如也可将NAND型闪速存储器裸片#0内的块BLK0的块地址“#0”表现为(Die#0,BLK0)。同样地,也可将NAND型闪速存储器裸片#0内的块BLK1的块地址“#2”表现为(Die#0,BLK1),将NAND型闪速存储器裸片#0内的块BLK2的块地址“#3”表现为(Die#0,BLK2)、…,将NAND型闪速存储器裸片#0内的块BLKn的块地址“#n+1”表现为(Die#0,BLKn)。
在图6的例中,等级1(擦除次数为0~500次)的块是表示块地址为“#10”、“#11”、“#23”、“#30”、…。同样地,等级2(擦除次数为500~1000次)的块是表示块地址为“#9”、“#16”、“#22”、“#29”、…,等级3(擦除次数为1000~1500次)的块是表示块地址为“#7”、“#8”、“#21”、“#28”、…,…,等级10(擦除次数为9500~10000次)的块是表示块地址为“#1”、“#12”、…。
推定的数据保存期间字段保存基于消耗度推定的数据保存期间。在图6的例中,数据保存期间是基于块的擦除次数进行推定。
在图6的例中,例示了关于等级1(擦除次数0~500次)的块推定的数据保存期间为“10年”。同样地,例示了关于等级2(擦除次数500~1000次)的块推定的数据保存期间为“5年”,例示了关于等级3(擦除次数1000~1500次)的块推定的数据保存期间为“1年”,…,例示了关于等级10(擦除次数9500~10000次)的块推定的数据保存期间为“1周”。
图7表示与图6不同的块消耗度管理表33A'。
块消耗度管理表33A'是系统管理信息33的一部分,对与各消耗度的范围对应的块的块地址进行管理。与图6的块消耗度管理表33A的不同在于,消耗度是以块的擦除时间表示,根据擦除时间推定块的数据保存期间。
块消耗度管理表33A'与块消耗度管理表33A同样地包含多个条目,这些条目也可分别包含消耗度字段、块地址字段、及推定的数据保存期间字段。消耗度字段保存根据块的消耗程度进行分级的块的消耗的等级。在图7的例中,如上所述,块的消耗度是通过块的擦除时间表示,根据块的擦除时间进行分级。
块地址字段保存与NAND型闪速存储器5中所包含的多个块分别对应的多个块地址。
推定的数据保存期间字段保存基于消耗度推定的数据保存期间。在图7的例中,数据保存期间是基于块的擦除时间进行推定。
此外,在图6中是将块按照一定消耗度的每个范围进行分级,而针对每种消耗度管理块地址,但也可NAND型闪速存储器内的所有块的消耗度从小到大(或从大到小)依序排列,而管理块地址。
在图7的例中,例示了关于等级1(擦除时间t1~t2sec)的块推定的数据保存期间为“10年”。同样地,例示了关于等级2(擦除时间t2~t3sec)的块推定的数据保存期间为“5年”,例示了关于等级3(擦除时间t3~t4sec)的块推定的数据保存期间为“1年”,…,例示了关于等级10(擦除时间t10~t11sec)的块推定的数据保存期间为“1周”。
此外,在图7中是将块按照一定消耗度的每个范围进行分级,而针对每种消耗度管理块地址,但也可将NAND型闪速存储器内的所有块的块地址的列表按照消耗度从小到大(或从大到小)依序排列而进行管理。
第1实施方式的闪速存储装置3可仅具备块消耗度管理表33A、块消耗度管理表33A'的任一者,也可具备两者。在具备两者的情况下,闪速存储装置3的控制器4可仅基于擦除次数而执行块的消耗度的判断及由主机2指定而满足数据保存期间的块的选择动作,也可仅基于擦除时间而执行块的消耗度的判断、及由主机2指定而满足数据保存期间的块的选择动作。另外,控制器4也能够基于擦除次数及擦除时间这两者而执行块的消耗度的判断及由主机2指定而满足数据保存期间的块的选择动作。
图8表示应用于闪速存储装置3的写入指令的例。
该写入指令是对闪速存储装置3请求数据写入的指令。该写入指令也可包含执行指定起始LBA的参数、指定长度(逻辑块数)的参数、表示所需的数据保存期间的参数等。
起始LBA(起始逻辑地址)表示应写入的数据的最初的LBA。
长度表示应写入的数据的长度(与应写入的数据对应的逻辑块数)。
所需的数据保存期间(required-data-retention term)表示应写入的数据所需的数据保存期间。所需的数据保存期间的例为1周、2周、1个月、2个月、4个月、6个月、8个月、1年、5年、10年等。
图9的序列图表示响应图8的写入指令的接收而通过第1实施方式的闪速存储装置3执行的数据写入处理。
主机2将包含LBA、数据长度、所需的数据保存期间的写入指令发送至闪速存储装置3。闪速存储装置3的控制器4选择根据消耗度推定的数据保存期间为由主机2(写入指令所需的数据保存期间)指定的数据保存期间以上的块(步骤S101)。继而,控制器4对所选择的块写入应写入的数据(步骤S102)。继而,控制器4更新LUT32,将被写入该数据的NAND型闪速存储器5的表示物理存储位置的物理地址映射至写入的数据的LBA(步骤S103)。
然后,控制器4向主机2回复写入完成的响应(步骤S104)。此处,响应包含状态(成功/失败)。
图10~图12表示存在具有与由写入指令指定的数据保存期间一致的数据保存期间的块的情况下通过闪速存储装置3执行的写入目标块的选择方式。
在图10~图12中,假定将消耗度分组为等级1~等级10的10个等级而进行管理。此外,消耗度越小(等级越低),数据保存期间越长。另外,消耗度越大(等级越高),数据保存期间越短。另外,块301~303的消耗度相当于消耗度=等级1(数据保存期间为10年),块304~307的消耗度相当于消耗度=等级2(数据保存期间为5年),块308~311的消耗度相当于消耗度=等级3(数据保存期间为1年),块312~315的消耗度相当于消耗度=等级4(数据保存期间为8个月),块316~318的消耗度相当于消耗度=等级5(数据保存期间为6个月),块319~322的消耗度相当于消耗度=等级6(数据保存期间为4个月),块323~326的消耗度相当于消耗度=等级7(数据保存期间为2个月),块327~329的消耗度相当于消耗度=等级8(数据保存期间为1个月),块330~332的消耗度相当于消耗度=等级9(数据保存期间为2周),块333~335的消耗度相当于消耗度=等级10(数据保存期间为1周)。
此处,如图11所示,由主机2指定“1年”作为应写入的数据的数据保存期间。具有推定为由主机2指定的应写入的数据的数据保存期间即“1年”以上的数据保存期间的块是属于消耗度=等级1的组的块301~303、属于消耗度=等级2的组的块304~307、属于消耗度=等级3的组的块308~311。控制器4从这些块301~311中选择写入目标块。
另一方面,控制器4也可如图12所示选择写入目标块。
在由主机2指定“1年”作为应写入的数据的数据保存期间的情况下,控制器4在根据消耗度推定的数据保存期间为由主机2指定的数据保存期间以上的块中优先选择具有与更短的数据保存期间对应的消耗度的块作为写入目标块。在图12的例中,在具有推定为由主机2指定的应写入的数据的数据保存期间即“1年”以上的数据保存期间的块中,具有与更短的数据保存期间对应的消耗度的块是属于推定的数据保存期间为“1年”的消耗度=等级3的组的块308~311。控制器4从这些块308~311中选择写入目标块。
图13~图14表示不存在具有与由写入指令指定的数据保存期间一致的数据保存期间的块的情况下通过闪速存储装置3执行的写入目标块的选择方式。
如图13所示,在不存在属于具有与由主机2指定的数据保存期间即“1年”一致的数据保存期间的块组(消耗度=等级3的组)的块的情况下,控制器4从属于具有比指定的数据保存期间长的数据保存期间的块组的块选择写入目标块。在图13中,因为存在属于具有与由主机2指定的数据保存期间“1年”一致的消耗度=等级3的组的下一个较长的数据保存期间(数据保存期间5年)的块组(消耗度=等级2的组)的块304~307,所以如图14所示,控制器4从这些块304~307中选择写入目标块。假设也不存在属于具有数据保存期间为5年的消耗度的块组(消耗度=等级2的组)的块304~307,则控制器4从属于具有再下一个较长的数据保存期间(数据保存期间10年)的块组(消耗度=等级1的组)的块301~303中选择写入目标块。
图15表示不存在具有与由写入指令指定的数据保存期间一致的数据保存期间的块的情况下通过闪速存储装置3执行的对所选择的块的利用消耗降低编程模式进行的数据写入动作。
在选择具有比指定的数据保存期间“1年”长的数据保存期间“5年”的块作为写入目标块的情况下,在图14的情况下,控制器4通过第1编程动作(通常的编程模式)将写入数据写入至写入目标块。
另一方面,在图15的情况下,控制器4将编程模式从通常的编程模式切换为消耗降低编程模式,通过消耗降低编程模式将写入数据写入至写入目标块。在消耗降低编程模式下,充电至写入目标块内的存储单元群的电荷量比通常的编程模式少。因此,能够将因写入动作(编程动作)而施加至存储单元群的应力抑制得较低,从而能够降低每一次写入动作(编程动作)的写入目标块的消耗量。在编程动作中,各存储单元是设定为与多个状态中的任一个对应的阈值电压。在充电至存储单元的电荷量少的情况下,状态间的阈值电压间的范围变小,因此容易产生数据保留错误,其结果为,存储单元的数据保存期间变短。然而,在图15的情况下,所选择的写入目标块是具有远远长于指定的数据保存期间“1年”的数据保存期间“5年”的低消耗度的块,因此即便执行利用消耗降低编程模式的写入动作,也能够充分地满足指定的数据保存期间“1年”。
图16是表示通过闪速存储装置3执行的利用消耗降低编程模式进行的数据写入动作时的阈值电压位准。
图16中例示了与多层单元(MLC)对应的4个阈值电压位准与2比特数据的关系的例。
各存储单元设定为4个状态(一个擦除状态、及3个编程状态)中的任一者。这些4个状态具有互不相同的阈值电压位准。此处,也可对4个状态映射2比特数据“11”、“01”、“00”、“10”。
在图16的上部示出以通常的编程模式执行写入动作的情况下的4个状态各自的阈值电压位准。在读出动作中,使用用来将“11”、“01”、“00”、“10”状态相互分离的3个电压VA1、VB1、VC1中的任一个作为读出电压。此外,电压VR1是在读出动作中施加至非选择字线的电压,电压VR1设定为能够与保存数据无关地使存储单元接通的电压。
另一方面,在图16的下部示出以消耗降低编程模式执行写入动作的情况下的4个状态各自的阈值电压位准。4个状态是使用用来将“11”、“01”、“00”、“10”状态相互分离的3个电压VA2(<VA1)、VB2(<VB1)、VC2(<Vc1)中的任一个作为读出电压。此外,电压VR2(<VR1)是在读出动作中施加至非选择字线的电压,电压VR2设定为能够与保存数据无关地使存储单元接通的电压。
在消耗降低编程模式下,与通常的编程模式相比,能够降低施加至存储单元群的编程电压、或减少对存储单元群施加编程电压的次数。由此,能够降低因数据写入动作所产生的存储单元群的消耗,从而可使闪速存储装置3长寿命化。
图17的流程图表示基于消耗度将块分类的顺序。此处,为了简化说明,将NAND型闪速存储器5中所包含的块分类为消耗度=等级1的组、消耗度=等级2的组、消耗度=等级3的组、消耗度=等级4的组。
控制器4对NAND型闪速存储器5中所包含的各块的消耗度进行监视(步骤S201)。继而,控制器4选择某一个块(步骤S202)。
在之后的步骤S203~S209中,基于步骤S202中所选择的块的消耗度,执行所选择的块的分组。
控制器4判定所选择的块的消耗度是否与等级1对应(步骤S203)。如果所选择的块的消耗度与等级1对应(步骤S203的是(YES)),则控制器4将所选择的块分类为消耗度=等级1的组(步骤S204)。
如果所选择的块的消耗度不与等级1对应(步骤S203的否(NO)),则控制器4判定所选择的块的消耗度是否与等级2对应(步骤S205)。如果所选择的块的消耗度与等级2对应(步骤S205的是),则控制器4将所选择的块分类为消耗度=等级2的组(步骤S206)。
如果所选择的块的消耗度不与等级2对应(步骤S205的否),则控制器4判定所选择的块的消耗度是否与等级3对应(步骤S207)。如果所选择的块的消耗度与等级3对应(步骤S207的是),则控制器4将所选择的块分类为消耗度=等级3的组(步骤S208)。
如果所选择的块的消耗度不与等级3对应(步骤S207的否),则控制器4将所选择的块分类为消耗度=等级4的组(步骤S209)。
图18的流程图表示基于消耗度选择写入目标块,并对所选择的块写入数据的动作的顺序。
当从主机2接收到包含指定应写入的数据所需的数据保存期间的参数的写入指令时(步骤S301的是),控制器4搜索具有满足所需的数据保存期间的消耗度的块(步骤S302),判定是否存在满足所需的数据保存期间的块(步骤S303)。所谓具有满足所需的数据保存期间的消耗度的块是指根据其消耗度推定的数据保存期间为由写入指令指定的数据保存期间以上的块。
如果不存在具有满足所需的数据保存期间的消耗度的块(步骤S303的否),则控制器4向主机2回复错误(步骤S315)。如果不存在具有满足所需的数据保存期间的消耗度的块,则无法对满足由主机2指定的数据保存期间的块写入应写入的数据,因此无法确保应写入的数据所需的数据保存期间。因此,将该内容作为错误回复给主机2。
如果存在具有满足所需的数据保存期间的消耗度的块(步骤S303的是),则控制器4判定是否存在具有与所需的数据保存期间一致的数据保存期间所对应的消耗度的块(步骤S304)。
如果存在具有与所需的数据保存期间一致的数据保存期间所对应的消耗度的块(步骤S304的是),则控制器4选择具有与所需的数据保存期间一致的数据保存期间所对应的消耗度的块(步骤S305)。例如在与由写入指令指定的数据保存期间一致的数据保存期间所对应的消耗度为等级3的情况下,控制器4判定是否存在具有等级3的消耗度的块,如果存在具有等级3的消耗度的块,则选择具有等级3的消耗度的块。
继而,控制器4通过通常的编程模式对所选择的块写入应写入的数据(步骤S306)。
如果不存在具有与所需的数据保存期间一致的数据保存期间所对应的消耗度的块(步骤S304的否),则控制器4判定是否存在与比所需的数据保存期间长1个等级的数据保存期间对应的消耗度的块(步骤S307)。如果存在与比所需的数据保存期间长1个等级的数据保存期间对应的消耗度的块(步骤S307的是),则控制器4选择与比所需的数据保存期间长1个等级的数据保存期间对应的消耗度的块(步骤S308)。
例如在与由写入指令指定的数据保存期间一致的数据保存期间所对应的消耗度为等级3,且不存在具有等级3的消耗度的块的情况下,控制器4判定是否存在具有比由等级3的消耗度推定的数据保存期间长1个等级的数据保存期间的块、即具有等级2的消耗度的块,如果存在具有等级2的消耗度的块,则选择具有等级2的消耗度的块作为写入目标块。
继而,控制器4通过通常的编程模式对所选择的块写入应写入的数据(步骤S309)。
如果不存在与比所需的数据保存期间长1个等级的数据保存期间对应的消耗度的块(步骤S307的否),则控制器4判定是否存在与比所需的数据保存期间长2个等级的数据保存期间对应的消耗度的块。继而,如果不存在与比所需的数据保存期间长2个等级的数据保存期间对应的消耗度的块,则控制器4判定是否存在与比所需的数据保存期间长3个等级的数据保存期间对应的消耗度的块。这样,如果不存在具有所判定的等级的消耗度的块,则控制器4判定是否存在与比该判定的等级长1个等级的数据保存期间对应的消耗度的块。其原因在于,在具有与所需的数据保存期间以上的数据保存期间对应的消耗度的块中,优先选择具有与尽可能短的数据保存期间对应的消耗度的块作为写入目标块。
例如在与由写入指令指定的数据保存期间一致的数据保存期间所对应的消耗度为等级3的情况下,控制器4判定是否存在具有等级3的消耗度的块,如果不存在具有等级3的消耗度的块,则执行是否存在具有等级2的消耗度的块的判定。
继而,判定是否存在与比最长的数据保存期间短1个等级的数据保存期间对应的消耗度的块(步骤S310),如果存在与比最长的数据保存期间短1个等级的数据保存期间对应的消耗度的块(步骤S310的是),则控制器4选择与比最长的数据保存期间短1个等级的数据保存期间对应的消耗度的块作为写入目标块(步骤S311)。
控制器4通过通常的编程模式对所选择的块写入应写入的数据(步骤S312)。
如果不存在与比最长的数据保存期间短1个等级的数据保存期间对应的消耗度的块(步骤S310的否),则控制器4选择与最长的数据保存期间对应的消耗度的块作为写入目标块(步骤S313)。继而,控制器4通过通常的编程模式对所选择的块写入应写入的数据(步骤S314)。例如在与由写入指令指定的数据保存期间一致的数据保存期间所对应的消耗度为等级3,在不存在具有等级3及等级2的消耗度的块的情况下,控制器4在具有与由写入指令指定的数据保存期间以上的数据保存期间对应的消耗度的块中,选择具有与最长的数据保存期间对应的消耗度的块即具有等级1的消耗度的块作为写入目标块。
图19的流程图表示基于消耗度选择写入目标块,通过消耗降低编程模式对所选择的块写入数据的动作的顺序。
图19的流程图是将图18的流程图中的步骤S309变更为步骤S409、将步骤S312变更为步骤S412、将步骤S314变更为步骤S414的流程图。
在选择具有与所需的数据保存期间一致的数据保存期间所对应的消耗度的块作为写入目标块的情况下(步骤S303~S305),控制器4通过通常的编程模式对所选择的块写入应写入的数据(步骤S306)。
另一方面,在因为不存在具有与所需的数据保存期间一致的数据保存期间所对应的消耗度的块,所以选择具有与比指定的数据保存期间长的数据保存期间对应的消耗度的块作为写入目标块的情况下(步骤S308、步骤S311、步骤S313),控制器4通过消耗降低编程模式对所选择的块写入应写入的数据(步骤S409、步骤S412、步骤S414)。
图20的流程图表示基于擦除次数将块分类的顺序。因为块的消耗度能够基于块的擦除次数进行判断,所以也能够基于块的擦除次数而执行将块分类的动作。此外,擦除次数越多,则消耗度变得越大,擦除次数越少,则消耗度变得越小。
控制器4对NAND型闪速存储器5中所包含的各块的擦除次数进行监视(步骤S501)。继而,控制器4选择某一块(步骤S502)。
在之后的步骤S503~S509中,基于步骤S502中所选择的块的擦除次数,执行所选择的块的分组。
控制器4判定所选择的块的擦除次数是否与等级1对应(步骤S503)。如果所选择的块的擦除次数与等级1对应(步骤S503的是),则控制器4将所选择的块分类为消耗度=等级1的组(步骤S504)。
如果所选择的块的擦除次数不与等级1对应(步骤S503的否),则控制器4判定所选择的块的擦除次数是否与等级2对应(步骤S505)。如果所选择的块的擦除次数与等级2对应(步骤S505的是),则控制器4将所选择的块分类为消耗度=等级2的组(步骤S506)。
如果所选择的块的擦除次数不与等级2对应(步骤S505的否),则控制器4判定所选择的块的擦除次数是否与等级3对应(步骤S507)。如果所选择的块的擦除次数与等级3对应(步骤S507的是),则控制器4将所选择的块分类为消耗度=等级3的组(步骤S508)。
如果所选择的块的擦除次数不与等级3对应(步骤S507的否),则控制器4将所选择的块分类为消耗度=等级4的组(步骤S509)。
图21的流程图表示基于擦除次数选择写入目标块,并对所选择的块写入数据的动作的顺序。
当从主机2接收到包含指定应写入的数据所需的数据保存期间的参数的写入指令时(步骤S601的是),控制器4参照块消耗度管理表33A,搜索具有满足所需的数据保存期间的擦除次数的块(步骤S602),判定是否存在具有满足所需的数据保存期间的擦除次数的块(步骤S603)。具有满足所需的数据保存期间的擦除次数的块是指根据擦除次数推定的数据保存期间为由写入指令指定的数据保存期间以上的块。
如果不存在具有满足所需的数据保存期间的擦除次数的块(步骤S603的否),则控制器4向主机2回复错误(步骤S615)。
如果存在具有满足所需的数据保存期间的擦除次数的块(步骤S603的是),则控制器4判定是否存在具有与所需的数据保存期间一致的数据保存期间所对应的擦除次数的块(步骤S604)。
如果存在具有与所需的数据保存期间一致的数据保存期间所对应的擦除次数的块(步骤S604的是),则控制器4选择具有与所需的数据保存期间一致的数据保存期间所对应的擦除次数的块(步骤S605)。继而,控制器4通过通常的编程模式对所选择的块写入应写入的数据(步骤S606)。
如果不存在具有与所需的数据保存期间一致的数据保存期间所对应的擦除次数的块(步骤S604的否),则控制器4判定是否存在与比所需的数据保存期间长1个等级的数据保存期间对应的擦除次数的块(步骤S607)。如果存在与比所需的数据保存期间长1个等级的数据保存期间对应的擦除次数的块(步骤S607的是),则控制器4选择与比所需的数据保存期间长1个等级的数据保存期间对应的擦除次数的块(步骤S608)。继而,控制器4通过通常的编程模式对所选择的块写入应写入的数据(步骤S609)。
如果不存在与比所需的数据保存期间长1个等级的数据保存期间对应的擦除次数的块(步骤S607的否),则控制器4判定是否存在与比所需的数据保存期间长2个等级的数据保存期间对应的擦除次数的块。继而,如果不存在与比所需的数据保存期间长2个等级的数据保存期间对应的擦除次数的块,则控制器4判定是否存在与比所需的数据保存期间长3个等级的数据保存期间对应的擦除次数的块。这样,如果不存在具有所判定的等级的擦除次数的块,则控制器4判定是否存在与比该判定的等级长1个等级的数据保存期间对应的擦除次数的块。其原因在于,在具有与所需的数据保存期间以上的数据保存期间对应的擦除次数的块中,优选选择具有与尽可能短的数据保存期间对应的擦除次数的块作为写入目标块。
继而,判定是否存在与比最长的数据保存期间短1个等级的数据保存期间对应的擦除次数的块(步骤S610),如果存在与比最长的数据保存期间短1个等级的数据保存期间对应的擦除次数的块(步骤S610的是),则控制器4选择与比最长的数据保存期间短1个等级的数据保存期间对应的擦除次数的块作为写入目标块(步骤S611)。继而,控制器4通过通常的编程模式对所选择的块写入应写入的数据(步骤S612)。
如果不存在与比最长的数据保存期间短1个等级的数据保存期间对应的擦除次数的块(步骤S610的否),则控制器4选择与最长的数据保存期间对应的擦除次数的块作为写入目标块(步骤S613)。控制器4通过通常的编程模式对所选择的块写入应写入的数据(步骤S614)。
图22的流程图表示基于擦除次数选择写入目标块,通过消耗降低编程模式对所选择的块写入数据的动作的顺序。
图22的流程图是将图21的流程图中的步骤S609变更为步骤S709、将步骤S612变更为步骤S712、将步骤S614变更为步骤S714的流程图。
于选择具有与所需的数据保存期间一致的数据保存期间所对应的擦除次数的块作为写入目标块的情况下(步骤S603~S605),控制器4通过通常的编程模式对所选择的块写入应写入的数据(步骤S606)。
另一方面,在因为不存在具有与所需的数据保存期间一致的数据保存期间所对应的擦除次数的块,所以选择具有与比指定的数据保存期间长的数据保存期间对应的擦除次数的块作为写入目标块的情况下(步骤S608、步骤S611、步骤S613),控制器4以消耗降低编程模式对所选择的块写入应写入的数据(步骤S709、步骤S712、步骤S714)。
图23的流程图表示基于擦除时间将块分类的顺序。因为块的消耗度能够基于块的擦除时间进行判断,所以也能够基于块的擦除时间执行将块分类的动作。此外,擦除时间越长,消耗度变得越大,擦除时间越短,消耗度变得越小。
控制器4对NAND型闪速存储器5中所包含的各块的擦除时间进行监视(步骤S801)。继而,控制器4选择某一个块(步骤S802)。
在之后的步骤S803~S809中,基于步骤S802中所选择的块的擦除时间,执行所选择的块的分组。
控制器4判定所选择的块的擦除时间是否与等级1对应(步骤S803)。如果所选择的块的擦除时间与等级1对应(步骤S803的是),则控制器4将所选择的块分类为消耗度=等级1的组(步骤S804)。
如果所选择的块的擦除时间不与等级1对应(步骤S803的否),则控制器4判定所选择的块的擦除时间是否与等级2对应(步骤S805)。如果所选择的块的擦除时间与等级2对应(步骤S805的是),则控制器4将所选择的块分类为消耗度=等级2的组(步骤S806)。
如果所选择的块的擦除时间不与等级2对应(步骤S805的否),则控制器4判定所选择的块的擦除时间是否与等级3对应(步骤S807)。如果所选择的块的擦除时间与等级3对应(步骤S807的是),则控制器4将所选择的块分类为消耗度=等级3的组(步骤S808)。
如果所选择的块的擦除时间不与等级3对应(步骤S807的否),则控制器4将所选择的块分类为消耗度=等级4的组(步骤S809)。
图24的流程图表示基于擦除时间选择写入目标块,并对所选择的块写入数据的动作的顺序。
当从主机2接收到包含指定应写入的数据所需的数据保存期间的参数的写入指令时(步骤S901的是),控制器4参照块消耗度管理表33A',搜索具有满足所需的数据保存期间的擦除时间的块(步骤S902),判定是否存在具有满足所需的数据保存期间的擦除时间的块(步骤S903)。具有满足所需的数据保存期间的擦除时间的块是指根据擦除时间推定的数据保存期间为由写入指令指定的数据保存期间以上的块。
如果不存在具有满足所需的数据保存期间的擦除时间的块(步骤S903的否),则控制器4向主机2回复错误(步骤S915)。
如果存在具有满足所需的数据保存期间的擦除时间的块(步骤S903的是),则控制器4判定是否存在具有与所需的数据保存期间一致的数据保存期间所对应的擦除时间的块(步骤S904)。
如果存在具有与所需的数据保存期间一致的数据保存期间所对应的擦除时间的块(步骤S904的是),则控制器4选择具有与所需的数据保存期间一致的数据保存期间所对应的擦除时间的块(步骤S905)。继而,控制器4通过通常的编程模式对所选择的块写入应写入的数据(步骤S906)。
如果不存在具有与所需的数据保存期间一致的数据保存期间所对应的擦除时间的块(步骤S904的否),则控制器4判定是否存在与比所需的数据保存期间长1个等级的数据保存期间对应的擦除时间的块(步骤S907)。如果存在与比所需的数据保存期间长1个等级的数据保存期间对应的擦除时间的块(步骤S907的是),则控制器4选择与比所需的数据保存期间长1个等级的数据保存期间对应的擦除时间的块(步骤S908)。继而,控制器4通过通常的编程模式对所选择的块写入应写入的数据(步骤S909)。
如果不存在与比所需的数据保存期间长1个等级的数据保存期间对应的擦除时间的块(步骤S907的否),则判定是否存在与比所需的数据保存期间长2个等级的数据保存期间对应的擦除时间的块。继而,如果不存在与比所需的数据保存期间长2个等级的数据保存期间对应的擦除时间的块,则判定是否存在与比所需的数据保存期间长3个等级的数据保存期间对应的擦除时间的块。这样,如果不存在具有所判定的等级的擦除时间的块,则判定是否存在与比该判定的等级长1个等级的数据保存期间对应的擦除时间的块。其原因在于,在具有与所需的数据保存期间以上的数据保存期间对应的擦除时间的块中,优选选择具有与尽可能短的数据保存期间对应的擦除时间的块作为写入目标块。
继而,判定是否存在与比最长的数据保存期间短1个等级的数据保存期间对应的擦除时间的块(步骤S910),如果存在与比最长的数据保存期间短1个等级的数据保存期间对应的擦除时间的块(步骤S910的是),则控制器4选择与比最长的数据保存期间短1个等级的数据保存期间对应的擦除时间的块作为写入目标块(步骤S911)。继而,控制器4通过通常的编程模式对所选择的块写入应写入的数据(步骤S912)。
如果不存在与比最长的数据保存期间短1个等级的数据保存期间对应的擦除时间的块(步骤S910的否),则控制器4选择与最长的数据保存期间对应的擦除时间的块作为写入目标块(步骤S913)。控制器4通过通常的编程模式对所选择的块写入应写入的数据(步骤S914)。
图25的流程图表示基于擦除时间选择写入目标块,通过消耗降低编程模式对所选择的块写入数据的动作的顺序。
图25的流程图是将图24的流程图中的步骤S909变更为步骤S1009、将步骤S912变更为步骤S1012、将步骤S914变更为步骤S1014的流程图。
在选择具有与所需的数据保存期间一致的数据保存期间所对应的擦除时间的块作为写入目标块的情况下(步骤S903~S905),控制器4通过通常的编程模式对所选择的块写入应写入的数据(步骤S906)。
另一方面,在因为不存在具有与所需的数据保存期间一致的数据保存期间所对应的擦除时间的块,所以选择具有与比指定的数据保存期间长的数据保存期间对应的擦除时间的块作为写入目标块的情况下(步骤S908、步骤S911、步骤S913),控制器4以消耗降低编程模式对所选择的块写入应写入的数据(步骤S1009、步骤S1012、步骤S1014)。
(第2实施方式)
在第1实施方式中,在闪速存储装置3内设置着进行各逻辑地址与各物理地址之间的映射的管理的查找表(LUT)32。在第2实施方式中,主机2具有进行各逻辑地址与各物理地址之间的映射的管理的查找表(LUT)32A,在闪速存储装置3中不存在查找表(LUT)32。
以下仅对与第1实施方式不同的方面进行说明。
图26表示包含第2实施方式的存储器系统的信息处理系统1的构成例。
与第1实施方式的不同在于,在闪速存储装置3内无LUT32,取而代之,在主机2的闪速存储管理器44内具有LUT32A。
在LUT32A中,对各逻辑地址与闪速存储装置3的各物理地址之间的映射进行管理。在LUT32A中,逻辑地址是识别数据的标识符(标签),该逻辑地址(标签)可为LBA,可为键值存储器(key-value store)的键,也可为如文件名的文件标识符。LUT32A是由闪速存储管理器44进行管理,LUT32A的更新也通过闪速存储管理器44进行。
另外,在闪速存储装置3内的系统管理信息33中,与第1实施方式同样地包含块消耗度管理表33A、块消耗度管理表33A'、块信息。块信息如上所述包含表示NAND型闪速存储器5内的各块中所含的各数据的有效/无效的旗标(点阵图旗标)。
图27表示应用于第2实施方式的闪速存储装置3的写入指令。
该写入指令是对闪速存储装置3请求数据写入的指令。该写入指令也可包含指定QoS(Quality of Service,服务质量)域ID(Identity,标识)的参数、指定逻辑地址的参数、指定长度的参数、指定所需的数据保存期间的参数等。
QoS域ID是能够唯一地识别应写入数据的QoS域的标识符。对应于来自某一终端用户的写入请求而从主机2发送的写入指令也可包含指定与该终端用户对应的QoS域的QoS域ID。名称空间ID也可作为QoS域ID处理。
逻辑地址是识别应写入的数据的标签,例如LBA、键值存储器的键、文件标识符相当于该逻辑地址。
长度表示应写入的写入数据的长度。长度可通过LBA数指定,或者该尺寸也可通过字节指定。
所需的数据保存期间表示应写入的数据所需的数据保存期间(例如1周、2周、1个月、2个月、4个月、6个月、8个月、1年、5年、10年等)。
图28表示对图27的写入指令的响应。
该响应包含逻辑地址、物理地址、长度。
逻辑地址是图27的写入指令中所包含的逻辑地址。
物理地址表示对应于图27的写入指令而被写入数据的NAND型闪速存储器5内的物理存储位置的物理地址。
长度表示所写入的写入数据的长度。长度可通过LBA数指定,或者该尺寸也可通过字节指定。
图29表示应用于第2实施方式的闪速存储装置3的Trim指令。
该Trim指令包含物理地址、长度。
物理地址表示存储有应失效的数据(应减少参照计数的数据)的最初的物理存储位置。
长度表示应失效的数据(应减少参照计数的数据)的长度。该长度(数据长度)也可通过字节指定。
控制器4是对表示各块中所包含的各数据的有效/无效的旗标(点阵图旗标)进行管理。在从主机2接收到包含表示存储有应变得无效的数据的物理存储位置的物理地址的Trim指令的情况下,控制器4更新作为系统管理信息33的一部分的块信息,将与Trim指令中所含的与物理地址对应的物理存储位置的数据所对应的旗标(点阵图旗标)变更为表示无效的值。
图30的序列图表示响应图27的写入指令的接收而通过主机2与闪速存储装置3执行的数据写入处理。
主机2将包含QoS域ID、逻辑地址、写入数据、长度、所需的数据保存期间的写入指令发送至闪速存储装置3。在闪速存储装置3的控制器4接收到该写入指令时,控制器4选择根据消耗度推定的数据保存期间为由主机2指定的数据保存期间以上的块(步骤S1101),决定所选择的块内的写入位置,对该选择的块内的写入位置写入写入数据(步骤S1102)。
继而,控制器4向主机2回复对该写入指令的响应(步骤S1103)。响应包含逻辑地址、物理地址、长度。物理地址指定所选择的块与该选择的块内的写入位置这两者。该物理地址也可通过表示所选择的块的块地址与表示写入位置的块内偏移而表现。
当主机2接收到该响应时,主机2更新由主机2管理的LUT32A,将物理地址映射至与写入的写入数据对应的逻辑地址(步骤S1104)。
然后,主机2将用于使因所述更新数据的写入而变得无用的以前的数据失效的Trim指令发送至闪速存储装置3。
闪速存储装置3的控制器4是对应于该Trim指令而更新块信息(步骤S1105)。块信息的更新是指更新作为系统管理信息33的一部分的块信息,将与Trim指令中所含的物理地址对应的物理存储位置的数据所对应的旗标(点阵图旗标)变更为表示无效的值。
图31表示内置闪速存储装置3的主机2的构成例。
该信息处理装置具备可收容于支架的薄的箱形的壳体201。多个闪速存储装置3也可配置于壳体201内。在该情况下,各闪速存储装置3也可能够卸除地插入至设置在壳体201的前表面201A的插槽。
系统板(母板)202配置于壳体201内。在系统板(母板)202上安装着包含CPU101、存储器102、网络控制器105、控制器107的各种电子零件。这些电子零件作为主机2发挥功能。
如以上所说明,根据第1及第2实施方式,在从主机2接收到包含指定应写入的数据所需的数据保存期间的参数的写入请求的情况下,选择根据消耗度推定的数据保存期间为由主机2指定的数据保存期间以上的块作为写入目标块,并对该选择的块写入数据。由此,在混合存在指定不同的数据保存期间的各写入请求的环境下,能够对所需的数据保存期间不同的复数种数据最佳地分配具有不同的消耗度的多个块。例如,对于需要5年数据保存期间的数据的写入请求,能够分配低消耗度的块作为写入目标块,对于需要1个月的数据保存期间的数据的写入请求,能够分配相对较大的消耗度的块作为写入目标块。
另外,根据第1及第2实施方式,在根据消耗度推定的数据保存期间为指定的数据保存期间以上的块中,优先选择具有与更短的数据保存期间对应的消耗度的块作为写入目标块。因此,能够防止如下事态:在写入由主机2指定的数据保存期间短的数据的情况下,将具有超出需要的数据保存期间的块用于该数据的写入;在执行由主机2指定的数据保存期间长的数据的写入时,具有与由主机2指定的数据保存期间以上的数据保存期间对应的消耗度的块不足。因此,能够对所需的数据保存期间不同的复数种数据进一步最佳地分配具有不同的消耗度的多个块。
而且,在根据被选作写入目标块的块的消耗度推定的数据保存期间长于由主机2指定的数据保存期间的情况下,能够通过充电至所选择的块的存储单元群的电荷量比利用通常的编程模式的编程动作少的利用消耗降低模式的编程动作将数据写入至所选择的块。由此,与执行利用通常的编程模式的编程动作的情况相比,能够降低存储单元群的消耗,能够使闪速存储装置3长寿命化。
因此,根据第1及第2实施方式,能够提供一种能够谋求可靠性的提高的存储器系统。
此外,在第1及第2实施方式中,例示了NAND型闪速存储器作为非易失性存储器。但是,第1及第2实施方式的功能例如也可应用于如MRAM(Magnetoresistive Random AccessMemory,磁阻式随机存取存储器)、PRAM(Phase change Random Access Memory,相变随机存取存储器)、ReRAM(Resistive Random Access Memory,电阻式随机存取存储器)、或FeRAM(Ferroelectric Random Access Memory,铁电式随机存取存储器)的其他各种非易失性存储器。
虽然对本发明的若干种实施方式进行了说明,但这些实施方式是作为例子提出的,并非意图限定发明的范围。这些新颖的实施方式能够通过其他各种方式来实施,能够于不脱离发明主旨的范围内进行各种省略、替换、变更。这些实施方式或其变化包含于发明的范围或主旨内,并且包含于权利要求书所记载的发明及其均等的范围内。
[符号的说明]
2 主机
3 闪速存储装置
4 控制器
5 NAND型闪速存储器
21 擦除次数监控器部
22 擦除时间监控器部
23 块分类部
24 写入动作控制部
25 消耗降低处理部

Claims (12)

1.一种存储器系统,其特征在于能够连接于主机,且包括:
非易失性存储器;以及
控制器,电连接于所述非易失性存储器,且控制所述非易失性存储器;
所述控制器构成为:
对所述非易失性存储器内的多个块各自的消耗度进行管理,
从所述主机接收写入请求,该写入请求包含指定应写入的第1数据所需的数据保存期间的参数,
对所述多个块中与消耗度对应的数据保存期间为所述指定的数据保存期间以上的第1块写入所述第1数据。
2.根据权利要求1所述的存储器系统,其特征在于:所述多个块各自的消耗度是通过所述多个块各自的擦除次数表示。
3.根据权利要求1所述的存储器系统,其中所述多个块各自的消耗度是通过所述多个块各自的擦除时间表示。
4.根据权利要求1所述的存储器系统,其特征在于:所述控制器构成为:在根据消耗度推定的数据保存期间为所述指定的数据保存期间以上的块中,优先选择具有与更短的数据保存期间对应的消耗度的块作为所述第1块。
5.根据权利要求1所述的存储器系统,其特征在于所述控制器构成为:
基于所述多个块各自的消耗度,将所述多个块分类为与多个数据保存期间对应的多个块组,
在存在被分类为具有与所述指定的数据保存期间一致的数据保存期间的第1块组的块的情况下,选择被分类为所述第1块组的块作为所述第1块,
在不存在被分类为所述第1块组的块的情况下,选择被分类为具有比所述指定的数据保存期间长的数据保存期间的第2块组的块作为所述第1块。
6.根据权利要求1所述的存储器系统,其特征在于所述控制器是
在根据所述第1块的消耗度推定的数据保存期间与所述指定的数据保存期间相同的情况下,通过第1编程动作将所述第1数据写入至所述第1块,
在根据所述第1块的消耗度推定的数据保存期间比所述指定的数据保存期间长的情况下,通过充电至所述第1块的存储单元群的电荷量比所述第1编程动作少的第2编程动作将所述第1数据写入至所述第1块。
7.一种非易失性存储器的控制方法,其特征在于包括如下步骤:
对非易失性存储器内的多个块各自的消耗度进行管理;
从主机接收写入请求,该写入请求包含指定应写入的第1数据所需的数据保存期间的参数;
对所述多个块中与消耗度对应的数据保存期间为所述指定的数据保存期间以上的第1块写入所述第1数据。
8.根据权利要求7所述的非易失性存储器的控制方法,其特征在于所述多个块各自的消耗度是通过所述多个块各自的擦除次数表示。
9.根据权利要求7所述的非易失性存储器的控制方法,其特征在于所述多个块各自的消耗度是通过所述多个块各自的擦除时间表示。
10.根据权利要求7所述的非易失性存储器的控制方法,其特征在于所述写入的步骤包含如下步骤:在根据消耗度推定的数据保存期间为所述指定的数据保存期间以上的块中,优先选择具有与更短的数据保存期间对应的消耗度的块作为所述第1块。
11.根据权利要求7所述的非易失性存储器的控制方法,其特征在于还包括如下步骤:基于所述多个块各自的消耗度,将所述多个块分类为与多个数据保存期间对应的多个块组;且
所述写入的步骤包含如下步骤:
在存在被分类为具有与所述指定的数据保存期间一致的数据保存期间的第1块组的块的情况下,选择被分类为所述第1块组的块作为所述第1块;以及
在不存在被分类为所述第1块组的块的情况下,选择被分类为具有比所述指定的数据保存期间长的数据保存期间的第2块组的块作为所述第1块。
12.根据权利要求7所述的非易失性存储器的控制方法,其特征在于所述写入的步骤包含如下步骤:
在根据所述第1块的消耗度推定的数据保存期间与所述指定的数据保存期间相同的情况下,通过第1编程动作将所述第1数据写入至所述第1块;及
在根据所述第1块的消耗度推定的数据保存期间比所述指定的数据保存期间长的情况下,通过充电至所述第1块的存储单元群的电荷量比所述第1编程动作少的第2编程动作将所述第1数据写入至所述第1块。
CN201810887402.6A 2017-11-06 2018-08-06 存储器系统及非易失性存储器的控制方法 Active CN109753234B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2017213955A JP7010667B2 (ja) 2017-11-06 2017-11-06 メモリシステムおよび制御方法
JP2017-213955 2017-11-06

Publications (2)

Publication Number Publication Date
CN109753234A true CN109753234A (zh) 2019-05-14
CN109753234B CN109753234B (zh) 2022-05-13

Family

ID=66327149

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810887402.6A Active CN109753234B (zh) 2017-11-06 2018-08-06 存储器系统及非易失性存储器的控制方法

Country Status (4)

Country Link
US (2) US11042305B2 (zh)
JP (1) JP7010667B2 (zh)
CN (1) CN109753234B (zh)
TW (1) TWI729307B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11301143B2 (en) * 2019-06-05 2022-04-12 Micron Technology, Inc. Selective accelerated sampling of failure-sensitive memory pages
US11720352B2 (en) * 2019-12-10 2023-08-08 Micron Technology, Inc. Flexible command pointers to microcode operations
US11562792B2 (en) 2020-03-18 2023-01-24 Kioxia Corporation Memory system having a non-volatile memory and a controller configured to switch a mode for controlling an access operation to the non-volatile memory
US11543987B2 (en) * 2020-06-04 2023-01-03 Western Digital Technologies, Inc. Storage system and method for retention-based zone determination
US11556257B2 (en) * 2020-08-14 2023-01-17 Micron Technology, Inc. Selectable wear life indicator based on data retention
JP2022114726A (ja) * 2021-01-27 2022-08-08 キオクシア株式会社 メモリシステムおよび制御方法
TWI821152B (zh) * 2021-02-23 2023-11-01 慧榮科技股份有限公司 儲存裝置、快閃記憶體控制器及其控制方法
TWI808384B (zh) * 2021-02-23 2023-07-11 慧榮科技股份有限公司 儲存裝置、快閃記憶體控制器及其控制方法
US20230075055A1 (en) * 2021-09-08 2023-03-09 Quanta Computer Inc. Method and system for providing life cycle alert for flash memory device

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100050053A1 (en) * 2008-08-22 2010-02-25 Wilson Bruce A Error control in a flash memory device
US20120203951A1 (en) * 2010-01-27 2012-08-09 Fusion-Io, Inc. Apparatus, system, and method for determining a configuration parameter for solid-state storage media
US20130073785A1 (en) * 2011-09-15 2013-03-21 International Business Machines Corporation Retention management for phase change memory lifetime improvement through application and hardware profile matching
US20140181376A1 (en) * 2012-12-21 2014-06-26 Kabushiki Kaisha Toshiba Memory controller and memory system
US20150186072A1 (en) * 2013-12-30 2015-07-02 Sandisk Technologies Inc. Method and system for adjusting block erase or program parameters based on a predicted erase life
CN106874211A (zh) * 2015-12-14 2017-06-20 株式会社东芝 存储器系统及非易失性存储器的控制方法

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6831865B2 (en) * 2002-10-28 2004-12-14 Sandisk Corporation Maintaining erase counts in non-volatile storage systems
US7523013B2 (en) * 2006-05-15 2009-04-21 Sandisk Corporation Methods of end of life calculation for non-volatile memories
JP4575346B2 (ja) 2006-11-30 2010-11-04 株式会社東芝 メモリシステム
US9153337B2 (en) * 2006-12-11 2015-10-06 Marvell World Trade Ltd. Fatigue management system and method for hybrid nonvolatile solid state memory system
TW200834181A (en) 2007-02-12 2008-08-16 Wang yong qi Display system with LED backlighting module
TWI385669B (zh) * 2008-07-23 2013-02-11 Phison Electronics Corp 用於快閃記憶體的平均磨損方法、儲存系統與控制器
US8412880B2 (en) * 2009-01-08 2013-04-02 Micron Technology, Inc. Memory system controller to manage wear leveling across a plurality of storage nodes
WO2011007599A1 (ja) * 2009-07-17 2011-01-20 株式会社 東芝 メモリ管理装置
JP2011070346A (ja) 2009-09-25 2011-04-07 Toshiba Corp メモリシステム
JP4987997B2 (ja) * 2010-02-26 2012-08-01 株式会社東芝 メモリシステム
JP2011227802A (ja) 2010-04-22 2011-11-10 Funai Electric Co Ltd データ記録装置
KR101180406B1 (ko) * 2011-01-28 2012-09-10 에스케이하이닉스 주식회사 비휘발성 메모리 시스템 및 블럭 관리 방법
US8806111B2 (en) 2011-12-20 2014-08-12 Fusion-Io, Inc. Apparatus, system, and method for backing data of a non-volatile storage device using a backing store
KR101989850B1 (ko) * 2012-04-03 2019-06-18 삼성전자주식회사 불휘발성 메모리 장치, 메모리 시스템 및 그것의 프로그램 방법
US20140122774A1 (en) * 2012-10-31 2014-05-01 Hong Kong Applied Science and Technology Research Institute Company Limited Method for Managing Data of Solid State Storage with Data Attributes
US9263136B1 (en) 2013-09-04 2016-02-16 Western Digital Technologies, Inc. Data retention flags in solid-state drives
CN106909318B (zh) 2013-12-23 2020-05-08 华为技术有限公司 固态硬盘使用方法及装置
CN104156317A (zh) * 2014-08-08 2014-11-19 浪潮(北京)电子信息产业有限公司 一种非易失性闪存的擦写管理方法及系统
US9225527B1 (en) 2014-08-29 2015-12-29 Coban Technologies, Inc. Hidden plug-in storage drive for data integrity
CN105353979B (zh) * 2015-10-22 2017-10-27 湖南国科微电子股份有限公司 Ssd内部数据文件管理系统及管理方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100050053A1 (en) * 2008-08-22 2010-02-25 Wilson Bruce A Error control in a flash memory device
US20120203951A1 (en) * 2010-01-27 2012-08-09 Fusion-Io, Inc. Apparatus, system, and method for determining a configuration parameter for solid-state storage media
US20130073785A1 (en) * 2011-09-15 2013-03-21 International Business Machines Corporation Retention management for phase change memory lifetime improvement through application and hardware profile matching
US20140181376A1 (en) * 2012-12-21 2014-06-26 Kabushiki Kaisha Toshiba Memory controller and memory system
US20150186072A1 (en) * 2013-12-30 2015-07-02 Sandisk Technologies Inc. Method and system for adjusting block erase or program parameters based on a predicted erase life
CN106874211A (zh) * 2015-12-14 2017-06-20 株式会社东芝 存储器系统及非易失性存储器的控制方法

Also Published As

Publication number Publication date
CN109753234B (zh) 2022-05-13
US20190138226A1 (en) 2019-05-09
US11042305B2 (en) 2021-06-22
TWI729307B (zh) 2021-06-01
JP2019086970A (ja) 2019-06-06
US20210278974A1 (en) 2021-09-09
JP7010667B2 (ja) 2022-01-26
US11747989B2 (en) 2023-09-05
TW201918885A (zh) 2019-05-16

Similar Documents

Publication Publication Date Title
CN109753234A (zh) 存储器系统及非易失性存储器的控制方法
CN110781096B (zh) 用于通过预测需求时间来执行垃圾收集的设备和方法
KR101908581B1 (ko) 저장 디바이스들에서의 웨어 레벨링
CN103635968B (zh) 包含存储器系统控制器的设备和相关方法
KR102569783B1 (ko) 비순차적 구역 네임스페이스들
US9805799B2 (en) Devices and methods of managing nonvolatile memory device having single-level cell and multi-level cell areas
CN109902039A (zh) 存储器控制器、存储器系统及于一存储器中管理数据配置的方法
CN109144888A (zh) 存储器系统
CN107025178A (zh) 存储器控制器、非易失性存储器系统及其操作方法
US20140129758A1 (en) Wear leveling in flash memory devices with trim commands
US9183142B2 (en) Reducing flash memory write amplification and latency
TW201621912A (zh) 用於組態和控制非揮發性快取記憶體的系統及方法
CN102810068A (zh) 存储装置、存储系统和使存储装置虚拟化的方法
CN105593942A (zh) 非易失性存储器装置中的易失性存储器架构及相关控制器
JP2018142240A (ja) メモリシステム
CN109901791A (zh) 信息处理装置以及信息处理装置的执行方法
CN106062724A (zh) 存储器模块上的数据管理
CN111414133A (zh) 操作存储器控制器和存储器系统的方法以及存储器系统
KR20210026431A (ko) 메모리 시스템, 메모리 컨트롤러 및 동작 방법
KR20200135549A (ko) 카운터 업데이트 동작을 위한 장치 및 방법
CN110286847A (zh) 数据存储装置及其操作方法
CN111625197A (zh) 存储器控制方法、存储器存储装置及存储器控制器
CN113946283B (zh) 存储器装置的分区命名空间中的部分区存储器单元处置
KR20190095825A (ko) 데이터 저장 장치 및 그것의 동작 방법
CN106055488A (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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: Tokyo

Applicant after: Kaixia Co.,Ltd.

Address before: Tokyo

Applicant before: TOSHIBA MEMORY Corp.

Address after: Tokyo

Applicant after: TOSHIBA MEMORY Corp.

Address before: Tokyo

Applicant before: Pangea Co.,Ltd.

TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20220208

Address after: Tokyo

Applicant after: Pangea Co.,Ltd.

Address before: Tokyo

Applicant before: TOSHIBA MEMORY Corp.

GR01 Patent grant
GR01 Patent grant