存储电路和操作存储电路的方法与流程

文档序号:14716586发布日期:2018-06-16 01:28阅读:226来源:国知局
存储电路和操作存储电路的方法与流程

各种实施例总体上涉及存储电路和操作存储电路的方法。



背景技术:

在基本的典型布置中,存储单元可以以矩阵方式布置,其中,在一个方向上,存储单元可以连接至公共字线,而在正交方向上它们可以连接至公共位线。更多的层级可以基于这种布置,但在本文中这可能是不相关的。

通常,“擦除”操作可以影响连接至至少一个字线的所有存储单元,从而将它们全部设置为限定未写入状态的值,例如为“1”;“写入”操作可以影响连接至一个字线的一些存储单元,从而将它们设置为限定写入状态的值,例如为“0”,其中,可以通过位线来选择要写入的特定存储单元;并且“读取”操作可以读取连接至一个字线的一些存储单元,从而产生由“1”和“0”组成的数据,其中,可以通过位线来选择要读取的特定存储单元。

对于所有这些操作,地址可以定义哪个字线和(擦除操作除外)哪些位线将被操作。

对于高度安全的存储器的操作,可能必要的是,即使在对芯片进行物理访问的攻击者的情况下,仍能够可靠地验证对预期的存储单元执行或实际上已经执行了如擦除、写入和读取的存储器操作。

如果必须假设攻击者不仅能够操纵擦除、写入和/或读取操作,而且还能够操纵验证操作本身,则这可能是难以实现的。

目前可以通过使用地址相关数据加密来部分地实现该目的。但是,并非所有相关情况都可以被此覆盖。



技术实现要素:

在各种实施例中,提供了一种存储电路。存储电路可以包括:沿着多个行和多个列被布置在电可编程非易失性存储单元阵列中的多个电可编程存储单元;多个字线,每个字线与多个存储单元的多个字部耦接,其中每个字部被配置成存储数据字;以及与多个重叠(overlay)部耦接的至少一个重叠字线,每个重叠部包括多个重叠存储单元,其中多个重叠部中的每一个包括重叠字,其中存储电路被配置成:针对多个字线中的每一个,从每个字部与多个重叠部中的一个重叠部同时进行读取,从而提供对数据字和重叠字执行的逻辑运算的结果作为读取操作的输出。

附图说明

在附图中,相同的附图标记通常在所有不同的视图中指代相同的部分。附图不一定按比例绘制,而是通常重点说明本发明的原理。在下面的描述中,参考以下附图来描述本发明的各种实施例,在附图中:

图1A和1B示出了根据各种实施例的存储电路的示意图;

图2示出了根据各种实施例的操作存储电路的方法的图示;

图3示出了根据各种实施例的在存储电路中和在操作存储电路的方法中使用的示例性重叠字线数据;

图4示出了根据各种实施例的操作存储电路的方法的流程图;

图5示出了根据各种实施例的操作存储电路的方法的图示;以及

图6示出了根据各种实施例的操作存储电路的方法的流程图。

具体实施方式

以下详细描述参考附图,附图以说明的方式示出了可以实践本发明的特定细节和实施例。

词语“示例性”在本文中用于表示“用作示例、实例或说明”。本文中描述为“示例性”的任何实施例或设计不一定被解释为比其它实施例或设计更为优选或更有利。

关于形成在侧面或表面“之上”的沉积材料所使用的词语“之上”在本文中可以用于表示沉积材料可以“直接”形成在相关的侧面或表面“上”,例如与相关的侧面或表面直接接触。关于形成在侧面或表面“之上”的沉积材料所使用的词语“之上”在本文中可以用于表示沉积材料可以“间接”形成在相关的侧面或表面“上”,其中一个或更多个附加层被布置在相关的侧面或表面与沉积材料之间。

在本文中,对于可能出现多个的各种元件(例如,存储单元、字线、位线、标记位线等),可以使用共同的基本附图标记,例如在附图及其描述中,其后可以有用于标识多个元件中的各个元件的数字。即使在仅使用单独标识的情况下,所标识的元件也要被理解为是基本元件的代表。

在各种实施例中,可以提供高度安全的非易失性存储器(NVM)的设计和操作。例如,可以提供存储电路和操作存储电路的方法。

在各种实施例中,存储电路可以被设置有例如从存储器阵列中的两个字线同时执行读取操作(该处理可以被称为“重叠读取”)的额外能力,从而例如对每个字线中的一个数据字进行寻址。例如,同时读取可以产生对两个被寻址的数据字隐含执行逻辑运算的结果。

在各种实施例中,可以对存储器阵列中的字线的相同部分执行多个写入操作(该处理可以被称为“重叠写入”),其中,在第一写入操作期间写入的数据字可以称为现有字或基本字,而在第二或另一写入操作期间写入的数据字可以称为新数据字或简称为数据字。写入可以导致存储对现有数据字和新数据字隐含执行逻辑运算的结果。

在各种实施例中,对于重叠写入,可以使用可以保持特殊属性并且可以通过重写来被扩展的特别约束的随机值,使得它们可以再次保持一些不同的特殊属性。

