能在多个特权层级执行指令的数据处理装置中的性能监控的制作方法

文档序号:9616187阅读:234来源:国知局
能在多个特权层级执行指令的数据处理装置中的性能监控的制作方法
【技术领域】
[0001]本技术涉及数据处理领域。更具体地,本技术涉及具有性能监控电路并且能够在多个特权层级(privilege level)中的一个层级中执行指令的数据处理装置。
【背景技术】
[0002]数据处理装置可具有多个性能监控电路,以监控装置性能的各个方面。例如,性能监控电路可包括计数器,这些计数器计算处理器内各个事件的发生次数,比如,已被执行的指令的数目、缓存存取数目,等等,这能够提供关于处理性能的信息。这可用于例如检验软件是否高效执行,或在多个处理电路之间进行负载平衡。
[0003]—些处理装置可支持程序指令在多个不同特权层级的执行,其中处理电路系统当在一个特权层级执行时可存取资源或具有其他能力,该处理电路系统在另一不同特权层级执行时原本无法进行该存取或不具有这些能力。本技术设法改进这种系统中的性能监控。

【发明内容】

[0004]自一个方面来看,本技术提供了数据处理装置,包括:
[0005]处理电路系统,该处理电路系统被配置为在多个特权层级处执行程序指令;以及
[0006]多个性能监控电路,其中,处理电路系统被配置为:响应于由处理电路系统在第一特权层级处执行的至少一个程序指令而设置第一配置数据,所述第一配置数据用于控制由性能监控电路的第一子集执行的性能监控;
[0007]处理电路系统被配置为:响应于由处理电路系统在第二特权层级处执行的至少一个程序指令而设置禁用控制标志,第二特权层级高于第一特权层级;以及
[0008]该装置包括性能监控控制电路系统,该性能监控控制电路系统被配置为:如果该禁用控制标志具有预定值,则在处理电路系统正在第二特权层级执行指令时,禁用由性能监控电路的第一子集执行的性能监控。
[0009]从另一方面来看,本技术提供了一种数据处理设备,该设备包括:
[0010]处理装置,该处理装置用于在多个特权层级处执行程序指令;以及
[0011]多个性能监控装置,这些性能监控装置用于执行性能监控,其中,处理装置被配置为:响应于由处理装置在第一特权层级处执行的至少一个程序指令而设置第一配置数据,该第一配置数据用于控制由性能监控装置的第一子集执行的性能监控;
[0012]处理装置被配置为:响应于由处理装置在第二特权层级处执行的至少一个程序指令而设置禁用控制标志,第二特权层级高于第一特权层级;以及
[0013]该设备包括性能监控控制装置,该性能监控控制装置用于:如果该禁用控制标志具有预定值,则在处理手段正在第二特权层级处执行指令时,禁用由性能监控装置的第一子集执行的性能监控。
[0014]从另一方面来看,本技术提供了一种用于包括多个性能监控电路的数据处理装置的性能监控方法,该方法包括:
[0015]响应于在第一特权层级处执行的至少一个程序指令,设置第一配置数据,以控制由性能监控电路的第一子集执行的性能监控;以及
[0016]如果该数据处理装置正在高于第一特权层级的第二特权层级处执行程序指令,并且响应于在第二特权层级处执行的至少一个指令而设置的禁用控制标志具有预定值,则禁用由性能监控电路的第一子集执行的性能监控。
【附图说明】
[0017]图1示意性地示出了具有性能监控电路的数据处理装置的一部分;
[0018]图2示出了支持虚拟化的系统中的不同特权层级的示例;
[0019]图3示出了具有安全域和较不安全域的系统中的不同特权层级的示例;
[0020]图4示出了一组性能监控电路的示例,该组性能监控电路具有用于配置性能监控电路的配置数据;
[0021]图5示出了性能监控电路的示例,这些性能监控电路可由特权层级的阶层进行配置;及
[0022]图6示出了更高特权层级的示例,该更高特权层级使自身对被配置为较低特权层级的性能监控器隐藏。
【具体实施方式】
[0023]在支持多个特权层级并且具有多个性能监控电路的数据处理装置中,性能监控电路的第一子集可通过在第一特权层级执行的代码来进行配置。例如,可允许在第一特权层级执行的代码配置性能监控电路的第一子集监控性能的方式,比如,配置性能监控电路是否为主动的,并且如果这些电路是主动的,则配置这些电路追踪何种事件,或正在执行何种类型的性能监控。
[0024]然而,处理电路系统可随后切换到在高于第一特权层级的第二特权层级执行代码。有时,对被配置为在第一特权层级的性能监控电路而言当代码正在第二特权层级被执行时继续监控性能是恰当的。例如,在第一特权层级对应于操作系统并且第二特权层级对应于超级管理器(hypervisor)的虚拟系统中,超级管理器陷阱影响由位于第一特权层级的操作系统管理的代码的性能,因此,为允许操作系统的编程人员或操作系统中的应用追踪代码的实际性能,即使当处理电路系统切换到第二特权层级时,也可能需要允许性能监控电路继续监控。然而,本技术的发明者意识到,在其他情况下,当处于第二特权层级中时,由第一特权层级所配置的性能监控电路继续操作可能是不恰当的。例如,第二特权层级可能被调用执行安全关键任务,比如,核查密码。如果这样,则配置于第一特权层级的性能监控电路可用于获得关于在第二特权层级执行的安全关键任务的信息,该任务可能在安全性上受损。例如,如果位于第一特权层级的代码配置性能监控电路的第一子集中的一者以计算在核查密码时经过的处理周期数目,则这可指示与仅经过几个周期相比,密码在核查流程中更进一步,从而可指示与先前的尝试相比密码中更多部分是正确的。这种类型的信息可有助于减少为了协助破解密码而进行的置换数目。因此,当处理电路系统正在执行第二特权层级的代码时,配置在第一特权层级的性能监控电路的第一子集继续监控性能有时可能是极其不合乎需要的。
[0025]为了解决该问题,提供了可响应于在第二特权层级执行的指令而被设置的禁用控制标志。(在硬件中)提供性能监控控制电路系统,以在处理电路系统正在第二特权层级执行指令时,在禁用控制标志具有预定值的情况下,禁用由性能监控电路的第一子集执行的性能监控。因此,在第二特权层级执行的代码能够选择是否使自身对配置在第一特权层级的性能监控电路隐藏,以改进安全性。
[0026]除性能监控电路的第一子集外,还可存在性能监控电路的第二子集,该第二子集是响应于在第二特权层级执行的指令而被配置的。因此,第二特权层级的代码可独立于由第一特权层级配置的性能监控电路的第一子集来配置其自己的性能监控电路集。在一些情况下,第二特权层级的代码除第二子集外还能够配置第一子集,但第一特权层级的代码可能被阻止配置第二子集内的性能监控电路。类似地,为存取由性能监控电路记录的信息,第二特权层级的代码可存取性能监控电路的第一子集和第二子集,但第一特权层级的代码则仅可存取第一子集。可替代地,在一些情况下,第二特权层级的代码能够选择第一特权层级的代码是否能够存取由性能监控电路的第二子集记录的性能数据。
[0027]由于第二特权层级的代码已设置禁用控制标志及处理电路系统当前正处于第二特权层级,因此当由性能监控电路的第一子集进行的性能监控被控制电路系统禁用时,仍可允许由性能监控电路的第二子集进行的性能监控。由此,禁用控制标志仅影响性能监控电路的第一子集,而不影响第二子集进行的性能监控。
[0028]在一些实施例中,哪些性能监控电路属于第一子集以及哪些性能监控电路属于第二子集的分配可为固定的。例如,可在第一特权层级配置固定数目的性能监控电路,并且可在第二特权层级配置另一固定数目的性能监控。
[0029]然而,在一些情况下,能够视情况将特定性能监控电路重新分配为属于第一子集或者第二子集,可能更为有效。例如,第二特权层级的代码可能并非始终需要相同数目的性能监控电路。为避免提供更大数目的性能监控电路来满足第一特权层级及第二特权层级中每一者所需的最大可能数目的性能监控电路,更为有效的方式可为先提供共享性能监控电路集,然后根据要求将特定性能监控电路重新分配为第一子集或第二子集中的一者。处理电路系统可响应于在第二特权层级执行的指令而设置用于控制此举的分配数据。由此,第二特权层级的代码可负责将性能监控电路划分为第一子集和第二子集,及第一特权层级的代码可能不被允许设置分配数据。
[0030]分配数据可具有各种形式。在一个示例中,每一性能监控电路可具有指示该电路是属于第一子集还是属于第二子集的标志。然而,这可需要相对大量的数据。
[0031]表示分配数据的尤为有效的方法是针对性能监控电路具有预定序列,每一电路在序列内具有预定位置;以及针对分配数据指示序列内的边界位置。性能监控电路的第一子集可由此在边界位置的一侧包括性能监控电路,并且第二子集可在边界位置的另一侧至少包括性能监控电路。以此方式,边界位置的简单指示足以标识哪些电路属于每一子集。例如,每一性能监控电路可具有相关联的索引,性能监控电路的第一子集可以是所具有的索弓丨大于(或小于)由边界位置表示的索引的那些电路。
[0032]禁用控制标志可以仅影响当处理电路系统正在第二特权层级执行指令时性能监控电路的第一子集的性能监控。因此,当处于第一特权层级时,即使禁用控制标志具有预定值,仍可允许由性能监控电路的第一子集进行的性能监控。以此方式,因为由于禁用控制标志不会影响在第一特权层级进行的性能监控所以在切换回第一特权层级前不一定要清除禁
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1