基于存储在待编程存储单元中的数据来编码编程数据的制作方法

文档序号:6765354阅读:259来源:国知局
基于存储在待编程存储单元中的数据来编码编程数据的制作方法
【专利摘要】一种在非易失性存储器件中编程数据的方法包括:接收将要在非易失性存储器件的选择的存储单元中进行编程的编程数据;从选择的存储单元读取数据;使用根据编程数据与读取数据的比较从多个编码方案当中选择的至少一个编码方案对编程数据进行编码;产生包括编码信息的标志数据;以及在选择的存储单元中编程已编码的编程数据和标志数据。
【专利说明】基于存储在待编程存储单元中的数据来编码编程数据
[0001]对相关申请的交叉引用
[0002]本申请要求于2012年10月23日提交的韩国专利申请N0.10-2012-0118019的优先权,通过引用将其全部内容合并于此。
【技术领域】
[0003]本发明概念一般涉及半导体存储器件,并且更具体地,涉及包括非易失性存储器件和控制器的存储系统以及用于在非易失性存储器件中编程数据的方法。
【背景技术】
[0004]根据在断开电源时是否保留数据,半导体存储器件可以大致分为两类。这些类别包括:易失性存储器件,其在从电源断开时损失所存储的数据;以及非易失性存储器件,其在从电源断开时保持所存储的数据。易失性存储器件的示例包括静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、和同步DRAM (SDRAM)0非易失性存储器件的示例包括只读存储器(ROM)、可编程ROM (PR0M)、电可编程ROM (EPR0M)、电可擦除可编程ROM(EEPR0M)、闪速存储器件、相变 RAM (PRAM)、磁 RAM (MRAM)、电阻 RAM (RRAM)、和铁电 RAM(FRAM)0
[0005]对于非易失性存储器件,存在改善性能特性的不间断的需求,例如,需要更快的操作速度和更低的功耗。为了满足该需求,研究人员试图对器件的物理和操作特性两方面进行改善。

【发明内容】

[0006]在本发明概念的一个实施例中,一种在非易失性存储器件中编程数据的方法包括:接收将要在非易失性存储器件的选择的存储单元中进行编程的编程数据;从选择的存储单元读取数据;使用根据编程数据与读取数据的比较从多个编码方案当中选择的至少一个编码方案对编程数据进行编码;产生包括编码信息的标志数据;以及在选择的存储单元中编程已编码的编程数据和标志数据。
[0007]在本发明概念的另一实施例中,一种对存储器进行编程的方法包括:接收将要在存储器的选择的存储单元中编程的编程数据;从选择的存储单元读取数据;将编程数据分割为多个编程数据组,并且将读取数据分割为多个读取数据组;使用根据每个编程数据组与相应的读取数据组之间的比较从多个编码方案当中选择的至少一个编码方案对每个编程数据组进行编程;通过组合已编码的编程数据组来产生编码数据;产生包括每个编程数据组的编码信息的标志数据;以及在选择的存储单元中对编码数据和标志数据进行编程。
[0008]在本发明概念的另一实施例中,一种对存储器进行编程的方法包括:接收将要在选择的存储单元中编程的编程数据;从选择的存储单元读取数据;将编程数据选择作为候选数据;将编程数据与候选数据进行比较;基于所述比较,在候选数据与读取数据之间的距离小于一参考值的情况下选择候选数据作为编码数据,在候选数据与读取数据之间的距离大于该参考值的情况下经由候选数据的循环移位来产生额外的候选数据,并且根据额外的候选数据的比较来再次执行比较和选择编码数据;产生包括关于从编程数据移位的编码数据的比特数的信息的标志数据;以及在存储器的存储单元处编程编码数据和标志数据。
[0009]在本发明概念的另一实施例中,一种存储系统包括:存储器;以及被配置为控制存储器的控制器,其中,该控制器包括:随机存取存储器;主机接口,其被配置为接收来自外部设备的编程数据并且将编程数据存储在随机存取存储器中;存储器接口,其被配置为接收从存储器读取的数据并且将读取数据存储在随机存取存储器中;数据编码单元,其被配置为基于存储在随机存取存储器中的读取数据对存储在随机存取存储器中的编程数据进行编码,并且将编码数据存储到随机存取存储器中;以及处理器,其被配置为控制存储器接口以在存储器中编程随机存取存储器的编码数据。该数据编码单元被进一步配置为根据读取数据与编程数据之间的比较来产生编码数据。
[0010]在本发明概念的另一实施例中,一种对存储器进行编程的方法包括:接收将要在选择的存储单元中编程的编程数据;从选择的存储单元读取数据;将编程数据分割为第一部分和第二部分;通过反转编程数据的第一部分来产生第一候选数据;通过反转编程数据的第二部分来产生第二候选数据;从第一候选数据和第二候选数据当中选择与读取数据具有最小距离的数据作为编码数据;产生包括关于所选择的数据的信息的标志数据;以及在所选择的存储单元中对编码数据和标志数据进行编程。
[0011]本发明概念的这些和其他实施例可以通过减小在编程操作中改变的比特数来潜在地减小编程操作中消耗的功率量。
【专利附图】

