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

文档序号:8344622阅读:229来源:国知局
用于嵌入式代码的保护方案的制作方法
【专利说明】用于嵌入式代码的保护方案
[0001]相关申请的交叉引用
[0002]本申请要求2012年8月15日提交的美国临时申请第61/683,645号的权益,其通过引用整体并入于此。
技术领域
[0003]本公开内容总体上涉及驻留在处理设备上的嵌入式应用的领域。
【背景技术】
[0004]由对具有不断降低的形状因子的设备中的更多计算能力的需求驱动,片上系统(SoC)设备每裸片面积继续包装更多的功能。这些高度集成的设备将各种知识产权(IP)块合并到复杂的分布式计算系统中。这些设备还包括在多个处理器内核上被执行的、用于执行诸如管理功率消耗、执行应用层软件、处理音频/视频以及操作无线收发器之类的任务的一套嵌入式软件。
[0005]因为这些设备是高度集成的,所以嵌入式软件模块和IP模块之间的交互可以对SoC设备的总体性能有显著贡献。并且在SoC设备的开发和初启期间,SoC提供者可以与若干嵌入式软件供应商合作以实现、测试并优化这些交互以实现SoC的期望的总体性能水平。但是虽然合作可以有利于SoC提供者,合作也引起关于如何防范嵌入式软件提供者之间的嵌入式代码的盗版和恶意软件的顾虑。

【发明内容】

