从存储器中读取配置信息的控制方法、装置和系统与流程

文档序号:12826891阅读:269来源:国知局
从存储器中读取配置信息的控制方法、装置和系统与流程

本发明涉及电子技术领域,具体而言,涉及一种从存储器中读取配置信息的控制方法、装置和系统。



背景技术:

在本领域,随着集成电路设计技术和半导体制造工艺的进步,越来越多的电路可以集成在一块芯片上,大幅降低了系统的成本,并提高了系统的可靠性。在芯片设计中,系统配置信息用于区分产品方向、特性等以适用于不同的应用场景,这些系统配置信息通常存储在非易失存储器(nvm,non-volatilememory)中。由于其中有一些配置信息用于作为芯片特殊功能开启或者关闭的条件,如果这些特殊功能是受保护的,则容易被黑客关注,那么这些配置信息可以称之为敏感配置信息。系统配置信息可以在上电启动的过程中有硬件自动从nvm中读取,也可能在系统正常运行之后由软件触发从nvm中读取。总之,系统的正常运行要求在获取系统配置信息的过程中是稳定可靠的。

nvm作为存储逻辑单元,供电电压的稳定性能够直接影响到从nvm中读取数据的稳定性。对于常见的nvm的器件(例如,otp、efuse、eflash和eeprom等),如果供电电压低于其规格书所要求的最低阈值时,nvm的存储单元由于供电电流不足导致读出来的有可能还是初始值,即烧写前的状态。例如,otp单元的初始值是0,经过成功烧写后变成1,但是在较低供电电压的工作状况下,读回来的值就可能变成0。

通常,在soc(systemonchip)架构中,nvm作为一个内嵌ip(intellectualproperties)模块存在于soc中,是一个hardmacro来自于第三方,由于ip本身不涵盖低电压检测及保护功能,因而,来自黑客的低电压攻击会导致nvm中的数据读取不正常,nvm中的系统配置信息(特别是敏感的配置信息)同样会受到低电压攻击,使得系统变得薄弱,导致一些待保护的信息或者模块就在黑客面前暴露无遗。

针对上述现有技术在从nvm(非易失存储器)中读取系统配置信息的过程中无法抵御低电压攻击的问题,目前尚未提出有效的解决方案。



技术实现要素:

本发明实施例提供了一种从存储器中读取配置信息的控制方法、装置和系统,以至少解决现有技术在从nvm(非易失存储器)中读取系统配置信息的过程中无法抵御低电压攻击的技术问题。

根据本发明实施例的一个方面,提供了一种从存储器中读取配置信息的控制方法,包括:获取从存储器的第一存储区域读取到的第一存储值,以及从存储器的第二存储区域读取到的第二存储值,其中,第一存储区域为存储器中用于存储预烧值的存储区域,第二存储区域为存储器中用于存储配置信息的存储区域;判断第一存储值是否等于预烧值,其中,预烧值为预先在存储器的第一存储区域烧录的与存储器的初始状态值相反的一个值;如果第一存储值等于预烧值,则根据第二存储值与初始状态值确定输出的配置信息的状态值,其中,状态值用于表征配置信息是否有效。

根据本发明实施例的另一方面,提供了一种从存储器中读取配置信息的控制系统,包括:第一存储单元,用于存储预烧值;第二存储单元,用于存储配置信息;第一寄存器,与第一存储单元连接,用于锁存从第一存储单元中读取到的第一存储值;第二寄存器,与第二存储单元连接,用于锁存从第二存储单元中读取到的第二存储值;控制电路,用于判断第一存储值是否等于预烧值,并在第一存储值等于预烧值的情况下,根据第二存储值与存储器的初始状态值确定输出的配置信息的状态值,其中,状态值用于表征配置信息是否有效;其中,预烧值为预先在第一存储单元烧录的与存储器的初始状态值相反的一个值。

根据本发明实施例的另一方面,还提供了一种芯片,包括:上述所述的从存储器中读取配置信息的控制系统。

根据本发明实施例的另一方面,还提供了一种从存储器中读取配置信息的控制装置,包括:获取模块,用于获取从存储器的第一存储区域读取到的第一存储值,以及从存储器的第二存储区域读取到的第二存储值,其中,第一存储区域为存储器中用于存储预烧值的存储区域,第二存储区域为存储器中用于存储配置信息的存储区域;判断模块,用于判断第一存储值是否等于预烧值,其中,预烧值为预先在存储器的第一存储区域烧录的与存储器的初始状态值相反的一个值;第一执行模块,用于如果第一存储值等于预烧值,则根据第二存储值与初始状态值确定输出的配置信息的状态值,其中,状态值用于表征配置信息是否有效。

