CN103392208A - 半导体存储装置和用于控制半导体存储装置的方法 - Google Patents

半导体存储装置和用于控制半导体存储装置的方法 Download PDF

Info

Publication number
CN103392208A
CN103392208A CN2011800680743A CN201180068074A CN103392208A CN 103392208 A CN103392208 A CN 103392208A CN 2011800680743 A CN2011800680743 A CN 2011800680743A CN 201180068074 A CN201180068074 A CN 201180068074A CN 103392208 A CN103392208 A CN 103392208A
Authority
CN
China
Prior art keywords
block
data
degradation
reliability
semiconductor storage
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.)
Pending
Application number
CN2011800680743A
Other languages
English (en)
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Publication of CN103392208A publication Critical patent/CN103392208A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • 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
    • 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/3404Convergence or correction of memory cell threshold voltages; Repair or recovery of overerased or overprogrammed cells
    • 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
    • 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

Abstract

基于对于闪存的每个存储区域的劣化程度和读取频率,对于每个存储区域计算可靠性维持期;并且基于所计算的可靠性维持期,在每个存储区域上以计划的方式执行刷新。配置一种半导体存储装置100A,使得闪存120至128和存储器控制器110连接,并且闪存120至128包括多个作为存储区域的区块;并且存储器控制器110对于多个区块的每一个,管理区块的劣化程度和读取频率;基于所管理的区块的劣化程度和读取频率,获得存储在区块中的数据的可靠性维持期;并且基于所获得的可靠性维持期,通过将存储在区块中的数据新存储在另一个区块中,执行用于纠正有关数据的故障比特的刷新。

Description