上述实施例的每个特征(重叠读取、重叠写入和使用约束随机值的重叠写入)本身可以具有其优点并且可能已经解决了(能够可靠地验证对预期的存储单元执行或实际已经执行了如擦除、写入和读取的存储操作的)问题的相关部分,但是被组合后,例如组合所有三个特征或仅组合三个中的两个,它们可以极其强大地提高安全性。

在各种实施例中,重叠读取可以被用于验证从预期位线读取了一些数据。

在各种实施例中,读取操作的正确执行可以通过不仅以正常方式(其可以产生所请求的数据字)读出被寻址的字线而且还读出相同的字来被验证,但是现在该相同的字与重叠字线的相应重叠字重叠。重叠字可以被配置成允许例如通过包括地址码来识别字线。重叠读取可以通过同时读取数据字和重叠字来被执行,从而分别对数据字和重叠字的成对位固有地执行逻辑运算。逻辑运算可以取决于存储电路的布局,例如类型,并且可以例如是AND(与)、OR(或)、NAND(与非)、NOR(或非)、XOR(异或)或者XNOR(同或)运算中的一种。使用已知的重叠字,独立读取的数据字和重叠读取的数据字,可以检查对数据字和重叠字对应用逻辑运算是否产生重叠读取的字。如果不满足该条件,则读取处理可能已经将与预期不同的一组位线设为目标或没有将一组位线(其可以对应于字线内的字地址)设为目标。

在各种实施例中,可以像任何正常存储单元一样在重叠字线WLol上写入字。因此,通过将WLol上的相应位置写为无效的值(例如全“0”),可以将字位置(其可以对应于字地址)有意地标记为无效,使得上述检查(即检查对数据字和重叠字对应用逻辑运算是否产生重叠读取的字)会失败的概率非常高,直到字线WLol被擦除并再次重新初始化。

在各种实施例中,可以使用例如具有不同码的不止一个的重叠字线WLol。因此,可以提供在重叠读取期间重叠字线与所选字线的更多组合,使得可以实现甚至更高的数据安全级别。

在各种实施例中,可以使用两个互补编码的字线,例如两个互补字线中的一个的值是另一个字线的值的相反值。在这样的情况下,可以通过将两个互补编码的字线上的相应位置写为全“0”来实现完美的无效。

在各种实施例中,可以提供安全地重写数据的方法。该方法可以称为重叠写入。在各种实施例中,在写入之后,仍然可以检查正确的数据被重写(而不是一些其它数据或根本没有数据)。在各种实施例中,已经存在的数据字(换句话说,可能已经被存储在存储器中的数据字)可以用至少一个预定义的模式来被重写(也称为校验字或重叠字)。写入操作可以对数据字和重叠字隐含地执行逻辑运算(例如,按位(bitwise)),从而产生重叠字。逻辑运算可以取决于存储电路的布局例如类型,并且可以例如是与运算和或运算中的一个。

在各种实施例中,重叠写入可以被用于验证预期的数据被真正重写。在各种实施例中,在重写之后执行读取处理可以产生(与重叠字重叠的数据字的)重叠字。结合例如已知的重叠字和例如已知的数据字,可以检查对数据字和重叠字对应用逻辑运算是否产生重叠字。如果不满足该条件,则写入处理可能已经将存储器的与预期不同的部分设为目标或者没有将任何部分设为目标,这可能意味着数据字可能仍然可用,而不是被重写。

在各种实施例中,重叠字可以包括相等数量的“1”和“0”,使得逻辑与可以影响字中的一半位。

在各种实施例中,数据字和/或重叠字可以形成为约束随机值,其中,例如可以相对于若干写入位来约束随机值,例如以包含限定数量的“0”。对于重叠字,写入位可以被配置成对应于数据字的未写入位。以这种方式,在各种实施例中,重叠字的若干写入位可以对应于数据字的写入位和重叠字的写入位之和。这可以允许验证读取字的若干写入位——例如由读取操作产生的重叠字的若干写入位——是否对应于数据字和重叠字的写入位之和,即使除了该约束之外的两个字可以是随机的也是如此。

图1A和图1B示出了根据各种实施例的存储电路100的示意图,图2示出了根据各种实施例的操作存储电路的方法的图示,并且图3示出了根据各种实施例的在存储电路100中和在操作存储电路的方法中使用的示例性重叠字线数据。

在各种实施例中,存储电路100可以包括沿多个行和多个列被布置在电可编程非易失性存储单元阵列中的多个电可编程存储单元102,其中,存储单元阵列可以分别具有任何合适数量的存储单元、行和列。存储单元102可以如本领域已知的那样形成。例如,每个存储单元102可以包括至少一个具有源极、漏极和栅极的晶体管。图1A所示的示例性存储电路100——其可以基于HS3P存储器阵列——可以例如针对每个存储单元包括两个晶体管。其它示例性实施例的存储电路——例如,1T-UCP存储器阵列中的一个存储器阵列(未示出)——可以例如针对每个存储单元而包括一个晶体管。

