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

文档序号:9616187阅读:来源:国知局
用控制,从而以能够减少第二特权层级为设置和清除禁用控制标志所需要的指令的数目。
[0033]性能监控电路可包括各种形式。一些性能监控电路可监控相对复杂的性能量度,或可记录特定事件或在发生特定事件组合的情况下输出信号。
[0034]然而,性能监控电路往往可包括事件追踪电路,这些追踪电路追踪选定事件在数据流程内的发生。例如,事件追踪电路可包括事件计数器,每当特定事件发生时,这些事件计数器递增计数。其他形式的事件追踪电路可并非单调增加,并且可相反地在已发生某一数目的特定类型事件的情况下输出信号。
[0035]—些事件追踪电路可被编程以追踪第一配置数据所指定的类型的事件的发生,该第一配置数据是由第一特权层级的代码设置的。因此,第一特权层级的代码可选择事件的多个类型中待计数的一个类型。其他类型的事件追踪电路可为固定的,以使得这些电路追踪固定预定类型的事件的发生,因此也无法被重新编程以追踪其他事件。例如,可能存在时常需要被监控的一些事件(比如,处理周期的经过),因此提供专用于追踪此类型事件的固定事件计数器可更有效率。性能监控电路的第一子集可包括固定事件追踪电路、或可编程事件追踪电路、或两者都包括,并且在处理电路系统处于第二特权层级并且已经设置禁用控制标志的情况下,可禁用由这些性能监控电路执行的性能监控。
[0036]由在第一特权层级的指令设置的第一配置数据可包括指定哪种类型的事件将由可编程事件追踪电路追踪的数据。并且,第一配置数据可包括启用数据(enable data),该启用数据用于控制由特定性能监控电路执行的性能监控当前是启用还是禁用。然而,在第一配置数据中设置的此启用数据可被禁用控制标志覆盖,以使得在处理电路系统切换至第二特权层级及禁用控制标志位于预定值的情况下,即使第一配置数据指示特定性能监控电路应被启用,该性能监控电路仍应被禁用。
[0037]类似地,由第二特权层级的代码为性能监控电路的第二子集设置的第二配置数据可以包括启用数据,该启用数据用于启用或禁用单个性能监控电路。在一些情况下,第二配置数据还可包括用于禁用性能监控电路的第一子集的全局启用值,以使得第二特权层级的代码能够可选地选择完全禁用由性能监控电路的第一子集执行的计数或性能监控,而不管处理电路系统当前处于哪一模式中。并且,第二配置数据可包括定义将由第二子集内的可编程事件追踪电路计数的事件的类型的数据。第二子集还可以包括上文所讨论的固定事件追足示电路。
[0038]在一些情况下,第一配置数据或第二配置数据还可以指定哪一特权层级能够存取由对应的性能监控电路的第一子集或第二子集获得的性能数据。
[0039]在一些示例中,数据处理装置可支持虚拟化,其中一个或更多个操作系统可在超级管理器监督下执行。这能够用于例如支持若干不同类型的操作系统,比如,用于处理实时关键处理的实时操作系统和用于处理实时关键性较低的处理的第二操作系统。例如,用于汽车应用的一些处理器可提供用于控制制动系统或其他安全关键组件的实时操作系统,和用于控制更富于图形用户界面(GUI)的特征的另一操作系统,比如,控制汽车的音频系统。在支持虚拟化的系统中,第二特权层级可对应于执行超级管理器程序的超级管理器特权层级,并且第一特权层级可对应于执行一个或多个操作系统程序的操作系统特权层级。因此,利用本技术,超级管理器可选择性地使自身对由操作系统配置的性能监控电路隐藏。
[0040]在另一示例中,数据处理装置可支持至少一个安全特权层级和至少一个较不安全的特权层级,其中在至少一个安全特权层级中,处理电路系统可存取不可在较不安全的特权层级中存取的至少一个资源。例如,为了保护固件或内容不被复制,可使用安全特权层级。这种类型的系统的示例是由英国剑桥ARM有限公司提供的Trustzone架构。因此,第二特权层级可包括至少一个安全特权层级,并且第一特权层级可包括至少一个较不安全的特权层级。这允许安全特权层级中的代码选择性地使自身对于在较不安全的状态下配置的性能监控电路隐藏,以维持资产保护。
[0041]其他系统可将虚拟化与安全域及较不安全域相结合,以使得在安全域和较不安全域中的一者或两者内存在超级管理器和操作系统。在此情况下,不同安全性状态之间的相对阶层以及超级管理器或操作系统层级可由系统设计者选择。一般而言,第二特权层级可处于被视作比第一特权层级具有更多特权的任何状态。
[0042]—些示例可具有两个以上特权层级,因此可存在例如第三特权层级,该第三特权层级的特权低于第一特权层级。第三特权层级可具有性能监控电路的第三子集,该第三子集能够响应于在第三特权层级执行的指令而被配置。在此情况下,可能需要多个特权层级中每一者都能够使自身对配置在较低特权层级中的性能监控电路隐藏。因此,除以上所讨论的为第二特权层级设置的禁用控制标志外,还可以存在另一禁用控制标志,该另一禁用控制标志由第一或第二特权层级中的代码来设置,该禁用控制标志在被设置为预定值的情况下在于第一特权层级或第二特权层级中执行指令的同时,禁用由性能监控电路的第三子集执行的性能监控。这种方法能够被重复若干次,以使得在处理电路系统当前处于更高特权层级时,每一特权层级都可通过使用对应的禁用控制标志来禁用由配置在较低特权层级中的性能监控电路执行的性能监控。
[0043]当存在用于配置性能监控电路的不同子集的多组配置数据时,在一些情况下,每一组配置数据可被存储在共同的寄存器或共同的寄存器组中,或者在其他情况下可被分开存储。一般而言,配置数据是控制由对应性能监控电路的子集执行的性能监控的任合存储的数据。在一些情况下,第一配置数据、第二配置数据、和第三配置数据之间可能存在某种重迭,这种重迭对应于第一子集、第二子集和第三子集中的任何重迭。
[0044]图1示出了数据处理装置2的部分,数据处理装置2具有处理电路系统4,处理电路系统4支持程序指令在多个特权层级的执行。装置2具有多个性能监控(PM)电路8,以监控处理器4和数据处理装置2的其他部分的性能。例如,性能监控电路8可包括多个事件计数器,这些事件计数器对特定事件的发生进行计数,然后软件可读出由计数器存储的计数值,以便决定已经发生了多少事件。由于多种原因,这可能是十分有用的。首先,软件开发者可对在执行其软件的同时发生某一特定类型的事件的次数感兴趣,以帮助优化软件代码以更有效地运行。例如,能够对存储器存取的数目、缓存未命中的数目、或所执行的指令的数目进行计数。此外,例如,多核系统可使用性能数据以控制负载平衡。
[0045]由性能监控电路8执行的性能监控受性能监控控制电路系统10控制,性能监控控制电路系统10维护配置数据12,配置数据12定义是否应当及应如何执行性能监控。处理器4能够响应于指令而更新配置数据12以选择将如何进行性能监控。性能监控可取决于处理电路系统4当前正在哪一特权层级中执行程序指令,因此性能监控控制电路系统10可接收特权层级的指示。
[0046]图2示出了由处理电路系统4支持的不同特权层级的第一示例。在此示例中,处理器4支持虚拟化,以使得软件可配备有执行环境,从软件的角度来看,该执行环境看似具有一种形式,但实际上底层硬件具有不同物理形式。例如,处理电路系统4可在第二特权层级EL2执行超级管理器程序20,该程序负责管理虚拟化并使底层硬件的细节对在第一特权层级ELI执行的一个或更多个访客操作系统22隐藏。超级管理器20可利用到处理器4的接口来呈现访客操作系统22,该到处理器4的接口可与物理现实中的不同。例如,超级管理器20可使某些资源对访客操作系统22隐藏,或可提供实际上并不存在的物理资源的表示。虚拟化可由超级管理器软件20来实施,该软件捕获(trap)对软件中的物理资源的存取,然后管理对底层访客操作系统22的响应,以便提供恰当响应,该响应与将在底层实体资源实际存在的情况下接收到的响应相匹配。同时,访客操作系统22管理多个应用程序24的执行,这些应用程序在另一特权层级EL0中进行处理。不同的访客操作系统22可具有不同的特性。例如,一个访客操作系统可支持实时处理,而另一访客操作系统则不可支持。
[0047]图3示出了由处理电路系统4支持的不同特权状态的另一示例。在此示例中,处理电路系统4具有安全域和较不安全域,安全域和较不安全域可被分离以保护安全域中的内容或固件不被在较不安全域中运行的代码存取。可在硬件或软件方面对在较不安全状态和安全状态进行分离。在每一域内,也可存在特权状态和用户状态,其中在特权状态下处理电路系统4可存取在用户状态下无法获得的资源。类似地,在安全域中处理器可存取在较不安全域中无法获得的资源。支持安全域和较不安全域的系统的示例是由英国剑桥ARM有限公司提供的Trustzone架构。因此,可存在多个状态(安全特权、安全用户、较不安全特权、较不安全用户),这些状态可被视作具有特权阶层。例如,在一些实施例中,安全用户状态可被视作比较不安全的特权状态具有更高特权。
[0048]因此,如图2和图3中所示,处理器4可配备有多个特权层级可出于各种原因。一般而言,在后续讨论中,更高特权层级利用高于较低特权状态(例如,EL0)的数值(例如EL2)来指示,但其他系统可使用不同的约定。
[0049]图4更详细地示出了性能监控电路8和用于配置性能监控电路的配置数据12的示例。如图4的顶部部分所示,性能监控电路可包括多个事件计数器30、32。事件计数器各自对特定事件的发生进行计数,并且能够由在处理器4上执行的软件读取和写入。在此示例中,计数器包括固定事件计数器30,
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1