半导体存储装置和用于控制半导体存储装置的方法
技术领域
本发明涉及一种用于控制半导体存储装置的半导体存储装置和方法,且具体地适合于在半导体存储装置中使用,该存储装置的存储介质是闪存,闪存是一种类型的电可重写非易失性存储器,本发明还涉及一种用于控制这种半导体存储装置的方法。
背景技术
闪存具有如下性质(保存性质):存储在闪存中的数据根据自从数据存储后的流逝时间逐渐地改变;并且还具有如下性质(读取干扰性质):随着数据读取多于一次,读取的数据逐渐地改变。因此,装配闪存作为存储介质的半导体存储装置逐渐地添加ECC(纠错码),当写入数据时对数据具有纠正多个比特的能力,且将它存储在闪存的存储区域中。因此,当读取数据时,通过使用这个ECC能够纠正从原始数据改变的故障比特。作为结果,半导体存储装置能够实现准确的数据保存。
在上面描述的境况下,如果在半导体存储装置中的数据保留期很长,或如果在特定区域的数据在本地被读取多于一次,或者如果这些状况组合在一起,出现的故障比特可能超出ECC的纠正能力。在这种情形中,由半导体存储装置存储的数据可靠性将降低且不能维持。常规地,为了处理这个类型的ECC纠正失能故障,并且将这个ECC纠正失能故障的发生保持在足够低的可能性下,存在一种方法:读取数据,该数据已经存储在闪存中,一旦在从原始数据改变而来的故障比特的数量超过由ECC能够纠正的比特的数量之前,由ECC纠正所读取数据的故障比特,随后将纠正的数据再次存储至闪存的另一个存储区域。这个目的为了纠正故障比特的再次存储已经存储的数据的操作称为刷新。
为了适当地防止ECC纠正失能故障,有必要根据故障比特数量的增加而执行刷新。具体地说,有必要在故障比特的数量增加且超过由ECC能够纠正的比特数量之前执行刷新。
例如,因为由读取干扰引起的故障比特的数量依赖于数据从特定存储区域读取的次数的累积数量而改变,期望根据读取频率来执行刷新。
因此,专利文献1公开了如下的技术:当从闪存读取数据时,对读取次数的数量计数;如果读取次数的数量达到某个值,则读取存储的数据一次并且检查故障比特的数量;以及如果故障比特的数量等于或大于先前指定的数量,执行刷新。
此外,因为由保存性质引起的故障比特的数量依赖于自从数据的存储后流逝的时间而改变,期望的是根据自从数据的存储后流逝的时间来执行刷新。
因此,专利文献2公开了如下的技术:存储数据在闪存中,随后对自从数据存储后流逝的时间计数,以及如果流逝的时间超过先前指定的时期,则执行刷新。
此外,故障比特的数量还倾向于依赖于存储区域的劣化程度而改变;例如,故障比特的数量在劣化程度高的存储区域相比于在劣化程度低的存储区域趋于增加,即使读取频率低且自从数据的存储后流逝的时间短。
因此,专利文献3公开了如下的技术:通过考虑闪存中存储区域的劣化程度,预测未来故障比特的数量;以及如果确定未来将不可能维持可靠性,就是说,如果确定故障比特的数量将超过由ECC能够纠正的比特数量,则通过将存储的数据复制到另一个存储区域且对于某一时期使复制源存储区域不可用,而恢复数据保存性质。
引用列表
专利文献
PTL:美国专利公开No.2004-0257888
PTL:美国专利No.7325090
PTL:美国专利公开No.2010-0165689
发明内容
技术问题
因为闪存的劣化程度依赖于例如每个存储区域的缺失的累积次数数量,且缺失的累积次数数量对于不同的存储区域是不同的,显然劣化程度在所有区域中会不相同。此外,即使适当地进行了缺失的次数数量的均衡技术(耗损均衡),由于发生在闪存生产过程中的质量差异,环境温度、数据、和其他各种类型因素的轻微差异,在所有的存储区域中均衡故障比特增加的趋势也是困难的。基于对上面内容的考虑,可以说数据能够存储同时维持高可靠性的时期(下文中指代为可靠性维持期)对于闪存的每个存储区域是不同的。
因此,如果不管每个存储区域的劣化程度,一致地指定数据存储在闪存之后直到执行刷新的时期(下文中指代为刷新期),就不可能存储在劣化程度高的存储区域中且劣化确定为在刷新期期间不能够维持可靠性的那些数据。半导体存储装置一般通过包括确定量的备用区域而配置;且如果确定不能存储数据,这个备用区域能够是存储区域的替代;然而,如果半导体存储装置用完备用区域,则装置的寿命考虑为已经到期,且不可能存储更多的数据。因此,为了延长装置的寿命,有必要缩短劣化程度高的存储区域的刷新期,且频繁地执行刷新。
同时,如果根据存储区域一致地指定短的刷新期,为了维持劣化程度高的存储区域的可靠性,对于劣化程度低的能够长期保存数据的存储区域也将频繁地执行刷新劣化。过多的刷新不是期望的,因为它引起存储区域劣化发展,且由于通过刷新对内部资源(总线带宽、处理器、DMA、和其他资源)的排他占有,还引起对于来自主系统的请求的处理性能的劣化。
为了解决上面提到的问题,期望的是,最佳刷新期应当基于劣化程度、自从数据的存储之后流逝的时间、以及闪存中每个存储区域的读取频率而指定,并且刷新应当根据随后指定的刷新期来执行。如上面解释的,通过进行最小必需刷新,维持存储在半导体存储装置中数据的可靠性,以及实现装置的更长寿命成为可能。
然而,通过专利文献1中描述的技术,只基于读取频率进行刷新,而不能基于劣化程度或流逝时间进行刷新。此外,不能通过对每个存储区域的读取频率计数而进行刷新。
此外,通过专利文献2中描述的技术,只基于流逝时间进行刷新,而不能基于劣化程度和读取频率进行刷新。此外,不能通过对每个存储区域的流逝时间计数而进行刷新。
此外,通过专利文献3中描述的技术,当确定将不可能维持未来的可靠性时,数据立即复制到另一个存储区域;且在确定将不可能维持可靠性之后,即使数据能够存储且能够维持几天的高可靠性,仍将进行刷新。因此,不必要的刷新引起数据劣化发展,且还劣化了半导体存储装置的性能。此外,不能基于劣化程度、流逝时间、以及每个存储区域的读取频率进行刷新。
因此,如果对于每个存储区域,基于劣化程度、流逝时间、和闪存中每个存储区域的读取频率计算可靠性维持期,以及能够以计划的方式对每个存储区域通过使用所计算的可靠性维持期而进行刷新,则维持数据的可靠性、防止装置性能的劣化、以及实现装置的更长寿命被认为是可能的。
鉴于上面描述的境况和目标而设计本发明,本发明目的是提出一种半导体存储装置及其控制方法,该半导体存储装置及其控制方法能够维持数据的可靠性、防止装置性能的劣化、以及实现装置的更长寿命。
解决问题的方案
为了解决这样的问题,根据本发明的半导体存储装置,包括用于提供存储区域的闪存,以及用于控制数据从/至闪存的读取/写入的存储控制器,该半导体存储装置的特征在于,闪存的存储区域通过分为多个区块而管理,以及存储控制器,对于每个区块,管理相关区块的劣化程度和读取频率,基于所管理的、区块的劣化程度和读取频率,获得存储在区块中数据的可靠性维持期,以及基于所获得的可靠性维持期,对于将存储在区块中的数据新存储在另一个区块中进行刷新。
此外,根据本发明,用于控制半导体存储装置的方法的特征在于,闪存的存储区域通过分为多个区块而管理;且半导体存储装置控制方法包括:由存储控制器执行的第一步,管理多个区块的每个区块的劣化程度和读取频率;由存储控制器执行的第二步,基于所管理的、区块的劣化程度和读取频率,获得存储在区块中数据的可靠性维持期;以及由存储控制器执行的第三步,基于所获得的可靠性维持期,对于将存储在区块中的数据新存储在另一个区块中进行刷新。该半导体存储装置包括用于提供存储区域的闪存,和用于控制数据从/至闪存读取/写入的存储控制器。
发明的有利效果
根据本发明,维持数据的可靠性,防止装置性能的劣化,以及实现更长的装置寿命是可能的。
附图说明
图1是半导体存储装置的示意配置图。
图2是闪存的内部配置图。
图3是区块的内部配置图。
图4是页面的内部配置图。
图5是根据实施例1的数据保留期管理信息的概念图。
图6是根据实施例1的可靠性维持期表的概念图。
图7是根据实施例1的刷新管理信息的概念图。
图8是根据实施例1的写入过程的流程图。
图9是根据实施例1的读取过程的流程图。
图10是根据实施例1的刷新过程的流程图。
图11是验证管理信息实施例2的概念图。
图12是根据实施例2的故障比特阈值表的概念图。
图13是根据实施例2的写入过程的流程图。
图14是根据实施例2的读取过程的流程图。
图15是根据实施例2的验证控制过程的流程图。
图16是根据实施例2的验证过程的流程图。
图17是根据实施例2的故障比特数量分布的概念图。
图18是根据实施例2的管理屏幕的配置图。
图19是根据实施例3的可靠性等级管理信息的概念图。
图20是根据实施例3的写入过程的流程图。
图21是根据实施例3的读取过程的流程图。
图22是根据实施例3的刷新过程的流程图。
图23是根据实施例4的验证过程的流程图。
图24是根据实施例5的验证过程的流程图。
具体实施方式
下面将参考附带的附图详细地解释本发明的实施例。
(1)实施例1
(1-1)半导体存储装置的配置
图1示出根据这个作为整体的实施例的半导体存储装置100A的示意配置。这个半导体存储装置100A连接至主系统101和管理装置102,从而它们能够相互通信。
半导体存储装置100A包括闪存控制器110和多个闪存120至128(例如32个单元),且闪存控制器110包括磁盘接口111、网络接口112、RAM(随机存取存储器)113、开关114、处理器115A、数据缓冲器116、和闪存接口117。
磁盘接口111连接至存储装备或主系统101,比如服务器,且经由开关114连接至闪存控制器110中各自的单元。磁盘接口111接收读取/写入请求,指定请求目标的逻辑存储位置的LBA(逻辑区块地址),在来自主系统101的写入请求时写入数据。此外,当接收半导体存储装置100A的控制命令时,磁盘接口111根据所接收的命令向主系统通告,例如,工作状态、使用状态和半导体存储装置100A的当前设置值。
网络接口112从管理装置102接收各种类型的信息,或者传输各种类型的信息至管理信息102。
具体地,RAM113由非易失性存储器,比如DRAM(动态RAM)组成,且这个RAM113存储例如用于控制闪存控制器110的工作的各种类型的程序、闪存120至128的管理信息、以及包括将由每个DMA使用的传送控制信息的传送列表。应当指出,RAM113还可以包括用于存储数据的数据缓冲器116的一部分或者全部功能。
开关114连接磁盘接口111、网络接口112、RAM113、处理器115A、数据缓冲器116、和闪存控制器110中的闪存接口117,开关114通过使用地址或ID在各自的组件之间路由且传送数据。
处理器115A经由开关114连接至闪存控制器110的各自的组件,且根据各种类型的程序和存储在RAM113中的管理信息,对整个闪存控制器110进行综合控制。此外,处理器115A通过定期信息采集和中断接收功能,而监控整个闪存控制器110。
在数据传输过程中,数据缓冲器116在闪存控制器110中存储临时数据。
闪存接口117经由多个总线(例如16个总线)连接至多个闪存120至128。多个闪存(例如两个闪存)连接至每个总线,且闪存接口117通过使用CE(芯片使能)信号,独立地控制连接至相同总线的多个闪存。此外,闪存接口117根据来自处理器115A的读取/写入请求而工作。在这种境况下,闪存接口117使用物理区块地址(PBA)接收请求目标。闪存接口117通过使用PBA计算闪存120至128、区块、以及页面,且在请求目标闪存上执行读取/写入请求,该读取/写入请求指定了区块和页面。
此外,当读取数据时,闪存接口117从闪存120至128读取存储的数据;且将读取的数据传送至数据缓冲器116。同时,当写入数据时,闪存接口117从数据缓冲器116读取写入的数据,且将读取的数据写入闪存120至128。
此外,闪存接口117包括ECC产生电路、依靠ECC的数据丢失检测电路、和ECC纠正电路;且当写入数据时,闪存接口117通过使用ECC产生电路添加ECC至数据,且写入数据。同时,当读取数据时,闪存接口117通过使用依靠ECC的数据丢失检测电路,来检查来自闪存120至128的读取数据。此外,如果检测到数据丢失,闪存接口117通过使用ECC纠正电路进行数据纠正,且将纠正比特的数量存储在RAM113中。
主系统101是,例如,充当商务系统核心的计算机或文件服务器,或者是大量的半导体存储装置连接至其上的存储装置。主系统101包括硬件资源,比如没有在附图中示出的处理器、存储器、网络接口、和本地输入/输出设备;并且包括软件资源,比如设备驱动器、操作系统(0S)和应用程序。主系统101与半导体存储装置100A通信,且通过在处理器的控制下执行各种类型的程序而做出数据读取/写入请求。此外,主系统101通过在处理器的控制下执行管理程序而获得管理信息,比如半导体存储装置100A的使用状态和工作状态。此外,主系统101能够指明或改变半导体存储装置100A的管理单元、用于控制半导体存储装置100A的方法、以及所请求的数据的可靠性。
管理装置102是计算机,该计算机装配了硬件资源,比如没有在附图中示出的处理器、存储器、网络接口和本地输入/输出设备,以及软件资源,比如没有在图中示出的管理程序。管理装置102通过该程序获得来自从存储装置的信息,且显示例如如稍后描述的图18中所示出的管理屏幕。系统管理员通过使用显示在管理装置102上的管理屏幕来控制半导体存储装置100A的监控和工作。应当指出,管理装置102可以是与上面提到的主系统101相同的装置,也可以是专门用于管理的不同装置。
应当指出,上面所解释的磁盘接口111、网络接口112、RAM113、开关114、处理器115A,数据缓冲器116和闪存接口117可以依靠ASIC(专用集成电路)或FPGA(现场可编程门阵列)配置在一个半导体设备中,且还可以通过将多个个体的专用IC(集成电路)彼此连接而配置。
(1-2)数据配置
图2示出了闪存120的内部配置。闪存120由寄存器201和多个区块202至206(例如4096个区块)构成。应当指出,其他闪存121至128也具有与闪存120的配置相同的配置。
寄存器201是包括页面大小(例如4KB)或更大的存储容量的寄存器,区块202至206是数据存储区域。在闪存中,数据只能以区块为单位删除。
闪存120按照来自闪存接口117的读取/写入请求的指令而工作。当写入数据时,闪存120首先从闪存接口117接收写入命令、请求目标区块和页面号码,然后将从闪存接口117传送来的写入数据存储在寄存器201中。随后,闪存120将存储在寄存器201的数据写至指定的页面。同时,当读取数据时,闪存120首先从闪存接口117接收读取命令、请求目标区块和页面号码,然后读取存储在指定页面中的数据,以及将它存储在寄存器201中。随后,闪存120将存储在寄存器201中的数据传送至闪存接口117。
图3示出了区块202的内部配置。区块202由多个页面301至307(例如128个页面)组成。应当指出,其他区块203至206也具有与区块202的配置相同的配置。
每个页面301至307是最小的数据存储区域。闪存120在页面单元进行数据读取/写入。写入数据至页面301至307的顺序被预先指定,且闪存120以301、302、303,依此类推直到307的顺序写入数据。此外,禁止盖写已经有数据存储的页面,且直到删除了存储在页面所归属的区块中的所有数据,没有数据不能够再次存储到该页面。因此,本发明所应用至的半导体存储装置100A管理由主系统101指定的逻辑地址(LBA),和指定不同的系统中的半导体存储装置100A(PBA)中物理存储位置的地址,以及管理LBA和PBA相互关联处的表格信息。基于这个表格信息,甚至当从主系统101接收关于相同LBA的更新写入请求时,闪存120进行处理,该处理用于将关联于更新之前的LBA的PBA转换成为指示另一个页面的新PBA,且将数据写至由转换的PBA指定的存储区域。作为上面提到的地址转换处理的结果,闪存120能够对主系统101隐藏实际物理存储区域的改变。
图4示出了页面301的内部配置。页面301由多片数据(例如8片数据)和ECC组成。应当指出,其他页面302至307也具有与页面301的配置相同的配置。
每片数据401、403、和405由确定数量的比特(例如4KB)组成,且每个ECC402、404、406紧邻数据而存储,这由有关代码保证。此外,因为ECC402紧邻数据401而存储,ECC402与该数据一起,构成一个ECC/CW(ECC/码字)。例如,在图4的情形中,ECC402和数据401(数据1)的组合,构成一个ECC/CW(ECC/码字)。当每一ECC/CW的故障比特数量超过由ECC能够纠正的比特数量时,数据丢失故障发生。应当指出,图4中的页面301在页面中配置了八个ECC/CW,但配置在页面中的ECC/CW的数量不必限于上面提到的数量,可以根据页面大小和ECC强度(能够纠正的比特数量)配置任意数量的ECC/CW。
(1-3)各种管理信息的配置
图5示出了数据保留期管理信息500,数据保留期管理信息500来自从存储在半导体存储装置100A的RAM113中的管理信息中。数据保留期管理信息500是用于为每个区块管理数据保留期以及为每个区块执行刷新的信息,且数据保留期管理信息500由区块编号列501、数据存储日期和时间列502、读取次数数量列503、删除次数数量列504、劣化程度列505、每天平均读取次数数量列506和可靠性维持期列507而构建。
由半导体存储装置100A管理的所有区块的区块编号存储在区块编号列501中。应当指出,如果如图1中示出的,存在安装在半导体存储装置100A中的多个闪存,则闪存的数量和闪存中的区块数量被共同存储。具体地说,在区块编号列501中存储一个值,通过该值从安装在半导体存储装置100A中的所有闪存中的所有区块之中唯一识别出目标区块。
应当指出,通过该值唯一识别目标区块的该值存储在区块编号列501中的情形在图5中示出,但是,在相同使用状况下使用的多个区块被聚集以形成一个区块组,且用于识别这种区块组的值存储在区块编号列501中。然而,如果多个区块作为如上面解释的组而管理,由于读取干扰造成的故障比特的增加则被限制于包括读取发生的页面的区块内;因此,考虑到读取干扰,区块组的数据可靠性预测准确度将劣化。
数据存储在相关区块中的日期和时间(日期)存储在数据存储日期和时间列502中。当前的日期和时间总是由半导体存储装置100A管理,且数据写至相关区块的顶部页面的日期和时间存储在数据存储日期和时间列502中。
同时,数据从区块中读取的次数的累积数量存储在读取次数数量列503中。每次数据由半导体存储装置100A读取,都累积地计数读取次数的数量,且累积计数的计数值存储在读取次数数量列503中。
此外,数据从相关区块中删除次数的累积数量存储在删除次数数量列504中。每次数据由半导体存储装置100A删除,都累积地计数删除次数的数量,且累积计数的计数值存储在删除次数数量列504中。
指示相关块的劣化程度的值存储在劣化程度列505中。劣化程度可以是例如,上面提到的删除次数的数量,或者可以是基于故障比特数量分布计算的值,如稍后描述的实施例2中解释的。
此外,每天读取次数的平均数量即,读取频率,存储在每天平均读取次数数量列506中。每天平均读取次数数量是由处理器115A计算的值。首先从数据存储日期和时间列502获得数据存储日期和时间,且通过从当前的日期和时间减去所获得的数据存储的日期和时间,得到自从存储数据后流逝的时间。随后,从读取次数数量列503获得累积的读取次数数量,通过将所获得的累积读取次数数量除以流逝时间而算出的值被认为是每天读取次数的数量。应当指出,上面解释了基于按日方式来管理读取频率的示例;然而,本发明不限定于这个示例,读取频率也可以例如基于小时或基于星期管理,并且只要值指示了从特定存储区域读取数据的频率,就可以容许该值基于任何单位。
此外,可靠性维持期列507存储了预测期,预测是在该预测期期间可能在存储数据之后维持数据的可靠性。存储在可靠性维持期列507中的值,则基于稍后解释的可靠性维持期表格600(见图6)而获得。
因此,在图5中的情形,表格示出了,例如,关于区块编号是1的区块,数据存储的日期和时间是2010/08/20,直到目前,数据从这个区块读取的次数的数量是5000次,并且直到目前,数据从这个区块删除的次数的数量是1983次。此外,表格指示了这个区块的劣化程度是3500,每天读取的次数的平均数量是0次(少于1000次),并且存储在这个区块中的数据的可靠性维持期是80天。
图6示出了来自管理信息中的可靠性维持期表格600,该管理信息存储在半导体存储装置100A的RAM113中。可靠性维持期表格600用于基于劣化程度和每天读取次数的平均数量,而确定唯一的可靠性维持期。应当指出,所确定的可靠性维持期存储在上面提到的数据保留期管理信息500(见图5)的可靠性维持期列507中。
可靠性维持期表格600由劣化程度列601、每天读取次数平均数量列602、以及可靠性维持期列603构成。
指示相关区块的劣化程度的值存储在劣化程度列601中,每天读取次数的平均数量存储在每天读取次数平均数量列602中。此外,根据安装在半导体存储装置100A中的闪存的类型和特性预先指定的可靠性维持期,存储在可靠性维持期列603中。根据可靠性维持期表格600,通过从劣化程度列601识别出一个劣化程度,并且从每天读取次数平均数量列602识别出一个读取次数的数量,能够从可靠性维持期列603识别出唯一的可靠性维持期。
因此,在图6的情形中,表格示出:关于劣化程度是2000并且每天读取次数的平均数量是1000次(0次或更多次并且少于1000次)的区块,上面提到的劣化程度和读取次数的数量两者都应用之处的值是50天,所以可靠性维持期是50天。
在这个境况下,因为存储在可靠性维持期列603的可靠性维持期依赖于采用的闪存的类型和各自的特性而改变,而预先测量作为存储介质而采用的闪存的保存性质和读取干扰性质,并且通过反映故障比特的数量的增大趋势而计算的值被使用,其中故障比特的数量是测量结果。例如,如果设置5比特为可靠性标准中允许的比特限制数量(5比特是故障比特的平均数量,该可靠性标准关于具有20比特的ECC纠正能力的半导体存储装置100A),对于初步闪存测试中的劣化程度和每天读取次数的平均数量的每种状况,在相关区块中测量的故障比特平均数量增加至5比特期间的时期被测量,并且所测量的期作为可靠性维持期而使用。
如上面解释的,存储在可靠性维持期列603中的可靠性维持期,能够根据对于数据所需要的可靠性自由地确定,并且半导体存储装置100A的数据保存的可靠性能够通过适当地改变可靠性维持期列603的值而自由地改变。应当指出,在这个实施例中,在激活半导体存储装置100A之前,预先测量计划安装在该装置中的闪存的保存性质和读取干扰性质,并且基于测量结果确定可靠性维持期列603的值;然而,本发明不限制于这个示例,可靠性维持列603的值可以基于在半导体存储装置100A工作期间获得的故障比特的数量而依序更新。例如,当半导体存储装置100A所允许的比特限制数量的平均值是5比特,并且当在可靠性维持期期间读取数据时检测到平均5比特的故障比特的数量,则存在数据保存性能差于故障比特数量的增加趋势(由在可靠性维持期列603中预先确定的值来指示)的存储区域,从而可以进行更新以减小可靠性维持期列603的值,并且因此为了改进可靠性缩短了可靠性维持期。
此外,在安装在半导体存储装置100A中的闪存的存储区域的一部分中,可以创建用于计算可靠性维持期的指数区域;并且基于指数区域的值,可以确定可靠性维持期表格600的值。例如,半导体存储装置100A的初始工作期间,对于每个闪存的一些区块,进行指定数量次数的写入和删除;并且创建被故意劣化的故障比特指数区块组。随后,对于来自故障比特指数区块组的每个流逝时间,测量故障比特,基于故障比特的增加趋势,为每个闪存确定可靠性维持期列603的值。如上面解释的,通过参考从每个闪存的故障比特指数区块组获得的故障比特的增加趋势,可以处理闪存之间质量上的差异。
此外,根据这个实施例,从工作期间的初步测试或测试获得的值被存储在可靠性维持期列603中;然而,本发明不限于这个示例,并且也可以存储根据公式计算的值。例如,基于对于劣化程度和每天读取次数的平均数量的每种状况所测量的值,可以准备具有两个变量的函数(该函数的两个变量是劣化程度和每天读取次数的平均数量),其中劣化程度和每天读取次数的平均数量在初步闪存测试中测量;通过使用这个函数,可以计算可靠性维持期,并且可以存储计算出的值。
此外,图6中的每天读取次数的平均数量列602中各自的项目的划分单位是1000次、10000次、和20000次;然而,本发明不限于这个示例,并且如果在半导体存储装置100A中需要高精确度地获得可靠性维持期,各自项目的划分单位可以更小。此外,也可以使得劣化程度列中各自的项目的划分单位更小。可靠性维持期表格600的精确度能够根据状况而改变,该状况比如,半导体存储装置100A需要的可靠性、作为存储介质而采用的闪存的生产过程、SLC(单层单元)、MLC(多层单元)、和TLC(三层单元)。
应当指出,当通过参考图6的可靠性维持期表格600获得可靠性维持期时,参照了目标区块的每天读取次数的平均数量;并且实际的每天读取次数的平均数量不是必须与图6中每天读取次数的平均数量列中的值完全相同,并且作为图6中的每天读取次数的平均数量列中的划分单位,只需要根据每个值对每天读取次数的平均数量四舍五入,并且参考作为结果而得到的每天读取次数的平均数量。
图7示出了来自管理信息中的刷新管理信息700,该管理信息存储在半导体存储装置100A的RAM113中。刷新管理信息700用于管理用于进行刷新的计划日期,并且刷新管理信息700由刷新日期和时间列701、刷新目标区块数量列702、和刷新目标区块编号列703构成。
未来进行刷新的计划日期和时间存储在刷新日期和时间列701,在其上将进行刷新的刷新目标区块的区块数量存储在刷新目标区块数量列702中,在其上将进行刷新的刷新目标区块的区块编号存储在刷新目标区块编号列703中。
因此,在图7的情形中,表格示出了,例如,未来在2010/09/11计划进行刷新,将在这个日期和时间在其上进行刷新的区块的数量是41241,并且刷新目标区块的区块编号是32449、8742、2等等。
(1-4)各种处理的处理次序
图8示出由用于半导体存储装置100A的处理器115A进行的写入处理的处理次序。处理器115A在从主系统101接收包括数据和写入位置LBA的写入请求之后,开始这个图8中所示出的写入处理。
随后,开始这个写入处理之后,处理器115A首先判断来自主系统101的写入请求是为了新写入的目的还是额外写入的目的(S1)。本文使用的新写入意思是新存储数据在处于数据已经删除状态中的区块中;并且一般意思是用于从顶部页面顺序地写入数据的处理。同时,本文使用的额外写入意思是,从中间的页面添加和存储数据至一个区块,该区块具有处于数据已经存储的状态中的页面。
如果在步骤S1确定了来自主系统101的写入请求是为了新写入的目的而做出,处理器115A获得写入目标区块(S2)。更具体地,处理器115A从由半导体存储装置100A管理的未写区块的登记列表(下文中指代为未写区块池)获得任意区块作为写入目标区块。当这个发生时,处理器115A将包括在写入请求中的写入地址LBA与在步骤S2中获得的写入目标区块的PBA相关联。随后,处理器115A将向由关联于LBA的PBA所指定的页面写入数据。
处理器115A将来自主系统101的数据写入至在步骤S2中获得的写入目标区块的顶部页面(S3)。随后,处理器115A向主系统101发送写入完成报告。
接下来,处理器115A参考存储在RAM113中的数据保留期管理信息500,并且获得向其写入数据的区块的劣化程度(S4)。
随后,处理器115A参考存储在RAM113中的可靠性维持期表格600,并且当每天读取次数的平均数量是0次时,获得可靠性维持期(S5),该可靠性维持期基于在步骤S4中获得的劣化程度唯一地确定。顺便提及,因为紧接着写入数据之后的区块的每天读取次数的平均数量就是0次,可靠性维持期能够基于在步骤S4中获得的劣化程度和为0次的读取次数平均数量而获得。
随后,处理器115A存储对应于在步骤S2中获得的写入目标区块的数据存储日期和时间、每天读取次数的平均数量、和可靠性维持期在存储在RAM113中的数据保留期管理信息500的数据存储期和日期列502、每天读取次数的平均数量列506、和可靠性维持期列507的每一个中(S6)。应当指出,在这个新写入处理执行之前的值已经存储在其他的列(503至505)中。
随后,处理器115A将在步骤S5中获得的可靠性维持期添加至当前的日期和时间,并且作为用于进行刷新的计划日期和时间而计算它(S7)。随后,处理器115A从刷新管理信息700中的刷新日期和时间列701提取与所计算出的用于进行刷新的计划日期和时间相同的日期和时间,并且将对应于所提取的日期和时间的刷新目标区块数量列702中的区块数量加一。此外,处理器115A将在步骤S2中获得的写入目标区块的区块编号存储在对应于所提取的日期和时间的刷新目标区块编号列703中。此外,在同一时间,处理器115A从对应于已经计划好的计划日期和时间的刷新目标区块的数量列702中的区块数量减一,用于进行刷新;此外写入目标区块的区块编号从刷新目标区块编号列703中删除。如上面解释的,处理器115A更新刷新管理信息700(S7),并且然后终结写入处理。
同时,如果在步骤S2中确定来自主系统101的写入请求是为了额外写入的目的而做出,处理器115A将包括在写入请求中的数据写入至额外写入目标区块的相关页面(S8)。随后,处理器115A向主系统101发送写入完成报告,并且终结写入处理。
图9示出由用于半导体存储装置100A的处理器115A执行的读取过程的处理次序。处理器115A在接收来自主系统101的包括读取位置LBA的读取请求之后,开始在这个图9中示出的读取处理。
首先,处理器115A将包括在来自主系统101的读取请求中的读取位置LBA转换成为PBA;并且从所转换的PBA指定的读取目标页面读取数据。然后,处理器115A将所读取的数据传送至主系统101(S11)。
随后,处理器115A从数据保留期管理信息500的读取次数数量列503获得读取目标区块的读取次数数量;将读取次数的数量加至获得的值;然后将作为上述加法的结果而获得的读取次数的数量存储在读取次数数量列503中,由此更新数据保留期管理信息500(S12)。
随后,处理器115A从数据保留期管理信息500的数据存储日期和时间列502获得读取目标区块的数据存储日期和时间;并且从获得的数据存储日期和时间与当前的日期和时间之间的差异,计算自从存储数据后流逝的时间(S13)。
随后,处理器115A将在步骤S12中更新的读取次数的数量,除以在步骤S13中计算出的流逝时间,并且新计算每天读取次数的平均数量(S14)。
随后,处理器115A从数据保留期管理信息500的每天读取次数平均数量列506获得读取目标区块的每天读取次数的平均数量,并且计算获得的每天读取次数的平均数量与在步骤S14中新计算的每天读取次数的平均数量之间差异的绝对值,作为变化量(S15)。
随后,处理器115A判断在步骤S15中计算的变化量等于还是大于先前指定的阈值(S16)。应当指出,本文使用的阈值是基于划分单位而确定的值,该划分单位用于可靠性维持期表格600(见图6)中的每天读取次数的平均数量列602。例如,在图6的情形中,因为用于每天读取次数的平均数量列602的划分单位是1000次的基础单位,所以阈值是10000。
如果在这个步骤中返回肯定的判断,则处理器115A确定,用于获得可靠性维持期的每天读取次数的平均数量显著地改变;于是前进至步骤S17。
具体地说,处理器115A参考可靠性维持期表格600,并且通过使用在步骤S14中新计算的每天读取次数的平均数量和劣化程度,而获得新的可靠性维持期。随后,处理器115A将所获得的新的可靠性维持期和在步骤S14中新计算的每天读取次数的平均数量分别地存储在,对应于数据保留期管理信息500的读取目标区块的,可靠性维持期列507和每天读取次数的平均数量列506中;由此更新了数据保留期管理信息500(S17)。
随后,处理器115A将在步骤S17中获得的新的可靠性维持期加至当前的日期和时间,并且作为用于进行刷新的计划日期和时间而计算它(S18)。随后,处理器115A从刷新管理信息700中的刷新日期和时间列701提取与所计算出的用于进行刷新的计划日期和时间相同的日期和时间;并且将对应于所提取的日期和时间的存储在刷新目标区块的数量702中的区块的数量加一;并且还将读取目标区块的区块编号存储在刷新目标区块编号列703中。此外,在同一时间,处理器115A从对应于已经计划好的计划日期和时间的刷新目标区块的数量列702中的区块数量减一,用于进行刷新并且还从刷新目标区块编号列703删除读取目标区块的区块编号。如上面解释的,处理器115A更新刷新管理信息700(S18)并且然后终结读取处理。
同时,如果在步骤S16中返回否定的判断,则处理器115A确定,在当前的可靠性维持期中没有显著的改变;于是在不更新刷新管理信息700的情况下终结读取处理。
同时,图10示出了由半导体存储装置100A中的处理器115A执行的刷新处理的处理次序。为了防止装置的性能劣化(装置的该性能劣化由于来自主系统101的访问请求和刷新处理之间的竞争),在没有来自主系统101的访问请求的时候,处理器115A规律地开始在这个图10中示出的刷新处理。
开始这个刷新处理之后,处理器115A首先从刷新管理信息700中的刷新日期和时间列701提取与当前日期和时间相同的日期和时间;并且从刷新目标区块的数量列702获得对应于所提取的日期和时间的刷新目标区块的数量(S21)。
随后,处理器115A判断在步骤S21中获得的刷新目标区块的数量是否为0(S22)。
如果在这个步骤中返回肯定的判断,处理器115A就确定在当前的日期和时间没有必要进行刷新;并且然后终结刷新处理。
同时,如果在步骤S22中返回否定的判断,处理器115A从刷新管理信息700的刷新目标区块编号列703获得一个对应于当前日期和时间的刷新目标区块编号(S23)。
随后,当进行刷新时,处理器115A执行处理,该处理用于将存储在刷新目标区块中的数据复制和写入至另一个区块。所以,处理器115A从未写区块池获得刷新目的地区块,作为用于上面描述的处理的复制目的地(S24)。
随后,处理器115A从刷新目标区块中所有的页面中获得关联于主系统101中的LBA的所有有效页面的数据(S25)。更具体地,处理器115A依靠安装在闪存接口117中的ECC功能,纠正刷新目标区块的数据的故障比特;并且将故障比特数量变为0的刷新目标区块的数据读取至数据缓冲器116。
随后,处理器115A将在步骤S25中获得的刷新目标区块的数据写入至在步骤S24中获得的刷新目的地区块(S26)。应当指出,在这个步骤中的写入处理与前述的写入处理(见S1至S7)相同。具体地说,处理器115A在作为刷新目标区块的刷新目的地区块上执行写入处理,将这个刷新目的地区块反映在数据保留期管理信息500和刷新管理信息700中,由此更新这些管理信息。
此外,处理器115A将主系统101的LBA与刷新目的地区块相关联(S27)。因为这个关联,主系统101甚至在进行刷新之后,能够通过使用与进行刷新之前的LBA相同的LBA来访问刷新目的地区块中的数据。
随后,处理器115A删除在步骤S23中获得的刷新目标区块中的数据,并且将这个数据已经删除的刷新目标区块登记在未写区块池中(S28)。此外,处理器115A从刷新管理信息700的刷新日期和时间列701提取当前的日期和时间,并且从对应于所提取的当前日期和时间的刷新目标区块的数量列702中的刷新目标区块的数量减一。此外,处理器115A从对应于所提取的当前的日期和时间的刷新目标区块编号列703删除刷新目标区块的区块编号。以此方式,处理器115A更新刷新管理信息700(S28)。
处理器115A判断是否存在来自主系统101的访问请求(S29);并且如果在这个步骤中返回了肯定的判断,处理器115A优先处理来自主系统101的访问请求,并且暂时地终结刷新处理。
同时,如果在步骤S29中返回了否定的判断,处理器115A前进至步骤S22,并且在需要刷新处理的执行的其他区块上继续刷新处理。
(1-5)实施例1的效果
如上面解释的,根据这个实施例,基于数据保留期管理信息500、可靠性维持期表格600、和刷新管理信息700,能够在每个区块上适当地执行刷新处理,因此防止了不必要的刷新。此外,因为当执行刷新时优先处理来自主系统101的访问请求,能够防止由于执行刷新处理引起装置性能劣化。
(2)实施例2
(2-1)半导体存储装置的配置
参考图1,参考数字100B代表了根据作为整体的实施例2的半导体存储装置100B。这个半导体存储装置100B,以与根据实施例1的半导体存储装置100A相同的方式而配置,除了检查可靠性维持期的有效性以外。更具体地,在实施例2中,实际上读取和测量区块中的所有页面的故障比特的数量,并且基于测量结果检查可靠性维持期的有效性。对于该区块的故障比特的这种详细测量将在下文中称为验证。通过在可靠性维持期期间进行验证,能够检测到与预测的故障比特的数量增加趋势不同的区块,并且即使故障比特的数量比预测的增加得更快速,也能够在ECC纠正失能故障发生之前执行刷新。
(2-2)各种管理信息的配置
图11示出了来自管理信息之中的验证管理信息800,该管理信息存储在用于半导体存储装置100B的RAM113中。验证管理信息800用于管理用于进行验证的计划日期,并且由验证日期和时间列801、验证目标区块的数量列802、和验证目标区块编号列803构成。
未来用于进行验证的计划日期和时间存储在验证日期和时间列801中,并且作为在其上将进行验证的目标区块的区块数量被存储在验证区块的数量列802中。此外,在其上将进行验证的目标区块的区块编号存储在验证目标区块编号列803中。
因此,在图11的情形中,表格示出了,例如,验证计划在2010/08/21进行,在这个日期和时间在其上将进行验证的目标区块的区块数量是21241,并且这些区块的编号是32449、8742、2等等。
在这个境况下,即使不是使用上面提到的图11中所示出的验证管理信息800进行验证的情形,如果当读取数据时,获得的故障比特数量异常地大于预先指定的故障比特数量(阈值),这个读取目标区块可以确定为异常区块,并且可以在所确定的异常区块上进行验证。用于确定异常区块的阈值基于来自区块的使用状况之中的三种状况而指定,即,劣化程度、每天读取次数的平均数量、以及自从存储数据后的流逝时间。例如,对于劣化程度高的区块,指定高的阈值,因为从如下事实这样的指定是明显的:故障比特的数量与劣化程度低的区块相比来说较大。此外,对于每天读取次数的平均数量小的区块,指定低的阈值,因为故障比特数量与每天读取次数的平均数量大的区块相比来说较小。此外,对于自从存储数据后的流逝时间长的区块,指定高的阈值,因为故障比特的数量与流逝时间短的区块相比来说较大。当如上面描述地,对于区块的每种使用状况,通过组合对于区块的三种状况而指定阈值的时候,使用了下面所解释的故障比特编号的故障比特数量阈值表格(见图12)。
图12示出了来自管理信息中的故障比特的数量阈值表格900,该管理信息存储在用于半导体存储装置100B的RAM113中。故障比特的数量阈值表格900用于确定阈值,该阈值用于确定上面提到的异常区块。
故障比特的数量阈值表格900是三维表格,该三维表格由劣化程度列901、每天读取次数的平均数量列902、流逝时间列903、和阈值列904构成。
指示区块的劣化程度的值存储在劣化程度列901中,并且每天读取次数的平均数量存储在每天读取次数的平均数量列902中。此外,自从存储数据在区块中后直到现在所流逝的时间被存储在流逝时间列903中,并且用于确定异常区块的阈值(故障比特的数量)存储在阈值列904中。
因此,在图12的情形中,表格示出了,例如,对于它的劣化程度是2000、它的每天读取次数的平均数量是1000次和它的流逝时间是0天的区块,阈值是7比特。顺便提及,如果一个区块的劣化程度、每天读取次数的平均数量和流逝时间,与在图12中示出的故障比特的数量阈值表格900中的各自项目不完全相同,则该区块的阈值能够通过相关值的四舍五入或者计算近似值而获得,从而它们变为与故障比特的数量阈值表格900中的各自项目相同。
在这种境况下,存储在阈值列904中的阈值根据所采用的闪存的类型和各自的特性而改变,所以预先测量作为存储介质而采用的闪存的保存性质和读取干扰性质,并且通过反映故障比特的数量的增加趋势而计算的值被使用,其中故障比特的数量是测量结果。例如,如果其中出现了比故障比特的平均数量大10比特的故障比特的区块被指定为用于异常区块确定的判断标准,则13比特作为在故障比特的平均数量是3比特的区块的使用状况(劣化程度、每天读取次数的平均数量、和自从存储数据后的流逝时间)下的用于确定异常区块的阈值。
此外,在初步闪存测试中,对于每种状况,即劣化程度、每天读取次数的平均数量、和自从存储数据后流逝的时间,可以测量故障比特的数量的发生的概率分布,并且这个概率分布可以用作将存储在阈值列904中的阈值。
应当指出,阈值列904中的每个值基于对于该装置的可靠性维持期的精确度而确定,并且半导体存储装置100B的数据保存可靠性的精确度能够通过改变用于确定异常区块的阈值而改进。此外,阈值存储在阈值列904中,并且在这个实施方式中,用于确定异常区块的阈值从这个阈值列904获得;然而,本发明不限于这个示例,并且根据公式计算的值也可以用于确定异常区块。例如,对于初步闪存测试中的测量,出现的故障比特的数量可以对于每种状况而测量,所述每种状况是劣化程度、每天读取次数的平均数量、和自从存储数据后流逝的时间的组合;可以创建具有三个变量的函数,该三个变量指定为基于上面测量值的各自状况变量,并且该函数可以存储在RAM113中。随后,在确定异常区块的时候,可以通过对预先创建的方程分配劣化程度、每天读取次数的平均数量和自从存储数据后流逝的日期和时间,来计算阈值。
此外,在图12中的每天读取次数的平均数量列902中各自项目的划分单位是1000次、10000次、和20000次;然而,本发明不限于这个示例;并且如果在半导体存储装置100B中需要改进异常区块确定的精确度,通过使用每天读取次数的平均数量的各自项目的较小的划分单元,可以创建故障比特数量阈值表格900。此外,也可以使劣化程度列中的各自项目的划分单位较小。故障比特数量阈值表格900的精确度能够根据状况而改变,该状况比如对于半导体存储装置100B需要的可靠性、作为存储介质而采用的闪存的生产过程、SLC(单层单元)、MLC(多层单元)、和TLC(三层单元)。
(2-3)各种处理的处理次序
图13示出了由半导体存储装置100B中的处理器115B执行的写入处理的处理次序。在从主系统101接收包括数据和写入地址LBA的写入请求之后,处理器115B开始这个图13中示出的写入处理。
因为在从S31至S37和S39的步骤中的处理与图8中从S1至S8的步骤中的处理相同,所以省略了关于它的解释。
在步骤S38中,处理器115B将在步骤S35中获得的可靠性维持期的一半时期,加入当前的日期和时间,并且作为用于进行验证(S38)的计划日期而计算它。随后,处理器115B从验证管理信息800中的验证日期和期列801提取与所计算的用于进行验证的计划日期和时间相同的日期和时间;并且将对应于所提取的日期和时间的验证目标区块的数量列802中的区块数量加一。此外,处理器115B将在步骤S32中获得的写入目标区块的区块编号存储在对应于所提取的日期和时间的验证目标区块编号列803中。此外,在同一时间,处理器115B从对应于用于进行已经计划好的验证的计划日期的验证目标区块的数量列802中的区块数量减一,并且处理器115B还从验证目标区块编号列803删除写入目标区块的区块编号。以这种方式,处理器115A更新了验证管理信息800(S38)并且然后终结写入处理。
顺便提及,通过将可靠性维持期的一半时期加入当前的日期和时间,来计算用于进行验证的计划日期;然而,本发明不限于这个示例,需要的只是将用于进行验证的计划日期设置在可靠性位置期内。例如,可以将比可靠性维持期短三天的天数加入当前的日期和时间,并且获得的日期可以设置为用于进行验证的计划日期。在这种情形中,将在用于进行刷新的计划日期之前的三天执行验证。
同时,图14示出了由用于半导体存储装置100A的处理器115B执行的读取处理的处理次序。在接收来自主系统101的包括读取地址LBA的读取请求之后,处理器115B开始在图14中示出的这个读取处理。
因为在从S41和S43至S49的步骤中的处理与图19中从S11至S18的步骤中的处理相同,所以省略了关于它的解释。
处理器115B在步骤S42中判断在步骤S41中读取数据时获得的读取目标页面中故障比特的数量,是否等于或小于从图12中的故障比特数量阈值表格900获得的阈值(S42)。作为用于从图12中的故障比特数量阈值表格900获得阈值的处理,处理器115B首先从数据保留期管理信息500获得自从存储数据后流逝的时间、读取次数的数量、和读取目标区块的劣化程度,并且然后通过将获得的读取次数的数量除以自从存储数据后流逝的时间来计算每天读取次数的平均数量。随后,处理器115B从用于故障比特的阈值表格900获得对应于劣化程度、每天读取次数的平均数量、和自从存储数据后的流逝时间的每一个的故障比特的数量,作为阈值。
如果在这个步骤中返回了否定的判断,则处理器115B确定,包括这个读取目标页面的区块是具有大数量的故障比特的异常区块;并且为了检查故障比特的发生情况,处理器115B在这个异常区块上执行验证。应当指出,对于这个异常区块,不计算可靠性维持期,并且不计算用于进行刷新的计划日期。
同时,如果在步骤S42中返回了肯定的判断,处理器115B前进至步骤S43并且进行上面参考图9所解释的处理。
如上面解释的,在由验证管理信息800指定的计划日期和时间进行验证的情形和在步骤S42中检测到异常区块的情形这两者中进行验证。
同时,在步骤S50中,处理器115B通过将在步骤S48中获得的新可靠性维持期的一半时期加入当前的日期和时间,来计算用于进行验证的计划日期(S50)。随后,处理器115B从验证管理信息800中的验证日期和时间列801提取与所计算的用于进行验证的计划日期和时间相同的日期和时间;将存储在对应于所提取的日期和时间的验证目标区块的数量列802中的区块数量加一;并且还将读取目标区块的区块编号存储在验证目标区块编号列803中。在同一时间,处理器115B从验证区块的数量列802中的读取目标区块的数量减一,该验证区块的数量列802对应于用于进行已经计划好的验证的计划日期;并且还从验证目标区块编号列803删除读取目标区块的区块编号。如上面解释的,处理器115B更新了验证管理信息800(S50)并且然后终结读取处理。
同时,图15示出了由用于半导体存储装置100B的处理器115B执行的验证控制处理的处理次序。为了防止由于执行验证和来自主系统101的访问请求之间的竞争导致的装置的性能劣化,处理器115B有规律地在没有来自主系统101的访问请求的时刻开始这个验证控制处理。
处理器115B首先从验证管理信息800中的验证日期和时间列801提取与当前的日期和时间相同的日期和时间,并且从对应于所提取的日期和时间的验证目标区块的数量列802获得验证目标区块的数量(S51)。
随后,处理器115B判断在上面描述的步骤S51中获得的验证目标区块的数量是否大于0(S52)。
如果在这个步骤中返回了肯定的判断,处理器115B确定不存在需要执行验证的区块;并且然后终结这个验证控制处理。
同时,如果在步骤S52中返回了否定的判断,处理器115B从验证管理信息800的验证目标区块编号列803获得验证目标区块的一个区块编号(S53)。
随后,处理器115B在具有步骤S53中获得的区块编号的区块上执行验证(S54)。稍后将解释验证处理的细节(见图16)。
接下来,处理器115B判断是否有来自主系统101的访问请求(S55);并且如果在这个步骤中返回了肯定的判断,处理器115B优先处理来自主系统101的访问请求,并且然后暂时终结验证控制处理。
另一方面,如果在步骤S55中返回了否定的判断,处理器115B前进至步骤S52并且在其他需要执行验证的区块上继续验证控制处理。顺便提及,如果来自主系统101的访问请求连续地发生,并且确定了在计划的日期和时间内不能在存储在验证管理信息800中的区块上执行验证,则可以停止来自主系统101的访问请求并且可以优先处理验证控制处理。
图16示出了由用于半导体存储装置100B的处理器115B执行的验证处理的处理次序。当检测到异常区块(见图14中的S42)或者确定了现在是由验证控制处理进行验证的时机(见图15中的S54)时,处理器115B开始这个验证处理。
首先,处理器115B读取验证目标区块中的所有页面,获得每个页面上的每一ECC/CW的故障比特的数量,并且还从所获得的故障比特的数量获得故障比特数量分布和相关区块中的故障比特最大数量(S61)。应当指出,处理器115B依靠闪存接口117获得故障比特的数量,并且将所获得的故障比特数量存储在RAM113中。
随后,处理器115B在步骤S61中判断故障比特的最大数量是否等于或小于先前指定的阈值(S62)。在这个步骤中的阈值是半导体装置100B内允许的故障比特的最大数量。
如果在这个步骤中返回了否定的判断,则处理器115B确定这个验证目标区块具有太多的故障比特而不能用作存储区域;于是立即进行刷新并且管理该区块作为此后不能被使用的不可用区块。
另一方面,如果在步骤S62中返回了肯定的判断,则处理器115B确定这个验证目标区块具有少量的故障比特,并且能够继续地用作存储区域,并且没有必要立即进行刷新;并且然后前进至下面所解释的步骤S63,以便决定最佳劣化程度。
处理器115B基于在步骤S61中获得的故障比特数量分布确定劣化程度,将所确定的劣化程度存储在数据保留期管理信息500的劣化程度列505中(见图5),由此更新这个数据保留期管理信息500(S63)。顺便提及,稍后将解释这个基于故障比特数量分布的劣化程度的确定方法(见图17)。
随后,处理器115B判断在步骤S63中所确定的新劣化程度是否与存储在在步骤S63中被更新之前的数据保留期管理信息500中的劣化程度相同(S64)。
如果在这个步骤中返回了肯定的判断,则处理器115B终结验证处理。另一方面,如果在这个步骤中返回了否定的判断,处理器115B前进至步骤S65以便基于新劣化程度计算用于进行刷新的计划日期。
处理器115B从数据保留期管理信息500的数据存储日期和时间列502和每天读取次数的平均数量列506获得数据存储日期和时间以及每天读取次数的平均数量(S65)。
接下来,处理器115B通过从当前的日期和时间减去在步骤S65中获得的数据存储日期和时间,计算验证目标区块自从存储数据后的流逝时间(S66)。
然后,处理器115B参考可靠性维持期表格600(见图6),通过使用在步骤S63中所确定的新劣化程度和在步骤S65中获得的每天读取次数的平均数量,而获得新可靠性维持期;将所获得的新可靠性维持期存储在数据保留期管理信息500中的可靠性维持期列507中;由此更新了数据保留期管理信息(S67)。
随后,处理器115B通过将在步骤S67中获得的可靠性维持期加入在步骤S65中获得的数据存储日期和时间,来计算用于进行刷新的计划日期(S68)。然后,处理器115B从刷新管理信息700的刷新日期和时间列701提取与所计算的用于执行刷新的计划日期相同的日期和时间;将存储在对应于所提取的日期和时间的刷新区块的数量列702中的区块数量加一;并且还将验证目标区块的区块编号存储在刷新目标区块编号列703中。在同一时间,处理器115B从刷新区块的数量列702中的区块数量减一,该刷新区块的数量列702对应于用于进行已经计划好的刷新的计划数据;并且从刷新目标区块编号列703删除验证目标区块的区块编号。以这种方式,处理器115B更新了刷新管理信息700(S68)并且然后终结验证处理。
(2-4)故障比特数量分布的配置和故障比特数量分布指数
图17示出了故障比特数量分布1000以及故障比特数量分布指数1001和1002,它们存储在用于半导体存储装置100B的RAM113中。故障比特数量分布1000以及故障比特数量分布指数1001和1002用于计算上面提到的验证处理(见图16)中的劣化程度。故障比特数量分布1000在上面提到的验证处理的步骤S61中获得,故障比特数量分布指数1001和1001预先存储在RAM113中,并且在初步闪存测试中基于故障比特数量分布的测量结果而创建,该测量结果针对劣化程度、每天读取次数的平均数量、和自从存储数据后的流逝时间的每种状况。
故障比特数量分布1000指示验证目标区块的故障比特数量分布,其中该验证目标区块的自从存储数据后的流逝时间是20天,并且它的每天读取次数的平均数量是1000次。故障比特数量分布1000由故障比特数量列1000A和ECC/CW列1000B构成。从0至某一数量的故障比特数量依序存储在故障比特数量列1000A中,并且对应于存储在故障比特数量列1000A的故障比特数量的ECC/CW数量则存储在ECC/CW列1000B中。
因此,在图17的情形中,故障比特数量分布1000示出了在验证目标区块中存在的,例如,没有故障比特发生的500ECC/CW,只有一个故障比特发生的230ECC/CW,以及两个故障比特发生的122ECC/CW。
此外,故障比特数量分布指数1001指示了一个区块的故障比特数量分布,该区块的劣化程度是1000,它的自从存储数据后的流逝时间是20天,以及它的每天读取次数的平均数量是1000次。故障比特数量分布指数1001以与上面提到的故障比特数量分布1000相同的方式,由故障比特数量列1001A和ECC/CW列1001B构成;并且分别存储故障比特的数量以及对应的ECC/CW的数量。
因此,在图17的情形中,故障比特数量分布指数1001示出了在劣化程度是1000的区块中存在的,例如,没有故障比特发生之处的700ECC/CW,只有一个故障比特发生之处的230ECC/CW,以及两个故障比特发生之处的122ECC/CW存。
此外,故障比特数量分布指数1002指示了一个区块的故障比特数量分布,该区块它的劣化程度是2000,自从存储数据后的流逝时间是20天,每天读取次数的平均数量是1000次。除了劣化程度不同,以与上面提到的故障比特数量分布指数1001相同的方式配置故障比特数量分布指数1002。
因此,在图17的情形中,故障比特数量分布指数1002示出了存在于劣化程度2000的区块中的,例如,没有故障比特发生之处的520ECC/CW,只有一个故障比特发生之处的240ECC/CW,以及两个故障比特发生之处的85ECC/CW。
在上面描述的境况下,为了确定的故障比特数量分布1000的劣化程度,处理器115B通过使用故障比特数量分布指数1001和1002,比较它们,它们的自从存储数据后的流逝时间和每天读取次数的平均数量与故障比特数量分布1000的那些相同。
作为比较的方法,例如,关于故障比特数量分布1000和各自的故障比特数量分布指数(在这个示例中是1001和1002)之间的故障比特的每个数量,处理器115B计算ECC/CW数量差异的绝对值,,并且对关于所有故障比特的ECC/CW的数量差异的绝对值求和,由此计算一个总值。随后,处理器115B将具有最小总值的故障比特数量分布指数确定为与故障比特数量分布1000最相似的故障比特数量分布指数,并且将所确定的这个故障比特数量分布的劣化程度确定为验证目标区块的新劣化程度。
具体地说,在故障比特数量分布1000和故障比特数量分布指数1001之间的比较中,当故障比特的数量是0时,ECC/CW的数量分别是500ECC/CW和700ECC/CW,所以ECC/CW数量差异的绝对值是200ECC/CW。此外,当故障比特的数量是1时,ECC/CW的数量是230单位,这对于故障比特数量分布1000和故障比特数量分布指数1001是相同的,所以ECC/CW的数量差异的绝对值是0单位。以这种方式,处理器115B关于所有故障比特的数量计算ECC/CW的数量差异的绝对值,并且计算这些绝对值的总值。
同时,处理器115B以相同的方式将故障比特数量分布1000与故障比特数量分布指数1002比较,关于所有故障比特的数量计算ECC/CW的数量差异的绝对值,并且计算这些绝对值的总值。
然后,从两个所计算的ECC/CW的数量之间的差异的绝对值的总值中,处理器115B将具有最小总值的故障比特数量分布指数的劣化程度确定为新劣化程度。应当指出,在这个示例中,通过使用两个故障比特数量分布指数来确定新劣化程度;然而,本发明不限于这个示例,根据所管理的劣化程度的精确度,可以通过使用对应于多个劣化程度的故障比特数量分布指数,来确定新劣化程度。
作为用于确定新劣化程度的另一种方法,例如,存储在故障比特数量分布1000的ECC/CW列1000B中的所有数量的ECC/CW的总值,即,发生在验证目标区块中的所有故障比特数量的总值,可以与存储在故障比特数量分布指数1001和1002的ECC/CW列1001B和1002B中的ECC/CW的所有数量的总值比较,并且计算出的总值最接近于ECC/CW列1000B中的所有数量的ECC/CW的总值的故障比特数量分布指数的劣化程度可以被确定为新劣化程度。
此外,通过使用分布函数的参数,故障比特数量分布指数1001和1002可以存储在RAM113中,并且使用它们用于上面提到的比较。更具体地,参数,比如指示了故障比特数量分布的二项式分布的平均比特故障速率和泊松分布的每一ECC/CW的故障比特的平均数量,被用于每个故障比特数量分布指数并针对每个劣化程度、自从存储数据后的流逝时间、和每天读取次数的平均数量。可以通过以与上面提到的故障比特数量分布指数比较而言相同的方式,将分布函数(对分布函数分配上面提到的各自参数)的值与故障比特数量分布1000比较而确定劣化程度。顺便提及,这个实施例描述了当执行验证处理时,确定劣化程度的情形;然而,还可以以当执行刷新处理相同的方式而确定劣化程度,以便于改进当下次写入数据时的可靠性维持期的预测精确度。具体地说,当在图10中的步骤S25中读取数据时,通过也执行图16中的验证处理,在刷新时能够改变劣化程度。
(2-5)屏幕配置
图18是显示在管理装置102上的管理屏幕1100的配置示例。应当指出,管理屏幕1100可以在处理器115B的控制下显示在半导体存储装置100B上。按照对于半导体存储装置100B需要的可靠性,系统管理员能够通过使用这个管理屏幕1100,设置存储在可靠性维持期表格600(见图6)和故障比特的数量阈值表格900(见图12)中的各个值。
管理屏幕1100由作为由系统管理员操作项目的可靠性模式选择区域1101、允许的故障比特的数量区域1102、最长刷新周期区域1103和允许的劣化程度区域1104构成;并且管理屏幕1100还包括作为指示半导体存储装置100B的状态的平均劣化程度区域1105、平均刷新周期区域1106、平均验证周期区域1107和不可用区块的数量区域1108。此外,管理屏幕1100包括用于向系统管理员报告某一类型消息的消息窗口1109。
可靠性模式选择区域1101是用于让系统管理员设置半导体存储装置100B的可靠性以及选择多个无线按钮(在这个示例中是三个按钮)之一的区域。能够选择的可靠性类型是消费者模式、企业模式、和定制模式。
消费者模式是基于比如每在1014[比特]中1个扇区的可靠性而工作的模式;并且企业模式是基于比如每在1016[比特]中1个扇区的可靠性而工作并且同时维持比消费者模式的可靠性更高的可靠性而工作的模式。基于根据这些模式设置的可靠性,半导体存储装置100B能够改变可靠性维持期表格600(见图6)中的各自的可靠性维持期、故障比特的数量阈值表格900(见图12)中的各自的阈值、以及用于确定图16中的步骤S62中使用的不可用区块的阈值。例如,如果选择了企业模式,可靠性维持表格600中的各自值将变得比消费者模式中的那些值小,并且刷新期将缩短。类似地,如果选择了企业模式,故障比特的数量阈值表格900中的值将变得比消费者模式中的那些值小,并且具有甚至更小数量的故障比特的区块将被确定为不可用区块。
应当指出,在两个模式:消费者模式和企业模式中,半导体存储装置100B将各自的可靠性维持期表格600和故障比特的数量阈值表格900存储在RAM113中;并且通过参考对模式改变的遵从而改变表格,来实现改变上面提到的可靠性标准的这些功能。
此外,定制模式是一种模式,该模式用于让系统管理员分别在允许的故障比特数量区域1102、最长刷新周期区域1103、和允许的劣化程度区域1104中手动输入任意值,而非如在消费者模式和企业模式情形中那样改变可靠性标准。
此外,允许的故障比特数量区域1102是用于让系统管理员输入在ECC/CW中所允许的故障比特数量的区域,并且包括了具有超过在这个区域所输入的故障比特数量的故障比特数量的ECC/CW的区块由处理器115B确定是不可用的。
此外,最长刷新周期区域1103是用于让系统管理员输入刷新周期上限的区域,并且强制刷新以超过在这个区域所输入的刷新周期的刷新周期在区块上执行。更具体地,在计算计划日期的处理中(该计划日期用于在图8中的步骤S7、图9中的步骤S18、图13中的步骤S37、图14中的步骤S49、和图16中的步骤S68中进行刷新),如果所计算的用于进行刷新的计划日期超过在最长刷新周期区域1103中输入的值,则最长刷新周期将作为刷新期存储在刷新管理信息700中。
此外,允许的劣化程度区域1104是用于让系统管理员输入闪存中的用作存储区域的区域的劣化程度上限的区域;并且具有劣化程度超过在这个区域输入的劣化程度的区块,由处理器115B确定是不可用的。如上面解释的,系统管理员能够通过在管理屏幕1100中输入任意值,灵活地改变半导体存储装置100B的数据维持可靠性。
接下来,平均劣化程度区域1105是用于显示所有区块的平均劣化程度的区域,其中所有区块是安装在半导体存储装置100B中的所有闪存的所有区块。系统管理员能够通过参考显示在这个区域的平均值,来认识半导体存储装置100B的寿命(比如剩余的可用期、剩余的可重写容量、和劣化程度)。
此外,平均刷新周期区域1106是一个区域,该区域用于显示由半导体存储装置100B执行的每个区块的刷新周期的平均值。系统管理员能够通过参考显示在这个区域的平均值,来认识刷新对装置性能劣化的影响。
此外,平均验证周期区域1107是一个区域,该区域用于显示由半导体存储装置100B执行的每个区块的验证周期的平均值。系统管理员能够通过参考显示在这个区域的平均值,来认识验证对装置性能劣化的影响。
此外,不可用区块的数量区域1108是一个区域,该区域用于显示,关于安装在半导体存储装置100B中的所有闪存中的所有区块,在图16中的步骤S62中被确定为不可用的区块的数量。系统管理员能够通过参考显示在这个区域中的不可用区块的数量,来认识半导体存储装置100B的寿命。
(2-6)实施例2的效果
根据如上面解释的这个实施例,如果确定了有必要通过验证处理(见图16)改变劣化程度,就可以基于故障比特数量分布计算新劣化程度是并且基于所计算的新劣化程度计算用于进行刷新的新计划日期。因此,关于异常区块(它的故障比特数量异常增加多于预测的故障比特数量),通过缩短刷新期以及维持高数据可靠性以防止ECC纠正失能故障是可能的。同时,关于它的故障比特数量异常小于预测的故障比特数量的区块,可以通过延长刷新期防止不必要的刷新,并且防止装置的性能劣化。此外,通过改变劣化程度,提高可靠性维持期的预测精确度直到下一次写入数据是可能的。
此外,劣化程度由通过验证过程(见图16)的验证基于故障比特数量分布而计算,而不将区块删除的次数数量认识为劣化程度。所以,关于删除次数数量大但数据保存性质好的区块,延长刷新期并且因此有效地利用数据保存性质是可能的。另一方面,关于删除次数数量小但数据保存性质不好的区块,缩短刷新期并且因此改进数据可靠性是可能的。
(3)实施例3
(3-1)半导体存储装置的配置
参考图1,参考数字100C表示作为整体的根据实施例3的半导体存储装置100C。除了通过防止在特定时机集中执行刷新来防止主系统101的响应性能劣化,以及维持存储在半导体存储装置100C中的数据可靠性暂时不变,这个半导体存储装置100C以与根据实施例1的半导体存储装置100A相同的方式而配置。
在早先描述的实施例1中,需要执行刷新的刷新目标区块从刷新管理信息700获得,并且在可靠性维持期内,在所获得的刷新目标区块上执行刷新。然而,如果刷新通过这个方法进行,可能存在在特定日期和时间刷新集中执行的情形。
随后,如果刷新的执行是集中的,则半导体存储装置100C停止对主系统101的响应,以便于维持数据可靠性并且优先处理刷新的执行,但是这时装置的性能变得不稳定。
此外,如果需要执行刷新的区块甚至集中在可靠性维持期内,则关于它数据丢失的风险相对增加的区块将不均匀地被定位,整个半导体存储装置100C的可靠性暂时地增加和降低,而出现低可靠性的时期。
因此,这个实施例用刷新缓解了上面提到的问题,稳定了对于主系统101的响应性能,并且还维持整个半导体存储装置100C暂时不变。
(3-2)可靠性等级管理信息的配置
使用在实施例3的数据保留期管理信息和可靠性维持期表格以与使用在实施例1中的数据保留期管理信息500和可靠性维持期表格600相同的方式而配置,所以省略了关于它们的解释。此外,在实施例3中,取代使用刷新管理信息700,通过使用下面解释的可靠性等级管理信息1200(见图19)进行刷新。
图19示出了来自管理信息之中的可靠性等级管理信息1200,其中该管理信息存储在用于半导体存储装置100C的RAM113中。可靠性等级管理信息1200用于管理每个可靠性等级的区块,并且由可靠性等级列1201、允许区块的数量列1202、现有区块的数量列1203、和区块数量列1204构成。
指示存在于半导体存储装置100C中的区块的可靠性相对程度(可靠性范围)的值存储在可靠性等级列1201中。该可靠性被考虑为是通过将自从存储数据在相关区决中之后的流逝时间除以可靠性维持期而计算的值。例如,自从存储数据之后的流逝时间是21天并且可靠性维持期是30天的区块的可靠性是70%,因为整个可靠性维持期的70%已经流逝。随后,这个区块在图19的情形中属于可靠性等级60%至89%。
应当指出,这个可靠性等级是基于闪存的保存性质而确定的,并且意图用于在数据可靠性方面的不同使用状况下区块的分级。例如,关于可靠性维持期是30天并且自从存储数据之后的流逝时间是15天的区块,以及关于可靠性维持期是20天并且自从存储数据之后的流逝时间是10天的区决,尽管使用状况不同,这两个区块的可靠性都是50%。所以,这两个区块在用于进行刷新的时机方面被同等管理。
允许的区块的数量列1202存储允许的区块的数量,对于每个由可靠性等级列1201分级的可靠性等级,所述允许的区块被允许存在于半导体存储装置100C中。顺便提及,考虑到装置性能的稳定性和可靠性的暂时增加和减少,由系统管理员确定的任意值作为每个可靠性等级的所述允许的区块的数量而被存储。
此外,存在于半导体存储装置100C中的现有区块的数量对于由可靠性等级列1201分级的每个可靠性等级存储在现有区块的数量列1203中。此外,存在于相关可靠性等级中的现有区块的区块编号,存储在由可靠性等级列1201分级的每个可靠性等级的区块编号列1204中。
因此,在图19的情形中,表格示出了,例如,最多14745(20%)个可靠性等级是60%至89%的区块被允许存在于半导体存储装置100C中,以及实际上存在18432(25%)个区块。表格还示出了存在于这个可靠性等级的18432个现有区块的区块编号是38754、2444、68221,等等。此外,关于60%至89%的可靠性等级,现有区块的数量超过了如上面解释的允许的区块的数量,并且因此,3687个区块,即,现有区块的数量和允许的区块的数量之间的差异,是执行刷新的目标。
应当指出,在图19中的可靠性等级管理信息1200的可靠性等级列1201中,可靠性等级分成五个级别;然而,级别的数量不限于这个示例。此外,上面解释的用于计算可靠性等级的方法是将自从存储数据之后的流逝时间除以可靠性维持期;然而,该方法不限于这个示例,可靠性维持期可以设置为不变值并且自从存储数据之后的流逝时间可以简单地被确定为可靠性等级。
此外,对于每种状况(劣化程度和每天读取次数的平均数量)下的每个流逝时间,可以预先测量故障比特数量分布,并且对于每种状况和流逝时间,其可靠性等级可以通过使用该分布而确定。例如,待使用的可靠性等级可以设计为使得:如果可靠性等级根据故障比特的数量超过5比特的概率而分级,以及如果自从存储数据在一个区块中之后流逝了10天(其中这个区块的劣化程度是1000并且每天读取次数的平均数量时1000次),在初步闪存测试中故障比特的数量超过5比特的概率是10%,则该可靠性等级被管理为5%至29%。
(3-3)各种处理的处理次序
图20示出了由用于半导体存储装置100C的处理器115C执行的写入处理的处理次序。在从主系统101接收包括数据和写入地址LBA的写入请求之后,处理器115C开始在图20中所示出的这个写入处理。
因为从S71至S76和S78的步骤中的处理与从图8中的S1至S6和S8的步骤中的处理相同,所以省略了关于它的解释。
在步骤S77中,通过将自从存储数据之后的流逝时间(它的值是零,因为这是一个新写入处理)除以步骤S75中所获得的可靠性维持期,处理器115C计算可靠性等级(S77)。随后,处理器115C将对应于这个可靠性等级的现有区块的数量列1203(见图19)中存储的区块数量加一,将写入目标区块的数量存储在区块数量列1204中,更新可靠性等级管理信息1200(S77),以及终结写入处理。
图21示出了由半导体存储装置100C的处理器115C执行的读取处理的处理次序。如果从主系统101接收到包括读取位置LBA的读取请求,处理器115C开始图21中所示出的这个读取处理。
因为从S81至S87的步骤中的处理与图9中从S11至S17的步骤中的处理相同,所以省略了关于它的解释。
在步骤S88中,通过将步骤S83中所计算的自从存储数据之后的流逝时间除以步骤S87中所获得的可靠性维持期,处理器115C计算可靠性等级(S88)。随后,处理器115C从可靠性等级管理信息1200的可靠性等级列1201提取与所计算的可靠性等级相同的可靠性等级;将对应于所提取的可靠性等级的现有区块的数量列1203中存储的区块数量加一;并且将读取目标区块的区块编号存储在区块编号列1204中。在同一时间,处理器115C从对应于先前的可靠性等级的现有区块的数量列1203中的区块数量减一,并且从区块编号列1204删除读取目标区块的区块编号。以这种方式,处理器115C更新了可靠性等级管理信息1200(S88)并且然后终结读取处理。
顺便提及,因为每个区块的可靠性等级每天都在改变,所以除了在上面提到的读取处理中的更新可靠性等级管理信息1200的处理以外,可靠性等级管理信息1200还可以有规律地或者无规律地进行更新。例如,关于所有的区块,处理器115C每天至少一次从数据保留期管理信息500的数据存储日期和时间列502获得数据存储日期和时间;并且基于与当前日期和时间的差异,来计算自从存储数据之后的流逝时间。同时,处理器115C从可靠性维持期列507获得可靠性维持期,并且通过将流逝时间除以可靠性维持期来计算可靠性等级。此外,基于关于所有的区块计算的这个可靠性等级,处理器115C可以更新可靠性等级管理信息1200。
图22示出了用于半导体存储装置100C的处理器115C执行的刷新处理的处理次序。处理器115C有规律地在没有来自主系统101的访问请求的时机开始刷新处理,以便于防止由于来自主系统101的访问请求和刷新处理之间的竞争而导致装置的性能劣化。
处理器115C首先从可靠性等级管理信息1200的允许的区块的数量列1202和现有区块的数量1203,获得每个可靠性等级的允许区块的数量和现有区块的数量(S91)。
接下来,处理器115C判断现有区块的数量大于步骤S91中所获得的允许区块的数量之处的可靠性等级存在与否(S92)。
如果在这个步骤中返回了否定的判断,则处理器115C确定在当前的日期和时间不必进行刷新;并且然后终结刷新处理。
另一方面,如果在步骤S92中返回了肯定的判断,则处理器115C确定现有区块的数量超过允许区块的数量的该可靠性等级的区块是刷新目标区块;并且从刷新目标区块中随机获得一个区块编号(S93)。
接下来,通过从S94至S97的步骤中的处理,处理器115C在具有步骤S93中所获得的区块编号的区块上执行刷新(S94至S97)。顺便提及,从S94至S97的步骤中的处理与从图10中的S24至S27的步骤中的处理相同,并且因此省略了关于它的解释。
处理器115C删除步骤S93中所获得的刷新目标区块中的数据,并且将这个刷新目标区块存储在未写区块池中(S98)。随后,处理器115C将对应于可靠性等级管理信息1200中的可靠性等级0%至4%的现有区块的数量列1203中的区块数量加一;并且在执行刷新之后,将刷新目标区块的区块编号存储在区块编号列1204中。在同一时间,在刷新执行之前,处理器115C从可靠性等级列1201获得刷新目标区块的可靠性等级;并且从对应于所获得的可靠性等级的现有区块的数量列1203中的区块数量减一。此外,处理器115C从对应于所获得的可靠性等级的区块编号列1204中删除刷新目标区块的区块编号。以这种方式,处理器115C更新了可靠性等级管理信息1200(S98)。
随后,处理器115C判断是否有来自主系统101的访问请求(S99),如果在这个步骤中返回了肯定的判断,则处理器115C优先处理来自主系统101的访问请求,并且然后暂时地终结刷新处理。
另一方面,如果在步骤S99中返回了否定的判断,则处理器115C前进至步骤S92并且对于需要执行刷新的其他区块继续刷新处理。
(3-4)实施例3的效果
根据如上面解释的这个实施例,通过进行级别控制以确保可靠性相对劣化的区决将不会暂时地被不均衡地定位,整个半导体存储装置100C的可靠性能够维持暂时不变。此外,如果允许区块的数量设置在可靠性等级管理信息1200(见图19)中,使得它将随着可靠性等级的值增加(即随着可靠性劣化)而减小,那么刷新将以一步一步的方式而执行;并且因此,能够防止在特定期内刷新集中执行,并且能够缓解对于主系统101的响应性能的劣化。
(4)实施例4
(4-1)半导体存储装置的配置
参考图1,参考数字100D表示作为整体的根据实施例3的半导体存储装置100D。除了验证在安装在闪存中的所有区块上执行以及对于每个区块都基于在验证过程中所获得的故障比特的数量确定刷新期以外,这个半导体存储装置100D与实施例1的半导体存储装置100A相同的方式配置。
应当指出,除了每个区块的使用状况,比如使用在实施例1至3中的劣化程度、自从存储数据之后的流逝时间、以及每天读取次数的平均数量,没有作为管理信息而管理之外,这个半导体存储装置100D以与根据实施例1的半导体存储装置100A相同的方式而配置。
此外,这个半导体存储装置100D在写入处理期间执行用于将来自主系统101的数据存储在闪存中的一般处理;并且还在读取处理中,执行用于从闪存读取数据和将它传送至主系统101的一般处理。因此,省略了这些处理的解释。
从写入处理和读取处理独立地,这个半导体存储装置100D在安装在闪存中的所有区块上定期执行验证。
更具体地,半导体存储装置100D,例如,五天内至少一次执行读取处理,用于确认故障比特的发生状态;并且基于阈值确定刷新周期,该阈值是执行读取处理时获得的故障比特的最大值。
(4-2)验证处理
图23示出了由用于半导体存储装置100D的处理器115D所执行的验证处理的处理次序。当半导体存储装置100D在工作中(激活)时,处理器115D有规律地或无规律地开始图23中所示出的这个验证处理。
应当指出,处理器115D以可执行的速度在安装于半导体存储装置100D中的闪存中的所有存储区域上执行这个验证处理。例如,如果20000个闪存安装在半导体存储装置100D中,并且这个验证处理至少五天执行一次,那么处理器115D确保了每天在4000个区块上执行这个验证处理。顺便提及,如果这个验证处理与来自主系统101的访问请求竞争,处理器115D优先执行验证处理。
处理器115D首先读取验证目标区块中的所有页面,还将每一ECC/CW的故障比特的数量存储在每一个在RAM113中被读取的页面上;并且从存储在RAM113中的每一ECC/CW的故障比特的数量获得故障比特的最大数量(S101)。
接下来,处理器115D判断发生在步骤S101中所获得验证的目标区块中的故障比特的最大数量是否小于阈值(S102)。应当指出,使用在这个步骤中的阈值是小于能够由ECC纠正的比特数量的值,并且该阈值根据半导体存储装置100D所需要的可靠性而改变。一般地,如果使用小阈值,能够保证高可靠性;并且如果使用大阈值,则可靠性劣化,但是能够抑制刷新频率。
如果在上面描述的步骤S102中返回了否定的判断,则处理器115D确定需要刷新;并且然后进行刷新。
另一方面,如果在这个步骤中返回了肯定的判断,则处理器115D确定在那个时间不要进行刷新;并且前进至步骤S103。以这种方式,通过独立于对主系统101的响应和判断是否有必要执行刷新而规律地执行验证,根据相关区块的劣化程度和读取频率,刷新能够单独地对于每个区块被执行。
处理器115D将验证目标区块的区块编号加一,并且获得接下来将在其上执行验证的区块的区块编号(S103)。
接下来,处理器115D判断步骤S103中所获得的区块编号是否等于或小于安装在半导体存储装置100D中的所有闪存的最后的区块编号(S104)。
如果在这个步骤中返回了肯定的判断,则处理器115D前进至步骤S101并且在作为验证目标区块的、步骤S103中所获得的区块编号的区块上执行验证。
另一方面,如果在步骤S104中返回了否定的判断,处理器115D确定,在安装在半导体存储装置100D中的所有闪存中的区块上至少已经执行了一次验证;将其中在步骤S103中区块编号加一的区块编号返回零,以便于从顶部区块再次执行验证(S105);以及前进至步骤S101。处理器115D规律地重复上面描述的处理。
(4-3)实施例4的效果
根据如上面解释的这个实施例,当半导体存储装置100D在工作中(激活)时,通过重复执行图23中的验证处理,能够在故障比特的最大数量增加至某个值的区块上依序执行刷新。
(5)实施例5
(5-1)半导体存储装置的配置
参考图1,参考数字100E表示作为整体的根据实施例5的半导体存储装置100E。这个半导体存储装置100E在比如验证在安装在闪存中的所有区块上执行的方式上是与实施例4相同的;并且除了故障比特数量分布是在进行验证时获得的,以及对于每个区块的刷新期基于所获得的故障比特数量分布而确定的以外,半导体存储装置100E以与根据实施例4的半导体存储装置100D相同的方式而配置。
(5-2)验证处理
图24示出了由用于半导体存储装置100E的处理器115E执行的验证处理的处理次序。当半导体存储装置100E在工作中(激活)的时候,处理器115E规律地或无规律地开始图24中示出的验证处理。
应当指出,处理器115E以可执行的速度在安装在半导体存储装置100E中的闪存中的所有存储区域上执行这个验证处理。这与实施例4是相同的。
处理器115E首先读取验证目标区块中的所有页面,还将每一ECC/CW的故障比特的数量存储在每一个在RAM113中被读取的页面上;并且基于存储在RAM113中的每一ECC/CW的故障比特的数量,获得验证目标区块中的故障比特数量分布(S111)。
接下来,处理器115E计算步骤S111中所获得的故障比特数量分布与预先准备的用于判断刷新的必要性的故障比特数量分布(下文中以刷新指数指代)之间的差异(S112)。
本文使用的刷新指数如上面解释的,意思是预先准备以便于判断刷新必要性的故障比特数量分布,并且是如下的故障比特分布:在相关区块中的故障比特数量关联于ECC/CW的数量,例如,在区块中的故障比特数量是0之处的ECC/CW的数量是120,以及故障比特是1之处的ECC/CW的数量是200。如果在上面描述的步骤S111中所获得的故障比特数量类似于这个刷新指数,具体地说,如果在步骤S111中所获得的故障比特数量分布与刷新指数之间的差异的绝对值很小,则确定不能维持可靠性,并且因此需要刷新。应当指出,这个步骤中计算绝对值的方法类似于图17中用于确定劣化程度的处理,并且类似于用于比较验证目标区块的故障比特数量分布1000与故障比特数量分布指数1001和1002的处理。
处理器115E判断步骤S112中所计算的故障比特数量分布与刷新指数之间的差异,是否小于预先指定的阈值(S113)。
如果在这个步骤中返回了肯定的判断,处理器115E确定,验证目标区块中的故障比特以类似于刷新指数的分布而发生;于是在这个验证目标区块上执行刷新。
另一方面,如果在步骤S113中返回了否定的判断,处理器115E确定,验证目标区块中的故障比特以不同于刷新指数的分布而发生,并且因此,在这个时间在这个验证目标区块上没有必要执行刷新。随后,处理器115E前进至步骤S114以便于使下一个区块成为验证目标区块。
因为从S114至S116的步骤中的处理与图23中的从S103至S105的步骤中的处理是相同的,所以省略了关于它的解释。处理器115E规律地重复上面提到的处理。
(5-3)实施例5的效果
根据如上面解释的这个实施例,当半导体存储装置100E在工作中(激活)的时候,通过重复执行图24中的验证处理,刷新能够顺序地在它的故障比特数量分布类似于刷新指数的区块上执行。
工业实用性
本发明能够应用至广泛的具有各种配置的半导体存储装置,在所述半导体存储装置中,闪存作为存储介质而被安装。
参考标记列表
100A至100E 半导体存储装置
110 闪存控制器
115 处理器
117 闪存接口
120至128 闪存
201 区块
301 页面
402 ECC附加代码
500 数据保留期管理信息
600 可靠性维持期表格
700 刷新管理信息
800 验证管理信息
900 故障比特数量阈值表格
1000 故障比特数量分布
1001、1002 故障比特数量分布指数
1100 管理屏幕
1200 可靠性等级管理信息

