存储在非易失性存储器中的数据的完整性控制转让专利

申请号 : CN200480015371.1

文献号 : CN1799104B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 罗伯特·约赫姆森尼古拉斯·兰贝特威廉默斯·F·J·丰蒂恩阿德里安努斯·J·M·德尼森

申请人 : NXP股份有限公司

摘要 :

本发明涉及一种具有多个非易失性存储单元的存储器的写控制器(10)、一种具有多个非易失性存储单元的存储器的读控制器、一种组合的写/读控制器、一种包括具有多个非易失性存储单元的存储器的固态设备、一种用于将二进制编码写入非易失性存储器的编程器设备、一种用于将包括至少一个输入比特的数据写入具有非易失性存储单元的存储器的方法、以及一种用于控制包括至少一个存储在存储器的非易失性存储单元中的输入比特的数据的完整性的方法。本发明提供对发生在非易失性存储器的内容上的改变的可靠检测。本发明的基本原理是用至少一个校验比特扩展存储在非易失性存储器中的信息。校验比特被分配给一个编码比特,或分配给多个编码比特中的每一个。该分配最好用于存储输入和编码比特的存储器单元的分配中。

权利要求 :

1.具有多个非易失性存储单元(50,52,62,64,82,84)的存储器(60,70,80,90,100)的写控制器(10),包括输入部分(12),用于接收具有至少一个将被写入所述存储器的输入比特的输入数据,并且所述写控制器(10)适于根据所述输入数据产生输出数据和分配的地址信息,其中,所述输出数据包括所述输入数据和多个分配给所述输入比特的校验比特,所述多个校验比特具有与所述输入比特的值互补的值,以及其中,所述地址信息将所述多个校验比特分配给存储单元(62),存储单元(62)中的每一校验比特被分配给存储单元(64)中所存储的各自相应的输入比特。

2.如权利要求1所述的写控制器,适于产生地址信息,该地址信息将所述多个校验比特分配给与存储所述各自相应的输入比特的存储单元(64)相邻的存储单元(62)。

3.如权利要求2所述的写控制器,其中,所述输出数据包括多个分配给所述输入比特的校验比特,所述校验比特的数量在2到8之间,以及其中,所述地址信息将每个校验比特分配给线性排列(60,70,80,90)或类似矩阵排列(100)的存储单元中各自的存储单元,从而为每个由输入比特和分配给其的校验比特组成的集合创建存储的比特值的线性的或二维的模式。

4.如权利要求1所述的写控制器,包括校验比特产生器(14),该校验比特产生器(14)被连接到所述输入部分(12),并适于确定所述至少一个输入比特的比特值以及产生多个校验比特,每个校验比特具有与所述各自相应的被分配的输入比特的比特值互补的比特值。

5.如权利要求1所述的写控制器,包括地址信息产生器(16),该地址信息产生器(14)被连接到所述输入部分(12)以及所述校验比特产生器(14),并且适于将彼此相邻的存储单元(62,64)的各自的地址信息分配给所述至少一个输入比特和所述分配的多个校验比特。

6.具有多个非易失性存储单元(50,52,62,64,82,84)的存储器(60,70,80,90,100)的读控制器(20),包括输入部分(22),用于从所述存储器接收读出数据,该读出数据具有至少一个输入比特和多个分配给其的校验比特,以及完整性控制单元(24),其适于比较所述至少一个输入比特和所述多个校验比特的值以及提供指示所述编码比特和所述多个校验比特的值是否互补的输出信号。

7.如权利要求6所述的读控制器,包括地址产生器(26),该地址产生器(26)适于产生读请求,该读请求指向至少一个选中的存储器单元(64)和所述至少一个存储所述分配的多个校验比特的相邻存储器单元(62)。

8.具有多个非易失性存储单元的存储器的读/写控制器,包括如权利要求1所述的写控制器和如权利要求6所述的读控制器。

9.一种用于将二进制编码写入非易失性存储器(60,70,80,90,100)的编程器设备(30),包括如权利要求1所述的写控制器(10),所述写控制器适于在其输入部分接收二进制编码。

10.如权利要求9所述的编程器设备,包括连接到所述写控制器的所述输入部分(12)的编码产生器(32),该编码产生器(32)适于产生唯一的标识符编码并将其提供给所述写控制器的所述输入部分。

11.一种固态电子设备(40),包括具有多个非易失性存储单元的存储器(44),以及连接到所述存储器的如权利要求1所述的写控制器(10)或如权利要求5所述的读控制器(20)或同时包括两者。

12.如权利要求11所述的固态电子设备,包括磁存储单元。

13.如权利要求12所述的固态电子设备,其中,至少两个相邻的强磁场存储单元(82,

84)具有比所述存储器(80)中的所有其他存储单元更大的尺寸,并且其中,所述写控制器适于创建地址信息,该地址信息将所述输入比特和所述分配的多个校验比特分配给所述相邻的强磁场存储单元(82,84)。

14.用于将包括至少一个输入比特的数据写入具有非易失性存储单元的存储器的方法,包括下列步骤:a)确定多个被分配给所述输入比特的校验比特的比特值,作为与所述输入比特的比特值互补的比特值(S12),b)根据预定的分配算法将非易失性存储器单元分配给所述输入比特和所述多个校验比特(S14),c)以及将所述多个校验比特和所述输入比特写入根据步骤(b)分配的所述存储器的非易失性存储单元(S16)。

