会员体验
专利管家(专利管理)
工作空间(专利管理)
风险监控(情报监控)
数据分析(专利分析)
侵权分析(诉讼无效)
联系我们
交流群
官方交流:
QQ群: 891211   
微信请扫码    >>>
现在联系顾问~

微处理器

阅读:365发布:2020-05-11

IPRDB可以提供微处理器专利检索,专利查询,专利分析的服务。并且本申请涉及微处理器,其包括:当所获取的信息为加密信息时,对要由处理器内核使用的信息解密以获取明文信息的解密单元;将明文信息存储起来的明文信息存储单元。该微处理器还包括:根据是否执行了解密,对所述明文信息添加表示保护或者不保护的受保护属性的受保护属性添加单元;获取对所述明文信息的访问请求的访问请求获取单元;识别所述访问请求的请求类型的请求类型识别单元;以及根据所述请求类型和所述受保护属性控制对所述明文信息的访问的访问控制单元。,下面是微处理器专利的具体信息内容。

1.一种微处理器,包括:

从外部获取要由处理器内核使用的信息的信息获取单元;

当所获取的信息为加密信息时,对获取的信息解密以获取明文信 息的解密单元;

将通过解密获取的明文信息存储起来的明文信息存储单元;

根据是否执行了解密,对所述明文信息添加表示保护或者不保护 的受保护属性的受保护属性添加单元;

获取对所述明文信息的访问请求的访问请求获取单元;

识别所述访问请求的请求类型的请求类型识别单元;以及根据所述请求类型和所述受保护属性控制对所述明文信息的访 问的访问控制单元。

2.如权利要求1所述的微处理器,其中:所述受保护属性添加单元向通过解密获取的明文信息添加表示 保护的受保护属性;并且,所述访问控制单元限制对被添加了表示保护的受保护属性的明 文信息的访问。

3.如权利要求1所述的微处理器,其中:当所述信息是未被加密的明文信息时,所述明文信息存储单元存 储该明文信息;

所述受保护属性添加单元向所述未被加密的明文信息添加表示 不保护的受保护属性;并且,所述访问控制单元允许对被添加了表示不保护的受保护属性的 明文信息的访问。

4.如权利要求1所述的微处理器,其中:当所述请求类型不同于已登记的请求类型时,所述访问控制单元 限制对所述明文信息的访问。

5.如权利要求1所述的微处理器,其中:当所述请求类型是已登记的请求类型时,所述访问控制单元允许 对所述明文信息的访问。

6.如权利要求5所述的微处理器,其中:当所述请求类型不同于已登记的请求类型时,并且当所述明文信 息被添加了表示保护的受保护属性时,所述访问控制单元限制对所述 明文信息的访问。

7.如权利要求1所述的微处理器,其中:所述访问控制单元根据所述请求类型和受保护属性禁止对所述 明文信息的访问。

8.如权利要求1所述的微处理器,其中:所述访问控制单元根据所述请求类型和受保护属性判断是输出 所述明文信息还是输出通过对所述明文信息进行加密而产生的加密信 息。

9.如权利要求1所述的微处理器,其中:所述访问控制单元根据所述请求类型和受保护属性限制对所述 明文信息的改写。

10.如权利要求9所述的微处理器,还包括:获取改写指令的改写指令获取单元,所述改写指令指示是否允许 对明文信息进行改写,其中:所述访问控制单元在接收到指示允许改写的改写指令后允许对 所述明文信息的改写。

11.如权利要求1所述的微处理器,其中:根据所述请求类型和受保护属性,在改写所述明文信息之前,所 述访问控制单元判断是否删除已经存储在所述明文信息存储单元中的 明文信息。

12.如权利要求1所述的微处理器,还包括:存储用于进行解密的多个密码的密码存储单元;以及相互关联地存储所述密码的标识信息和所述受保护属性的受保 护属性表,其中:所述受保护属性添加单元添加所述受保护属性表中与所述密码 相关的受保护属性,作为所述明文信息的受保护属性。

13.如权利要求12所述的微处理器,还包括:从用户接受对要用于解密的密码的指定的密码指定单元,以及使用用户指定的密码对加密信息进行解密的解密单元。

14.如权利要求1所述的微处理器,其中:所述明文信息存储单元相互关联地存储多条明文信息以及明文 信息的受保护属性,并且,所述访问控制单元基于请求类型和与明文信息相关联的受保护 属性控制对每一条明文信息的访问。

15.如权利要求4所述的微处理器,其中:所述明文信息存储单元被设置在内部存储器中,所述处理器内核取指令被登记为登记的请求类型,并且,当所述请求类型不是所述处理器内核取出的指令时,所述访问控 制单元限制访问。

16.如权利要求1所述的微处理器,其中:所述访问控制单元根据所述请求类型和受保护属性限制对处理 器内核要用于执行一个程序的明文信息的访问。

17.如权利要求16所述的微处理器,其中:所述处理器内核通过流水线处理来执行所述明文信息,并且,所述访问控制单元根据所述请求类型和被添加到要由处理器内 核的各单元执行的相应明文信息的每一个受保护属性,来限制对处理 器内核执行的明文信息的访问。

18.如权利要求17所述的微处理器,还包括:存储在流水线处理的每一站被执行的明文信息的受保护属性的 多个受保护属性存储单元,一个受保护属性存储单元用于一个站;并 且根据所述多个受保护属性存储单元所存储的每一个受保护属性, 所述访问控制单元限制对所述处理器内核用来执行所述程序的明文信 息的访问。

19.如权利要求17所述的微处理器,其中:当所述多个站中的至少一个站在所述处理器内核中执行的所述 明文信息被添加有表示保护的受保护属性时,所述访问控制单元限制 对所述处理器内核用来执行所述程序的明文信息的访问。

20.如权利要求1所述的微处理器,还包括:对流水线中的每一个站执行的程序与每一个站相关联地存储受 保护属性的受保护属性存储单元;

从调试器获取调试请求的调试请求获取单元;以及当在获取所述调试请求时所有的受保护属性都表示不保护时,允 许来自调试器的访问的调试中断控制单元。

21.如权利要求20所述的微处理器,其中:当在获取所述调试请求时至少一个受保护属性表示保护时,所述 调试中断控制单元限制来自所述调试器的访问。

22.如权利要求1所述的微处理器,还包括:对处理器内核执行的程序存储受保护属性的受保护属性存储单 元;以及当所述受保护属性都表示不保护时,允许输出从所述微处理器获 取的跟踪信息的跟踪信息输出控制单元。

23.如权利要求22所述的微处理器,其中:当所述受保护属性表示保护时,所述跟踪信息输出控制单元限制 所述跟踪信息的输出。

24.一种微处理器,包括:

从外部获取要由处理器内核使用的信息的信息获取单元;

当所获取的信息为加密信息时,对获取的信息解密以获取明文信 息的解密单元;

将通过解密获取的明文信息存储起来的明文信息存储单元;

存储用于解密的密码的密码存储单元;

向所述明文信息添加标识所述密码的密码标识信息的密码标识 信息添加单元;

存储所述密码标识信息的密码标识信息存储单元;

获取对所述明文信息的访问请求的访问请求获取单元;

识别所述访问请求的请求类型的请求类型识别单元;以及根据所述请求类型和所述密码标识信息控制对所述明文信息的 访问的访问控制单元。

25.如权利要求24所述的微处理器,其中:所述密码标识信息是进一步指明对应的明文信息的受保护属性 是保护还是不保护的信息,并且:当所述密码标识信息所指示的受保护属性是保护时,所述访问控 制单元限制对所述明文信息的访问。

26.如权利要求24所述的微处理器,其中:所述密码标识信息是进一步指明对应的明文信息的受保护属性 是保护还是不保护的信息,并且:当所述密码标识信息所指示的受保护属性是不保护时,所述访问 控制单元允许对所述明文信息的访问。

27.如权利要求24所述的微处理器,其中:当所述请求类型不同于已登记的请求类型时,所述访问控制单元 限制对所述明文信息的访问。

28.如权利要求24所述的微处理器,其中:当所述请求类型是已登记的请求类型时,所述访问控制单元允许 对所述明文信息的访问。

29.如权利要求28所述的微处理器,其中:当所述请求类型不同于已登记的请求类型时,并且当所述密码标 识信息所指示的受保护属性是保护时,所述访问控制单元限制对所述 明文信息的访问。

30.如权利要求24所述的微处理器,其中:所述访问控制单元根据所述请求类型和受保护属性禁止对所述 明文信息的访问。

