[发明专利]基于指数增长的多硬件事件监控计数值估计方法在审
申请号: | 202010678027.1 | 申请日: | 2020-07-15 |
公开(公告)号: | CN111858243A | 公开(公告)日: | 2020-10-30 |
发明(设计)人: | 王一超;王杰;文敏华;韦建文;林新华 | 申请(专利权)人: | 上海交通大学 |
主分类号: | G06F11/30 | 分类号: | G06F11/30;G06F9/30 |
代理公司: | 上海交达专利事务所 31201 | 代理人: | 王毓理;王锡麟 |
地址: | 200240 *** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 指数 增长 硬件 事件 监控 数值 估计 方法 | ||
一种基于指数增长的多硬件事件监控计数值估计方法,分别通过主线程维护工作流程的生命周期、创建和初始化相关数据结构和从线程,发送从线程控制信号以及运行被监控应用,通过从线程响应主线程的生命周期信号、进行硬件事件调度、定时轮流监控和后处理估计,通过读取CPU内置的硬件事件计数寄存器得到多硬件事件监控计数值。本发明通过指数增长估计算法填充非监控时间片上的硬件事件计数值,能够提升基于MPX技术的多硬件事件监控计数库的准确性,增强MPX下监控结果的可用性。
技术领域
本发明涉及的是一种半导体性能优化领域的技术,具体是一种基于指数增长的多硬件事件(hardware event)监控计数值估计方法。
背景技术
目前硬件事件寄存器有两种采集数据的模式。一种被称为OCOE(one counter oneevent)。在这种模式中,一个寄存器在整个程序运行期内只记录一种硬件事件。这种记录方式能够完整地记录每一次硬件事件的发生。一种被称为多路复用(Multiplexing,MPX)。MPX技术通过分时复用的方法,将各个寄存器的可用时间分成不同的时间片,在不同的时间片上轮流监控不同的硬件事件,这些寄存器只能提供硬件事件在寄存器上的时间片中的数据。
发明内容
本发明针对现有技术MPX的未监控缺失值和精度不足,不能完整地覆盖所有的硬件事件行为模式,并致使MPX测量结果精度下降的问题,提出一种基于指数增长的多硬件事件监控计数值估计方法,假定在两次连续采值中间的未被采集时间片上,事件通过常数倍数增长逐渐从起始值演变至末尾值,通过指数增长估计算法填充非监控时间片上的硬件事件计数值,能够提升基于MPX技术的多硬件事件监控计数库的准确性,增强MPX下监控结果的可用性。
本发明是通过以下技术方案实现的:
本发明涉及一种基于指数增长的多硬件事件监控计数值估计方法,分别通过主线程维护工作流程的生命周期、创建和初始化相关数据结构和从线程,发送从线程控制信号以及运行被监控应用,通过从线程响应主线程的生命周期信号、进行硬件事件调度、定时轮流监控和后处理估计,通过读取CPU内置的硬件事件计数寄存器得到多硬件事件监控计数值。
技术效果
本发明整体解决了现有MPX由于机制间歇性监控硬件事件导致缺少元数据,从而引起的精度不足的缺陷;与现有技术相比,本发明能够显著提升硬件事件监控软件在MPX方式下工作的精度,从而克服MPX模式在实际工业生产中因精度不足引起的可靠性问题。
附图说明
图1为本发明流程示意图;
图2为硬件事件调度流程示意图;
图3为原始MPX估计策略示意图;
图4为本方法MPX估计策略示意图。
具体实施方式
如图1所示,为本实施例涉及一种基于指数增长的中央处理器多硬件事件监控计数值估计方法,包括如下步骤:
步骤1:PAPI硬件性能采集框架主线程对当前状态初始化并创建一个用于监控硬件事件的从线程。
所述的状态初始化包括:初始化PAPI内部全局变量、获取当前操作系统信息、创建用于记录硬件事件计数值的文件描述符、启用MPX模式和设置监控时间片长度。
步骤2:主线程完成全局初始化之后创建用于保存待监控事件的事件集(eventset),并将事件集绑定到从线程上,启动工作流程的生命周期。
步骤3:主线程向步骤2事件集中添加待监控的硬件事件。
步骤4:主线程向从线程发送监控开始信号,从线程开始从CPU内置的硬件事件计数寄存器按照步骤1中设定的时间片长度定期读取监控结果,并将其写入到当前硬件事件对应的文件描述符中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海交通大学,未经上海交通大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010678027.1/2.html,转载请声明来源钻瓜专利网。