在本发明实施例中,通过获取从存储器的第一存储区域读取到的第一存储值,以及从存储器的第二存储区域读取到的第二存储值,其中,第一存储区域为存储器中用于存储预烧值的存储区域,第二存储区域为存储器中用于存储配置信息的存储区域;判断第一存储值是否等于预烧值,其中,预烧值为预先在存储器的第一存储区域烧录的与存储器的初始状态值相反的一个值;如果第一存储值等于预烧值,则根据第二存储值与初始状态值确定输出的配置信息的状态值,其中,状态值用于表征配置信息是否有效,达到了依据存储器预烧区域读取的存储值来判断存储器当前是否处于异常低电压,并根据判断结果来确定从该存储器中读取的系统配置信息是否有效的目的,从而实现了防止低供电电压攻击从存储器中读取系统配置信息的技术效果,进而解决了现有技术在从nvm(非易失存储器)中读取系统配置信息的过程中无法抵御低电压攻击的技术问题。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是根据本发明实施例的一种从存储器中读取配置信息的控制方法流程图;

图2是根据本发明实施例的一种可选的从存储器中读取配置信息的控制方法流程图;

图3是根据本发明实施例的一种可选的从存储器中读取配置信息的控制方法流程图;

图4是根据本发明实施例的一种从存储器中读取配置信息工作原理示意图;

图5是根据本发明实施例的一种从存储器中读取配置信息的控制系统示意图;

图6是根据本发明实施例的一种可选的从存储器中读取配置信息的控制系统示意图;以及

图7是根据本发明实施例的一种从存储器中读取配置信息的控制装置示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的存储值在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

实施例1

根据本发明实施例,提供了一种从存储器中读取配置信息的控制方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

图1是根据本发明实施例的一种从存储器中读取配置信息的控制方法流程图,如图1所示,该方法包括如下步骤:

步骤s102,获取从存储器的第一存储区域读取到的第一存储值,以及从存储器的第二存储区域读取到的第二存储值,其中,第一存储区域为存储器中用于存储预烧值的存储区域,第二存储区域为存储器中用于存储配置信息的存储区域。

具体地,在上述步骤中,上述存储器可以为用于存储芯片上各种系统配置信息和其他信息的非易失性存储器,包括:可编程只读存储器(prom)、可擦可编程只读存储器(eprom)、电可擦除只读存储器(eeprom)和电子闪存(eflash)等;一种可选的实施方案中,上述存储器也可以为电池供电的随机存储存器(ram)。上述第一存储区域和第二存储区域可以为在存储器中按照预定规则划分的区域,其中,第一存储区域用于存储预烧值,第二存储区域用于存储系统的配置信息,一种可选的实施方案中,该配置信息可以作为开启或者关闭芯片特殊功能的敏感配置信号。上述预烧值可以为预先烧录在存储器的第一存储区域的一个状态值。

一种可选的实施例中,可以充分利用nvm存储单元的逻辑特性,选取对电压更为敏感的存储空间作为预烧区域(即上述第一存储区域),预烧区域是指nvm中用于提前烧写的特定区域。选取的原则是该区域存储的值在异常的低电压工作下读出来出现变化的概率最大。如发现读回来的预烧值不一致则判断nvm供电电压异常。通过选定辅助检测nvm工作环境是否正常的预烧区域,无需定制额外的nvm存储逻辑或者相关检测电路,降低了系统复杂度,节约了硬件成本。

此处需要说明的是,由于nvm基本存储单元的结构特性,一般来说在异常的低压工作条件下,无论nvm中的存储值是高还是低,都会被误认为是初始值,因而,一种可选的实施方案中,可以选定预烧值为与初始值相反的一个值。以eflash为例,因其初始值为32’hfffffff,则选定预烧值为32’h00000000。

步骤s104,判断第一存储值是否等于预烧值,其中,预烧值为预先在存储器的第一存储区域烧录的与存储器的初始状态值相反的一个值。

具体地,在上述步骤中,当从存储器的第一存储区域读取到第一存储值,并从第二存储区域读取到第二存储值后,可以判断从该存储器的第一存储区域读取到的第一存储值是否等于预先在该存储器的第一存储区域存储的预烧值,进而根据判断结果确定该存储器是否处于异常低电压的工作环境。

需要说明的是,由于选取的第一存储区域(即预烧区域)为存储器中对低供电电压最为敏感的存储空间,则如果从第一存储区域读取的存储值等于预烧值,则可以确定当前存储器的供电电压可以满足从第二存储区域读取数据的供电电压,即可以表明从第二存储区域读取的存储值是正常供电电压下读取的。

步骤s106,如果第一存储值等于预烧值,则根据第二存储值与初始状态值确定输出的配置信息的状态值,其中,状态值用于表征配置信息是否有效。