【附图说明】
[0012]附图示出本发明概念的选择实施例。附图中,类似的引用数字指示类似的特征。
[0013]图1是示出根据本发明概念的实施例的存储系统的框图;
[0014]图2是示出根据本发明概念的实施例的非易失性存储器件的框图;
[0015]图3A是示出根据本发明概念的实施例的存储单元阵列的电路图;
[0016]图3B是示出根据本发明概念的实施例的存储单元阵列的电路图;
[0017]图3C是示出根据本发明概念的实施例的存储单元阵列的电路图;
[0018]图4是示出根据本发明概念的实施例的控制器的框图;
[0019]图5是示出根据本发明概念的实施例的编程非易失性存储器件的方法的流程图;
[0020]图6A是示出根据本发明概念的实施例的对其中执行编码并产生标志数据的非易失性存储器件进行编程的方法的流程图;
[0021]图6B是示出根据本发明概念的实施例的图6A的方法的应用的流程图;
[0022]图7A是示出根据本发明概念的实施例的图6的方法的另一应用的图;
[0023]图7B是示出根据本发明概念的实施例的图6的方法的另一应用的图;
[0024]图7C是示出根据本发明概念的实施例的使用2比特标志数据的图6的方法的模拟结果的图;
[0025]图7D是示出根据本发明概念的实施例的使用4比特标志数据的图6的方法的模拟结果的图;
[0026]图8示出根据本发明概念的实施例的对其中执行编码并产生标志数据的非易失性存储器件进行编程的另一方法的流程图;
[0027]图9是示出根据本发明概念的实施例的图8的方法的应用的图;
[0028]图10示出根据本发明概念的实施例的对其中执行编码并产生标志数据的非易失性存储器件进行编程的另一方法的流程图;
[0029]图11是示出根据本发明概念的实施例的图10的方法的应用的图;
[0030]图12是示出根据本发明概念的实施例的对其中执行编码并产生标志数据的非易失性存储器件进行编程的另一方法的流程图;
[0031]图13A是示出根据本发明概念的实施例的图12的方法的应用的图;
[0032]图13B是示出根据本发明概念的实施例的图12的方法的另一应用的图;
[0033]图14是示出根据本发明概念的另一实施例的对非易失性存储器件进行编程的方法的流程图;
[0034]图15是示出根据本发明概念的实施例的对其中选择编码方案、执行编码、并产生标志数据的非易失性存储器件进行编程的方法的流程图;
[0035]图16是示出根据本发明概念的实施例的对其中预测候选数据与读取数据的距离并根据预测结果来选择编码方案的非易失性存储器件进行编程的方法的流程图;
[0036]图17是示出根据本发明概念的实施例的对其中选择编码方案、执行编码、并产生标志数据的非易失性存储器件进行编程的方法的流程图;
[0037]图18是示出根据本发明概念的实施例的对其中选择编码方案、执行编码、并产生标志数据的非易失性存储器件进行编程的方法的流程图;
[0038]图19是示出根据本发明概念的实施例的对非易失性存储器件进行编程的方法的流程图;
[0039]图20是示出根据本发明概念的实施例的对其中数据编码和解码单元将编程数据进行分割并对编程数据的分割部分进行解码的非易失性存储器件进行编程的方法的图;
[0040]图21是示出根据本发明概念的另一实施例的存储系统的框图;以及
[0041]图22是示出根据本发明概念的实施例的计算系统的框图。
【具体实施方式】
[0042]以下将参照【专利附图】