[0006]一种用于控制对集成电路中的存储器区域的访问的代码保护方案,包括具有包括多个处理级的指令流水线的处理器。第一处理级接收一条或者多条指令。第二处理级接收来自第一处理级的、标识存储器的受保护的存储器区域的地址信息以及用于标识的受保护的存储器区域的保护信息。保护信息指示被指派给每个受保护的存储器区域的保护状态。第二处理级基于接收到的指令的指令类型以及与特定受保护的存储器区域相关联的保护信息确定启用还是停用由处理器或者其他外部主机对特定受保护的存储器区域的访问。
【附图说明】
[0007]图1是图示了根据一个实施例的用于片上系统(SoC)设备中的处理设备的代码保护系统的部件的框图。
[0008]图2更详细地图示了根据实施例的用于处理设备的代码保护方案的功能架构的框图。
[0009]图3更详细地图示了根据实施例的用于处理设备的代码保护方案的处理器流水线和受保护的存储器区域的功能架构的框图。
[0010]图4更详细地图示了根据实施例的用于处理设备的代码保护方案的存储器映射的框图。
[0011]图5图示了根据实施例的图1的代码保护系统的操作波形。
【具体实施方式】
[0012]附图和以下描述仅为了说明的目的描绘优选实施例。应当注意的是,从以下讨论中,在此所公开的结构和方法的备选实施例将被容易地认为是在不背离权利要求书的原理的情况下可以被实施的可行的备选方案。
[0013]现在将详细地参考若干实施例,其示例在附图中被图示。注意,只要可行,相似或相同的标号可以用于附图中并且可以指示相似或者相同的功能。附图仅为了说明的目的描绘所公开的系统(或者方法)的实施例。本领域技术人员从以下描述中将容易地认识到,在此所说明的结构和方法的备选实施例可以在不背离本文所描述的原理的情况下被运用。
[0014]代码保护系统架构
[0015]图1是用于片上系统(SoC)设备100中的处理设备的代码保护系统的部件的一个实施例。代码保护系统包括处理单元102、存储器映射106以及保护位管理单元108。控制器110被示出以展示示例SoC设备,而不是旨在限制代码保护系统的范围。
[0016]处理单元102通常包括用以执行指令(例如,代码或者软件)的处理设备。处理单元102可以是专门处理器,因为它可以被配置并编程以操作为精简指令集计算(RISC)处理器、数字信号处理器(DSP)、图形处理器单元(GPU)、应用处理器(例如,移动应用处理器)、视频处理器或者中央处理单元(CPU)以访问存储器映射106,并且与控制器110交换命令。处理单元102包括流水线104。流水线104包括如参考图2进一步描述的被串联连接的多个数据处理级。流水线104还包括被配置为实现如参考图2进一步描述的、用于由处理单元102可访问的指定存储器区域的代码保护的硬件单元(例如,组合逻辑或开关)。
[0017]处理单元102可以是以电子格式被表示的单个或者多个处理器内核。在一个示例中,处理单元102是以诸如寄存器传送语言(RTL)或者硬件描述语言(HDL)之类的电路描述语言被表示的可配置处理器内核。在另一个示例中,处理单元102可以被表示为布局和布线设计或者设计版图格式(例如,图形数据系统II或者GDS II)。在进一步的示例中,处理单元102可以被配置为实现与在本公开内容中所描述的方法一致并且被实施在硅中或者以其他方式被转换为物理设备的代码保护。
[0018]存储器映射106描述了表示处理单元102可访问的存储器如何被划分或者组织的数据(例如,代码)的结构。存储器映射106可以使用不安全的总线被耦合到处理单元102。在一个示例中,存储器映射106被划分为多个区域,每个区域由处理单元102唯一地可寻址。存储器映射106的区域可以由处理单元102限定或者指定。为了允许受保护的软件与第三方未受保护的软件共享存储器,每个单独的存储器区域可以被进一步地指定为受保护的区域或者未受保护的区域。在一个示例中,响应于接收用以配置处理器单元102的选项的选择,存储器映射106的存储器区域可以被指定为受保护的或者未受保护的的。
[0019]为了控制对在存储器映射106中描述的保护区域的访问,代码保护系统进一步包括保护位管理单元108。保护位管理单元108通过安全的总线从SoC接收保护设置,并且生成指明对应于存储器映射106的每个区域的唯一保护位的保护信息。在一个实现方式中,保护位管理单元108是由电路元件组成的独立的控制器。在另一个实现方式中,保护位管理单元包括与操作以执行前文所描述的功能的集成电路的其他部分共享的电路元件。在一个示例中,保护位是多位值,其中在多位值中的每一位与存储器映射106中指明的区域相关联或者以其他方式映射到存储器映射106中指明的区域。当对应于存储器映射106的区域的位被设置时,对该区域的加载/存储访问是不允许的,但执行来自该区域的非加载/存储指令是允许的。否则,加载/存储访问不被允许。保护位管理单元108可以被指明在与处理单元102相关联的知识产权(IP)块外部的寄存器中。保护位管理单元108可以被配置为指明管理类型(例如,基于寄存器的、基于熔融的等等)、保护位如何被设置(例如,静态的还是动态的)以及包括校验和和供应商可选择保护位管理的其他保护位管理方法。供应商可选择保护位管理可以包括用户密码和SoC提供者密码,当由被配置为配置保护位的工具接收到时,该用户密码和SoC提供者密码允许改变用于包括与该供应商相关联的代码的存储器的受保护的区域的保护位的设置。当设置被工具重置时,供应商重置密码以防止工具使用先前的用户密码对针对被指定用于该用户的存储器的受保护的区域的保护位设置做出进一步的改变。
[0020]在一个实施例中,保护位管理单元108是由多个存储器位置构成、并且通过安全的总线耦合到处理单元102的寄存器。寄存器中的每个存储器位置对应于存储器映射106的特定区域。在一个示例中,为了设置保护位,逻辑高(或者“I”)被存储在寄存器的对应于存储器映射106的被指定为受保护的区域的特定区域的存储器位置中。并且针对存储器映射106的被指定为未受保护的特定区域,逻辑低(或者“O”)被存储在对应于在存储器映射106中描述的特定未受保护的区域的存储器位置中。在另一个示例中,为了设置保护位,逻辑低(或者“O”)被存储在寄存器的对应于存储器映射106的被指定为受保护的区域的特定区域的存储器位置中,并且逻辑高(或者“I”)被存储在对应于在存储器映射106中描述的区域的存储器位置中,该区域对应于未受保护的区域。在另一个实施例中,保护位管理单元108可以是基于熔融的方式。例
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1