在各种实施例中,存储电路100还可以包括多个字线114。例如如本领域已知的,每个字线114可以与多个存储单元102的多个字部耦接,其中每个字部可以被配置成存储数据字。例如,对于耦接,每个字线114可以电连接至字线114可以与其耦接的相应一个或更多个存储单元102中的每一个的栅极端子。

在各种实施例中,存储电路100还可以包括与多个重叠部耦接的至少一个重叠字线114o,每个重叠部包括多个重叠存储单元102o,其中多个重叠部中的每一个可以包括重叠字。

在图1A和图1B所示的实施例中,HS3P存储电路被可视化为代表性示例。在HS3P存储电路配置中,多个字线114中的每个字线114可以包括选择栅极部114_SG、WL-SG和控制栅极部114_CG、WL-CG。然而,各种实施例应被理解为不限于该配置。例如,多个字线114中的每个字线114可以仅包括单个部(例如控制栅极),或者可以包括多于两个的部。

在各种实施例中,存储单元102可以被配置成呈现至少两个不同的状态。存储单元102可以例如被设置为两个、三个、四个或更多个不同的状态(也称为级)和/或在两个、三个、四个或更多个不同的状态(也称为级)之间切换。在下面的示例中,将描述二级存储单元,并且两个级分别称为1和0,但是所描述的原理应被理解为也适用于三级、四级或更多级的存储单元。

在各种实施例中,存储电路100可以被配置成执行正常读取处理,其在图1A中被可视化。

在各种实施例中,图1A所示的正常读取处理可以如现有技术已知的那样执行。例如,为了从位于字线114_1上且位于两个不同位线110_3、110_5上的两个存储单元102_1、102_2进行读取,可以例如通过施加电压来激活多个字线114中的(单个)字线114和两个位线110_3、110_5。在图1A中,这通过将字线114_1的两个部114_SG1、114_CG1的电压设置为3.5V并且通过将位线110_3、110_5的预充电设置为0.8V(特定电压可以是示例性的)来指示。将存储单元102的值表示为D[102],例如由所示的读取处理产生的读取数据的输出可以被写为{D[102_1];D[102_2]}。

在各种实施例中,存储电路100可以被配置成:针对多个字线114中的每一个,从每个字部和多个重叠部中的一个重叠部同时进行读取,从而提供可以对数据字和重叠字执行的逻辑运算(例如,逻辑与、或、与非、或非、异或、或者同或)的结果作为读取操作的输出。这可以被称为重叠读取处理或重叠读取。它在图1B中被可视化。

在各种实施例中,在重叠读取处理中,对于读取,例如从位于字线114_1上的两个存储单元102_1、102_2读取位值并且在读取期间将它们与信号(例如来自重叠存储单元102o的位值)重叠(在图1B中,各个重叠单元分别被标记为102o_1和102o_2,其中来自存储单元102_1的信号将被来自重叠单元102o_1的信号重叠,并且来自存储单元102_2的信号将被来自重叠单元102o_2的信号重叠),除了如上所述激活字线114_1和位线110_3、110_5之外,字线114_3(包括114_SG3和114_CG3)也可以例如通过将其电压设定为例如3.5V的示例性值而被激活。

因此,输出信号——例如来自读取处理的输出电压、例如提供给感测放大器(未示出)的信号、例如提供给多个感测放大器的信号——可以是位于同一位线110上的两个存储单元的重叠信号。在图1B中,位线110_3可以提供存储单元102_1和重叠存储单元102o_1的重叠信号,并且位线110_5可以提供存储单元102_2和重叠存储单元102o_2的重叠信号,其可以例如通过感测放大器被转换为输出位值。

在各种实施例中,输出位值可以是对存储单元102和重叠存储单元102o的位值执行的逻辑运算的结果。逻辑运算的性质——例如或操作或与操作是否例如被固有地执行——可以取决于存储电路的配置。在示例性HS3P存储电路中,可以执行或运算(所选择的(重叠)存储单元102、102o两者可能能够下拉位线,其中一个导电单元足以产生“擦除”(在HS3P存储电路中,擦除位可以被分配值“1”,并且写入位可以被分配值“0”)信号,因此图1A的存储器阵列的配置可以被设置为执行或运算)。

在各种实施例(未示出)中,存储电路可以被配置成在例如通常用于独立存储装置(如记忆棒和固态装置(SSD))中的、具有NAND结构的存储电路中执行与运算。

在各种实施例中,对相反的逻辑值“0”/“1”重新分配擦除/写入(例如,将“0”分配给擦除并且将“1”分配给写入)也可能导致不同的逻辑运算。

例如,由位线110_3提供/被提供给位线110_3的重叠信号可以对应于通过或运算而被组合的存储单元102_1和重叠存储单元102o_1的值,并且由位线110_5提供/被提供给位线110_5的重叠信号可以对应于通过或运算而被组合的存储单元102_2和重叠存储单元102o_2的值。该示例的读取值——例如读取数据、例如读取位——可以表示为{D[102_1]或D[102o_1];D[102_2]或D[102o_2]}。

