用于嵌入式代码的保护方案的制作方法_3

文档序号:8344622阅读:来源:国知局
,ST表示存储指令,并且rx表示来自/去往区域“η”的寄存器“X”至。被标注为ADD、SUB、CMP的指令分别对应于指令加、减和比较,这些指令是非加载/存储指令。被标注为异常处理器的指令指示引起异常的先前指令。如前文所讨论的,异常响应于执行指向受保护的存储器区域的加载/存储指令的尝试而被生成。响应于信号波形510上的异常处理器的发生,被标注为异常检测512的信号波形从逻辑低(或者“O”)转变到逻辑高(或者“I”)。
[0032]如图5中所示,根据第一指令,跨越图5从左向右移动,处理单元102将被存储在寄存器O中的值与被存储在寄存器I中的值相加。因为ADD是非加载/存储指令,所以代码保护方案的状态并不禁止ADD指令的执行。接下来的指令是加载/存储指令,从处理单元102的角度来看,该加载/存储指令操作为将指令从寄存器I加载到存储器区域#1中。这种加载指令被允许是因为存储器区域#1被标注为OFF,并且因此被指定为未受保护的。接下来的指令(ST r2, #4)是存储指令,该存储指令如果被执行则操作为将寄存器2中的值存储到存储器区域#4中(例如,向受保护的存储器区域#4写入的潜在的恶意软件尝试)。在这种情况下,存储器区域#4被标注为0N,并且因此是受保护的。因此,在第三指令中指示的存储指令不被允许,并且使得异常处理器在下一指令周期中被生成。异常处理器可以指示在从未受保护的存储器区域执行的同时尝试向受保护的存储器区域存储数据的异常。即使具有存储在存储器区域#4中的代码的供应商尝试向存储器区域#4写入,也是这样。类似地,对于第六指令(LD r4,#2),如果由处理单元102执行,则操作为将存储在存储器区域#2中的值加载到寄存器#4中(例如,读取存储在受保护的存储器区域#2中的代码的盗版尝试)。在这种情况下,存储器区域#2被标注为0N,并且因此是受保护的。因此,在第六指令中指示的存储指令不被允许,并且使得异常处理器在下一指令周期中被生成。异常处理器可以指示在从受保护的存储器区域执行的同时向受保护的存储器区域加载的异常。即使具有存储在存储器区域#2中的代码的供应商尝试从存储器区域#2读取,也是这样。
[0033]附加的考虑
[0034]所公开的配置有利地提供了针对对于存储在存储器的被指定为受保护的区域的区域中的信息的盗版和恶意软件的保护。为了降低面积和功率消耗,所公开的配置被实现在处理器流水线中。例如,在一个配置中,所公开的代码保护系统将管控对存储器的受保护的区域的加载/存储访问集成到流水线级中的一个流水线级中。集成包括附加的组合逻辑的最少使用以及与存储器空间的每个区域相关联的保护位的使用。当保护位被启用时,指向对应的受保护的存储器区域的读取和写入操作不被另一主机处理器或者调试器允许。保护位可以由SoC提供者根据特定设计要求设置。这种灵活性提供可配置的代码保护系统,与使用独立的受保护的存储器空间或者操作为信任存储器管理单元(MMU)以提供代码保护的专用的嵌入式硬件的其他代码保护解决方案相比,该代码保护系统是面积和功率高效的。
[0035]所公开的实施例涵盖在处理器内核的配置期间代码保护特征的实现方式。例如,所公开的实施例涵盖计算系统,该计算系统包括可操作以基于由计算系统接收到的选择来选择是否配置处理器内核以并入所公开的代码保护特征的代码。如此,所公开的实施例涵盖包括代码的计算机可读介质,该代码当由处理器执行时实现这样的开发工具来选择是否配置处理器内核以并入所公开的代码保护特征。所公开的实施例还涵盖并入所公开的代码保护系统的处理器内核的电表示,该处理器内核的电表示可以从这样的开发工具输出。所公开的实施例进一步涵盖将所公开的代码保护系统的电路表示实例化的计算设备。
[0036]前文中的实施例的描述已出于说明的目的被给出;并不旨在是穷尽式的或者将实施例限制到所公开的精确形式。相关领域技术人员可以领会很多修改和变化鉴于上述公开内容是可能的。
[0037]本描述的一些部分在对信息的操作的算法和符号表示方面描述实施例。这些算法描述和符号表示通常由数据处理领域技术人员使用以向本领域其他技术人员有效地传达他们的工作的实质。当这些操作被功能地、计算地或者逻辑地描述时,这些操作被理解为由计算机程序或者等价的电路、微代码等实现。此外,已经证明,不失一般性地将操作的这些布置称为模块有时是方便的。所描述的操作和它们的相关联的模块可以被体现在软件、固件、硬件或其任何组合中。
[0038]在此所描述的任何步骤、操作或者过程可以单独地或者与其他设备结合地利用一个或者多个硬件或者软件模块而被执行或者实现。在一个实施例中,软件模块利用包括含有计算机程序代码的计算机可读介质的计算机程序产品而被实现,该计算机程序代码可以由计算机处理器执行以用于执行任意或者全部的所述步骤、操作或者过程。这包括由用于配置处理单元和SoC部件、用于对应于本文所描述的公开代码保护系统实施例的部件合成诸如寄存器传送语言(RTL)或者硬件描述语言(HDL)之类的电路描述语言的计算机进程执行的代码。这进一步包括由用于生成作为布局和布线设计或者设计版图格式(例如,图形数据系统II或者GDS II)的所公开的实施例的任何部分的计算机进程执行的代码。
[0039]所公开的实施例也可以涉及用于执行在此的操作的装置。这种装置可以为所需要的目的而被特别建造的,和/或它可以包括由存储在计算机中的计算机程序选择性地激活或者重新配置的通用计算设备。这样的计算机程序可以被存储在非瞬态的、有形的计算机可读存储介质或者适用于存储电子指令的任何类型的介质中,其可以被耦合到计算机系统总线。此外,在本说明书中涉及的任何计算系统可以包括单个处理器或者可以是使用用于增加的计算能力的多个处理器设计的架构。
[0040]所公开的实施例还可以涉及由在此所述的计算过程所产生的产品。这样的产品可以包括从计算过程产生的信息,其中该信息被存储在非瞬态的、有形的计算机可读存储介质上,并且可以包括计算机程序产品或者在此所述的其他数据组合的任何实施例。
[0041]最后,在本说明书中使用的语言主要是为了可读性和指导的目的而被选择,并且它可能没有被选择用来描述或者限制发明主题。因此意图是,所公开的实施例不被该详细描述所限制,而是由申请基于此提出的任何权利要求限制。因此,实施例的公开旨在是说明性的,而非限制如在以下权利要求书中所阐述的范围。
【主权项】
1.一种集成电路,包括存储器和处理器,所述存储器包括一个或者多个存储器区域,并且所述处理器包括: 指令流水线,包括多个处理级; 所述多个处理级中的第一处理级,具有被耦合以接收一条或者多条指令的第一输入;以及 所述多个处理级中的第二处理级,被耦合至第一处理级,并且被配置为: 接收标识所述存储器的受保护的存储器区域的地址信息,所述受保护的存储器区域与从所述第一处理级接收到的指令相关联; 接收用于标识的受保护的存储器区域的保护信息,其中所述保护信息指示被指派给所述标识的受保护的存储器区域的保护状态;以及 至少部分地基于用于所述标识的受保护的存储器区域的所述保护信息和接收到的所述指令的指令类型来控制对所述一个或者多个存储器区域的访问。
2.根据权利要求1所述的集成电路,其中所述第二处理级被耦合以从代码保护控制器接收用于所述存储器的一个或者多个受保护的存储器区域的保护信息。
3.根据权利要求2所述的集成电路,其中所述集成电路被配置为使用安全总线向所述代码保护控制器发送用于所述存储器的所述一个或者多个受保护的区域的保护信息设置。
4.根据权利要求2所述的集成电路,其中所述集成电路被配置为基于一个或者多个熔丝设置生成用于所述存储器的所述一个或者多个受保护的区域的代码保护信息设置。
5.根据权利要求2所述的集成电路,其中所述集成电路被配置为基于一个或者多个寄存器设置生成用于所述存储器的所述一个或者多个受保护的区域的代码保护信息设置。
6.根据权利要求2所述的集成电路,其中所述集成电路
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1