31.如权利要求26所述的微处理器,还包括:获取初始化指令的初始化指令获取单元,所述初始化指令指示所 述明文信息存储单元的初始化;以及当获取了所述初始化指令时,初始化所述明文信息存储单元并在 所述密码标识信息存储单元中设置密码标识信息的初始化单元,所述 密码标识信息指明所述受保护属性是不保护。

32.如权利要求31所述的微处理器,还包括:存储状态信息的状态存储单元,所述状态信息指出所述密码标识 信息存储单元是否处于被初始化状态,其中:当存储了指明被初始化状态的所述状态信息时,所述访问控制单 元允许对所述明文信息的访问。

33.如权利要求24所述的微处理器,其中:所述访问请求包括密码标识信息,并且

根据所述访问请求中进一步包括的密码标识信息以及所述密码 标识信息存储单元中存储的密码标识信息,所述访问控制单元控制对 所述明文信息的访问。

34.如权利要求33所述的微处理器,其中:当所述访问请求中包括的密码标识信息与所述密码标识信息存 储单元中存储的密码标识信息匹配时,所述访问控制单元允许对所述 明文信息的访问。

35.如权利要求24所述的微处理器,其中:所述访问控制单元根据所述请求类型和所述密码标识信息,判断 是输出所述明文信息还是输出通过对所述明文信息进行加密而产生的 加密信息。

36.如权利要求24所述的微处理器,其中:所述访问控制单元根据所述请求类型和密码标识信息限制对处 理器内核要用于执行一个程序的明文信息的访问。

37.如权利要求36所述的微处理器,其中:所述处理器内核通过流水线处理来执行所述明文信息,并且,所述访问控制单元根据所述请求类型和被添加到要由处理器内 核的各单元执行的相应明文信息的每一个密码标识信息,来限制对处 理器内核用来执行所述程序的明文信息的访问。

38.如权利要求37所述的微处理器,其中:所述密码标识信息存储单元包括存储在流水线处理的每一站被 执行的明文信息的密码标识信息的多个密码标识信息存储单元,一个 密码标识信息存储单元用于一个站;并且根据所述多个密码标识信息存储单元所存储的每一个密码标识 信息,所述访问控制单元限制对所述处理器内核用来执行所述程序的 明文信息的访问。

39.如权利要求37所述的微处理器,其中:所述密码标识信息是进一步指明对应的明文信息的受保护属性 是保护还是不保护的信息,并且:当处理器内核的多个站中的至少一个站执行的所述明文信息的 密码标识信息的受保护属性表示保护时,所述访问控制单元限制对所 述处理器内核执行的明文信息的访问。

说明书全文

技术领域

本发明涉及具有处理器内核的微处理器

背景技术

根据传统上已知的技术,在微处理器中提供了嵌入式调试器接口 并连接到调试器,以允许对处理器的内部状态进行分析,以方便软件 开发时的调试。
根据传统技术,用户能够通过内嵌在处理器中的调试器接口从调 试器访问处理器内部的资源比如寄存器和存储器。另外,用户能够使 处理器分步执行。
但是,内置的调试器接口不仅方便了合法的软件开发人员进行程 序验证工作,而且也方便了其它软件开发人员和用户对软件进行分析。
例如,如果被开发出来的软件包含有机密信息,则需要防止软件 用户和其它软件开发人员对软件进行分析。
为此,例如日本专利申请公开No.2002-244757提出了一种方法, 使用在解密时选择的密码禁用调试功能,当存储在处理器的存储器中 的受保护的程序被选择为调试目标时,该方法禁用调试操作。
但是,在某些情况下,受保护程序和不受保护的程序共存在一起。 那么,只应针对受保护的程序禁用来自调试器的访问。这样,就存在 一种逐渐增长的需求:使微处理器允许进行弹性的程序保护。

发明内容

根据本发明的一个方面,一种微处理器包括:从外部获取要由处 理器内核使用的信息的信息获取单元;当所获取的信息为加密信息时, 对获取的信息解密以获取明文信息的解密单元;将通过解密获取的明 文信息存储起来的明文信息存储单元;根据是否执行了解密,对所述 明文信息添加表示保护或者不保护的受保护属性的受保护属性添加单 元;获取对所述明文信息的访问请求的访问请求获取单元;识别所述 访问请求的请求类型的请求类型识别单元;以及根据所述请求类型和 所述受保护属性控制对所述明文信息的访问的访问控制单元。
根据本发明的另一方面,一种微处理器包括:从外部获取要由处 理器内核使用的信息的信息获取单元;当所获取的信息为加密信息时, 对获取的信息解密以获取明文信息的解密单元;将通过解密获取的明 文信息存储起来的明文信息存储单元;存储用于解密的密码的密码存 储单元;向所述明文信息添加标识密码的密码标识信息的密码标识信 息添加单元;存储所述密码标识信息的密码标识信息存储单元;获取 对所述明文信息的访问请求的访问请求获取单元;识别所述访问请求 的请求类型的请求类型识别单元;以及根据所述请求类型和所述密码 标识信息控制对所述明文信息的访问的访问控制单元。
根据本发明的又一方面,一种微处理器包括:对流水线中的每一 个站执行的程序与每一个站相关联地存储受保护属性的受保护属性存 储单元;从调试器获取调试请求的调试请求获取单元;以及当在获取 所述调试请求时所有的受保护属性都表示不保护时,允许来自调试器 的访问的调试中断控制单元。
根据本发明的又一方面,一种微处理器包括:对处理器内核执行 的程序存储受保护属性的受保护属性存储单元;以及当所述受保护属 性都表示不保护时,允许输出从所述微处理器获取的跟踪信息的跟踪 信息输出控制单元。

附图说明

图1是包括本发明第一实施例的微处理器的系统的总体结构的示 意图;
图2是密码表的数据结构的示意图;
图3是由受保护属性添加单元用于添加受保护属性的受保护属性 确定表的示意图;
图4是由指令存储器访问控制单元使用的访问控制规则的示意 图;
图5是将外部存储器中存储的程序通过直接存储器存取(DMA) 控制器写入内部存储器中的读取处理的流程图;
图6是根据图5描述的处理读出内部存储器中存储的程序的读取 处理的流程图;
图7是在被设定为调试器模式的指令存储器中已经存储了明文程 序,并且给出了进一步写入一个明文程序也就是改写指令时的写入处 理的流程图;
图8是根据本发明第一实施例的第一变型,受保护属性存储器的 数据结构的示意图;
图9是根据本发明第一实施例的第二变型,受保护属性存储器的 数据结构的示意图;
图10是根据第一实施例的第三变型的系统的总体结构的示意图;
图11是根据第一实施例的第四变型的写入处理的流程图;
图12是根据第二实施例的系统的总体结构的示意图;
图13是在根据第二实施例的系统中由处理器内核执行程序的处 理的流程图;
图14是软件运行分析的过程的流程图;
图15是根据第二实施例的一个变型的读取处理的流程图;
图16是根据第三实施例的系统的总体结构的示意图;
图17是根据第四实施例的系统的总体结构的示意图;
图18是明文程序的状态转换示意图;
图19是对指令存储器访问控制单元中的数据读取的访问控制规 则的示意图;
图20是对指令存储器访问控制单元中的数据写入的访问控制规 则的示意图;
图21是在用特殊指令初始化时的处理的流程图;
图22是在将外部存储器中存储的程序通过DMA控制器写入内部 存储器中时的写入处理的流程图;
图23是在程序保持处理中,内部存储器中的处理的详细流程图;
图24是在读出内部存储器中存储的程序时的读取处理的流程图;
图25是根据第五实施例的系统的总体结构的示意图;
图26是根据第五实施例,由系统的处理器内核执行程序时的处 理的流程图;
图27是在对处理器内核执行调试器中断时的调试器中断处理的 流程图;
图28是在从处理器内核输出跟踪信息时的跟踪信息数出处理的 流程图;
图29是根据第六实施例的系统的总体结构的示意图;
图30是数据存储器访问控制单元的数据读取访问控制规则的示 意图;
图31是数据存储器访问控制单元的数据写入访问控制规则的示 意图;
图32是将外部存储器中存储的数据通过DMA控制器写入内部存 储器中的写入处理的流程图;
图33是在数据存储处理时内部存储器执行的处理的详细流程图;
图34是读出内部存储器中存储的数据时的读取处理的流程图。

具体实施方式