在各种实施例中,读取操作的正确执行可以通过下述来验证:不仅以正常方式(例如,如图1A所示)读出被寻址的字线114(图1A和图1B中的114_1),其可以产生可以包括多个位的所请求的数据字D,而且还读出与至少一个重叠字线114、114o(在图1B中,字线114_3可以用作重叠字线114o)的至少一个相应重叠字A重叠的相同字,其中重叠字A可以包括多个位,例如可以与数据字的位数相同的若干位,并且其中重叠读取可以产生重叠字Dol作为读取结果。

在各种实施例中,由该读取操作产生的数据即重叠字Dol可以由对连接至相同位线(对于包括存储单元102_1中的位的数据字和包括重叠存储单元102o_1中的位的相应重叠字为110_3;对于包括存储单元102_2中的位的数据字和包括重叠存储单元102o_2中的位的相应重叠字为110_5)并且因此连接至相同读取电路(通常为感测放大器)的字线114_1、114o上的数据位(数据字D的位和相应重叠字A的位)执行的逻辑运算(例如按位)来限定。

在各种实施例中,取决于存储器阵列100的配置,逻辑运算可以是或运算或与运算。

在各种实施例中,逻辑运算可以通过并行激活存储单元(即,存储单元102和重叠存储单元102o)来隐含地执行,而不是由专用逻辑门来执行。

图2示出了:在面板200a中,将逻辑运算(在这种情况下是与运算)应用于数据字D和重叠字A产生了重叠字Dol;并且在面板200b中,将逻辑运算(在这种情况下是或运算)应用于数据字D和重叠字A产生了重叠字Dol。

在各种实施例中,存储电路100可以包括开关(未示出)。开关可以被配置成在正常读取模式与上述重叠读取模式之间切换。

在各种实施例中,读取操作的正确执行可以通过执行数据字的正常读取和(使用重叠字A的)重叠读取两者来被验证,例如,如上所述,这产生数据字D和重叠数据字Dol。使用已知的重叠字A、读取的数据字D和重叠数据字Dol,可以检查对数据字D和重叠字A对应用逻辑运算是否产生重叠字Dol。换句话说,可以检查D或A=Dol是否为真(对于其它存储电路配置,适当的逻辑运算以及因此检查可能不同,例如可以检查是否D与A=Dol)。如果不满足该条件,则读取处理可能已经将与预期不同的一组位线110(其可以对应于字线114内的字地址)设为目标或者不将一组位线110(其可以对应于字线114内的字地址)设为目标。

在各种实施例中,重叠字A可以被配置成允许识别一个或更多个位线110和/或对重叠字A进行寻址的字线114。

在各种实施例中,可以利用对相关联的重叠部的重叠读取来使得对是否读取了预期的字部的验证成为可能。

在各种实施例中,地址码可以包括在一个或更多个重叠字A中,例如被存储在一个或更多个重叠部中。例如,被存储在一个或更多个重叠部中的地址码可以指示字线114内的相应重叠部的位置,和/或被存储在一个或更多个重叠部中的地址码可以指示多个字线114中的一个字线114,和/或被存储在一个或更多个重叠部中的地址码可以指示多个重叠字线114o中的一个重叠字线114o。

在各种实施例中,至少一个重叠字线114o可以包括可以与多个字线114相关联的一个重叠字线114o。这样的重叠字线114o也可以称为公共重叠字线114o。在这样的实施例中,如果要验证存储在多个字线114中的一个字线中的数据字D的读取操作,则数据字D可以正常地读取,并且可以与重叠字A重叠地读取,从而产生重叠数据字Dol,使得可以如上所述地执行验证。在各种实施例中(例如,参见图3),重叠字A可以被配置成允许验证是否从(字线114内的)正确的字部读取了D(和A)。例如,被存储在字线114的多个字部中的多个重叠字A可以形成码。码可以例如被配置成指示字线114内的字部的地址。为了允许这样的检查,相同的重叠字线114o可以被用于多个字线114,例如用于多个字线114或用于多个字线114的子集。

在各种实施例中,在为多个字线114提供一个重叠字线114o的情况下,每当存储电路100被配置成提供多个字线114中的一个字线的重叠读取时,重叠字线114o可以与字线114同时被激活。

在各种实施例中,至少一个重叠字线114o可以包括可以与多个字线114相关联的多个重叠字线114o。在这样的实施例中,如果要验证存储在多个字线114中的一个字线中的数据字D的读取操作,则数据字D可以正常地读取,并且可以与重叠字A重叠地读取,从而产生重叠数据字Dol,使得可以如上所述地执行验证。在各种实施例中(例如,参见图3),重叠字A可以被配置成允许验证是否从(字线114内的)正确的(例如被寻址的)字部读取了D(和A),并且可能还允许验证是否从正确的字线114读取了D。在这样的情况下,每个字线114可以具有至少一个相关联的重叠字线114o,其可以仅与被配置成进行验证的字线114相关联。

在各种实施例中,在为多个字线114提供多个重叠字线114o的情况下,每当存储电路100被配置成提供多个字线114中的一个字线的重叠读取时,可以与字线114同时激活其至少一个相关联的重叠字线114o,该至少一个相关联的重叠字线114o可以不关联至多个字线114中的任何其它字线。

