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

文档序号:9616187阅读:来源:国知局
置为预定值,则由性能监控器的第一子集值执行的性能监控被禁用。一旦第二特权层级处的代码结束其操作,则在步骤108中,处理返回至第一特权层级EL1,并且此时性能监控器电路的第一子集在步骤110中恢复性能监控,并且处理继续进行。以此方式,通过仅在禁用控制标志中设置单一位,处理器4能够阻止较低特权层级处的代码控制较高特权层级处的代码的设定表示(profiling),此设定表示可能引起安全风险。配设于硬件中的性能监控控制电路系统10基于禁用控制标志HPMD来控制是否启用性能监控。
[0067]尽管以上示例示出了禁用控制标志58被设置为1以禁用由计数器的第一子集50执行的性能监控的情况,但在其他情况下,预定值能够是0。而且,尽管图4中示出了寄存器和配置数据的特定排列,但在其他示例中,能够以不同方式或在寄存器的不同组合中表示配置数据。
[0068]如果更高的特权状态使用第二启用位56、66中的一者来禁用性能监控,则在较低的特权层级处执行的代码仍可尝试对性能计数器中的一者进行读取或写入。为在此期间阻止对性能计数值的不当存取,性能监控控制电路系统10有可能响应于对性能计数器的读取而返回默认值,或禁用向性能计数器写入。例如,多路复用器可基于是否禁用性能监控而选择是返回来自性能计数器的实际数据还是返回默认值。类似地,在向性能计数器写入时,可基于是否启用性能监控而对写入启用信号进行闸控。
[0069]此外,如果较低的特权状态尝试存取或配置并非属于允许其配置的计数器子集中的性能计数器,则类似地,可响应于读取而返回默认值,或可禁用向性能计数器写入。因此,性能监控控制电路系统10可基于正在存取的性能计数器的索引和边界值54、64的当前值,来检测较低特权层级处的代码是否正在尝试对其子集外的性能计数器进行读取或写入,以及如果这样,则应用默认值。
[0070]在本申请中,词语“被配置为......(configured t0...) ”用于意味着装置的元件具有能够执行定义的操作的配置。在此上下文中,“配置(configurat1n) ”意味着硬件或软件的布局或互连方式。例如,该装置可具有提供定义的操作的专用硬件,或处理器或其他处理装置可被编程以执行该功能。“被配置为(configured to) ”不暗示装置元件为了提供定义的操作而需要以任何方式被变更。
[0071]尽管已经参照附图详细描述了说明性实施例,但是将理解,本发明并不限于那些精确实施例,并且在不脱离所附权利要求的范围的情况下本领域技术人员能够实行各种改变和修改。
【主权项】
1.一种数据处理装置,包括: 处理电路系统,所述处理电路系统被配置为在多个特权层级处执行程序指令;以及 多个性能监控电路,其中,所述处理电路系统被配置为:响应于由所述处理电路系统在第一特权层级处执行的至少一个程序指令而设置第一配置数据,所述第一配置数据用于控制由性能监控电路的第一子集执行的性能监控; 所述处理电路系统被配置为:响应于由所述处理电路系统在第二特权层级处执行的至少一个程序指令而设置禁用控制标志,所述第二特权层级高于所述第一特权层级;以及 所述装置包括性能监控控制电路系统,所述性能监控控制电路系统被配置为:如果所述禁用控制标志具有预定值,则在所述处理电路系统在所述第二特权层级处执行指令时,禁用由所述性能监控电路的第一子集执行的性能监控。2.如权利要求1所述的数据处理装置,其中,所述处理电路系统被配置为:响应于由所述处理电路系统在所述第二特权层级处执行的至少一个程序指令而设置第二配置数据,所述第二配置数据用于控制由性能监控电路的第二子集执行的性能监控。3.如权利要求2所述的数据处理装置,其中,所述性能监控控制电路系统被配置为:在由所述性能监控电路的第一子集执行的所述性能监控被禁用时,允许由所述性能监控电路的第二子集执行的性能监控。4.如权利要求2所述的数据处理装置,其中,所述处理电路系统被配置为:响应于由所述处理电路系统在所述第二特权层级处执行的至少一个程序指令而设置分配数据,所述分配数据用于控制哪些性能监控电路位于所述性能监控电路的第一子集内以及哪些性能监控电路位于所述性能监控电路的第二子集内。5.如权利要求4所述的数据处理装置,其中,所述多个性能监控电路具有预定序列,所述性能监控电路中的每一性能监控电路在所述序列内具有预定位置;以及 所述分配数据能够指示所述序列内的边界位置,其中,所述性能监控电路的第一子集包括位于所述边界位置一侧的性能监控电路,并且所述性能监控电路的第二子集至少包括位于所述边界位置另一侧的性能监控电路。6.如权利要求1所述的数据处理装置,其中,所述性能监控控制电路系统被配置为:在所述处理电路系统正在所述第一特权层级处执行程序指令时,即使所述禁用控制标志具有所述预定值,也允许由所述性能监控电路的第一子集执行的性能监控。7.如权利要求1所述的数据处理装置,其中,所述性能监控电路包括事件追踪电路,所述事件追踪电路被配置为追踪选定事件在所述数据处理装置内的发生。8.如权利要求1所述的数据处理装置,其中,所述性能监控电路的第一子集包括至少一个可编程事件追踪电路,所述至少一个可编程事件追踪电路被配置为追踪由所述第一配置数据指定的类型的事件的发生。9.如权利要求1所述的数据处理装置,其中,所述性能监控电路的第一子集包括至少一个固定事件追踪电路,所述至少一个固定事件追踪电路被配置为追踪预定类型的事件的发生。10.如权利要求1所述的数据处理装置,其中,所述第一配置数据包括启用数据,所述启用数据用于控制由所述性能监控电路的第一子集执行的性能监控是被启用还是被禁用。11.如权利要求1所述的数据处理装置,其中,所述第二特权层级包括超级管理器特权层级,所述超级管理器特权层级用于执行超级管理器程序,并且所述第一特权层级包括操作系统特权层级,所述操作系统特权层级用于执行一个或多个操作系统程序。12.如权利要求1所述的数据处理装置,其中,所述第二特权层级包括至少一个安全特权层级,所述安全特权层级用于执行至少一个安全程序,并且所述第一特权层级包括至少一个较不安全特权层级,所述较不安全特权层级用于执行至少一个较不安全程序,其中,在所述至少一个安全特权层级中,所述处理电路系统有权存取至少一个资源,当在所述至少一个较不安全层级中时,所述处理电路系统无法存取所述至少一个资源。13.如权利要求1所述的数据处理装置,其中,所述性能监控电路的第一子集包括性能监控电路的第三子集; 所述处理电路系统被配置为:响应于由所述处理电路系统在第三特权层级处执行的至少一个程序指令而设置第三配置数据,所述第三特权层级低于所述第一特权层级,所述第三配置数据用于控制由所述性能监控电路的第三子集执行的性能监控; 所述处理电路系统被配置为:响应于由所述处理电路系统在所述第一特权层级和所述第二特权层级中的一者处执行的至少一个程序指令而设置另一禁用控制标志;以及 所述性能监控控制电路系统被配置为:如果所述另一禁用控制标志具有预定值,则在所述处理电路系统正在所述第一特权层级和所述第二特权层级中的一者处执行指令时,禁用由所述性能监控电路的第三子集执行的性能监控。14.一种数据处理设备,包括: 处理装置,所述处理装置用于在多个特权层级处执行程序指令;以及 多个性能监控装置,所述多个性能监控装置用于执行性能监控,其中,所述处理装置被配置为:响应于由所述处理装置在第一特权层级处执行的至少一个程序指令而设置第一配置数据,所述第一配置数据用于控制由性能监控装置的第一子集执行的性能监控; 所述处理装置被配置为:响应于由所述处理装置在第二特权层级处执行的至少一个程序指令而设置禁用控制标志,所述第二特权层级高于所述第一特权层级;以及 所述设备包括性能监控控制装置,所述性能监控控制装置用于:如果所述禁用控制标志具有预定值,则在所述处理装置正在所述第二特权层级处执行指令时,禁用由所述性能监控装置的第一子集执行的性能监控。15.一种用于数据处理装置的性能监控方法,所述数据处理装置包括多个性能监控电路,所述方法包括以下步骤: 响应于在第一特权层级处执行的至少一个程序指令,设置第一配置数据,以控制由性能监控电路的第一子集执行的性能监控;以及 如果所述数据处理装置正在高于所述第一特权层级的第二特权层级处执行程序指令,并且响应于在所述第二特权层级处执行的至少一个指令而设置的禁用控制标志具有预定值,则禁用由所述性能监控电路的第一子集执行的性能监控。
【专利摘要】本申请涉及能在多个特权层级执行指令的数据处理装置中的性能监控,提供了一种具有处理电路系统的数据处理装置,该处理电路系统可在多个特权层级中的一者处执行指令。该装置包括多个性能监控电路。响应于在第一特权层级处执行的指令,能够设置第一配置数据,以控制由性能监控电路的第一子集执行的性能监控。能够响应于在高于第一特权层级的第二特权层级处执行的指令而设置禁用控制标志。如果禁用控制标志具有预定值,则在处理电路系统正在第二特权层级处执行指令时,性能监控控制电路系统禁用由性能监控电路的第一子集执行的性能监控。
【IPC分类】G06F21/55, G06F11/34
【公开号】CN105373467
【申请号】CN201510450551
【发明人】迈克尔·约翰·威廉姆斯, 西蒙·约翰·克拉斯克
【申请人】Arm 有限公司
【公开日】2016年3月2日
【申请日】2015年7月28日
【公告号】EP2985698A1, US20160048440
当前第4页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1