下面结合附图详细描述根据本发明的微处理器的实施例。应当注 意,本发明不限于这里所描述的实施例。
图1是具有本发明第一实施例的处理器的系统10的总体结构的 示意图。该系统10包括处理器100、外部存储器200、用户接口300 和外部总线400。处理器100有处理器内核110、内部存储器120、直 接存储器存取(DMA)控制器130、调试器接口140和总线接口单元 (BIU)150。
外部存储器200存储要由处理器内核110执行的程序。外部存储 器200存储加密程序和明文程序。
DMA控制器130在外部存储器200和内部存储器120之间转移 数据。在获取加密程序时,DMA控制器130对其解密,以将其转换为 明文程序,并将得到的明文程序存入内部存储器120中。另一方面, 在获取明文程序时,DMA控制器130将其原样存储在内部存储器120 中。
处理器内核110读取存储在内部存储器120、高速缓存控制器(未 图示)和外部存储器200中的程序,以执行该程序。BIU150是用于 与外部设备之间的输入输出的接口。BIU150根据来自处理器内核110 或者高速缓存控制器(未图示)的请求从外部存储器200读取数据或 者向外部存储器200写入数据。
调试器接口140连接到系统10外部的调试器500。调试器接口 140在从调试器500接收到请求时将对处理器内核110、内部存储器 120、DMA控制器130等的请求分类。另外,在响应于所分类的请求 从每一个设备接收到执行结果时,调试器接口140将接收到的执行结 果发回调试器500。
DMA控制器130具有密码ID寄存器132、密码表133、加密解 密单元134以及受保护属性添加单元135。
在密码ID寄存器132中,设置密码ID以用于标识密码,并在对 从外部存储器200读出的程序解密时使用。这里,密码ID的值由用户 通过用户界面设置。当从外部存储器200中读出的程序是未被加密的 明文程序时,在密码ID寄存器132中设置“0”。或者,可以响应于程 序的执行自动设置密码ID的值。
密码表133相关联地存储密码ID和密码。图2是密码表133的 数据结构的示意描述。密码表133相关联地存储密码和用于标识所述 密码的密码ID。这里,要存储在密码表133中的密码ID是“0”以外的 值。
这样,根据密码ID寄存器132中设置的值,也就是根据该设置 的值是否是“0”,可以知道是否进行过解密,也就是程序是否是以加密 形式获得的。
当密码ID寄存器132中设置的值不是“0”时,从外部存储器200 获取的程序是加密程序。然后,加密解密单元134使用密码表133识 别对应于密码ID寄存器132中设置的密码ID的密码。加密解密单元 134使用所识别的密码对加密程序进行解密,获得明文程序。当密码 ID寄存器132中设置的值是“0”时,换句话说,当所获取的程序是明 文程序时,加密解密单元134不执行解密操作。
受保护属性添加单元135对从外部存储器200获取的程序添加受 保护属性。图3图示了由受保护属性添加单元135用来赋予受保护属 性的受保护属性确定表136。
如图3所示,当密码ID寄存器132中设置了“0”时,受保护属性 添加单元135将表示不保护的受保护属性“0”添加到相应程序。当密 码ID寄存器132中设置的值不是“0”时,受保护属性添加单元135将 表示保护的受保护属性“1”添加到对应的明文程序。换句话说,受保 护属性添加单元135对从外部以加密形式获取的程序添加表示保护的 受保护属性,对从外部以明文形式获取的程序添加表示不保护的受保 护属性。
这样,只有以加密形式获取的程序才称为保护对象。
在第一实施例中,用值“0”和“1”表示受保护属性。但是,可以用 任何值来表示受保护属性,只要能够区分“保护”和“不保护”即可。例 如,在密码ID寄存器132中设置的值可以用作受保护属性,或者也可 以使用密码的值。
受保护属性添加单元135使得内部存储器120与对应的明文程序 相关联地存储被添加到所述明文程序的受保护属性。
内部存储器120具有存储程序的指令存储单元121和存储数据的 数据存储单元125。指令存储单元121还包括受保护属性存储器122、 指令存储器123和指令存储器访问控制单元124。
指令存储器123存储从加密解密单元134获取的明文程序。受保 护属性存储器122存储添加到指令存储器123中存储的明文程序的受 保护属性。指令存储器访问控制单元124控制对指令存储器123的外 部访问。
图4是指令存储器访问控制单元124的访问控制规则。如图4所 示,当访问请求是处理器内核110取指令,并且被请求的程序具有“保 护”的受保护属性时,允许访问。另一方面,如果访问请求不是处理器 内核110取指令,并且被请求的程序具有“保护”的受保护属性,则限 制访问,也就是提供一个出错信息作为输出。当被请求的程序具有“不 保护”的受保护属性,则不管请求类型如何,都允许访问。
这样,通过禁止特定请求类型之外的任何请求类型的访问,可以 防止第三方非法读取明文程序。另外,当限制对具有“保护”的受保护 属性的程序的访问时,可以防止对特定明文程序的非法读取。
图5是通过DMA控制器130将外部存储器200中存储的程序写 入到内部存储器120中的处理的流程图。
首先,用户在外部存储器200中存储要由处理器内核110执行的 程序。这里,假设程序存储在外部存储器200中的地址X到Y。另外, 在程序执行之前,在DMA控制器130的密码ID寄存器132中设置密 码ID(步骤S100、步骤S102)。这里,根据用户通过用户接口300 给出的指令设置密码。
处理器内核110将一个DMA转移请求发送给DMA控制器130 (步骤S104)。这里,DMA转移请求是请求将外部存储器200中地 址X到Y的数据转移到内部存储器中的信息。
DMA控制器130从外部存储器200读出对应于地址X到Y的程 序E2[C(X到Y)](步骤S106)。这里,如果密码ID寄存器132 中设置的值不是“0”(步骤S108中的“否”),则加密解密单元134使 用从密码表133获得的密码对加密程序E2[C(X到Y)]解密,获得 明文程序C(X到Y)(步骤S110)。
当密码ID寄存器132中设置的值不是“0”时,有关程序是加密的。 进行解密以获得明文程序。
另一方面,如果密码ID寄存器132中设置的值是“0”(步骤S108 中的“是”),则处理序列前进到没有解密处理的步骤S112(这在后面 描述)。
当密码ID寄存器132中设置了“0”值时,对应的程序是明文程序, 不需要解密。
然后,根据密码ID寄存器132中设置的值,受保护属性添加单 元135向要存储在内部存储器120中的明文程序添加一个受保护属性 (步骤S112)。具体地,当密码ID寄存器132中设置的值为“0”时, 也就是当程序以明文形式被获取时,受保护属性添加单元135添加表 示“不保护”的受保护属性“0”。
另一方面,当密码ID寄存器132中设置的值不是“0”时,即程序 是以加密形式获得的,受保护属性添加单元135添加表示保护的受保 护属性“1”。
然后,加密解密单元134将所述明文程序发送到内部存储器120 (步骤S114)。另外,受保护属性添加单元135将被添加给所述明文 程序的所述受保护属性发送到内部存储器120(步骤S116)。
内部存储器120在指令存储器123中存储从DMA控制器130发 来的作为解密结果的明文程序C(X到Y)(步骤S120)。另外,内部 存储器120在受保护属性存储器122中存储所述受保护属性(步骤 S122)。当完成明文程序从DMA控制器130到内部存储器120的转 移时,向处理器内核110通知DMA转移的完成(步骤S124)。
然后,处理器内核110通过取指令请求读出明文程序(步骤 S126)。在接收到读出请求时,内部存储器120将被请求的明文程序 输出到处理器内核110(步骤S128)。
通过上述处理,程序被存储到内部存储器120中,处理器内核110 准备好执行该程序。
图6是读出根据上面参照图5描述的处理存储到内部存储器120 中的程序的读出处理的流程图。
内部存储器120的指令存储器访问控制单元124在接收到读出指 令存储器123中存储的程序的请求(步骤S200)时,识别所述读请求 的类型是不是“处理器内核110取指令”。具体地,例如可以根据物理 线路来识别请求类型。当请求类型被识别为“处理器内核110取指令” 时(步骤S202中的“是”),则指令存储器访问控制单元124将指令存 储器123中存储的明文程序输出到处理器内核110(步骤S212)。
当请求类型被识别为不是“处理器内核110取指令”时(步骤S202 中的“否”),则加密解密单元134识别被请求的明文程序的受保护属 性(步骤S204)。
当被请求的明文程序具有表示保护的受保护属性时(步骤S206 中的“是”),则提供出错消息(步骤S210)。另一方面,当被请求的 明文程序具有表示不保护的受保护属性时(步骤S206中的“否”),则 提供该明文程序作为输出(步骤S212)。这样,完成了读取处理。
下面更具体地描述处理器内核110向内部存储器120发送读出请 求作为指令取出的处理。内部存储器120中的指令存储器访问控制单 元124在判断所述请求是处理器内核110的指令取出(“处理器内核 110取指令”)时,按照参照图4描述的规则,将从指令存储器123读 出的明文程序C(X到Y)发送到处理器内核110(步骤S202中的“是”, 步骤S212)。然后,处理器内核110执行所获取的明文程序。
当请求类型不是“处理器内核110取指令”时(步骤S202中的 “否”),并且其受保护属性为表示不保护的“0”时(步骤S206中的 “否”),则将明文程序提供为输出(步骤S212)。
当请求类型不是“处理器内核110取指令”时(步骤S202中的 “否”),并且其受保护属性为表示保护的“1”时(步骤S206中的“是”), 则提供出错消息(步骤S210)。
这样,当请求的类型不是处理器内核110取指令时,内部存储器 120的指令存储器访问控制单元124限制对明文程序的读出,从而可 以防止第三方非法读出明文程序。
这里,以加密形式存储在外部存储器200中的程序更可能是高度 机密的程序。因此,只对所存储的加密程序才添加表示保护的受保护 属性,以限制对这种加密程序的访问。这样,只有预定的程序才会受 到访问限制。
从上面可以看到,当从外部存储器读出多个程序时,可能在存储 设备比如内部存储器120中同时存在应当受到访问限制的受保护程序 以及不应当受到访问限制的不受保护的程序。但是,使用上述的访问 控制方式,可以实现有效的访问控制,使得只有受保护的程序才受到 访问限制。
当受保护的程序和不受保护的程序同时存在时,可能存在空间上 的混合和时间上的混合。时间上的混合是指,受保护的程序在一个特 定时间存储在内部存储器120中,不受保护的程序在另一个时间存储 在内部存储器120中。
空间上的混合是指,受保护程序存储在指令存储器123的一个地 址1000,同时不受保护的程序被存储在指令存储器123的另一个地址 5000。
用户可以通过调试器接口140从调试器500发出读出存储在内部 存储器120中的明文程序的请求,来使用调试器500分析程序。
但是,这样的话,请求类型就不是“处理器内核110取指令”。根 据上面结合图6描述的读出处理,对于具有“保护”的受保护属性的明 文程序,读出受到限制。这样,指令存储器访问控制单元124向调试 器接口140提供出错消息。这样,就能防止通过调试器500读出明文 程序。
另外,第三方可能试图通过DMA控制器130非法读出明文程序。 例如,如果调试器500向DMA控制器130发出从内部存储器120向 外部存储器200进行DMA转移的请求,指定密码ID“0”,就可以实现 这样的非法读取。这里,DMA转移请求是请求将内部存储器120内的 一个区域将内部存储器中存储的程序转移到外部存储器200中的合适 区域。
然后,响应于来自调试器500的DMA转移请求,DMA控制器 130将程序从内部存储器120转移。具体地,DMA控制器130从内部 存储器120的指令存储器123读出程序,将其写入外部存储器200。
但是,在这里,由于请求类型不是“处理器内核110取指令”,根 据上面结合图6描述的读出处理,对于具有“保护”的受保护属性的程 序,读出受到限制。那么,输出出错消息。调试器500不仅能够通过 调试器接口140,而且能够通过DMA控制器130或者BIU150进行访 问。但是,在这种访问的情况,也禁止了第三方非法读出程序。
图7是在下述情况下的写入处理的流程图:明文程序已经被存储 在指令存储器123中,并且向所存储的明文程序添加了“保护”的受保 护属性,并且发出了进一步写明文程序,也就是改写的指令。
在收到写请求时(步骤S300),内部存储器120识别已经在指令 存储器123中的明文程序的受保护属性(步骤S302)。如果明文程序 具有表示保护的受保护属性“1”时(步骤S304中的“是”),则内部存 储器120清除已经存储了程序的指令存储器123的所有内容(步骤 S306),在受保护属性存储器中存储表示“不保护”的受保护属性。然 后,内部存储器120将写请求所指定的程序写入指令存储器123中(步 骤S308)。
另一方面,当所述明文程序具有表示不保护的受保护属性“0”时 (步骤S304中的“否”),则处理过程前进到步骤S308。内部存储器 不清除指令存储器123的内容,将新的明文程序写入指令存储器123 (步骤S308),这样就完成写处理。步骤S308中的写处理类似于结 合图5描述的写处理。
当允许对已经存储的程序的部分改写时,对已经存储了另一个程 序的其它区域的访问也是可能的。因此,就有可能读出这样的程序。 那么,第三方就可以利用这种情况非法地读出明文程序。
但是,如结合图7所描述的,当已经存储的程序具有表示保护的 受保护属性时,在对指令存储器123的程序写入开始之前,内部存储 器120清除已经在指令存储器123中的所有程序。只是在进行了清空 操作之后,才开始新的明文程序的写入。这样,已经存在于指令存储 器123中的程序就不可能被非法读出。
尽管上面结合实施例描述了本发明,但是对于该实施例还可以作 出各种编号和改进。
第一个改进的例子是在指令存储器123中同时存储多个明文程 序,并按程序执行访问限制。图8是根据该第一变型的受保护属性存 储器122的数据结构的示意图。如图8所示,受保护属性存储器122 与用来识别每一个明文程序的程序ID相关联地存储受保护属性。
根据该第一变型,基于受保护属性存储器122中所定义的关联, 对存储明文程序的每一个区域,指令存储器访问控制单元124限制对 指令存储器123的访问。
例如,假定对对应于程序ID“0001”的区域有一个读请求。如图8 所示,程序ID“0001”所标识的明文程序具有“保护”的受保护属性。因 此,指令存储器123限制对程序ID“0001”所标识的明文程序的访问。 指令存储器123不限制对程序ID“0002”标识的受保护程序的访问。
具体地,当收到对程序ID“0001”的读请求时,由于程序ID “0001”标识的明文程序具有“保护”的受保护属性,根据图6所示的读 出处理确定响应,也就是,确定是输出明文程序还是输出出错消息。
另一方面,当收到对程序ID“0002”的读请求时,由于程序 ID“0002”标识的明文程序具有“不保护”的受保护属性,根据图6所示 的读出处理输出明文程序。
当收到对程序ID“0001”的写请求时,由于程序ID“0001”标识的 明文程序具有表示保护的受保护属性,根据图7所示的写入处理,在 对已经存储了明文程序的区域写入新的程序之前,清除已经存储在存 储器中的明文程序。
另一方面,当收到对程序ID“0002”的写请求时,由于程序 ID“0002”标识的明文程序具有表示不保护的受保护属性,根据图7所 示的写入处理,对已经存储了明文程序的区域写入新的程序,不清除 已经存储在其中的明文程序。
这样,即使同时存储有受保护属性表示保护的明文程序和受保护 属性表示不保护的明文程序,也能只针对具有表示保护的受保护属性 的明文程序执行访问限制。这样,禁止第三方非法读出特定的明文程 序。
在该第一变型中,受保护属性存储器122相关联地存储程序ID 和受保护属性。但是,在第二变型中,受保护属性存储器122可以相 关联地存储在指令存储器123中的存储区位置和受保护属性。
图9是根据该第二变型的受保护属性存储器122的数据结构的示 意图。如图9所示,受保护属性存储器122相关联地存储指令存储器 123中的存储区位置以及存储在各存储区位置的明文程序被添加的受 保护属性。在该第二变型中,基于存储区位置和受保护属性之间的关 联,指令存储器访问控制单元124针对存储程序的每一个区控制对指 令存储器123的访问。
例如,假设表示保护的受保护属性与存储区1(其中存储了程序 ID“0001”标识的明文程序)相关,则限制对由程序ID“0001”标识的明 文程序的访问。另外,如果表示不保护的受保护属性与存储区2(其 中存储了程序ID“0002”标识的明文程序)相关联,则允许对由程序 ID“0002”标识的明文程序的访问。
这样,根据该第二变型,即使指令存储器123同时存储多个程序, 也能按存储区禁止第三方非法读出明文程序。
在上述第一变型中,控制对程序的访问。在第三变型中,则控制 对数据的访问。图10是根据第三变型的系统10的总体结构的示意图。 类似于指令存储单元121,数据存储单元125包括受保护属性存储器 126、数据存储器127以及数据存储器访问控制单元128。
这里,受保护属性存储器126的结构和处理过程与受保护属性存 储器122是相同的。另外,数据存储器127的结构和处理过程与指令 存储器123是相同的。再者,数据存储器访问控制单元128的结构与 处理过程与指令存储器访问控制单元124是的。
或者,可以对程序和数据均执行访问控制。因此,访问控制的对 象不受本实施例的限制。
在控制对数据的访问的该第三变型中,在写处理中,如图7所示, 基于数据的受保护属性,判断在进行数据写入之前是否清除已经存储 的数据。在第四变型中,除了受保护属性外,还击于请求发送方的身 份进行所述判断。
图11是根据第四变型的写入处理的流程图。如图11所示,在根 据第四变型的写入处理中,当接收到的写请求的类型是来自处理器内 核的写请求时(步骤S320的“是”),则处理过程前进到步骤S308。 换句话说,当请求类型是来自处理器内核110的写请求时,不进行清 除处理而写入新的明文程序。
当根据请求类型控制访问时,能够对预定的请求类型执行有效的 访问控制,而不用限制其它类型的请求的访问。
在上述第一实施例中,当对于具有“保护”的受保护属性的明文程 序接收到读请求时,执行访问控制以禁止读。在第五变型中,可以以 加密形式向请求发送方提供程序。当以这种方式执行访问控制时,不 以明文形式读出程序,因此禁止了第三方非法读出明文程序。
在该第一实施例中,当在已经存储了明文程序的区域中重写程序 时,根据程序的受保护属性,在重写之前判断是否清除已经存储的程 序。在第六变型中,根据来自用户的指令进行判断。
具体地,在对已经存储的明文程序的访问控制中,在存储了受保 护属性为“保护”的程序的区域中禁止重写,仅当用户通过用户接口300 给出清除已存储的明文程序的指令时,才清除所述明文程序。否则可 以输出出错消息。这样,除非由用户清除程序,否则不允许写入,从 而可以保护明文程序。
下面描述第二实施例的系统10。第二实施例的系统10不同于第 一实施例的系统10的地方在于,第二实施例的系统10控制对处理器 内核110中的寄存器之类的部分的访问。
图12是第二实施例的系统10的总体结构的示意图。第二实施例 的系统10的处理器内核110包括执行单元112、当前受保护属性寄存 器114以及内核访问控制单元116。
执行单元112执行程序。当前受保护属性寄存器114存储正由执 行单元112执行的程序的受保护属性。内核访问控制单元116控制对 正由处理器内核110执行的程序的访问。
图13是第二实施例的系统10中的处理器内核110执行程序的处 理的流程图。下面结合图13描述用户执行程序的处理。这里,直到将 外部存储器200中存储的程序存储到内部存储器120的指令存储器123 中的处理都是与前面结合第一实施例的图5描述的处理相同的(步骤 S100到S124)。
当执行单元112执行存储在指令存储器123中的程序时,处理器 内核110首先发出通过指令取出(取指令)从内部存储器120中读出 程序的请求(步骤S400)。
内部存储器120的指令存储器访问控制单元124识别读取请求的 类型。如果请求的类型是“处理器内核110取指令”(步骤S402中的 “是”),则指令存储器访问控制单元124读出程序(步骤S404)。另 外,指令存储器访问控制单元124从受保护属性存储器122读出被添 加到所述程序的受保护属性(步骤S406)。
然后,指令存储器访问控制单元124将所述程序和所述受保护属 性发送到所述处理器内核110(步骤S408)。随后,处理器内核110 将从内部存储器120获取的程序送往执行单元112(步骤S410)。另外, 从内部存储器120获取的受保护属性被存储到当前受保护属性寄存器 114中(步骤S412)。这里,当在步骤S402中请求类型不是“处理器 内核110取指令”时(步骤S402中的“否”),指令存储器123输出出 错消息(步骤S414)。
这样,执行单元112准备好执行程序,执行单元112开始执行程 序。
对于正由执行单元112执行的程序,根据存储在当前受保护属性 寄存器114中的受保护属性,内核访问控制单元116控制通过调试器 接口140对寄存器中设置的值的访问。
下面结合图4,具体描述对软件运行分析处理的访问控制。内核 访问控制单元116从系统外部接收对正由执行单元112执行的程序被 设置在寄存器中的值的读请求(步骤S420)。然后,内核访问控制单 元116识别存储在当前受保护属性寄存器114中的受保护属性(步骤 S422)。
当当前受保护属性寄存器114存储了表示保护的受保护属性时 (步骤S424中的“是”),则内核访问控制单元116向调试器输出出错 消息(步骤S432)。另一方面,如果当前受保护属性寄存器114存储 了表示不保护的受保护属性(步骤S424中的“否”),则内核访问控制 单元116输出涉及正由执行单元112执行的程序的寄存器中设置的值 (步骤S430)。这样就完成了访问控制处理。
当如上所述调试器接口140向当前受保护属性寄存器114发出读 请求时,内核访问控制单元116根据访问控制的处理向调试器接口140 输出出错消息。这样,就保护了程序不会通过调试器接口140被非法 读取。
应当注意,第二实施例的系统10的没有在上面特别提到的结构 和处理与第一实施例的系统10是相同的。
图15是第二实施例的一个变型的读取处理的流程图。如图15所 示,在根据该变型的读取处理中,当所接收到的读请求的类型不是经 由调试器接口140的访问时(步骤S440中的“否”),则处理过程前进 到步骤S430。换句话说,当请求类型不是经由调试器接口140的访问 时,与执行中的程序有关的寄存器的值被输出。通过上述基于请求类 型的访问控制,能够对特定请求类型进行有效的控制,而不限制其它 类型的请求的访问。
图16是第三实施例的系统10的总体结构的示意图。第三实施例 的系统10的处理器内核110包括流水线(流水线单元)600、“或”(OR) 电路620和内核访问控制单元116。
第三实施例的处理器内核110对流水线的每一个站有一个执行单 元和一个当前受保护属性寄存器。当前受保护属性寄存器611-614分 别存储正由对应的执行单元601-604执行的程序的受保护属性。OR 电路620对每一个当前受保护属性寄存器611-614存储的多个受保护 属性执行“或”操作。
内核访问控制单元116基于每一个当前受保护属性寄存器611- 614中存储的受保护属性控制外部访问。具体地,当存储在每一个当 前受保护属性寄存器611-614中的多个受保护属性中的至少一个指 示“保护”时,所述内核访问控制单元116限制外部访问。
这样,当在流水线中同时执行多个程序,并且至少一个执行中的 程序的受保护属性表示“保护”时,内核访问控制单元116限制外部访 问,从而禁止第三方非法读出也在流水线处理中的明文程序。
第三实施例的系统10的除了上面具体描述之外的结构和处理与 第一实施例的系统10的结构和处理相同。
作为第三实施例的系统10的第一变型,可以按站控制访问。按 站的访问控制的执行可以类似于第一实施例的第一或者第二变型。根 据这样的访问控制,只可以限制对所存储的程序的受保护属性表示“保 护”的站的访问,而不对执行受保护属性表示“不访问”的程序的站进行 访问限制。
在第三实施例中,流水线有四个站。但是,站数不限于上面所描 述的实施例,在第三实施例的第二变型中,站数可以多于或者少于四 个。
下面描述第四实施例的系统10。在第四实施例的系统10中,基 于密码ID控制对指令存储器123的访问。在这方面,第四实施例的系 统10不同于其它实施例中的系统。
图17是第四实施例的系统10的总体结构的示意图。第四实施例 的系统10的DMA控制器130包括密码ID添加单元139,而不是受保 护属性添加单元135和受保护属性确定表136。
密码ID添加单元139将密码ID寄存器132中设置的密码ID添 加到从外部存储器200获取的程序上。密码ID添加单元139在内部存 储器120中与程序相关联地存储所添加的密码ID。这里,密码ID也 是指示受保护属性,也就是“保护”还是“不保护”的信息。具体地,密 码ID“0”对应于表示不保护的受保护属性。不是“0”的密码ID对应于 表示保护的受保护属性。这样,根据密码ID,可以识别受保护属性。
指令存储单元121包括指令存储器123、指令存储器访问控制单 元124、指令密码ID存储器160、状态存储器162和指令存储器初始 化单元164。
指令密码ID存储器160存储被添加到在指令存储器123中存储 的明文程序的密码ID。
状态存储器162存储在指令存储器123中存储的明文程序的状 态。图18是明文程序的状态转换示意图。如图18所示,在处理器100 启动时,也就是在重置时,程序被置于受保护状态。当有特殊指令给 出初始化指令时,程序转换到被初始化的状态。如果对具有密码ID“0” (也就是表示不保护的受保护属性)的程序执行了某些处理而程序处 于被初始化的状态,则程序转换到不受保护状态。另一方面,如果对 具有非0密码ID(也就是表示保护的受保护属性)的程序执行了处理 而程序处于被初始化的状态,则程序转换到受保护状态。
当处理器100被重置而在内部存储器120中存储了受保护程序 时,内部存储器120的状态存储器162存储受保护状态。一旦存储了 该状态,则不能对具有表示保护的受保护属性的程序进行读写,除非 所存储的状态被初始化。这样,就能禁止恶意的第三方非法访问。
不允许从受保护状态直接转换为不受保护状态。因此,也能禁止 恶意第三方部分改写受保护程序从而非法执行写入。另外,也不允许 从不受保护状态直接转换到受保护状态。这样,也禁止了恶意第三方 将受保护程序盖写到一部分不受保护的程序上,从而非法执行该程序。
回到图17,指令存储器初始化单元164响应于来自外部的特殊指 令对指令存储器123初始化。另外,指令存储器初始化单元164将指 令密码ID存储器160中存储的密码ID设置为“0”。另外,指令存储器 初始化单元164将状态存储器162存储的受保护状态改变为被初始化 状态。
图19是指令存储器访问控制单元124对数据读取的访问控制规 则的示意图。如图19所示,当给定“处理器内核110取指令”并且非0 密码ID被添加到被请求的程序时,允许读。这里,程序处于受保护状 态。
另一方面,当读访问请求不是“处理器内核110取指令”,并且非 零密码ID被添加到被请求的程序时,限制读取,并提供出错消息。这 里,程序处于受保护状态。
当密码ID “0”被添加到被请求的程序时,允许读,而不管请求 的类型如何。这里,程序的状态是“被初始化状态”和“不受保护状态” 之一。否则提供出错消息。
这样,在第四实施例的系统10中,可以基于密码ID控制从指令 存储器123读数据。另外,由于可以由密码ID标识受保护属性,类似 于第一实施例的系统10,可以限制对具有表示保护的受保护属性的程 序的访问。换句话说,可以禁止对特定明文程序的非法读取。
另外,使用对特定类型之外的其它类型的请求的访问限制,可以 禁止第三方非法读取明文程序。
图20是指令存储器访问控制单元124中用于数据写入的访问控 制规则的示意图。如图20所示,当程序处于“被初始化状态”并且密码 ID为“0”时,允许写而不管从访问请求发送方获取的密码ID的值为何。 当被请求的程序的密码ID为“0”,并且程序处于不受保护状态时,如 果从访问请求发送方获取的密码ID为“0”,则允许写。当被请求的程 序的密码ID为“0”,并且程序处于不受保护状态时,如果从访问请求 发送方获取的密码ID不为“0”,则限制写,也就是给出出错消息。
当被请求的程序的密码ID不为“0”,并且从访问请求发送方获取 的密码ID为“0”时,提供出错消息。当被请求的程序的密码ID不为“0”, 并且从访问请求发送方获取的密码ID与程序的密码ID的值相同时, 则允许写。当被请求的程序的密码ID不为“0”,并且从访问请求发送 方获取的密码ID与程序的密码ID的值不同时,则给出出错消息。在 其它情况下,给出出错消息。
这样,当访问请求的目标程序的密码ID和从访问请求发送方获 取的密码ID不匹配时,可以限制访问,从而禁止第三方部分地非法改 写或者改变明文程序。另外,可以部分转移程序。另外,利用对受保 护属性表示保护的程序的访问限制,可以防止对特定明文程序的非法 改写和改变。
另外,由于仅当从访问请求发送方获取的密码ID和指令密码存 储器160中存储的密码ID相互匹配并且所添加的密码ID不为“0”时才 允许写,禁止了第三方非法改写和改变明文程序。
图21是通过特殊指令进行的初始化处理的流程图。当用户发送 指令以进行初始化时,处理器内核110向内部存储器120发送初始化 指令存储器的请求(步骤S500)。内部存储器120在接收到指令存储 器初始化请求时,初始化内部存储器120。具体地,内部存储器120 初始化指令存储器123(步骤S502)。另外,内部存储器120将指令密 码ID存储器160中存储的密码ID的值改变为“0”(步骤S504)。另 外,内部存储器120将状态存储器162中存储的状态改变为“被初始化 状态”(步骤S506)。当完成直到步骤S50的处理时,内部存储器120 向处理器内核110发送一个完成通知(步骤S508)。这样,就完成了 初始化处理。
使用该初始化处理,在受保护状态和不受保护状态之一的内部存 储器120可以被转为被初始化状态。在被初始化状态,存储在指令密 码ID存储器160中的密码ID的值是“0”。换句话说,在被初始化状态, 受保护属性表示“保护”。
图22是将外部存储器200中存储的程序通过DMA控制器130 写入内部存储器120中的写入处理的流程图。这里,假设程序存储在 外部存储器200中的地址X到Y。图22中从步骤S100到步骤S110 的处理与第一实施例的系统10中从步骤S100到S110的处理是相同 的。
在第四实施例的系统10中,在解密处理(步骤S110)后,提供 程序和密码ID作为输出(步骤S114和步骤S140),后面是存储程序 的处理(步骤S150)。在其它方面,图22的写入处理与第一实施例 的写入处理相同。
图23是在程序存储处理(步骤S150)中,在内部存储器120中 的详细处理的流程图。在步骤S114和S140中获取明文程序和密码ID 滞后,指令存储器访问控制单元124识别存储在指令密码ID存储器 160中的密码ID(步骤S1502)。另外,指令存储器访问控制单元124 识别在状态存储器162中存储的状态(步骤S1504)以及从访问请求 发送方获取的密码ID(步骤S1506)。
然后,仅当根据图20的规则允许写时,指令存储器访问控制单 元124在指令存储器123中存储程序(步骤S1512)。另外,密码ID 被存储在指令密码ID存储器160中(步骤S1514)。
具体地,在以下情况下存储所述程序:当指令密码ID存储器160 中的密码ID为“0”且状态为被初始化状态时(步骤S1508中的“是”和 步骤S1510中的“是”);当指令密码ID存储器160中的密码ID为“0” 且状态为不受保护状态,且从访问请求发送方获取的密码ID为“0”时 (步骤S1508中的“是”,步骤S1510中的“否”,步骤S1516中的“是”); 或者当指令密码ID存储器160中的密码ID不为“0”,从访问请求发送 方获取的密码ID为“0”且所获取的密码ID为与存储在指令密码ID 存储器160中的密码ID为相同值时(步骤S1508中的“否”,步骤S1520 中的“否”,步骤S1522中的“是”)。
否则,也就是在下述情况下,提供出错消息作为输出:当指令密 码ID存储器160中的密码ID为“0”,状态为不受保护状态,且从访问 请求发送方获取的密码ID不为“0”时(步骤S1508中的“是”,步骤 S1510中的“否”,以及步骤S1516中的“否”);当指令密码ID存储 器160中的密码ID不为“0”,且从访问请求发送方获取的密码ID不为 “0”时(步骤S1508中的“否”,步骤S1520中的“是);或者当指令密 码ID存储器160中的密码ID不为“0”,从访问请求发送方获取的密码 ID不为“0”,且所获取的密码ID为与存储在指令密码ID存储器160 中的密码ID为不同值时(步骤S1508中的“否”,步骤S1520中的“否”, 步骤S1522中的“否”)。
图24是读出存储在内部存储器120中的程序的读出处理的流程 图。当接收到对明文程序的读请求时(步骤S200),识别指令密码 ID存储器160中的密码ID和程序的状态(步骤S220)。然后,仅当 根据参照图19描述的规则允许读时,才读出程序(步骤S226)。进 一步,读出密码ID和状态(步骤S228)。
具体地,当被识别的ID也就是指令密码ID存储器160中的密码 ID为“0”,且状态为被初始化状态或者不受保护状态时(步骤S222的 “是”,步骤S224的“是”),指令存储器访问控制单元124输出指令存 储器123中存储的明文程序(步骤S226)。进一步,指令存储器访问 控制单元124输出密码ID(步骤S228)。
另外,当指令密码ID存储器160中的密码ID不为“0”,状态为 受保护状态,请求类型是“处理器内核110取指令”时(步骤S222的 “否”,步骤S240的“是”,步骤S242的“是”),指令存储器访问控制 单元124输出明文程序和密码ID。
对于与上面不同的组合,提供出错消息作为输出。例如,在下述 情况下提供出错消息作为输出(步骤S230,步骤S244):当指令密码 ID存储器160中的密码ID为“0”,且状态为受保护状态时(步骤S222 的“是”,步骤S224的“否”);当指令密码ID存储器160中的密码ID 不为“0”,状态为不是受保护状态时(步骤S222的“否”,步骤S240 的“否”);当指令密码ID存储器160中的密码ID不为“0”,状态不是 受保护状态,请求类型不是“处理器内核110取指令”时(步骤S222的 “否”,步骤S240的“是”,步骤S242的“否”)。
在第四实施例的系统10中,由于可以基于密码ID识别受保护属 性,类似于其它实施例的系统10,可以基于受保护属性和请求类型来 限制程序读取。这样,就禁止了第三方进行非法访问。
第四实施例的系统10的没有在上面具体描述的结构和处理与其 它实施例的系统10的结构和处理相同。
另外,尽管在第四实施例的系统10中将密码ID作为标识受保护 属性的信息,但是对于该目的可以使用任何其它信息,只要该信息能 够识别受保护属性和程序。例如,可以使用密码的值。
下面描述第五实施例的系统10。第五实施例的系统10限制对处 理器内核110的调试中断,以及从处理器内核110的跟踪信息输出。 在这方面,第五实施例的系统不同于其它实施例的系统。
图25是第五实施例的系统10的总体结构的示意图。第五实施例 的系统10包括流水线600、调试中断控制单元662以及跟踪信息输出 控制单元664。
处理器(CPU)内核110包括分别用于流水线的各站641-645 的密码ID寄存器651-655。每一个密码ID寄存器651-655存储在 各站651-655中的相对应的站执行的指令使用的密码ID。
调试中断控制单元662基于每一个密码ID寄存器651-655存储 的密码ID限制来自外部的调试中断。第五实施例的调试中断控制单元 662对应于权利要求中所记载的调试请求获取单元和调制中断控制单 元。跟踪信息输出控制单元664基于执行单元643的密码ID寄存器 653中存储的密码ID,限制向调试器接口140的跟踪信息输出。第五 实施例的执行单元对应于权利要求中记载的执行单元。
调试器接口140连接到系统10外部的调试器500,并对调试器 500对处理器内核110、内部存储器120和DMA控制器130等的请求 分类。另外,调试器接口140在从各单元收到执行结果以及响应于请 求从各单元收到跟踪信息等时,将执行结果发回调试器500。
图26是第五实施例的系统10的处理器内核110执行程序的处理 的流程图。下面结合图26描述用户执行程序的处理。当要执行存储在 指令存储器123中的程序时,流水线600中的取指令单元641发出对 内部存储器120中的程序的读请求,作为指令取出(步骤S600)。
内部存储器120中的指令存储器访问控制单元124在接收到对程 序的读请求时,识别读请求的类型。当读请求是“处理器内核110取指 令”时(步骤S602中的“是”),指令存储器访问控制单元124读出程 序(步骤S604)。进一步,指令存储器访问控制单元124从指令密码 ID存储器160读出被添加到所述程序的密码ID(步骤S606)。
随后,指令存储器访问控制单元124将所述程序和密码ID发给 流水线600中的取指令单元641(步骤S608)。当请求类型不是“处理 器内核110取指令”时(步骤S602中的“否”),提供出错消息作为输 出(步骤S610)。
取指令单元641在从内部存储器120收到所述程序和密码ID时, 将所获取的密码ID存储到密码ID寄存器651中(步骤S612)。取指 令单元641将所获取的程序和密码ID寄存器651中的值发给解码单元 642(步骤S614)。
解码单元642在密码ID寄存器652中存储从取指令单元641获 取的密码ID(步骤S616)。另外,在解码(步骤S618)之后,解码 单元642将解码结果和密码ID寄存器652中的值发给执行单元643 (步骤S620)。
执行单元643在密码ID寄存器653中存储从解码单元642获取 的密码ID(步骤S622)。执行单元643基于解码结果执行指令(步骤 S624),之后将执行结果和密码ID寄存器653中的值发给存储器访 问单元644(步骤S626)。
存储器访问单元644在密码ID寄存器654中存储从执行单元643 获取的密码ID(步骤S628)。根据该结果,存储器访问单元644访问 内部存储器120(步骤S630),之后将结果和存储器访问单元644中 的值发给回写单元645(步骤S632)。
回写单元645在密码ID寄存器655中存储从存储器访问单元644 获取的密码ID(步骤S634)。回写单元645根据存储器访问的结果执 行对寄存器的写操作(步骤S636)。这样就完成了程序的执行。
图27是对处理器内核110进行调试中断的调试器中断处理的流 程图。调试中断控制单元662在接收到调试器中断请求(来自调试器 500的中断请求)(步骤S700)后,识别流水线600中各站的密码ID 寄存器651-655中存储的密码ID(步骤S702)。当各站中的所有密 码ID都是“0”时,换句话说,当所有的站都具有不保护的受保护属性 时(步骤S704中的“是”),该调试中断请求被接受,系统切换到调 试模式(步骤S706)。这样,处理器内核110准备好在调试模式下工 作,从而可以用设置的断点按步执行和调试。
另一方面,当在步骤S702识别的各站的密码ID中的至少一个不 是“0”时,换句话说,当至少一个站具有“保护”的受保护属性时(步骤 S704中的“否”),调试器中断请求被忽略,提供出错消息作为输出(步 骤S708)。这样就完成了调试器中断处理。
这样,仅当所有的站都具有不保护的受保护属性时,才允许调试 器中断,从而禁止了第三方进行非法访问。
图28是处理器内核110输出跟踪信息的跟踪信息输出处理的流 程图。跟踪信息输出控制单元664在从执行单元643获取了跟踪信息 (步骤S720)之后,识别密码ID寄存器653中存储的密码ID(步骤 S722)。当识别的密码ID为“0”,也就是当识别的密码ID具有“不保 护”的受保护属性时(步骤S724中的“是”),则跟踪信息输出控制单 元664输出跟踪信息(步骤S726)。
另一方面,当识别的密码ID不为“0”,也就是当识别的密码ID 具有“保护”的受保护属性时(步骤S724中的“否”),则跟踪信息的输 出被中止,代之以输出假信息(步骤S728)。这样就完成了跟踪信息 输出处理。这样,就能够控制跟踪信息的输出。或者,可以提供出错 消息作为输出。
这样,当执行单元643的密码ID寄存器中存储的密码ID标识的 受保护属性表示“保护”时,可以限制跟踪信息的输出,从而禁止第三 方非法访问。
第五实施例的系统10的在上面没有具体描述的结构和处理与其 它实施例的系统10的结构和处理相同。
下面描述第六实施例的系统10。第六实施例的系统10限制对数 据存储器的访问。在这方面,第六实施例的系统10不同于第四实施例 的系统10。
图29是第六实施例的系统10的总体结构的示意图。第六实施例 的系统10的数据存储单元125包括数据存储器127、数据密码ID存 储器172、状态存储器174、数据存储器访问控制单元128以及对应于 数据存储器127的数据存储器初始化单元176。
数据存储器127存储从加密解密单元134获取的明文数据或者例 如从处理器内核110或者调试器500发送来的明文数据。数据密码ID 存储器172存储被添加到在数据存储器127中存储的明文数据的密码 ID。数据存储器访问控制单元128控制对数据存储器127的外部访问。 类似于第四实施例的状态存储器162,状态存储器174存储数据的状 态。
数据存储器初始化单元176响应于来自外部的特殊指令初始化数 据存储器127,并对数据密码ID存储器172中存储的密码ID置0。数 据存储器初始化单元176还将状态存储器174存储的受保护状态改变 为被初始化状态。
图30是用于在数据存储器访问控制单元128中读数据的访问控 制规则的示意图。如图30所示,当被请求的程序的状态为被初始化状 态或者不受保护状态,密码ID的值为“0”时,允许读取,而不管添加 的密码ID的值。
当被请求的程序的密码ID不是“0”,且该程序的状态为受保护状 态,且所添加的密码ID和从访问请求发送方获取的密码ID的值相同 时,允许读取。
当被请求的程序的密码ID不是“0”,且所添加的密码ID和从访 问请求发送方获取的密码ID的值不同时,输出出错消息。对于除上述 以外的其它组合,提供出错消息作为输出。
这样,由于限制了对被添加了表示保护的密码ID的数据的访问, 禁止了从特定明文数据进行非法读出。另外,由于限制了对密码ID不 匹配的数据的访问,禁止了第三方非法读出明文数据。
图31是数据存储器访问控制单元128中用于数据写入的访问控 制规则的示意图。如图31所示,当数据处于被初始化状态且密码ID 为“0”时,允许写入而不管所添加的密码ID的值。当被请求的数据的 密码ID为“0”且被请求的数据处于不受保护状态时,且从访问请求发 送方获取的密码ID为“0”时,允许写入。
当被请求的数据的密码ID不是“0”且被请求的数据在受保护状态 时,且所添加的密码ID和从访问请求发送方获取的密码ID的值相同 时,允许写入。当被请求的数据的密码ID不是“0”且所添加的密码ID 和从访问请求发送方获取的密码ID的值不同时,提供出错消息作为输 出。对于与上述不同的其它组合,提供出错消息作为输出。
由于在被添加到被请求的数据的密码ID不与所发送的密码ID匹 配时限制访问,禁止了第三方部分改写或者改变明文数据。另外,数 据可能被部分转移。另外,由于限制了对密码ID表示保护的数据的访 问,可以防止对特定明文数据的非法改写或者改变。
图32是将外部存储器200中存储的数据通过DMA控制器130 写入内部存储器120中的写入处理的流程图。这里,数据被存储在外 部存储器200中的地址P到Q。
在向DMA控制器130发送了设置密码ID的请求之后,处理器 内核110向DMA控制器130发送DMA转移请求(步骤S160)。这 里,DMA转移请求是请求将外部存储器200上地址P到Q的数据转 移到内部存储器120的信息。
DMA控制器130从外部存储器200读出对应于地址P到Q的数 据E3[C(P到Q)](步骤S162)。这里,当在密码ID寄存器132中设 置的值不是“0”时(步骤S108中的“否”),加密解密单元134使用从 密码表133获取的密码对加密数据E3[C(P到Q)]解密,以获取明文数 据C(P到Q)(步骤S110)。
然后,提供所述数据和密码ID作为输出(步骤S164,步骤S166), 接下来是数据存储处理(步骤S170)。当处理器内核110通过取指令 请求读出明文数据时(步骤S126),内部存储器120将被请求的明文 数据输出到处理器内核110(步骤S172)。写入处理的没有在上面具体 描述的处理与第一实施例的写入处理相同。
图33是在数据存储处理(步骤S170)中由内部存储器120进行 的详细处理的流程图。在步骤S164和步骤S166中获取明文数据和密 码ID之后,数据存储器访问控制单元128识别存储在数据密码ID存 储器172中的密码ID(步骤S1702)、存储在状态存储器162中的状 态(步骤S1704)以及从访问请求发送方获取的密码ID(步骤S1706)。
然后,仅当根据图31的规则允许写入时,才将数据存储到数据 存储器128中(步骤S1712)。进一步,将密码ID存储到密码ID存 储器172中(步骤S1714)。
具体地,在下述情况下存储数据:当数据密码ID存储器172的 密码ID为“0”,且数据处于被初始化状态时(步骤S1708中的“是”, 步骤S1710中的“是”);当数据密码ID存储器172的密码ID为“0”, 数据处于不受保护状态,且从访问请求发送方获取的密码ID是“0”时 (步骤S1708中的“是”,步骤S1710中的“否”,步骤S1716中的是); 或者当数据密码ID存储器172的密码ID不为“0”,且从访问请求发送 方获取的密码ID与数据密码ID存储器172的密码ID是相同值时(步 骤S1708中的“否”,步骤S1720中“是”)。
否则,也就是在下述情况下,提供出错消息作为输出:当数据密 码ID存储器172的密码ID为“0”,数据处于不受保护状态,且从访问 请求发送方获取的密码ID不是“0”时(步骤S1708中的“是”,步骤 S1710中的“否”,步骤S1716中的“否”);或者当数据密码ID存储 器172的密码ID不为“0”,且所获取的密码ID与数据密码ID存储器 172中的密码ID是不同值时(步骤S1708中的“否”,步骤S1720中 “否”)。
这里,可以通过处理器内核110对软件中使用的数据提出改写请 求。为此目的,流水线的存储器访问单元向内部存储器120发送对明 文数据的写请求。存储器访问单元也发送在密码ID寄存器中存储的密 码ID。
在第六实施例的系统10中,可以基于从存储器访问单元获取的 密码ID和数据密码ID存储器172的密码ID的值,控制数据访问。 换句话说,与具有相同的值的密码ID相关联的程序可以作为数据被存 储在数据存储器178中。另一方面,限制与不同值的密码ID相关联的 程序的访问。换句话说,当用户试图在数据存储器127中存储具有不 同密码ID的程序时,返回出错消息。
这样,可以禁止试图使用存储指令等访问数据存储器的第三方的 非法数据写入。
另外,可以从调试器500通过调试器接口140对存储在内部存储 器120中的明文数据提出写请求,以此执行对软件的改变。
但是,在这种情况下,存储在数据密码ID存储器172中的密码 ID不是表示不保护的“0”,不与从调试器500发来的密码ID匹配。 因此,根据所述数据存储处理,也就是结合图33描述的数据写入处理, 限制了对受保护属性表示保护的数据存储器127的写入。这样,数据 存储器访问控制单元128能够防止通过调试器接口140对明文数据的 改写。
再者,第三方可能通过DMA控制器130非法写入明文数据。例 如,调试器500可以通过指定密码ID“0”向DMA控制器130发出从 外部存储器200到内部存储器120的DMA转移请求。这样的DMA转 移请求是请求将存储在外部存储器200中适当区域中的数据转移到内 部存储器120中的某个区域。
这里,DMA控制器130响应于来自调试器500的DMA转移请 求将数据转移到内部存储器120中。具体地,DMA控制器130从外部 存储器200读出数据,将其写入内部存储器120中的数据存储器127。
但是,在这种情况下,存储在数据密码ID存储器172中的密码 ID不是表示“不保护”的“0”,不与从DMA控制器130通过调试器500 发出的密码ID“0”匹配。因此,根据结合图33描述的写入处理,限制 了对密码ID表示保护的数据的改写。
这样,调试器500不仅能够通过调试器接口而且能够通过DMA 控制器130或者BIU150进行访问。在这些情况下,一样,也可以禁 止第三方的非法改写。
图34是读出存储在内部存储器120中的数据的读出处理的流程 图。内部存储器120的数据存储器访问控制单元128在获取用于读出 数据存储器中存储的数据的读请求时(步骤S250),识别数据密码ID 存储器172中存储的作为对应于被请求的密码ID的密码ID,并识别 状态存储器174中存储的作为对应状态的状态(步骤S252)。
当所识别的ID,也就是数据密码ID存储器172中的密码ID是 “0”,并且所述状态是被初始化状态或者不受保护状态时(步骤S254 的“是”,步骤S256的“是”),则数据存储器访问控制单元128输出所 述密码ID和存储在数据存储器127中的明文数据(步骤S258,步骤 S260)。
当数据密码ID存储器172中的密码ID不是“0”,所述状态是受 保护状态,且数据密码ID存储器172的密码ID与从访问请求发送方 获取的密码ID匹配时(步骤S254的“否”,步骤S270的“是”,步骤 S272的“是”),则数据存储器访问控制单元128输出所述明文数据 和存储在所述数据存储器127中的密码ID(步骤S258,步骤S260)。
对于不同于上面所述的组合,提供出错消息作为输出。例如,在 下述情况下提供出错消息作为输出(步骤S262,步骤S274):当指令 密码ID存储器160中的密码ID是“0”,并且所述状态是受保护状态时 (步骤S254的“是”,步骤S256的“否”);当指令密码ID存储器160 中的密码ID不是“0”,并且所述状态不是受保护状态时(步骤S254 的“否”,步骤S270的“否”);当指令密码ID存储器160中的密码ID 不是“0”,并且所述状态不是受保护状态,并且所述请求不是“处理器 内核110取指令”时(步骤S254的“否”,步骤S270的“是”,步骤S272 中的“否”)时。
在第六实施例的系统10中,可以根据密码ID识别受保护属性。 这样,类似于其它实施例的系统10,可以基于受保护属性和请求类型 限制数据读取,从而可以防止第三方的非法访问。
第六实施例的系统10的未在上面具体描述的结构和处理与第四 实施例的系统10的结构和处理相同。
本领域的普通技术人员容易发现本发明的其它优点和进一步的 改进。因此,本发明的保护范围应当较宽而不限于这里所图示和描述 的具体细节和代表性实施例。因此,在所附权利要求及其等效方案所 限定的一般发明构思的实质范围内,可以作出各种修改。
对相关申请的引用
本申请基于下述在先专利申请并要求其优先权:2004年6月24 日递交的日本专利申请No.2004186910,2004年8月3日递交的日本 专利申请No.2004-226886,以及2005年4月1日递交的日本专利申 请No.2001-345678。这些申请的全部内容通过引用全部被结合在本申 请中。
高效检索全球专利

IPRDB是专利检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,专利查询、专利分析

电话:13651749426

侵权分析

IPRDB的侵权分析产品是IPRDB结合多位一线专利维权律师和专利侵权分析师的智慧,开发出来的一款特色产品,也是市面上唯一一款帮助企业研发人员、科研工作者、专利律师、专利分析师快速定位侵权分析的产品,极大的减少了用户重复工作量,提升工作效率,降低无效或侵权分析的准入门槛。

立即试用