CN1954302A - 数字信号控制器安全存储器分割 - Google Patents

数字信号控制器安全存储器分割 Download PDF

Info

Publication number
CN1954302A
CN1954302A CNA2005800159426A CN200580015942A CN1954302A CN 1954302 A CN1954302 A CN 1954302A CN A2005800159426 A CNA2005800159426 A CN A2005800159426A CN 200580015942 A CN200580015942 A CN 200580015942A CN 1954302 A CN1954302 A CN 1954302A
Authority
CN
China
Prior art keywords
section
code
segment
security
program
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CNA2005800159426A
Other languages
English (en)
Inventor
布赖恩·博尔斯
苏密特·米特拉
史蒂文·马什
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microchip Technology Inc
Original Assignee
Microchip Technology Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microchip Technology Inc filed Critical Microchip Technology Inc
Publication of CN1954302A publication Critical patent/CN1954302A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1491Protection against unauthorised use of memory or access to memory by checking the subject access rights in a hierarchical protection system, e.g. privilege levels, memory rings

Abstract

一种控制器提供多种安全模式以用于保护存储在存储器中的程序代码和数据,并确保所述保护在控制器的所有正常操作条件期间都有效。所述控制器包括配置设定,其将程序存储器分段为一引导段、一安全段和一普通段,每一段具有一特定的安全级,包括未增强的保护措施。所述引导代码段(BS)是最安全的,且可用于存储一安全引导装载程序。所述安全代码段(SS)适用于存储来自第三方的专有算法,例如用于在语音识别应用中将环境噪音与语音分离的算法。所述普通代码段(GS)具有最低的安全性。所述控制器经配置以防止会导致较高安全段中所存储的程序代码被存储在较低安全性的段中的程序代码存取的程序流程变动。另外,所述处理器可经配置以使例如快闪存储器的程序存储器与随机存取存储器(RAM)的相关联安全数据部分对应于BS、SS和GS。防止了从一较低安全级自与一较高安全级相关联的程序存储器或RAM中读取数据或将数据写入所述程序存储器或RAM中的尝试15。

Description