15.如权利要求14所述的方法,其中,所述数据包括分配给所述存储器的标识符。

16.如权利要求14所述的方法,其中,所述分配算法包括将所述输入比特和所述多个校验比特分配给相邻的存储单元。

17.如权利要求14所述的方法,在对包括所述存储器的管芯进行测试之前、之中或之后执行所述方法。

18.如权利要求14所述的方法,其中,在所述写步骤之后,阻止进一步向所述存储器进行写入。

19.如权利要求14所述的方法,其中,在提供密码并利用存储在包含所述存储器的芯片上的密码验证所述提供的密码的一致性的步骤之后,执行所述写步骤。

20.一种用于控制数据完整性的方法,所述数据包括至少一个存储在存储器的非易失性存储单元中的输入比特,所述方法包括下列步骤:a)确定多个分配给所述输入比特的校验比特的比特值,作为与所述输入比特的比特值互补的比特值,b)根据预定的分配算法将非易失性存储器单元分配给所述输入比特和所述多个校验比特,c)将所述多个校验比特和所述输入比特写入根据步骤(b)分配的非易失性存储单元,d)从所述分配的存储单元读取所述输入比特和所述多个校验比特(S18),e)比较所述输入比特和所述多个校验比特(S20),f)提供指示所述输入比特和所述多个校验比特是否互补的信号(S22)。

说明书 :

存储在非易失性存储器中的数据的完整性控制

技术领域

[0001] 本发明涉及一种具有多个非易失性存储单元的存储器的写控制器、一种具有多个非易失性存储单元的存储器的读控制器、一种组合的读/写控制器、一种包括带有多个非易失性存储单元的存储器的固态设备、一种用于将二进制编码写入非易失性存储器的编程器设备、一种用于将包括至少一个输入比特的数据写入具有多个非易失性存储单元的存储器的方法、以及一种用于控制包括至少一个存储在存储器的非易失性存储单元中的输入比特的数据的完整性的方法。

背景技术

[0002] 非易失性存储器具有以下优点,即,即使当无运行功率(operatingpower)提供给存储器时也能保存所存储的信息。现在已知的非易失性存储器的工作原理是基于物理效应的,例如磁效应、铁电效应、或半导体效应。已知的非易失性存储器设备包括,例如,磁性随机存取存储器(MRAM,magnetic random access memory),可擦写可编程只读存储器(EPROM),电EPROM(EEPROM),闪存(Flash memory)等。
[0003] 非易失性存储器是可重写存储器。与只读存储器技术相比,存储装置的非易失性不能防止对存储信息的不希望的改变。在MRAM中,存储信息会在例如:热效应、单个磁性单元的方向的随机翻转、或篡改的影响下而改变。对MRAM的篡改可能涉及将强大的外部磁场施加于存储器。将这种磁场施加于MRAM将使得所有存储单元将他们各自的磁存储层的磁矩平行于强大的外部磁场而排列。然后所有存储单元(包括校验比特)将存储相同的比特值,0或1。因此,原来存储在存储器中的信息将丢失。
[0004] 特别设计的软件或硬件形式的应用程序也可能尝试对分类为“只读”或“拒绝访问”的信息进行未授权的改变。
[0005] 对非易失性存储单元进行不期望的重写的可能性构成了安全问题,其限制了在所提供信息的完整性至关重要的商业领域中使用非易失性存储器。在数字版权管理(DRM)中,例如,固态设备的唯一标识符可以被用作密钥,该密钥用于授权或拒绝对特权信息、特权服务质量的许可,以及用于收集帐单信息。典型地,这种唯一的标识符由被写入集成到固态设备的存储器的二进制编码组成。带有重写的比特的标识符可能导致否定之前授予的访问权限,或授权入侵者访问,或错误的帐单报告。
[0006] 应用程序通常不被允许改变“只读”或“拒绝访问”信息,比如标识符。事实上,已经注意到修改这种信息是不可能的。例如通过US 5,917,750可以了解非易失性半导体存储器的保护系统。在此存储器中装备了保护电路,该保护电路产生指示是否保护存储在存储单元中的数据的保护信号。仅允许向保护信号指示写访问的存储器部分进行写操作。然而,此系统需要大量的连接到存储器的附加电路,而且不能预防内部的效应。对于MRAM,通过WO 00/72324A1和US2002/008988A1可以了解物理防护装置。两个文件都描述了存储器中的附加防护层。这种附加的物理防护增大了存储器的开销,而且不能安全地预防强大的外场或未授权的应用程序重写存储器。
[0007] 所列举的保护机制的这些缺点显示已知的写保护机制涉及巨大的技术的努力,但不能提供完全的安全性来防止重写非易失性存储器。

发明内容