具体地,在上述步骤中,第一存储值为从存储器的第一存储区域读取到的值,第二存储值为从存储器的第二存储区域读取到的值;预烧值为预先在存储器的第一存储区域烧录的与存储器的初始状态值相反的一个值;在从存储器的第一存储区域读取到第一存储值后,如果从存储器的第一存储区域读取到的第一存储值等于预先在该第一存储区域烧录的预烧值,则可以确定该存储器当前读取数据的供电电压正常,即,该供电电压可以满足从该存储器的第二存储区域读取配置信息(第二存储值)的电压,然后根据该第二存储值与该存储器的初始状态值确定最终输出的状态值,该状态值可以用于表征该配置信息是否有效,以进一步确定是否允许系统执行该配置信息。

由上可知,在本申请上述实施例中,根据存储器(例如,nvm)存储单元的逻辑特性,在存储器中划分出一个预烧区域(即第一存储区域),用于预先烧录一个与该存储器的初始状态相反的一个值(即预烧值),在从该存储器读取数据的过程中,首先判断从该存储器的第一存储区域读取的存储值是否与预先烧录的预烧值相等,在从第一存储区域读取的存储值等于预烧值的情况下,根据从存储器的第二存储区域读取的第二存储值(配置信息)和该存储器的初始状态值确定最终输出用于表征配置信息是否有效的状态值,达到了依据存储器预烧区域读取的存储值来判断存储器当前是否处于异常低电压,并根据判断结果来确定从该存储器中读取的系统配置信息是否有效的目的,从而实现了防止低供电电压攻击从存储器中读取系统配置信息的技术效果,进而解决了现有技术在从nvm(非易失存储器)中读取系统配置信息的过程中无法抵御低电压攻击的技术问题。

在一种可选的实施例中,在判断第一存储值是否等于预烧值之后,上述方法还包括:步骤s108,如果第一存储值不等于预烧值,则输出预先配置的安全状态值,其中,安全状态值用于表征配置信息无效。

具体地,在上述步骤中,上述安全状态值可以为预先配置的一个状态值,该状态值可以用于表征从存储器的第二存储区域读取到的配置信息(第二存储值)无效。在从存储器的第一存储区域读取到第一存储值后,如果从存储器的第一存储区域读取到的第一存储值不等于预先在该第一存储区域烧录的预烧值,则可以确定该存储器当前读取数据的供电电压异常,即,该供电电压不能够满足从该存储器的第二存储区域读取配置信息(第二存储值)的电压,将输出的该配置信息的状态值为预先配置的安全状态值,以表征从第二存储区域读取的配置信息无效,从而禁止用户访问系统的某些特殊功能。

通过上述实施例,达到了禁止执行存储器在供电电压异常的情况下读取出的配置信息的目的,从而使得芯片进入一个安全的模式。

在一种可选的实施例中,上述配置信息可以包含至少一个冗余比特。

具体地,在上述实施例中,由于在存储器供电电压异常的情况下,从存储器中读取的存储值可能还是初始值,因而,为了强化敏感配置生效机制,可以增加冗余比特来重构配置信息,如果配置信息的二进制比特中所有比特都为初始状态,则判定从第二存储区域读取的配置信息无效;如果配置信息的二进制比特中至少有一个比特是与初始状态相反的值,则认为该配置信息有效。

需要说明的是,可以根据nvm的读写特性或者系统性能来确定为配置信号增加的冗余位数。一种可选的实施方案中,假设一个敏感配置信号(配置信息)用于关闭调试口,在nvm中规划32-bit作为该敏感配置信号有效比特(bit),其中31-bit为冗余位,重新定义该配置信号为dbg_dis,如果这32-bit都为初始状态,则认为dbg_dis无效;而如果32比特中只要有一个比特被烧成与初始状态相反的值,则认为dbg_dis有效。

通过上述实施例,增加冗余位来重构配置信息,可以最大限度地减少敏感配置信号在非安全模式下对应的状态,从而可以实现增强敏感配置信号的生效机制的目的。

在一种可选的实施例中,如图2所示,根据第二存储值与初始状态值确定输出的配置信息的状态值,可以包括如下步骤:

步骤s202,判断第二存储值的所有比特是否都等于初始状态值;

步骤s204a,如果第二存储值的所有比特都等于初始状态值,则输出第一状态值,其中,第一状态值用于表征配置信息无效;

步骤s204b,如果第二存储值的所有比特中的任意一个比特不等于初始状态值,则输出第二状态值,其中,第二状态值用于表征配置信息有效。

具体地,在上述步骤中,第二存储值为从存储器的第二存储区域读取到的用于表示配置信息的二进制数值;初始状态值为该存储器中存储单元的初始值,在增加冗余位重构配置信息后,从存储器的第二存储区域读取的第二存储值也是包含了多个冗余比特的值,在根据第二存储值与初始状态值确定输出的配置信息的状态值的过程中,判断从存储器的第二存储区域读取的第二存储值的所有比特是否都等于该存储器的初始状态值(例如,“0”比特),如果第二存储值的所有比特都等于该存储器的初始状态值,则认为该第二存储值表示的配置信息无效,输出第一状态值;如果第二存储值的所有比特中至少有一个不等于该存储器的初始状态值,则认为配置信息有效,输出第二状态值。