数字信号控制器安全存储器分割
技术领域
本发明涉及用于防止对例如微控制器、微处理器、数字信号控制器或数字信号处理器的控制器芯片中的存储器的一个或一个以上段进行代码或数据复制或更改的系统和方法,且尤其涉及用于禁止在存储器的不安全区域中运行的程序存取存储器段的系统和方法。
背景技术
例如微控制器、微处理器、数字信号控制器和数字信号处理器的控制器按常规被构建成可编程的,以执行系统内的特定应用程序和功能。一般来说,这些装置是可由客户不受限制地编程的,,或在制造过程期间使用由客户提供或指定的软件进行编程。因而,常规地,控制器中的代码在设计上是可由客户存取的,几乎没有任何可防止客户进行存取的安全措施。
随着控制器装置的密度和存储容量的增加,需要提供一种将第三方软件和数据以及在制造时或稍后编程的任何客户软件存储在将分发给客户的控制器的程序存储器中的灵活性。对于这种应用,相对于第三方软件来说,客户将不再是可信任的一方。因此,需要保护第三方软件和数据以防被客户发现。在例如加密算法和密钥等的软件和数据的情况下尤其如此。当第三方软件是其他类型时,例如是向芯片附加价值但同时表示受版权保护且在某些情况下为商业机密的软件的用于执行数字信号处理功能的算法,也是如此。对于例如引导程序、引导装载程序和操作系统的启动软件也是如此,所述启动软件除了是专有的之外还需要存取限制,以便确保执行的是所存储的没有更改的软件,从而确保控制器在其中操作的系统的安全性。
因此,需要一种控制器设计,其允许增强存储器的安全性。进一步需要一种控制器设计,其允许存储器的某一区域比其他区域更安全。仍进一步需要一种控制器设计,其监视程序流程并防止控制器在某些情形下进入存储器的安全区域,且防止控制器对存储器的安全区域进行读取和写入。
发明内容
根据本发明,提供一种控制器,其提供多种安全模式以用于保护存储在存储器中的程序代码和数据,并确保所述保护在控制器的所有正常操作条件期间都有效。所述控制器包括配置设定,其将程序存储器分段为一引导段、一安全段和一普通段,每一段具有一特定的安全级,包括没有增强的保护措施。所述引导代码段(BS)是最安全的,且可用于存储一安全引导装载程序。所述安全代码段(SS)适用于存储来自第三方的专有算法,例如用于在语音识别应用中将环境噪音与语音分离的算法。所述普通代码段(GS)具有最低的安全性。
所述控制器经配置以防止会导致BS中所存储的程序代码被存储在SS或GS中的程序代码存取的程序流程变动。类似地,所述控制器经配置以防止存储在SS中的程序代码被存储在GS中的程序代码存取。当出现违规时,控制器执行陷阱例程,且可重启处理器或以其他方式防止发生安全破坏。除了防止从较低安全代码到较高安全代码的程序流程变动之外,所述处理器可经配置以使例如快闪存储器的程序存储器与随机存取存储器(RAM)的相关联安全数据部分对应于BS、SS和GS。防止了从一较低安全级自与一较高安全级相关联的程序存储器或RAM中读取数据或将数据写入所述程序存储器或RAM中的企图。以这种方式,可防止与不同存储器段相关联的安全程序代码和数据被控制器的用户发现,同时用户可使用安全程序代码的功能。
附图说明
参考“具体实施方式”和附图将会更全面地理解本发明的上述特征和优点,附图中:
图1描绘其中可应用本发明的实施例的处理器芯片的实施例的功能方框图。
图2描绘其中可应用本发明的实施例的用于处理器中的数据总线方案的功能方框图,其具有微处理器和数字信号处理引擎。
图3A-3C根据本发明的实施例描绘程序存储器的各段。
图4根据本发明的实施例描绘安全配置寄存器。
图5根据本发明的实施例描绘用于防止会危害安全性的程序流程变动的功能方框图。
图6根据本发明的实施例描绘用于防止对存储器的安全区域进行存取的功能方框图。
具体实施方式
根据本发明,提供一种控制器,其提供多种安全模式以用于保护存储在存储器中的程序代码和数据,并确保所述保护在控制器的所有正常操作条件期间都有效。所述控制器包括配置设定,其将程序存储器分段为一引导段、一安全段和一普通段,每一段具有一特定的安全级,包括没有增强的保护措施。所述引导代码段(BS)是最安全的,且可用于存储一安全引导装载程序。所述安全代码段(SS)适用于存储来自第三方的专有算法,例如用于在语音识别应用中将环境噪音与语音分离的算法。所述普通代码段(GS)具有最低的安全性。
所述控制器经配置以防止会导致BS中所存储的程序代码被存储在SS或GS中的程序代码存取的程序流程变动。类似地,所述控制器经配置以防止存储在SS中的程序代码被存储在GS中的程序代码存取。当出现违规时,控制器执行陷阱例程,且可重启处理器或以其他方式防止发生安全破坏。除了防止从较低安全代码到较高安全代码的程序流程变动之外,所述处理器可经配置以使例如快闪存储器的程序存储器与随机存取存储器(RAM)的相关联安全数据部分对应于BS、SS和GS。防止了从一较低安全级自与一较高安全级相关联的程序存储器或RAM中读取数据或将数据写入所述程序存储器或RAM中的企图。以这种方式,可防止与不同存储器段相关联的安全程序代码和数据被控制器的用户发现,同时用户可使用安全程序代码的功能。
为了描述并入根据本发明的安全特征的控制器的实施例,首先参考图1和图2展现相关处理器元件的概述。接着下文参考图3-6更特定地描述用于实施根据本发明的增强安全性的系统和方法。
处理器元件概述
图1描绘其中可应用本发明的处理器芯片的实施例的功能方框图。参看图1,处理器100耦合到外部装置/系统140。处理器100可以是任何类型的处理器,包括(例如)数字信号处理器(DSP)、微处理器、微控制器或其组合。外部装置140可以是任何类型的系统或装置,包括例如键盘、显示器、扬声器、麦克风的输入/输出装置,存储器或可包括或不包括处理器的其他系统。另外,处理器100和外部装置140可一起包含一独立系统。
处理器100包括程序存储器105、指令提取/解码单元110、指令执行单元115、数据存储器和寄存器120、外围设备125、数据I/O 130和一程序计数器和回路控制单元135。总线150(可包括一个或一个以上共用总线)在所示的单元之间传送数据。
程序存储器105存储用于由处理器100执行的包含于程序指令中的软件。程序存储器105可包含任何类型的非易失性存储器,例如只读存储器(ROM)、可编程只读存储器(PPROM)、电可编程或电可编程可擦除只读存储器(EPROM或EEPROM)或快闪存储器。另外,可使用所示的外部非易失性存储器145补充程序存储器105来增加处理器100可用的软件的复杂性。或者,程序存储器可以是易失性存储器,其从(例如)外部非易失性存储器145接收程序指令。当程序存储器105是非易失性存储器时,可在制造处理器100时或在系统内构建处理器100之前或期间对程序存储器进行编程。在后一情形中,可通过称为在线串行编程的过程对处理器100进行编程。
指令提取/解码单元110耦合到程序存储器105,指令执行单元115和数据存储器120。耦合到程序存储器105和总线150的是程序计数器和回路控制单元135。指令提取/解码单元110从由程序计数器135中含有的地址值所指定的程序存储器105中提取指令。指令提取/解码单元110接着解码所提取的指令并将所解码的指令发送到适当的执行单元115。指令提取/解码单元110还可将包括数据地址的操作数信息发送到数据存储器120并发送到存取寄存器的功能元件。
程序计数器和回路控制单元135包括程序计数器寄存器(未图示),其存储将提取的下一指令的地址。在正常指令处理期间,程序计数器寄存器可递增以促使提取顺序的指令。或者,可通过将新值经由总线150载入程序计数器寄存器而改变其值。可基于解码和执行例如分支指令的流程控制指令而得到新值。另外,程序计数器和回路控制单元135的回路控制部分可用于提供重复指令处理和重复回路控制,如下文所述。
指令执行单元115从指令提取/解码单元110接收经解码的指令,且其后执行经解码的指令。作为此过程的一部分,执行单元可经由总线150接收一个或两个操作数,并将结果存储在寄存器中或数据存储器120内的存储器位置。执行单元可包括例如在微控制器中常可发现的算术逻辑单元(ALU)。执行单元还可包括数字信号处理引擎、浮点处理器、整数处理器或任何其他适宜的执行单元。下文参考图2更详细地展现执行单元和其与总线150(可包括一个或一个以上总线)进行的交互的优选实施例。
数据存储器和寄存器120是易失性存储器,且用于存储由执行单元使用和产生的数据。数据存储器120和程序存储器105优选地是分别用于存储数据和程序指令的单独存储器。这个格式一般已知为Harvard架构。然而应注意,根据本发明,所述架构可以是Von-Neuman架构或允许将某些程序空间用于数据空间的经修改的Harvard架构。展示了(例如)将程序存储器105连接到总线150的虚线。此路径可包括用于将从程序空间的数据读取(例如,在从程序空间的表读取期间)与数据存储器120对准的逻辑。
再次参看图1,处理器上的复数个外围设备125可耦合到总线125。所述外围设备可包括(例如)模数转换器、定时器、总线接口和协议,例如控制器区域网络(CAN)协议或通用串行总线(USB)协议和其他外围设备。外围设备通过总线150与其他单元交换数据。
数据I/O单元130可包括收发器和用于与外部装置/系统140建立界面的其他逻辑。数据I/O单元130可进一步包括用以允许通过数据I/O单元130对程序存储器进行在线串行编程的功能。
图2描绘用于例如图1中所示的处理器100中的数据总线方案的功能方框图,其具有一集成微控制器算术逻辑单元(ALU)270和数字信号处理器(DSP)引擎230。此配置可用于将DSP功能集成到现有的微控制器核心中。参看图2,图1的数据存储器120被构建为两个单独的存储器:X存储器210和Y存储器220,每个存储器可分别由X地址产生器250和Y地址产生器260编址。X地址产生器还可允许编址Y存储器空间,因而当由X地址产生器编址时使数据空间看起来好像一单个连续的存储器空间。总线150可构建为两个总线,X和Y存储器中每一者各有一个,以允许同时从X和Y存储器提取数据。
W寄存器240是通用地址和/或数据寄存器。DSP引擎230耦合到X和Y存储器总线以及W寄存器240。DSP引擎230可在单个处理器周期内同时从X和Y存储器中的每一者提取数据,执行对同时提取的数据进行操作的指令,且将结果写入到累加器(未图示),且将先前的结果写入到X或Y存储器或W寄存器240。
在一个实施例中,ALU 270可仅耦合到X存储器总线且可仅从X总线提取数据。然而,可通过X地址产生器将X和Y存储器210和220编址为单个存储器空间,以使得数据存储器隔离对于ALU 270是透明的。可通过存储在W寄存器240中的值来编址X和Y存储器内的存储器位置。
可实施任何处理器计时方案以用于提取和执行指令。然而,下文用一具体实例来说明本发明的实施例。每个指令周期包含四个Q时钟周期Q1-Q4。四阶段Q周期提供时序信号以协调每个指令周期的解码、读取、处理数据和写入数据部分。
根据处理器100的一个实施例,处理器100并行执行两个操作:其提取下一指令并执行当前指令。因此,同时发生两个处理。接下来的事件序列可包含(例如)提取指令周期:
Q1:提取指令
Q2:提取指令
Q3:提取指令
Q4:将指令锁存在预取寄存器中,使PC递增
接下来的事件序列可包含(例如)单个操作数指令的执行指令周期:
Q1:将指令锁存到IR中,解码并确定操作数数据的地址
Q2:提取操作数
Q3:执行由指令指定的功能并计算数据的目的地地址
Q4:将结果写入到目的地
接下来的事件序列可包含(例如)使用数据预取机制的双操作数指令的执行指令周期。这些指令同时预取来自X和Y数据存储器的双操作数,并将其存储在指令中指定的寄存器中。其同时允许对在先前周期期间提取的操作数的指令执行。
Q1:将指令锁存到IR中,解码并确定操作数数据的地址
Q2.将操作数预取到指定的寄存器中,执行指令中的操作
Q3:执行指令中的操作,计算数据的目的地地址
Q4:完成执行,将结果写入到目的地
安全分割
图3A-3C根据本发明的实施例描绘用于控制器的非易失性存储器的组织。图3A描绘程序存储器的实施例。参看图3A,程序存储器包括重设和中断服务程序(ISR)向量区域300、引导段存取区域305、引导段310、安全段存取区域315、安全段320和普通段325。
向量区域300可经配置以将程序地址向量存储到当发生安全违规时会被调用的中断服务程序。其可位于程序存储器中的任何地方,包括在程序存储器的第一128指令字中。可使用配置位来配置向量区域300以当控制器处于高安全模式下时允许或不允许写入,或在较低安全模式下时允许写入。
引导段310和引导段存取区域305包含程序存储器中最安全的段。每一者存储程序指令,所述程序指令可包含(例如)引导装载程序或操作系统,其取决于段的大小。引导段存取区域305可包含引导段310的子组,且在高安全模式下可包含一地址范围,允许从较不安全段至所述地址范围的程序流程控制变动以执行例如从安全段、普通段或外部存储器对引导段的子程序调用。以这种方式,可根据包含在存储在引导段存取区域中的指令中的安全过程来进一步控制和处理对引导段的存取。还可依据控制器的安全配置来限制读取和写入引导段305和310的内容。可在芯片制造期间或在制造后将引导段305和310的程序指令编程到程序存储器中。控制器的配置位还可经编程以防止控制器用户发现引导段中的程序指令,改变引导段中的程序指令或在不调用允许的引导段子程序的情况下执行引导段中的程序指令,或引导控制器。
安全段320和安全段存取区域包含在程序存储器中的另一安全段。每一者存储程序指令,所述程序指令可包含(例如)第三方软件,例如在控制器经编程以执行的普通程序代码中可由控制器用户调用的有用的函数或算法库。安全段320和315的大小和其存在状态取决于配置位的设定。安全段存取区域315可包含安全段320的子组,且在高安全模式下可包含一地址范围,允许从存储器的较不安全段至所述地址范围的程序流程控制变动以执行例如从普通段或外部存储器对所述安全段的子程序调用。以这种方式,可根据包含在存储在引导段存取区域中的指令中的安全过程来进一步控制和处理对安全段的存取。引导段可经配置以在没有限制的情况下存取安全段。可依据控制器的安全配置来限制读取和写入安全段315和320。可在芯片制造期间或在制造后将安全段315和320的程序指令编程到程序存储器中。控制器的配置位还可经编程以防止控制器用户发现安全段中的程序指令,改变引导段中的程序指令或在不调用允许的安全段子程序的情况下执行安全段中的程序指令,或引导控制器。以这种方式,即使在控制器用户使用控制器中所包含的第三方代码的功能时,第三方提供的和控制器中包含的程序代码也可受到保护免被控制器用户发现。
普通段325可具有比安全段和引导段更低的安全级。普通段可存储程序指令,所述程序指令包含(例如)使控制器在更大系统中操作的系统级程序和例行程序的用户软件。普通段325的大小和其存在状态取决于配置位的设定。普通段325通常存储大多数的程序指令。引导段和安全段可经配置以在不受限制的情况下存取普通段。可依据控制器的安全配置来限制读取和写入普通段325。可在芯片制造期间或在制造后将普通段325的程序指令编程到程序存储器中。控制器的配置位还可经编程以防止控制器用户发现普通段中的程序指令,改变普通段中的程序指令或执行普通段中的程序指令。以这种方式,普通段中提供的程序代码可受到保护免被控制器用户发现。
图3B描绘作为外部段(ES)330的外部存储器。外部段330可存储经设计以在根据本发明的实施例的安全控制器中操作的程序指令。ES具有最低的安全级且可经配置以使得其不能直接跳到或调用BS或SS中的例行程序。相反,ES仅可跳到或调用GS中的例行程序。
图3C描绘数据存储器的非易失性区。其可包括普通段数据区350、安全段数据区355、引导段数据区360、测试代码段365、unit_ID区370和配置寄存器区375。普通段数据区350可经配置以产生普通代码段325所需的数据区。当存在时,区350中的数据可受保护以免被存储在存储器的未受保护或较不受保护区域(例如,外部段330)中的代码读取或写入。
安全段数据区355可经配置以产生一个或一个以上安全代码段320所需的数据区。当存在时,区355中的数据可受保护以免被存储在存储器的未受保护或较不受保护区域(例如,普通段325或外部段330)中的代码读取或写入。数据可以是有用的常数、系数、密钥或其他有用数据。
引导段数据区360可经配置以产生由引导代码段310所需的数据区。当存在时,区360中的数据可受保护以免被存储在存储器的未受保护或较不受保护区域(例如,安全段320、普通段325或外部段330)中的代码读取或写入。所述数据可以是有用的常数、系数、密钥或其他有用数据。
测试代码段365可存储用于测试控制器的操作的代码。unit_ID区370可用于存储与特定的控制器相关的信息,例如部件号、批号、厂家号、制造参数、序列号或其他唯一标识符以及任何其他有用信息。
配置寄存器375可用于存储控制器的安全设定,其确定与存储器的每一段相关联的存在、大小和安全级。图4描绘可根据本发明的实施例使用的一组说明性配置寄存器。配置寄存器可在制造零件期间被硬线连接,或在制造期间或制造后被编程。
参看图4,配置寄存器可包括以下内容。引导段大小/安全寄存器400、安全段大小/安全寄存器405、普通段大小/安全寄存器410。这些寄存器中的每一者可以是任何适宜的大小并将关于是否应产生任何这些安全段的信息传达给控制器,且如果将产生任何段,那么将传达关于对应的大小和其安全级的信息。根据本发明的一个实施例,寄存器400-405包括定义七个设定的三位。对于引导段:
1-没有引导段
2-具有标准安全性的383指令字引导段
3-具有高安全性的383指令字引导段
4-具有标准安全性的1839指令字引导段
5-具有高安全性的1839指令字引导段
6-具有标准安全性的3867指令字引导段
7-具有高安全性的3867指令字引导段
对于安全段:
1-没有引导段
2-具有标准安全性的3584指令字安全段
3-具有高安全性的3584指令字安全段
4-具有标准安全性的6144指令字安全段
5-具有高安全性的6144指令字安全段
6-具有标准安全性的12228指令字安全段
7-具有高安全性的12228指令字安全段
引导段可在重设和ISR段之后就开始,或者可位于非易失性存储器的另一部分中。安全段可在引导段之后就开始,或者可位于非易失性存储器的另一部分中。另外,可将任何数目的位用于寄存器400至405来指定一个或一个以上段的大小、其在存储器中的位置和/或相应的安全级。
可以与安全段和引导段完全相同的方式来配置普通段。或者,普通段可经配置以在大小上包含未由引导段和安全段占用的非易失性程序存储器的剩余部分。在后一情况下,可使用两位来配置普通段安全位以定义三个模式:
1-不受保护
2-保护级标准
3-保护级高。
BWRP寄存器415是写入启用/禁用寄存器。通过将此寄存器设定为1或0,控制器可经配置以禁用对引导段的所有数据写入,使得引导段中的代码不会被覆写。SWRP寄存器420和GWRP寄存器425也是写入启用/禁用寄存器。通过将这些寄存器设定为1或0,控制器可经配置以分别禁用对安全段和普通段的所有数据写入,使得引导段中的代码不会被覆写。
EBS和ESS寄存器430和435分别存储可对应于控制器的数据非易失性存储器中的引导段数据和安全段数据的存在、大小和位置的值。这些区域一般不会产生,除非已在程序存储器中产生对应的引导段和安全段,且仅可由那些对应的段存取。存储器中的数据的位置可作为具有特定位的数据的制造的一部分而被预定,以将存储器的预定部分分配给引导段或安全段,或使其可用于其他用途。一旦经分配,从未授权段对存储器的受保护区域的未授权读取将读取为0或1或某些不会反映数据的实际值的其他值。从未授权段对存储器的受保护区域的未授权写入将不会起始一编程序列且将导致一个或一个以上无操作(NOP)周期。或者,可调用陷阱例程。
RBS和RSS寄存器440和445分别存储可对应于控制器的随机存取存储器中的引导段数据和安全段数据的存在、大小和位置的值。这些区域一般不会产生,除非已在程序存储器中产生对应的引导段和安全段,且仅可由那些对应的段存取。存储器中的数据的位置可作为具有特定位的数据的制造的一部分而被预定,以将存储器的预定部分分配给引导段或安全段,或使其可用于其他用途。一旦经分配,从未授权段对存储器的受保护区域的未授权读取将读取为0或1或某些不会反映数据的实际值的其他值。从未授权段对存储器的受保护区域的未授权写入将不会起始一编程序列且将导致一个或一个以上无操作(NOP)周期。或者,可调用陷阱例程。存储在引导段和安全段中的代码可改变RBS和RSS寄存器中的值以当不需要受保护的相应的RAM段时释放这些段。
图5描绘当出现会导致安全违规的处理流程变动时,用于监视控制器的处理流程并实施安全措施的安全逻辑的实施例。这一般会以以下方式出现:从程序存储器的较不安全区域(例如普通段)跳到或调用存储器的较安全区域(例如引导段或安全段);从程序存储器的较不安全区域到存储器的较安全区域的中断向量;程序计数器的正常递增,其导致由控制器执行的指令从程序存储器的较不安全区域转变到程序存储器的较安全区域。
参看图5,使用流程控制安全逻辑520实施针对未授权程序流程变动的安全措施。流程控制安全逻辑从控制器核心中的程序计数器500和指令提取/解码逻辑510接收输入。其还从配置寄存器BSS 400、SSS 405和GSS 410接收输入,所述寄存器指定引导段、安全段和普通段在程序存储器中的大小和位置。在控制器的正常操作期间,程序计数器中的值在连续的处理器周期中递增,且指令提取/解码单元提取由存储在程序计数器中的地址值指定的程序指令。
接着通过控制器的执行单元中的一者在连续的时钟周期中执行指令(尽管可并行执行)。在任何给定时间,所执行的指令流将驻存在存储器的一个安全区域中,例如普通段中。某些程序指令将通过将新值写入程序计数器中而导致处理流程变动。实例是跳跃指令和子程序调用指令。
当程序计数器500中的变动导致处理器试图提取并执行安全级比对应于当前处理的指令流的段更高的段中的相应指令时,流程控制安全逻辑基于其输入产生陷阱标志。因此,流程控制安全逻辑520将存储为程序计数器500的当前值的程序存储器地址与寄存器530-540和将执行的指令比较,以确定当前安全级(即,引导、安全或普通)。流程控制安全逻辑520还将存储为程序计数器500的下一值的程序存储器地址与寄存器530-540和将执行的指令比较,以确定用于执行的下一顺序程序指令的安全级(即,引导、安全或普通)。基于这些比较,当程序计数器变化到从较低安全段到较高安全段的值时,流程控制安全逻辑产生陷阱标志525。
当普通段调用具有较高安全级的段内的子程序时,此操作方法有个例外。例如当普通段调用安全段内的(例如)第三方算法的子程序,或调用引导段内的(例如)加密子程序的子程序时,会出现这种情况。在这些情况下,流程控制安全逻辑可允许基于指令、调用指令的类型和在预定范围(例如,程序安全段存取区域315或引导段存取区域305)内的程序计数器地址变化值而发生程序流程变动。
当产生陷阱标志525时,其导致处理器跳到相应的陷阱例程。根据本发明的实施例,陷阱例程是存储在程序存储器的第一128位中的控制器重设程序。然而应了解,此陷阱例程可存储在程序存储器中的任何地方。
图6描绘当存取将导致安全违规时,用于监视对控制器的存储器的存取并实施安全措施的安全逻辑的实施例。此一般会以以下方式出现:由驻存在程序存储器的较不安全区域中的程序指令试图对安全存储器位置的读取,或由驻存在程序存储器的较不安全区域中的程序指令试图对安全存储器位置的写入。
参看图6,存储器存取控制逻辑610插入在指令执行单元与寄存器600和存储器615(其可包括非易失性存储器和/或随机存取存储器(RAM))之间的路径中。存储器阵列615显示为单个功能单元。然而,应了解,用于非易失性存储器和RAM的存储器阵列将在实体上分离,且当两者都存在时通过单独的地址总线予以单独编址。
指令执行单元和寄存器经由取决于数据总线的数目和可由控制器存取的存储器阵列的数目的一个或一个以上地址总线而耦合到存储器阵列615。数据总线耦合在指令执行单元与寄存器600和读取/写入存取多工器之间。读取/写入存取多工器用于从阵列中读取数据并将其置于适当数据总线上,且从适当的数据总线将数据写入阵列。
存取控制安全逻辑610耦合在配置寄存器400-445和读取/写入存取多工器之间。当试图读取或写入存储器阵列时,存取控制安全逻辑610确定对应于指令的安全级,其根据本发明的实施例一般为引导、安全或普通,尽管可包括额外的安全性标识。基于由指令指定的指令的存储器地址和所述位置的相应安全级来确定安全级。
在试图读取或写入存储器阵列时,存取控制安全逻辑确定所述读取或写入是否与根据BWRP、SWRP、GWRP寄存器而不被允许写入的存储器位置相关联,或确定所述读取或写入是否与关联于比读取/写入指令的安全级更高的安全级的存储器位置相关联。在任一情况下,存取控制安全逻辑产生到达读取/写入存取多工器的信号,所述信号防止所述多工器执行读取或写入操作。作为替代,所述读取/写入存取多工器防止写入操作,从而导致NOP,或对于未授权读取,迫使数据总线上为已知的数据(例如全0或全1)。
虽然已说明并描述本发明的特定实施例,但所属领域的技术人员应了解,在不违背本发明的精神和范畴的情况下,可对那些实施例作变动。举例来说,本发明可应用于微处理器、微控制器、数字信号处理器或混合物(例如数字信号控制器),且可应用于这些芯片上的存储器的任何段。

