安全存储器接口的制作方法

文档序号:6773653阅读:152来源:国知局
专利名称:安全存储器接口的制作方法
技术领域
本发明通常涉及一种具有存储器装置和数据处理单元的电子系统,更具体地讲,涉及一种对数据处理单元安全访问存储器装置或常规访问存储器装置的灵活控制。
背景技术
存储器装置易于受诸如使用激光或X射线的缺陷注入(fault injection)攻击。例如,在存储器装置中,激光和X射线通过修改比特状态而实现精确攻击。激光尤其适合在寄存器、RAM(随机存取存储器)装置、EEP(电可擦除可编程)存储器装置和闪速存储器装置中注入缺陷。这种缺陷注入可以是永久性或临时性的。 此外,这种缺陷注入攻击可以用于暴露密钥或输出存储器内容。期望检测注入到存储器中的这种缺陷以防止存储在存储器装置中的信息的滥用。 在现有技术中,可以用激光检测器来检测激光源。然而,激光检测器不适合检测存储器装置上的激光攻击。 在现有技术中,可选择地,存储器装置适合包括检错码的存储。在这种情况下,存储器装置检测在存储器装置内的缺陷注入攻击。然而,在存储器装置内实现这种检错码增加了存储器装置的硅面积(silicon area)。此外,如果存储器装置外部的总线上的比特状态被修改,则检错码可能不能检测存储器装置外部的这种缺陷注入。 此外,在现有技术中,存储器装置可以包括具有用于检测存储器装置内的缺陷注入的冗余数据存储的硬件冗余。然而,这种存储冗余导致硅面积倍增,导致高容量存储器装置的超大硅面积。此外,存储冗余的数据校验会导致存储器装置的操作速度较慢。
在现有技术中,可选择地,诸如访问存储器装置的CPU(中央处理单元)的数据处理单元包括用于校验数据完整性的软件。然而,也存储在存储器装置中的这种软件易受缺陷注入。此外,CPU软件的代码大小和执行时间随这种额外的数据校验功能而增加。
因此,需要检测在存储器装置中或在存储器外部(诸如连接至/源自存储器装置的总线)的缺陷注入的有效机制。

发明内容
根据本发明的总体方面,一种安全存储器接口操作为自动检测这种缺陷注入。
根据本发明的一方面的安全存储器接口包括读取器块和模式选择器。当启用安全
模式时,读取器块通过从由存储器装置传输的初始读取数据中分离检错码来产生将被传输到数据处理单元的最终读取数据。模式选择器使用来自数据处理单元的存储器访问信息来启用或停用安全模式。
在本发明的实施例中,当停用安全模式时,读取器块不分离任何检错码而从初始读取数据产生最终读取数据。 在本发明的一个实施例中,存储器访问信息包括指令名。在这种情况下,模式选择器包括指令名解码器,当所述指令名对应安全读取指令时,指令名解码器启用安全模式,当所述指令名对应常规读取指令时,指令名解码器停用安全模式。 在本发明的另一实施例中,读取器块和指令名解码器设置在为CPU(中央处理单元)的数据处理单元中。 在本发明的可选择的实施例中,存储器访问信息包括对于初始读取数据将被访问的存储器装置的地址。在这种情况下,模式选择器包括地址解码器,当将被访问的存储器装置的地址为安全地址时,地址解码器启用安全模式,当将被访问的存储器装置的地址为非安全地址时,地址解码器停用安全模式。 在本发明的示例实施例中,地址解码器设置在产生将被访问的存储器装置的地址的数据处理单元的外部,数据处理单元为CPU。 在本发明的另一实施例中,存储器访问信息包括寄存器名。在这种情况下,模式选择器包括各个寄存器标志,所述寄存器标志指示寄存器名对应于启用安全模式还是对应于停用安全模式。 在本发明的示例实施例中,读取器块和所述各个寄存器标志设置在为CPU(中央处理单元)的数据处理单元中。 在本发明的另一实施例中,读取器块包括分离器(demixer)、编码器和比较器。当
启用安全模式时,分离器通过从初始读取数据中分离检错码来产生最终读取数据,当停用
安全模式时,分离器从初始读取数据产生最终读取数据而不分离任何检错码。 编码器从对应的地址和最终读取数据中的至少一种产生期望的检错码。比较器通
过将从初始读取数据中分离的检错码与期望的检错码进行比较来产生错误检测信号。 在本发明的另一实施例中,读取器块还包括状态机和宽度选择器。状态机通过从
存储器访问信息产生存储器地址和读取使能信号而从存储器装置读取初始读取数据。宽度
选择器控制状态机来读取具有存储器数据宽度的初始读取数据,所述存储器数据宽度取决
于至少一个数据宽度控制信号,所述数据宽度控制信号还控制编码器和分离器的操作。 在本发明的示例实施例中,存储器数据宽度对应于存储器装置,所述至少一个数
据宽度控制信号对应于数据处理单元的处理数据宽度。 在本发明的实施例中,数据处理单元为通过总线与存储器装置分离的CPU。数据处理单元和存储器装置被制造为一个集成电路芯片。可选择地,数据处理单元和存储器装置被制造为两个独立的集成电路芯片。 在本发明的另一实施例中,安全存储器接口还包括写入器块,当启用安全模式时,
写入器块从初始写入数据和检错码产生将被写入存储器装置的最终写入数据。当停用安全
模式时,写入器块从初始写入数据中产生最终写入数据而不使用检错码。 在本发明的一方面中,写入器块和读取器块利用CPU中的硬件逻辑门实现。 当存储器访问信息包括指令名时,在指令名对应安全写入指令时,指令名解码器
启用安全模式,在指令名对应常规写入指令时,指令名解码器停用安全模式。 在本发明的另一实施例中,写入器块包括编码器和分离器。编码器从对应的地址和初始写入数据中的至少一种产生检错码。当启用安全模式时,混合器从初始写入数据和检错码中产生混合写入数据,当停用安全模式时,混合器从初始写入数据中产生混合写入数据而不使用检错码。混合写入数据确定最终写入数据。 在本发明的另一实施例中,写入器块还包括状态机和宽度选择器。状态机从混合
的数据产生最终写入数据、写入使能信号和存储最终写入数据的存储器装置的地址。宽度
选择器控制状态机产生具有存储器数据宽度的最终写入数据,所述存储器数据宽度取决于
至少一个数据宽度控制信号,所述数据宽度控制信号控制编码器和分离器。 根据本发明另一方面的电子系统包括存储器装置、数据处理单元和接口单元。数
据处理单元产生存储器访问信息,所述存储器访问信息包括指示存储器装置的访问类型的
至少一个地址比特或寄存器名。接口单元根据由存储器访问信息指示的访问类型来访问存
储器装置。例如,访问类型包括安全访问或非安全访问。由数据处理单元产生的所述至少
一个地址比特确定存储器装置的访问类型。可选择地,由数据处理单元产生的寄存器名确
定存储器装置的访问类型。 以这种方式,CPU利用安全访问灵活地指定存储在存储器装置中的数据的量和位置。对于由CPU指示的这种数据,利用在CPU中的硬件实现的读取器块和写入器块来检测缺陷注入。因此,对任何容量的存储器装置来说,这样的读取器块和写入器块的硅面积的增加都是不明显的。此外,在存储器装置内或存储器装置和CPU之间的总线处的缺陷注入可被有效地检测。 通过参考下面的参照附图的本发明的详细描述,本发明的这些和其它特征和优点将被更好地理解。