在各种实施例中,多个重叠字线114o中的另外的重叠字线114o可以与字线114同时被激活。例如,对于每个字线114,其一个相关联的重叠字线114o(其可以不关联至多个字线114中的任何其它字线(其可以例如被配置成验证正确的字线114))可以与字线114同时被激活,并且另外还可以激活多个重叠字线114o中的公共重叠字线,其中公共重叠字线可以例如如上所述被配置成验证字线114内的正确的字位置。

在各种实施例中,使用不止一个的重叠字线114o,在重叠读取期间所选重叠字线114o的更多组合是可能的,使得可以实现甚至更高的数据安全级别。使用两个互补编码的重叠字线114o_1和114o_2(即,重叠字线114o_1的位值=重叠字线114o_2的位值的反转)可能是有利的。

在各种实施例中,可以使用不包括字部和/或字线地址的其它码作为多个重叠字A的码。

在各种实施例中,可以在重叠字A和/或数据字D中使用纠错码。

在各种实施例中,由于重叠字线114o上的字可以像任何正常存储单元102一样被写入,因此字部(以及存储在其中的相应数据字D)可以例如通过将相关联的重叠字A的至少一个位设置为无效值(例如,全“0”)——换言之,在通过分别检查D或A=Dol是否为真或者D与A=Dol是否为真而进行验证后,可以以非常高的概率导致“假”(换言之可能失败)的值——而被有意地无效。因此,可以在不需要例如通过对相应字部执行擦除操作来擦除数据字D的情况下,使数据字D无效。用于将数据字D的一个或更多个数据位设置(例如改变)为“错误”值的写入操作可能比擦除操作更快。

在各种实施例中,例如,在如上所述使用两个互补编码的重叠字线114o_1、114o_2的情况下,完美的无效可以例如包括以下或由以下组成:将两个重叠字线114o_1、114o_2上的相应位置写入全“0”。

在各种实施例中,可以使用重叠读取来验证从预期的位线——例如从与预期的位线110相关联的字线部——读取了某些数据。

图3示出了示例性重叠字线数据,例如重叠字A,其可以用于各种实施例中以用于验证从预期的位线——例如从与预期的位线110相关联的字线部——读取了某些数据。

在各种实施例中,一个重叠字线可以(至少部分地)被可以唯一地编码字地址的数据字A填充。

在图3的示例性实施例中,重叠字线可以包括具有地址0至7的多个(这里:八个)字线部。在每个字线部中,可以存储多个重叠字A中的一个。每个重叠字A可以包括至少一个地址部分addrw,其可以对字线部的相应地址进行编码,换句话说,addrw可以表示地址中的可以在字线内选择字的地址的那部分。例如,在具有六位的图3的示例的重叠字A中,重叠字的地址部分可以具有三位。具有地址0的字线部的地址部分addrw可以包括位000,具有地址1的字线部可以包括位001,具有地址2的字线部可以包括位010等。

因此,在将对数据字D和相应重叠字A执行的逻辑运算的结果与D和A的重叠读取的结果进行比较的肯定验证的情况下,可以同时确认从其读取数据字(和重叠字)的字部地址。

在各种实施例中,重叠字A可以进一步包括非(addrw)部。

在各种实施例中,优选地,例如出于安全原因,码可以包括具有相等数量的“1”和“0”的重叠字A,使得逻辑或能够影响字中的一半位,但是码也可以尽可能不同。

在其它各种实施例中,可以将一个或更多个码嵌入到位串中以增加字标记码的最小距离。例如,可以通过嵌入(7,4,3)线性码来构造(14,4,6)非线性码(其中,所有码字可以具有7的汉明权重)。在(7,4,3)码由发生器矩阵的行{0x0b,0x15,0x26,0x47}和表示要编码的消息位的[m3,...,m0]给出的情况下,所得到的码字可以由位串“01”和“10”的连接组成,其中“01”可以对由(7,4,3)线性码产生的7位码字的“0”位进行编码,并且“10”可以对“1”位进行编码。因此,第一码字为0x1555、0x159A、0x1666、0x16A9、0x1969、0x19A6、……

在各种实施例中,通过重叠读取保护数据可能依赖于读取的Dol=D或A与D和A不同的高概率,否则即使从错误的地方读取数据也可以通过检查。

因此,可能期望在重叠字A中具有至少基本相等数量的“1”和“0”,但是在数据字D中也是类似的。对于重叠字A,这可能容易实现,因为它可以被制成所选编码的特性。

在各种实施例中,对于数据字D,在使用加密数据的情况下,可以以高概率自动实现该特性。对于普通数据,如果存储的数据已经不是“随机的”,则可以使用合适的编码。

作为说明性示例,可以考虑以下内容:

如果A=全1,则Dol=A,并且如果A=全0,则Dol=D。在这些情况下,D(分别地,D和Dol)可能来自错误的地址。类似的情况可以应用于D=全1和D=全0。

