CN101226500A - 借用中央处理单元定时器精确测量程序运行时间的方法 - Google Patents

借用中央处理单元定时器精确测量程序运行时间的方法 Download PDF

Info

Publication number
CN101226500A
CN101226500A CNA2008100059419A CN200810005941A CN101226500A CN 101226500 A CN101226500 A CN 101226500A CN A2008100059419 A CNA2008100059419 A CN A2008100059419A CN 200810005941 A CN200810005941 A CN 200810005941A CN 101226500 A CN101226500 A CN 101226500A
Authority
CN
China
Prior art keywords
timer
cpu
interface function
central processing
module
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CNA2008100059419A
Other languages
English (en)
Inventor
杨利君
石江涛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ZTE Corp
Original Assignee
ZTE Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ZTE Corp filed Critical ZTE Corp
Priority to CNA2008100059419A priority Critical patent/CN101226500A/zh
Publication of CN101226500A publication Critical patent/CN101226500A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种借用中央处理单元定时器精确测量程序运行时间的方法,应用于分布式体系架构的实时操作系统中,包括:(1)使能中央处理单元自带的一个或多个定时器,同时配置定时器的相关寄存器;(2)利用所述定时器及其相关寄存器封装一个全局的接口函数,在待测试程序指令或模块执行的开始阶段调用提供的接口函数打时间戳t1,并在结束阶段再次调用该接口函数打时间戳t2,将时间戳t1和t2相减,得到该待测试程序指令或模块执行耗费的时间。本发明解决了现有技术中测量方法由于时间精度不够和受中断的影响,造成系统测量程序运行时间上存在误差的问题。

Description

