CN103377140B - 存储控制设备、存储设备、信息处理系统和处理方法 - Google Patents
存储控制设备、存储设备、信息处理系统和处理方法 Download PDFInfo
- Publication number
- CN103377140B CN103377140B CN201310122226.4A CN201310122226A CN103377140B CN 103377140 B CN103377140 B CN 103377140B CN 201310122226 A CN201310122226 A CN 201310122226A CN 103377140 B CN103377140 B CN 103377140B
- Authority
- CN
- China
- Prior art keywords
- memory
- historical information
- state
- errors
- checking
- 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.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1666—Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
- G06F11/167—Error detection by comparing the memory output
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
- Memory System (AREA)
Abstract
这里公开了一种存储控制设备,包括:状态获取部分,配置为从存储器获取包括向所述存储器写入之后的验证执行次数的状态;历史信息保持部分,配置为按照与所述存储器的每一预定区域的关联关系,将所述状态的历史保持为历史信息;和区域选择部分,配置为当在所述存储器中要使用新的区域时,根据历史信息选择满足条件的区域。
Description
技术领域
本技术涉及存储控制设备。更具体地,本技术涉及用于非易失性存储器的存储控制设备、存储设备和信息处理系统、以及用于所述存储控制设备、存储设备和信息处理系统的处理方法、以及用于促使计算机执行该处理方法的程序。
背景技术
在诸如NAND闪存或ReRAM(非挥发性阻抗存储器(Resistance RAM))的半导体存储器中,向和从连接到选择的字线的多个存储单元共同执行写入和擦除。在写入或擦除数据时,为了保证数据的可靠性,使用在向存储单元的写入操作或从存储单元的擦除操作之后执行验证读出的方法。如果向存储单元的写入操作或从存储单元的擦除操作仅执行一次,则由于制造过程出现的漂移(dispersion)的影响,写入操作或擦除操作有时无法正确地结束。在这种情况下,写入操作或擦除操作以及验证读出被重复执行多次。
另一方面,为了向NAND闪存或ReRAM正确地记录数据或从NAND闪存或ReRAM正确地读出数据,存储器芯片或存储器控制器的内部电路具有差错校正功能。而且已经提出了一种利用差错校正功能使得允许出现一些差错、以减少重复次数、从而加速数据写入或擦除的方法。例如日本专利特许公开No.Hei06-131884、日本专利特许公开No.2002-048783或日本专利特许公开No.Hei10-222995中公开了刚才描述的这种方法。
发明内容
在上述方法中,假设差错校正功能允许出现一些差错,以实现数据写入或擦除的加速。然而,根据该方法,不能预测写入操作或擦除操作以及验证读出的重复程度,并且不能掌握存储单元的性质。因此,不能根据存储器需要的性能,来选择存储器的要使用的区域。
因此,希望能够根据存储器需要的性能,来选择存储器的要使用的区域。
根据本技术的第一实施方式,提供了一种存储控制设备,包括:状态获取部分,配置为从存储器获取包括向所述存储器写入之后的验证执行次数的状态;历史信息保持部分,配置为按照与所述存储器的每一预定区域的关联关系将所述状态的历史保持为历史信息;和区域选择部分,配置为当在所述存储器中要使用新的区域时,根据历史信息来选择满足条件的区域。根据本技术的第一实施方式,还提供了一种存储控制方法,包括:从存储器获取包括向所述存储器写入之后的验证执行次数的状态,按照与所述存储器的每一预定区域的关联关系将所述状态的历史保持为历史信息,以及当在所述存储器中要使用新的区域时,根据历史信息来选择满足条件的区域。在所述存储控制设备和存储控制方法中,根据写入操作之后的验证的历史信息,来选择存储器中满足条件的区域。
所述存储控制设备可配置为使得在需要高速性能作为所述条件的情况下,所述区域选择部分基于历史信息中的验证执行次数来选择区域。在所述存储控制设备中,选择所述存储器中满足高速性能条件的区域。在这种情况下,具体可选择历史信息中的验证执行次数较少的区域。
所述存储控制设备可配置为使得所述状态获取部分接收在验证中检测到的差错数作为所述状态,并且在需要高可靠性作为所述条件的情况下,所述区域选择部分基于历史信息中的检测到的差错数选择区域。在所述存储控制设备中,选择所述存储器中满足高可靠性条件的区域。在这种情况下,具体可选择历史信息中的检测到的差错数较少的区域。
所述存储控制设备还可包括参数指定部分,配置为根据要新执行向所述存储器的写入时的历史信息,来指定参数。在所述存储控制设备中,利用指定的参数执行写入。
所述存储控制设备可配置为使得所述参数指定部分将写入之后的验证中的容许差错数指定为参数。在所述存储控制设备中,利用指定的容许差错数作为上限来执行写入。
所述存储控制设备可配置为使得所述状态获取部分接收在验证中检测到的差错数作为所述状态,并且所述参数指定部分根据历史信息中包括的检测到的差错数,将容许差错数指定为参数。在所述存储控制设备中,根据过去写入时检测到的差错数,来指定容许差错数以执行写入。
所述存储控制设备可配置为使得所述参数指定部分将写入时要施加到所述存储器中的脉冲的电压电平初始值指定为参数。在所述存储控制设备中,利用指定的电压电平作为初始值,来施加脉冲以执行写入。
所述存储控制设备可配置为使得所述历史信息保持部分将指定为参数的电压电平的初始值保持为历史信息,并且所述参数指定部分根据历史信息中包括的电压电平的初始值,将新写入时要施加到所述存储器中的脉冲的电压电平的初始值指定为参数。在所述存储控制设备中,根据过去写入时的电压电平的初始电平,来指定用于新写入的电压电平的初始值以执行写入。
根据本技术的第二实施方式,提供了一种存储设备,包括:存储器阵列;验证部分,配置为向所述存储器阵列写入之后执行验证;验证次数计数器,配置为对验证执行次数进行计数;状态获取部分,配置为获取包括所述验证执行次数的状态;历史信息保持部分,配置为按照与所述存储器阵列的每一预定区域的关联关系将所述状态的历史保持为历史信息;以及区域选择部分,配置为当在所述存储器阵列中要使用新的区域时,根据历史信息选择满足条件的区域。在所述存储设备中,根据向所述存储器阵列的写入操作之后的验证的历史信息,来选择所述存储器中满足条件的区域。
所述存储设备可配置为使得还包括检测差错数计数器,配置为对在验证中检测到的差错数进行计数,并且所述状态获取部分接收检测到的差错数作为所述状态,并且在需要高可靠性作为所述条件的情况下,所述区域选择部分选择历史信息中的检测到的差错数较少的区域。在所述存储设备中,选择所述存储器中满足高可靠性条件的区域。
根据本技术的第三实施方式,提供了一种信息处理系统,包括:存储器阵列;验证部分,配置为向所述存储器阵列写入之后执行验证;验证次数计数器,配置为对验证执行次数进行计数;状态获取部分,配置为获取包括所述验证执行次数的状态;历史信息保持部分,配置为按照与所述存储器阵列的每一预定区域的关联关系将所述状态的历史保持为历史信息;区域选择部分,配置为当在所述存储器阵列中要使用新的区域时,根据历史信息来选择满足条件的区域;以及主机,配置为向所述存储器阵列发出写命令。在所述信息处理系统中,当执行新发出的写命令时,根据向所述存储器阵列写入之后的验证的历史信息,来选择所述存储器中满足条件的区域。
总之,利用根据本技术的存储控制设备和方法、存储设备和信息处理系统,可以预见能根据存储器需要的性能来选择要使用的存储器区域的优异优点。
附图说明
图1是示出根据本技术的第一实施方式的信息处理系统的配置示例的框图;
图2是示出图1的信息处理系统的存储控制部的功能配置示例的框图;
图3是示出图1的信息处理系统的非易失性存储器的配置示例的框图;
图4是例示图3的非易失性存储器中存储的数据的配置示例的视图;
图5是例示图2中示出的地址转换表的配置示例的视图;
图6是例示图2中示出的历史信息管理表的配置示例的视图;
图7是例示图2的存储控制部的写命令处理过程的示例的流程图;
图8是例示图2的存储控制部的逻辑页写处理的处理过程示例的流程图;
图9是例示图8的处理过程中的写处理的处理过程示例的流程图;
图10是例示图9的处理过程中的编程操作的处理过程示例的流程图;
图11是例示图10的处理过程中的擦除操作的处理过程示例的流程图;
图12是示出根据本技术的第二实施方式的信息处理系统的配置示例的框图;
图13A和13B是例示图12的信息处理系统的非易失性存储器中存储的数据的配置示例的视图;
图14是例示图12的信息处理系统的地址转换表的配置示例的视图;
图15和16是例示图12中示出的非易失性存储器的历史信息管理表的配置示例的视图;
图17是例示图12中示出的存储控制部的逻辑页写处理的处理过程示例的流程图;
图18是示出本技术的第三实施方式中的非易失性存储器的配置示例的框图;
图19和20是例示图18中示出的非易失性存储器的历史信息管理表的配置示例的视图;
图21是例示图18中示出的非易失性存储器的编程操作的处理过程示例的流程图;和
图22是例示图18中示出的非易失性存储器的擦除操作的处理过程示例的流程图。
具体实施方式
下面,描述本技术的实施方式。按以下顺序给出描述。
1、第一实施方式(其中历史信息包括验证执行次数和检测差错数的示例)
2、第二实施方式(其中组合使用多个NVM的示例)
3、第三实施方式(其中历史信息包括验证执行次数和施加脉冲起始电平的示例)
<1、第一实施方式>
[信息处理系统的配置]
图1示出根据本技术的第一实施方式的信息处理系统的配置示例。参照图1,由主机100、存储控制部200、和非易失性存储器(NVM)300配置该信息处理系统。存储控制部200和非易失性存储器300配置存储系统。
主机100发出用于请求从非易失性存储器300读出数据或向非易失性存储器300写入数据的命令。
存储控制部200与主机100通信以接收命令,并执行向非易失性存储器300写入数据和从非易失性存储器300读出数据。当接收到写命令时,存储控制部200将从主机100接收的数据写入非易失性存储器300。另一方面,当接收到读命令时,存储控制部200从非易失性存储器300读出数据,并将数据传递到主机100。
当主机100执行写命令或读命令时,它使用逻辑地址作为表示存储控制部200中的数据的位置信息的地址。例如通过512字节寻址逻辑地址。当主机100执行写命令或读命令时,它指定要开始访问的顶端逻辑地址以及数据大小。数据大小所指定的值是n,由512×n字节表示。
存储控制部200包括处理器210、RAM220、ROM230、ECC处理部分240、主机接口201和NVM接口203。
处理器210控制整个存储控制部200。该处理器210执行ROM230中存储的软件。RAM220是易失性存储器,并被用作处理器210的工作存储器或用于临时保持用于非易失性存储器300的管理所要使用的数据的区域。另外,RAM220还被用作临时保持要在主机100和存储控制部200之间传送的数据的区域、以及临时保持要在存储控制部200和非易失性存储器300之间传送的数据的区域。ROM230是其中存储有用于控制存储系统的软件程序的存储器。
ECC处理部分240执行要记录到非易失性存储器300中的数据的差错校正码(ECC)的生成、和从非易失性存储器300读出的数据的差错校正处理。
非易失性存储器300操作为存储系统的存储区。非易失性存储器300基于来自主机100的写命令执行编程操作和擦除操作作为写处理。在编程操作中,将任意值写入非易失性存储器300的存储器阵列的指定区域中。在擦除操作中,擦除非易失性存储器300的存储器阵列的指定区域。在编程操作和擦除操作两者中,稍后立即执行用于验证的读出(验证),以进行确认是否已确定执行了编程操作和擦除操作。
主机接口201连接到主机100,并执行从主机100接收命令、以及由主机100接收数据和向主机100发送数据。
NVM接口203连接到非易失性存储器300,并执行向非易失性存储器300的指令的发送、写数据的发送和读数据的接收。
[存储控制部的功能配置]
图2示出本技术的第一实施方式中的存储控制部200的功能配置示例。这里,存储控制部200包括地址转换表221、历史信息管理表222、状态获取部分211、页选择部分212和参数指定部分213作为功能块。这里要注意,图2关注与本实施方式有关的功能,而在图2中省略了与普通存储器访问有关的功能。
使用地址转换表221用于从逻辑地址转换为物理地址。由于在来自主机100的命令中通常使用逻辑地址,所以使用地址转换表221用于转换为物理地址。
历史信息管理表222保持和管理非易失性存储器300的写处理的历史信息。如下文所描述的,可以使用来自非易失性存储器300的状态作为历史信息。要注意,历史信息管理表222是历史信息保持部分的示例。
在不向存储系统供应电力时,地址转换表221和历史信息管理表222被存储在非易失性存储器300的预先确定的位置处。在使得电力可用的初始化处理中,存储控制部200从预定位置读出这两个表,并将表临时保持到RAM220中。如果从主机100接收到电力供应切断的在先通知,则存储控制部200将这两个表写入非易失性存储器300的预定位置。为了使得电力供应意外切断的影响最小化,优选地针对每个固定处理执行将数据写入非易失性存储器300的处理。要注意,下文描述地址转换表221和历史信息管理表222的特定配置。
状态获取部分211在从非易失性存储器300写入之后获取非易失性存储器300的状态。在本第一实施方式中,假设将执行验证的次数(即,验证执行次数)和通过验证检测到的差错数(即,检测差错数)作为状态。这里,差错数是差错出现的比特数。使用状态获取部分211获取的状态用于地址转换表221和历史信息管理表222的更新。
在要使用非易失性存储器300中的新的区域时,页选择部分212根据历史信息管理表222中保持的历史信息,来选择满足条件的物理页。这里的条件与页属性有关,并且例如可以是高可靠性或高速性能。可以在从主机100写入时执行刚才描述的这种条件的指定。或者,从主机100写入时,可基于从主机100写入时指定的物理地址,根据逻辑地址所属区域的性质,来估计条件。例如,如果逻辑地址属于文件管理区域,则可以估计需要高可靠性。当页选择部分212选择新的物理页并将物理页分配给逻辑页时,它将物理页和逻辑页的组合登记到地址转换表221。
参数指定部分213在指示非易失性存储器300执行写处理时,指定写处理中要使用的参数。在本第一实施方式中,假设将写处理验证时容许的差错数(即,容许差错数)作为参数。如上所述,存储控制部200包括ECC处理部分240,并且如果差错保持在可以被ECC处理部分240校正的范围内,则能允许一些差错。因此,在本实施方式中,在指示写处理时,可将容许差错数指定为参数。
[非易失性存储器的配置]
图3示出本公开的第一实施方式中的非易失性存储器300的配置示例。参照图3,非易失性存储器300包括存储器阵列310、数据缓冲器320、验证部分330、验证次数计数器340、验证成功判断部分350、检测差错数计数器360、容许差错数寄存器370、和控制部分390。
非易失性存储器300还包括控制接口309,该接口是与存储控制部200的接口。控制接口309执行来自存储控制部200的命令、物理地址和参数的接收、向存储器阵列310写入的数据的接收、从存储器阵列310读取的数据的发送、以及控制数据的接收和发送。
存储器阵列310是非易失性存储器阵列,并包括按照二维排列的大量存储单元,用于对于每个比特存储二进制值之一。来自主机100的用于访问存储器阵列310的命令单位是物理页。物理页被分配有物理页地址。
数据缓冲器320临时保持从存储控制部200输出的写数据和从存储器阵列310读出的读数据。
验证部分330执行写入存储器阵列310的写数据的验证处理(验证)。验证次数计数器340对验证部分330执行验证处理的次数进行计数。
检测差错数计数器360对验证操作中检测到的差错数(即,差错出现的比特数)进行计数。容许差错数寄存器370临时保持从存储控制部200接收的容许差错数作为参数。验证成功判断部分350基于容许差错数寄存器370中保持的参数和检测差错数计数器360所计数的数目,来判断存储控制部200指示的写处理是否最终导致成功。
控制部分390控制将数据写入存储器阵列310、擦除存储器阵列310中的数据、以及从存储器阵列310读出数据的处理。
[非易失性存储器中的数据配置]
图4例示本技术的第一实施方式中的非易失性存储器300中存储的数据的配置示例。参照图4,来自主机100的用于访问非易失性存储器300的命令单位是物理页。在本示例中,假设根据512字节(即,根据4096比特)配置物理页。另外,ECC处理部分240对于512字节的数据生成52比特的差错校正码。因此,物理页的总长度是4148比特。该差错校正码假设对于其512字节的数据具有4比特的校正能力。
[地址转换表的配置]
图5例示本技术的第一实施方式中的地址转换表221的配置示例。参照图5,地址转换表221按照与逻辑页的逻辑地址的关联关系保持数据标志和物理页地址。
该数据标志指示是否在对应的逻辑地址处写入有效数据。如果写入有效数据,则数据标志指示“真”,但是如果未写入有效数据,则数据标志指示“假”。当数据标志指示“假”时,未在物理页地址处保持有效地址。
[历史信息管理表222的配置]
图6例示本技术的第一实施方式中的历史信息管理表222的配置示例。参照图6,历史信息管理表222按照与非易失性存储器300的每个物理页地址的关联关系保持非易失性存储器300的状态和向非易失性存储器300的写处理的历史信息。
这里,非易失性存储器300的状态是物理页的使用状态,并且可假设三个值:“使用”、“空白”和“未擦除”。“使用”表示有效数据被写在相关物理页地址处、并且非易失性存储器300由地址转换表221管理。“空白”表示已对相关物理页地址执行了擦除操作、并且可以对物理页地址执行编程操作。“未擦除”表示无效数据留在相关物理页地址处、并且在执行编程操作之前必须执行擦除操作。
在本实施方式中,在关于编程操作和擦除操作的过去三个操作周期中,保持验证中的检测差错数和验证执行次数作为写处理的历史信息。
[信息处理系统的操作]
图7例示本技术的第一实施方式中的存储控制部200的写命令处理过程的示例。更具体地,图7例示从主机100向存储控制部200发出写命令时存储控制部200的操作。通过写命令,存储控制部200接收顶端逻辑地址、数据大小和写数据。该写数据被临时存储在RAM220中。
在步骤S931,处理器210将要基于写命令执行的写处理划分为基于顶端逻辑地址和数据大小的逻辑页单位的多个处理。因此,下述处理以逻辑页为单位重复执行,直到在步骤S932对于所有逻辑页完成了要基于写命令执行的写处理为止。
在以逻辑页单位的写处理中,处理器210首先在步骤S933确定要作为处理对象的逻辑页。例如,在步骤S932划分的逻辑页中、尚未处理的逻辑页中,将具有最低逻辑地址的逻辑页确定为处理对象。
然后,在步骤S940,处理器210指示非易失性存储器300执行将保持在RAM220中的一页的写数据(即,512字节的写数据)写入在步骤S933确定的处理对象的逻辑页的写处理。下文描述写处理的细节。
在写处理完成后,在步骤S935,处理器210在地址转换表221中更新与写处理的对象页有关的信息。地址转换表221的更新信息是数据标志和物理页地址。如果数据标志更新前的值为“假”,则其被更新为“真”,但是如果更新前的值为“真”,则其保持“真”。物理页地址的值被更新为已写入数据的物理页地址。更新后,处理器210将地址转换表221记录到非易失性存储器300。
图8例示本技术的第一实施方式中的存储控制部200的逻辑页写处理(即,图7的步骤S940)的处理过程示例。参照图8,在步骤S950,存储控制部200发出针对在步骤S933确定为处理对象的逻辑页、执行向非易失性存储器300的写处理的指令。于是,处理器210搜索非易失性存储器300以选择满足所需条件的物理页地址。
然后,如果作为写处理的结果从非易失性存储器300返回状态,则处理器210基于步骤S942处的状态更新历史信息管理表222。
具体地,基于编程操作的状态中包括的检测差错数和验证执行次数,来更新历史信息管理表222中已执行编程操作的物理页地址处的“程序”的“检测差错数”和“验证执行次数”。另外,如果编程操作正常结束,则已执行编程操作的物理页地址处的“状态”被更新为“使用”,但是如果编程操作异常结束,则其被更新为“未擦除”。
另外,利用擦除操作的状态中包括的检测差错数和验证执行次数,来更新历史信息管理表222中已执行擦除操作的物理页地址处的“已擦除”的“检测差错数”和“验证执行次数”。另外,如果擦除操作已正常结束,则已执行擦除操作的物理页地址处的“状态”被更新为“空白”,但是如果擦除操作异常结束,则其被更新为“未擦除”。
在历史信息管理表222被更新之后,处理器210将历史信息管理表222记录到非易失性存储器300中。
如果状态中包括的验证结果指示验证成功,即,如果步骤S943处的判断为是,则确定写处理已正常结束,并且逻辑页的写处理结束。另一方面,如果状态中包括的验证结果指示验证失败,即,如果步骤S943处的判断为否,则处理返回步骤S950,向非易失性存储器300发出执行写操作的指令。
图9例示本技术的实施方式中的存储控制部200的写处理(即,图8的步骤S950的写处理)的处理过程示例。参照图9,处理器210在步骤S951判断是否请求将写数据记录到高可靠性的物理页中。如果判断需要高可靠性,即,如果在步骤S951处的判断为是,则处理器210在步骤S952搜索允许高可靠性的数据写入的物理页,并选择搜索到的物理页作为要执行编程操作的物理页。
这里,处理器210参照历史信息管理表222,来搜索执行关于物理页的编程操作时已通过验证检测到较少差错数的物理页,作为具有高可靠性的物理页。对历史信息执行加权,使得重要性被附加到近期执行结果,使其对搜索结果具有较高影响。下面,利用图6例示的示例给出描述。
处理器210从物理页地址“0x00000000”(“0x”后面的数字是十六进制数字:这类似地同样应用于以下描述)开始顺序搜索物理页,以搜索状态为“空白”并且根据下面给出的表达式计算的值X1最低的物理页:
X1=(一个周期之前的编程操作时的检测差错数)×3
+(两个周期之前的编程操作时的检测差错数)×2
+(三个周期之前的编程操作时的检测差错数)×1
如果其中状态为“空白”的物理页地址仅为“k+1”、“k+2”和“k+3”,则处理器210选择物理页地址“k+2”。
要注意,由于假设ECC处理部分240的差错校正能力是4比特,所以将历史信息管理表222中的“编程操作时的检测差错数”大于“4”的物理页视为遭受失败并且未被确定为搜索对象的物理页。这类似地同样应用于步骤S955和S957。
在步骤S953,处理器210对于在步骤S952处选择的物理页执行编程操作。这里,作为当需要高可靠性时要使用的参数,验证操作时的容许差错数被指定为“0”。
如果在步骤S951判断不需要高可靠性,即,如果在步骤S951处的判断为否,则处理器210在步骤S954判断对于写数据是否需要高速数据写入。如果在步骤S954判断对于写数据需要高速数据写入,即,如果在步骤S954处的判断为是,则处理器210在步骤S955搜索允许高速数据写入的物理页,并选择搜索出的物理页作为要执行编程操作的物理页。
这里,处理器210参照历史信息管理表222搜索执行关于物理页的编程操作时的验证执行次数较少的物理页,作为允许高速数据写入的物理页。对历史信息执行加权,使得重要性被附加到近期执行结果,使其对搜索结果具有较高影响。下面,利用图6例示的示例给出描述。
处理器210从物理页地址“0x00000000”开始顺序搜索物理页,以搜索其中状态为“空白”并且根据下面给出的表达式计算的值X2最低的物理页:
X2=(一个周期之前的编程操作时的验证执行次数)×3
+(两个周期之前的编程操作时的验证执行次数)×2
+(三个周期之前的编程操作时的验证执行次数)×1
如果其中状态为“空白”的物理页地址仅为“k+1”、“k+2”和“k+3”,则处理器210选择物理页地址“k+1”。
在步骤S956,处理器210对于在步骤S955处选择的物理页执行编程操作。这里,作为需要高速性能时的参数,验证操作时的容许差错数被指定为“4”。这是因为,尽管预期在验证操作时的容许差错数具有较高值的情况下、非易失性存储器300执行的编程操作处理完成较早,但由于假设ECC处理部分240的差错校正能力为4比特,所以容许差错数的最大值为“4”。
如果在步骤S954判断不需要高速性能,即,如果步骤S954处的判断为否,则处理器210在步骤S957搜索不满足高可靠性和高速性能的物理页。这里,处理器210参照历史信息管理表222以搜索在步骤S952或S955的搜索中不大可能命中的物理页。
处理器210从物理页地址“0x00000000”开始顺序搜索物理页,以搜索其中状态为“空白”并且“一个周期之前的编程操作时的检测差错数”为“3”的物理页。如果未搜索出相关物理页,则处理器210顺序搜索“两个周期之前的编程操作时的检测差错数”为“3”的物理页和“三个周期之前的编程操作时的检测差错数”为“3”的物理页。如果这些搜索仍然导致失败,则顺序搜索“一个周期之前的编程操作时的检测差错数”为“2”的物理页、“两个周期之前的编程操作时的检测差错数”为“2”的物理页和“三个周期之前的编程操作时的检测差错数”为“2”的物理页。在图6例示的示例中,选择其物理页地址为“k+3”的物理页。
在步骤S958,处理器210对于在步骤S957选择的物理页执行编程操作。这里,作为不需要高可靠性和高速性能情况下的参数,按照原样地利用在步骤S957搜索出的物理页的“一个周期之前的编程操作时的检测差错数”,以将验证操作时的容许差错数指定为“3”。
如果在步骤S953、S956或S958执行编程操作,则处理器210在步骤S959对于编程操作使得写数据无效的物理页执行擦除操作。
当执行此擦除操作时,根据紧靠在擦除操作之前的编程操作,按照以下条件指定要由处理器210指定的“容许检测差错数”。对于步骤S953处的编程操作之后的擦除操作,“容许检测差错数”被指定为“0”。对于步骤S956处的编程操作之后的擦除操作,“容许检测差错数”被指定为“4”。对于步骤S958处的编程操作之后的擦除操作,“容许检测差错数”被指定为“0”。
在处理过程的此示例中,执行需要高可靠性和/或高速性能的判断。然而,可将它们指定为主机100发出写命令时的参数。另外,可由存储控制部200唯一地执行判断。例如,假设其中采用FAT(文件分配表)方法作为存储系统的情况。在FAT方法中,文件分配表表示文件的位置信息,并且如果数据被毁坏,则有时读取文件变得不可能。此文件分配表被写入特定逻辑地址区域。如果主机100的写命令中指定的逻辑地址位于文件分配表的逻辑地址区域中,则存储控制部200能执行判断对于写入需要高可靠性的处理。另外,存储控制部200处置的对地址转换表221或历史信息管理表222的写入可被处置为需要高可靠性的写入。
图10例示本技术的实施方式中的非易失性存储器300的编程操作(即,图9的步骤S953、S956和S958处的编程操作)的处理过程示例。当非易失性存储器300通过其控制接口309从存储控制部200接收到编程操作指令时,其开始编程操作。在开始编程操作时,验证次数计数器340中保持的数字的初始化状态为“0”。
在步骤S911,容许差错数寄存器370保持通过控制接口309作为参数接收的容许差错数。然后在步骤S912,数据缓冲器320保持通过控制接口309接收的写数据。
然后在步骤S913,将通过控制接口309接收的物理地址传送到控制部分390,并将数据缓冲器320中保持的写数据写入存储器阵列310的指定物理地址。然后,为了验证写数据是否已确定写入,在步骤S914,验证部分330从物理页地址读出数据,将其与数据缓冲器320中保持的写数据进行比较。结果,检测差错数计数器360对未呈现一致性的比特数进行计数。另外,验证次数计数器340的验证次数递增一。
在步骤S915,验证成功判断部分350将检测差错数计数器360计数的检测差错数和容许差错数寄存器370中保持的容许差错数彼此比较,以判断检测差错数是否保持在容许范围内。然后,如果检测差错数等于或小于容许差错数,即,如果在步骤S915处的判断为是,则处理正常结束。在这种情况下,在步骤S916,将检测差错数计数器360计数的检测差错数和验证次数计数器340中保持的验证次数作为状态传送到存储控制部200。
如果在步骤S915判断检测差错数大于容许差错数,即,如果在步骤S915处的判断为否,则在步骤S917,将验证次数计数器340中保持的验证执行次数和非易失性存储器300制造时预先确定的验证操作最大执行次数彼此比较。然后,如果验证执行次数等于或小于验证操作最大执行次数,即,如果在步骤S917处的判断为是,则重复从步骤S913开始的步骤的处理过程。另一方面,如果验证执行次数大于验证操作最大执行次数,即,如果在步骤S917处的判断为否,则处理异常结束。在这种情况下,在步骤S918,将检测差错数计数器360计数的检测差错数和验证次数计数器340中保持的验证次数作为状态传送到存储控制部200。
图11例示本公开的实施方式中的非易失性存储器300的擦除操作(即,图9的步骤S959处的操作)的处理过程示例。当在控制接口309处接收到来自存储控制部200的擦除操作指令时,非易失性存储器300开始擦除操作。在开始擦除操作时,验证次数计数器340中保持的数字的初始化状态为“0”。
参照图11,在步骤S921,将通过控制接口309作为参数接收的容许差错数保持到容许差错数寄存器370中。
然后,在步骤S923,将通过控制接口309接收的物理地址传送到控制部分390,使得在存储器阵列310的指定物理地址处执行擦除。为了验证擦除是否已确实执行,在步骤S924,从物理页地址读出数据,将该数据与预期为擦除后的数据的数据(例如,所有比特均为“1”的数据)进行比较。然后,检测差错数计数器360对未呈现一致性的那些比特数进行计数。另外,验证次数计数器340的验证次数递增一。
在步骤S925,验证成功判断部分350将检测差错数计数器360计数的检测差错数和容许差错数寄存器370中保持的容许差错数彼此比较,以判断检测差错数是否保持在容许范围内。如果检测差错数等于或小于容许差错数,即,如果在步骤S925处的判断为是,则处理正常结束。在这种情况下,在步骤S926,将检测差错数计数器360计数的检测差错数和验证次数计数器340中保持的验证次数作为状态传送到存储控制部200。
另一方面,如果在步骤S925判断检测差错数大于容许差错数,即,如果在步骤S925处的判断为否,则在步骤S927,将验证次数计数器340中保持的验证执行次数和非易失性存储器300制造时预先确定的验证操作最大执行次数彼此比较。然后,如果验证执行次数等于或小于验证操作最大执行次数,即,如果在步骤S927处的判断为是,则重复从步骤S923开始的步骤的处理过程。另一方面,如果验证执行次数大于验证操作最大执行次数,即,如果在步骤S927处的判断为否,则处理异常结束。在这种情况下,在步骤S928,将检测差错数计数器360计数的检测差错数和验证次数计数器340中保持的验证次数作为状态传送到存储控制部200。
按照此方式,根据本技术的第四实施方式,可基于编程操作时和擦除时的验证的历史信息,来选择写处理的对象的物理页,使得可以满足高可靠性或高速性能的条件。另外,当指定验证操作时的容许差错数作为写处理中的参数时,可使用编程操作时和擦除时的验证的历史信息。例如,作为不需要编程操作中的高可靠性和高速性能的情况下的参数,可利用“一个周期之前的编程操作时的检测差错数”,以指定验证操作时的容许差错数。
<2、第二实施方式>
[信息处理系统的配置]
图12示出本技术的第二实施方式的信息处理系统的配置示例。参照图12,第二实施方式的信息处理系统除了包括两个非易失性存储器301和302之外,类似于第一实施方式。按照对应关系,在存储控制部200中提供两个NVM接口204和205。
非易失性存储器301和302与以上参照图3描述的第一实施方式中的非易失性存储器300具有类似的配置。另外,非易失性存储器301和302与以上参照图10和11描述的处理过程类似地操作。
[非易失性存储器的数据配置]
图13A和13B例示本技术的第二实施方式中的非易失性存储器301和302中存储的数据配置示例。如上所述,来自主机100的访问非易失性存储器300的命令单位是物理页,并且同样在本实施方式中,假设物理页包括512字节,即,4096比特。
然而,要注意,在本实施方式中,物理页分为两部分,并分别存储在非易失性存储器301和302中。具体地,物理页前一半的2048比特存储在非易失性存储器301中,如图13A所示,而物理页后一半的2048比特存储在非易失性存储器302中,如图13B所示。512字节数据的52比特的差错校正码被存储在非易失性存储器302的256字节数据之后的区域中。在非易失性存储器301的数据之后的区域中,例如,放置全部呈现“1”的多个比特。要注意,尽管描述了其中将差错校正码存储在非易失性存储器302中的示例,但差错校正码也可按照别的方式存储在非易失性存储器301中。
[地址转换表的配置]
图14例示本技术的第二实施方式中的地址转换表221的配置示例。参照图14,地址转换表221按照与逻辑页的逻辑地址的关联关系,来保持数据标志、第一物理页地址和第二物理页地址。第一物理页地址指示非易失性存储器301中的物理页地址,而第二物理页地址指示非易失性存储器302中的物理页地址。换句话说,其中存储有物理页的前一半数据的非易失性存储器301的物理地址被指示为第一物理页地址,而其中存储有物理页的后一半数据的非易失性存储器302的物理地址被指示为第二物理页地址。
要注意,数据标志类似于第一实施方式,并指示有效数据是否被写入非易失性存储器301和302的对应逻辑地址。
[历史信息管理表222的配置]
图15和16例示本技术的第二实施方式中的历史信息管理表222的配置示例。尽管在第一实施方式中,历史信息被保持在单个非易失性存储器300中,但在本第二实施方式中,历史信息被保持在两个非易失性存储器301和302中。在图15中,按照与非易失性存储器301的每一第一物理页地址的关联关系,来保持非易失性存储器301的状态和向非易失性存储器301的写处理的历史信息。在图16中,按照与非易失性存储器302的每一第二物理页地址的关联关系,来保持非易失性存储器302的状态和向非易失性存储器302的写处理的历史信息。
历史信息管理表222中保持的非易失性存储器301或302的状态和写处理的历史信息的条目类似于以上结合第一实施方式描述的条目。
[信息处理系统的操作]
尽管本第二实施方式与第一实施方式的不同在于,其包括如上所述的两个非易失性存储器301和302,但除此之外,其类似于第一实施方式。因此,除了执行两个非易失性存储器301和302的处理之外,第二实施方式中的操作类似于第一实施方式。具体地,图7、8、10和11的处理过程类似于第一实施方式中的处理过程。
图17例示本技术的第二实施方式中的存储控制部200的逻辑页写处理(即,图17的步骤S940的处理)的处理过程示例。参照图17,首先在步骤S944,存储控制部200指示非易失性存储器301执行向在步骤S933处确定为处理对象的逻辑页的写处理。于是,处理器210搜索非易失性存储器301以选择满足所需条件的物理页地址。
然后,当作为写处理的结果从非易失性存储器301返回状态时,处理器210基于步骤S945处的状态,来更新历史信息管理表222。更新处理的内容类似于第一实施方式。
处理器210在其更新历史信息管理表222之后,将历史信息管理表222记录到非易失性存储器300中。
在步骤S946,如果状态中包括的验证结果指示验证成功,即,如果在步骤S946处的判断为是,则确定向非易失性存储器301的写处理正常结束,并且处理前进到向非易失性存储器302的写处理。另一方面,在步骤S946,如果验证结果指示验证失败,即,如果在步骤S946处的判断为否,则处理返回到步骤S944,处理器210指示非易失性存储器301执行写处理。
如果向非易失性存储器301的写处理正常结束,则在步骤S947,存储控制部200指示非易失性存储器302执行向在步骤S933处确定为处理对象的逻辑页的写处理。于是,处理器210搜索非易失性存储器302以选择满足所需条件的物理页地址。
然后,如果从非易失性存储器302返回状态作为写处理的结果,则处理器210在步骤S948处基于该状态来更新历史信息管理表222。更新处理的内容类似于第一实施方式。
处理器210在其更新历史信息管理表222之后,将历史信息管理表222记录到非易失性存储器300中。
在步骤S949,如果状态中包括的验证结果指示验证成功,即,如果在步骤S949处的判断为是,则处理器210确定写处理正常完成,并结束逻辑页的写处理。另一方面,在步骤S949,如果验证结果指示验证失败,即,如果在步骤S949处的判断为否,则处理返回到步骤S947,处理器210指示非易失性存储器302执行写处理。
尽管在第一实施方式中,在图9中选择非易失性存储器300的物理页,但在本第二实施方式中,从非易失性存储器301和302两者选择物理页。
在图9的步骤S952,处理器210参照历史信息管理表222,以搜索在执行关于物理页的编程操作时、已通过验证检测到较少差错数的物理页,作为具有高可靠性的物理页。在图15例示的示例中,如果非易失性存储器301的状态为“空白”的物理页地址仅为“k+1”、“k+2”和“k+3”,则处理器210选择物理页地址“k+2”。另外,在图16例示的示例中,如果非易失性存储器302的状态为“空白”的物理页地址仅为“j”、“j+2”和“j+3”,则处理器210选择物理页地址“j+2”。
在步骤S955,处理器210参照历史信息管理表222,以搜索其中执行关于物理页的编程操作时验证执行次数较少的物理页,作为允许高速数据写入的物理页。在图15例示的示例中,如果非易失性存储器301的状态为“空白”的物理页地址仅为“k+1”、“k+2”和“k+3”,则处理器210选择物理页地址“k+1”。另外,在图16例示的示例中,如果非易失性存储器302的状态为“空白”的物理页地址仅为“j”、“j+2”和“j+3”,则处理器210选择物理页地址“j”。
在步骤S957,处理器210参照历史信息管理表222,以搜索在步骤S952或S955的搜索中不大可能命中的物理页。在图15例示的示例中,选择非易失性存储器301的物理页地址为“k+3”的物理页。另外,处理器210搜索状态为“空白”并且“一个周期之前的编程操作时的检测差错数”满足根据下面给出的表达式计算的值X3的物理页,作为要与选择的物理页组合使用的非易失性存储器302的物理页。于是,从物理页地址“0x00000000”开始连续执行搜索。如果未命中搜索结果,则值X3一个接一个递减,直到命中搜索结果。
X3=4–(非易失性存储器301的页的)“一个周期之前的编程操作时的检测差错数”
以上表达式中的“4”是ECC处理部分240的差错校正能力的比特数。在图15例示的示例中,由于从非易失性存储器301选择具有物理页地址“k+3”的物理页,所以值X3为“1”。另外,在图16例示的示例中,由于其中物理页地址为“j”的条目指示“1”,所以处理器210选择物理页地址“j”。
按照此方式,利用本技术的第二实施方式,通过以分布方式在多个非易失性存储器301和302中存储物理页,能更精确地选择最佳物理页。
<3、第三实施方式>
在上述第一和第二实施方式中,通过验证利用检测差错数来选择页,并且将容许差错数指定为用于写处理的参数。在本第三实施方式中,利用其中将ReRAM(非挥发性阻抗存储器)假设非易失性存储器、并且当向单元施加脉冲时的电压电平被利用来选择页并被指定为写处理的参数的示例。
当向ReRAM的存储器阵列执行数据写处理时,向存储单元施加脉冲以改变存储单元的电阻值,从而向存储单元写入数据。作为施加脉冲的技术,已提出了DSIP(编程直接感测,Direct Sense In Programming),其中逐步提高要施加到在重复写处理和数据验证的循环中呈现验证差错的单元的脉冲的电压。此DSIP例如公开于Wataru Otsuka et al,"A4Mb Conductive-Bridge Resistive Memory with 2.3 GB/s Read-Throughput and 216MB/s Program-Throughput," ISSCC, pp.20-21, 2011年2月。已知作为存储单元的性质,尽管可能通过施加高电压在短时间内改变单元的电阻值,但存储单元的数据保持特性劣化。DSIP是考虑到同一物理页中由于单元制造过程出现的漂移以及数据写入频率导致的漂移、而使得可能维持存储单元的保持特性的技术。具体地,通过低电压脉冲向能通过低电压改变其电阻的单元写入数据,但是通过高电压向需要高电压脉冲以改变其电阻值的单元写入数据。
信息处理系统的配置和存储控制部200的功能配置类似于第一或第二第二实施方式,并因此,这里省略它们的描述以避免冗余。非易失性存储器的数量可以为一,如第一实施方式的情况,或者可以为多个,如第二实施方式的情况。下面,假设与第二实施方式类似地提供两个非易失性存储器301和302。
[非易失性存储器的配置]
图18示出本技术的第三实施方式中的非易失性存储器301或302的配置示例。参照图18,本第三实施方式中的非易失性存储器301或302包括电压电平计数器380,而不包括在第一或第二实施方式中的非易失性存储器中提供的检测差错数计数器360和容许差错数寄存器370。在通过DSIP施加脉冲时,电压电平计数器380保持电压电平。
在编程操作或擦除操作时,控制部分390向指定的物理页地址处的单元施加通过DSIP的脉冲。这里,假设脉冲最多施加四次,并且要施加四次的脉冲被设置为从最低电压电平开始顺序具有电压电平1至4。作为当存储控制部200执行编程操作或擦除操作时的参数,可指定电平1至4之一。控制部分390将指定为参数的电压电平保持到电压电平计数器380。控制部分390使用电压电平计数器380中保持的电压电平作为执行编程操作或擦除操作的起始电平,通过DSIP施加脉冲。
[非易失性存储器中的数据配置]
本技术的第三实施方式中的非易失性存储器301和302中存储的数据的配置类似于以上参照图13描述的第二实施方式。
[地址转换表的配置]
本技术的第三实施方式中的地址转换表221的配置类似于以上参照图14描述的第二实施方式中的地址转换表221。
[历史信息管理表222的配置]
图19和20例示本技术的第三实施方式中的历史信息管理表222的配置示例。在图19中,按照与非易失性存储器301中的第一物理页地址的关联关系,来保持非易失性存储器301的状态和向非易失性存储器301的写处理的历史信息。在图20中,按照与非易失性存储器302中的第二物理页地址的关联关系,来保持非易失性存储器302的状态和向非易失性存储器302的写处理的历史信息。
尽管在上述第一和第二实施方式中,将验证中的检测差错数和验证执行次数保持为写处理的历史信息,但在本第三实施方式中,保持施加脉冲电压起始电平和验证执行类型数量。从非易失性存储器301或302获得历史信息内的验证执行次数,作为状态。另一方面,指定施加脉冲电压的起始电平作为非易失性存储器301或302的参数。
[信息处理系统的操作]
本技术的第三实施方式的信息处理系统的操作类似于上述第一或第二实施方式。换句话说,存储控制部200的写命令处理过程类似于以上参照图7所描述的过程。
另外,存储控制部200的逻辑页写处理过程类似于以上参照图17描述的过程。然而,当在步骤S945更新历史信息管理表222时,程序的“起始电平”被更新为当执行编程操作时指定为参数的起始电平的值。类似地,擦除的“起始电平”被更新为执行擦除操作时指定为参数的起始电平的值。另外,当在步骤S948更新历史信息管理表222时,也执行类似操作。
另外,存储控制部200的写处理过程类似于以上参照图9描述的过程。然而,当在步骤S952执行允许高可靠性数据写入的物理页的搜索时,针对物理页,搜索编程操作时的起始电平较低并且验证执行次数较少的物理页,作为具有高可靠性的物理页。对历史信息执行加权,使得重要性被附加到近期执行结果,从而它们对搜索结果具有较高影响。下面利用图19和20中例示的示例给出描述。
处理器210从物理页地址“0x00000000”开始顺序搜索物理页,以搜索其中状态为“空白”并且根据下面给出的表达式计算的值X4最低的物理页:
X4={(一个周期之前的编程操作时的验证执行次数)+(一个周期之前的编程操作时的起始电平)}×3
+{(两个周期之前的编程操作时的验证执行次数)+(两个周期之前的编程操作时的起始电平)}×2
+{(三个周期之前的编程操作时的验证执行次数)+(三个周期之前的编程操作时的起始电平)}×1。
在图19例示的示例中,当状态为“空白”的物理页地址仅为“k+1”、“k+2”和“k+3”时,处理器210选择物理页地址“k+2”。另外,在图20例示的示例中,如果非易失性存储器302中状态为“空白”的物理页地址仅为“j”、“j+2”和“j+3”,则处理器210选择物理页地址“j+2”。
当在步骤S953执行高可靠性的数据写入操作时,将起始电平“1”指定为参数。
另一方面,当在步骤S955执行允许高速数据写入的物理页的搜索时,对于物理页执行编程操作执行时验证执行次数较少的物理页的搜索,作为允许高速数据写入的物理页。对历史信息执行加权,使得重要性被附加到近期执行结果,从而它们对搜索结果具有较高影响。处理器210从物理页地址“0x00000000”开始顺序搜索物理页,以搜索其中状态为“空白”并且上述值X2最低的物理页。在图19例示的示例中,如果非易失性存储器301中状态为“空白”的物理页地址仅为“k+1”、“k+2”和“k+3”,则处理器210选择物理页地址“k+1”。另外,在图20例示的示例中,如果非易失性存储器302中状态为“空白”的物理页地址仅为“j”、“j+2”和“j+3”,则处理器210选择物理页地址“j”。
另外,当在步骤S956执行高速性能的数据写入操作时,将根据下面给出的表达式计算的值X5指定为作为参数的起始电平。该值X5指示基于一个周期之前的执行结果而预期该验证执行次数为一的起始电平。
X5=(一个周期之前的编程操作时的验证执行次数)
+(一个周期之前的编程操作时的起始电平)–1
另外,在步骤S957,搜索在步骤S952或S955的搜索中不大可能命中的物理页。处理器210从物理页地址“0x00000000”开始顺序搜索历史信息管理表222,以搜索其中状态为“空白”并且“一个周期之前的编程操作时的验证执行次数”为4的物理页。如果未搜索出相关物理页,则处理器210顺序搜索“两个周期之前的编程操作时的验证执行次数”为“4”的物理页和“三个周期之前的编程操作时的验证执行次数”为“4”的物理页。如果这些搜索仍然导致失败,则顺序搜索“一个周期之前的编程操作时的验证执行次数”为“3”的物理页、搜索“两个周期之前的编程操作时的验证执行次数”为“3”的物理页和“三个周期之前的编程操作时的验证执行次数”为“3”的物理页。在图19例示的示例中,选择非易失性存储器301中物理页地址为“k+3”的物理页。另外,在图20例示的示例中,如果非易失性存储器302中状态为“空白”的物理页地址仅为“j”、“j+2”和“j+3”,则处理器210选择物理页地址“j+2”。
另外,当在步骤S958执行数据写入操作时,将起始电平“1”指定为在不需要高可靠性和高速性能的情况下的参数。
另外,当在步骤S959执行擦除操作时,根据紧靠在擦除操作之前的编程操作,按照以下条件指定要由处理器210指定的“起始电平”。具体地,在步骤S953处的编程操作之后的擦除操作中,将“起始电平”指定为“1”。在步骤S956处的编程操作之后的擦除操作中,将根据下面给出的表达式计算的值X6指定为起始电平。该值X6指示预期擦除操作后的验证执行次数在短时间内结束的起始电平。
X6=(一个周期之前的擦除操作时的验证执行次数)
+(一个周期之前的擦除操作时的起始电平)–1
在步骤S958处的编程操作之后的执行操作中,将“起始电平”指定为“1”。
图21例示本公开的第三实施方式中的非易失性存储器300的编程操作(即,步骤S953、S956和S958处的操作)的处理过程示例。参照图21,当控制接口309从存储控制部200接收到编程操作指令时,非易失性存储器300开始编程操作。在开始编程操作时,验证次数计数器340中保持的数字的初始化状态为“0”。
在步骤S961,将通过控制接口309接收的写数据保持到数据缓冲器320。另外,在步骤S962,将通过控制接口309接收的施加脉冲电压的起始电平作为参数保持到电压电平计数器380中。
然后,将通过控制接口309接收的物理地址传送到控制部分390,并将电压电平计数器380中保持的起始电平的脉冲施加到存储器阵列310的指定的物理地址。因此,在步骤S963,将数据缓冲器320中保持的写数据写入存储器阵列310的指定地址。为了验证写数据是否已确实写入,在步骤S964,验证部分330从物理地址读出数据,并将其与数据缓冲器320中保持的写数据进行比较。另外,验证次数计数器340的验证次数递增一。
在步骤S965,如果验证成功判断部分350判断验证部分330的验证结果并且未发现检测差错,即,如果在步骤S965处的判断为否,则处理正常结束。在这种情况下,在步骤S966,将验证次数计数器340中保持的验证次数作为状态传送到存储控制部200。
另一方面,如果在步骤S965发现检测差错,即,如果在步骤S965处的判断为是,则在步骤S967,在步骤S956判断此时施加的电压电平是否是指示最高电平的“4”。在步骤S967,如果施加的电压不是最高电平,即,如果在步骤S967处的判断为否,则在步骤S969,将电压电平计数器380的电平设置为高一级的电平,并然后重复从步骤S963开始的步骤的处理过程。另一方面,在步骤S967,如果施加的电压是最高电平,即,如果在步骤S967处的判断为是,则处理异常结束。在这种情况下,在步骤S968,将验证次数计数器340中保持的验证次数作为状态传送到存储控制部200。
图22例示本技术的第三实施方式中的非易失性存储器300的擦除操作(即,图9中的步骤S959的操作)的处理过程示例。参照图22,当通过控制接口309接收到来自存储控制部200的擦除操作指令时,非易失性存储器300开始擦除操作。开始擦除操作时,验证次数计数器340中保持的数字的初始化状态为“0”。
在步骤S972,将通过控制接口309作为参数接收的施加脉冲电压的起始电平保持到电压电平计数器380。
然后,在步骤S973,将通过控制接口309接收的物理地址传送到控制部分390,并且将电压电平计数器380中保持的起始电平的脉冲施加到存储器阵列310的指定的物理地址。因此,执行擦除操作。为了验证擦除操作是否已确实执行,在步骤S974,验证部分330从物理页地址读出数据,并将其与预期为擦除后的数据的数据(例如,全部比特均为“1”的数据)进行比较。另外,验证次数计数器340的验证次数递增一。
在步骤S975,如果验证成功判断部分350判断验证部分330的验证结果并且未发现检测差错,即,如果在步骤S975处的判断为否,则处理正常结束。在这种情况下,在步骤S976,将验证次数计数器340中保持的验证次数作为状态传送到存储控制部200。
另一方面,如果在步骤S975判断发现检测差错,即,如果在步骤S975处的判断为是,则在步骤S977判断此时施加的电压电平是否是指示最高电平的“4”。在步骤S977,如果施加的电压电平不是最高电平,即,如果在步骤S977处的判断为否,则在步骤S979,将电压电平计数器380的电平设置为高一级的电平,并然后重复从步骤S973开始的步骤的处理过程。另一方面,在步骤S977,如果施加的电压电平是最高电平,即,如果在步骤S977处的判断为是,则处理异常结束。在这种情况下,在步骤S978,将验证次数计数器340中保持的验证次数作为状态传送到存储控制部200。
按照此方式,利用本公开的第三实施方式,可基于包括ReRAM的施加电压的起始电平的历史信息,来选择写处理的对象的物理页,以满足高可靠性或高速性能的条件。另外,当施加电压的起始电平被指定为写处理的参数时,可使用编程操作和擦除时的验证中的历史信息。例如,可指定预期擦除操作后的验证执行次数能在短时间内结束的起始电平,作为在需要编程操作中的高速性能情况下的参数。
要注意,上述实施方式仅指示执行本技术的示例,并且结合实施方式描述的各项和权利要求书中描述的特征具有彼此对应关系。类似地,分别用相同名称表示的权利要求书中描述的特征和本技术的实施方式中的各项具有彼此对应关系。然而,本技术不限于这些实施方式,而是可在不脱离本技术的主题的情况下,对实施方式应用各种修改或改变来执行。
另外,这些实施方式描述中的上述处理过程可被理解为具有过程中的任意过程的方法,或可被理解为使计算机执行过程的程序或存储该程序的记录介质。例如,可使用CD(光盘)、MD(迷你盘)、DVD(数字多功能盘)、存储卡或蓝光盘(Blu-ray Disc:注册商标),作为记录介质。
要注意,本技术可采取下述配置。
(1)一种存储控制设备,包括:
状态获取部分,配置为从存储器获取包括向所述存储器写入之后的验证执行次数的状态;
历史信息保持部分,配置为按照与所述存储器的每一预定区域的关联关系,将所述状态的历史保持为历史信息;和
区域选择部分,配置为当在所述存储器中要使用新的区域时,根据历史信息选择满足条件的区域。
(2)根据上述(1)的存储控制设备,其中在需要高速性能作为所述条件的情况下,所述区域选择部分基于历史信息中的验证执行次数来选择区域。
(3)根据上述(1)或(2)的存储控制设备,其中在需要高速性能作为所述条件的情况下,所述区域选择部分选择历史信息中的验证执行次数较少的区域。
(4)根据上述(1)至(3)中的任一项的存储控制设备,其中
所述状态获取部分接收在验证中检测到的差错数作为所述状态,
在需要高可靠性作为所述条件的情况下,所述区域选择部分基于历史信息中的检测到的差错数来选择区域。
(5)根据上述(4)的存储控制设备,其中在需要高可靠性作为所述条件的情况下,所述区域选择部分选择历史信息中的检测到的差错数较少的区域。
(6)根据上述(1)至(5)中的任一项的存储控制设备,还包括:
参数指定部分,配置为根据要新执行向所述存储器的写入时的历史信息,来指定参数。
(7)根据上述(6)的存储控制设备,其中所述参数指定部分将写入之后的验证中的容许差错数指定为参数。
(8)根据上述(7)的存储控制设备,其中
所述状态获取部分接收在验证中检测到的差错数作为所述状态,和
所述参数指定部分根据历史信息中包括的检测到的差错数,将容许差错数指定为参数。
(9)根据上述(6)的存储控制设备,其中所述参数指定部分将写入时要施加到所述存储器中的脉冲的电压电平的初始值指定为参数。
(10)根据上述(9)的存储控制设备,其中
所述历史信息保持部分将指定为参数的电压电平的初始值保持为历史信息,和
所述参数指定部分根据历史信息中包括的电压电平的初始值,将新写入时要施加到所述存储器中的脉冲的电压电平的初始值指定为参数。
(11)一种存储设备,包括:
存储器阵列;
验证部分,配置为向所述存储器阵列写入之后执行验证;
验证次数计数器,配置为对验证执行次数进行计数;
状态获取部分,配置为获取包括所述验证执行次数的状态;
历史信息保持部分,配置为按照与所述存储器阵列的每一预定区域的关联关系,将所述状态的历史保持为历史信息;和
区域选择部分,配置为当在所述存储器阵列中要使用新的区域时,根据历史信息选择满足条件的区域。
(12)根据上述(11)的存储设备,还包括:
检测差错数计数器,配置为对在验证中检测到的差错数进行计数,其中
所述状态获取部分接收检测到的差错数作为所述状态,和
在需要高可靠性作为所述条件的情况下,所述区域选择部分选择历史信息中的检测到的差错数较少的区域。
(13)一种信息处理系统,包括:
存储器阵列;
验证部分,配置为向所述存储器阵列写入之后执行验证;
验证次数计数器,配置为对验证执行次数进行计数;
状态获取部分,配置为获取包括所述验证执行次数的状态;
历史信息保持部分,配置为按照与所述存储器阵列的每一预定区域的关联关系,将所述状态的历史保持为历史信息;
区域选择部分,配置为当在所述存储器阵列中要使用新的区域时,根据历史信息选择满足条件的区域;和
主机,配置为向所述存储器阵列发出写命令。
(14)一种存储控制方法,包括:
从存储器获取包括向所述存储器写入之后的验证执行次数的状态;
按照与所述存储器的每一预定区域的关联关系,将所述状态的历史保持为历史信息;和
当在所述存储器中要使用新的区域时,根据历史信息选择满足条件的区域。
本公开包含与2012年4月17日在日本专利局提交的日本优先权专利申请JP2012-093521中公开的内容有关的主题,在此通过引用并入该申请的全部内容。
Claims (12)
1.一种存储控制设备,包括:
状态获取部分,配置为从存储器获取包括向所述存储器写入之后的验证执行次数的状态;
历史信息保持部分,配置为按照与所述存储器的每一预定区域的关联关系将所述状态的历史保持为历史信息;和
区域选择部分,配置为当在所述存储器中要使用新的区域时,根据历史信息来选择满足条件的区域,其中
所述状态获取部分接收在验证中检测到的差错数作为所述状态,
在需要高可靠性作为所述条件的情况下,所述区域选择部分基于历史信息中的检测到的差错数来选择区域。
2.根据权利要求1的存储控制设备,其中在需要高可靠性作为所述条件的情况下,所述区域选择部分选择历史信息中的检测到的差错数较少的区域。
3.根据权利要求1的存储控制设备,其中在需要高速性能作为所述条件的情况下,所述区域选择部分基于历史信息中的验证执行次数来选择区域。
4.根据权利要求3的存储控制设备,其中在需要高速性能作为所述条件的情况下,所述区域选择部分选择历史信息中的验证执行次数较少的区域。
5.根据权利要求1的存储控制设备,还包括:
参数指定部分,配置为根据要新执行向所述存储器的写入时的历史信息来指定参数。
6.根据权利要求5的存储控制设备,其中所述参数指定部分将写入之后的验证中的容许差错数指定为该参数。
7.根据权利要求6的存储控制设备,其中
所述状态获取部分接收在验证中检测到的差错数作为所述状态,
所述参数指定部分根据历史信息中包括的检测到的差错数将容许差错数指定为该参数。
8.根据权利要求5的存储控制设备,其中所述参数指定部分将写入时要施加到所述存储器中的脉冲的电压电平的初始值指定为该参数。
9.根据权利要求8的存储控制设备,其中
所述历史信息保持部分将指定为该参数的电压电平的初始值保持为历史信息,
所述参数指定部分根据历史信息中包括的电压电平的初始值,将新写入时要施加到所述存储器中的脉冲的电压电平的初始值指定为该参数。
10.一种存储设备,包括:
存储器阵列;
验证部分,配置为向所述存储器阵列写入之后执行验证;
验证次数计数器,配置为对验证执行次数进行计数;
状态获取部分,配置为获取包括所述验证执行次数的状态;
历史信息保持部分,配置为按照与所述存储器阵列的每一预定区域的关联关系将所述状态的历史保持为历史信息;
区域选择部分,配置为当在所述存储器阵列中要使用新的区域时,根据历史信息来选择满足条件的区域,和
检测差错数计数器,配置为对在验证中检测到的差错数进行计数,其中
所述状态获取部分接收检测到的差错数作为所述状态,其中
在需要高可靠性作为所述条件的情况下,所述区域选择部分选择历史信息中的检测到的差错数较少的区域。
11.一种信息处理系统,包括:
存储器阵列;
验证部分,配置为向所述存储器阵列写入之后执行验证;
验证次数计数器,配置为对验证执行次数进行计数;
状态获取部分,配置为获取包括所述验证执行次数的状态;
历史信息保持部分,配置为按照与所述存储器阵列的每一预定区域的关联关系将所述状态的历史保持为历史信息;
区域选择部分,配置为当在所述存储器阵列中要使用新的区域时,根据历史信息来选择满足条件的区域;和
主机,配置为向所述存储器阵列发出写命令,其中
所述状态获取部分接收在验证中检测到的差错数作为所述状态,
在需要高可靠性作为所述条件的情况下,所述区域选择部分基于历史信息中的检测到的差错数来选择区域。
12.一种存储控制方法,包括:
从存储器获取包括向所述存储器写入之后的验证执行次数的状态;
按照与所述存储器的每一预定区域的关联关系将所述状态的历史保持为历史信息;和
当在所述存储器中要使用新的区域时,根据历史信息来选择满足条件的区域,其中
所述存储器获取在验证中检测到的差错数作为所述状态,
在需要高可靠性作为所述条件的情况下,基于历史信息中的检测到的差错数来选择区域。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JPJP2012-093521 | 2012-04-17 | ||
JP2012093521A JP5929456B2 (ja) | 2012-04-17 | 2012-04-17 | 記憶制御装置、記憶装置、情報処理システム、および、それらにおける処理方法 |
JP2012-093521 | 2012-04-17 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103377140A CN103377140A (zh) | 2013-10-30 |
CN103377140B true CN103377140B (zh) | 2018-02-16 |
Family
ID=49326191
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310122226.4A Expired - Fee Related CN103377140B (zh) | 2012-04-17 | 2013-04-10 | 存储控制设备、存储设备、信息处理系统和处理方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9170893B2 (zh) |
JP (1) | JP5929456B2 (zh) |
CN (1) | CN103377140B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015135603A (ja) * | 2014-01-17 | 2015-07-27 | 株式会社東芝 | ストレージ装置及びデータを書き込む記憶領域を選択する方法 |
US9922718B2 (en) * | 2014-05-22 | 2018-03-20 | Seagate Technology Llc | Flash command that reports a count of cell program failures |
JP6577302B2 (ja) | 2015-08-28 | 2019-09-18 | 東芝メモリ株式会社 | メモリシステム |
US10552069B2 (en) | 2017-07-07 | 2020-02-04 | Sap Se | Caching the topology of a distributed data storage system |
US11133831B2 (en) * | 2019-10-29 | 2021-09-28 | Seagate Technology Llc | Code rate adaptation |
US11132244B2 (en) | 2019-11-14 | 2021-09-28 | Seagate Technology Llc | Block health checking |
TWI758944B (zh) * | 2020-06-23 | 2022-03-21 | 慧榮科技股份有限公司 | 資料處理方法及對應之資料儲存裝置 |
CN113835617A (zh) | 2020-06-23 | 2021-12-24 | 慧荣科技股份有限公司 | 数据处理方法及对应的数据储存装置 |
CN113094294B (zh) * | 2021-04-12 | 2024-02-13 | 深圳忆联信息系统有限公司 | Ssd异常掉电处理方法、装置、计算机设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101752000A (zh) * | 2008-10-21 | 2010-06-23 | 力晶半导体股份有限公司 | 非易失性半导体存储装置及其写入方法 |
CN101800077A (zh) * | 2009-02-11 | 2010-08-11 | 北京芯技佳易微电子科技有限公司 | 一种对闪存进行数据编程的方法和装置 |
Family Cites Families (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3178909B2 (ja) * | 1992-01-10 | 2001-06-25 | 株式会社東芝 | 半導体メモリ装置 |
JP3178912B2 (ja) | 1992-10-14 | 2001-06-25 | 株式会社東芝 | 半導体メモリチップ |
US6038679A (en) * | 1994-11-30 | 2000-03-14 | International Business Machines Corporation | Adaptive data recovery method and apparatus |
JP3941149B2 (ja) | 1996-12-03 | 2007-07-04 | ソニー株式会社 | 半導体不揮発性記憶装置 |
US6742137B1 (en) * | 1999-08-17 | 2004-05-25 | Adaptec, Inc. | Object oriented fault tolerance |
AU7313600A (en) * | 1999-09-17 | 2001-04-24 | Hitachi Limited | Storage where the number of error corrections is recorded |
JP2001134495A (ja) * | 1999-11-05 | 2001-05-18 | Sony Corp | マルチメディア情報の読み出し方法、マルチメディア情報の読み出し装置、記憶媒体ドライブ装置、伝送媒体、情報ストリーム、電子機器 |
JP3735498B2 (ja) * | 1999-11-09 | 2006-01-18 | 株式会社東芝 | 情報記録媒体、情報記録装置、情報記録方法 |
US6426893B1 (en) * | 2000-02-17 | 2002-07-30 | Sandisk Corporation | Flash eeprom system with simultaneous multiple data sector programming and storage of physical block characteristics in other designated blocks |
JP2002048783A (ja) | 2000-08-01 | 2002-02-15 | Ando Corp | フレッシュコンクリートの単位水量推定方法 |
US7082494B1 (en) * | 2002-12-24 | 2006-07-25 | Western Digital Technologies, Inc. | Disk drive executing a preemptive multitasking operating system comprising tasks of varying priority |
JP4073799B2 (ja) * | 2003-02-07 | 2008-04-09 | 株式会社ルネサステクノロジ | メモリシステム |
US8391070B2 (en) * | 2008-12-02 | 2013-03-05 | Spansion Llc | Moving program verify level for programming of memory |
US7325157B2 (en) * | 2003-11-03 | 2008-01-29 | Samsung Electronics Co., Ltd | Magnetic memory devices having selective error encoding capability based on fault probabilities |
US7536625B2 (en) * | 2004-06-30 | 2009-05-19 | Seagate Technology Llc | Maintaining data integrity in a data storage system |
JP2007122831A (ja) * | 2005-10-31 | 2007-05-17 | Fujitsu Ltd | 記憶装置、制御方法及びプログラム |
KR20090078999A (ko) * | 2008-01-16 | 2009-07-21 | 삼성전자주식회사 | 외란 상태에 따른 적응적 기록 방법 및 이를 이용한 저장장치 |
JP2010040144A (ja) * | 2008-08-07 | 2010-02-18 | Toshiba Corp | 不揮発性半導体記憶システム |
US8195899B2 (en) * | 2008-09-26 | 2012-06-05 | Micron Technology, Inc. | Memory cell operation |
US8045375B2 (en) * | 2008-10-24 | 2011-10-25 | Sandisk Technologies Inc. | Programming non-volatile memory with high resolution variable initial programming pulse |
US8026544B2 (en) * | 2009-03-30 | 2011-09-27 | Sandisk Technologies Inc. | Fabricating and operating a memory array having a multi-level cell region and a single-level cell region |
JP2011059907A (ja) * | 2009-09-09 | 2011-03-24 | Nec Corp | 端末装置及びそれに用いる不揮発メモリ管理方法並びにそのプログラム |
JP2011070346A (ja) * | 2009-09-25 | 2011-04-07 | Toshiba Corp | メモリシステム |
KR101596827B1 (ko) * | 2009-10-14 | 2016-02-23 | 삼성전자주식회사 | 불휘발성 메모리 장치, 그것의 동작 방법, 그리고 그것을 포함하는 메모리 시스템 |
US8819503B2 (en) * | 2010-07-02 | 2014-08-26 | Stec, Inc. | Apparatus and method for determining an operating condition of a memory cell based on cycle information |
US8990538B2 (en) * | 2010-11-05 | 2015-03-24 | Microsoft Corporation | Managing memory with limited write cycles in heterogeneous memory systems |
US8451662B2 (en) * | 2011-03-03 | 2013-05-28 | Micron Technology, Inc. | Reading memory cell history during program operation for adaptive programming |
JP5364750B2 (ja) * | 2011-03-25 | 2013-12-11 | 株式会社東芝 | メモリシステム、及び不揮発性メモリデバイスの制御方法 |
-
2012
- 2012-04-17 JP JP2012093521A patent/JP5929456B2/ja not_active Expired - Fee Related
-
2013
- 2013-03-14 US US13/827,926 patent/US9170893B2/en not_active Expired - Fee Related
- 2013-04-10 CN CN201310122226.4A patent/CN103377140B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101752000A (zh) * | 2008-10-21 | 2010-06-23 | 力晶半导体股份有限公司 | 非易失性半导体存储装置及其写入方法 |
CN101800077A (zh) * | 2009-02-11 | 2010-08-11 | 北京芯技佳易微电子科技有限公司 | 一种对闪存进行数据编程的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
JP5929456B2 (ja) | 2016-06-08 |
US9170893B2 (en) | 2015-10-27 |
JP2013222315A (ja) | 2013-10-28 |
US20130275818A1 (en) | 2013-10-17 |
CN103377140A (zh) | 2013-10-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103377140B (zh) | 存储控制设备、存储设备、信息处理系统和处理方法 | |
CN103324443B (zh) | 存储控制装置、存储装置、信息处理系统及其处理方法 | |
CN103136067B (zh) | 存储控制器、存储设备、信息处理系统以及存储控制方法 | |
US8578242B1 (en) | Data storage device employing seed array for data path protection | |
US10656875B2 (en) | Method for re-reading page data | |
CN102414666B (zh) | 用于受管理的非易失性存储器的低等待时间读取操作 | |
TWI467591B (zh) | 於非揮發記憶體系統中損壞區塊隔離的方法及其相關非揮發記憶體器件 | |
CN106462500A (zh) | 用于执行损耗均衡操作的设备及方法 | |
CN103793335B (zh) | 存储控制设备、存储设备、信息处理系统及存储控制方法 | |
US8762810B2 (en) | Semiconductor recording device, control method of semiconductor recording device, and semiconductor recording system | |
JP6399523B2 (ja) | メモリ・デバイスの内容を保護するための方法およびメモリ・デバイス | |
CN110119244A (zh) | 存储器控制器及其操作方法 | |
US10353769B2 (en) | Recovering from addressing fault in a non-volatile memory | |
US9507710B2 (en) | Command execution using existing address information | |
EP2799998A1 (en) | Storage control device, storage device, information processing system, and processing methods in same | |
CN103377098B (zh) | 存储控制设备、存储器系统、信息处理系统和存储控制方法 | |
US8972650B2 (en) | Methods and systems for performing efficient page reads in a non-volatile memory | |
US20180321873A1 (en) | Memory system and operating method thereof | |
US9424176B2 (en) | Robust sector ID scheme for tracking dead sectors to automate search and copydown | |
US20160203065A1 (en) | Memory sparing on memory modules | |
JP2016053808A (ja) | 記憶制御装置、記憶装置、および、記憶制御方法 | |
JP2013130899A (ja) | 記憶制御装置、記憶装置、情報処理システム、および、それらにおける処理方法 | |
US10795589B2 (en) | Memory system and memory control method | |
CN111949198A (zh) | 一种坏块管理方法、装置和存储设备 | |
US10223195B2 (en) | Counter in a flash memory |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20180216 |