【附图说明】本发明概念的实施例。这些实施例被呈现为教学示例,而不应当被解读为限制本发明概念的范围。
[0043]下面的说明中,使用术语“第一”、“第二”、“第三”来描述各种特征,但所描述的特征不应该被这些术语所限制。相反,这些术语仅仅用于区分不同的特征。因此,第一特征也可以被称为第二特征而不背离相关的教导。
[0044]这里使用的术语仅仅用于描述特定实施例的目的,而并非意在限制本发明概念。如这里所用,单数形式“ 一 ”、“ 一个”和“该”意图也包括复数形式,除非上下文清楚地另有指示。术语“包括”和/或“包含”在这里使用时,表示存在所述的特征,但不排除存在其他特征。如这里所用,术语“和/或”包括一个或多个相关联的所列项目的任何一个以及所有组合。
[0045]除非另有定义,这里使用的所有术语(包括技术和科学术语)具有与本领域普通技术人员通常理解的相同的含义。诸如在常用辞典中定义的术语应当被解释为具有与它们在相关技术和/或本说明书的上下文中的含义相一致的含义,并且将不以理想化或过于形式的方式解释,除非有明确定义。
[0046]图1是示出根据本发明概念的实施例的存储系统的框图。
[0047]参考图1,存储系统1000包括非易失性存储器1100和控制器1200。
[0048]非易失性存储器1100在控制器1200的控制下操作,并且响应于从控制器1200传送的控制信号CTRL、命令CMD、地址ADDR、和数据DATA而执行编程、读取、和擦除。非易失性存储器1100可以包括例如非易失性随机存取存储器。例如,它可以包括相变RAM (PRAM)、磁RAM (MRAM)、电阻RAM (RRAM)、铁电RAM (FRAM)0替换地,非易失性存储器1100可以包括NAND闪速存储器。
[0049]控制器1200控制非易失性存储器1100,并且向非易失性存储器1100发送控制信号CTRL、命令CMD、地址ADDR和数据,或从非易失性存储器1100接收数据。控制器1200典型地在外部主机的控制下控制非易失性存储器1100。
[0050]控制器1200包括数据编码/解码单元1260。数据编码/解码单元1260被配置为对从主机传送的数据进行编码。可以在非易失性存储器1100处对编码数据进行编程。数据编码/解码单元1260被配置为对从非易失性存储器1100中读取的数据进行解码。解码的数据被发送到主机。
[0051 ] 在某些实施例中,通过产生经由与存储单元连接的导线流动的电流来改变存储单元的逻辑状态,非易失性存储器1100在存储单元中存储数据。在编程时其数据发生变化的存储单元的数量可以是用于确定存储系统1000的功率消耗的因子。
[0052]数据编码/解码单元1260将数据编码以使得降低编程中的功耗。例如,在编程操作中,数据编码/解码单元1260可以对数据进行编码,以使得最小化将要存储在存储单元中的数据与已存储在存储单元中的数据之间的差,如将在下面进一步详细描述的。
[0053]虽然图1示出其中数据编码/解码单元1260被包括作为控制器1200的组件的示例,但本发明概念不限于此。例如,非易失性存储器1100可以替换地被配置为包括数据编码/解码单元1260。为了便于描述,假定在控制器1100中包括数据编码/解码单元1260。然而,本发明概念不限于此。
[0054]存储系统1000例如可以是诸如PC/PCMCIA卡、紧凑闪存(CF)卡、智能媒体(SM)卡(SMC)、记忆棒、多媒体卡(MMC、RS -MMC、MMCmicro 等)、SD 卡(SD、miniSD 卡、SDHC 等)、通用闪速存储(UFS)等的存储卡。替换地,存储系统1000可以形成固态驱动器(SSD)。在一些实施例中,存储系统1000可以被用作为计算机系统的主存储器。
[0055]图2是示出根据本发明概念的实施例的非易失性存储器件1100的更详细示例的框图。
[0056]参考图2,非易失性存储器1100包括存储单元阵列1100、行译码器1120、列译码器1130、地址译码器1140、数据输入/输出(I/O)电路1150、以及电压产生器和控制逻辑块1160。
[0057]存储单元阵列1100包括多个非易失性存储单元。存储单元经由字线而与行译码器1120连接,并且经由位线与列译码器1130连接。在一些实施例中,存储单元阵列1110中的存储单元的行与字线连接,并且其中的存储单元的列与位线连接。
[0058]行译码器1120经由字线而与存储单元阵列1110连接,并且在电压产生器和控制逻辑块1160的控制下进行操作。行译码器1120响应于来自地址译码器1140的译码行地址DRA,来选择或取消选择字线。行译码器1120向至少一个选择的字线或未被选择的字线提供从电压产生器和控制逻辑块1160提供的电压。
[0059]列译码器1130经由位线而与存储单元阵列连接。列译码器1130在电压产生器和控制逻辑块1160的控制下进行操作。列译码器1130响应于来自地址译码器1140的译码列地址DCA而选择或取消选择位线。列译码器1130向位线提供从电压产生器和控制逻辑块1160提供的电压。
[0060]在一些实施例中,列译码器1130经由数据线DL来接收和存储数据。列译码器1130基于所存储的数据来选择或取消选择位线。列译码器1130感应和存储位线的电压或电流。发送结果可以是从存储单元阵列1110读取的数据。读取数据经由数据线DL而输出。
[0061 ] 地址译码器1140在电压产生器和控制逻辑块1160的控制下进行操作。地址译码器1140从控制器1200接收和存储地址ADDR。地址译码器1140对所存储地址的行地址进行解码,并且将所产生的译码行地址DRA发送到行译码器1120。地址译码器1140解码所存储地址的列地址,并且将所得到的译码列地址DCA发送到列译码器1130。
[0062]数据输入/输出电路1150在电压产生器和控制逻辑块1160的控制下进行操作。数据输入/输出电路1150存储从控制器1200传送的数据,以将其经由数据线DL输出。数据输入/输出电路1150存储经由数据线DL传送的数据,并且把其输出给控制器1200。
[0063]电压产生器和控制逻辑块1160被配置为接收来自控制器1200的控制信号CTRL和命令CMD。电压产生器和控制逻辑块1160被配置为响应于控制信号CTRL和命令CMD来控制非易失性存储器1100的整体操作。例如,电压产生器和控制逻辑块1160可以将电源提供给非易失性存储器1100的构成元件,并且控制非易失性存储器1100的构成元件的操作定时。
[0064]图3A至3C是示出根据本发明概念的各种实施例的存储单元阵列1110的示例的电路图。
[0065]参考图3A,存储单元阵列11IOA包括与字线WLl至WLn和位线BLl至BLm连接的存储单元MC。每个存储单元MC包括可变电阻元件。可变电阻元件可以具有根据温度、电压或电流条件、磁场配置等而发生变化的电阻值。存储单元MC可以根据字线WLl至WLn和位线BLl至BLm的电压而被选择或取消选择。
[0066]参考图3B,存储单元阵列1110B包括与字线WLl至WLn和位线BLl至BLm连接的存储单元MC。每个存储单元MC包括可变电阻元件和二极管。可变电阻元件可以具有根据温度、电压或电流条件、磁场配置等而发生变化的电阻值。当二极管被正向偏置时,电流流过二极管。当二极管被反向偏置时,没有电流流过二极管。二极管使得能够根据字线WLl至WLn和位线BLl至BLm的电压改善存储单元MC的选择性。在一些实施例中,根据非易失性存储器1100的编程、读取、和擦除方案改变二极管的位置和方向。
[0067]参考图3C,存储单元阵列11IOC包括与字线WLl至WLn、源极线SLl至SLn、以及位线BLl至BLm连接的存储单元MC。每个存储单元MC包括可变电阻元件和晶体管。可变电阻元件可以具有根据温度、电压或电流条件、磁场配置等而发生变化的电阻值。晶体管可以根据字线WLl至WLn的电压而导通或截止。晶体管可以允许改善存储单元MC的选择性。
[0068]在某些实施例中,根据非易失性存储器1100的编程、读取、和擦除方案改变晶体管的位置和连接关系。行译码器1120或列译码器1130与源极线SLl-SLn连接。
[0069]图4是示出根据本发明概念的实施例的控制器1200的示例的框图。
[0070]参考图4,控制器1200包括总线1210、处理器1220、RAM1230、主机接口 1240、存储器接口 1250、和数据编码/解码单元1260。
[0071]总线1210提供控制器1200的构成元件1220至1260之间的通道。处理器1220控制控制器1200的构成元件1220至1260。RAM1230被用作处理器1220或控制器1200的工作存储器。RAM1230 可以包括 DRAM、SRAM、FRAM、MRAM、PRAM、RRAM 等。
[0072]主机接口 1240被配置为在处理器1220的控制下与主机进行通信。主机接口 1240使用诸如例如通用串行总线(USB)、多媒体卡(MMC)、外围组件互连(PCI)、PC1-express(PC1-E)、高级技术附件(ΑΤΑ)、串行ΑΤΑ、并行ΑΤΑ、小型计算机小型接口(SCSI)、增强型小型磁盘接口(ESDI)、集成驱动器电子(IDE)、和火线(Firewire)的通信标准来与主机进行通信。
[0073]存储器接口 1250与非易失性存储器1100进行通信。数据编码/解码单元1260执行数据编码和解码。例如,数据编码/解码单元1260可以对经由主机接口 1240从主机接收并且被存储在RAM1230中的数据进行编码。编码数据被存储在RAM1230中,并且经由存储器接口 1250而从该处发送到非易失性存储器1100。数据编码/解码单元1260对经由存储器接口 1250从非易失性存储器件1100接收并且被存储在RAM1230中的数据进行解码。解码数据被存储在RAM1230中,以经由主机接口 1240发送到主机。
[0074]数据编码/解码单元1260对数据进行编码,以使得减小非易失性存储器1100的存储单元的数据中的变化。数据编码/解码单元1260产生关于编码的信息。将该信息与编码数据发送到非易失性存储器1100。数据编码/解码单元1260还与数据一起从非易失性存储器1100接收编码信息,并且基于编码信息对输入数据进行解码。
[0075]以下,将数据编码/解码单元1260产生的关于编码的信息称为标志数据。
[0076]在某些实施例中,数据编码/解码单元1260包括与处理器1220分离的组件。然而,在一些实施例中,数据编码/解码单元1260可以被包括作为处理器1220的组件。数据编码/解码单元1260典型地通过处理器1220驱动的软件来实现。然而,本发明概念不限于此。
[0077]图5是示出根据本发明概念的实施例的编程非易失性存储器件的方法的流程图。
[0078]参考图1、4、和5,在操作SllO中,从主机接收编程数据。控制器1200经由主机接口从主机接收编程数据,并将其存储在RAM1230中。
[0079]在操作S120中,从非易失性存储器1100读取与编程数据对应的数据。例如,控制器1200可以从将要在其中存储编程数据的非易失性存储器1100的存储区域读取数据。控制器1200控制非易失性存储器1100使用与编程数据一起接收的地址来执行读取操作。读取数据经由存储器接口 1250而被存储在RAM1230中。
[0080]在步骤S130中,根据编程数据和读取数据对编程数据进行编码,并且产生包括编码信息的标志数据。接着,数据编码/解码单元1260将编程数据与存储在RAM1230中的读取数据进行比较。数据编码/解码单元1260根据比较结果对RAM1230中的编程数据进行编码。数据编码/解码单元1260通过编码产生至少一个单元的候选数据,并且将编程数据与候选数据比较。数据编码/解码单元1260选择候选数据和编程数据中的一个作为编码数据。
[0081]编码数据被存储在RAM1230中。当数据编码/解码单元1260选择编程数据作为编码数据时,可以跳过将编码数据存储在RAM1230中的操作。当编码数据被选择时,数据编码/解码单元1260产生包括编码信息的标志数据。标志数据包括指示是否候选数据和编程数据中的任何一个被选择作为编码数据的信息。标志数据被存储在RAM1230中。
[0082]在步骤S140中,将编码数据和标志数据存储在非易失性存储器1100中。存储在RAM1230中的编码数据和标志数据经由存储器接口 1250而被发送到非易失性存储器1100。非易失性存储器1100在控制器1200的控制下,将接收数据编程到其中存储读取数据的存储区域中。
[0083]图6A是示出根据本发明概念的实施例的对其中执行编码并产生标志数据的非易失性存储器件进行编程的方法的流程图。
[0084]参考图6A,在操作S210中,选择编程数据作为候选数据。在操作S220中,将读取数据与候选数据进行比较。例如,可以比较读取数据与候选数据之间的距离。该距离可以是读取数据和与读取数据比较的数据之间的不同位的数量。
[0085]在步骤S230中,确定距离是否低于参考值。例如,可以确定读取数据与候选数据之间的距离是否低于参考值。如果距离低于参考值,则在操作S240中,选择候选数据作为编码数据。之后,方法前进到操作S280。如果距离不低于参考值,则方法前进到操作S250。
[0086]在步骤S250中,确定当前循环是否达到最大循环。通过数据编码/解码单元1260设置最大循环数。可以将最大循环数预先存储在控制器1200中。也可以经由控制器1200的模式寄存器来设置最大循环数。当当前循环未达到最大循环时,在操作S260中,通过将先前的候选数据移位一个比特来产生新的候选数据。之后,方法前进到操作S220。当当前循环达到最大循环时,在操作S270中,选择与读取数据具有最小距离的数据作为编码数据。
[0087]在操作S280中,产生指示选择的数据的标志数据。例如,标志数据可以包括关于从候选数据和编程数据当中选择作为编码数据的数据的信息。例如,标志数据可以包括关于从编程数据移位的选择的数据的比特数的信息。
[0088]图6B是示出根据本发明概念的实施例的图6A的编码方法的应用的流程图。
[0089]参考图6B,在操作S260中,计算读取数据与编程数据之间的距离。在操作S270中,将编程数据和读取数据之间的距离与参考值进行比较。如果编程数据和读取数据之间的距离小于参考值,则在操作S280中,选择编程数据作为编码数据。如果编程数据和读取数据之间的距离超过参考值,则在操作S290中,根据参照6A图描述的方式来执行编码方法。即,当编程数据与读取数据之间的距离超过参考值时,执行图6A的编码方法。
[0090]图7A是示出根据本发明概念的实施例的图6的方法的应用的图。在图7A的示例中,最大循环是3,并且差表示读取数据与编程数据和候选数据之间的差。例如,当对应于特定位置的读取数据的比特与编程或候选数据的比特相同时,该特定位置的差比特(difference bit)为“O”。另一方面,当对应于特定位置的读取数据的比特与编程或者候选数据的比特不同时,该特定位置的差比特为“I”。
[0091]参考图1和图7A,通过将编程数据移位一个比特来产生第一候选数据。例如,可以将编程数据向左移位。通过将编程数据移位两个比特来产生第二候选(或者,将候选数据移位一个比特)。通过将编程数据移位三个比特来产生第三候选(或者,将候选数据移位一个比特)。
[0092]编程数据与读取数据之间的距离为6。指示选择编程数据作为编码数据的标志数据是“00”。第一候选数据与读取数据之间的距离为6。指示选择第一候选数据作为编码数据的标志数据是“01”。第二候选数据与读取数据之间的距离为4。指示选择第二候选数据作为编码数据的标志数据是“10”。第三候选数据与读取数据之间的距离为4。指示选择第三候选数据作为编码数据的标志数据是“ 11 ”。
[0093]与读取数据具有最小距离的数据,S卩,第二候选数据和第三候选数据中的一个被选择作为编码数据。如果选择第二候选数据,则产生“10”的标志数据。如果选择第三候选数据,则产生“11”的标记数据。
[0094]第二候选数据或第三候选数据与读取数据之间的距离比编程数据与读取数据之间的距离更短。当将编程数据编程在非易失性存储器1100中时,六个比特被改变。S卩,六个存储单元的数据被改变。另一方面,当将第二候选数据或第三候选数据编程在非易失性存储器1100中时,四个比特被改变。即,四个存储单元的数据被改变。
[0095]在编程操作期间改变的存储单元的数目的减少可以减少功率消耗。因此,上述方法可以潜在地减少存储系统1000的功率消耗。功率消耗的这种减少还使得能够减少存储系统1000的尺寸和复杂度。
[0096]图7B是示出根据本发明概念的实施例的图6的方法的另一应用的图。在图7B的示例中,最大循环是3。与图7A相比,逐个字节地执行对读取数据、编程数据、以及第一至第三候选数据的比较和移位。即,可以按照字节以及按照比特来执行编码方法。
[0097]图7C是示出根据本发明概念的实施例的使用2比特标志数据的图6的方法的模拟结果的图。图7D是示出根据本发明概念的实施例的使用4比特标志数据的图6的方法的模拟结果的图。图7C和7D中,模拟结果基于随机的数据图案。
[0098]参考图7C和图7D,图中显示根据用于循环移位编码的编程数据的长度N,在对编程数据进行编程或者在对编码数据进行编程时发生改变的比特数。如图7C和7D所示,在对编程数据进行编程时发生变化的比特数与在非易失性存储器1100中对编程数据进行编程的情况相比减少。因此,根据本发明概念的实施例,可以经由编码方法(或编程方法)来降低存储系统1000的功耗。
[0099]图8示出根据本发明概念的实施例的对其中执行编码并产生标志数据的非易失性存储器件进行编程的方法的流程图。图8所示的编码是差分编码。
[0100]参考图8,在操作S310中,候选数据的第一比特被产生为与编程数据的第一比特相同。例如,如果编程数据的第一比特是“0”,则候选数据的第一比特被产生为具有“O”。另一方面,如果编程数据的第一比特是“ I ”,则候选数据的第一比特被产生为“ I ”。
[0101]在操作S320中,选择编程比特的下一比特。在操作S330中,确定选择的比特与前一比特是否相同。例如,可以确定编程数据的选择的比特与前一比特是否相同。如果编程数据的选择的比特是“ I ”,并且编程数据的前一比特是“ I ”,则编程数据的选择的比特被确定为与前一比特相同。如果编程数据的选择的比特是“0”,并且编程数据的前一比特是“0”,则编程数据的所选择的比特被确定为与前一比特相同。如果编程数据的选择的比特是“ I ”,并且编程数据的前一比特是“0”,则编程数据的选择的比特被确定为与前一比特不同。如果编程数据的选择的比特是“0”,并且编程数据的前一比特是“1”,则编程数据的选择的比特被确定为与前一比特不同。
[0102]如果编程数据的选择的比特被确定为与前一比特相同,则在操作S341中,将候选比特的比特产生为具有逻辑低值(例如,“O”)。如果编程数据的选择的比特被确定为与前一比特不同,则在操作S343中,将候选比特的比特产生为具有逻辑高值(例如,“I”)。例如,可以产生出现在与编程数据的选择的比特相同的位置处的候选数据的比特。
[0103]在一些实施例中,如果所选择的比特被确定为与前一比特相同,则候选比特的比特可以被产生为具有逻辑高值(例如,“I”)。如果所选择的比特被确定为前一比特不同,则候选比特的比特可以被产生为具有逻辑低值(例如,“O”)。
[0104]在步骤S350中,确定所选择的比特是否是最后的比特。例如,编程数据的选择的比特可被确定为是编程数据的最后比特。如果所选择的比特不是最后一个比特,则方法前进到操作S230。
[0105]如果所选择的比特是最后一个比特,则在操作S360至S380中,可以选编码数据,并且可以产生标志数据。与图6中的操作S230至S250 —样地执行操作S360至S380,因而省略其描述。
[0106]图9是示出根据本发明概念的实施例的图8的方法的应用的图。
[0107]参考图9,因为编程数据的第一比特是“1”,所以候选数据的第一比特被产生为“I”。编程数据的第二比特是“0”,并与第一比特不同。因此,候选数据的第二比特被产生为“I”。同样地,编程数据的两个连续比特被比较,并且根据比较结果来产生候选数据。
[0108]指示选择编程数据作为编码数据的标志数据可以具有值“O”。指示选择候选数据作为编码数据的标志数据可以具有值“ I ”。
[0109]编程数据与读取数据之间的距离为6。候选数据与读取数据之间的距离是I。因此,选择候选数据,并且产生具有值“ I ”的标志数据。
[0110]图10示出根据本发明概念的实施例的对其中执行编码并产生标志数据的非易失性存储器件进行编程的方法的流程图。图10所示的编码是二进制掩码编码。
[0111]参考图10,在操作S410中,产生预设数据。预设数据可以预先存储在控制器1200中。预设数据可以经由控制器1200的模式寄存器来设置。控制器1200存储多个数据,以选择一个数据作为预设数据。预设数据的长度可以与编程数据的相同。
[0112]在操作S420中,通过对编程数据和预设数据执行逻辑操作来产生候选数据。例如,对编程数据和预设数据进行异与(exclusive AND)操作,并且产生结果值作为候选数据。
[0113]在操作S430至S450中,选择编码数据并产生标志数据。与图6中的S230至S250一样地执行操作S430至S450,因而省略其描述。
[0114]图11是示出图10的方法的应用的图。
[0115]参考图11,编程数据与预设数据之间的异与操作的结果被产生作为候选数据。指示选择编程数据作为编码数据的标志数据可以具有值“O”。指示选择候选数据作为编码数据的标志数据可以具有值“I”。
[0116]编程数据与读取数据之间的距离为6。候选数据与读取数据之间的距离为4。因此,选择候选数据作为编码数据,并且产生具有值“I”的标志数据。在某些实施例中,从多个数据集中选择预设数据。该情况下,标志数据可以进一步包括指示数据集中的任何一个是否被选择作为预设数据的信息。
[0117]图12是示出根据本发明概念的实施例的对其中执行编码并产生标志数据的非易失性存储器件进行编程的方法的流程图。图12中示出的编码是比特反转编码。
[0118]参考图12,在操作S510中,通过将编程数据反转来产生候选数据。在操作S520到S540中,选择编码数据并且产生标志数据。与图6中的操作S230至S250 —样地执行操作S520至S540,因而省略其描述。
[0119]图13A是示出根据本发明概念的实施例的图12的方法的应用的图。图13A的示例中,通过将编程数据反转来产生候选数据。指示选择编程数据作为编码数据的标志数据的值是“O”。指示选择候选数据作为编码数据的标志数据的值是“I”。编程数据与读取数据之间的距离为6。候选数据与读取数据之间的距离为2。因此,选择候选数据,并且产生具有值“I”的标志数据。
[0120]图13B是示出根据本发明概念的实施例的图12的方法另一应用的图。在图13B的示例中,编程数据被分为多个部分,并且每个部分被选择性地反转。编程数据是8比特数据,并且被分成两部分。
[0121]通过将编程数据的第一部分反转来产生第一候选数据。通过将编程数据的第二部分反转来产生第二候选数据。通过将编程数据的第一部分和第二部分反转来产生第三候选数据。
[0122]指示选择编程数据作为编码数据的标志数据的值是“00”。指示选择第一候选数据作为编码数据的标志数据的值是“01”。指示选择第二候选数据作为编码数据的标志数据的值是“10”。指示选择第三候选数据作为编码数据的标志数据的值是“10”。
[0123]编程数据与读取数据之间的距离为6。第一候选数据与读取数据之间的距离为
6。第二候选数据与读取数据之间的距离为2。第三候选数据与读取数据之间的距离为2。因此,选择第二候选数据和第三候选数据中的一个作为编码数据,并且产生具有值“10”或“11”的标志数据。
[0124]图14是示出根据本发明概念的另一实施例的对非易失性存储器件进行编程的方法的流程图。
[0125]参考图14,在操作S610中,接收编程数据。在操作S620中,读取与编程数据对应的数据。与图5中的操作SllO和S120 —样地执行操作S610和S620。
[0126]在步骤S630中,选择多个编码方案中的一个,使用所选择的编码方案对编程数据进行编码,并且产生包括编码信息的标志数据。在操作S640中,在非易失性存储器1100中对编码数据和标志数据进行编程。在一些实施例中,在数据编码/解码单元1260中存储编码方案,并且通过数据编码/解码单元1260来执行编码方案的选择。
[0127]图15是示出根据本发明概念的实施例的对其中选择编码方案、执行编码、并产生标志数据的非易失性存储器件进行编程的方法的流程图。
[0128]参考图15,在操作S710中,预测多个编码方案的候选数据与读取数据之间的距离。通过计算影响距离的因素(以下,称为距离因素)来执行距离的预测。距离的预测可以包括直接计算预测距离的操作。距离的预测可以包括计算距离因素的操作。示范性地使用距离的预测以表达本发明概念。本发明概念可以不限于距离的直接预测。
[0129]在步骤S720中,根据预测结果来选择多个编码方案中的一个。例如,选择预期产生与读取数据具有最小距离的候选数据的编码方案。在操作S730中,使用所选择的编码方案对编程数据进行编码。在操作S740中,产生包括选择信息和编码信息的标志数据。选择信息可以包括指示编码方案中的任一项是否被选择的信息。
[0130]图16是示出根据本发明概念的实施例的对其中预测候选数据与读取数据的距离并根据预测结果来选择编码方案的非易失性存储器件进行编程的方法的流程图。
[0131]参考图16,在操作S711中,读取数据与编程数据之间的转变比特和相同比特被计数。术语“转变比特”指的是在读取数据和编程数据中具有不同的值的比特,并且,术语“相同比特”指的是在读取数据和编程数据中具有相同的值的比特。该操作可以对应于预测候选数据与读取数据之间的距离的操作(图15中的操作S170)。
[0132]在一些实施例中,当转变比特与相同比特之间的差小于阈值时,读取数据与根据循环移位编码方案产生的候选数据之间的距离被预测为小于读取数据与根据比特反转编码方案产生的候选数据之间的距离。当转变比特与相同比特之间的差大于阈值时,读取数据与根据循环移位编码方案产生的候选数据之间的距离被预测为大于读取数据与根据比特反转编码方案产生的候选数据之间的距离。
[0133]在操作S721中,确定转变比特数与相同比特数之间的差是否小于阈值。如果是这样,则在操作S723中,选择循环移位编码方案。如果不是这样,则在操作S725中,选择比特反转编码方案。
[0134]阈值是预先存储在控制器1200中的值。阈值是经由控制器1200的模式寄存器中设置的值。阈值被设置为编程数据的长度的一半。
[0135]操作S721至725可以对应于根据预测结果来选择编码方案的操作(图15中的操作 S720)。
[0136]虽然图16的描述涉及其中包括循环移位编码方案和比特反转编码方案的数据编码/解码单元1260使用转变比特数和相同比特数来选择编码方案的示例,但是本方法不限于该实例。
[0137]数据编码/解码单元1260可以包括循环移位编码方案、二进制掩码编码方案、比特反转编码方案等的至少两个编码方案。根据诸如转变比特数和相同比特数、编程数据比特的转变数目、编程数据与读取数据之间的相关性、用于二进制掩码编码的预设数据和编程数据之间的相关性、编程数据的“I”或“O”比特的数量等各种距离因素的计算结果,编码/解码单元1260可以选择编码方案。
[0138]图17是示出根据本发明概念的实施例的对其中选择编码方案、执行编码、并产生标志数据的非易失性存储器件进行编程的方法的流程图。
[0139]参考图17,在操作S810和S820中,根据预测结果来选择多个编码方案中的一个。与图15描述的操作S710和S720 —样地执行操作S810和S820。
[0140]在操作S830中,使用所选择的编码方案对编程数据进行编码。在操作S840中,确定编码数据与读取数据之间的距离是否小于阈值。如果编码数据与读取数据之间的距离大于阈值,则在操作S850中,选择编码方案的下一编码方案。例如,选择预期产生具有选择的编码方案的下一个最近距离的候选数据的编码方案。之后,方法前进到操作S830。
[0141]如果编码数据与读取数据之间的距离小于阈值,则在操作S860中,产生包括选择信息和编码信息的标志信息。[0142]S卩,虽然根据预测结果来选择编码方案,但是当选择的编码方案的编码结果不能满足特定的条件(例如,阈值)时,可以选择另一种编码方案。在某些实施例中,通过编程数据与读取数据之间的距离的比率来设置阈值。可以通过编程数据的所有比特的数目的比率来设置阈值。
[0143]图18是示出根据本发明概念的实施例的对其中选择编码方案、执行编码、并产生标志数据的非易失性存储器件进行编程的方法的流程图。
[0144]参考图18,在操作S910中,选择多个编码方案的第一编码方案。在操作S920中,通过使用所选择的编码方案对编程数据进行编码来产生候选数据。在操作S930中,确定距离是否小于参考值。例如,可以确定读取数据与候选数据之间的距离是否小于参考值。如果距离小于参考值,则在操作S940中,选择比较的候选数据为编码数据。之后,方法前进到操作S980。如果距离不小于参考值,则方法前进到操作S950。
[0145]在操作S930中,确定所选择的编码方案是否是最后的编码方案。如果所选择的编码方案不是最后的编码方案,则在操作S960,选择编码方案的下一编码方案。之后,方法前进到操作S920。如果所选择的编码方案是最后的编码方案,则方法前进到操作S970。
[0146]在步骤S970中,选择与读取数据具有最小距离的数据作为编码数据。在操作S980中,产生包括选择信息和编码信息的标志数据。
[0147]如上所述,使用多个编码方案对编程数据顺序地进行编码,并且根据编码结果选择具有最小距离的数据作为编码数据。
[0148]图19是示出根据本发明概念的实施例的对非易失性存储器件进行编程的方法的流程图。
[0149]参考图19,在操作S1010中,接收编程数据。在操作S1020中,从非易失性存储器1100中读取与编程数据对应的数据。与参考图5所述的操作SllO和S120 —样地执行操作S1010 和 S1020。
[0150]在步骤S1030中,选择多个编码方案中的两个或更多编码方案,使用所选择的编码方案对编程数据进行编码,产生包括选择信息和编码信息的标志数据。
[0151]在一些实施例中,选择比特反转编码方案和循环移位编码方案。该情况下,根据比特反转编码方案对编程数据进行第一编码。之后,根据循环移位编码方案对第一编码数据进行第二编码。本实施例使用比特反转编码方案和循环移位编码方案来进行描述。然而,本发明概念不限于此。
[0152]在步骤S1040中,在非易失性存储器1100处对编码数据和标志数据进行编程。
[0153]在某些实施例中,数据编码/解码单元1260可以选择两个或更多编码方案以及它们的组合。如参照图15至图17所述,数据编码/解码单元1260根据预测结果(或者,距离因素的计算结果)来选择编码方案。如上参照图18所述,数据编码/解码单元1260通过顺序选择和组合多个编码方案来执行编码,并且根据编码结果来选择编码数据。
[0154]在一些实施例中,当数据编码/解码单元1260选择循环移位编码方案和比特反转编码方案时,选择编程数据、比特反转编码数据、I比特循环移位编码数据、2比特循环移位编码数据、3比特循环移位编码数据、I比特循环移位和比特反转编码数据、2比特循环移位和比特反转编码数据位、以及3比特循环移位和比特反转编码数据中的一个作为编码数据。[0155]图20是示出根据本发明概念的实施例的其中数据编码和解码单元将编程数据进行分割并对编程数据的分割部分进行解码的示例的图。
[0156]参考图20,数据编码/解码单元1260将编程数据分割成多个部分,并且对编程数据的各部分进行编码。例如,数据编码/解码单元1260可以将相同的编码方案应用于编程数据的各部分。将循环移位编码方案、差分编码方案、二进制掩码编码方案、以及比特反转编码方案中的一个应用于编程数据的各部分。标志数据包括关于所选择的编码方案的信
肩、O
[0157]例如,数据编码/解码单元1260可以分别将独立的编码方案应用于编程数据的各部分。编程数据的第一部分被I比特循环移位编码,编程数据的第二部分被3比特循环移位编码,编程数据的第三部分是原始数据,并且编程数据的第四部分被比特反转编码。标志数据包括与分别应用于编程数据的各部分的编码方案相关的信息。如果编程数据被分割和编码,则可以进一步减少编码数据与读取数据之间的距离。
[0158]图21是示出根据本发明概念的另一实施例的存储系统的框图。
[0159]参考图21,存储系统2000包括非易失性存储器2100和控制器2200。
[0160]非易失性存储器2100包括被分割为多个组的多个非易失性存储器芯片。每个组中的非易失性内存芯片经由公共通道与控制器2200进行通信。在示例实施例中,非易失性存储器芯片可以经由多个通道CHl至CHK与控制器2200进行通信。
[0161]控制器2200包括数据编码和解码单元2260。数据编码和解码单元2260根据参考图5至图20所描述的方式来执行编码并产生标志数据。
[0162]图22是示出根据本发明概念的实施例的计算系统的框图。
[0163]参考图22,计算系统3000包括总线3100、处理器3200、存储系统3300、调制解调器3400、和用户界面3500。总线3100提供计算系统3000的组件之间的通道。处理器3200控制计算系统3000的整体操作,并且执行逻辑操作。存储系统3300包括根据本发明概念的实施例的存储系统1000或2000。存储系统3300可以被用作为计算系统3000的工作存储器或贮存器(storage)。工作存储器是处理器3200用于控制计算系统3000的存储空间。贮存器是计算系统3000用于长期保留数据的存储空间。
[0164]当使用存储系统3300作为工作存储器时,计算系统3000可以进一步包括单独的贮存器。另一方面,当使用存储系统3300作为贮存器时,计算系统3000可以进一步包括单独的工作存储器。调制解调器3400与外部设备执行有线或无线通信。
[0165]用户界面3500可以包括诸如相机、键盘、鼠标、麦克风、触摸垫、触摸面板、按钮、传感器等的用户输入接口、以及诸如显示器、扬声器、斜坡(ramp)、马达等的用户输出接口。
[0166]计算系统3000可以是诸如智能电话及、智能本等的移动多媒体设备,或者诸如智能电视机、智能监视器、计算机、笔记本计算机等的多媒体设备。
[0167]如上所述,在本发明概念的各种实施例中,将编程数据编码为与存储在非易失性存储器处的数据具有最小距离的数据,然后编程。因为减少编程时所切换的比特数,可以降低非易失性存储器的功耗。
[0168]前述为实施例的例示而不应当被解读为其限制。虽然已经描述一些实施例,但是本领域技术人员不难理解,在实施例中可以进行许多修改而不背离如权利要求限定的本发明概念的范围。
【权利要求】
1.一种在非易失性存储器件中编程数据的方法,包括: 接收将要在非易失性存储器件的选择的存储单元中进行编程的编程数据; 从选择的存储单元读取数据; 使用根据编程数据与读取数据的比较从多个编码方案当中选择的至少一个编码方案对编程数据进行编码; 产生包括编码信息的标志数据;以及 在选择的存储单元中编程已编码的编程数据和标志数据。
2.如权利要求1所述的方法,其中,对编程数据进行编码包括: 预测编码方案的编码结果;以及 根据预测结果来选择编码方案中的至少一个。
3.如权利要求2所述的方法,其中,预测编码结果包括对读取数据与编程数据之间的相同比特和转变比特进行计数。
4.如权利要求3所述的方法,其中, 编码方案包括循环移位编码方案和反转编码方案,并且 其中,选择编码方案中的至少一个包括: 在转变比特与相同比特之间的差小于一阈值的情况下使用循环移位编码方案来移位编程数据,并且在转变比特与相同比特之间的差高于该阈值的情况下使用反转编码方案来反转编程数据。
5.如权利要求2所述的方法,进一步包括: 在编码数据与读取数据之间的距离低于一阈值的情况下,产生包括编码信息的标志数据; 在编码数据与读取数据之间的距离高于该阈值的情况下,根据预测结果在编码方案当中选择另一个编码方案; 使用该另一个选择的编码方案对编程数据进行编码;以及 产生标志数据。
6.如权利要求1所述的方法,其中,对编程数据进行编码以及产生标志数据包括: 通过顺序地选择编码方案并且使用顺序选择的编码方案对编程数据进行编码来产生候选数据; 将读取数据分别与编程数据和候选数据进行比较; 从编程数据和候选数据当中选择与读取数据具有最小距离的数据作为编码数据;以及 产生包括编码信息的标志数据。
7.如权利要求1所述的方法,其中,对编程数据进行编码以及产生标志数据包括: 选择两个或更多编码方案; 使用所选择的两个或更多编码方案的组合对编程数据进行编码;以及 产生包括编码信息的标志数据。
8.如权利要求1所述的方法,其中,编码信息包括与从编程数据和通过至少一个编码方案产生的候选数据当中选择作为编码数据的数据相关的信息。
9.如权利要求1所述的方法,其中,编码方案包括经由编程数据的循环移位来产生候选数据的循环移位编码方案,并且标志数据包括与从编程数据循环移位的编码数据的比特数相关的信息。
10.如权利要求1所述的方法,其中,编码方案包括差分编码方案,其产生具有与编程数据的第一比特相同的第一比特、在编程数据转变的比特的位置处具有逻辑高值、并且在编程数据没有转变的比特的位置处具有逻辑低值的候选数据,并且标志数据包括与从编程数据和候选数据当中选择作为编码数据的数据相关的信息。
11.如权利要求1所述的方法,其中,编码方案包括二进制掩码编码方案,其通过对预设数据和编程数据执行逻辑操作来产生候选数据,并且标志数据包括与从编程数据和候选数据当中选择作为编码数据的数据相关的信息。
12.如权利要求1所述的方法,其中,编码方案包括比特反转编码方案,其通过将编程数据反转来产生候选数据,并且标志数据包括与从编程数据和候选数据当中选择作为编码数据的数据相关的信息。
13.如权利要求1所述的方法,其中,编程数据被分割为多个子数据,该至少一个编码方案被选择给子数据中的每一个。
14.一种对存储器进行编程的方法,包括: 接收将要在存储器的选择的存储单元中编程的编程数据; 从选择的存储单元读取数据; 将编程数据分割为多个编程数据组,并且将读取数据分割为多个读取数据组; 使用根据每个编程数据组与相应的读取数据组之间的比较从多个编码方案当中选择的至少一个编码方案对每个编程数据组进行编程; 通过组合已编码的编程数据组来产生编`码数据; 产生包括每个编程数据组的编码信息的标志数据;以及 在所选择的存储单元中对编码数据和标志数据进行编程。
15.如权利要求14所述的方法,其中,所述比较包括确定每个编程数据组与相应的读取数据组之间的转变比特和相同比特。
16.如权利要求14所述的方法,其中,根据编程数据组与相应的读取数据组之间的距离是否大于预定阈值来为每个编程数据组选择编码方案。
17.一种用于对存储器进行编程的方法,包括: 接收将要在选择的存储单元中编程的编程数据; 从选择的存储单元读取数据; 将编程数据选择作为候选数据; 将编程数据与候选数据进行比较; 基于所述比较,在候选数据与读取数据之间的距离小于一参考值的情况下选择候选数据作为编码数据,在候选数据与读取数据之间的距离大于该参考值的情况下经由候选数据的循环移位来产生额外的候选数据,并且根据额外的候选数据的比较来再次执行比较和选择编码数据; 产生包括关于从编程数据移位的编码数据的比特数的信息的标志数据;以及 在存储器的存储单元处对编码数据和标志数据进行编程。
18.如权利要求17所述的方法,其中,如果在没有选择编码数据的情况下将所述再次执行执行了预定次数,则将编程数据和通过循环移位产生的候选数据当中与读取数据具有最小距离的数据选择作为编码数据。
19.如权利要求17所述的方法,其中,所述比较包括确定编程数据与候选数据之间的转变比特和相同比特。
20.如权利要求17所述的方法,其中,对编码数据进行编程包括在选择的存储单元中保留与编码数据的相应比特相同的读取数据的比特。
21.如权利要求17所述的方法,其中,该存储器是相变随机存取存储器。
22.—种存储系统,包括: 存储器;以及 控制器,其被配置为用于控制该存储器, 其中,该控制器包括: 随机存取存储器; 主机接口,其被配置为接收来自外部设备的编程数据并且将编程数据存储在随机存取存储器中; 存储器接口,其被配置为接 收从存储器读取的数据并且将读取数据存储在随机存取存储器中; 数据编码单元,其被配置为基于存储在随机存取存储器中的读取数据对存储在随机存取存储器中的编程数据进行编码,并且将编码数据存储到随机存取存储器中;以及 处理器,其被配置为控制存储器接口,以在存储器中编程随机存取存储器的编码数据,其中,该数据编码单元被进一步配置为根据读取数据与编程数据之间的比较来产生编码数据。
23.如权利要求22所述的存储系统,其中,该数据编码单元进一步被配置为选择多个编码方案中的至少一个,并且使用该至少一个编码方案对编程数据进行编码。
24.如权利要求22所述的存储系统,其中,该数据编码单元进一步被配置为经由编程数据的循环移位编码来产生候选数据,并且从编程数据和候选数据当中选择与读取数据具有最小距离的数据作为编码数据。
25.如权利要求22所述的存储系统,其中,该存储器包括磁随机存取存储器。
26.如权利要求22所述的存储系统,其中,该存储器包括相变随机存取存储器。
27.如权利要求22所述的存储系统,其中,所述比较包括确定编程数据与读取数据之间的转变比特和相同比特。
28.—种对存储器进行编程的方法,包括: 接收将要在选择的存储单元中编程的编程数据; 从选择的存储单元读取数据; 将编程数据分割为第一部分和第二部分; 通过反转编程数据的第一部分来产生第一候选数据; 通过反转编程数据的第二部分来产生第二候选数据; 从第一候选数据和第二候选数据当中选择与读取数据具有最小距离的数据作为编码数据; 产生包括关于所选择的数据的信息的标志数据;以及 在所选择的存储单元中对编码数据和标志数据进行编程。
29.如权利要求28所述的方法,其中,根据编程数据与第一候选数据和第二候选数据之间的转变比特的数目来定义最小距离。
30.如权利 要求28所述的方法,其中,该存储器包括磁随机存取存储器或相变随机存取存储器。
【文档编号】G11C16/06GK103778961SQ201310503112
【公开日】2014年5月7日 申请日期:2013年10月23日 优先权日:2012年10月23日
【发明者】刘永健, 孔骏镇, 薛昶圭, 孙弘乐, 刘炫硕 申请人:三星电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1