借用中央处理单元定时器精确测量程序运行时间的方法
技术领域
本发明涉及通信领域中一种借用CPU(中央处理单元)定时器精确测量程序运行时间的方法,具体的说,涉及一种采用高精度定时器捕获嵌入式实时系统中某个函数、进程或模块运行时间的方法。
背景技术
在通信领域中,大多数的产品是基于实时操作系统(如VxWorks、Linux等)开发的,而在高端的数据通讯产品中,又采用了复杂的分布式体系架构,产品的工作效率是否达标就必须引起我们的注意。通常越是高端的产品,运行的单板和业务模块越是繁多,产品的性能问题越是关键。因此我们必须更加精确的计算各个进程CPU占用率,来评估我们系统的性能到底如何;对于分布式的系统,各个单板CPU间的板间通讯效率能不能满足我们的要求,还有没有进一步提高的空间;以及某个业务模块流程的优化等等,这些关系我们产品生死存亡的大计都离不开系统程序指令运行时间的测试。而我们也正是通过不断的测试发现产品中存在的问题,从而进一步优化我们的系统流程,最终提高我们产品的性能,为今后的市场打下基础。
在我们目前使用的嵌入式VxWorks操作系统下,可以通过调用系统提供的tickGet()函数获取系统自启动以来运行的总tick(一种计时单位,与秒的换算关系可以在系统初始化中设置,如1秒=100tick,则1tick=10毫秒)数。这种方法使用起来比较简单,但是随着CPU运行效率的提高,仅仅靠tickGet()提供的时间戳的精度已经远远不能满足我们的测试需求了,因为通常待测程序在不到1个tick的时间就运行结束了,当然也就得不到程序的真实运行时间了。此外,tickGet()方法获取时间的时候还受中断的影响,对于中断触发比较频繁的系统,tickGet()得到的时间戳可能存在误差。
发明内容
本发明所解决的技术问题在于提供一种借用CPU定时器精确测量程序运行时间的方法,以解决现有技术中测量方法由于时间精度不够和受中断的影响,造成系统测量程序运行时间上存在误差的问题。
为了解决上述问题,本发明提供了一种借用中央处理单元定时器精确测量程序运行时间的方法,应用于分布式体系架构的实时操作系统中,其特征在于,包括以下步骤:
(1)使能中央处理单元自带的一个或多个定时器,同时配置定时器的相关寄存器;
(2)利用所述定时器及其相关寄存器封装一个全局的接口函数,在待测试程序指令或模块执行的开始阶段调用提供的接口函数打时间戳t1,并在结束阶段再次调用该接口函数打时间戳t2,将时间戳t1和t2相减,得到该待测试程序指令或模块执行耗费的时间。
本发明所述的方法,其中,进一步包括步骤(3)所述中央处理单元对步骤(2)所述定时器内使用的接口函数进行清除计数值,并关闭所述定时器。
本发明所述的方法,其中,所述步骤(1)中进一步包括:根据待测程序指令或模块的实际情况,估算所述定时器的计时范围和计数精度。
进一步还包括:根据待测程序指令或模块的实际情况,同时按照中央处理单元的使用手册中提供的方法和步骤,对估算所述定时器的计时范围和计数精度进行配置或更新。
其中,所述定时器,为高精度时钟源PPC系列的定时器、高精度时钟源MIPS系列的定时器、或高精度时钟源ARM系列的定时器。
与现有技术相比较,本发明借用嵌入式实时系统中CPU自带的定时器,软件提供一定的接口函数,设置不同的计时范围和计数精度满足我们的测试需求。还可以和tickGet()配合使用,在扩大计时范围的同时保持较高的计数精度,极大地提高了测试的灵活性和精确度。
附图说明
图1是本发明实施例所述的借用CPU定时器精确测量程序运行时间的方法流程图。
具体实施方式
本发明在这里提供了一种借用CPU定时器精确测量程序运行时间的方法,以解决现有技术中测量方法由于时间精度不够和受中断的影响,造成系统测量程序运行时间上存在误差的问题。以下对具体实施方式进行详细描述,但不作为对本发明的限定。
本发明利用如下数据通信产品的软硬件特性:
在数据通信产品中,嵌入式系统中使用CPU自带了多个高精度时钟源一定时器,如常用的PPC系列、MIPS系列、ARM系列等。每个定时器可以通过相应的寄存器组设置,如使能该定时器、配置定时器的计数值和计数精度、清除定时器计数值以及禁止定时器的使用等。不同的CPU的定时器设置的计时范围和计数精度与CPU的主频相关。这些定时器的精度可以达到百分之一毫秒,甚至更高。并且这些时钟源采用硬件刷新的方式更新计时,不会受到软件的干扰;这些定时器的计时范围和计数精度都可以按照CPU使用手册中提供的方法和步骤予以配置或更新,从而能够方便灵活的满足我们的测试需求。
如图1所示,本发明具体实现方法分为如下步骤:
步骤101,当分布式体系架构的实时操作系统启动时,在硬件初始化过程中,按照CPU手册说明写定时器的寄存器,使能CPU自带的一个或多个定时器;
步骤102,根据待测程序指令或模块的实际情况,估算测试定时器的计时范围和计数精度,避免在一次测试过程中定时器发生翻转;
步骤103,根据步骤102估算的测试计时范围和计数精度以及CPU手册的说明,继续在硬件初始化过程中配置CPU的定时器的相关寄存器;
步骤104,根据上述步骤,利用所述定时器及其相关寄存器封装一个全局的接口函数timerGet(),即读CPU手册中指明存储当前计数值的寄存器,timerGet()函数的返回值随着程序的运行不断更新;
步骤105,在待测试程序指令或模块执行的开始阶段调用步骤104中提供的接口函数打时间戳t1=timerGet(),并在结束阶段再次调用该接口函数打时间戳t2=timerGet();
步骤106,将步骤105中得到的时间戳t1和t2相减,即为程序执行耗费的时间,这里供后续的研究分析使用;
步骤107,最后提供对接口函数的初始化,方便我们在不需要定时器的时候清除计数值或关闭定时器。
与现有技术相比较,本发明实施例所述借用嵌入式实时系统中CPU自带的定时器,软件提供一定的接口函数,设置不同的计时范围和计数精度满足我们的测试需求。还可以和tickGet()配合使用,在扩大计时范围的同时保持较高的计数精度,极大地提高了测试的灵活性和精确度。
当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员可根据本发明做出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。

Claims (5)

1.一种借用中央处理单元定时器精确测量程序运行时间的方法,应用于分布式体系架构的实时操作系统中,其特征在于,包括以下步骤:
(1)使能中央处理单元自带的一个或多个定时器,同时配置定时器的相关寄存器;
(2)利用所述定时器及其相关寄存器封装一个全局的接口函数,在待测试程序指令或模块执行的开始阶段调用提供的接口函数打时间戳t1,并在结束阶段再次调用该接口函数打时间戳t2,将时间戳t1和t2相减,得到该待测试程序指令或模块执行耗费的时间。
2.如权利要求1所述的方法,其特征在于,进一步包括步骤(3)所述中央处理单元对步骤(2)所述定时器内使用的接口函数进行清除计数值,并关闭所述定时器。
3.如权利要求1所述的方法,其特征在于,所述步骤(1)中进一步包括:根据待测程序指令或模块的实际情况,估算所述定时器的计时范围和计数精度。
4.如权利要求1、2或3所述的方法,其特征在于,所述定时器,为高精度时钟源PPC系列的定时器、高精度时钟源MIPS系列的定时器、或高精度时钟源ARM系列的定时器。
5.如权利要求3所述的方法,其特征在于,进一步包括:根据待测程序指令或模块的实际情况,同时按照中央处理单元的使用手册中提供的方法和步骤,对估算所述定时器的计时范围和计数精度进行配置或更新。
CNA2008100059419A 2008-02-18 2008-02-18 借用中央处理单元定时器精确测量程序运行时间的方法 Pending CN101226500A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNA2008100059419A CN101226500A (zh) 2008-02-18 2008-02-18 借用中央处理单元定时器精确测量程序运行时间的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNA2008100059419A CN101226500A (zh) 2008-02-18 2008-02-18 借用中央处理单元定时器精确测量程序运行时间的方法