一种可选的实施例中,可以设置第一状态值为0,第二状态值为1。

一种可选的实施方案中,在存储器中存储单元的初始状态值为1的情况下,判断从该存储器的第二存储区域读取到的第二存储值的所有比特是否等于1,如果第二存储值的所有比特全为1,则输出第一状态值0;如果第二存储值的所有比特不全为1,则输出第二状态值1。

另一种可选的实施方案中,在存储器中存储单元的初始状态值为0的情况下,判断从该存储器的第二存储区域读取到的第二存储值的所有比特是否等于0,如果第二存储值的所有比特全为0,则输出第一状态值0;如果第二存储值的所有比特不全为1,则输出第二状态值1。

通过上述实施例,实现了以数字逻辑来判断从存储器中读取的配置信息是否处于安全状态的目的,具有如下优先:逻辑结构简单占用资源少,电路可靠性非常高,适用范围广。

在一种可选的实施例中,如图3所示,上述方法还可以包括如下步骤:

步骤s302,按照存储器的存储特性划分第一存储区域和第二存储区域,其中,第一存储区域为存储器中对低供电电压敏感的存储区域;

步骤s304,将预烧值烧录在第一存储区域。

具体地,在上述步骤中,充分利用存储器存储单元的逻辑特性,可以选取对电压更为敏感的区域作为预烧区域(即第一存储区域),辅助检测存储器(nvm)工作环境是否正常。在将存储器按照存储器的存储特性划分第一存储区域和第二存储区域后,将预烧值烧录在该存储器的第一存储区域。

需要说明的是,对于预烧值的设定,主要根据nvm基本存储单元的结构特性,总的原则是选定的值在会异常的低电压工作下读出来是出现变化的概率最大,检测电路更准确地确定nvm供电电压异常。根据nvm基本存储单元的结构特性,经过烧写之后的单元是通常是基于存储的电荷进行信息存储,然而一旦供电电压过低,从nvm读出来的值会出现概率性地翻转,这翻转概率会有所区别,例如有的eflash1->0的概率不到5%,然后0->1概率却超过95%,那么选用0作为该单元的预烧值

一种可选的实施方案中,在芯片量产阶段或者测试阶段,可以通过存储器(nvm)的专有测试口将预烧值烧入到预烧区域,这样能够对于该区域加以保护,避免在正常的功能模式下因cpu的错误操作而改写该区域的值。

作为一种优选的实施例,下面结合图4来说明本申请上述实施例,图4是根据本发明实施例的一种优选的从存储器中读取配置信息工作原理示意图;如图4所示,nvm为用于存储系统配置信息和其他信息的非易失存储器,在nvm中选取存储单元中对低供电电压最为敏感的存储空间作为预烧区域(即第一存储区域),一种可选的实施方式中,可以选择连续4个字节作为预烧区域并且方便一次读操作可完成预烧区域的读取。

在选取预烧区域后,将把预烧值烧入到预烧区域,该预烧值为与nvm的初始值相反的一个值,例如,nvm存储单元的初始值为0,则选定的预烧值为1。

当需要从nvm中读取敏感配置信号时,nvm读写控制电路被触发依次从nvm中读取预烧区域和系统配置区域,并分别将从预烧区域(即第一存储区域)和系统配置区域(即第二存储区域)读取到的存储值存放到m1和m2中。其中,nvm读写控制电路是芯片中专门为nvm设计的读写控制电路,用于完成对nvm烧写、擦除、读等动作;m1是寄存器组,用于锁存nvm读写控制电路从nvm预烧区域读出来的数据;m2也是寄存器组,用于锁存nvm读写控制电路从nvm系统控制区域读出来的配置信息。

在将从预烧区域读取的值存储在m1寄存器组中后,通过m3将m1寄存器组的值与固化在芯片中的目标预烧值作比较,并将比较结果输出。其中,m3是一个比较逻辑,通过比较从预烧区域读取的值与目标预烧值,可以判断预烧值读取是否正确,如果相等则输出0,否则输出1。

在将从系统配置区域读取的值存储在m2是寄存器组中后,通过m4位判断模块判断m2寄存器组的配置信息是否全为1或者是否全为0。具体地,当nvm存储单元的初始状态为1时,m4则负责判读配置信息所有比特是否全为1,如果全为1则输出结果为0至下一级,否则输出1至下一级;当nvm存储单元的初始状态为0时,m4则负责判读配置信息所有比特是否全为0,如果全为0则输出结果为0至下一级,否则输出1至下一级。

