数据处理系统中诊断功能的选择性禁用的制作方法

文档序号:6461253阅读:132来源:国知局
专利名称:数据处理系统中诊断功能的选择性禁用的制作方法
技术领域
本发明涉及数据处理系统领域。更具体而言,本发明涉及数据处理 系统内诊断功能的选择性禁用。
背景技术
众所周知,为数据处理系统提供诊断机制,例如指令断点机制、数 据监测点机制、跟踪机制、代码成型机制等,以便帮助理解数据处理系 统的运行,尤其是在硬件和软件开发和调试期间帮助理解数据处理系统 的运行。这种机制允许在不同执行点识别正被执行的数据处理指令以及 正被操作的数据值,以便获得对系统行为的了解。在调试系统和调谐它 们的性能的能力中这可能是非常重要的。数据处理系统中的 一 个独立的趋势是在处理安全数据时使用这种 系统。例如,常常需要用数字版权管理系统来控制对受版权保护的材料 的访问。这种系统可以使用密钥,密钥是高灵敏度的数据。需要对这样 的密钥仔细保护。尽管可以将采用这种敏感信息的系统设计成在正常使 用期间是安全的,但会发生与内置于这种系统中的诊断机制相关的问 题。充分多用途且功能强大的诊断机制通常具有几乎不受约束地在整个 系统中检^T数据值和其他状态信息的数据的能力。不过,例如,如果某 人以未经授权的方式利用诊断机制从系统读取安全密钥时,这可能代表 一种重大安全威力办。从US-A-5621886可知,在扭J亍操作系统例程和非操作系统例程期 间,为调试事件提供独立启用。于是,可以为系统提供第一模式和第二 模式,在第一模式中工作时,处理器允许访问在第二模式下不可用的其 他资源。已知US-A-2004/0260910提供了一种控制可在至少两个域中工作的 处理器的监测功能的方法,每个域包括至少一种模式。如果其相关控制 值表明在该域内允许该监测功能,那么可以将控制值设置成允许在第一 域中发起监测功能。该第一域可以是安全域,该监测功能可以是调试或 跟踪功能。该系统的域为运行状态,而不是存储地址空间的区域。上述方法的问题在于可以启用或禁用诊断操作的方式缺少灵活性。 这与希望提供对整个系统的灵活诊断访问以使调试和分析简单以及希 望保护敏感信息(例如密钥和程序代码属性)二者之间的分歧有关。发明内容从一个方面看,本发明提供了用于处理数据的设备,所述设备包括可以用存储地址寻址的存储器,所述存储地址具有存储地址空间之 内的值,所述存储地址空间具有多个域,域包括如指定数据的可编程域 定义的一组存储地址;数据处理电路,响应于从所述存储地址空间内的存储地址获取的程 序指令以执行数据处理操作;诊断电路,响应于所述设备内的一个或多个信号,执行生成诊断数 据的诊断操作;诊断功能控制电路,响应于正被执行的程序指令的存储地址位于所 述多个域中的哪 一 个域的判断来选性地禁用所述诊断电路的至少一 些诊断功能。该技术使用指定数据的可编程域来定义对应于存储地址空间的部 分的域,然后根据正被执行的程序指令的存储地址位于哪个域中控制诊 断电路的运行,以便选择性地禁用至少一些诊断功能。域的可编程属性可以运行在相同模式下且不能从模式区分开,但可以将其设置成使它们 的代码存储在不同的存储器域中,从而能够针对这些应用程序之一禁用 诊断能力而针对另一个启用诊断能力。该技术很适于用在这样的系统中,这种系统包括存储器管理电路, 该存储器管理电路响应于定义存储地址空间内的存储地址页面属性的 存储页面表数据,因为这样指定数据的可编程域就能够是存储页面表数 据的部分且重复使用已经为存储页面表数据提供和开发的很多机制和 技术。除了指定数据的可编程域自身能够变型以适应特定系统和条件的 要求之外,当诊断功能控制电路响应于与至少一个域相关的诊断能力定 义数据并在正被执行的程序指令的存储地址位于该域中时指定启用哪 些诊断功能时,该技术的灵活性得到进一步增强。通过这种方式,既可以配置域自身,也可以配置用于依据正被执行的指令的存储地址来细调 系统诊断功能(能力)的这些域内的能力。诊断能力定义数据的一种具体的有用形式指定是否允许侵入式诊 断功能和/或是否允许非侵入式诊断功能。侵入式诊断功能是那些能够改 变在其上执行它们的系统的状态的诊断功能,而非侵入式诊断功能不能 改变系统状态。使用。本技术对其有用的电路范例包括跟踪电路、代码概况生成电路、 指令断点电路和数据监测点电路。对于指令断点电路和数据监测点电路 而言,通常用这些电路触发诊断事件,这些诊断事件可以是如下事件之一中止处理操作以允许由外部装置进行调试和/或触发调试异常以在设 备自身上触发调试异常处理代码的执行。从另一个方面看,本发明提供了用于处理数据的设备,所述设备包括可以用存储地址寻址的存储装置,所述存储地址具有存储地址空间 之内的值,所述存储地址空间具有多个域,域包括如指定数据的可编程 域定义的一组存储地址;数据处理装置,用于响应于从所述存储地址空间内的存储地址获取 的程序指令执行数据处理操作;诊断装置,用于响应于所述设备中的一个或多个信号执行生成诊断 数据的诊断操作;诊断功能控制装置,响应于正被执行的程序指令的存储地址位于所 些诊断功能。从另一个方面看,本发明提供了一种处理数据的方法,所述方法包 括如下步骤在可以用存储地址寻址的存储器中存储数据,所述存储地址具有存 储地址空间之内的值,所述存储地址空间具有多个域,域包括如指定数 据的可编程域定义的 一组存储地址;响应于从所述存储地址空间内的存储地址获取的程序指令用数据 处理电路执行数据处理操作;响应于所述设备中的 一个或多个信号,用诊断电i 各执行诊断操作以生成诊断数据;响应于正被执行的程序指令的存储地址位于所述多个域中的哪一 个域的判断,用诊断功能控制电路来选择性地禁用所述诊断电路的至少 一些诊断功能。结合附图阅读例示实施例的以下详细说明将会明了本发明的以上 和其他目的、特^正和优点。