Publications (1)

Publication Number Publication Date
CN101226500A true CN101226500A (zh) 2008-07-23

Family

ID=39858509

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2008100059419A Pending CN101226500A (zh) 2008-02-18 2008-02-18 借用中央处理单元定时器精确测量程序运行时间的方法

Country Status (1)

Country Link
CN (1) CN101226500A (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102149128B (zh) * 2010-02-08 2013-01-23 华为技术有限公司 获得测量时间的方法和装置
CN103198002A (zh) * 2012-01-09 2013-07-10 上海海尔集成电路有限公司 程序运行时间的测量方法及仿真器
CN104850458A (zh) * 2014-02-15 2015-08-19 瞿浩正 基于时间戳测量嵌入式软件模块所需mips的方法
CN105404535A (zh) * 2015-11-30 2016-03-16 中国人民解放军装甲兵工程学院 基于arm构架的纳秒级计时方法和系统
CN107480043A (zh) * 2016-12-23 2017-12-15 宝沃汽车(中国)有限公司 代码运行时间的测试方法及系统
CN109324945A (zh) * 2018-09-07 2019-02-12 郑州云海信息技术有限公司 一种bmc读取raid卡温度时间自动获取方法及系统
CN110009206A (zh) * 2019-03-21 2019-07-12 五邑大学 一种定时语音评分方法、装置、设备和存储介质

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102149128B (zh) * 2010-02-08 2013-01-23 华为技术有限公司 获得测量时间的方法和装置
CN103198002A (zh) * 2012-01-09 2013-07-10 上海海尔集成电路有限公司 程序运行时间的测量方法及仿真器
CN103198002B (zh) * 2012-01-09 2015-03-25 上海海尔集成电路有限公司 程序运行时间的测量方法及仿真器
CN104850458A (zh) * 2014-02-15 2015-08-19 瞿浩正 基于时间戳测量嵌入式软件模块所需mips的方法
CN105404535A (zh) * 2015-11-30 2016-03-16 中国人民解放军装甲兵工程学院 基于arm构架的纳秒级计时方法和系统
CN107480043A (zh) * 2016-12-23 2017-12-15 宝沃汽车(中国)有限公司 代码运行时间的测试方法及系统
CN109324945A (zh) * 2018-09-07 2019-02-12 郑州云海信息技术有限公司 一种bmc读取raid卡温度时间自动获取方法及系统
CN110009206A (zh) * 2019-03-21 2019-07-12 五邑大学 一种定时语音评分方法、装置、设备和存储介质

Similar Documents

Publication Publication Date Title
CN101226500A (zh) 借用中央处理单元定时器精确测量程序运行时间的方法
Hackenberg et al. Power measurement techniques on standard compute nodes: A quantitative comparison
US10908941B2 (en) Timestamping data received by monitoring system in NFV
Li et al. An empirical study of the energy consumption of android applications
US9170916B2 (en) Power profiling and auditing consumption systems and methods
US7222030B2 (en) Method and apparatus for profiling power performance of software applications
CN101331460B (zh) 基于处理能力的实时基准对软件产品的使用进行计量的方法和系统
CN103049404B (zh) 一种获取安卓手机型号的方法和系统
CN100549979C (zh) 系统任务的cpu占用率检测方法及系统
CN108932007B (zh) 获取时间戳的方法以及计算机装置
CN105404535A (zh) 基于arm构架的纳秒级计时方法和系统
Kavanagh et al. Accuracy of energy model calibration with IPMI
Han et al. Characterizing public cloud resource contention to support virtual machine co-residency prediction
CN114489801A (zh) 高精度测量嵌入式系统中断时长的方法、系统及介质
CN103440146A (zh) 一种基于云存储的更新bios的方法
Wert et al. AIM: Adaptable Instrumentation and Monitoring for automated software performance analysis
WO2011080667A1 (en) Method for providing a real time to an application running on a virtual platform
US9027035B2 (en) Non real-time metrology data management
US9465621B2 (en) Priority activation of metrology driver in boot sequence
KR20150062654A (ko) 소프트웨어 성능 측정 방법 및 장치
CN1952904A (zh) 一种测试嵌入式系统中定时器的方法及系统
CN118349431A (zh) 用于有效提高测试用例覆盖率和稳健性的方法
CN201215637Y (zh) 一种计算机授时卡及系统
Hsu et al. Evaluation and modeling of power consumption of a heterogeneous dual-core processor
CN202362771U (zh) 一种嵌入式测试装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Open date: 20080723