Claims (20)

1.一种用于保护存储器中的代码的控制器,其包含:
配置位,其定义程序存储器的复数个段,所述复数个段包括一引导代码段和一安全代码段;和
安全逻辑,其耦合到所述配置位以用于防止因另一存储器段执行的代码引起的程序流程变动而导致对受保护段进行存取。
2.根据权利要求1所述的控制器,其中所述安全逻辑防止因其他段执行的代码引起的程序流程变动而导致对所述引导代码段进行存取。
3.根据权利要求2所述的控制器,
其中所述配置位进一步定义一普通代码段;且
其中所述安全逻辑防止因所述普通代码段执行的代码引起的程序流程变动而导致对所述安全代码段进行存取。
4.根据权利要求3所述的控制器,
其中所述配置位进一步定义非易失性存储器中的引导段受保护数据。
5.根据权利要求4所述的控制器,其中所述配置位进一步定义非易失性存储器中的安全段受保护数据。
6.根据权利要求5所述的控制器,其中所述配置位进一步定义随机存取存储器中的引导段受保护数据。
7.根据权利要求6所述的控制器,其中所述配置位进一步定义随机存取存储器中的安全段受保护数据。
8.根据权利要求6所述的控制器,其进一步包含防止对所述引导段进行存取的存储器存取控制逻辑。
9.一种用于保护存储器中的代码的处理器,其包含:
配置位,其定义程序存储器的复数个段,所述复数个段包括一引导代码段和一安全代码段;和
安全逻辑,其耦合到所述配置位以用于防止因另一存储器段执行的代码引起的程序流程变动而导致对受保护段进行存取。
10.根据权利要求9所述的处理器,其中所述安全逻辑防止因其他段执行的代码引起的程序流程变动而导致对所述引导代码段进行存取。
11.根据权利要求10所述的处理器,
其中所述配置位进一步定义一普通代码段;且
其中所述安全逻辑防止因所述普通代码段执行的代码引起的程序流程变动而导致对所述安全代码段进行存取;
12.根据权利要求11所述的处理器,
其中所述配置位进一步定义非易失性存储器中的引导段受保护数据。
13.根据权利要求12所述的处理器,其中所述配置位进一步定义非易失性存储器中的安全段受保护数据。
14.根据权利要求13所述的处理器,其中所述配置位进一步定义随机存取存储器中的引导段受保护数据。
15.根据权利要求14所述的处理器,其中所述配置位进一步定义随机存取存储器中的安全段受保护数据。
16.根据权利要求15所述的处理器,其进一步包含防止对所述引导段进行存取的存储器存取控制逻辑。
17.一种用于保护一处理器存储器中的代码的方法,其包含:
检测一程序流程变动;和
防止通过一具有一不同安全级的段执行的程序代码对存储器的一受保护段进行存取。
18.根据权利要求17所述的方法,其进一步包含定义复数个存储器段和其安全级的配置位。
19.根据权利要求18所述的方法,其中所述存储器的受保护段包括程序代码。
20.根据权利要求18所述的方法,其中所述存储器的受保护段包括数据。
CNA2005800159426A 2004-05-17 2005-05-16 数字信号控制器安全存储器分割 Pending CN1954302A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/846,579 2004-05-17
US10/846,579 US20050257016A1 (en) 2004-05-17 2004-05-17 Digital signal controller secure memory partitioning