最后,m5负责将m3与m4的结果进行综合处理最终向下一级ip(intellectualproperties)模块输出敏感配置有效值。在预烧值读取错误的情况下,m5将敏感配置信号变成安全状态。在预烧值读取正确的情况下,敏感配置信号的状态则依赖于m4位判断模块的结果。对于m5模块,框内所示只是示例实现方式,总的原则依照m5的功能要求。其中,ip模块是指具有知识产权的模块,包括软ip、固化ip和硬ip三种类型,随着ic的发展和soc复杂度的提高,ip已成为soc设计的基础。

此处需要说明的是,m3、m4和m5构成一个逻辑关系如下所示:

“if(m2==’initialvalue’&&m1==’pre-programvalue’)

sensitiveconfigurationisdisabled

else

sensitiveconfigurationisenabled”

其中initialvalue指代的是nvm的初始状态值,而pre-programvalue则是预烧值。只有m2中存储值恒等于初始值且m1中的存储值恒等于预烧值的情况下,从系统配置区域读取的配置信息是无效的,即禁止执行该配置信息;其他情况下,从系统配置区域读取的配置信息是有效的。

作为一种优选的实施方式,以eflash为例来进行说明如何本申请实施例如何抵御低电压攻击。在eflash中,如果要设计一个敏感配置信号(dbg_dis)用于关闭调试口,假设eflash存储单元的初始状态为1,规划32比特作为关闭调试口的控制信息,其中31比特是冗余位。具体应用情形如下:

(1)当允许调试口开通,则此配置区域无需烧写为0,保持初始值全为1。

在nvm正常供电的情况下,nvm控制电路从nvm读出来的预烧值和控制信息都是正确的,m3判定预烧区域读取正确,m4判定m2所有比特都为1,那么同时符合“m2等于nvm初始值”和“m3等于预烧值”这两个条件,所以最终输出允许调试口开通。

在nvm遇到低电压攻击的情况下,nvm控制电路从nvm读出来的预烧值是错的,控制信息可能是错的,m3判定预烧区域读取错误,那么无法同时符合“m2等于nvm初始值”和“m3等于预烧值”这两个条件,所以最终输出将调试口关闭,将芯片进入一个更为安全模式以达到自我保护的目的。

(2)当关闭调试口,则此配置区域内为dbg_dis定义的所有比特都应烧为0.

在nvm正常供电的情况下,nvm控制电路从nvm读出来的预烧值和控制信息都是正确的,m3判定预烧区域读取正确,m4判定m2所有比特都为0,那么m2不等于nvm初始值,根据判断逻辑所以最终输出将调试口关闭,达到预期目的。

在nvm遇到低电压攻击的情况下,nvm控制电路从nvm读出来的预烧值是错的,控制信息可能是错的,m3判定预烧区域读取错误,那么m3不等于预烧值,根据判断逻辑所以最终输出将调试口关闭,将芯片进入一个更为安全模式以达到自我保护的目的。

在上述实施例方式中,敏感配置信号(dbg_dis)在遇到低电压攻击的时候均会强制使能,使得芯片进入更为安全的模式,不存在dbg_dis从有效状态退回无效的情况。

通过本申请上述实施例,可以实现针对任何ic设计中对敏感配置信号的保护以抵御针对nvm的低电压攻击。具体可以实现如下技术效果:

(1)充分利用nvm存储单元的逻辑特性,选取对电压更为敏感的区域作为预烧区域,辅助检测nvm工作环境是否正常,无需定制额外的nvm存储逻辑或者相关检测电路;

(2)为原本单一控制信号增加冗余比特,强化敏感配置生效机制,增加敏感配置信号的冗余位,最大限度地减少敏感配置信号在非安全模式下对应的状态;

(3)以数字逻辑实现nvm异常检测确保敏感配置信号处于安全状态,逻辑结构简单占用资源少,电路可靠性非常高,适用范围广。

实施例2

根据本发明实施例,提供了一种从存储器中读取配置信息的控制系统实施例。

图5是根据本发明实施例的一种从存储器中读取配置信息的控制系统示意图,如图5所示,该控制系统包括:第一存储单元1、第二存储单元2、第一寄存器3、第二寄存器4和控制电路5。

其中,第一存储单元1,用于存储预烧值;

第二存储单元2,用于存储配置信息;

第一寄存器3,与第一存储单元1连接,用于锁存从第一存储单元中读取到的第一存储值;

第二寄存器4,与第二存储单元2连接,用于锁存从第二存储单元中读取到的第二存储值;

控制电路5,与第一寄存器3和第二寄存器4连接,用于判断第一存储值是否等于预烧值,并在第一存储值等于预烧值的情况下,根据第二存储值与初始状态值确定输出的配置信息的状态值,其中,状态值用于表征配置信息是否有效;

其中,预烧值为预先在存储器的第一存储单元1烧录的与存储器的初始状态值相反的一个值。