在各种实施例中,可以至少对于位的一部分使用标记位来实现(具有可以对每个字都不同的编码的)重叠字线114o上的A的位,其中标记位可以通过将相应存储单元设置为永久数据值来形成。

在各种实施例中,这可以允许通过重叠读取来认证位线上的读取数据的物理位置,而没有意外丢失(例如擦除)重叠字线114o上的重要数据的危险。

在各种实施例中,上述重叠读取可以与所谓的交错读取组合,交错读取可以包括例如同时从给定字线内的多个位置进行读取。为了应用交错读取,多个字线和/或多个重叠字线中的一个或更多个可以与多个电可编程非易失性标记存储单元中的一个或更多个标记存储单元相关联。一个或更多个标记存储单元可以处于已知的存储状态,并且多个标记存储单元可以形成码,该码被配置成识别处于已知存储状态的相应一个或更多个标记存储单元的相关联的字线。存储电路可以被配置成:针对每个字线,同时读取例如与字线或重叠字线相关联的至少一个存储单元以及一个或更多个标记存储单元中的至少一个标记存储单元。交错读取可以包括同时读取耦接至字线(和/或重叠字线)的一个或更多个存储单元中的至少一个存储单元以及与字线(和/或重叠字线分别)相关联的一个或更多个标记存储单元中的至少一个标记存储单元。通过从字线(和/或重叠字线,分别)和对字线的识别进行编码的标记存储单元同时读取数据,可以验证从哪个字线读取了数据。在各种实施例中,至少一些标记存储单元可以处于不可改变的存储状态,这可以例如通过设置(例如,去除或不形成)从相关联的标记源线和/或从相关联的标记位线到一个或更多个标记存储单元的物理连接来实现。图4示出了根据各种实施例的操作存储电路的方法的流程图400。

在各种实施例中,可以(在410中)提供存储电路。存储电路可以包括:沿着多个行和多个列布置在电可编程非易失性存储单元阵列中的多个电可编程存储单元;多个字线,每个字线与多个存储单元的多个字部耦接,其中每个字部被配置成存储数据字;以及与多个重叠部耦接的至少一个重叠字线,每个重叠部包括多个重叠存储单元,其中,多个重叠部中的每一个包括重叠字,其中存储电路被配置成:针对多个字线中的每一个,从每个字部与多个重叠部中的一个重叠部同时进行读取,从而提供对数据字和重叠字执行的逻辑运算的结果作为读取操作的输出。

在各种实施例中,方法可以包括同时读取数据字中的至少一个以及相关联的重叠字,从而(在420中)提供对数据字和重叠字执行的逻辑运算的结果作为读取操作的输出。

图5示出了根据各种实施例的操作存储电路的方法的图示。

在各种实施例中,存储电路可以包括沿着多个行和多个列布置在电可编程非易失性存储单元阵列中的多个电可编程存储单元,以及多个字线,每个字线与多个存储单元中的至少一个存储单元耦接。

存储电路通常可以与图1A和/或图1B的存储电路100相似或相同。代替或除了被配置成允许如上所述的重叠读取,根据各种实施例的存储电路还可以被配置成允许如下所述的重叠写入。

在各种实施例中,操作存储电路的方法可以允许安全地重写数据,因为之后仍然可以检查正确的数据(而不是某些其它数据或根本没有数据)被重写。

在各种实施例中,方法可以包括重写已经存在的数据字D以及至少一个预定义模式P,数据字D也可以称为基本字D,其可以包括多个字线中的一个字线的一部分中的已知位的序列,预定义模式P也可以称为数据字P,其可以将数据位序列包括到字线的该部分(换言之,字线的与存在的数据字D相同的部分)。写入处理可以称为重叠写入。已经存在的数据字D与至少一个预定义模式P的重叠写入可以产生重叠写入的数据字Dow。写入可以包括通过逻辑按位运算——例如逻辑按位与运算或逻辑按位或运算——来组合数据位序列与已知位序列。重叠写入的数据字Dow也可以称为修改的数据字Dow。

在各种实施例中,由写入操作产生的重叠写入的数据字Dow可以由可以对已经存在于字线114上的数据字D的数据位和预定义模式P的数据位例如按位执行的逻辑运算(例如,逻辑与、或、与非、或非、异或、或者同或)来被限定。

在各种实施例中,逻辑运算可以通过存储单元102的附加写入来被隐含地执行,而不是由专用逻辑门来执行。

在各种实施例中,写入处理可能仅能够在一个方向上切换一个或更多个存储单元102,而不能在另一个方向上切换。

在HS3P存储器的示例性实施例中(例如,如图1A所示,擦除=“1”并且写入=“0”),现有数据字D可以用模式P被重写,例如,如图5的面板500a所示。读取现在可以产生Dow=D与P,其中“与”可以表示按位逻辑与运算。

在各种实施例中,通过对照D和P检查Dow(使用重叠写入处理之后的读取处理,执行逻辑按位与运算或逻辑按位或运算中的一个,其可以对应于在重叠写入处理期间对数据字P和基本字D隐含执行的逻辑运算,从而形成测试字,并将修改的数据字Dow与测试字进行比较),可以使用重叠写入来验证预期的数据是否真正被重写。在正确的数据被重写的情况下,应保持Dow=D与P。如果不满足该条件,则可能会重写不同的字(或不重写任何字),并且原始数据(基本字)D仍然可以可用。