Claims (15)

1.一种半导体存储装置,包括用于提供存储区域的闪存,以及用于控制从所述闪存读取数据或者写入数据至所述闪存的存储器控制器,
其中所述闪存的所述存储区域划分为多个区块进行管理,以及
其中所述存储器控制器对于每个区块管理所述区块的劣化程度和读取频率;基于管理的所述区块的劣化程度和读取频率,获得存储在所述区块中的数据的可靠性维持期;并且基于获得的所述可靠性维持期执行刷新,所述刷新用于将存储在所述区块中的所述数据新存储在另一个区块中。
2.根据权利要求1所述的半导体存储装置,其中所述存储器控制器具有数据保留期管理信息,所述数据保留期管理信息用于对于每个区块管理所述区块的所述劣化程度以及所述区块的所述读取频率;基于所述数据保留期管理信息,获得所述可靠性维持期;并且基于获得的所述可靠性维持期执行所述刷新。
3.根据权利要求1所述的半导体存储装置,其中所述存储器控制器具有公式,根据所述公式,通过对可靠性维持期表分配来唯一地确定所述可靠性维持期,其中通过所述区块的所述劣化程度和所述区块的所述读取频率的组合,或者将所述区块的所述劣化程度和所述区块的所述读取频率作为变量,来唯一地确定所述可靠性维持期;以及基于所述可靠性维持期表或所述公式来获得所述可靠性维持期。
4.根据权利要求1所述的半导体存储装置,其中所述存储器控制器具有刷新管理信息,所述刷新管理信息用于管理用于对于每个区块执行所述刷新的日期和时间,并且基于所述刷新管理信息来执行所述刷新。
5.根据权利要求1所述的半导体存储装置,其中在进行用于写入数据至所述闪存的写入处理的场合,在写入所述数据之后,所述存储器控制器基于写入目标区块的所述劣化程度和读取频率,获得存储在所述写入目标区块中的数据的所述可靠性维持期,并且基于获得的所述可靠性维持期,在所述写入目标区块上执行所述刷新。
6.根据权利要求1所述的半导体存储装置,其中在进行用于从所述闪存读取数据的读取处理的场合,在读取所述数据之后,所述存储器控制器基于读取目标区块的所述劣化程度和读取频率,获得存储在所述读取目标区块中的数据的所述可靠性维持期,并且基于获得的所述可靠性维持期,在所述读取目标区块上执行所述刷新。
7.根据权利要求1所述的半导体存储装置,其中当执行用于执行所述刷新的刷新处理时,如果主系统做出访问请求,则所述存储器控制器优先处理所述访问请求并且暂时地停止所述刷新的执行。
8.根据权利要求1所述的半导体存储装置,其中在执行所述刷新之前的时间段期间,所述存储器控制器对每个区块执行验证,以获得发生在所述区块中的故障比特数量的发生状态;通过读取所述区块,基于通过执行所述验证所获得的所述故障比特数量,确定验证目标区块的新劣化程度;基于确定的所述新劣化程度,获得关于存储在所述验证目标区块中的数据的新可靠性维持期;并且基于获得的所述新可靠性维持期,在所述验证目标区块上执行所述刷新。
9.根据权利要求8所述的半导体存储装置,其中所述存储器控制器具有公式,根据所述公式,通过对故障比特数量阈值表分配来唯一地确定故障比特数量阈值,其中通过所述区块的所述劣化程度、所述区块的所述读取频率、以及所述区块自从数据存储以来经过的时间的组合,或者所述区块的所述劣化程度和所述区块的所述读取频率、以及将所述区块自从数据存储以来经过的所述时间作为变量,来唯一地确定所述故障比特数量阈值;基于所述故障比特数量阈值表或所述公式,获得所述验证目标区块的所述故障比特数量阈值;并且基于获得的所述故障比特数量阈值和通过执行所述验证所获得的所述故障比特数量,判断是否应当确定关于存储在所述验证目标区块中的所述数据的新劣化程度。
10.根据权利要求8所述的半导体存储装置,其中所述存储器控制器具有故障比特数量分布指数或者分布函数的参数,所述故障比特数量分布指数或者分布函数的参数针对所述区块的所述劣化程度、所述区块的所述读取频率、以及所述区块自从数据存储以来经过的时间的每个组合指示故障比特数量分布;并且基于所述故障比特数量分布指数或者所述参数以及通过执行所述验证所获得的所述故障比特数量,确定关于存储在所述验证目标区块中的所述数据的新劣化程度。
11.根据权利要求8所述的半导体存储装置,其中所述存储器控制器具有故障比特数量分布指数,所述故障比特数量分布指数针对所述区块的所述劣化程度、所述区块的所述读取频率、所述区块自从数据存储以来经过的时间的每个组合指示故障比特数量分布;并且将所述故障比特数量分布指数与通过执行所述验证所获得的所述故障比特的数量进行比较,并且然后将与通过执行所述验证所获得的故障比特数量最相似的所述故障比特数量分布指数的所述劣化程度确定为所述验证目标区块的新劣化程度。
12.根据权利要求1所述的半导体存储装置,其中所述存储器控制器对于所述区块的每个可靠性等级来管理所述区块,所述区块的每个可靠性等级是基于自从所述区块中的数据的存储以来经过的时间以及所述可靠性维持期而计算出的,并且对于每个可靠性等级,对超过可允许区块数量的区块执行所述刷新。
13.一种半导体存储装置,包括用于提供存储区域的闪存,以及用于控制从所述闪存读取数据或者写入数据至所述闪存的存储器控制器,
其中所述闪存的所述存储区域划分成多个区块进行管理,以及
其中所述存储器控制器对每个区块执行验证,以获得在某个时间段期间发生在所述区块中的故障比特数量的发生状态;以及如果通过执行所述验证所获得的所述故障比特数量大于预定的阈值,则所述存储器控制器执行刷新,所述刷新用于将存储在所述验证目标区块中的数据新存储在另一个区块中。
14.一种半导体存储装置,包括用于提供存储区域的闪存,以及用于控制从所述闪存读取数据或者写入数据至所述闪存的存储器控制器,
其中所述闪存的所述存储区域划分成多个区块进行管理,以及
其中所述存储器控制器对每个区块执行验证,以获得在某个时间段期间发生在所述区块中的故障比特数量的发生状态;以及如果通过执行所述验证所获得的所述故障比特数量与预定故障比特数量分布指数之间的差异大于预定的阈值,则所述存储器控制器执行刷新,所述刷新用于将存储在所述验证目标区块中的数据新存储在另一个区块中。
15.一种用于控制半导体存储装置的方法,所述半导体存储装置包括用于提供存储区域的闪存,以及用于控制从所述闪存读取数据或者写入数据至所述闪存的存储器控制器,
其中所述闪存的所述存储区域划分成多个区块进行管理,以及
其中所述半导体存储装置控制方法包括:
由所述存储器控制器执行的第一步骤:对于所述多个区块的每一个,管理所述区块的劣化程度和读取频率;
由所述存储器控制器执行的第二步骤:基于管理的所述区块的劣化程度和读取频率,获得存储在所述区块中的数据的可靠性维持期;以及
由所述存储器控制器执行的第三步骤:执行刷新,所述刷新用于将存储在所述区块中的所述数据新存储在另一个区块中。
CN2011800680743A 2011-04-28 2011-04-28 半导体存储装置和用于控制半导体存储装置的方法 Pending CN103392208A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2011/002507 WO2012147136A1 (en) 2011-04-28 2011-04-28 Semiconductor storage apparatus and method for controlling semiconductor storage apparatus