具体地,上述存储器可以为用于存储芯片上各种系统配置信息和其他信息的非易失性存储器,包括:可编程只读存储器(prom)、可擦可编程只读存储器(eprom)、电可擦除只读存储器(eeprom)和电子闪存(eflash)等;一种可选的实施方案中,上述存储器也可以为电池供电的随机存储存器(ram)。上述第一存储单元1和第二存储单元2可以为存储器中按照预定规则划分的不同存储区域的存储单元,其中,第一存储单元1用于存储预烧值,第二存储单元2用于存储系统的配置信息,一种可选的实施方案中,该配置信息可以作为开启或者关闭芯片特殊功能的敏感配置信号。上述预烧值可以为预先烧录在存储器的第一存储单元的一个状态值。上述第一寄存器3和第二寄存器4可以是寄存器组,包括至少一个寄存器。上述控制电路5与第一寄存器3和第二寄存器4连接,可以接收第一寄存器3从第一存储单元1中读取的第一存储值,以及第二寄存器4从第二存储单元2中读取的第二存储值(配置信息),通过判断从存储器的第一存储单元1读取到的第一存储值是否等于预先在该第一存储单元1中存储的预烧值,进而根据判断结果确定该存储器是否处于异常低电压的工作环境。

作为一种可选的实施方案,在从存储器的第一存储单元1读取到第一存储值后,如果从存储器的第一存储单元1读取到的第一存储值等于预先在该第一存储单元1烧录的预烧值,则可以确定该存储器当前读取数据的供电电压正常,即,该供电电压可以满足从该存储器的第二存储单元2读取配置信息(第二存储值)的电压,然后根据该第二存储值与该存储器的初始状态值确定最终输出的状态值,该状态值可以用于表征该配置信息是否有效,以进一步确定是否允许系统执行该配置信息。

一种可选的实施例中,可以充分利用nvm存储单元的逻辑特性,选取对电压更为敏感的存储空间作为预烧区域(即上述第一存储单元1),预烧区域是指nvm中用于提前烧写的特定区域。选取的原则是该区域存储的值在异常的低电压工作下读出来出现变化的概率最大。如发现读回来的预烧值不一致则判断nvm供电电压异常。通过选定辅助检测nvm工作环境是否正常的预烧区域,无需定制额外的nvm存储逻辑或者相关检测电路,降低了系统复杂度,节约了硬件成本。

需要说明的是,上述实施例中,由于选取的第一存储单元1(即预烧区域)为存储器中对低供电电压最为敏感的存储空间,则如果从第一存储单元1读取的存储值等于预烧值,则可以确定当前存储器的供电电压可以满足从第二存储单元2读取数据的供电电压,即可以表明从第二存储单元2读取的存储值是正常供电电压下读取的。

此处还需要说明的是,由于nvm基本存储单元的结构特性,一般来说在异常的低压工作条件下,无论nvm中的存储值是高还是低,都会被误认为是初始值,因而,一种可选的实施方案中,可以选定预烧值为与初始值相反的一个值。以eflash为例,因其初始值为32’hfffffff,则选定预烧值为32’h00000000。

在一种可选的实施例中,如图6所示,上述控制电路5可以包括:

第一比较逻辑电路51,与第一寄存器3连接,用于比较第一存储值是否等于预烧值,输出比较结果;

位判断电路52,与第二寄存器4连接,用于根据第二存储值与初始状态值确定输出的配置信息的状态值。

具体地,上述第一比较逻辑电路51与第一寄存器3连接,接收来自第一寄存器3从存储器的第一存储单元1读取到的第一存储值,并判断第一存储值是否等于预先在该第一存储单元1中存储的预烧值,并将比较结果输出,该比较结果可以用于确定该存储器是否处于异常低电压的工作环境。上述位判断电路52,与第二寄存器4连接,接收来自第二寄存器4从存储器的第二存储单元2读取到的第二存储值(配置信息),并判断第二存储值是否等于该存储器中存储单元的初始值。

需要说明的是,由于在存储器供电电压异常的情况下,从存储器中读取的存储值可能还是初始值,因而,为了强化敏感配置生效机制,可以增加冗余比特来重构配置信息,如果配置信息的二进制比特中所有比特都为初始状态,则判定从第二存储单元2读取的配置信息无效;如果配置信息的二进制比特中至少有一个比特是与初始状态相反的值,则认为该配置信息有效。

容易注意的是,可以根据nvm的读写特性或者系统性能来确定为配置信号增加的冗余位数。例如,假设一个敏感配置信号(配置信息)用于关闭调试口,在nvm中规划32-bit作为该敏感配置信号有效比特(bit),其中31-bit为冗余位,重新定义该配置信号为dbg_dis,如果这32-bit都为初始状态,则认为dbg_dis无效;而如果32比特中只要有一个比特被烧成与初始状态相反的值,则认为dbg_dis有效。

通过上述实施例,增加冗余位来重构配置信息,可以最大限度地减少敏感配置信号在非安全模式下对应的状态,从而可以实现增强敏感配置信号的生效机制的目的。