在图5中,在面板500a中示出了示例性重写,其可以表示已经被存储在存储器阵列中的数据字D和预定义模式P的隐含逻辑与运算。

可以通过重写来执行的隐含逻辑运算可以取决于存储电路的配置。在各种实施例中,逻辑运算可以例如是或操作,其在图5的面板500b中示出。

在各种实施例中,模式P可以是预定义的,并且出于安全原因,可以优选地包括相等数量的“1”和“0”,使得逻辑与可以在重叠写入期间影响数据字D中的一半位。通过重叠写入保护数据可能依赖于重叠写入的字Dow=D与P的高概率,其可以被读取以用于验证针对正确数据字D的重叠写入操作与D和D不同,否则即使错误的数据被重写也可以通过检查。

因此,可能期望在预定义模式P中具有至少基本相等数量的“1”和“0”,但是在数据字D中也是类似的。对于预定义模式P,这可以容易地实现,因为它可以被制成所选模式的特性。

在各种实施例中,对于数据字D,在使用加密数据的情况下,可以以高概率自动实现该特性。对于普通数据,如果存储的数据已经不是“随机的”,则可以使用合适的编码。

作为说明性示例,可以考虑以下内容:

如果P=全0,则Dow=P,并且如果P=全1,则Dow=D。在第一种情况下,Dow可以不再取决于D,所以可能无法验证它是被重写的D。在第二种情况下,D可能根本未被重写,并且因此D可能仍然存在。类似的情况可以分别应用于D=全1和D=全0。

在各种实施例中,用P的不同值迭代所描述的处理若干次以逐渐地且可验证地减少D剩余的信息量可能是适当的。

在各种实施例中,基于重叠写入的原理部分地构建,可以执行对随机值的约束编码。随机值可以例如用作加密计算的密钥。

在各种实施例中,约束随机值编码可以利用随机值的特殊限制来包含限定数量的“0”。

从可以对应于存储器阵列的字线114的字线部的宽度n的擦除字(即,全1)开始,可以准确地包括r1个写入位的随机值P1(为了理解下面的重叠写入处理,P1可以被认为对应于基本字D)可以被写入宽度n的字线部(以及相应的字)。字线部中的n-r1个位可以保持擦除。这可能导致R1=P1被存储在字线部中(以及相应地在字中)。因此,可以将R1的若干可能值限制于总计2n个可能值中的(n/r1)个。

在各种实施例中,当再次读出随机值R1时,可以检查该特性可能是有利的。这可以使攻击者难以或不可能通过强制读取不同的字来替代R1。在没有约束编码的情况下,任何其它值都必须被接受,因为任何值都是可能的随机值。

在各种实施例中,对具有包含额外的r2个写入位(即,可以位于尚未被r1个现有位占据的位位置中的r2个写入位)的值P2的该字(其包含准确的r1个写入位)执行重叠写入,可以产生包含准确地具有r1+r2个写入位的随机值R2=R1与P2的新字。n-r1-r2个位可以保持擦除。

在各种实施例中,这可以再次将可能的随机值的数量限制于总计2n个可能值中的(n/(r1+r2))个。然而,当再次读出随机值R2时,可以检查该特性可能仍然是有利的。

在各种实施例中,在r1+r2=n/2的情况下,值(n/(r1+r2))可以被最大化,即可能的随机值的数量可以被最大化,即R2的随机性可以被最大化。

例如对于n=64,(n/(n/2))/2n=9.93%,这可能意味着所有可能的64位随机值的9.93%可以被有效地编码,但这也可能意味着攻击者可以用替代的无约束随机值在所有情况下的9.93%中通过检查。

通过适当地定义r1和r1+r2,可以找到值R1和R2的随机性与使用替代的无约束随机值的攻击者的成功率之间的折衷,并且R1和R2可以关于随机性和保护级别而具有不同的特性。

在各种实施例中,重叠写入的处理可以利用附加的Ps——例如P3、P4等——被迭代地重复。

例如,如上所述,NVM数据的重叠写入可以在各种实施例中允许安全地重写值R(例如,R1、R2等):例如,如上所述,数据字R可以利用预定义模式P被重写。在各种实施例中,之后,可以验证正确的数据是否被重写。

在各种实施例中,通过将R写入无效的值(例如全“0”),字R可以被重写,并且因此其内容被无效,使得对约束编码的上述检查肯定会失败。

图6示出了根据各种实施例的操作存储电路的方法的流程图600。

在各种实施例中,存储电路可以包括:沿着多个行和多个列布置在电可编程非易失性存储单元阵列中的多个电可编程存储单元;多个字线,每个字线与多个存储单元中的多个字部耦接,其中每个字部被配置成存储数据字;以及与多个重叠部耦接的至少一个重叠字线,每个重叠部包括多个重叠存储单元,其中多个重叠部中的每一个包括重叠字,其中存储电路被配置成:针对多个字线中的每一个,从每个字部与多个重叠部中的一个重叠部同时进行读取,从而提供对数据字和重叠字执行的逻辑运算的结果作为读取操作的输出。