图1A和1B示意性地示出了包括被选择性启用和禁用的诊断电路的 数据处理系统的两个示例实施例;图2示意性地示出了将存储地址空间分成多个不同的域;图3为示意图,示意性地示出了可以如何组合页面表数据和诊断能 力定义数据以选择性启用和禁用诊断电路;以及图4为流程图,示意性地示出了在选择性启用和禁用诊断电路时可 以使用的控制流程。具体实;^方式图1A示出了包括耦合到存储器6的集成电路4的数据处理设备2。 集成电路4包括处理器内核8,用于执行从存储器6获取的程序指令, 以对数据值进行数据处理操作,程序指令也可以从存储器6获取并回存 到存储器6中。存储器管理单元10用于控制处理器内核8对存储器6 的存储地址空间内的不同区域的访问。存储器管理单元10利用存储在 存储器6内的页面表数据12来建立与存储地址空间相关的许可及其他 特征(例如仅特许方式的访问、可高速緩存性、只读状态等)。通过这 种方式使用存储器管理单元IO和页面表数据12将是本技术领域的技术 人员所熟悉的,在此不再赘述。或者可以将页面表数据12作为集成电 路4的 一部分提供。数据处理设备2还可以具有超过一个存储器(例如, 独立的指令和数据存储器(Havard)、多个均具有其自己的地址空间的 数据存储器(例如DSP))或其他布置。这些存储器中任一个都可以是 芯片上或芯片外的。页面表数据可以存储在任何存储器中。集成电路4中还提供有各种形式的诊断电路。在这一例子中,嵌入 的跟踪单元14提供了处理器内核8进行数据处理操作跟踪的能力。这种跟踪单元的范例可以是由英才各兰剑桥的ARM Limited设计的ETM单 元。还提供了嵌入的诊断单元16,其提供指令断点功能和数据监测点功 能。可以在该诊断单元16中写入数据以为开发人员指定感兴趣的事件, 使得在发生这种事件的时候就触发诊断操作。对于指令断点而言,该事 件可以是执行地址与预定特征匹配的指令。对于数据监测点而言,该事 件可以是访问特征匹配预定特征的数据值。所触发的诊断操作可以采取 各种不同形式,但典型的形式可以是中止处理操作使得外部装置能够检 查集成电路4的状态,以实现调试目的,或者是触发调试异常,以为自 身在装置上启动执行调试异常处理代理。诊断单元16可以具有例如英以代码概况生成器18的形式提供其他诊断电路,其响应于纟皮执行 的程序指令,产生表征这些程序指令的概况信息。例如,可能希望知道 执行特定指令或执行代码特定区域的次数,以便精细地调谐数据处理系 统的性能。在集成电路4之内还提供了控制电路20。该诊断控制电路20响应 于来自处理器内核8表示当前正执行的程序指令的域的信号,产生传输 到各诊断电路14、 16、 18的控制信号,以选择性地启用或禁用这些元 件的功能。于是,例如,在执行一个程序,且对该程序而言指定数据指 标的可编程域在特定域内且已知该程序无法访问安全信息时,那么就可 以启用所有诊断电路14、 16、 18的功能,从而可以以完全灵活性分析 这种程序代码中的问题。相反,可以从已知其中存在安全信息且希望禁 用诊断电路14、 16、 18的一些或所有功能的不同域中执行不同的应用 程序。在这种情况下,可能希望禁用跟踪单元14和诊断单元16,而代 码概况生成器18可以保持活动,因为认为它不能(例如)暴露安全密 钥的值。在该例中指示数据的域形成存储器6中存储的页面表数据12的一 部分。出于前述目的经由存储器管理单元10访问该页面表数据12。在 诸如ARM600处理器和更晚处理器的系统内,已知在指定存储地址空间 之内的域(即一组存储地址)的页面表中提供数据。在其公知的用法中, 该域信息用于通过否决设置于页面表数据中的全局访问权来控制差异 程序线程的存储器访问权。该技术将指定数据的域的使用扩展到在数据 处理系统2之内控制诊断电路14、 16、 18的选择性禁用。MMU IO从存储器6读取的页面表数据12已经被集成到处理器内 核8的操作中以控制其存储器访问操作,例如加强对某些存储地址的只 读策略。通常将针对正被访问的存储区的页面表数据高速緩存在集成电 路4之内,以便能更迅速地使用。作为该信息的一部分,也可用域识别 信息。于是,将从页面表数据12导出的域指定信号从处理器内核8传 送到诊断控制电路20。诊断控制电路20然后选择性地启用或禁用依赖 其的各诊断电3各14、 16、 18。图1B示出了另一示例实施例,其与图1A不同之处在于,诊断控制 电路20生成信号,将信号传送到处理器内核8以选择性地禁用诊断电 路14、 16、 18的功能。图2示意性地示出了将存储地址空间分成多个不同的域。如图所示, 这些域大小可以不同,可以是连续或不连续的。指定数据的域的可编程 属性使得形成域的方式能有相当大的灵活性。如果需要,可以将域指定 到小至单个页面项提供的粒度的水平。不过,更一般的情况是以降低的 粒度水平在比单个页面项更高的水平上定义域。必须要或值得在更精细 的粒度水平上定义域将是不正常的,并且相应地,与将数据指定为每个 页面项的 一部分的存储域相关的额外开销将不会被证明是正确的。图3示意性地示出了用于生成诊断电路使能信号22的布置,该使 能信号22用于控制对诊断电路14、 16、 18的功能的选择性禁用。要认 识到,该电路的部分24将通常提供在诊断控制电路20之内,而供应正 在执行的程序指令的存储地址的程序计数寄存器26和一些其他元件常 规上将位于处理器内核8的其他部分中。将来自程序计数寄存器26内 部的正执行的程序指令的存储地址的最高有效部分28与转换表基址寄 存器值结合使用来编入页面表数据12中,以恢复页面项30。该页面项 30为包括1级描述符的常规ARM页面项,该描述符包括指定数据的可 编程域32。可以用常规方式在页面表数据12之内在1级描述符30下方 提供更低级别的描述符,其提供用于定义存储器属性的更细的粒度水 平。指定数据的域32指明了当前正被执行的程序指令的域并被作为控 制输入提供给复用器34。依赖于指定数据的域32的复用器34从控制寄 存器内选择诊断能力定义数据值36中不同的一个。例如,这些诊断能 力定义数据值36的每一个可以是两比特值, 一个比特指明是否允许侵入式调试, 一个比特指明在该域之内是否允许非侵入式调试。代码概况生成器18和跟踪单元14提供非侵入式调试,而嵌入的诊断单元16被 归入侵入式一类,因为它具有停止处理器或触发调试异常的能力。复用 器34选择针对当前有效域的诊断能力定义数据并输出到多个逻辑电路 38,为诊断电路14、 16、 18的每个提供一个逻辑电路38 (在一些实施 例中,这些i貪断电^各14、 16、 18也可以共享逻辑电^各)。然后用这些 逻辑电路依据当前输出的诊断能力定义数据值36生成用于各诊断电路 14、 16、 18的适当的调试控制信号22。这些是图1所示的从诊断控制 电路20向每个诊断电路14、 16、 18供应的诊断控制信号。还可以将控 制信号传送到处理器内核8以选择性地禁用相应的诊断功能。图4为示意性示出了诊断操作控制的流程图。将会认识到,图4的 流程图将控制示为顺序进程,而本技术领域的技术人员熟知的是,可以制。也可以将结果或部分结果进行高速緩存。在图4的例示中,处理始 于步骤40,判断从哪个当前域执行程序指令。这可以从页面表数据12 判定并由指定数据的域32来指定。然后步骤42从控制寄存器内查找用 于当前域的诊断能力定义数据36。例如,该寄存器可以是只有在安全模 式下工作时才可写入的可编程配置协处理器寄存器(CP15)。步骤44 判断是否为当前域启用了侵入式诊断。如果启用了侵入式诊断,那么步 骤46为相关诊断电路16生成适当的使能信号。否则跳过步骤46。步骤 48判断是否为当前域启用了非侵入式诊断。如杲为当前域启用了非侵入 式操作,那么步骤50为适当的非侵入式诊断电路14、 16、 18生成使能 信号。应当理解,可以认为诊断单元16同时提供侵入式和非侵入式诊 断,因为虽然其可以改变系统状态,但诊断单元16不必改变系统状态。 如果未启用非侵入式诊断,那么跳过步骤50。虽然这里参考附图详细描述了本发明的例示性实施例,应当理解本 发明不限于这些精确实施例,本领域技术人员不脱离如所附权利要求定 义的发明范围和精神可以在其中做出各种变化和变型。
权利要求
1.一种用于处理数据的设备,所述设备包括可以用存储地址寻址的存储器,所述存储地址具有存储地址空间之内的值,所述存储地址空间具有多个域,域包括如指定数据的可编程域定义的一组存储地址;数据处理电路,响应于从所述存储地址空间内的存储地址获取的程序指令以执行数据处理操作;诊断电路,响应于所述设备内的一个或多个信号,执行生成诊断数据的诊断操作;诊断功能控制电路,响应于正被执行的程序指令的存储地址位于所述多个域中的哪一个域的判断来选择性地禁用所述诊断电路的至少一些诊断功能。
2. 根据权利要求1所述的设备,包括存储器管理电路,对定义所 述存储地址空间内的存储地址的页面属性的存储器页面表数据做出响 应,所述存储地址空间含有多个存储地址的连续页面,且其中所述指定 数据的可编程域为所述存储器页面表数据的部分。
3. 根据权利要求1所述的设备,其中所述诊断功能控制电路响应 于与所述多个域的至少 一 个相关的诊断能力定义数据,并且在正被执行 的所述程序指令的所述存^f渚地址位于所述多个域的所述至少一个中时 指定禁用哪个诊断功能。
4. 根据权利要求1所述的设备,其中所述诊断能力定义数据在正 被执行的所述程序指令的所述存储地址位于所述多个域的所述至少一 个中时,指定是否禁用侵入式诊断功能。
5. 根据权利要求1所述的设备,其中所述诊断能力定义数据在正 被执行的所述程序指令的所述存储地址位于所述多个域的所述至少一 个中时,指定是否允许非侵入式诊断功能。
6. 根据权利要求1所述的设备,其中所述诊断电路包括跟踪电路, 所述跟踪电路响应于正被执行的数据处理操作生成跟踪数据流。
7. 根据权利要求1所述的设备,其中所述诊断电路包括代码概况 生成电路,其响应于正被执行的程序指令的存储地址生成代码概况生成 数据。
8. 根据权利要求1所述的设备,其中所述诊断电路包括指令断点电路,所述指令断点电路响应于匹配预定特征的正被执行的程序指令的 存储地址来触发诊断事件。
9. 根据权利要求1所述的设备,其中所述诊断电路包括数据监测 点电路,所述数据监测点电路响应于匹配预定特征的正^皮访问的数据值 的存储地址来触发诊断事件。
10. 根据权利要求8所述的设备,其中所述诊断事件为如下操作之 一中止在所述设备上的处理操作以容许通过外部装置进行调试,以及 触发调试异常,以在所述设备上启动调试异常处理代码的执行。
11. 一种用于处理数据的设备,所述设备包括 可以用存储地址寻址的存储装置,所述存储地址具有存储地址空间之内的值,所述存储地址空间具有多个域,域包括如指定数据的可编程 域定义的 一组存^t地址;数据处理装置,用于响应于从所述存储地址空间内的存储地址获取 的程序指令执行数据处理操作;诊断装置,用于响应于所述设备中的一个或多个信号执行生成诊断 数据的诊断操作;诊断功能控制装置,响应于正被执行的程序指令的存储地址位于所 述多个域中的哪 一 个域的判断来选性地禁用所述诊断电路的至少一 些诊断功能。
12. —种处理数据的方法,所述方法包括如下步骤在可以用存储地址寻址的存储器中存储数据,所述存储地址具有存 储地址空间之内的值,所述存储地址空间具有多个域,域包括如指定数 据的可编程域定义的 一组存储地址;响应于从所述存储地址空间内的存储地址获取的程序指令用数据 处理电路执行数据处理操作;响应于所述设备中的一个或多个信号,用诊断电路执行诊断操作以 生成诊断数据;响应于正被执行的程序指令的存储地址位于所述多个域中的哪一 个域的判断,用诊断功能控制电路来选择性地禁用所述诊断电路的至少 一些诊断功能。
13. 根据权利要求12所述的方法,包括利用定义所述存储地址空 间内的存储地址的页面属性的存储器页面表数据管理存储器,所述存储地址空间含有多个存储地址的连续页面,所述指定数据的可编程域为所 述存储器页面表数据的部分。
14. 根据权利要求12所述的方法,其中所述选择性禁用响应于与所述多个域的至少一个相关的诊断能力定义数据,并且在正被执行的所 述程序指令的所述存储地址位于所述多个域的所述至少一个中时指定 禁用哪些诊断功能。
15. 根据权利要求12所述的方法,其中所述诊断能力定义数据在 正被执行的所述程序指令的所述存储地址位于所述多个域的所述至少 一个中时,指定是否禁用侵入式诊断功能。
16. 根据权利要求12所述的方法,其中所述诊断能力定义数据在 正被执行的所述程序指令的所述存储地址位于所述多个域的所述至少 一个中时,指定是否允许非侵入式诊断功能。
17. 根据权利要求12所述的方法,其中所述诊断电路包括跟踪电
18. 根据权利要求12所述的方法,其中所述诊断电路包括代码概 况生成电路,其响应于正被执行的程序指令的存储地址生成代码概况生成数据。
19. 根据权利要求12所述的方法,其中所述诊断电路包括指令断 点电路,所述指令断点电路响应于匹配预定特征的正被执行的程序指令 的存储地址来触发诊断事件。
20. 根据权利要求12所述的方法,其中所述诊断电路包括数据监 测点电路,所述数据监测点电路响应于匹配预定特征的正-皮访问的数据 值的存储地址来触发诊断事件。
21. 根据权利要求19所述的方法,其中所述诊断事件为如下操作 之一中止在所述设备上的处理操作以容许通过外部装置进行调试,以 及触发调试异常,以在所述设备上启动调试异常处理代码的执行。
全文摘要
一种数据处理系统2具有存储器6,存储器6具有并入了多个域的存储地址空间,每个域包括如指定数据的可编程域32所定义的一组存储地址。处理器内核8执行从存储器6获取的程序指令。诊断控制电路20响应于存储正被执行的程序指令的域选择性地禁用用于在数据处理系统2上执行诊断功能的诊断电路14、16、18。诊断控制电路20响应于与域相关的诊断能力定义数据36,以指明针对哪个域启用哪个诊断电路14、16、18。
文档编号G06F11/36GK101251821SQ200810081458
公开日2008年8月27日 申请日期2008年2月22日 优先权日2007年2月22日
发明者D·克肖, M·J·威廉斯 申请人:Arm有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1