Publications (1)

Publication Number Publication Date
CN1954302A true CN1954302A (zh) 2007-04-25

Family

ID=34969822

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2005800159426A Pending CN1954302A (zh) 2004-05-17 2005-05-16 数字信号控制器安全存储器分割

Country Status (4)

Country Link
US (1) US20050257016A1 (zh)
EP (1) EP1763761A1 (zh)
CN (1) CN1954302A (zh)
WO (1) WO2005116842A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103150524A (zh) * 2013-01-30 2013-06-12 华中科技大学 一种安全存储器芯片、系统及其认证方法
CN103455733A (zh) * 2012-05-31 2013-12-18 飞思卡尔半导体公司 处理器资源和执行保护方法及装置
CN105843112A (zh) * 2016-03-15 2016-08-10 珠海格力电器股份有限公司 一种mcu、终端和控制方法

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1634160A4 (en) * 2003-06-16 2009-11-04 Iocell Corp INFORMATION PROCESSING DEVICE AND METHOD FOR CONTROLLING THE SAME
US8112618B2 (en) * 2004-04-08 2012-02-07 Texas Instruments Incorporated Less-secure processors, integrated circuits, wireless communications apparatus, methods and processes of making
WO2006121251A1 (en) * 2005-05-06 2006-11-16 Iocell Co., Ltd. Data structure of flash memory having system area with variable size in which data can be updated, usb memory device having the flash memory, and method of controlling the system area
US8234506B2 (en) * 2006-10-08 2012-07-31 International Business Machines Corporation Switching between unsecure system software and secure system software
US7644322B2 (en) * 2006-11-21 2010-01-05 Atmel Corporation Hardware flow control monitor
KR100800589B1 (ko) * 2006-12-20 2008-02-04 엘지전자 주식회사 정보 처리 장치 및 그 운용방법
EP1986122A1 (fr) * 2007-04-23 2008-10-29 Stmicroelectronics Sa Unite de traitement securisee
EP2211285A1 (en) * 2009-01-20 2010-07-28 Nagravision SA Secured data processing device
JP2010267135A (ja) * 2009-05-15 2010-11-25 Toshiba Corp メモリコントローラ
US8954017B2 (en) * 2011-08-17 2015-02-10 Broadcom Corporation Clock signal multiplication to reduce noise coupled onto a transmission communication signal of a communications device
CN104272250A (zh) 2012-04-30 2015-01-07 惠普发展公司,有限责任合伙企业 可配置的计算机存储器
US9489316B2 (en) * 2013-03-15 2016-11-08 Freescale Semiconductor, Inc. Method and device implementing execute-only memory protection
US9729320B2 (en) * 2014-02-25 2017-08-08 Cavium, Inc. Apparatus and method for software enabled access to protected hardware resources
US9904485B2 (en) * 2016-03-31 2018-02-27 Intel Corporation Secure memory controller
GB2554940B (en) * 2016-10-14 2020-03-04 Imagination Tech Ltd Out-of-bounds recovery circuit
GB2554941B (en) * 2016-10-14 2020-03-18 Imagination Tech Ltd Detecting out-of-bounds violations in a hardware design using formal verification
CN110490008B (zh) * 2018-05-14 2021-08-10 英韧科技(上海)有限公司 安全装置及安全芯片
FR3118219B1 (fr) * 2020-12-17 2024-03-15 Stmicroelectronics Grand Ouest Sas Procédé de protection d’un système, par exemple un microcontrôleur, et sytème correspondant

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5603000A (en) * 1989-05-15 1997-02-11 Dallas Semiconductor Corporation Integrated circuit memory with verification unit which resets an address translation register upon failure to define one-to-one correspondences between addresses and memory cells
US5022077A (en) * 1989-08-25 1991-06-04 International Business Machines Corp. Apparatus and method for preventing unauthorized access to BIOS in a personal computer system
US5546561A (en) * 1991-02-11 1996-08-13 Intel Corporation Circuitry and method for selectively protecting the integrity of data stored within a range of addresses within a non-volatile semiconductor memory
US5596739A (en) * 1994-02-08 1997-01-21 Meridian Semiconductor, Inc. Method and apparatus for detecting memory segment violations in a microprocessor-based system
US6006328A (en) * 1995-07-14 1999-12-21 Christopher N. Drake Computer software authentication, protection, and security system
US5737760A (en) * 1995-10-06 1998-04-07 Motorola Inc. Microcontroller with security logic circuit which prevents reading of internal memory by external program
GB9605338D0 (en) * 1996-03-13 1996-05-15 Arendee Ltd Improvements in or relating to computer systems
US5991519A (en) * 1997-10-03 1999-11-23 Atmel Corporation Secure memory having multiple security levels
JP3611964B2 (ja) * 1998-04-16 2005-01-19 富士通株式会社 記憶装置、記憶制御方法及び記憶媒体
US6651171B1 (en) * 1999-04-06 2003-11-18 Microsoft Corporation Secure execution of program code
US6633963B1 (en) * 2000-03-31 2003-10-14 Intel Corporation Controlling access to multiple memory zones in an isolated execution environment
EP1281124A4 (en) * 2000-04-11 2004-07-14 Richard M Mathis METHOD AND DEVICE FOR PROTECTING AND VERIFYING COMPUTER STORAGE
US6820177B2 (en) * 2002-06-12 2004-11-16 Intel Corporation Protected configuration space in a protected environment
GB2396034B (en) * 2002-11-18 2006-03-08 Advanced Risc Mach Ltd Technique for accessing memory in a data processing apparatus
US7134006B2 (en) * 2003-06-03 2006-11-07 Gateway Inc. Method and system for changing software access level within or outside a host protected area

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103455733A (zh) * 2012-05-31 2013-12-18 飞思卡尔半导体公司 处理器资源和执行保护方法及装置
US9672164B2 (en) 2012-05-31 2017-06-06 Nxp Usa, Inc. Methods and systems for transitioning between a user state and a supervisor state based on a next instruction fetch address
CN103455733B (zh) * 2012-05-31 2018-03-27 恩智浦美国有限公司 处理器资源和执行保护方法及装置
US10360162B2 (en) 2012-05-31 2019-07-23 Nxp Usa, Inc. Processing systems and methods for transitioning between privilege states based on an address of a next instruction to be fetched
CN103150524A (zh) * 2013-01-30 2013-06-12 华中科技大学 一种安全存储器芯片、系统及其认证方法
CN103150524B (zh) * 2013-01-30 2016-01-13 华中科技大学 一种安全存储器芯片、系统及其认证方法
CN105843112A (zh) * 2016-03-15 2016-08-10 珠海格力电器股份有限公司 一种mcu、终端和控制方法
CN105843112B (zh) * 2016-03-15 2018-07-13 珠海格力电器股份有限公司 一种mcu、终端和控制方法