作为一种可选的实施例,上述位判断电路52可以在接收到来自第二寄存器4从存储器的第二存储单元2读取到的第二存储值(配置信息)后,判断第二存储值的所有比特是否都等于初始状态值;如果第二存储值的所有比特都等于初始状态值,则输出第一状态值,该第一状态值用于表征配置信息无效;如果第二存储值的所有比特中的任意一个比特不等于初始状态值,则输出第二状态值,该第二状态值用于表征配置信息有效。

具体地,在上述实施例中,第二存储值为从存储器的第二存储单元2读取到的用于表示配置信息的二进制数值;初始状态值为该存储器中存储单元的初始值,在增加冗余位重构配置信息后,从存储器的第二存储单元2读取的第二存储值也是包含了多个冗余比特的值,在根据第二存储值与初始状态值确定输出的配置信息的状态值的过程中,判断从存储器的第二存储单元2读取的第二存储值的所有比特是否都等于该存储器的初始状态值(例如,“0”比特),如果第二存储值的所有比特都等于该存储器的初始状态值,则认为该第二存储值表示的配置信息无效,输出第一状态值;如果第二存储值的所有比特中至少有一个不等于该存储器的初始状态值,则认为配置信息有效,输出第二状态值。

一种可选的实施例中,可以设置第一状态值为0,第二状态值为1。

一种可选的实施方式中,在存储器中存储单元的初始状态值为1的情况下,判断从该存储器的第二存储单元2读取到的第二存储值的所有比特是否等于1,如果第二存储值的所有比特全为1,则输出第一状态值0;如果第二存储值的所有比特不全为1,则输出第二状态值1。

另一种可选的实施方式中,在存储器中存储单元的初始状态值为0的情况下,判断从该存储器的第二存储单元2读取到的第二存储值的所有比特是否等于0,如果第二存储值的所有比特全为0,则输出第一状态值0;如果第二存储值的所有比特不全为1,则输出第二状态值1。

通过上述实施例,实现了以数字逻辑来判断从存储器中读取的配置信息是否处于安全状态的目的,具有如下优先:逻辑结构简单占用资源少,电路可靠性非常高,适用范围广。

在一种可选的实施例中,如图6所示,上述控制电路5控制电路还可以包括:

第二比较逻辑电路53,与第一比较逻辑电路51和位判断电路52连接,用于根据第一比较逻辑电路输出的比较结果与位判断电路输出的状态值确定输出的配置信息的状态值。

具体地,在上述实施例中,第二比较逻辑电路53,与第一比较逻辑电路51和位判断电路52连接,接收来自第一比较逻辑电路51的比较结果,进行综合处理最终向下一级输出最终的敏感配置有效状态值。其中,在预烧值读取错误的情况下,第二比较逻辑电路53将敏感配置信号变成安全状态,输出安全状态值,安全状态值可以为预先配置的一个状态值,该状态值可以用于表征从存储器的第二存储单元2读取到的配置信息(第二存储值)无效。在预烧值读取正确的情况下,第二比较逻辑电路53输出的敏感配置信号的状态值为位判断电路输出的状态值,如果位判断电路52输出的是输出第一状态值,则输出第一状态值;如果位判断电路52输出的是输出第二状态值,则输出第二状态值。

需要说明的是,在从存储器的第一存储单元读取到第一存储值后,如果从存储器的第一存储单元读取到的第一存储值不等于预先在该第一存储单元烧录的预烧值,则可以确定该存储器当前读取数据的供电电压异常,即,该供电电压不能够满足从该存储器的第二存储单元读取配置信息(第二存储值)的电压,将输出的该配置信息的状态值为预先配置的安全状态值,以表征从第二存储单元读取的配置信息无效,从而禁止用户访问系统的某些特殊功能。

通过上述实施例,达到了禁止执行存储器在供电电压异常的情况下读取出的配置信息的目的,从而使得芯片进入一个安全的模式。

在一种可选的实施例中,上述控制系统还包括:输出接口,与第二比较逻辑电路53连接,用于输出状态值。

在一种可选的实施例中,上述控制电路为读写控制电路,用于完成对nvm烧写、擦除、读等动作。

在一种可选的实施例中,上述第二存储单元包括:用于存储配置信息的冗余比特的至少一个存储单元。

在一种可选的实施例中,上述控制系统还包括:专用测试接口,用于将预烧值烧录至第一存储单元。

具体地,在上述实施例中,对于预烧值的设定,主要根据nvm基本存储单元的结构特性,总的原则是选定的值在会异常的低电压工作下读出来是出现变化的概率最大,检测电路更准确地确定nvm供电电压异常。根据nvm基本存储单元的结构特性,经过烧写之后的单元是通常是基于存储的电荷进行信息存储,然而一旦供电电压过低,从nvm读出来的值会出现概率性地翻转,这翻转概率会有所区别,例如有的eflash1->0的概率不到5%,然后0->1概率却超过95%,那么选用0作为该单元的预烧值