[0008] 因此,本发明的目的是提供一种可供选择的方法以防止由无意或有意地改变存储在非易失性存储器中的“只读”或“拒绝访问”信息而导致的破坏。
[0009] 根据本发明的第一方面,通过具有多个非易失性存储单元的存储器的写控制器解决了此目的,该写控制器包括输入部分,用于接收具有至少一个将被写到所述存储器的输入比特的输入数据,并且适合于从所述输入数据产生输出数据和分配的地址信息,其中,所述输出数据包括所述输入数据和至少一个分配给所述输入比特的校验比特,所述校验比特具有与所述输入比特的值互补的值,其中,所述地址信息将所述校验比特分配给一个存储单元,该存储单元被分配给存储所述各自相应的输入比特的存储单元。
[0010] 本发明不同于尝试提供更好的写保护。它关注于对发生在非易失性存储器的内容上的改变的可靠的检测。本发明的基本原理是用至少一个校验比特来扩展存储在非易失性存储器中的信息。在此,待存储的信息被称为输入比特,或者,等同地称为编码比特。术语输入比特被用于说明本发明的写控制器在其输入部分从存储器客户接收这些待存储的比特。它不产生这些比特。
[0011] 与从外部的源接收的输入比特不同,本发明的写控制器产生校验比特。写控制器还将校验比特分配给各自相应的输入比特。为避免由于复杂的概括引起的混淆,在下文中,只要可以使用一个或多个校验比特就将使用单数形式“校验比特”。本发明的实施例无论在什么时候使用各自的方案时,都将明确地表述仅有一个校验比特的可选方案和有多个校验比特的可选方案。
[0012] 根据本发明,校验比特具有与各自所分配到的输入比特的值互补的值。也就是说,如果输入比特具有值1,则校验比特具有值0,反之亦然。输入比特或校验比特上的改变可以被容易地检测。当输入比特和校验比特都具有相同的值时,就检测到发生了改变。因此,通过提供带有互补值的校验比特,本发明允许检测由经常被用在篡改尝试中的非选择性外部影响所导致的对存储器的改变。例如,MRAM暴露于很强的外部磁场将把所有存储器单元设置为相等的值,因而破坏了输入和校验比特之间的固有的关系,所述校验比特根据本发明指示了数据的完整性。作为另一个例子,将EPROM存储器暴露于UV辐射将导致相同的影响。
[0013] 如下所述,给出输入比特和校验比特之间的分配方法的明确的算法在不同的实施例中是不同的。在对存储器内容改变的检测中,为防止错误,分配方法不能改变。可以将校验比特仅分配给一个输入比特或分配给任意数量的输入比特。例如,在一个实施例中,仅有一个输入比特具有分配的校验比特。一个校验比特足够检测出由非选择性的影响(比如由外部的源引起的强大的力)导致的对存储器的重写。在另一个实施例中,每个输入比特都具有分配的校验比特。这允许检测对分类为“只读”或“拒绝访问”的单个输入比特的有选择的改变。
[0014] 为提供输入比特和校验比特之间的简单分配,输入比特和校验比特的分配最好被映射为存储器中彼此相关的比特的位置。本发明的写控制器根据预定的分配算法为输入比特和校验比特产生各自的地址信息。地址信息被用于将输出数据存储在与地址信息相对应的存储器单元中,该输出数据包括输入数据加校验比特。地址信息可以是写控制器的输出数据的附加部分,但不会被存储到存储器。在可选的实施例中,地址信息是以电信号的形式被提供的,该信号被应用于存储器的特定的字线(word line)和特定的比特线(bit line)。也就是说,写控制器具有集成的字线和比特线驱动器,以对特定的输出数据比特将写入的特定的存储器单元进行物理寻址。
[0015] 在本发明的写控制器的一个实施例中,写控制器将地址信息分配给地址数据,该地址数据是作为输入数据的一部分从外部的存储器客户提供给写控制器的。此实施例中,本发明的写控制器适用于接收除输入比特以外还包括地址数据的输入数据。在一个可选方法中,这种地址数据是作为输入数据流的一部分通过写控制器的相同输入端口被接收的。在另一个可选方法中,由写控制器通过分离的输入端口与相应的输入比特同步地接收地址数据。
[0016] 在此实施例的一个可选方法中,写控制器使用所接收的地址数据作为与输入比特相同的那部分输出数据的地址信息。在此可选方法中,写控制器为校验比特产生新的地址信息。该新的地址信息取决于由外部的存储器客户提供的地址数据。此寻址方法需要防范从外部的客户提供的地址数据与写控制器根据预定的分配算法为校验比特在内部产生的地址信息之间的冲突。例如,这种防范包括向存储器客户提供关于可用的地址范围的信息。
[0017] 在此实施例的另一个可选方法中,写控制器产生分配给由外部的存储器客户提供的地址数据的新的地址信息。为此目的,写控制器可以维护一个地址分配表,该表将在输入部分接收的地址数据转换为在写控制器的输出部分提供的地址信息。最好与存储器的读控制器共享该分配表。在此可选方法中,外部的存储器客户为输入比特提供地址数据,写控制器为输入比特和校验比特产生地址信息。由写控制器产生的地址信息既不能被外部的存储器客户控制也不能被传送到外部的存储器客户。保护数据完整性的校验比特算法对外部的存储器客户来讲是完全透明的。
[0018] 对于读请求,外部的存储器客户使用当存储数据时提供的地址数据并将它们提供给读控制器。读控制器参考地址分配表并将地址数据转换为存储在存储器中的相应输入比特的地址信息,从而将这些输入比特提供给存储器客户,假设了所存储的数据的完整性。在对本发明的读控制器的描述的上下文中将详细描述此方面。输入和分配的校验比特最好被存储在物理上靠近的存储器单元中。物理上靠近的比特很可能都被局部的外部的场影响。通过将输入和校验比特的位置靠近安排,更可能检测到外部的场被施加于存储器的有限范围内。
[0019] 根据优选实施例,校验比特被存储在与分配的输入比特的存储器单元相邻的存储器单元中。在不同的实施例中,相邻的单元可以是在同一行或在同一列。在类似于矩阵的存储器单元的排列中,下一个相邻单元也可以被确定为在相邻的行并且在相邻的列中,例如,相对于存储输入比特的存储器单元成对角线排列。
[0020] 更好的方法是,使用下一个相邻单元来存储校验比特,以便提供最简单和灵活的解决方案,该方案也适用于小存储器阵列和仅包括少量的存储标识符的单元的单存储器线。因此,本发明的写控制器最好适于产生将所述校验比特分配给与存储所述各自相应的输入比特的存储单元相邻的存储单元的地址信息。
[0021] 然而,本发明并不限于这种排列。在本发明的其他的实施例中,分配给输入比特的校验比特被存储在使用不同的分配算法确定的存储单元中。例如,校验比特可以被存储在与存储输入比特的存储器单元处于同一行或同一列的第二或第三近的相邻单元中。
[0022] 尽管在不同环境中都知道使用校验比特的原理,但是本发明给校验比特提供了新的使用方法,它对于保护存储信息的完整性和实现有效检测改变的信息尤其有用。是从数字数据传输领域了解到使用校验比特的。在那个领域中,校验比特,例如采取循环冗余校验(CRC)方法的框架中的桢校验序列(FCS)的形式,来检测接收的数据序列中由于恶劣的传输条件引起的传输错误。典型地,CRC的FCS是两个字节长并根据使用二进制多项式等式的算法被计算。在相同的环境中,另一个数据传输中的错误检测的原理是使用奇偶校验比特。奇偶校验比特被加入到包括许多比特的块中,并反映在块中是包含偶数个还是奇数个具有比特值“1”的比特。在偶校验的情况下,奇偶校验比特将是“1”,在奇校验的情况下,奇偶校验比特将是“0”。
[0023] 本解决方案,即使使用校验比特,但也不同于CRC和奇偶校验的原理。与所述两个已知的方法不同,本发明中使用的校验比特被分配给单个的输入比特,而不是许多的输入比特。这为写控制器的特定设计提供了更高的灵活性。可以根据给定的边界条件设计本发明的写控制器。可以基于给定的硬件设计来确定使用的校验比特的数量以及被分配了一个或多个校验比特的特定的存储编码的输入比特的数量。例如,如果任务是允许检测通过将强大的外部磁场应用到MRAM上而进行的篡改尝试,那么提供一个被分配给一个输入比特的校验比特就足够了,例如,标识符的第一个输入比特。与已知的校验比特原理相比,根据本发明的校验比特的另一个不同在于,确定本发明的校验比特的值的算法更简单。事实上,可以使用简单的变换器以产生校验比特。此简单性是优于已知算法的重要优点,因为它不需要大量的电路来确定校验比特的值。与已知的校验比特原理的另一个不同在于,本发明的校验比特对外部应用程序是隐蔽的,或者,换句话说,对存储器客户是隐蔽的。它在不与存储器客户进行任何通信或在对于存储器用户透明的情况下被创建。
[0024] 在根据本发明的第一方面的写控制器的多个不同的实施例中,输出数据包括多个分配给各自相应的输入比特的校验比特。在各个实施例中校验比特的数量是固定的。在存储器单元的类似于矩阵的排列中,可以将2到8个校验比特分配给各自相应的输入比特,并且在紧挨着的相邻存储器单元中。在存储器单元的线性排列中,最多两个在紧挨着的相邻存储器单元中的校验比特被分配给输入比特是可能的。在这些实施例中,所述地址信息分别将每个校验比特分配给线性排列的或类似于矩阵排列的存储单元中各自的存储单元,从而为每个由输入比特和分配给其的校验比特组成的集合创建所存储的比特值的线性或二维的模式。明显地,更多的校验比特的缺点是需要更大的存储器空间。另一方面,更大的校验比特的模式更难于在基于单个比特操纵存储器的内容的尝试中进行译码,所以能够产生这种更大的校验比特的模式对于隐藏校验比特算法是有用的,并使得更易于检测对单个存储器单元的操纵尝试。
[0025] 本发明的写控制器的优选实施例包括连接到所述输入部分的校验比特产生器。校验比特产生器适于确定将被写入非易失性存储器的输入比特的比特值,并适于产生具有与所述输入比特的比特值互补的比特值的校验比特。在一个实施例中,由专用电路提供校验比特产生器。在另一个实施例中,由嵌入式软件提供校验比特产生器。
[0026] 本发明的写控制器的另一个优选实施例包括连接到所述输入部分和所述校验比特产生器的地址信息产生器。地址信息产生器适于将彼此相邻的存储单元的各自的地址信息分配给所述至少一个输入比特和所述被分配的至少一个校验比特。在一个实施例中,由专用电路提供地址产生器。在另一个实施例中,由嵌入式软件提供地址产生器。地址信息可以采取二进制编码的形式,该二进制编码表示分配给存储器中的存储器单元的地址。也可以采取应用于选中的字和比特线的电信号的形式,从而直接地寻址单个存储器单元,而无需将二进制编码转换为这种信号的中间步骤。
[0027] 根据本发明的第二方面,提供了带有多个非易失性存储单元的存储器的读控制器。本发明的读控制器包括用于从存储器接收读出的数据的输入部分。读出数据具有至少一个输入比特和至少一个分配给其的校验比特。本发明的读控制器还具有完整性控制单元,其适于比较所述至少一个输入比特和所述至少一个校验比特的值,并提供指示所述编码比特与所述校验比特的值是否互补的输出信号。
[0028] 本发明的读控制器是上述写控制器的互补的对应部分。读控制器用于检查使用本发明的写控制器写入非易失性存储器的数据的完整性。同样地,读控制器基于与写控制器相同的校验比特算法。它“知道”必须寻址哪一组存储器单元以检查特定输入比特的完整性。因此,可以直接地从本发明的写控制器的相应实施例中推导出读控制器的优选实施例。
[0029] 例如,在本发明的读控制器的一个优选实施例中,读控制器也使用写控制器对输入比特使用的校验比特模式,以便检查输入比特的完整性。读控制器具有地址产生器,该地址产生器适于产生指向至少一个选中的存储器单元和所述至少一个存储所述已分配的校验比特的相邻存储器单元的读请求。地址产生器使用同样的特定数量的待比较的存储器单元以及由所创建的校验比特模式产生的相同地址。在一个可选的实施例中,读控制器使用比写控制器创建的校验比特更少的校验比特来进行完整性检查。读控制器创建的地址信息可以采取表示分配给存储器中的存储器单元的地址的二进制编码的形式。也可以采取应用于选中的字和比特线的电信号的形式,从而直接地寻址单个存储器单元,而无需将二进制编码转换成这种信号的中间步骤。
[0030] 注意到,读控制器不适于将从非易失性存储器读取的校验比特传送到外部的应用程序。由完整性控制单元在内部执行完整性检查。只有完整性检查的结果可以作为指示输入比特和分配给其的校验比特是否互补的二进制信号被传送。读控制器不适于将此二进制信号传送到其所集成于的芯片的界限之外,除非提供了进一步的安全措施,例如加密。可以以芯片的IP块的形式(即,作为芯片内部的独立部分)提供读控制器。在此实施例中,根据芯片设计者的选择,读控制器可能适合或可能不适于在芯片上传送二进制信号,而不超出芯片之外。
[0031] 如果有人要在芯片之间使用正规的线路来传送二进制的完整性信号,那么通过例如从控制器断开线路并将其连接到“一直是完整的”的源上来“删改”此信号将是无关紧要的操作。根据本发明,具有抗篡改传输是重要的。
[0032] 在操作中,本发明的读控制器所包括的完整性控制单元将一边的输入比特与另一边的一个或多个已分配的校验比特进行比较。在包括多个带有分配的校验比特的输入比特的实施例中,提供了许多连接到输入部分的平行的比较器级(stage)以提高完整性控制的速度。然而,对于速度并不重要的情况,可选实施例仅有一个比较器级,并为每个具有分配的校验比特的输入比特顺序地执行完整性检查。
[0033] 根据发明的第三方面,提供了带有多个非易失性存储单元的存储器的读/写控制器。读/写控制器包括本发明第一方面的写控制器和根据本发明第二方面的读控制器。
[0034] 读/写控制器组合了上述写控制器和读控制器的优点。当由一个单元执行向非易失性存储器的写入以及从非易失性存储器的读取时,它特别地有用。与其相比,单独的写控制器对于仅用于编程芯片上的非易失性存储器的设备(例如下面描述的编程器)来讲是足够的。可由芯片上提供的读控制器来执行完整性检查。
[0035] 根据本发明的第四方面,提供了用于将二进制编码写入非易失性存储器的编程器设备。所述编程器设备包括本发明第一方面的写控制器。所述写控制器适于在其输入部分接收二进制编码。
[0036] 典型地,编程器设备被用于集成电路(ICs)的生产,并可以被集成到IC测试器或数字IC验证系统中。在许多包括非易失性存储器的IC的制造过程中,初始化非易失性存储器是必要的。由编程器设备来执行这一任务。根据本发明的本方面,为这种编程器设备提供使用本发明的写控制器编程IC所包括的非易失性存储器的额外功能。通过这种方式,为制造的IC提供了有效率的完整性控制机制。IC可以包括本发明的读控制器以便能检测所存储数据的完整性的破坏。
[0037] 编程器设备的优选实施例包括上述的本发明第一方面的写控制器的那些实施例。
[0038] 本发明的编程器设备的更优选的实施例包括编码产生器,其被连接到写控制器的输入部分,并且适于产生唯一的标识符编码并将其提供给所述写控制器的输入。唯一的标识符编码包括为每个IC单独创建的编码比特的组合。通过这种方式,编程器为每个制造的IC提供唯一的标识符。本领域的熟练技术人员知道如何能够产生唯一的标识符。一个例子是在以太网控制器的制造过程中的唯一的MAC地址的产生和编程。标识符比特的特定的第一组合被唯一地归于特定的厂商,该厂商加入在此特定厂商的制造过程内唯一的标识符比特的第二组合,从而创建全球唯一标识符,即MAC地址。
[0039] 在一个可选实施例中,编程器被连接到向编程器传送唯一标识符的外部的编码产生器,用于向写控制器提供唯一标识符作为输入。在另一个可选实施例中,编程器包括存储器,该存储器存储将被作为写控制器的输入而提供的唯一标识符的列表。
[0040] 根据本发明的第五方面,提供了固态设备,其包括具有多个非易失性存储单元的存储器以及本发明第一方面的写控制器,或者连接到所述存储器的本发明的第二方面的读控制器,或同时包括两者。
[0041] 根据本发明的本方面的固态设备是任何包括电子电路的设备。这种固态设备的例子是IC,包括IC的设备(例如MRAM、PROM、EPROM、EEPROM、闪存形式的存储器设备),计算机卡(例如PCMCIA卡)。本发明的固态设备具有包括非易失性存储单元的存储器。注意到,存储器可以包括易失性和非易失性存储单元的组合,同样以不同存储器的形式在固态设备中分别提供。
[0042] 本发明的本方面的固态设备的优选实施例包括本发明的写控制器和读控制器的实施例。
[0043] 在另一个优选实施例中,固态设备包括磁存储单元,比如MRAM单元。MRAM是非常有前途的技术,对于克服现有存储器技术的缺点同时保持它们的优点来讲,该技术具有良好的前景。
[0044] 在基于MRAM技术的优选实施例中,本发明的本方面的固态设备至少具有两个相邻的MRAM单元,它们具有比所述存储器中的所有其他存储单元更大的尺寸。在此实施例中,写控制器适于创建地址信息,该地址信息将所述输入比特和所述分配的至少一个校验比特分配给相邻的强磁场(high-field)存储单元。在MRAM中使用更大尺寸的单元以存储输入比特和校验比特具有不会发生(自然的)随机的比特翻转的优点。因此,可以明确地检测由外部磁场引起的比特翻转(即,篡改),从而提高了完整性控制的可靠性。
[0045] 注意到,在现有技术的MRAM中,所有存储器单元具有近似相同的尺寸。术语尺寸涉及垂直于单元的层序列的方向上的MRAM单元的存储层的横向延伸,以及在层序列的方向上的存储层的厚度。存储层是存储器单元的层,其与用于写单元的磁场相互作来排列其磁矩的方向。包括至少两组具有不同存储层尺寸的存储器单元的MRAM被认为是独立的发明。
[0046] 根据本发明的第六方面,提供了将包括至少一个输入比特的数据写入具有非易失性存储单元的存储器的方法,该方法包括下列步骤:
[0047] a)确定至少一个分配给所述输入比特的校验比特的比特值,作为与所述输入比特的比特值互补的比特值,
[0048] b)根据预定的分配算法将非易失性存储器单元分配给输入比特和校验比特,[0049] c)以及将所述至少一个校验比特和所述输入比特写入根据步骤(b)分配的所述存储器的非易失性存储单元。
[0050] 本发明的本方面的方法允许在非易失性存储器中存储数据,以便过后可以检查其完整性。例如,本发明的方法可以被编程器设备应用。之前,已在本发明的其他方面的描述中(特别地,在写控制器的描述中)描述了此方法的优点。此方法最好用于存储标识符或近似地分类为“只读”或“拒绝访问”的信息。如以上的详细描述所述,分配算法最好包括将所述输入和所述校验比特分配给相邻的存储单元。由根据本发明的第一方面的写控制器的描述给出本发明的此方法的另外的优选实施例。
[0051] 根据本发明的第七方面,提供了用于检查数据的完整性的方法,所述数据包括至少一个存储在存储器的非易失性存储单元中的输入比特,所述方法包括下列步骤:
[0052] a)确定至少一个分配给所述输入比特的校验比特的比特值,作为与所述输入比特的比特值互补的比特值,
[0053] b)根据预定的分配算法将非易失性存储器单元分配给输入比特和校验比特,[0054] c)将所述校验比特和所述输入比特写入根据步骤(b)分配的非易失性存储单元,[0055] d)从所述分配的存储单元读取所述输入比特和所述校验比特,
[0056] e)比较所述输入比特和所述校验比特,
[0057] f)提供指示所述输入比特和所述校验比特是否互补的信号。
[0058] 优选实施例中的方法步骤(d)到(f)被反复地执行。优选地,在执行步骤(d)到(f)的连续的循环周期之间有等待步骤。可用的等待时间可以在一分钟和几天之间的时间尺度上的任何位置,其依赖于存储器单元所暴露的环境和访问存储器的频率。
[0059] 附图简述
[0060] 下面将参照附图描述本发明的另外的特征和优点。
[0061] 图1是显示本发明的写控制器的优选实施例的简化的框图;
[0062] 图2是显示本发明的读控制器的优选实施例的简化的框图;
[0063] 图3是显示本发明的编程器设备的优选实施例的简化的框图;
[0064] 图4是显示作为本发明的固态设备的优选实施例的、具有本发明的读控制器的集成电路的简化的框图;
[0065] 图5是显示磁存储单元中的数字信息的表示方法的示图;
[0066] 图6是表示使用所述方法的第一优选实施例存储到MRAM中的二进制编码的框图,所述方法用于将包括至少一个输入比特的数据写入具有非易失性存储单元的存储器;
[0067] 图7是表示使用所述方法的第二优选实施例存储到MRAM中的二进制编码的框图,所述方法用于将包括至少一个输入比特的数据写入具有非易失性存储单元的存储器;
[0068] 图8是表示使用所述方法的第三优选实施例存储到具有两组不同尺寸的存储单元的MRAM中的二进制编码的框图,所述方法用于将包括至少一个输入比特的数据写入具有非易失性存储单元的存储器;
[0069] 图9是表示使用所述方法的第四优选实施例存储到MRAM中的二进制编码的框图,所述方法用于将包括至少一个输入比特的数据写入具有非易失性存储单元的存储器;
[0070] 图10是表示使用所述方法的第五优选实施例存储到MRAM中的二进制编码的框图,所述方法用于将包括至少一个输入比特的数据写入具有非易失性存储单元的存储器;
[0071] 图11是用于控制存储在存储器的非易失性存储单元中的数据的完整性的方法的优选实施例的流程图。