图1示出了根据本发明实施例的具有安全存储器接口的电子系统的框 图2示出了根据本发明实施例的图1的安全存储器接口的框 图3示出了根据本发明实施例的图2的安全存储器接口中的写入器块的框 图4示出了根据本发明实施例的图3的写入器块中的宽度选择器的电路 图5示出了根据本发明实施例的用于在图3的写入器块中产生检错码的编码器的框图; 图6示出了根据本发明实施例的图2中的安全存储器接口中的读取器块的框 图7示出了根据本发明实施例的包括作为图3的写入器块和/或图6的读取器块中的模式选择器的指令名解码器的CPU的框图; 图8示出了根据本发明实施例的包括作为图3的写入器块和/或图6的读取器块中的模式选择器的地址解码器的CPU的框图; 图9示出了根据本发明可选实施例的模式选择器设置在CPU外部的图8的变型的框图; 图10示出了根据本发明实施例的使用CPU地址比特来指示安全模式的启用或停用; 图11示出了根据本发明实施例的包括作为图3的写入器块和/或图6的读取器块中的模式选择器的标志寄存器的CPU的框9
图12示出了表,该表示出了根据本发明实施例的当标志寄存器和地址解码器都用作模式选择器时安全模式的启用或停用; 图13示出了根据本发明实施例的具有安全模式的启用和停用的CPU和存储器装置的数据宽度的表; 图14示出了根据本发明实施例的图2的安全存储器接口和图3的写入器块的操作过程的步骤的流程图; 图15示出了根据本发明实施例的图2的安全存储器接口和图6的读取器块的操作过程的步骤的流程图; 图16A示出了根据本发明示例实施例的输入到图5的编码器的表; 图16B示出了根据本发明示例实施例的从图5的编码器输出的表。 这里涉及的图是为示出的清晰而绘制的,且不必按比例绘制。除非另有说明,否则
在图1、图2、图3、图4、图5、图6、图7、图8、图9、图10、图11、图12、图13、图14、图15、图
16A和图16B中具有相同标号的元件表示具有相似结构和/或功能的元件。
具体实施例方式
图1示出了具有存储器装置102、数据处理单元104和总线106的电子系统100的框图。在本发明示例实施例中,电子系统100可以形成为智能卡110的组件。然而,本发明不限于此,本发明可以实施为将电子系统100作其它应用。本发明可以实施为将存储器装置102和数据处理单元104制造为一个集成电路芯片,或者制造为两个独立的集成电路芯片。 存储器装置102和数据处理单元104经总线106交换信号。本发明的示例实施例中,数据处理单元104为具有安全存储器接口 108 (即,接口单元)的CPU (中央处理单元)。
参照图1和图2,安全存储器接口 108包括模式选择器112、写入器块114和读取器块116。写入器块114从CPU 104接收地址(CPU地址)和数据(CPU数据)以将这样的数据写入存储器装置102的特定地址中。读取器块116从CPU 104接收地址(CPU地址)以从存储器装置102的特定地址读取数据。 模式选择器112启用或停用用于写入器块114和读取器块116的运行的安全模式。写入器块114和读取器块116根据模式选择器112启用或停用安全模式,分别在安全模式或非安全模式下运行。模式选择器112产生指示启用或停用安全模式的安全模式使能信号SMI_Enable。 图3示出了根据本发明示例实施例的图2的写入器块114的框图。写入器块114包括宽度选择器202、编码器204、混合器206和存储器写入FSM(有限状态机)208。
参照图1、图2和图3, CPU 104启用Register_Width信号"24"、" 16"和"8"中之一以指示存储器装置102由CPU 104处理的比特数(即,CPU数据宽度或更一般地说,处理数据宽度)。例如,CPU 104每次产生8比特、16比特或24比特数据给存储器装置102,或从存储器装置102接收8比特、16比特或24比特数据。 图13示出了根据CPU数据宽度的存储器装置102中占据的数据比特的表。第一栏902列出了 CPU数据宽度的典型示例,例如8比特、16比特或24比特。第二栏904列出了当没有启用安全模式时对于每个CPU数据宽度8比特、16比特和24比特存储在存储器装
10置102中的对应的比特数。第三栏906列出了当启用安全模式时对于每个CPU数据宽度8 比特、16比特和24比特存储在存储器装置102中的对应的比特数。 当没有启用安全模式时,来自CPU 104的8比特数据在存储器装置102中存储为8 比特。类似地,当没有启用安全模式时,来自CPU 104的16比特数据在存储器装置102中 存储为16比特。此外,当没有启用安全模式时,来自CPU 104的24比特数据在存储器装置 102中存储为32比特,额外的8比特设置为预定比特。 当启用安全模式时,来自CPU 104的8比特数据在存储器装置102中存储为16比 特,额外的8比特利用检错码产生。类似地,当启用安全模式时,来自CPU 104的16比特数 据在存储器装置102中存储为32比特,额外的16比特利用检错码产生。此外,当启用安全 模式时,来自CPU 104的24比特数据在存储器装置102中存储为32比特,额外的8比特利
用检错码产生。 图13的表的第四栏908表述了从未启用安全模式到启用安全模式,相对于从CPU 104产生的比特数(即CPU数据宽度),存储在存储器装置102中的比特数(即存储器数据 宽度)的倍数增加(即大小增加因数)。当CPU数据宽度为8比特或16比特且启用安全模 式时,相对于从CPU 104产生的比特数,存储在存储器装置102中的比特数的倍数为2。当 CPU数据宽度为24比特时,即使启用安全模式,相对于从CPU 104产生的比特数,存储在存 储器装置102中的比特数的倍数仍保持为1。 图13的表的第五栏910示出了对CPU数据宽度为8比特、16比特和24比特的示 例启用安全模式达到的安全级别。对8比特或16比特的CPU数据宽度,达到的安全级别 (即检测缺陷注入的能力)为非常强,这是因为在将用于存储的检错码合并到存储器装置 102中之后,比特数增加到2倍。24比特的CPU数据宽度达到的安全级别为强,但没有8比 特或16比特的CPU数据宽度达到的安全级别强,这是因为在将用于存储的检错码合并到存 储器装置102中之后,24比特的CPU数据宽度的比特数没有增加到两倍。
参照图3和图13,宽度选择器202启用存储器数据宽度信号"8"、"16"和"32"之 一以控制存储器写入FSM 208产生8比特、16比特或24比特的存储器数据。图4示出了示 例宽度选择器202的电路图,根据CPU数据宽度信号"8"、"16"和"24"中哪一个被启用并 根据安全模式使能信号(SMI_Enable)是否被启用,宽度选择器202启用存储器数据宽度信 号"8"、"16"和"32"中的一个。 参照图4,宽度选择器202包括反相器220和分别的第一与门222、第二与门224、 第三与门226和第四与门228。宽度选择器202还包括分别的第一或门232和第二或门 234。安全模式使能信号(SMI_Enable)通过反相器220及与门222和与门226输入。CPU 数据宽度信号"24"通过或门232输入,CPU数据宽度信号"16"通过与门222和与门224输 入,CPU数据宽度信号通过与门226和与门228输入"8"。 反相器220、与门222、与门224、与门226、与门228、或门232和或门234如图4所
示连接,从而使或门232输出存储器数据宽度信号"32",或门234输出存储器数据宽度信号
"16",与门228输出存储器数据宽度信号"8"。参照图4和图13,如图13的第一栏902和
第二栏904所示,当启用对应的CPU数据宽度信号"8"、"16"和"24"中的一个且不启用安
全模式时,启用对应的存储器数据宽度信号"8"、"16"和"32"中的一个。 可选择地,如图13中第一栏902和第三栏906所示,当启用对应的CPU数据宽度信号"8"、"16"和"24"中的一个且启用安全模式时,启用对应的存储器数据宽度信号"16" 和"32"中的一个。参照图3,存储器数据宽度信号"8"、"16"和"32"被存储器写入FSM 208 接收以根据存储器数据宽度信号"8"、"16"和"32"中哪一个被启用来产生8比特、16比特 或32比特的存储器数据。 图5示出了用于产生当启用安全模式时要使用的检错码(EDC)的编码器204的框 图。图5的示例编码器204使用由CPU 104产生的CPU数据来产生检错码。然而,本发明 还可以实施为编码器从由CPU 104产生的CPU数据和CPU地址来产生检错码。在这种情况 下,安全模式接口 110将检测数据信息和地址信息中的缺陷注入。 图16A示出了根据本发明示例实施例的关于启用CPU数据宽度信号"8"、"16"和 "24"的每个的图5的编码器204的输入的表。图16B示出了根据本发明示例实施例的关于 启用CPU数据宽度信号"8"、"16"和"24"的每个的图5的编码器204的输出的表。
参照图5的示例,编码器204包括"E"8比特输入信号242、"Rh"8比特输入信号 244和"R1"8比特输入信号248。此外,编码器204包括"EDC_out_H" 8比特输出信号258 禾口"EDC—out—L"8比特输出信号260。 参照图5、图16A和图16B,当CPU数据宽度为8比特时,"R1"输入信号248包括 CPU数据,而"E"输入信号242和"Rh"输入信号244未限定(即图16A中的X)。还是在这 种情况下,只有EDC_out_L输出信号260有效,而EDC_out_H输出信号258未限定。因此, 当CPU数据宽度为8比特时,EDC_out_L输出信号260包括由混合器206使用的8比特检 错码(EDC)。 可选择地,当CPU数据宽度为16比特时,"R1"输入信号248包括CPU数据的低字 节,"Rh"输入信号244包括CPU数据的高字节,"E"输入信号242固定为0。还是在这种情 况下,EDC—out—L输出信号260和EDC_out_H输出信号258都有效。因此,当CPU数据宽度 为16比特时,EDC—out—L输出信号260和EDC_out_H输出信号258包括由混合器206使用 的16比特检错码(EDC)。 当CPU数据宽度为24比特时,"R1"输入信号248包括CPU数据的低字节,"Rh"输 入信号244包括CPU数据的中间字节,"E"输入信号242包括CPU数据的高字节。还是在这 种情况下,只有EDC_out_H输出信号258有效,而EDC_out_L输出信号260未限定。因此, 当CPU数据宽度为24比特时,EDC—outJl输出信号258包括由混合器206使用的8比特检 错码(EDC)。 编码器204还根据1比特控制信号"Ctrlj6bits—Access"246来运行,在本发明 示例实施例中,控制信号"Ctrlj6bits—Access"246可以为CPU数据宽度信号"16"。编 码器204还包括预定数据寄存器250、低比特编码单元252、高比特编码单元256和复用器 254。 "Ctrl_16bits_ACCesS"信号246控制复用器254输出预定数据寄存器250的输出或 低比特编码单元252的输出。 当对于16比特CPU数据宽度CPU产生16比特数据时,"Ctrlj6bits—Access"信 号246被启用为逻辑高状态。在这种情况下,复用器254选择预定数据寄存器250的输出, 预定数据寄存器250的输出是将要由高比特编码单元256输入的预定的比特模式(如0x00 或0xFF)。 之后,高比特编码单元256利用8比特"Rh"输入信号244来产生8比特"EDC—outJl"输出信号258,而信号"E"由CPU 104设置为0。还是在这种情况下,低比特编码单 元252利用8比特"R1"输入信号248来产生8比特"EDC—out—L"输出信号260。参照图3 和图5,当对于16比特CPU数据宽度启用"Ctrlj6bits—Access"信号246时,"EDC—out— H"输出信号和"EDC—out—L"输出信号的总的16比特检错码可用于混合器206。
当对于8比特或24比特CPU数据宽度CPU产生8比特或24比特数据时, "Ctrlj6bits—Access"信号246被停用为逻辑低状态。在这两种情况下,低比特编码单元 252利用"R1"输入信号248来产生可用于混合器206和复用器254的8比特EDC输出信号 "EDC_out_L" 260。在这两种情况下,复用器254选择将由高比特编码单元256输入的低比 特编码单元252的输出。 高比特编码单元256利用"Rh"输入信号244、"E"输入信号242和低比特编码单 元252的输出来产生可用于混合器206的8比特EDC输出信号"EDC_out_H" 258。在8比 特CPU数据宽度的情况下,只有"EDC—out—L"输出信号260有效并被混合器206使用,混合 器206忽略"EDC—outJl"输出信号258。在24比特CPU数据宽度的情况下,只有"EDC—out— H"输出信号258有效并被混合器206使用,混合器206忽略"EDC_out_L"输出信号260。
参照图2和图3,当CPU 104为写入操作而访问存储器装置102时,安全存储器接 口 108和写入器块114根据图14的流程图运行。CPU 104产生写入存储器访问信息,这样 的写入命令包括写入指令名、指示要被访问的存储器装置102的地址的CPU地址和要被写 入存储器装置102的CPU数据(图14中的步骤S701) 。 CPU地址指示存储器装置102的存 储CPU数据的位置。CPU 104可以产生存储这样的CPU数据的对应的寄存器名作为写入存 储器访问信息的一部分。 模式选择器112从写入存储器访问信息确定安全模式是否被CPU启用(图14的步 骤S702)。在本发明的示例实施例中,图7示出了实现为指令名编码器的模式选择器112。 在这种情况下,CPU 104利用对应的指令名说明写入命令启用或停用安全模式。
例如,所述写入命令包括停用安全模式的常规写入指令名,并包括启用安全模式 的安全写入指令名。在这种情况下,图7中的模式选择器112对指令名进行解码,以根据指 令名启用或停用SMI_Enable信号。对图7的实施例来说,CPU适合执行包括诸如常规写入 指令、安全写入指令、常规读取指令和安全读取指令的额外的指令集。常规写入指令名和常 规读取指令名中的每个导致SMI_Enable信号的停用,安全写入指令名和安全读取指令名 中的每个导致SMI_Enable信号的启用。 在本发明的另一实施例中,图8示出了实现为地址解码器264的模式选择器112。 在这种情况下,CPU 104利用由CPU 104内的地址产生器262产生的CPU地址说明写入命 令启用或停用安全模式。如图10的示例所示,CPU地址比特数足够指示16兆字节的存储 器容量。然而,在电子系统100(例如智能卡)中的所有存储器装置的实际总容量明显小于 可寻址的存储器容量。 因此,由CPU 104产生的CPU地址中的一些比特可以用于指示启用或停用安全模 式,这是因为不需要这些比特来指示存储器装置102的地址。在这种情况下,地址解码器 264对来自地址产生器262的这样的CPU地址进行解码以启用或停用SMI_Enable信号, SMI_Enable信号用于启用或停用安全模式。例如,地址解码器264包括地址过滤器,所述地 址过滤器确定来自地址产生器262的每个CPU地址是用于启用安全模式的安全地址还是停用安全模式的非安全地址。 图9示出了地址解码器265形成在CPU 104外部的本发明的可选实施例。图9的 地址产生器262与图8的地址产生器262相似地运行。在图9中,具有地址解码器265的 模式选择器112形成在CPU 104的外部,使对电子系统100的CPU 104的修改最小化。
在本发明可选择的实施例中,图ll示出了用与CPU 104的多个数据寄存器760对 应的标志寄存器750实现的模式选择器112。所述多个数据寄存器760中的每个存储将在 CPU 104和存储器装置102之间处理的各个CPU数据。当产生写入/读取命令时,CPU 104 指示包括CPU数据的寄存器的对应的标识符(即对应的寄存器名)。 标志寄存器750包括多个寄存器标志,每个寄存器标志对多个寄存器760中对应 的一个寄存器760的对应的启用或停用进行设置。例如,寄存器标志#1对应寄存器#1,寄 存器标志#2对应寄存器#2,...,等等。图11中的模式选择器112包括标志复用器752,标 志复用器752输出由"Register—Select"信号选择的多个寄存器760之一的对应的寄存器 标志,以通过寄存器复用器762输出CPU数据。 在这种情况下,CPU 104产生包括与CPU数据对应的各个寄存器名的写入/读取命 令。根据控制复用器752和762的各个寄存器名产生"Register—Select"信号以从多个寄 存器760中对应的一个输出寄存器标志750中对应的一个和CPU数据。从标志复用器752 选出的寄存器标志为SMI_Enable信号。 在图11的实施例中,在CPU 104中,标志寄存器750中的每个标志是可编程的。在 标志寄存器750为栈操作的每个指针自动指示存储器装置102的安全访问或非安全访问的 情况下,图11的实施例对CPU 104的栈操作是非常有用的。 图12示出了具有地址解码器264或地址解码器265和标志寄存器750的模式选 择器112的本发明的可选择的实施例。在这种情况下,根据图12的表,在由CPU 104产生 的存储器访问信息中的寄存器名和CPU地址均被用于确定启用或停用安全模式。
参照图12的表中第一行771,寄存器名的标志指示停用安全模式,CPU地址指示停 用安全模式。在这种情况下,停用SMI—Enable信号以停用安全模式。参照图12的表中第 二行772,寄存器名的标志指示停用安全模式,但CPU地址指示启用安全模式。在这种情况 下,启用SMI—Enable信号以启用安全模式。 参照图12的表中第三行773,寄存器名的标志指示启用安全模式,但CPU地址指示
停用安全模式。在这种情况下,启用SMLEnable信号以启用安全模式。参照图12的表中
第四行774,寄存器名的标志指示启用安全模式,CPU地址指示启用安全模式。在这种情况
下,启用SMLEnable信号以启用安全模式。以图12中的方式,当寄存器名和CPU地址中的
至少一种指示启用安全模式时,启用SMI—Enable信号以启用安全模式。 由CPU 104产生的存储器访问信息的示例包括如下的一系列读取/写入命令 write—8 RO @OxlOO secure_write_16 A8 @OxlOA read_8 Rl @0xl02 secure_read_24 A8 @OxlOA 示例命令"write—8 RO柳xl00"包括指令名"write—8",指令名"write—8"指示停 用安全模式且CPU数据宽度为8比特的常规写入。该命令还包括寄存器名"RO"和CPU地址"0x100",寄存器名"R0"具有将被写入存储器装置102中的CPU数据,CPU地址"0x100" 用于指示写入操作要将访问的存储器装置102的地址。 示例命令"secure—write—16 A8 @OxlOA"包括指令名"secure_write_16",指令 名"securejriteJ6"指示启用安全模式且CPU数据宽度为16比特的安全写入。该命令 还包括寄存器名"A8"和CPU地址"0xl0A",寄存器名"A8"具有将被写入存储器装置102中 的CPU数据,CPU地址"OxlOO"用于指示写入操作将要访问的存储器装置102的地址。
示例命令"reacL8 Rl @0xl02"包括指令名"read_8",指令名"read_8"指示停用 安全模式且CPU数据宽度为8比特的常规读取。该命令还包括寄存器名"Rl"和CPU地址 "0x102",寄存器名"Rl"接收从存储器装置102读取的数据,CPU地址"0x102"用于指示读 取操作将要访问的存储器装置102的地址。 示例命令" secure_read_24 A8 @0xl0A,,包括指令名"secure_read_24,,,指令名 "secure—reacL24"指示启用安全模式且CPU数据宽度为24比特的安全读取。该命令还包 括寄存器名"A8"和CPU地址"0xl0A",寄存器名"A8"接收从存储器装置102读取的数据, CPU地址"OxlOA"用于指示读取操作将要访问的存储器装置102的地址。
返回参照图3和图14,当如SMI_Enable信号所指示停用安全模式(图14的步骤 S703)时,混合器206将混合数据仅作为CPU数据(即初始写入数据)输出到存储器写入 FSM 208(图14的步骤S704)。之后,在启用写入使能信号的情况下,存储器写入FSM 208 将作为存储器数据的CPU数据(即初始写入数据)和作为存储器地址的CPU地址传输到存 储器装置102 (图14的步骤S707)。因此,所述存储器数据被写入存储器装置102的所述存 储器地址上。如上面参照图4和图13所述,写入到存储器装置102的存储器数据的量取决 于宽度选择器202的输出。 可选择地,当如SMI_Enable信号指示启用安全模式(图14的步骤S703)时,编码 器利用CPU数据(即初始写入数据)和/或来自CPU 104的对应的CPU地址来产生检错码 (EDC)。如上面参照图5、图16A和图16B所述的,检错码(EDC)的比特数取决于CPU数据宽 度(图14的步骤S705)。 通过混合器206将这样的检错码(EDC)与CPU数据(即初始写入数据)混合以产 生具有取决于CPU数据宽度的比特数的混合写入数据(图14的步骤S706)。之后,存储器 写入FSM 208从这样的混合写入数据中产生存储器数据(即最终写入数据)和存储器地址 (图14的步骤S707)。如上面参照图4和图13所述,存储器数据的比特数取决于来自宽度 选择器202的存储器数据宽度信号"8"、"16"和"32"。存储器装置102接收所述存储器数 据并将所述存储器数据存储到存储器装置102的所述存储器地址中。以这种方式,对于图 14的步骤S707中的安全写入操作,当启用安全模式时,存储到存储器装置102中的存储器 数据包含检错码(EDC)。 图6示出了根据本发明实施例的图2中的读取器块116的框图。读取器块116包 括宽度选择器252、编码器254、分离器(demixer) 256、存储器读取FSM(有限状态机)258和 比较器260。根据本发明示例实施例,图6中的读取器块116中的宽度选择器252和编码器 254实现为与图3的写入器块114中的宽度202和编码器204相似。图6的读取器块116 中的分离器256与图3的写入器块114中的混合器206相反地运行,以从数据中分离检错 码。
参照图2和图6,当CPU 104为读取操作访问存储器装置102时,安全存储器接口 108和读取器块116的组件252、254、256、258和260进一步根据图15的流程图运行。CPU 104产生读取存储器访问信息,这样的读取命令包括读取指令名和指示要被访问的存储器 装置的地址的CPU地址(图15的步骤S801) 。 CPU地址指示存储器装置102要被读取的位置。 模式选择器112从读取存储器访问信息中确定安全模式是否被CPU启用(图15 的步骤S802)。模式选择器112可以根据上述的图7、图8、图9、图10、图11和图12中的任 何示例实施例来实现。 此外,在启用读取使能信号的情况下,存储器读取FSM 258将作为存储器地址的 CPU地址传输到存储器装置102 (图15的步骤S803)。之后,存储器装置102将作为初始读 取数据的存储器数据从存储器装置102的所述存储器地址传输到存储器读取FSM 258 (图 15的步骤S804)。如上面参照图4和图13所述,初始读取数据的比特数取决于来自宽度选 择器252的存储器数据宽度信号"8"、"16"和"32"。 当如SMI—Enable信号指示停用安全模式(图15的步骤S805)时,分离器256从初 始读取数据产生最终读取数据(即CPU数据)而不从初始读取数据中分离任何检错码(图 15的步骤S806)。最终读取数据(即CPU数据)被传输到CPU 104,其中,最终读取数据的 比特数与CPU数据宽度信号"8"、"16"和"24"中被启用的一个CPU数据宽度信号对应。
可选择地,当如SMI_Enable信号指示启用安全模式(图15的步骤S805)时,分离 器256通过从初始读取数据中分离检错码而从初始读取数据产生最终读取数据(即CPU数 据)(图15的步骤S807)。之后,编码器254利用CPU地址和最终读取数据中的至少一种产 生期望的检错码(EDC)(图15的步骤S808)。之后,比较器260通过将这样的来自编码器 254的期望的EDC与由分离器256从初始读取数据提取的EDC进行比较而产生错误检测信 号(SMI_Error)(图l5的步骤S809)。 如果来自编码器254的期望的EDC与由分离器256从初始读取数据提取的EDC不 是基本相同的,则比较器260启用SMI_Err0r信号以指示检测到缺陷注入到通过存储器读 取FSM 258接收到的初始读取数据中。电子系统100被通知这样的缺陷注入到初始读取数 据中。 在本发明的一个实施例中,写入器块114和读取器块116均实现为CPU104中的 硬件逻辑门。这样的额外的硬件逻辑门占用CPU 104的相对低的硅面积。对于由CPU 104 指示的安全数据,利用在CPU 104中的硬件实现的读取器块114和写入器块116来检测缺 陷注入。因此,即使对具有高容量的存储器装置102来说,这样的读取器块114和写入器块 116的硅面积的增加也不显著。 此外,有效地检测了在存储器装置102内或在存储器102和CPU 104之间的总线 处的缺陷注入。此外,CPU 104可以不管存储器装置102的容量而灵活地指示存储到存储 器装置102中的安全数据的量和位置。 前述只是为了举例而不是意图限制。因此,任何这里示出和描述的元件的数量只 是为了举例。此外,根据本发明示例实施例,写入器块114和读取器块116的组件可以容易 地实现为硬件逻辑门,这里给出了这样的组件的描述。然而,本发明还可以实现为用硬件和 /或软件的组合实现的写入器块114和读取器块116的组件。
16
本发明仅由权利要求及其等同物限定'
权利要求
一种安全存储器接口,包括读取器块,当启用安全模式时,所述读取器块通过从由存储器装置传输的初始读取数据中分离检错码来产生将被传输到数据处理单元的最终读取数据;模式选择器,所述模式选择器使用来自数据处理单元的存储器访问信息来启用或停用安全模式。
2. 如权利要求l所述的安全存储器接口,其中,当停用安全模式时,读取器块而从初始 读取数据产生最终读取数据而不分离任何检错码。
3. 如权利要求2所述的安全存储器接口,其中,存储器访问信息包括指令名,模式选择 器包括指令名解码器,当所述指令名对应安全读取指令时,指令名解码器启用安全模式,当所 述指令名对应常规读取指令时,指令名解码器停用安全模式。
4. 如权利要求3所述的安全存储器接口 ,其中,读取器块和指令名解码器设置在数据 处理单元中,所述数据处理单元为CPU。
5. 如权利要求2所述的安全存储器接口 ,其中,存储器访问信息包括对于初始读取数 据将被访问的存储器装置的地址,模式选择器包括地址解码器,当将被访问的存储器装置的地址为安全地址时,地址解码器启用安全模 式,当将被访问的存储器装置的地址为非安全地址时,地址解码器停用安全模式。
6. 如权利要求5所述的安全存储器接口 ,其中,地址解码器设置在产生将被访问的存 储器装置的地址的数据处理单元的外部,所述数据处理单元为CPU。
7. 如权利要求2所述的安全存储器接口 ,其中,存储器访问信息包括寄存器名,模式选 择器包括各个寄存器标志,所述寄存器标志指示寄存器名对应于启用安全模式还是对应于停用 安全模式。
8. 如权利要求7所述的安全存储器接口,其中,读取器块和所述各个寄存器标志设置 在数据处理单元中,所述数据处理单元为CPU。
9. 如权利要求1所述的安全存储器接口,其中,读取器块包括分离器,当启用安全模式时,分离器通过从初始读取数据中分离检错码来产生最终读 取数据,当停用安全模式时,分离器从初始读取数据产生最终读取数据而不分离任何检错 码;编码器,编码器从对应的地址和最终读取数据中的至少一种产生期望的检错码; 比较器,比较器通过将从初始读取数据中分离的检错码与期望的检错码进行比较来产 生错误检测信号。
10. 如权利要求9所述的安全存储器接口,其中,读取器块还包括 状态机,状态机通过从存储器访问信息产生存储器地址和读取使能信号而从存储器装置读取初始读取数据;宽度选择器,宽度选择器控制状态机来读取具有存储器数据宽度的初始读取数据,所 述存储器数据宽度取决于至少一个数据宽度控制信号,所述数据宽度控制信号还控制编码 器和分离器的操作。
11. 如权利要求io所述的安全存储器接口,其中,存储器数据宽度对应于所述存储器装置,所述至少一个数据宽度控制信号对应于数据处理单元的处理数据宽度。
12. 如权利要求11所述的安全存储器接口,其中,数据处理单元为通过总线与存储器 装置分离的CPU。
13. 如权利要求12所述的安全存储器接口 ,其中,数据处理单元和存储器装置被制造 为一个集成电路芯片。
14. 如权利要求12所述的安全存储器接口,其中,数据处理单元和存储器装置被制造 为两个独立的集成电路芯片。
15. 如权利要求1所述的安全存储器接口,所述安全存储器接口还包括 写入器块,当启用安全模式时,写入器块从初始写入数据和检错码产生将被写入存储器装置的最终写入数据;其中,当停用安全模式时,写入器块从初始写入数据产生最终写入数据而不使用检错码。
16. 如权利要求15所述的安全存储器接口,其中,写入器块和读取器块利用硬件逻辑 门实现。
17. —种安全存储器接口,包括写入器块,当启用安全模式时,写入器块从初始写入数据和检错码产生将被写入存储 器装置的最终写入数据;模式选择器,模式选择器使用来自数据处理单元的存储器访问信息来启用或停用安全 模式。
18. 如权利要求17所述的安全存储器接口,其中,当停用安全模式时,写入器块从初始 写入数据中产生最终写入数据而不使用检错码。
19. 如权利要求18所述的安全存储器接口,其中,存储器访问信息包括指令名,模式选 择器包括指令名解码器,当所述指令名对应安全写入指令时,指令名解码器启用安全模式,当所 述指令名对应常规写入指令时,指令名解码器停用安全模式。
20. 如权利要求18所述的安全存储器接口,其中,存储器访问信息包括将被访问的存 储器装置的地址,模式选择器包括地址解码器,当将被访问的存储器装置的地址为安全地址时,地址解码器启用安全模 式,当将被访问的存储器装置的地址为非安全地址时,地址解码器停用安全模式。
21. 如权利要求18所述的安全存储器接口,其中,存储器访问信息包括寄存器名,模式选择器包括各个寄存器标志,所述寄存器标志指示寄存器名对应于启用安全模式还是对应于停用 安全模式。
22. 如权利要求18所述的安全存储器接口,其中,写入器块包括 编码器,编码器从对应的地址和初始写入数据中的至少一种产生检错码;混合器,当启用安全模式时,混合器从初始写入数据和检错码产生混合写入数据,当停 用安全模式时,混合器从初始写入数据产生混合写入数据而不使用检错码; 其中,混合写入数据确定最终写入数据。
23. 如权利要求22所述的安全存储器接口,其中,写入器块还包括CN 101714411 A 状态机,状态机从混合的数据产生最终写入数据、写入使能信号和存储器装置的存储 最终写入数据的地址;宽度选择器,宽度选择器控制状态机产生具有存储器数据宽度的最终写入数据,所述 存储器数据宽度取决于至少一个数据宽度控制信号,所述数据宽度控制信号还控制编码器 和分离器,其中,所述至少一个数据宽度控制信号对应于数据处理单元的处理数据宽度。
24. 如权利要求23所述的安全存储器接口 ,其中,数据处理单元为通过总线与存储器 装置分离的CPU。
25. 如权利要求24所述的安全存储器接口 ,其中,数据处理单元和存储器装置被制造 为一个集成电路芯片。
26. 如权利要求24所述的安全存储器接口 ,其中,数据处理单元和存储器装置被制造 为两个独立的集成电路芯片。
27. —种安全地访问存储器装置的方法,所述方法包括当启用安全模式时,通过从由存储器装置传输的初始读取数据中分离检错码来产生将 要传输到数据处理单元的最终读取数据;使用来自数据处理单元的存储器访问信息来启用或停用安全模式。
28. 如权利要求27所述的方法,所述方法还包括当停用安全模式时,不分离任何检错码而从初始读取数据产生最终读取数据。
29. 如权利要求28所述的方法,其中,存储器访问信息包括指令名,所述方法还包括 当所述指令名对应安全读取指令时,启用安全模式;当所述指令名对应常规读取指令时,停用安全模式。
30. 如权利要求28所述的方法,其中,存储器访问信息包括对于初始读取数据将被访 问的存储器装置的地址,所述方法还包括当将被访问的存储器装置的地址为安全地址时,启用安全模式; 当将被访问的存储器装置的地址为非安全地址时,停用安全模式。
31. 如权利要求28所述的方法,其中,存储器访问信息包括寄存器名,各个寄存器标志 指示寄存器名对应于启用安全模式还是对应于停用安全模式。
32. 如权利要求28所述的方法,所述方法还包括 从对应的地址和最终读取数据中的至少一种产生期望的检错码;通过将从初始读取数据中分离的检错码与期望的检错码进行比较来产生错误检测信号。
33. 如权利要求32所述的方法,所述方法还包括通过从存储器访问信息产生存储器地址和读取使能信号而从存储器装置读取初始读 取数据;控制状态机来读取具有存储器数据宽度的初始读取数据,所述存储器数据宽度取决于 至少一个数据宽度控制信号,其中,所述至少一个数据宽度控制信号对应于数据处理单元的处理数据宽度。
34. 如权利要求33所述的方法,其中,数据处理单元为通过总线与存储器装置分离的CPU。
35. 如权利要求34所述的方法,其中,数据处理单元和存储器装置被制造为一个集成 电路芯片。
36. 如权利要求34所述的方法,其中,数据处理单元和存储器装置被制造为两个独立 的集成电路芯片。
37. 如权利要求27所述的方法,所述方法还包括当启用安全模式时,从初始写入数据和检错码产生将被写入存储器装置的最终写入数据;当停用安全模式时,从初始写入数据中产生最终写入数据而不使用检错码。
38. —种安全地访问存储器装置的方法,所述方法包括当启用安全模式时,从初始写入数据和检错码产生将被写入存储器装置的最终写入数据;使用来自数据处理单元的存储器访问信息来启用或停用安全模式。
39. 如权利要求38所述的方法,所述方法还包括当停用安全模式时,从初始写入数据中产生最终写入数据而不使用检错码。
40. 如权利要求39所述的方法,其中,存储器访问信息包括指令名,所述方法还包括 在指令名对应安全写入指令时,启用安全模式; 在指令名对应常规写入指令时,停用安全模式。
41. 如权利要求39所述的方法,其中,存储器访问信息包括将被访问的存储器装置的 地址,所述方法还包括当将被访问的存储器装置的地址为安全地址时,启用安全模式; 当将被访问的存储器装置的地址为非安全地址时,停用安全模式。
42. 如权利要求39所述的方法,其中,存储器访问信息包括寄存器名,各个寄存器标志 指示寄存器名对应于启用安全模式还是对应于停用安全模式。
43. 如权利要求39所述的方法,所述方法还包括 从对应的地址和初始写入数据中的至少一种产生检错码;当启用安全模式时,从初始写入数据和检错码产生混合写入数据,当停用安全模式时, 从初始写入数据中产生混合写入数据而不使用检错码; 其中,混合写入数据确定最终写入数据。
44. 如权利要求43所述的方法,所述方法还包括从混合的数据产生最终写入数据、写入使能信号和存储器装置的存储最终写入数据的 地址;产生具有存储器数据宽度的最终写入数据,所述存储器数据宽度取决于至少一个数据 宽度控制信号,其中,所述至少一个数据宽度控制信号对应于数据处理单元的处理数据宽度。
45. 如权利要求44所述的方法,其中,数据处理单元为通过总线与存储器装置分离的CPU。
46. 如权利要求45所述的方法,其中,数据处理单元和存储器装置被制造为一个集成 电路芯片。
47. 如权利要求45所述的方法,其中,数据处理单元和存储器装置被制造为两个独立的集成电路芯片。
48. —种访问存储器装置的方法,所述方法包括产生包括至少一个地址比特或寄存器名的指示存储器装置的访问类型的存储器访问 信息;根据由存储器访问信息指示的访问类型来访问存储器装置。
49. 如权利要求48所述的方法,其中,所述访问类型包括安全访问或非安全访问。
50. 如权利要求48所述的方法,其中,由数据处理单元产生的所述至少一个地址比特 确定存储器装置的访问类型。
51. 如权利要求48所述的方法,其中,由数据处理单元产生的寄存器名确定存储器装 置的访问类型。
52. —种电子系统,包括 存储器装置;数据处理单元,产生存储器访问信息,所述存储器访问信息包括指示存储器装置的访 问类型的至少一个地址比特或寄存器名;接口单元,根据由存储器访问信息指示的访问类型来访问存储器装置。
53. 如权利要求52所述的电子系统,其中,所述访问类型包括安全访问或非安全访问。
54. 如权利要求52所述的电子系统,其中,由数据处理单元产生的所述至少一个地址 比特确定存储器装置的访问类型。
55. 如权利要求52所述的方法,其中,由数据处理单元产生的寄存器名确定存储器装 置的访问类型。
全文摘要
本发明提供一种安全存储器接口,所述安全存储器接口包括读取器块、写入器块和模式选择器,所述读取器块、写入器块和模式选择器在启用安全模式时检测存储器装置中的缺陷注入。模式选择器使用来自数据处理单元的存储器访问信息来启用或停用安全模式。因此,数据处理单元灵活地指示存储到存储器装置中的安全数据的量和位置。
文档编号G11C29/04GK101714411SQ20091014026
公开日2010年5月26日 申请日期2009年7月13日 优先权日2008年10月1日
发明者塞巴斯蒂安·柳 申请人:三星电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1