专利名称:用于soc芯片系统的存储控制器及其实现方法
技术领域:
本发明涉及SOC芯片中数据存储控制技术,尤其是涉及一种安全SOC芯片系统用于提高非易失性存储器中数据安全的存储控制器,以及该存储控制器的实现方法。
背景技术:
信息的便捷交换方式层出不穷,伴随信息交换应运而生的安全SOC (System onChip)芯片在信息交换中扮演着越来越关键的角色,广泛使用在数字签名、电子商务、手机支付等领域。SOC芯片中往往存储有关乎整个系统安全的重要信息,如果不对这些存有特殊信息的存储空间进行有效保护,系统安全从根本上无法实现。由于非易失性存储器在掉电后数据不丢失的特性,在SOC芯片中担任重要角色。用户往往将安全算法需要的各种密钥、绝密数据、绝密程序等存储在非易失性存储器中。可以说非易失性存储器是整个SOC芯片安全架构的基石。人们采取了多种安全手段来保证关键信息的安全。其中,用得较多的方法是利用内存保护单元(MPU,Memory Protection Unit),对存储器中关键信息进行保护,防止非授权主设备读取或破坏敏感存储空间的信息。但是,用MPU对绝密数据保护有如下弊端,
第一,MPU是在总线传输路径上实现对存储器的保护,保护不直接;由于传输路径比较长,增加了数据在传输路径上被泄漏的风险;
第二,使用MPU对存储器进行保护,增加了 SOC系统设计的复杂性;第三,系统对MPU模块本身的安全配置过程本身容易受到攻击导致安全配置失效;第四,通用MPU单元的保护配置往往无法满足一个存储器中各个区域差别化的安全需求;在一个SOC芯片应用过程中,通常存在需要将存储空间进行大小不一、访问属性不一的分块的情形,而各个分块也分别占有固定的地址空间,根据应用需求不同,不同存储空间的信息的安全属性有所差别。因此,需要一种能实现若干个子存储空间访问属性独立、灵活定义的机制,以对不同的存储空间赋予个性化访问属性,实现对存储空间上信息的差别化保护。
发明内容
本发明提出一种用于SOC芯片系统的存储控制器及其实现方法,通过设置非易失性存储器中不同安全存储空间的安全属性,通过配置使得不同的主设备对同一存储空间具备不同的访问权限,以解决目前SOC芯片系统对非易失性存储器访问存在安全性较差的技术问题。本发明采用如下技术方案实现一种用于SOC芯片系统的存储控制器,其包括总线接口模块,用于提供总线上主设备对存储控制器的访问;
与非易失性存储器连接的存储器接口模块,用于将存储控制器内部总线时序转换成存储器读写时序;
连接在总线接口模块与存储器接口模块之间的安全保护子单元模块,其包括多个可单独配置安全属性的安全保护子单元,每个安全保护子单元用于对非易失性存储器中其中一个安全存储空间进行访问保护;
通过设置各个安全保护子单元不同的安全属性,使得总线上各主设备对各安全存储空间具备不同的访问权限。其中,每个安全保护子单元各自具有用于配置各个安全保护子单元安全属性的控制寄存器,该控制寄存器包括
地址信息,用于设定进行访问保护的安全存储空间对应的地址范围;属性控制信息,用于配置进行访问保护的安全存储空间对于总线上各个主设备读写访问属性、是否启动该安全保护子单元的访问保护及锁定该安全保护子单元的控制寄存器。在一个优选实施例中,所述用于SOC芯片系统的存储控制器还包括空白自检测模块,用于在存储控制器初始化过程中检测非易失性存储器内是否存在数据。在一个优选实施例中,所述用于SOC芯片系统的存储控制器还包括完整性检测模块,用于在存储控制器初始化过程中对非易失性存储器内的数据采用CRC算法进行校验,检测数据是否完整。在一个优选实施例中,所述用于SOC芯片系统的存储控制器还包括自动配置模块,用于在存储控制器初始化过程中,从非易失性存储器中将初始化安全配置信息搬运到存储控制器,并对初始化安全配置信息校验,将通过校验的初始化安全配置信息配置各个安全保护子单元。在一个优选实施例中,所述用于SOC芯片系统的存储控制器还包括控制状态寄存器,用于保存存储控制器的控制和状态信息,提供给总线上的主设备配置和查询,其包括消息触发控制寄存器、安全保护子单元指示寄存器和状态寄存器。另外,本发明还公开一种用于SOC芯片系统的存储控制器的实现方法,所述存储控制器至少包括总线接口模块、与非易失性存储器连接的存储器接口模块、连接在总线接口模块与存储器接口模块之间的安全保护子单元模块,其包括多个可单独配置安全属性的安全保护子单元;
所述方法包括步骤初始化存储控制器;通过设置各个安全保护子单元不同的安全属性,使得总线上不同的主设备对同一存储空间具备不同的访问权限。其中,所述初始化存储控制器的步骤包括
从非易失性存储器中将初始化安全配置信息搬运到存储控制器,并对初始化安全配置信息校验,将通过校验的初始化安全配置信息配置各个安全保护子单元;
检测非易失性存储器内是否存在数据,并采用CRC算法进行校验,检测数据是否完整。与现有技术相比,本发明具有如下有益效果
1、本发明提出的存储控制器与SOC芯片内部的非易失性存储器一起构成一个受保护的存储模块,简化了安全SOC的存储保护结构。由存储控制器自动对非易失性存储器进行空白检测、数据完整性检测及初始化安全配置信息自校验以及自动安全配置,直接构建存储器内安全环境,而不需SOC芯片其它部分参与,减少了对系统其它安全部件的依赖,提高了自动配置过程中的抗攻击能力,进而提高了 SOC芯片存储保护的可靠性。
2、本发明提出的存储控制器位于总线访问的末端,和受保护的非易失性存储器构成一个整体,减少了存储数据在受保护前的传输路径,进而降低了因传输路径太长导致数据泄漏的风险。3、本发明提出的存储控制器独立地支持多种访问条件限制,对同一块存储空间,不同的主设备的访问属性可独立地配置。4、本发明提供了状态查询和消息触发功能,方便了系统对不同的保护空间采取适当的安全管理策略。5、本发明通过设置安全存储空间对应的安全保护子单元配置安全属性,使得不同的主设备对同一存储空间具备不同的访问权限,防止需要进行特别保护的信息被非授权主设备获取;存储器保护单元可根据预先定义不同的存储空间的安全属性,为每块安全存储空间分配一种保护机制。因此,本发明特别适应于需要对存储器空间进行不同大小的分块,每块的访问属性各异的SOC芯片中。
图1为本发明的用于SOC芯片的存储控制器初始化的流程图。图2为本发明SOC芯片中存储控制器的结构示意图。图3为一个安全保护子单元的电路示意图。图4是图2中安全保护子单元模块与存储器之间控制结构示意图。图5是SOC芯片的结构示意图。
具体实施例方式在SOC芯片内部的非易失性存储器中的一些信息需要进行特别保护,利用存储控制器直接实现保护功能是最有效的保护方式之一。本发明将SOC芯片内部的非易失性存储器(以下简称为存储器)的存储空间分成若干个安全存储空间,对每个安全存储空间的保护属性可以进行单独设置。对各个安全存储空间的访问条件独立产生,并将它们分成两组一般地,将所有主设备读属性分成一组,所有的主设备写属性组成另外一组,而组间访问条件的逻辑关系也为或关系,根据最终结果来判断保护结果。本发明提出的存储控制器在进入正常工作之前,需要进行初始化。在初始化过程完成之前,SOC芯片系统无法通过存储控制器访问存储器内数据,从而保证数据是安全的。如图1所示,存储控制器初始化的步骤如下
步骤S11、储存控制器初始化开始。步骤S12、存储控制器读取初始化安全配置信息。步骤S13、对初始化安全配置信息进行校验,并判断校验是否正确。若正确则进入下一步骤,否则转入步骤S19。步骤S14、存储控制器将初始化安全配置信息配置到各个安全保护子单元。步骤S15、实现对存储器内容的空白自检测。步骤S16、实现对存储器数据的完整性检测。步骤S17、判断存储器数据是否完整,若是,转入步骤S18,否则转入步骤S19。
步骤S18、存储控制器初始化结束。步骤S19、存储控制器初始化失败,复位整个SOC芯片系统或产生中断,无法完成存储控制器初始化。如图2所示,为本发明的内部结构。存储控制器20为非易失性存储控制器。对存储控制器20各个部件作用详细描述如下
总线接口模块21,用来连接系统总线,实现总线上主设备对存储控制器20访问。总线上主设备可以通过总线接口模块21访问控制状态寄存器22,实现对存储控制器20的配置和查询,也可以通过总线接口模块21访问各个安全保护子单元23,实现对各个安全保护子单元23的控制寄存器进行访问,并在各个安全保护子单元23的保护下,实现对与存储器接口模块27相连接的存储器30 (为非易失性存储器)进行访问操作。控制状态寄存器22主要包括消息触发控制寄存器、安全保护子单元指示寄存器和状态寄存器。在出现非法访问,安全保护子单元有保护动作的情况下,触发控制状态寄存器22控制存储控制器是中断还是复位整个系统;安全保护子单元指示寄存器用于指示当前启用的安全保护子单元的保护情况;状态寄存器用于指示初始化过程中的信息,比如存储器内容的空白自检测结果、存储器数据的完整性检测结果等。安全保护子单元模块23包括多个安全保护子单元,每个安全保护子单元各自具有用于配置各个安全保护子单元安全属性的控制寄存器。通过安全保护子单元完成对存储器30的保护,并将各个安全保护子单元的保护动作信号指示给控制状态寄存器22中对应的安全保护子单元指示寄存器,在安全保护子单元的保护下,完成对存储器30的访问。完整性检测模块M用于对存储器进行完整性检测,并将检测结果指示给控制状态寄存器22。完整性检测采用CRC算法,存储在存储器30内的数据CRC计算结果必须为0 ;若CRC检测结果不为0,说明安全数据可能遭到篡改或者破坏,存储控制器20初始化失败。若存储控制器20初始化失败,则直接复位锁定或者报中断给SOC芯片系统,同时,系统总线上主设备无法通过存储控制器20读取到存储器30内部数据;
空白自检测模块25用于对存储器30进行空白自检测,是存储控制器20初始化过程中完成的,并将空白检测的结果指示给控制状态寄存器22。自动配置模块沈包含一个内部DMA(Direct Memory Access,直接内存存取)控制器。上电启动后,DMA控制器会将存储器30中的初始化安全配置信息搬运到存储控制器20内首先,完成初始化安全配置信息校验,每个安全配置信息都包括原始配置信息和一些校验位,存储控制器20计算初始配置信息的校验值,如果校验值不匹配校验位,则认为初始安全配置异常;其次,将初始化安全配置信息的配置到安全保护子单元模块23中的各个安全保护子单元中,实现用户预编程的保护机制。存储器接口模块27用于将内部总线时序转换成存储器30的读写时序,实现对存储器30的访问操作,并对存储控制器20操作非易失性存储器30进行仲裁在存储控制器20初始化过程中,总线接口模块21、自动配置模块沈、空白自检测模块25和完整性检测模块M都要访问存储器30,优先级从高到低分别是自动配置模块沈、空白自检测模块25、完整性检测模块M和总线接口模块21 ;在存储控制器20初始化结束前,使总线上主设备无法通过总线接口模块21访问存储器30。如图3所示,是安全保护子单元模块23中一个安全保护子单元的电路结构图。其中,总线上输入的信号HSEL为高表明总线上的主设备选中存储控制器20,对存储控制器20进行读写操作。在HSEL为高的前提下,HWRITE为高表明是写操作,HWRITE为低表明是读操作;HMASER为总线上主设备编号;HADDR为总线上主设备发出的读写地址。安全保护子单元模块23包括访问属性控制电路231、地址比较电路232、将访问属性控制电路231的输出结果和地址比较电路232的输出结果进行与操作运算的与门233,其输出 protect_valid 信号。在地址比较电路232中,若满足
HSEL&((HADDR&PROT_ADDR_MASK) “ (PR0T_ADDR)) ) =1,则表明总线上主设备发出操作的地址范围在此安全保护子单元的保护地址范围内。在访问属性控制电路231中,MASTER0_W_CTRL为高表明对编号为0主设备写禁止,MASTER0_R_CTRL为高表明对编号为0主设备读禁止,其它主设备类推。若满足
(((MASTERO_ff_CTRL&HWRITE)|( MASTER0_R_CTRL& HWRITE))&(HMASTER==0)((MASTERl_ff_CTRL&HWRITE)|( MASTER1_R_CTRL& HWRITE))&(HMASTER==1)
((MASTER15_ff_CTRL&HWRITE)|( MASTER15_R_CTRL& HWRITE))&(HMASTER==M))=1,表明访问条件未授权。若访问属性控制电路231的输出结果和地址比较电路232的输出结果都为1,protect_Valid信号为高电平,表明在此安全保护子单元的保护地址范围内,有未授权的访问动作,则安全保护子单元保护动作有效,也就是说protect_Valid信号会拉高。由于安全保护子单元的保护作用,总线上的主设备无法访问到受保护的地址区域,从而实现存储控制器20对存储器存储30的保护功能。如图4所示,将存储器30设定为若干个安全存储空间,各安全存储空间访问属性都是独立配置的,由安全保护子单元模块23中对应的安全保护子单元进行保护。多个安全保护子单元的结果由或门234进行或操作后输出。因此,只要其中一个安全保护子单元有保护动作,则安全保护子单元模块23总的保护动作有效。在实际操作中,存储器30中各个安全存储空间的地址范围是可以重叠的,使一个安全存储空间由多个安全保护子单元各自保护结果相或的关系结果进行安全保护。如图5所示,这是一个典型的SOC芯片系统,其包括处理器101、DMA 102等主设备,以及SDRAM控制器104、IRAM (集成随机存储器)105、存储控制器20以及OTP (One TimeProgramable)存储器106等从设备。主设备和从设备之间通过系统总线103进行数据传输。本发明的用于SOC芯片的存储控制器20也作为一个从设备,挂接在系统总线103上,其主要任务为通过前述的保护机制对OTP存储器106进行保护,因此,本发明提供了一种能强化关键信息安全的方法,对通过系统总线进行的访问进行了限制,起到了保护存储在非易失性存储器机密信息的作用,适应于不同SOC芯片系统的安全需求。综上,本发明用于SOC芯片的存储控制器以其独特的保护机制,灵活多变的存储空间保护实现方式,能大大提高安全SOC芯片系统内部非易失性存储器的安全性能。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种用于SOC芯片系统的存储控制器,其特征在于,所述存储控制器包括总线接口模块,用于提供总线上主设备对存储控制器的访问;与非易失性存储器连接的存储器接口模块,用于将存储控制器内部总线时序转换成存储器读写时序;连接在总线接口模块与存储器接口模块之间的安全保护子单元模块,其包括多个可单独配置安全属性的安全保护子单元,每个安全保护子单元用于对非易失性存储器中其中一个安全存储空间进行访问保护;通过设置各个安全保护子单元不同的安全属性,使得总线上各主设备对各安全存储空间具备不同的访问权限。
2.根据权利要求1所述用于SOC芯片系统的存储控制器,其特征在于,每个安全保护子单元各自具有用于配置各个安全保护子单元安全属性的控制寄存器。
3.根据权利要求2所述用于SOC芯片系统的存储控制器,其特征在于,安全保护子单元的控制寄存器中包括地址信息,用于设定进行访问保护的安全存储空间对应的地址范围;属性控制信息,用于配置进行访问保护的安全存储空间对于总线上各个主设备读写访问属性、是否启动该安全保护子单元的访问保护及锁定该安全保护子单元的控制寄存器。
4.根据权利要求1所述用于SOC芯片系统的存储控制器,其特征在于,所述存储控制器还包括空白自检测模块,用于在存储控制器初始化过程中检测非易失性存储器内是否存在数据。
5.根据权利要求4所述用于SOC芯片系统的存储控制器,其特征在于,所述存储控制器还包括完整性检测模块,用于在存储控制器初始化过程中对非易失性存储器内的数据采用CRC算法进行校验,检测数据是否完整。
6.根据权利要求1所述用于SOC芯片系统的存储控制器,其特征在于,所述存储控制器还包括自动配置模块,用于在存储控制器初始化过程中,从非易失性存储器中将初始化安全配置信息搬运到存储控制器,并对初始化安全配置信息校验,将通过校验的初始化安全配置信息配置各个安全保护子单元。
7.根据权利要求1-6任何一项所述用于SOC芯片系统的存储控制器,其特征在于,所述存储控制器还包括控制状态寄存器,用于保存存储控制器的控制和状态信息,提供给总线上的主设备配置和查询,其包括消息触发控制寄存器、安全保护子单元指示寄存器和状态寄存器。
8.一种用于SOC芯片系统的存储控制器的实现方法,其特征在于,所述存储控制器至少包括总线接口模块、与非易失性存储器连接的存储器接口模块、连接在总线接口模块与存储器接口模块之间的安全保护子单元模块,其包括多个可单独配置安全属性的安全保护子单元;所述方法包括步骤初始化存储控制器;通过设置各个安全保护子单元不同的安全属性,使得总线上各主设备对各安全存储空间具备不同的访问权限。
9.根据权利要求8所述用于SOC芯片系统的存储控制器的实现方法,其特征在于,所述初始化存储控制器的步骤包括从非易失性存储器中将初始化安全配置信息搬运到存储控制器,并对初始化安全配置信息校验,将通过校验的初始化安全配置信息配置各个安全保护子单元;检测非易失性存储器内是否存在数据,并采用CRC算法进行校验,检测数据是否完整。
10.根据权利要求8或9所述用于SOC芯片系统的存储控制器的实现方法,其特征在于,每个安全保护子单元各自具有用于配置各个安全保护子单元安全属性的控制寄存器,该控制寄存器中包括地址信息,用于设定进行访问保护的安全存储空间对应的地址范围;属性控制信息,用于配置进行访问保护的安全存储空间对于总线上各个主设备读写访问属性、是否启动该安全保护子单元的访问保护及锁定该安全保护子单元的控制寄存器。
全文摘要
本发明公开一种用于SOC芯片系统的存储控制器及其实现方法。其中,所述存储控制器包括总线接口模块;与非易失性存储器连接的存储器接口模块;连接在总线接口模块与存储器接口模块之间的安全保护子单元模块,其包括多个可单独配置安全属性的安全保护子单元,每个安全保护子单元用于对非易失性存储器中其中一个安全存储空间进行访问保护;通过设置各个安全保护子单元不同的安全属性,使得总线上各主设备对各安全存储空间具备不同的访问权限。本发明能有效地对非易失性存储器的安全信息进行保护,特别适应于需要对存储器空间进行不同大小的分块,每块的访问属性各异的SOC芯片中。
文档编号G06F12/14GK102567245SQ201110443610
公开日2012年7月11日 申请日期2011年12月27日 优先权日2011年12月27日
发明者王良清, 陶玉茂 申请人:深圳国微技术有限公司