一种可选的实施方案中,在芯片量产阶段或者测试阶段,可以通过存储器(nvm)的专有测试口将预烧值烧入到预烧区域,这样能够对于该区域加以保护,避免在正常的功能模式下因cpu的错误操作而改写该区域的值。

在一种可选的实施例中,上述控制系统包括:电源接口,用于接通电源。

可选地,上述存储器可以为非易失存储器,包括:可编程只读存储器(prom)、可擦可编程只读存储器(eprom)、电可擦除只读存储器(eeprom)和电子闪存(eflash)等。

需要说明的是,本发明任意一项可选的或优选的控制系统,可以是上述任何一种非易失存储器的控制系统。

根据本发明实施例的另一方面,还提供了一种芯片,包括:上述任意一项可选的或优选的从存储器中读取配置信息的控制系统。

实施例3

根据本发明实施例,还提供了一种用于实现上述从存储器中读取配置信息的控制方法的装置实施例,图7是根据本发明实施例的一种从存储器中读取配置信息的控制装置示意图,如图7所示,该装置包括:获取模块701、判断模块703和第一执行模块705。

其中,获取模块701,用于获取从存储器的第一存储区域读取到的第一存储值,以及从存储器的第二存储区域读取到的第二存储值,其中,第一存储区域为存储器中用于存储预烧值的存储区域,第二存储区域为存储器中用于存储配置信息的存储区域;

判断模块703,用于判断第一存储值是否等于预烧值,其中,预烧值为预先在存储器的第一存储区域烧录的与存储器的初始状态值相反的一个值;

第一执行模块705,用于如果第一存储值等于预烧值,则根据第二存储值与初始状态值确定输出的配置信息的状态值,其中,状态值用于表征配置信息是否有效。

此处需要说明的是,上述获取模块701、判断模块703和第一执行模块705对应于实施例1中的步骤s102至s106,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以在诸如一组计算机可执行指令的计算机系统中执行。

由上可知,在本申请上述实施例中,根据存储器(例如,nvm)存储单元的逻辑特性,在存储器中划分出一个预烧区域(即第一存储区域),用于预先烧录一个与该存储器的初始状态相反的一个值(即预烧值),在从该存储器读取数据的过程中,首先判断从该存储器的第一存储区域读取的存储值是否与预先烧录的预烧值相等,在从第一存储区域读取的存储值等于预烧值的情况下,根据从存储器的第二存储区域读取的第二存储值(配置信息)和该存储器的初始状态值确定最终输出用于表征配置信息是否有效的状态值,达到了依据存储器预烧区域读取的存储值来判断存储器当前是否处于异常低电压,并根据判断结果来确定从该存储器中读取的系统配置信息是否有效的目的,从而实现了防止低供电电压攻击从存储器中读取系统配置信息的技术效果,进而解决了现有技术在从nvm(非易失存储器)中读取系统配置信息的过程中无法抵御低电压攻击的技术问题。

在一种可选的实施例中,上述装置还包括:第二执行模块,用于如果第一存储值不等于预烧值,则输出预先配置的安全状态值,其中,安全状态值用于表征配置信息无效。

此处需要说明的是,上述第二执行模块对应于实施例1中的步骤s108,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以在诸如一组计算机可执行指令的计算机系统中执行。

在一种可选的实施例中,上述配置信息包含至少一个冗余比特。

在一种可选的实施例中,上述装置还包括:第一执行模块包括:判断单元,用于判断第二存储值的所有比特是否都等于初始状态值;第一执行单元,用于如果第二存储值的所有比特都等于初始状态值,则输出第一状态值,其中,第一状态值用于表征配置信息无效;第二执行单元,用于如果第二存储值的所有比特中的任意一个比特不等于初始状态值,则输出第二状态值,其中,第二状态值用于表征配置信息有效。

此处需要说明的是,上述判断单元、第一执行单元和第二执行单元对应于实施例1中的步骤s202、s204a和s204b,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以在诸如一组计算机可执行指令的计算机系统中执行。

在一种可选的实施例中,上述装置还包括:处理模块,用于按照存储器的存储特性划分第一存储区域和第二存储区域,其中,第一存储区域为存储器中对低供电电压敏感的存储区域;烧录模块,用于将预烧值烧录在第一存储区域。

此处需要说明的是,上述处理模块、烧录模块对应于实施例1中的步骤s302至s304,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以在诸如一组计算机可执行指令的计算机系统中执行。

实施例4

根据本发明实施例,还提供了一种存储介质,该存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行实施例1中任意一项可选的或优选的从存储器中读取配置信息的控制方法。

实施例5

根据本发明实施例,还提供了一种处理器,该处理器用于运行程序,其中,程序运行时执行实施例1中任意一项可选的或优选的从存储器中读取配置信息的控制方法。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

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