Also Published As

Publication number Publication date
WO2005116842A1 (en) 2005-12-08
US20050257016A1 (en) 2005-11-17
EP1763761A1 (en) 2007-03-21

Similar Documents

Publication Publication Date Title
CN1954302A (zh) 数字信号控制器安全存储器分割
CN101281506B (zh) 数据处理系统内基于存储器域的安全控制
CN101281459B (zh) 受保护的功能调用
CN101399084B (zh) 存储器装置
US6160734A (en) Method for ensuring security of program data in one-time programmable memory
US5237616A (en) Secure computer system having privileged and unprivileged memories
EP3702923A1 (en) Memory protection
US8867746B2 (en) Method for protecting a control device against manipulation
CN109840410A (zh) 一种进程内数据隔离与保护的方法和系统
JPH10228421A (ja) メモリアクセス制御回路
US11593277B2 (en) Method of secure memory addressing
KR20130036189A (ko) 하드웨어 모드와 보안 플래그에 의존하여 판독된 명령어에 대한 메모리 영역의 제한
WO2006093618A2 (en) Integrated microcontroller and memory with secure interface between system program and user operating system and application
CN108154032A (zh) 一种基于可信执行环境的具有内存完整性保障功能的计算机系统信任根构建方法
RU2266559C2 (ru) Микропроцессорная схема для носителя данных и способ для обеспечения доступа к данным, загруженным в память
KR100505106B1 (ko) 강화된 보안 기능을 갖춘 스마트 카드
JPH05324951A (ja) 内部プログラムを実行することが可能なマイクロコンピュータ用pcカード
US11243894B2 (en) Method for protecting memory against unauthorized access
CN115510430A (zh) 一种函数指针及其数据依赖的识别与保护方法、装置
US9916281B2 (en) Processing system with a secure set of executable instructions and/or addressing scheme
CN107451493A (zh) Risc架构保密电路及其方法
CN110162965B (zh) 一种运行时访问控制方法及计算装置
JPH0475137A (ja) データ処理装置
CN205750790U (zh) Risc架构保密电路
JP2011150457A (ja) 情報処理装置およびメモリアクセス制御方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Open date: 20070425