在各种实施例中,该方法可以包括:(在610中)将由已知位序列组成的基本字存储在多个字线中的字线的一部分中;以及(在620中)将包括数据位序列的数据字写入字线的该部分,其中,写入可以包括通过逻辑按位与运算和逻辑按位或运算中的一个将数据位序列与已知位序列进行组合,从而形成修改的数据字。

在各种实施例中,例如,如上文所述的重叠读取、重叠写入和约束随机值编码可以应用于任何类型的NVM,例如RRAM、CBRAM、PCRAM、MRAM、闪存(如UCP、HS3P、纳米晶体、MONOS、ETOX、SST、SONOS、DiNOR)、EEPROM等。

在各种实施例中,例如,如上文所述的重叠读取、重叠写入和约束随机值编码可以应用于其它类型的存储器,例如RAM(SRAM、DRAM)存储装置。

在各种实施例中,重叠读取可以应用于ROM存储装置。

在各种实施例中,例如,如上文所述的重叠读取、重叠写入和约束随机值编码可以应用于SSD、嵌入式NVM、独立(记忆棒)和其它存储装置。

在各种实施例中,提供了一种存储电路。存储电路可以包括:沿着多个行和多个列布置在电可编程非易失性存储单元阵列中的多个电可编程存储单元;多个字线,每个字线与多个存储单元的多个字部耦接,其中每个字部被配置成存储数据字;以及与多个重叠部耦接的至少一个重叠字线,每个重叠部包括多个重叠存储单元,其中多个重叠部中的每一个包括重叠字,其中存储电路被配置成:针对多个字线中的每一个,从每个字部与多个重叠部中的一个重叠部同时进行读取,从而提供对数据字和重叠字执行的逻辑运算的结果作为读取操作的输出。

在各种实施例中,至少一个重叠字线可以与多个字线中的至少一个相关联的字线相关联,其中,每个重叠部与至少一个相关联的字线中的一个字部相关联,以及多个重叠字形成码,码被配置成识别相关联的字部。

在各种实施例中,存储电路还可以包括开关,开关被配置成在字线的重叠读取与字线的没有至少一个重叠字线重叠的读取之间进行切换。

在各种实施例中,对数据字和重叠字执行的逻辑运算可以是按位或运算和按位与运算中的一个。

在各种实施例中,至少一个相关联的字线可以包括多个相关联的字线。

在各种实施例中,至少一个重叠字线可以包括一个重叠字线。

在各种实施例中,至少一个重叠字线可以包括多个重叠字线。

在各种实施例中,多个重叠字线中的每一个可以包括不同的码。

在各种实施例中,提供了一种根据各种实施例的操作存储电路的方法。方法可以包括同时读取数据字中的至少一个和相关联的重叠字,从而提供对数据字和重叠字执行的逻辑运算的结果作为读取操作的输出。

在各种实施例中,方法还可以包括在没有重叠字重叠的情况下读取数据字中的至少一个。

在各种实施例中,方法还可以包括在没有重叠和重叠字的情况下对数据字读取执行逻辑运算,从而形成测试字。

在各种实施例中,方法还可以包括将测试字与重叠读取的结果进行比较。

在各种实施例中,提供了一种操作存储电路的方法,存储电路包括沿着多个行和多个列布置在电可编程非易失性存储单元阵列中的多个电可编程存储单元以及多个字线,每个字线与多个存储单元中的至少一个存储单元耦接,方法包括:将由已知位序列组成的基本字存储在多个字线中的一个字线的一部分中;以及将包括数据位序列的数据字写入字线的该部分,其中,写入包括通过逻辑按位与运算和逻辑按位或运算中的一个将数据位序列与已知位序列进行组合,从而形成修改的数据字。

在各种实施例中,方法还可以包括:读取修改的数据字;对数据字和基本字执行逻辑按位与运算或逻辑按位或运算中的一个,从而形成测试字;以及将修改的数据字与测试字进行比较。

在各种实施例中,基本字的已知位的序列可以包括n位,其中,大约n/2位可以处于第一位状态,并且已知位序列中的剩余位可以处于第二位状态。

在各种实施例中,基本字可以包括具有预定义数目的零的随机字。

在各种实施例中,方法还可以包括反转(invert)修改的数据字的至少一个位,从而使修改的数据字无效。

针对装置提供了本公开的各个方面,并且针对方法提供了本公开的各个方面。应当理解,装置的基本特性也适用于方法,反之亦然。因此,为了简洁起见,可能省略了对这样的特性的重复描述。

虽然已经参考具体实施例特别示出和描述了本发明,但是本领域技术人员应当理解,可以在不脱离由所附权利要求限定的本发明的精神和范围的情况下对形式和细节做出各种改变。因此,本发明的范围由所附权利要求书指示,并且因此权利要求的等同物的含义和范围内的所有改变都旨在被包含在内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1