Publications (1)

Publication Number Publication Date
CN103392208A true CN103392208A (zh) 2013-11-13

Family

ID=44276352

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2011800680743A Pending CN103392208A (zh) 2011-04-28 2011-04-28 半导体存储装置和用于控制半导体存储装置的方法

Country Status (5)

Country Link
US (1) US9129699B2 (zh)
EP (1) EP2659489A1 (zh)
JP (1) JP5629391B2 (zh)
CN (1) CN103392208A (zh)
WO (1) WO2012147136A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107402888A (zh) * 2016-05-19 2017-11-28 佳能株式会社 存储控制设备及信息处理方法
CN110503999A (zh) * 2018-05-17 2019-11-26 希捷科技有限公司 用于管理存储器访问操作的方法和系统
CN110570892A (zh) * 2019-07-31 2019-12-13 联芸科技(杭州)有限公司 控制存储器刷新的方法、装置以及控制器
CN112506420A (zh) * 2019-09-16 2021-03-16 伊姆西Ip控股有限责任公司 在存储系统中管理擦洗操作的方法、设备和产品

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8650353B2 (en) * 2011-07-01 2014-02-11 Intel Corporation Apparatus, system, and method for refreshing non-volatile memory
JP5674634B2 (ja) 2011-12-28 2015-02-25 株式会社東芝 コントローラ、記憶装置およびプログラム
US9236110B2 (en) 2012-06-30 2016-01-12 Intel Corporation Row hammer refresh command
US9627085B2 (en) * 2012-11-29 2017-04-18 Silicon Motion Inc. Refresh method for flash memory and related memory controller thereof
US9384821B2 (en) 2012-11-30 2016-07-05 Intel Corporation Row hammer monitoring based on stored row hammer threshold value
US9032141B2 (en) * 2012-11-30 2015-05-12 Intel Corporation Row hammer monitoring based on stored row hammer threshold value
US9141534B2 (en) * 2012-12-14 2015-09-22 Sandisk Technologies Inc. Tracking read accesses to regions of non-volatile memory
JP6133591B2 (ja) * 2012-12-21 2017-05-24 株式会社メガチップス 半導体記憶装置及びコンピュータシステム
US9251885B2 (en) * 2012-12-28 2016-02-02 Intel Corporation Throttling support for row-hammer counters
US9117504B2 (en) * 2013-07-03 2015-08-25 Micron Technology, Inc. Volume select for affecting a state of a non-selected memory volume
JP5981906B2 (ja) * 2013-12-17 2016-08-31 京セラドキュメントソリューションズ株式会社 画像形成装置
KR101609980B1 (ko) * 2014-03-14 2016-04-06 단국대학교 산학협력단 메모리 기반 저장장치의 주기적 갱신 장치 및 방법
US9804781B2 (en) 2014-03-26 2017-10-31 Seagate Technology Llc Storage media performance management
DE102014208609A1 (de) * 2014-05-08 2015-11-26 Robert Bosch Gmbh Refresh eines Speicherbereichs einer nichtflüchtigen Speichereinheit
US10229055B2 (en) * 2014-10-29 2019-03-12 Seagate Technology Llc Adaptive spanning control
KR102250423B1 (ko) 2015-01-13 2021-05-12 삼성전자주식회사 불휘발성 메모리 시스템 및 그것의 동작 방법
KR102277521B1 (ko) 2015-01-23 2021-07-16 삼성전자주식회사 저장 장치 및 그것의 리드 리클레임 및 읽기 방법
US9798475B2 (en) 2015-03-11 2017-10-24 Toshiba Memory Corporation Memory system and method of controlling nonvolatile memory
US10193579B2 (en) 2015-09-08 2019-01-29 Toshiba Memory Corporation Storage control device, storage system, and storage control method
JP6414853B2 (ja) 2015-12-14 2018-10-31 東芝メモリ株式会社 メモリシステムおよび制御方法
US10664119B2 (en) * 2017-01-04 2020-05-26 International Business Machines Corporation Document content pool
US10176860B1 (en) 2017-08-29 2019-01-08 Micron Technology, Inc. Refresh in non-volatile memory
US10324653B1 (en) 2017-12-01 2019-06-18 Red Hat Israel, Ltd. Fast evacuation of a cloned disk to a storage device
JP6837419B2 (ja) * 2017-12-05 2021-03-03 ルネサスエレクトロニクス株式会社 半導体記憶装置、及び半導体記憶装置のリフレッシュ方法
US10446243B2 (en) * 2017-12-18 2019-10-15 Macronix International Co., Ltd. Storage device and associated control method to determine target memory blocks for probe operation
JP2019168853A (ja) * 2018-03-22 2019-10-03 東芝メモリ株式会社 メモリシステム、その制御方法及びプログラム
JP2019168937A (ja) 2018-03-23 2019-10-03 東芝メモリ株式会社 メモリシステム、制御方法及びコントローラ
KR102567111B1 (ko) 2018-08-02 2023-08-14 삼성전자주식회사 스토리지 디바이스 및 스토리지 디바이스의 동작 방법
KR102599117B1 (ko) 2018-11-14 2023-11-06 삼성전자주식회사 블록들의 온 셀 카운트들을 모니터링하고 저장하는 스토리지 장치 및 그것의 동작 방법
KR20220039277A (ko) * 2020-09-22 2022-03-29 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
US11625177B2 (en) * 2020-11-20 2023-04-11 Micron Technology, Inc. Combination scan management for block families of a memory device
JP2023088017A (ja) 2021-12-14 2023-06-26 キオクシア株式会社 メモリシステムおよび制御方法
US11941276B2 (en) * 2022-07-28 2024-03-26 Micron Technology, Inc. Incomplete superblock management for memory systems

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080301525A1 (en) * 2007-05-31 2008-12-04 Kabushiki Kaisha Toshiba Data refresh apparatus and data refresh method
US20090172267A1 (en) * 2007-12-27 2009-07-02 Hagiwara Sys-Com Co., Ltd. Refresh method of a flash memory
CN101622607A (zh) * 2008-02-29 2010-01-06 株式会社东芝 半导体存储装置
US20100165689A1 (en) * 2008-12-31 2010-07-01 Anobit Technologies Ltd Rejuvenation of analog memory cells

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4256198B2 (ja) 2003-04-22 2009-04-22 株式会社東芝 データ記憶システム
US7325090B2 (en) 2004-04-29 2008-01-29 Sandisk Il Ltd. Refreshing data stored in a flash memory
JP4575346B2 (ja) * 2006-11-30 2010-11-04 株式会社東芝 メモリシステム
JP2008181380A (ja) * 2007-01-25 2008-08-07 Toshiba Corp メモリシステムおよびその制御方法
JP2008287404A (ja) * 2007-05-16 2008-11-27 Hitachi Ltd 読み出しによる非アクセスメモリセルのデータ破壊を検出及び回復する装置、及びその方法
JP2009129070A (ja) * 2007-11-21 2009-06-11 Hitachi Ltd フラッシュメモリ記憶装置の制御方法、その方法を用いたフラッシュメモリ記憶装置及びストレージシステム
JP4675985B2 (ja) * 2008-03-01 2011-04-27 株式会社東芝 メモリシステム
TWI373771B (en) * 2008-06-06 2012-10-01 Phison Electronics Corp Memory management method for non-volatile memory and controller using the same
JP2010086402A (ja) * 2008-10-01 2010-04-15 Hagiwara Sys-Com:Kk メモリの管理方法及びフラッシュメモリデバイス
US8261136B2 (en) * 2009-06-29 2012-09-04 Sandisk Technologies Inc. Method and device for selectively refreshing a region of a memory of a data storage device
JP2011059907A (ja) * 2009-09-09 2011-03-24 Nec Corp 端末装置及びそれに用いる不揮発メモリ管理方法並びにそのプログラム
JP2010160816A (ja) * 2010-03-29 2010-07-22 Toshiba Corp 半導体記憶装置の制御方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080301525A1 (en) * 2007-05-31 2008-12-04 Kabushiki Kaisha Toshiba Data refresh apparatus and data refresh method
US20090172267A1 (en) * 2007-12-27 2009-07-02 Hagiwara Sys-Com Co., Ltd. Refresh method of a flash memory
CN101622607A (zh) * 2008-02-29 2010-01-06 株式会社东芝 半导体存储装置
US20100165689A1 (en) * 2008-12-31 2010-07-01 Anobit Technologies Ltd Rejuvenation of analog memory cells

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107402888A (zh) * 2016-05-19 2017-11-28 佳能株式会社 存储控制设备及信息处理方法
CN110503999A (zh) * 2018-05-17 2019-11-26 希捷科技有限公司 用于管理存储器访问操作的方法和系统
CN110503999B (zh) * 2018-05-17 2023-08-01 希捷科技有限公司 用于管理存储器访问操作的方法和系统
CN110570892A (zh) * 2019-07-31 2019-12-13 联芸科技(杭州)有限公司 控制存储器刷新的方法、装置以及控制器
CN112506420A (zh) * 2019-09-16 2021-03-16 伊姆西Ip控股有限责任公司 在存储系统中管理擦洗操作的方法、设备和产品