具体实施方式

[0072] 图1以简化的框图显示了写控制器10。写控制器10具有输入部分12并通过输入部分12接收输入数据。输入部分12与校验比特产生器14和地址产生器16相连。校验比特产生器14具有两个输出,其中一个与地址产生器16相连。校验比特产生器14的第二个输出被连接到输出部分18,输出部分18将控制器10连接到存储器(未显示)。输出部分18包括三个输出寄存器18.1、18.2和18.3。输出寄存器18.1与校验比特产生器14相连。
输出寄存器18.2与输入部分12相连。输出寄存器18.3与地址产生器16相连。输出部分
18被分割为三个寄存器并不是必要的结构特征,仅为了在这里用于说明。
[0073] 下面,将描述写控制器的操作。通过例子假设,接收的输入数据表示集成电路的二进制标识符,该标识符将被存储到利用集成电路提供的MRAM存储器中。所述标识符被分类为“只读”。
[0074] 通过输入部分12接收的输入比特被提供给校验比特产生器14。校验比特产生器14为每个提供的输入比特产生校验比特。通过使用校验比特产生器14包含的非门(inverter gate)(未显示)产生校验比特。校验比特产生器14还向地址产生器16提供控制信号。控制信号触发地址产生器16以产生将两个相邻的存储器单元分配给输入比特和校验比特的地址信息。如上所述,可选实施例具有不同的分配算法,所述分配算法不使用相邻的存储单元。在地址产生器16中实现所使用的分配算法。地址信息采用二进制地址编码的形式。如现有技术所知,通过放置在写控制器和存储器之间的驱动级(driver stage)(未显示),将地址编码转换成相应的应用于字线和比特线的电信号,以便选择分配给地址编码的存储器单元。驱动级也可以是写控制器的一部分。如果MRAM仅具有一行存储器单元,那么显而易见,应选择更简单的寻址单个单元的方式。
[0075] 为将输入比特和分配的校验比特写入存储器,将输出寄存器18.1和18.2的内容连同包含在输出寄存器18.3中的各自的地址信息提供到存储器。当然,在可选实施例中,输出18可以集中许多的输入比特和校验比特,以便并行地将输入和校验比特的序列提供到存储器。因此,输出寄存器空间更大。
[0076] 所描述的写控制器可以被用于设置标识符,例如在芯片管芯测试之前、之中或之后。例如可以通过使用封装中不相连的焊盘(pad)进行。这产生标识符不能改变的封装芯片。此方法可以用于创建具有全部唯一标识符的芯片,或一批具有相同标识符的芯片。
[0077] 防止在芯片制造后篡改标识符的一种可选方式是,使用封装的芯片设置一次标识符以及随后通过使用逻辑电路(logic)或陷门(trapdoor)阻塞进一步的写操作,例如,以一次写寄存器的形式或某种保险丝(fuse)的形式。
[0078] 防止破坏标识符的另一种可选方式是,当写标识符时使用密码保护以及使用硬编码(hard coded)的密码。该密码不能被读取,但当试图写唯一标识符时由芯片进行检查。
[0079] 图2以简化的框图显示了读控制器20。读控制器20包括输入部分22,通过其,读控制器20连接到存储器(未显示)。输入部分22与完整性控制单元24相连。读控制器20还包括具有连接到存储器的输出的地址产生器26。
[0080] 在操作中,地址产生器26提供包括输入比特和分配的校验比特的分配的存储器单元的地址信息。在地址产生器26中实现特定的地址分配算法。为了本说明,分配算法仍是使用相邻的存储器单元,比如在存储器单元的相同行中具有增大的列地址的下一个相邻单元。
[0081] 当然,需要在读控制器的地址产生器中使用与用于将校验比特写入存储器的写控制器的地址产生器中使用的分配算法相同的分配算法。
[0082] 地址信息与读控制器20产生的读取命令一同被发送到存储器。在接收到请求的输入和校验比特之后,它们被从输入部分22发送到完整性控制单元24。完整性控制单元包括创建指示输入和校验比特是否互补的输出信号的比较器(未显示)。
[0083] 可以由连接到读控制器的级(stage)按照要求处理完整性控制单元的输出信号。
[0084] 组合的写/读控制器将图1的写控制器和图2的读控制器的结构特征集成到一个单独的设备上。它具有面向存储器客户的第一接口,该接口包括输入部分12的功能和完整性控制单元24的输出部分的功能。它具有面向存储器的第二接口,该接口包括写控制器10的输出部分18的功能、读控制器20的输入部分22的功能,以及地址产生器26的输出部分的功能。注意到,在组合的写/读控制器中,仅需要一个地址产生器。
[0085] 图3以简化的框图显示编程器30。仅显示了对本发明来讲重要的特征。另外,在本领域中已知,编程器可以包括用于测试晶片的单个管芯的自动晶片装卸器,测试引线(test pin)和控制单元。
[0086] 编程器30包括根据本发明的写控制器。为简单起见,假设在编程器30中实现写控制器10。因此,对于写控制器的所有结构和功能说明,参照图1的描述。
[0087] 写控制器10被连接到编码产生器32。编码产生器32产生将被提供到写控制器10的输入部分12的唯一地址。写控制器10进一步连接到编程器30的输出部分34。
[0088] 操作中,编程器将产生将被存储在正在被测试和编程的芯片的存储器中的唯一的标识符。写控制器10通过校验比特扩展标识符并将适当的地址信息提供给输出部分34,输出部分34将ID写入排列在芯片上的存储器。基于使用编程器的特定的制造环境,在管芯测试阶段使用未封装的芯片的焊盘编程标识符。可选地,可以在已封装的芯片上进行编程。
[0089] 图5显示了作为本发明的固态设备的实施例的芯片40的简化的框图。芯片40包括集成电路42,MRAM 44,以及读控制器,为简单起见假设该读控制器是读控制器20。集成电路42的特定结构和功能在本文中并不重要。其可以被连接到外部的单元。通过例子,MRAM 44被显示为存储器单元的二维阵列。我们进一步假设使用编程器30将带有校验比特的唯一的标识符存储在MRAM 44中。
[0090] 在芯片的操作中,如参照图2所述的,读控制器20将检查存储的标识符的完整性。它将其输出信号提供给集成电路42。作为处理读控制器20的信息的方式的例子,当由读控制器20提供的信号指示校验比特等于分配的标识符的编码比特时,集成电路将停止操作。
[0091] 图6显示两个分别带有箭头52和56的存储器单元50和52。箭头代表存储器单元中的层的磁矩的方向,磁矩沿所施加的用于写存储器单元的磁场的方向排列。通过写磁场和其他的包含在存储器单元中的磁层,两个可能的方向被施加到层上。因此各个方向可以表示一个比特的两个可能的状态,上和下,或0和1。
[0092] 图6到10显示了表示使用本发明的方法的不同实施例存储在MRAM中的二进制编码的框图,所述方法用于将包括至少一个输入比特的数据写入具有非易失性存储单元的存储器。
[0093] 图6显示具有存储的编码序列“11101000”的MRAM 60。在分配给其相邻的存储器单元64的存储器单元62中提供了一个校验比特。所有其他的编码比特在不带有校验比特的情况下被存储。此例子解决了由MRAM对于强大外部磁场的脆弱性而带来的问题。这种磁场以或上或下的方向被应用到所有单元。反平行的单元对62和64的存在指示了编码序列的完整性。
[0094] 图7显示具有存储编码序列“1001”的MRAM 70。每个编码比特在左边的相邻存储器单元中具有分配的校验比特。本例子针对局部的篡改尝试增强了存储的编码序列的可靠性。
[0095] 图8显示具有存储编码序列“0100110”的MRAM 80。与在图6的例子中一样,仅有一个编码比特82具有分配的校验比特84。然而,在此例子中,分配的校验比特被存储在编码比特右边的相邻单元中。另外,选中的编码比特及其分配的校验比特被存储在具有比其他单元更大的尺寸的单元中。这增强了完整性控制比特的健壮性。
[0096] 图9显示具有存储编码序列“00110”的MRAM 90。在此例子中,使用三个存储器单元存储一个编码比特。每个编码比特具有两个相邻的校验比特。此例子解决了由随机的比特翻转引起的不能确定是编码比特还是校验比特已经翻转的问题。通过使编码比特位于两个反平行的校验比特之间,可以确定哪个比特已经翻转其方向。只有编码比特改变其方向,才破坏存储的编码的完整性。
[0097] 图10显示了另一个例子MRAM100,其在二维阵列存储器单元中存储编码序列“011”。使用包括位于三行和三列上的9个存储器单元的组来存储每个比特。编码比特被存储在每个组的中心存储器单元中并被8个存储器单元包围,其中仅有三个被用于校验比特。显示为空的其他所有存储器单元可以具有任意的方向,或上或下。此例子解决局部篡改企图的问题,其中,试图改变编码的人知道使用了校验比特。使用隐藏在任意方向的单元之中的校验比特的二维的模式,使得难于检测所使用的校验比特模式。使用此方式的本发明的完整性控制方法可以防止同时对编码比特和分配的校验比特进行操纵。
[0098] 图11显示用于控制存储在存储器的非易失性存储单元中的数据的完整性的方法的优选实施例的流程图。在步骤S10,接收待存储的输入比特。在步骤S12,为在步骤S10接收的输入比特确定校验比特的值。校验比特具有与输入比特的值互补的值。在步骤S14,使用如上所述的一种分配算法将存储器单元分配给输入和校验比特。在步骤S16,输入和校验比特被存储到分配的存储器单元。在步骤S16之后,在完整性控制随着步骤S18开始之前,可能有等待的步骤(未显示),在步骤S18,从存储器读取输入和校验比特。在步骤S20,对输入和校验比特进行比较。在步骤S22,提供指示输入和校验比特是否相等的输出信号。在等待步骤S24之后,重复步骤S18和步骤S22之间的完整性控制。