存储器控制设备、存储器设备、信息处理系统和处理方法
【专利摘要】提供了存储器控制设备、存储器设备、信息处理系统和存储器控制方法。该存储器控制设备包括:预读取处理部分,在存储单元阵列的预定数据区域中,在写入处理之前从要写入的数据区域读取预读取数据;转换确定部分,在选择性地允许预读取数据转变到要在写入处理中写入的写入数据的第一转换候选或者第二转换候选时,基于两个值中较大的一个产生用于选择任何一个候选的确定结果,该两个值中的一个是从第一值转变到第二值的位的数目且另一个是从第二值转变到第一值的位的数目;和转换控制部分,根据确定结果选择任何一个候选。
【专利说明】存储器控制设备、存储器设备、信息处理系统和处理方法
【技术领域】
[0001]本公开涉及存储器控制设备。更具体地说,本公开涉及用于非易失性存储器的存储器控制设备、存储器设备、信息处理系统;用于与其一起使用的处理方法和用于使得计算机执行该方法的程序。
【背景技术】
[0002]在信息处理系统中,DRAM (动态随机存取存储器)等用作工作存储器。DRAM通常是易失性存储器,一旦移去对该存储器的电源供应,则其存储的内容丢失。同时,近年来开始使用非易失性存储器(NVM)。非易失性存储器大致分类为两个种类:支持以大尺寸单位的数据的存取的闪存,和支持以小尺寸数据单位的高速随机存取的非易失性随机存取存储器(NVRAM:非易失性RAM)。闪存的代表性示例是NAND闪存。非易失性随机存取存储器的示例是 ReRAM (电阻 RAM)、PCRAM (相变 RAM)和 MRAM (磁阻 RAM)。
[0003]ReRAM是使用可变电阻元件的非易失性存储器。在写入数据到ReRAM之前,不必以块从其删除数据。与其中将浮置栅极中的电荷存储量的阈值存储为数据的NAND闪存等相反,ReRAM允许仅直接重写必要的页。可变电阻元件可以记录由高阻抗状态(HRS)和低阻抗状态(LRS)之一表示的一位信息。在比如ReRAM之类的非易失性存储器中,要写入的数据被预读取以与写入数据比较,使得仅必要的位可以在状态上进行转变。因为状态转变导致消耗电流,所以优选地应该最小化转变位的数目。出于该目的,已经提出了如果要重写的位的数目占多数,则反转写入数据的位以减小重写位的计数的半导体存储系统(例如,参见日本专利特开 N0.2009-230796)。
【发明内容】
[0004]根据上述现有技术,取决于要重写的位的数目是否占多数来控制是否反转写入数据。但是,对于比如ReRAM之类的非易失性存储器,在以下两种情况的每一个中关于消耗电流设置上限:一个是高阻抗状态转变到低阻抗状态,另一个是低阻抗状态转变到高阻抗状态。因此该限制可能使得仅考虑转变位的数目是不够的。
[0005]已经考虑上述情况作出本公开,且本公开通过考虑在状态转变时导致的消耗电流而提供用于控制存储器写入操作的新颖的布置。
[0006]根据本公开的一个实施例,提供了存储器控制设备,包括:预读取处理部分,配置为在对于每一位保持第一值或者第二值的存储单元阵列的预定数据区域中,在写入处理之前从要写入的数据区域读取预读取数据;转换确定部分,配置为使得在选择性地允许预读取数据转变为在写入处理中要写入的写入数据的第一转换候选或者第二转换候选时,转换确定部分基于两个值中较大的一个值产生用于选择第一转换候选或者第二转换候选中任何一个的确定结果,该两个值之一是在预读取数据到第一转换候选的转变时从第一值转变到第二值的位的数目,且两个值之另一个是在预读取数据到第一转换候选的转变时从第二值转变到第一值的位的数目;和转换控制部分,配置为根据确定结果选择第一转换候选或者第二转换候选的任何一个,同时输出指示已经选择了两个候选中的哪个的选择信息。该结构提供通过考虑以转换候选之一要导致的最差情况功耗而选择写入数据的输出转换候选之一的效果,且还提供输出指示所选择的转换候选的选择信息的效果。
[0007]根据本公开的另一实施例,提供了存储器控制设备,包括:预读取处理部分,配置为在对于每一位保持第一值或者第二值的存储单元阵列的预定数据区域中,在写入处理之前从要写入的数据区域读取预读取数据;转换确定部分,配置为通过两个值的比较而产生在写入处理中选择性地允许预读取数据转变为要写入的写入数据的第一转换候选或者第二转换候选中的任何一个的确定结果,比较的两个值之一是两个值中的较大的一个,该两个值中的一个是在预读取数据到第一转换候选的转变时从第一值转变到第二值的位的数目且另一个是从第二值转变到第一值的位的数目,且比较的两个值的另一个是两个值中的较大的一个,该两个值中的一个是预读取数据到第二转换候选的转变时从第一值转变到第二值的位的数目且另一个是从第二值转变到第一值的位的数目,以转变的位的数目是比较的两个数中较小的一个的方式进行第一转换候选或者第二转换候选的选择;和转换控制部分,配置为根据确定结果选择第一转换候选或者第二转换候选,同时输出指示已经选择了两个候选中的哪个的选择信息。该结构提供通过考虑以两个候选中的每个要导致的最差情况功耗而选择写入数据的第一和第二转换候选中的任何一个的效果,且还提供输出指示其功耗量是两个中较小的一个的所选择的转换候选的选择信息的效果。
[0008]优选地,该转换确定部分可以包括:检测器,配置为关于预读取数据、第一转换候选和第二转换候选,对于每一位检测从第一值到第二值或者从第二值到第一值的转变的组合;计数器,配置为计数对于每个组合检测到的位的数目;选择器,配置为关于第一转换候选和第二转换候选中的每个选择两个值中较大的一个,该两个值之一是从第一值转变到第二值的位的数目且另一个是从第二值转变到第一值的位的数目;和比较器,配置为比较关于第一转换候选和第二转换候选中的每个的所选择的转变位的数目,从而以使得转换位的数目是比较的两个数中较小的一个的方式选择第一转换候选或者第二转换候选作为确定结果。
[0009]优选地,该存储器控制设备可以进一步包括写入缓冲器,配置为保持写入数据和选择信息。该转换控制部分可以使得在写入缓冲器中保持的写入数据根据确定结果转换为第一转换候选或者第二转换候选,同时使得写入缓冲器保持指示写入数据转换到的两个候选中的任何一个的选择信息。
[0010]优选地,第一转换候选可以是通过关于写入缓冲器和关于预定值执行异或操作而获得的值,且第二转换候选可以是通过关于写入缓冲器和关于预定值的反转值执行异或操作而获得的值。
[0011]优选地,第一转换候选可以通过关于通过对写入缓冲器和对预定值执行异或操作而获得的值执行预定位平移操作或者预定位转置操作或者这些操作的组合而获取,且第二转换候选可以通过关于通过对写入缓冲器和对该预定值的反转值执行异或操作而获得的值执行预定位平移操作或者预定位转置操作或者这些操作的组合而获取。
[0012]优选地,第一转换候选可以是与在写入缓冲器中保持的值相同的值,且第二转换候选可以是在写入缓冲器中保持的值的反转值。
[0013]优选地,第一转换候选和第二转换候选均可以以如下方式确定:第一组两个值(其中一个是在预读取数据到第一转换候选的转变时从第一值转变到第二值的位的数目且另一个是从第二值转变到第一值的位的数目)中较大的一个或者第二组两个值(其中一个是在预读取数据到第二转换候选的转变时从第一值转变到第二值的位的数目且另一个是从第二值转变到第一值的位的数目)中的较大的一个变为写入数据的总位长度的一半或更少。
[0014]根据本公开的另外的实施例,提供了存储器控制设备,包括:预读取处理部分,配置为在对于每一位保持第一值或者第二值的存储单元阵列的预定数据区域中,在写入处理之前从要写入的数据区域读取预读取数据;转换确定部分,配置为使得在选择性地允许预读取数据转变为要在写入处理中写入的写入数据的第一转换候选或者第二转换候选时,转换确定部分将两个值中较大的一个与写入数据的总位长度的一半比较,从而产生确定结果,该两个值之一是在预读取数据到第一转换候选的转变时从第一值转变到第二值的位的数目且另一个是从第二值转变到第一值的位的数目,该确定结果用于如果比较的两个数的较大的转变位的数目小于写入数据的总位长度的一半,则选择第一转换候选,否则就选择第二转换候选;和转换控制部分,配置为根据确定结果选择第一转换候选或者第二转换候选,同时输出指示已经选择了两个候选中的哪个的选择信息。该结构提供通过考虑以每个候选要导致的最差情况功耗而选择写入数据的第一和第二转换候选的任何一个的效果,以使得所选择的候选的功耗小于其他候选的功耗的一半的方式进行该选择,该结构另外输出指示所选择的候选的选择信息。
[0015]根据本公开的又一实施例,提供了存储器设备,包括:存储单元阵列,配置为对于每一位保持第一值或者第二值;预读取处理部分,配置为在存储单元阵列的预定数据区域中,在写入处理之前从要写入的数据区域读取预读取数据;转换确定部分,配置为使得在选择性地允许预读取数据转变到要在写入处理中写入的写入数据的第一转换候选或者第二转换候选时,转换确定部分基于两个值中较大的一个产生用于选择第一转换候选或者第二转换候选的确定结果,该两个值中的一个是在预读取数据到第一转换候选的转变时从第一值转变到第二值的位的数目,且另一个是在预读取数据到第一转换候选的转变时从第二值转变到第一值的位的数目;和转换控制部分,配置为根据确定结果选择第一转换候选或者第二转换候选,同时输出指示已经选择了两个候选中的哪个的选择信息。该结构提供通过考虑以转换候选的任何一个要导致的最差情况功耗而选择写入数据的转换候选之一的效果,且还提供存储写入数据的效果。
[0016]优选地,存储单元阵列可以由可变电阻元件构成。
[0017]根据本公开的再一实施例,提供了信息处理系统,包括:存储单元阵列,配置为对于每一位保持第一值或者第二值的任何一个;预读取处理部分,配置为在存储单元阵列的预定数据区域中,在写入处理从要写入的数据区域读取预读取数据;转换确定部分,配置为使得在选择性地允许预读取数据转变到要在写入处理中写入的写入数据的第一转换候选或者第二转换候选时,该转换确定部分基于两个值中较大的一个产生用于选择第一转换候选或者第二转换候选的确定结果,该两个值中的一个是在预读取数据到第一转换候选的转变时从第一值转变到第二值的位的数目且另一个是在预读取数据到第一转换候选的转变时从第二值转变到第一值的位的数目;转换控制部分,配置为根据确定结果选择第一转换候选或者第二转换候选同时输出指示已经选择了两个候选中的哪个的选择信息;和主计算机,配置为向存储单元阵列发布读取命令或者写入命令。该结构提供通过当发布写入命令时考虑以任何一个候选要导致的最差情况功耗而选择写入数据的转换候选之一的效果,且还提供存储写入数据的效果。
[0018]根据本公开的又一实施例,提供了存储器控制方法,包括:在对于每一位保持第一值或者第二值的存储单元阵列的预定数据区域中,在写入处理之前从要写入的数据区域读取预读取数据;在选择性地允许预读取数据转变到要在写入处理中写入的写入数据的第一转换候选或者第二转换候选时,基于两个值中较大的一个产生用于选择第一转换候选或者第二转换候选的确定结果,该两个值中的一个是预读取数据到第一转换候选的转变时从第一值转变到第二值的位的数目且另一个是在预读取数据到第一转换候选的转变时从第二值转变到第一值的位的数目;和根据确定结果选择第一转换候选或者第二转换候选,同时输出指示已经选择了两个候选中的哪个的选择信息。
[0019]以上概述的本公开提供通过考虑在状态转换时要导致的消耗电流而控制存储器写入操作的有益效果。
【专利附图】
【附图说明】
[0020]图1是示出了具体表现本公开的信息处理系统的典型总体配置的图示;
[0021]图2是示出了本公开的第一实施例中的非易失性存储器的典型结构的图示;
[0022]图3是说明可变电阻元件的设置操作的图示;
[0023]图4是说明可变电阻元件的复位操作的图示;
[0024]图5是示出了实施例中的反转确定部分的典型结构的图示;
[0025]图6是示出了实施例的特定应用示例的图示;
[0026]图7是示出了第一实施例中非易失性存储器的典型写入过程的流程图;
[0027]图8是示出了实施例的反转确定处理的典型过程的前一半的流程图;
[0028]图9是示出了实施例的反转确定处理的典型过程的后一半的流程图;
[0029]图10是示出了第一实施例中非易失性存储器的典型读取过程的流程图;
[0030]图11是示出了本公开的第二实施例中存储器控制器的典型结构的图示;
[0031]图12是示出了第二实施例中非易失性存储器的典型结构的图示;
[0032]图13是示出了第二实施例中存储器控制器的典型写入过程的流程图;
[0033]图14是示出了第二实施例中存储器控制器的典型读取过程的流程图;
[0034]图15是示出了本公开的第三实施例中的非易失性存储器的典型结构的图示;
[0035]图16是示出了第三实施例中的转换确定部分的典型结构的图示;
[0036]图17是示出了第三实施例中的写入数据转换部分的典型结构的图示;
[0037]图18是示出了第三实施例中的读取数据转换部分的典型结构的图示;
[0038]图19是示出了如何在第三实施例的产生转换候选中典型地使用查询表的图示;
[0039]图20是汇总图19中指示的第一模式中要设置和复位的位的数目的图示;
[0040]图21是汇总图19中指示的第二模式中要设置和复位的位的数目的图示;
[0041]图22是示出了怎样对于第三实施例的反转转换典型地使用查询表的图示;
[0042]图23是示出了第三实施例中非易失性存储器的典型写入过程的流程图;
[0043]图24是示出了第三实施例的转换确定处理的典型过程的前一半的流程图;[0044]图25是示出了第三实施例的转换确定处理的典型过程的后一半的流程图;
[0045]图26是示出了第三实施例中非易失性存储器的典型读取过程的流程图;
[0046]图27是示出了第三实施例中的转换确定部分的变型的图示;和
[0047]图28是示出了第三实施例的转换确定处理的替代过程的流程图。
【具体实施方式】
[0048]以下描述其中实现本公开的某些实施例(以下称为实施例)。将以以下标题给出描述:
[0049]1.第一实施例(以非易失性存储器的反转控制的示例)
[0050]2.第二实施例(以存储器控制器的反转控制的示例)
[0051]3.第三实施例(以非易失性存储器的转换控制的示例)
[0052]〈1.第一实施例>
[0053][信息处理系统的配置]
[0054]图1是示出实施本公开的信息处理系统的典型总体配置的图示。该信息处理系统包括处理器110、DRAM120、非易失性存储器(NVM) 300和存储器控制器200。该非易失性存储器300和存储器控制器200构成存储器模块400。该存储器模块400是所附权利要求中描述的存储器设备的示例。处理器110是所附权利要求中描述的主计算机的示例。
[0055]处理器110通过执行各种程序来执行信息处理。使用DRAM120中的存储区作为工作区,处理器110在执行程序时加载或存储数据到工作区或者从工作区加载或存储数据。此外,处理器Iio经由存储器控制器200存取NVM300中存储的数据项。
[0056]DRAMl20是用作处理器110的主存储装置的易失性存储器。该DRAM120存储处理器110执行程序所需的数据。
[0057]该非易失性存储器300用作处理器110的辅助存储装置。在存储器控制器200的控制下存取非易失性存储器300。非易失性存储器300也可以由闪存或者非易失性随机存取存储器(NVRAM)构成。该非易失性存储器300可以应用于存储和下载(store-and-download, SnD)模型或者应用于就地执行(execute-1n-plane, XIP)模型。在SnD模型中,由处理器110经由DRAM120存取非易失性存储器300中的数据。就是说,将非易失性存储器300中的数据临时转移到DRAM120并使得在该存储空间中可存取。另一方面,在XIP模型中,在该存储空间中,从处理器110可直接存取非易失性存储器300中存储的数据。在XIP模型的情况下,可以通过使得非易失性存储器300起DRAM120的作用来去除 DRAMl20。
[0058]设计存储器控制器200以控制非易失性存储器300,将其与处理器110连接。存储器控制器200具有用于将数据转移到非易失性存储器300和自非易失性存储器300转移的数据缓冲器。数据缓冲器也可以实现为存储器控制器200的外部存储装置或者实现为其内部存储器。顺便提及,存储器控制器200是所附权利要求中描述的存储器控制设备的示例。
[0059][非易失性存储器的结构]
[0060]图2是示出了本公开的第一实施例中非易失性存储器300的典型结构的图示。非易失性存储器300包括存储单元阵列310、控制部分320、写入缓冲器330、读取缓冲器340、逻辑评估部分350、反转确定部分360、反转控制部分370和外部接口(I/F) 390。
[0061]存储单元阵列310由以栅格状图案排列以对于每一位保持预定状态的存储单元组成。存储单元阵列310构成由可变电阻元件构成的电阻变化存储器。可变电阻元件可以记录由高阻抗状态(HRS)或者低阻抗状态(LRS)表示的一位信息。然而这些阻抗状态中的每一个可以表示“O”或者“I”。假定在后续描述中HRS的逻辑状态是“I”而LRS的逻辑状态是“O”。
[0062]存储单元阵列310由多个页组成。每一页存储数据311和反转标记312。例如,数据311假定为构成一个字的32位数据。反转标记312指示对应数据311是否以反转状态存储在存储单元阵列310中。反转标记312在设置为“O”或者“I”时可以表示反转和非反转状态中的任何一个。例如,当以非反转状态存储数据311时,可以将反转标记312清为“ O ”,而当以反转状态存储数据311时,可以将其声明为“ I”。反转标记312是在所附权利要求中描述的选择信息的示例。虽然一位反转标记312在逻辑上对于一页数据311足够了,但可以提供多个标记位以改进可靠性。
[0063]控制部分320是控制组成非易失性存储器300的各块的控制器。控制部分320经由信号线399从外部接口 390接收命令和地址,并经由信号线329输出控制信号到存储单元阵列310。
[0064]写入缓冲器330是保持存储单元阵列310的写入数据的缓冲器。写入缓冲器330经由信号线398从外部接口 390接收写入数据并经由信号线339输出写入数据到存储单元阵列310。在写入缓冲器330中保持的写入数据经由信号线335提供到逻辑评估部分350和反转确定部分360。除该数据之外,写入缓冲器330还如在存储单元阵列310中那样保持反转标记。如果存在来自反转控制部分370的指令,则写入缓冲器330反转在其中保持的写入数据,并例如将对应的反转标记声明为“I”。
[0065]读取缓冲器340是保持从存储单元阵列310取回的读取数据的缓冲器。读取缓冲器340经由信号线319从存储单元阵列310接收读取数据并经由信号线349输出读取数据到外部接口 390。将读取缓冲器340中保持的读取数据经由信号线345提供到逻辑评估部分350和反转确定部分360。除该数据之外,读取缓冲器340还如存储单元阵列310中那样保持反转标记。如果存在来自反转控制部分370的指令,则读取缓冲器340反转在其中保持的读取数据,并将对应的反转标记声明为“I”。应当注意,在预读取时不执行该反转操作。顺便提及,读取缓冲器340是所附权利要求中描述的预读取处理部分的示例。
[0066]逻辑评估部分350比较在读取缓冲器340中保持的读取数据与在写入缓冲器330中保留的写入数据,从而生成存储单元阵列310的设置模式和复位模式。在写入缓冲器330中保持的写入数据是目标用于写入处理的数据。在读取缓冲器340中保持的读取数据是在写入处理之前从写入地址读取的预读取数据。设置模式是例如涉及数据中仅那些引起从HRS到LRS的转变的位中的每一个设置为“I”的位模式。复位模式是例如涉及数据中仅那些引起从LRS到HRS的转变的位中的每一个复位为“I”的位模式。
[0067]反转确定部分360比较读取缓冲器340中保持的读取数据与写入缓冲器330中保留的写入数据,从而确定是否反转写入缓冲器330中保持的写入数据。反转确定部分360的确定结果经由信号线369输出到反转控制部分370。顺便提及,反转确定部分360是所附权利要求中描述的转换确定部分的示例。将在之后讨论反转确定部分360的详细处理。[0068]根据来自反转确定部分360的确定结果,反转控制部分370经由信号线379指示写入缓冲器330或者读取缓冲器340反转在其中保持的数据。顺便提及,反转控制部分370是所附权利要求中描述的反转控制部分或者转换控制部分的示例。
[0069]外部接口 390是与存储器控制器200交换数据的接口。
[0070][可变电阻元件的状态转变]
[0071]图3是说明可变电阻元件的设置操作的图示。如上所述,每个可变电阻元件采取两个状态之一:高阻抗状态(HRS)或者低阻抗状态(LRS)。在横轴表示可变电阻元件的阻抗值且纵轴表示它们的累积位的数目的图形表示中,状态的分布落到两个部分中:一个是阻抗值低的部分且另一个是阻抗值高的部分。低阻抗值部分代表LRS且高阻抗值部分代表HRS。如图所示,引起从HRS到LRS的状态转变的操作被称为设置操作。在这种情况下,在设置操作之后,使用在从两个分布部分之间的中间的低阻抗侧上建立的设置验证阈值R_Verify(Set)来验证设置操作是否已经正常地完成。如果验证失败,则尝试另一设置操作。
[0072]图4是说明可变电阻元件的复位操作的图示。如该图所示的用于引起从LRS到HRS的状态转变的操作被称为复位操作。在这种情况下,在复位操作之后,使用在从两个分布部分之间的中间的高阻抗侧上建立的复位验证阈值R_verify (reset)来验证复位操作是否已经正常地完成。如果验证失败,则尝试另一复位操作。
[0073][反转确定部分的结构]
[0074]图5是示出了本公开的实施例中的反转确定部分360的典型结构的图示。读取缓冲器340中保持的读取数据(预读取数据)经由信号线345输入到反转确定部分360,且写入缓冲器330中保留的写入数据经由信号线335输入到反转确定部分360。这里假定预读取数据和写入数据一次输入一个对应位。替代地,可以并行输入并集合地计数多个位。例如,可以集合地输入32位写入数据和32位预读取数据以生成其中计数每个设置为“I”的位的32位模式。反转确定部分360包括逻辑门611到614、计数器621到624、选择器631和632以及比较器641。顺便提及,逻辑门611到614是所附权利要求中描述的检测器的示例。
[0075]逻辑门611检测从预读取数据到写入数据的转变是从“I”到“O”的位,S卩,要在写入数据的非反转时设置的位。计数器621计数由逻辑门611检测到的位的数目。由计数器621计数的值nlO表示要在非反转时设置的位的数目。
[0076]逻辑门612检测从预读取数据到写入数据的转变是从“O”到“I”的位,即,要在写入数据的非反转时复位的位。计数器622计数由逻辑门612检测到的位的数目。由计数器622计数的值n01表示要在非反转时复位的位的数目。
[0077]逻辑门613检测从预读取数据到写入数据的转变是从“I”到“I”的位,即,要在写入数据的反转时设置的位。计数器623计数由逻辑门613检测到的位的数目。由计数器623计数的值nil表示要在反转时设置的位的数目。
[0078]逻辑门614检测从预读取数据到写入数据的转变是从“O”到“O”的位,即,要在写入数据的反转时复位的位。计数器624计数由逻辑门614检测到的位的数目。由计数器624计数的值n00表示要在反转时复位的位的数目。
[0079]选择器631选择以下两个值中较大的一个:从计数器621输出的nlO和从计数器622输出的n01。也就是说,选择器631输出以下两个位计数中较大的一个:在写入数据的非反转时设置的转变位的数目和复位的转变位的数目。
[0080]选择器632选择以下两个值中较大的一个:从计数器623输出的nil和从计数器624输出的n00。也就是说,选择器632输出以下两个位计数中较大的一个:在写入数据的反转时设置的转变位的数目和复位的转变位的数目。
[0081]比较器641比较选择器631的输出与选择器632的输出,并经由信号线369输出两个比较的值中较小的一个作为确定结果。也就是说,如果选择器631的输出是较小的一个,则比较器641给出指示不反转写入数据的确定结果,而如果选择器632的输出是较小的一个,则比较器641给出表示反转写入数据的确定结果。如果两个选择器给出相同输出,则比较器641可以提供两个确定结果中的任何一个。
[0082][特定示例]
[0083]图6是示出了实施例的特定应用示例的图示。在该示例中,假定预读取数据是“OxFFFFFCOO”(“Ox”意味着其之后的数是十六进制数;以下相同)且写入数据是“0xFF800200”。
[0084]比较32位中彼此对应的位提供用于写入数据的非反转和反转的设置和复位模式。也就是说,作为逻辑门611的输出获得用于写入数据的非反转的设置模式,且作为逻辑门612的输出获取用于写入数据的非反转的复位模式。此外,作为逻辑门613的输出获得用于写入数据的反转的设置模式,且作为逻辑门614的输出获取用于写入数据的反转的复位模式。
[0085]结果,在非反转时在设置模式中的转变位的数目nlO是“13”,在非反转时在复位模式中的转变位的数目n01是“1”,在反转时在设置模式中的转变位的数目nil是“9”,且在反转时在复位模式中的转变位的数目n00是“9”。
[0086]在写入数据的非反转时,设置模式中的转变位的数目nlO是两个数目中较大的一个。这使得选择器631选择“13”。在写入数据的反转时,转变位的两个数目相同。这使得选择器632选择“9”。在这种情况下,选择器632的输出是两个输出中较小的一个,以使得比较器641给出指示要反转写入数据的确定结果。
[0087]顺便提及,如果比较转变位的数目而像现有技术中那样不在设置和复位之间区分,则在非反转时转变位的总数是“14”且在反转时转变位的总数是“18”。这将导致指示不反转写入数据的确定。通过本公开的实施例,相对地,在彼此区分设置的情况和复位的情况的同时评估转变位的数目,以使得可以通过考虑在状态转变时要导致的消耗电流而适当地执行确定。
[0088][非易失性存储器的操作]
[0089]图7是示出了本公开的第一实施例中非易失性存储器300的典型写入过程的流程图。
[0090]当处理器110发出写入命令时,写入缓冲器330保持写入数据(步骤S911)。从存储单元阵列310中由写入地址指示的页开始,取回读取数据和反转标记作为预读取数据,并保留在读取缓冲器340中(步骤S912)。可以以相反次序执行写入数据的获取和预读取处理。
[0091]基于写入缓冲器330中保持的写入数据和读取缓冲器340中保留的预读取数据,反转确定部分360确定是否反转写入缓冲器330中的写入数据(步骤S920)。如果确定要反转写入数据(在步骤S913中的“是”),则在写入缓冲器330中反转写入数据且声明对应的反转标记(步骤S914)。在这种情况下,逻辑评估部分350生成用于反转的设置模式和复位模式(步骤S915)。另一方面,如果确定不反转写入数据(在步骤S913中的“否”),则写入数据保持原样且清除对应的反转标记(步骤S916)。在这种情况下,逻辑评估部分350生成用于非反转的设置模式和复位模式(步骤S917)。
[0092]替代地,代替在步骤S915中生成,可以在详述步骤S920的图9的步骤S932(要在之后讨论)中生成用于反转的设置和复位模式。此外,代替在步骤S917生成,可以在详述步骤S920的图8的步骤S922 (要在之后讨论)中生成用于非反转的设置和复位模式。
[0093]此后,根据生成的设置模式,进行设置操作以执行从HRS到LRS的状态转变(步骤
5918)。此外,根据生成的复位模式,进行复位操作以执行从LRS到HRS的状态转变(步骤
5919)。可以以相反次序进行设置和复位操作。
[0094]图8和图9是示出了以本公开实施例的反转确定处理(即,步骤S920)的典型过程的流程图。
[0095]逻辑门611和612比较用于非反转的写入数据和预读取数据(步骤S921),由此分别生成用于写入数据的非反转的设置模式和复位模式(步骤S922)。此外,计数器621和622在写入数据的非反转时分别计数要设置的位的数目nlO和要复位的位的数目n01 (步骤 S923)。
[0096]结果,如果在写入数据的非反转时要设置的位的数目nlO大于要复位的位的数目nOl (在步骤S924中“是”),则选择器631选择要设置的位的数目nlO作为输出值N_non_inv (步骤S925)。另一方面,如果要设置的位的数目nlO不大于要复位的位的数目nOl (在步骤S924中“否”),则选择器631选择要复位的位的数目nOl作为输出值N_non_inv(步骤S926)。
[0097]逻辑门613和614比较反转的写入数据和预读取数据(在步骤S931),由此在写入数据的反转时分别产生设置模式和复位模式(步骤S932)。此外,计数器623和624在写入数据的反转时分别计数要设置的位的数目nil和要复位的位的数目nOO (步骤S933)。
[0098]结果,如果在写入数据的反转时要设置的位的数目nil大于要复位的位的数目nOO (在步骤S934中“是”),则选择器632选择要设置的位的数目nil作为输出值N_inv(步骤S935)。另一方面,如果要设置的位的数目nil不大于要复位的位的数目n00(在步骤S934中“否”),则选择器632选择要复位的位的数目nOO作为输出值N_inv (步骤S936)。
[0099]替代地,可以以相反次序进行步骤S921到S926和步骤S931到S936。作为另一替代,可以同时并行地执行这些步骤,如图5所示。
[0100]比较器641比较选择器631的输出值N_non_inv与选择器632的输出值N_inv。如果输出值n_non_inv大于输出值N_inv (在步骤S937中“是”),则比较器641确定要反转写入数据(步骤S938)。另一方面,如果输出值N_non_inv不大于输出值N_inv (在步骤S937中“否”),则比较器641确定不反转写入数据(步骤S939)。
[0101]图10是示出了本公开的第一实施例中非易失性存储器300的典型读取过程的流程图。
[0102]当处理器110发出读取命令时,从由读取地址指示的存储单元阵列310中的页取回读取数据和反转标记,并保留在读取缓冲器340中(步骤S941)。在这一点上,如果在读取缓冲器340中声明反转标记(在步骤S942中“是”),则在读取缓冲器340中反转读取数据(步骤S943)。如果在读取缓冲器340中不声明反转标记(在步骤S942中“否”),则读取数据保持原样。然后将读取缓冲器340中保持的读取数据输出到处理器110 (步骤S944)。
[0103]根据上述第一实施例,通过在彼此区分设置的情况和复位的情况的同时的转变位的数目的比较,可以通过考虑在状态转变时要导致的消耗电流适当地确定是否要反转写入数据。通过以该方式执行的确定,N-位数据中要设置和复位的位的数目在最坏情况下可以减小到N/2位。换句话说,如果功耗在最坏情况下与现有技术的相同,则可以在同一时间段期间存取大小两倍大的数据,由此使得存取速度为两倍高。
[0104]〈2.第二实施例>
[0105]在上述第一实施例中,在非易失性存储器300内部进行反转确定和反转控制。在第二实施例中,由存储器控制器200执行反转确定和反转控制。信息处理系统的总体配置与以上参考图1所述的相同。
[0106][存储器控制器的结构]
[0107]图11是示出了在本公开第二实施例中的存储器控制器200的典型结构的图示。第二实施例的存储器控制器200包括控制部分220、写入缓冲器230、读取缓冲器240、反转确定部分260、反转控制部分270、存储接口 280和系统接口 290。
[0108]控制部分220是控制组成存储器控制器200的各块的控制器。控制部分220经由信号线299从系统接口 290接收命令和地址,并经由信号线229输出控制信号到存储接口280。
[0109]写入缓冲器230保持存储单元阵列310的写入数据。写入缓冲器230经由信号线298从系统接口 290接收写入数据并经由信号线239输出写入数据到存储接口 280。将在写入缓冲器230中保持的写入数据经由信号线235提供到反转确定部分260。除该数据之夕卜,写入缓冲器230如在存储单元阵列310那样保持反转标记。如果存在来自反转控制部分270的指令,则写入缓冲器230反转在其中保持的写入数据并例如将对应的反转标记声明为“I”。
[0110]读取缓冲器240保持从存储单元阵列310取回的读取数据。读取缓冲器240经由信号线219从存储接口 280接收读取数据并经由信号线249输出读取数据到系统接口 290。将在读取缓冲器240中保持的读取数据经由信号线245提供到反转确定部分260。除该数据之外,读取缓冲器240如在存储单元阵列310中那样保持反转标记。如果存在来自反转控制部分270的指令,则读取缓冲器240反转在其中保持的读取数据并将对应的反转标记声明为“I”。应当注意,在预读取时不进行反转操作。顺便提及,读取缓冲器240是所附权利要求中描述的预读取处理部分的示例。
[0111]反转确定部分260比较读取缓冲器240中保持的读取数据与写入缓冲器230中保留的写入数据,从而确定是否反转写入缓冲器230中保留的写入数据。将反转确定部分260的确定结果经由信号线269输出到反转控制部分270。反转确定部分260的详细处理与结合第一实施例解释的反转确定部分360进行的处理相同。
[0112]根据反转确定部分260的确定结果,反转控制部分270经由信号线279指示写入缓冲器230或者读取缓冲器240反转在其中保持的数据。
[0113]存储接口 280是与存储单元阵列310交换数据的接口。系统接口 290是与处理器110交换数据的接口。
[0114][非易失性存储器的结构]
[0115]图12是示出了在本公开第二实施例中的非易失性存储器300的典型结构的图示。第二实施例的非易失性存储器300相当于第一实施例的非易失性存储器减去反转确定部分360和反转控制部分370。由此,在写入缓冲器330或者读取缓冲器340中,不执行数据反转操作。但是,因为存储器控制器200进行反转操作,所以反转标记312仍然存储在第二实施例的存储单元阵列310中。
[0116][非易失性存储器的操作]
[0117]图13是示出了在本公开第二实施例中的存储器控制器200的典型写入过程的流程图。
[0118]当处理器110发出写入命令时,写入缓冲器230保持写入数据(步骤S951)。处理器Iio也发出读取请求以从由非易失性存储器300的写入地址指示的存储单元阵列310中的那一页读取数据的读取请求,以使得从该页取回读取数据和反转标记作为预读取数据并保持在读取缓冲器240中(步骤S952)。在这一点上,如果在读取缓冲器240中声明反转标记,则反转读取数据。可以以相反次序进行写入数据的获取和预读取处理。
[0119]基于写入缓冲器230中保持的写入数据和读取缓冲器240中保留的预读取数据,反转确定部分260确定是否反转写入缓冲器230中的写入数据(步骤S953)。步骤S953的处理与以上结合第一实施例所述的图8和图9中的处理相同。
[0120]如果因而确定要反转写入数据(在步骤S954中“是”),则在写入缓冲器230中反转写入数据(步骤S955)并声明对应的反转标记(步骤S956)。替代地,可以以相反次序进行步骤S955和S956。另一方面,如果确定不反转写入数据(在步骤S954中“否”),则写入数据保持原样且清除对应的反转标记(步骤S957)。
[0121]此后,存储器控制器200发出写入请求以将写入缓冲器230中保持的写入数据写入到由非易失性存储器300的写入地址指示的存储单元阵列310中的那一页(步骤S958)。
[0122]图14是示出了在本公开第二实施例中的存储器控制器200的典型读取过程的流程图。
[0123]当处理器110发出读取命令时,存储器控制器200发出读取请求以从由非易失性存储器300的读取地址指示的存储单元阵列310的那一页中读取数据(步骤S961)。对于作为结果放置在读取缓冲器240中的读取数据,如果声明对应的反转标记(在步骤S962中“是”),则在读取缓冲器240中反转读取数据(步骤S963)。如果不声明反转标记(在步骤S962中“否”),则读取数据保持原样。然后将读取缓冲器240中保留的读取数据到处理器110 (步骤 S964)。
[0124]根据上述本公开的第二实施例,可以基于在彼此区分设置的情况和复位的情况的同时进行的反转确定而在非易失性存储器300外部执行反转操作。
[0125]〈3.第三实施例〉
[0126]通过上述第一实施例,确定要写入两种写入数据(反转或者非反转的写入数据)中的哪种。第三实施例另外涉及概括该种确定以确定要写入两个候选中的哪个。信息处理系统的总体配置与以上参考图1所述的相同。
[0127][非易失性存储器的结构][0128]图15是示出了在本公开的第三实施例中的非易失性存储器300的典型结构的图示。非易失性存储器300包括存储单元阵列310、控制部分320、写入缓冲器330、读取缓冲器340、逻辑评估部分350、转换确定部分460、转换控制部分470和外部接口(I/F)390。除了写入数据在写入到存储单元阵列310之前经历两种类型的转换中的一种之外,非易失性存储器300具有基本上与第一实施例中相应部分相同的结构。在后续描述中,两种类型的转换中的一种将被称为“候选0”,且另一种将被称为“候选I”。顺便提及,候选O和候选I是所附权利要求中描述的写入数据的第一和第二转换候选的示例。
[0129]存储单元阵列310由多个页组成。每一页存储数据311和选择标记313。例如,假定数据311为构成一个字的32位数据。每一选择标记313指示对于在存储单元阵列310中存储的对应数据311已经选择了两种类型的转换中的哪一种。对于数据311,每一选择标记313可以如期望的那样表示“O”或者“I”。例如,如果在选择到候选O的转换的情况下存储数据311,则选择标记313可以清为“O” ;如果在选择到候选I的转换的情况下存储数据311,则选择标记313可以声明为“I”。选择标记313是在所附权利要求中描述的选择信息的示例。虽然一位选择标记313在逻辑上对于一页数据311足够了,但可以提供多个标记位以改进可靠性。
[0130]除该数据之外,写入缓冲器330如在存储单元阵列310中那样保持选择标记。如果存在来自转换控制部分470的指令,则写入缓冲器330关于在其中保持的写入数据执行两种类型的转换中所选择的一种,并确定反映当前状态的选择标记。
[0131]除该数据之外,读取缓冲器340如在存储单元阵列310中那样保持选择标记。如果存在来自转换控制部分470的指令,则读取缓冲器340关于在其中保持的读取数据执行两种类型的转换中所选择的一种的反向转换。应当注意,在预读取时不进行该反向转换。顺便提及,读取缓冲器340是所附权利要求中描述的预读取处理部分的示例。
[0132]转换确定部分460比较读取缓冲器340中保持的读取数据与写入缓冲器330中保留的写入数据,从而确定关于写入缓冲器330中保存的写入数据执行两种类型的转换中的哪一种。将转换确定部分460的确定结果经由信号线469输出到转换控制部分470。将在之后讨论转换确定部分460的详细处理。
[0133]根据来自转换确定部分460的确定结果,转换控制部分470经由信号线479指示写入缓冲器330或者读取缓冲器340关于在其中保持的数据执行两种类型的转换之一。
[0134][转换确定部分的结构]
[0135]图16是示出了在本公开第三实施例中的转换确定部分460的典型结构的图示。将读取缓冲器340中保持的读取数据(预读取数据)经由信号线345输入到转换确定部分460,且将写入缓冲器330中保留的写入数据经由信号线335输入到转换确定部分460。这里假定预读取数据和写入数据一次输入一个对应位。替代地,可以并行输入并集合地计数多个位。例如,可以集合地输入32位写入数据和32位预读取数据以生成其中计数每个设置为“I”的位的32位模式。转换确定部分460包括写入数据转换部分650、逻辑门661到664、计数器671到674、选择器681和682以及比较器691。顺便提及,逻辑门661到664是所附权利要求中描述的检测器的示例。
[0136]写入数据转换部分650关于经由信号线335输入的写入数据执行两种类型的转换之一。这里假定已经经历到候选O的转换的数据和已经经历到候选I的转换的数据分别被称为wdataO和wdatal。将在之后讨论候选O和I的特定示例。
[0137]逻辑门661检测预读取数据到写入数据的候选O的转变是从“I”到“O”的位,即,在写入数据到候选O的转换时要设置的位。计数器671计数由逻辑门661检测到的位的数目。由计数器671计数的值mlO表示在写入数据到候选O的转换时要设置的位的数目。
[0138]逻辑门662检测预读取数据到写入数据的候选O的转变是从“O”到“I”的位,即,在写入数据到候选O的转换时要复位的位。计数器672计数由逻辑门662检测到的位的数目。由计数器672计数的值mOl表示在写入数据到候选O的转换时要复位的位的数目。
[0139]逻辑门663检测预读取数据到写入数据的候选I的转变是从“I”到“O”的位,即,在写入数据到候选I的转换时要设置的位。计数器673计数由逻辑门663检测到的位的数目。由计数器673计数的值mil表示在写入数据到候选I的转换时要设置的位的数目。
[0140]逻辑门664检测预读取数据到写入数据的候选I的转变是从“O”到“I”的位,即,在写入数据到候选I的转换时要复位的位。计数器674计数由逻辑门664检测到的位的数目。由计数器674计数的值mOO表示在写入数据到候选I的转换时要复位的位的数目。
[0141]选择器681选择以下两个值中较大的一个:从计数器671输出的值mlO或者从计数器672输出的值mOl。也就是说,选择器681输出以下两个位计数中较大的一个:在写入数据到候选O的转换时要设置的转变位的数目或者要复位的转变位的数目。
[0142]选择器682选择以下两个值中较大的一个:从计数器673输出的值mil或者从计数器674输出的值mOO。也就是说,选择器682输出以下两个位计数中较大的一个:在写入数据到候选I的转换时要设置的转变位的数目或者要复位的转变位的数目。
[0143]比较器691比较选择器681的输出与选择器682的输出,以经由信号线469输出两个比较的值中较小的一个作为确定结果。也就是说,如果选择器681的输出是比较的两个值中较小的一个,则比较器691给出指示写入数据要转换为候选O的确定结果;如果选择器682的输出是两个值中较小的一个,则比较器691给出指示写入数据要转换为候选I的确定结果。如果两个选择器681和682提供相同输出,则比较器691可以给出两个确定结果中的任何一个。
[0144]图17是示出了在本公开的第三实施例中的写入数据转换部分650的典型结构的图示。尽管写入数据转换部分650假定为包括在转换确定部分460中,但是类似的部分也可以用于写入缓冲器330。
[0145]写入数据转换部分650根据经由信号线335从写入缓冲器330输入的写入数据WDATA,通过到候选O的转换生成值wdataO并通过到候选I的转换生成值wdatal。在该示例中,生成写入数据WDATA和固定值X的异-或作为候选O的值wdataO。出于该目的,写入数据转换部分650安装有异或门652,其生成写入数据WDATA和固定值X的异-或。此夕卜,生成写入数据WDATA和固定值X的反转值的异-或作为候选I的值wdatal。出于该目的,写入数据转换部分650提供有反相门651和异或门653。在异或门653生成写入数据WDATA和固定值X的反转值的异-或之前,反相门651反转固定值X。如果在该示例中固定值X假定为完全由O构成,则获得与第一实施例相同的结果。也就是说,候选O是写入数据本身(非反转)且候选I的反转的写入数据。
[0146]在从写入数据生成用于转换的候选O和I时,对该实施例转换需要可逆性。可逆性是指通过反向转换从转换的写入数据恢复初始的写入数据的能力。当如上所述通过关于固定值X或者其反转值和关于写入数据执行的异或操作生成候选O和I时,可以通过再次执行相同的异或操作恢复初始的写入数据。因此该转换具有可逆性。
[0147]并且对于该实施例,有必要候选O和I的至少任何一个使得要设置的位的数目和要复位的位的数目每一个都是位的总数的一半或者更少。在涉及写入数据转换部分650的示例中,候选O和I彼此互补;当一个候选是“O”时,另一个是“I”。这意味着要设置的位的数目和要复位的位的数目每一个是涉及的位的总数的一半或者更少。
[0148]图18是示出了在本公开第三实施例中的读取数据转换部分380的典型结构的图示。读取数据转换部分380用于读取缓冲器340。
[0149]读取数据转换部分380在从存储单元阵列310取回之后通过读取数据RDATA_MEM从候选O或者I的反向转换以及选择标记生成读取数据RDATA。在该示例中,读取数据转换部分380安装有生成读取数据RDATA_MEM和固定值X的异或的异或门382。此外,读取数据转换部分380提供有反相门381和异或门383。在异或门383生成读取数据RDATA_MEM和固定值X的反转值的异-或之前,反相门381反转固定值X。读取数据转换部分380另外提供有选择器384,其根据从存储单元阵列310读取的选择标记来选择异或门382或者异或门383的输出,由此获得读取数据RDATA。
[0150]上述段落已经解释了其中通过关于固定值X或者其反转值以及关于写入数据执行异或操作生成候选O和I的示例。替代地,可以利用其他转换候选,只要如上所述那样保证可逆性和互补性。例如,可以单独地或者与其他种类的转换结合地使用位转置、位平移
坐寸O
[0151][使用表的转换]
[0152]对于上述实施例,硬件电路用于生成转换候选O和I。替代地,查询表可以用于生成转换候选。查询表布置允许转换候选的更灵活的设置。但是,为建立表的值要求满足以下两个条件:
[0153](I)条件1:写入数据WDATA和候选O的值wdataO以及写入数据WDATA和候选I的值wdatal应该一对一地彼此对应。也就是说,候选O的值wdataO对于写入数据WDATA应该唯一地确定,且写入数据WDATA对于候选O的值wdataO应该唯一地确定。这同样应该适用于候选I的值wdatal。
[0154](2)条件2:在至少候选O的值wdataO或者候选I的值wdatal中,要设置的位的数目和要复位的位的数目每个应该是涉及的位的总数的一半或者更少。
[0155]图19是示出了以本公开的第三实施例在生成转换候选时典型地怎样使用查询表的图示。为了对于该示例简化和说明的目的,示出了从假定用于目标写入数据的四位数据宽度导出的16位模式。
[0156]在该示例中,候选O的值wdataO是写入数据WDATA的非反转值。候选I的值wdatal对于第零模式和对于第三到第15模式是写入数据WDATA的反转值。对于第一模式,候选I的值wdatal是写入数据WDATA的反转值向左移位一位。对于第二模式,候选I的值wdatal是写入数据WDATA的反转值向右移位一位。在这种情况下,也保证上述可逆性和互补性。
[0157]以下描述在查询表的本示例中怎样满足上述两个条件。首先,对于第零模式和对于第三到第15模式,值wdataO是写入数据WDATA的非反转值且值wdatal是写入数据WDATA的反转值,这显示要保证可逆性和互补性。此外,对于第一和第二模式,可以通过反转和移位操作恢复初始写入数据,这也显示要保证可逆性。虽然第一和第二模式缺乏互补性,但是要设置的位的数目和要复位的位的数目每个都是涉及的位的总数的一半或者更少,如之后所示的那样。
[0158]图20概述了图19中的示例的第一模式中要设置的位的数目和要复位的位的数目。如图20所示,检查预读取数据的每一模式中要设置的位的数目和要复位的位的数目显示出值wdataO和wdatal的至少任何一个相对于任何预读取数据是两位或者更少。也就是说,在值wdataO和wdatal的至少任何一个中,要设置的位的数目和要复位的位的数目每个都是涉及的位的总数的一半或者更少。
[0159]图21概述了图19中的示例的第二模式中要设置的位的数目和要复位的位的数目。如图21所示,检查预读取数据的每一模式中要设置的位的数目和要复位的位的数目显示出值wdataO和wdatal的至少任何一个关于任何预读取数据是两位或者更少。也就是说,在值wdataO和wdatal的至少任何一个中,要设置的位的数目和要复位的位的数目每个都是涉及的位的总数的一半或者更少。
[0160]以上示出了图19的示例具有可逆性且在值wdataO和wdatal的至少任何一个中,要设置的位的数目和要复位的位的数目每个都是涉及的位的总数的一半或者更少。因此该示例满足第三实施例的要求。
[0161]图22是示出了以本公开的第三实施例查询表怎样典型地用于反向转换的图示。该示例是作为转换的示例的图19中所示的反转。在这种情况下,如读取数据转换部分380那样,在从存储单元阵列310取回之后,从读取数据RDATA_MEM和选择标记生成已经经历从候选O或者I的反向转换的读取数据RDATA。也就是说,取决于由选择标记指示哪个候选来选择表中的列rdataO或者rdatal。然后对于匹配读取数据RDATA_MEM的行通过所选的列进行搜索,并输出与匹配行对应的读取数据RDATA。
[0162][非易失性存储器的操作]
[0163]图23是示出了本公开的第三实施例中非易失性存储器300的典型写入过程的流程图。
[0164]当处理器110发出写入命令时,将写入数据放置到写入缓冲器330中(步骤S811)。此外,从由写入地址指示的存储单元阵列310中的那一页读取读取数据和选择标记作为预读取数据,并保留在读取缓冲器340中(步骤S812)。可以以相反次序进行写入数据的获取和预读取处理。
[0165]基于写入缓冲器330中保持的写入数据和读取缓冲器340中保留的预读取数据,转换确定部分460确定写入缓冲器330中的写入数据要转换为候选O和I中的哪一个(步骤S820)。如果因而确定写入数据要转换为候选I (在步骤S813中“是”),则写入数据转换为候选I且在写入缓冲器330中将对应的选择标记声明为“I”(步骤S814)。在这种情况下,逻辑评估部分350生成用于候选I的设置模式和复位模式(步骤S815)。
[0166]另一方面,如果确定写入数据要转换为候选O (在步骤S813中“否”),则将写入数据转换为候选0,且在写入缓冲器330中将对应的选择标记清为“O”(步骤S816)。在这种情况下,逻辑评估部分350生成用于候选O的设置模式和复位模式(步骤S817)。
[0167]替代地,代替在步骤S817中生成,可以在详述步骤S820的图24的步骤S823 (要在之后讨论)中生成用于候选O的设置和复位模式。此外,代替在步骤S815中生成,可以在详述步骤S820的图25的步骤S833 (要在之后讨论)中生成用于候选I的设置和复位模式。
[0168]此后,根据生成的设置模式,进行设置操作以执行从HRS到LRS的状态转变(步骤S818)。此外,与生成的复位模式一致,进行复位操作以执行从LRS到HRS的状态转变(在步骤S819)。可以以相反次序进行设置操作和复位操作。
[0169]图24和图25是以本公开第三实施例的转换确定处理(步骤S820)的典型过程的流程图。
[0170]首先,写入数据转换部分650将写入数据WDATA转换为候选O和1,从而分别生成值 wdataO 和 wdatal (步骤 S821)。
[0171]逻辑门661和662比较候选O的写入数据和预读取数据(步骤S822),从而分别生成用于候选O的设置模式和复位模式(步骤S823)。此外,计数器671和672分别计数用于候选O的要设置的位的数目mlO和要复位的位的数目mOl (步骤S824)。
[0172]如果因而确定要设置的位的数目mlO大于要复位的位的数目m01(在步骤S825中“是”),则选择器681选择要设置的位的数目mlO作为输出值N_wO(步骤S826)。另一方面,如果确定要设置的位的数目mlO不大于要复位的位的数目m01(在步骤S825中的“否”),则选择器681选择要复位的位的数目mOl作为输出值N_wO (步骤S827)。
[0173]逻辑门663和664比较候选I的写入数据和预读取数据(步骤S831),从而分别生成用于候选I的设置模式和复位模式(步骤S832)。此外,计数器673和674分别计数用于候选I的要设置的位的数目mil和要复位的位的数目mOO (步骤S833)。
[0174]如果因而确定要设置的位的数目mil大于要复位的位的数目m00(在步骤S834中“是”),则选择器682选择要设置的位的数目mil作为输出值N_wl(步骤S835)。另一方面,如果确定要设置的位的数目mil不大于要复位的位的数目m00(在步骤S834中“否”),则选择器682选择要复位的位的数目mOO作为输出值N_wl (步骤S836)。
[0175]顺便提及,可以以相反次序进行步骤S821到S827和步骤S831到S836。这些步骤也可以同时地和并行地执行,如图16所示。
[0176]比较器691比较来自选择器681的输出值N_wO与来自选择器682的输出值N_wl。如果输出N_wO大于输出值N_wl (在步骤S837中“是”),则比较器691确定要选择候选I(步骤S838)。如果输出N_wO不大于输出值N_wl(在步骤S837中的“否”),则比较器691确定要选择候选O (步骤S839)。
[0177]图26是示出了在本公开的第三实施例中的非易失性存储器300的典型读取过程的流程图。
[0178]当处理器110发出读取命令时,从由读取地址指示的存储单元阵列310中的那一页读取读取数据和选择标记。将读取数据和选择标记放置到读取缓冲器340中(步骤S841)。在这一点上,如果声明读取缓冲器340中的选择标记(在步骤S842中“是”),则从候选I相反地转换读取缓冲器340中的读取数据(步骤S843)。如果不声明选择标记(在步骤S842中“否”),则从候选O相反地转换读取缓冲器340中的读取数据(步骤S844)。然后将读取缓冲器340中保持的读取数据输出到处理器110 (步骤S845)。
[0179]根据上述第三实施例,在彼此区分设置的情况和复位的情况的同时,评估转变位的数目。这使得可以在考虑在状态转变时要导致的消耗电流的同时确定关于写入数据要执行的适当的转换的类型。通过以该方式执行的确定,N-位数据中要设置和复位的位的数目在最坏情况下可以减小到N/2位。换句话说,如果功耗在最坏情况下与现有技术的相同,则可以在同一时间段期间存取大小两倍大的数据,由此使得存取速度为两倍高。
[0180][变型]
[0181]图27是示出了在本公开第三实施例中的转换确定部分460的变型的图示。与参考图16解释的相比,转换确定部分460的该变型缺少逻辑门663和664、计数器673和674以及选择器682。尽管选择器682的输出连接到比较器691的一个输入,但是在该变型中全部位计数N的一半(N/2)输入到比较器692的一个输入。这是因为假定在候选O和I的任何一个中要设置或者复位的位的数目是涉及的位的总数的一半或者更少,可以通过仅评估两个候选之一而做出适当的选择。也就是说,如果选择器681的输出大于N/2,则选择候选I ;如果选择器681的输出小于N/2,则选择候选O。如果选择器681的输出与N/2相同,贝Ij可以选择两个候选的任何一个。
[0182]图28是示出了以本公开第三实施例的转换确定处理(即,步骤S820)的替代过程的流程图。在该替代中,步骤S851到S857实质上与以上参考图24所述的步骤S821到S827相同。
[0183]比较器692比较来自选择器681的输出值N_w0与N/2。如果输出值N_w0大于N/2(在步骤S867中“是”),则比较器692确定要选择候选I (步骤S868)。如果输出值N_w0不大于N/2 (在步骤S867中“否”),则比较器692确定要选择候选O (步骤S869)。
[0184]根据上述第三实施例的变型,仅需要关于候选O和I中的任何一个确定要设置或者复位的位的数目。这略微简化了转换确定处理。尽管第三实施例涉及以最小化要设置或者复位的位的数目的方式进行确定,但是以上变型足以使得位计数为N/2或者更少。虽然在以上示例中在确定要设置或者复位的位的数目时仅以候选O为目标,但是明显地可以代替地仅以候选I为目标。
[0185]尽管以上将第三实施例解释为例如由非易失性存储器300执行转换控制,但是如第二实施例那样,替代地可以由存储器控制器200进行转换控制。
[0186]上述的实施例和它们的变型仅是可以实现本公开的示例。本说明书的【具体实施方式】中的实施例和它们的变型的细节基本上对应于所附权利要求中要求保护的公开内容。同样地,所附权利要求中提到的公开内容基本上对应于【具体实施方式】中具有相同名称的细节。但是,这些实施例和它们的变型以及本公开的其它示例不限于此,且本领域技术人员应该理解,取决于设计要求和其它因素,可以发生各种修改、组合、部分组合和变更,只要它们在所附权利要求或者其等效物的范围之内。
[0187]此外,作为实施例的一部分在以上讨论的一系列步骤和处理可以看作用于进行这种步骤和处理的方法、看作用于使得计算机执行这种方法的程序或者看作存储这种程序的记录介质。作为记录介质,可以使用比如⑶(致密盘)、MD (迷你盘)、DVD (数字多用途盘)、存储卡和蓝光盘(注册商标)之类的任意介质。
[0188]本公开公开的本技术也可以配置如下:
[0189](I) 一种存储器控制设备,包括:
[0190]预读取处理部分,配置为在对于每一位保持第一值或者第二值的存储单元阵列的预定数据区域中,在写入处理之前从要写入的数据区域读取预读取数据;
[0191]转换确定部分,配置为使得在选择性地允许预读取数据转变为写入处理中要写入的写入数据的第一转换候选或者第二转换候选时,转换确定部分基于两个值中较大的一个产生用于选择第一转换候选或者第二转换候选的任何一个的确定结果,该两个值中的一个是在预读取数据到第一转换候选的转变时从第一值转变到第二值的位的数目,且另一个是在预读取数据到第一转换候选的转变时从第二值转变到第一值的位的数目;和
[0192]转换控制部分,配置为根据确定结果选择第一转换候选或者第二转换候选,同时输出指示已经选择了两个候选中的哪个的选择信息。
[0193](2) 一种存储器控制设备,包括:
[0194]预读取处理部分,配置为在对于每一位保持第一值或者第二值的存储单元阵列的预定数据区域中,在写入处理之前从要写入的数据区域读取预读取数据;
[0195]转换确定部分,配置为产生用于通过两个值的比较来选择性地允许预读取数据转变到要在写入处理中写入的写入数据的第一转换候选或者第二转换候选的确定结果,t匕较的两个值之一是第一组两个值中较大的一个,该第一组两个值中的一个是在预读取数据到第一转换候选的转变时从第一值转变到第二值的位的数目且另一个是从第二值转变到第一值的位的数目,比较的两个值中的另一个是第二组两个值中较大的一个,该第二组两个值中的一个是预读取数据到第二转换候选的转变时从第一值转变到第二值的位的数目且另一个是从第二值转变到第一值的位的数目,以转变位的数目是比较的两个数中较小的一个的方式进行第一转换候选或者第二转换候选的选择;和
[0196]转换控制部分,配置为根据确定结果选择第一转换候选或者第二转换候选,同时输出指示已经选择了两个候选中的哪个的选择信息。
[0197](3)如以上段落(2)描述的存储器控制设备,
[0198]其中,转换确定部分包括:
[0199]检测器,配置为关于预读取数据、第一转换候选和第二转换候选,对于每一位检测从第一值到第二值或者从第二值到第一值的转变的组合;
[0200]计数器,配置为计数对于每一组合检测到的位的数目;
[0201]选择器,配置为关于第一转换候选和第二转换候选中的每一个选择两个值中较大的一个,该两个值中的一个是从第一值转变到第二值的位的数目且另一个是从第二值转变到第一值的位的数目;和
[0202]比较器,配置为关于第一转换候选和第二转换候选中的每一个比较所选择的转变位的数目,从而以转变位的数目是比较的两个数中较小的一个的方式将第一转换候选或者第二转换候选选择作为确定结果。
[0203]( 4 )如以上段落(2 )或者(3 )描述的存储器控制设备,进一步包括:
[0204]写入缓冲器,配置为保持写入数据和选择信息,
[0205]其中,转换控制部分使得在写入缓冲器中保持的写入数据根据确定结果转换为第一转换候选或者第二转换候选,同时使得写入缓冲器保持指示写入数据转换为的两个候选中的任何一个的选择信息。
[0206](5)如以上段落(2)到(4)中的任何一个描述的存储器控制设备,其中,第一转换候选是通过关于写入缓冲器和关于预定值执行异或操作而获得的值,而第二转换候选是通过关于写入缓冲器和关于预定值的反转值执行异或操作而获得的值。
[0207](6)如以上段落(2)到(5)的任何一个描述的存储器控制设备,其中,第一转换候选通过关于通过对写入缓冲器和对预定值执行异或操作而获得的值执行预定位平移操作或者预定位转置操作或者这些操作的组合而获取,且第二转换候选通过关于通过对写入缓冲器和对该预定值的反转值执行异或操作而获得的值执行预定位平移操作或者预定位转置操作或者这些操作的组合而获取。
[0208](7)如以上段落(2)到(6)中的任何一个描述的存储器控制设备,其中,第一转换候选是与写入缓冲器中保持的值相同的值,且第二转换候选是写入缓冲器中保持的值的反转值。
[0209](8)如以上段落(2)到(7)的任何一个描述的存储器控制设备,其中,第一转换候选和第二转换候选均以如下方式确定:第一组两个值中较大的一个或者第二组两个值中较大的一个变为写入数据的总位长度的一半或者更少,其中第一组两个值中的一个是在预读取数据到第一转换候选的转变时从第一值转变到第二值的位的数目且另一个是从第二值转变到第一值的位的数目,第二组两个值中的一个是在预读取数据到第二转换候选的转变时从第一值转变到第二值的位的数目且另一个是从第二值转变到第一值的位的数目。
[0210](9) 一种存储器控制设备,包括:
[0211]预读取处理部分,配置为在对于每一位保持第一值或者第二值的存储单元阵列的预定数据区域中,在写入处理之前从要写入的数据区域读取预读取数据;
[0212]转换确定部分,配置为使得在选择性地允许预读取数据转变到要在写入处理中写入的写入数据的第一转换候选或者第二转换候选时,转换确定部分比较两个值中较大的一个与写入数据的总位长度的一半,从而如果比较的两个的较大的转变位的数目小于写入数据的总位长度的一半,则产生用于选择第一转换候选的确定结果,否则则产生用于选择第二转换候选的确定结果,该两个值中的一个是在预读取数据到第一转换候选的转变时从第一值转变到第二值的位的数目且另一个是从第二值转变到第一值的位的数目;和
[0213]转换控制部分,配置为根据确定结果选择了第一转换候选或者第二转换候选,同时输出指示已经选择两个候选中的哪个的选择信息。
[0214](10) 一种存储器设备,包括:
[0215]存储单元阵列,配置为对于每一位保持第一值或者第二值;
[0216]预读取处理部分,配置为在存储单元阵列的预定数据区域中,在写入处理之前从要写入的数据区域读取预读取数据;
[0217]转换确定部分,配置为使得在选择性地允许预读取数据转变为要在写入处理中写入的写入数据的第一转换候选或者第二转换候选时,转换确定部分基于两个值中较大的一个产生用于选择第一转换候选或者第二转换候选的任何一个的确定结果,该两个值中的一个是在预读取数据到第一转换候选的转变时从第一值转变到第二值的位的数目,且另一个是在预读取数据到第一转换候选的转变时从第二值转变到第一值的位的数目;和
[0218]转换控制部分,配置为根据确定结果选择第一转换候选或者第二转换候选,同时输出指示已经选择了两个候选中的哪个的选择信息。
[0219](11)如以上段落(10)描述的存储器设备,其中,存储单元阵列由可变电阻元件组成。[0220](12) 一种信息处理系统,包括:
[0221]存储单元阵列,配置为对于每一位保持第一值或者第二值;
[0222]预读取处理部分,配置为在存储单元阵列的预定数据区域中,在写入处理之前从要写入的数据区域读取预读取数据;
[0223]转换确定部分,配置为使得在选择性地允许预读取数据转变为要在写入处理中写入的写入数据的第一转换候选或者第二转换候选时,转换确定部分基于两个值中较大的一个产生用于选择第一转换候选或者第二转换候选的任何一个的确定结果,该两个值中的一个是在预读取数据到第一转换候选的转变时从第一值转变到第二值的位的数目,且另一个是在预读取数据到第一转换候选的转变时从第二值转变到第一值的位的数目;和
[0224]转换控制部分,配置为根据确定结果选择第一转换候选或者第二转换候选,同时输出指示已经选择了两个候选中的哪个的选择信息;和
[0225]主计算机,配置为向所述存储单元阵列发出读取命令或者写入命令。
[0226](13) 一种存储器控制方法,包括:
[0227]在对于每一位保持第一值或者第二值的存储单元阵列的预定数据区域中,在写入处理之前从要写入的数据区域读取预读取数据;
[0228]在选择性地允许预读取数据转变为要在写入处理中写入的写入数据的第一转换候选或者第二转换候选时,基于两个值中较大的一个产生用于选择第一转换候选或者第二转换候选的任何一个的确定结果,该两个值中的一个是在预读取数据到第一转换候选的转变时从第一值转变到第二值的位的数目,且另一个是在预读取数据到第一转换候选的转变时从第二值转变到第一值的位的数目;和
[0229]根据确定结果选择第一转换候选或者第二转换候选,同时输出指示已经选择了两个候选中的哪个的选择信息。
[0230]本公开包含与于2013年3月12日在日本专利局提交的日文优先权专利申请JP2013-048776中公开的主题相关的主题,在此通过引用包含其全部内容。
【权利要求】
1.一种存储器控制设备,包括: 预读取处理部分,配置为在对于每一位保持第一值或者第二值的存储单元阵列的预定数据区域中,在写入处理之前从要写入的数据区域读取预读取数据; 转换确定部分,配置为使得在选择性地允许所述预读取数据转变到在所述写入处理中要写入的写入数据的第一转换候选或者第二转换候选时,所述转换确定部分基于两个值中较大的一个产生用于选择所述第一转换候选或者所述第二转换候选的确定结果,所述两个值中的一个是在所述预读取数据到所述第一转换候选的转变时从所述第一值转变到所述第二值的位的数目,且另一个在是所述预读取数据到所述第一转换候选的转变时从所述第二值转变到所述第一值的位的数目;和 转换控制部分,配置为根据所述确定结果选择所述第一转换候选或者所述第二转换候选,同时输出指示已经选择了两个候选中的哪个的选择信息。
2.一种存储器控制设备,包括: 预读取处理部分,配置为在对于每一位保持第一值或者第二值的存储单元阵列的预定数据区域中,在写入处理之前从要写入的数据区域读取预读取数据; 转换确定部分,配置为产生用于通过两个值的比较来选择性地允许所述预读取数据转变到要在所述写入处理中写入的写入数据的第一转换候选或者第二转换候选的确定结果,比较的两个值之一是第一组两个值中较大的一个,所述第一组两个值中的一个是在所述预读取数据到所述第一转换候选的转变时从所述第一值转变到所述第二值的位的数目且另一个是从所述第二值转变到所述第一值的位的数目,比较的两个值中的另一个是在第二组两个值中较大的一个,所述第二组两个值中的一个是所述预读取数据到所述第二转换候选的转变时从所述第一值转变到所述第二值的位的数目且另一个是从所述第二值转变到所述第一值的位的数目,以转变位的数目是比较的两个数中较小的一个的方式进行所述第一转换候选或者所述第二转换候选的选择;和` 转换控制部分,配置为根据所述确定结果选择所述第一转换候选或者所述第二转换候选,同时输出指示已经选择了两个候选中的哪个的选择信息。
3.根据权利要求2的存储器控制设备, 其中,所述转换确定部分包括: 检测器,配置为关于所述预读取数据、所述第一转换候选和所述第二转换候选,对于每一位检测从所述第一值到所述第二值或者从所述第二值到所述第一值的转变的组合;计数器,配置为计数对于每一组合检测到的位的数目; 选择器,配置为关于所述第一转换候选和所述第二转换候选中的每一个选择两个值中较大的一个,所述两个值中的一个是从所述第一值转变到所述第二值的位的数目且另一个是从所述第二值转变到所述第一值的位的数目;和 比较器,配置为关于所述第一转换候选和所述第二转换候选中的每一个比较所选择的转变位的数目,从而以转变位的数目是比较的两个数中较小的一个的方式将所述第一转换候选或者所述第二转换候选选择作为所述确定结果。
4.根据权利要求2的存储器控制设备,进一步包括: 写入缓冲器,配置为保持所述写入数据和所述选择信息, 其中,所述转换控制部分使得所述写入缓冲器中保持的写入数据根据所述确定结果转换为所述第一转换候选或者所述第二转换候选,同时使得所述写入缓冲器保持指示所述写入数据转换为的两个候选的任何一个的所述选择信息。
5.根据权利要求4的存储器控制设备,其中,所述第一转换候选是通过关于所述写入缓冲器和关于预定值执行异或操作而获得的值,且所述第二转换候选是通过关于所述写入缓冲器和关于所述预定值的反转值执行异或操作而获得的值。
6.根据权利要求4的存储器控制设备,其中,所述第一转换候选通过关于通过对所述写入缓冲器和对预定值执行异或操作而获得的值执行预定位平移操作或者预定位转置操作或者这些操作的组合而获取,且所述第二转换候选通过关于通过对所述写入缓冲器和对所述预定值的反转值执行异或操作而获得的值执行所述预定位平移操作或者所述预定位转置操作或者这些操作的组合而获取。
7.根据权利要求4的存储器控制设备,其中,所述第一转换候选是与所述写入缓冲器中保持的值相同的值,且所述第二转换候选是所述写入缓冲器中保持的值的反转值。
8.根据权利要求2的存储器控制设备,其中,所述第一转换候选和所述第二转换候选均以如下方式确定:第一组两个值中较大的一个或者第二组两个值中较大的一个变为所述写入数据的总位长度的一半或者更少,其中,所述第一组两个值中的一个是在所述预读取数据到所述第一转换候选的转变时从所述第一值转变到所述第二值的位的数目且另一个是从所述第二值转变到所述第一值的位的数目,而所述第二组两个值中的一个是在所述预读取数据到所述第二转换候选的转变时从所述第一值转变到所述第二值的位的数目且另一个是从所述第二值转变到所述第一值的位的数目。
9.一种存储器控制设备,包括: 预读取处理部分,配置为在对于每一位保持第一值或者第二值的存储单元阵列的预定数据区域中,在写入处理之前 从要写入的数据区域读取预读取数据; 转换确定部分,配置为使得在选择性地允许所述预读取数据转变到要在所述写入处理中写入的写入数据的第一转换候选或者第二转换候选时,所述转换确定部分比较两个值中较大的一个与所述写入数据的总位长度的一半,从而如果比较的两个数的较大的转变位的数目小于所述写入数据的所述总位长度的一半,则产生用于选择所述第一转换候选的确定结果,否则则产生用于选择所述第二转换候选的确定结果,所述两个值中的一个是在所述预读取数据到所述第一转换候选的转变时从所述第一值转变到所述第二值的位的数目且另一个是从所述第二值转变到所述第一值的位的数目;和 转换控制部分,配置为根据所述确定结果选择所述第一转换候选或者所述第二转换候选,同时输出指示已经选择了两个候选中的哪个的选择信息。
10.一种存储器设备,包括: 存储单元阵列,配置为对于每一位保持第一值或者第二值; 预读取处理部分,配置为在所述存储单元阵列的预定数据区域中,在写入处理之前从要写入的数据区域读取预读取数据; 转换确定部分,配置为使得在选择性地允许所述预读取数据转变到要在所述写入处理中写入的写入数据的第一转换候选或者第二转换候选时,所述转换确定部分基于两个值中较大的一个产生用于选择所述第一转换候选或者所述第二转换候选的确定结果,所述两个值中的一个是在所述预读取数据到所述第一转换候选的转变时从所述第一值转变到所述第二值的位的数目,且另一个是在所述预读取数据到所述第一转换候选的转变时从所述第二值转变到所述第一值的位的数目;和 转换控制部分,配置为根据所述确定结果选择所述第一转换候选或者所述第二转换候选,同时输出指示已经选择了两个候选中的哪个的选择信息。
11.根据权利要求10的存储器设备,其中,所述存储单元阵列由可变电阻元件组成。
12.—种信息处理系统,包括: 存储单元阵列,配置为对于每一位保持第一值或者第二值; 预读取处理部分,配置为在所述存储单元阵列的预定数据区域中,在写入处理之前从要写入的数据区域读取预读取数据; 转换确定部分,配置为使得在选择性地允许所述预读取数据转变到要在所述写入处理中写入的写入数据的第一转换候选或者第二转换候选时,所述转换确定部分基于两个值中较大的一个产生用于选择所述第一转换候选或者所述第二转换候选的确定结果,所述两个值中的一个是在所述预读取数据到所述第一转换候选的转变时从所述第一值转变到所述第二值的位的数目,且另一个是在所述预读取数据到所述第一转换候选的转变时从所述第二值转变到所述第一值的位的数目;和 转换控制部分,配置为根据所述确定结果选择所述第一转换候选或者所述第二转换候选,同时输出指示已经选择了两个候选中的哪个的选择信息;和 主计算机,配置为向所述存储单元阵列发出读取命令或者写入命令。
13.—种存储器控制方法,包括: 在对于每一位保持第一值或者第二值的存储单元阵列的预定数据区域中,在写入处理之前从要写入的数据区域读取预读取数据; 在选择性地允许所述预读取数据转变到要在所述写入处理中写入的写入数据的第一转换候选或者第二转换候选时,基于两个值中较大的一个产生用于选择所述第一转换候选或者所述第二转换候选的确定结果,所述两个值中的一个是在所述预读取数据到所述第一转换候选的转变时从所述第一值转变到所述第二值的位的数目,且另一个是在所述预读取数据到所述第一转换候选的转变时从所述第二值转变到所述第一值的位的数目;和 根据所述确定结果选择所述第一转换候选或者所述第二转换候选,同时输出指示已经选择了两个候选中的哪个的选择信息。
【文档编号】G06F3/06GK103513934SQ201310231214
【公开日】2014年1月15日 申请日期:2013年6月9日 优先权日:2012年6月19日
【发明者】石井健, 筒井敬一, 藤波靖, 中西健一, 足立直大, 大久保英明, 新桥龙男 申请人:索尼公司