Also Published As

Publication number Publication date
JP2014505941A (ja) 2014-03-06
WO2012147136A1 (en) 2012-11-01
EP2659489A1 (en) 2013-11-06
US20120278533A1 (en) 2012-11-01
JP5629391B2 (ja) 2014-11-19
US9129699B2 (en) 2015-09-08

Similar Documents

Publication Publication Date Title
CN103392208A (zh) 半导体存储装置和用于控制半导体存储装置的方法
US20200004435A1 (en) Determining when to replace a storage device by training a machine learning module
CN101369240B (zh) 用于在信息处理系统中管理存储错误的系统和方法
US10068661B2 (en) Post package repair (PPR) data in non-volatile memory
CN104951383A (zh) 用于监测硬盘的健康状况的方法和装置
US20170364271A1 (en) Method and device for selecting raid level for mapped raid
US8862953B2 (en) Memory testing with selective use of an error correction code decoder
US11016679B2 (en) Balanced die set execution in a data storage system
CN102959522A (zh) 计算机系统的管理方法和管理系统
US9881682B1 (en) Fine grained data retention monitoring in solid state drives
CN110058960B (zh) 用于管理存储系统的方法、设备和计算机程序产品
CN111104051B (zh) 用于管理存储系统的方法、设备和计算机程序产品
US9891973B2 (en) Data storage system durability using hardware failure risk indicators
US9037548B1 (en) Dynamically updated data management processing plans generated outside a storage array
CN104503781A (zh) 硬盘的固件升级方法和存储系统
US20240020256A1 (en) Component firmware interaction using hardware registers
US20150199152A1 (en) Method of managing redundant array of independent disks (raid) groups in a solid state disk array
US10847245B2 (en) Failure indicator predictor (FIP)
CN104809031B (zh) 操作存储器的方法及存储器装置
CN114924923A (zh) 一种硬盘写入点正确性验证方法、系统、设备及介质
CN109599145A (zh) 一种固态硬盘的测试方法、装置及计算机存储介质
CN107122254B (zh) 一种计算机修复控制方法及系统、修复方法及系统
JP7161936B2 (ja) テスト環境決定装置及びテスト環境決定方法
WO2014187574A1 (en) Managing storage devices having a lifetime of a finite number of operations
US20190332295A1 (en) Method, data storage system, and computer-readable recording medium for disk array data distribution

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20131113