CN1952901A - 一种软件计时的方法 - Google Patents
一种软件计时的方法 Download PDFInfo
- Publication number
- CN1952901A CN1952901A CN 200510100656 CN200510100656A CN1952901A CN 1952901 A CN1952901 A CN 1952901A CN 200510100656 CN200510100656 CN 200510100656 CN 200510100656 A CN200510100656 A CN 200510100656A CN 1952901 A CN1952901 A CN 1952901A
- Authority
- CN
- China
- Prior art keywords
- timer
- central processing
- processing unit
- timing
- time
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 32
- 238000012545 processing Methods 0.000 claims description 40
- 238000012360 testing method Methods 0.000 claims description 14
- 230000006978 adaptation Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003370 grooming effect Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000011056 performance test Methods 0.000 description 1
- 238000010998 test method Methods 0.000 description 1
Images
Landscapes
- Electric Clocks (AREA)
- Measurement Of Unknown Time Intervals (AREA)
Abstract
本发明提供一种软件计时的方法,利用中央处理器的定时器和实时时钟进行计时,中央处理器的定时器进行秒以下单位的高精度的计时,实时时钟进行秒以上的长时间计时,两者协调运作可以实现不受计时长度限制的精确计时。本发明克服了现有技术计时精度和计时长度不能兼顾的缺陷,充分利用现有器件,在不增加成本和不增加系统运行负担的情况下达到了较好的计时效果。本发明尤其适合程序测试计时。
Description
技术领域
本发明涉及到一种软件计时的方法,尤其是一种测试用的软件计时方法。
背景技术
现有技术有多种测试用计时方法,但在无线通信系统中,现有的软件计时方法往往误差较大,不能满足较高的精度要求。如果要求较高的计时精度,则需要增加额外的硬件如数字信号处理器(DSP)等,例如利用实时嵌入式操作系统的消息传递机制,通过测试进程将计时消息传递给底层特定的硬件如DSP而获取较精确的计时。因为一般操作系统的系统时间精度只能达到十个毫秒,而底层硬件的精度可以达到纳秒级,比如用于测试的DSP的计时精度可以达到40纳秒(ns),这样通过硬件的计时精度来达到较高的计时精度的要求。增加硬件虽然可以提高计时的精度,但这种方法比较繁琐,受到系统任务、进程调度机制和诸如进程优先级、消息队列消息数等系统资源的限制,计时消息在消息调度过程中可能被延迟,导致计时偏差较大;同时由于增加了额外的硬件,成本也随之升高。
在软硬件性能测试方面,多用中央处理器的定时器来计时。这种计时方式虽然确保了计时的精度,但是有个溢出时间的限制,计时总长不能超过一定的时间,而且其计时精度和计时总长度呈反比关系,精度越高,计时总长越短。
如测试flash的读写擦速度,一般读写的速度都很快,计时需要很高的精度,而擦一个sector的速度一般都在一秒以上,如果要一次擦多个sector求取平均值,需要足够的计时长度大概10秒以上,单凭定时器就无法满足测试要求了。我们一般需要写几个适应不同情况的计时程序,多次的计算和更改中央处理器定时器的参数。
另外,在测试数据库性能的时候也面临着同样的问题,测试添加删除整理数据库的时间,一般都需要操作大量的数据以求取一个长期数据库操作的性能指标,这就需要很长的计时时间了,而数据库整理一次一般只需要很短的时间。目前还没有一个通用的计时方法,可以适用与多种测试的计时,不需要重复的计算和修改计时程序。
发明内容
本发明的目的是提供一种测试用软件计时方法,解决兼顾计时精度和计时长度的问题。计时精度可以小到一个时钟周期,计时长度不受任何限制,可以是几秒钟,也可以是几十年。
本发明采用的技术方案包括如下步骤:
(a)初始化实时时钟以及相应的中央处理器的各定时器,配置相关参数,设定中央处理器定时器为自动重装模式,溢出时间设置为1秒;
(b)打开中央处理器的定时器;
(c)打开实时时钟;
(d)开始测试过程,运行待测试的对象,与此同时实时时钟和中央处理器的定时器开始记录时间;
(e)中央处理器的定时器溢出后,自动重置初始值,开始第二个1秒的计时;
(f)测试过程结束后,读取实时时钟和中央处理器的定时器的当前计数值,记录这个时间值;
(g)关闭实时时钟和中央处理器定时器,停止计时。
其中步骤(a)所述的中央处理器的定时器既可以是一个定时器也可以是多个级联定时器,其中多个级联定时器设定其总溢出时间为1秒。
其中步骤(a)所述的中央处理器的定时器时钟源为通用系统时钟。
其中步骤(a)所述的中央处理器的定时器最小计时单元可以为定时器的一个时钟周期,也可以是定时器的几个时钟周期。
其中步骤(d)所述的待测试对象可以是程序,也可以是程序的某个部分。
其中步骤(f)所述的测试过程结束后记录的时间值可换算为以ns为单位的时间值。
本方案整体上可以分为两个计时模块,分别为实时时钟(Real TimeClock)模块和中央处理器定时器模块,由实时时钟模块实现秒以上的计时,中央处理器定时器模块实现精确的秒以下的计时。
第一个计时模块实时时钟模块的使用相当普遍,已经嵌入进了当今几乎所有的SOC(片上系统-System On Chip)处理器中,如:ARM7/ARM9等ARM系列嵌入式中央处理器。如果片上没有,可以外接实时时钟模块,电路也很简单。实时时钟模块现在也做的很精确,所以能够保证秒以上的计时精度。
第二个计时模块利用中央处理器的定时器,采用软件控制,通过定时器提供精度为一个时钟周期的计时功能,由于中央处理器的频率通常较高,所以该方法的精度能达到纳秒级的水平,多个定时器级联其总溢出时间很容易达到一秒钟以上,这样就实现了秒以下的精确计时。这两个计时模块相互协调计时,就可以达到不受计时长度限制的精确测试计时。
本发明的有益效果是:克服了现有技术的不足,在保证计时精度的前提下实现了不受长度限制的计时,本发明利用实时时钟(Real Time Clock)和中央处理器定时器相互协调工作设计了一个软件计时的方法,利用实时时钟计时不受计时长度限制的特点和中央处理器定时器精确计时的特点,实现不受计时长度限制的精确计时;同时由于中央处理器的定时器是闲置的资源,本发明无需添加新硬件,且中央处理器的定时器可以由中央处理器直接调用,避免了繁琐的进程调度和消息调度机制的影响,可以精确的进行计时,因此本发明利用现有器件、控制简单,却能达到非常好的计时效果。
附图说明
图1是通用定时器的结构图。
图2是两个定时器的级联图。
图3是RTC和定时器协调的示意图。
具体实施方式
下面是一种实现本发明目的的具体实施方法,但本发明的内容不仅仅限于此种实施办法,使用其它实施方法实现本发明目的的也将落入本发明保护范围之内。
为了达到最小计时单元,我们根据中央处理器的工作频率来确定定时器的工作参数。具体参数计算方法如下:
假设中央处理器的工作频率为N(Hz赫兹),中央处理器定时器的位数为M(位),计算以处理器时钟周期为单位的定时器溢出时间为time=2M/N(秒)。如果溢出时间time小于1秒,则需要两个定时器协调工作。如果两个定时器都不能满足要求,即溢出时间time=2(M×2)/N(秒)依然小于1秒,则需要三个定时器协调工作。依此类推,总之使多个定时器级联后的溢出时间在一秒以上。
确定了需要使用几个定时器后,计算各定时器参数,使得定时器的总溢出时间刚好为1秒钟。
定时器在不产生中断的状态下运行。溢出后自动重置初始值,开始第二个1秒的计时。
对于一般的嵌入式微处理器来说,其工作频率都达到了60Mhz以上,精度达到了1/60000000=16.7ns,达到了纳秒级的要求。
以Samsung公司的嵌入式处理器S3C44B0为例,S3C44B0的工作频率可以达到66Mhz,有6个16位的中央处理器定时器。
计算其定时器的溢出时间Time1=216/66000000=0.001秒,小于1秒,则需要两个定时器协作。两个定时器级联溢出时间Time2=2(16×2)/66000000=65秒,能够进行一秒以下的计时。用户如果不需要这么高的精度,也可以根据需要定义定时器的最小计时单元是几个时钟周期。
用户根据需要确定计时精度和需要的定时器个数,而后计算定时器的配置参数。如图1所示,本实施例中设定时钟源为通用系统时钟,设定第一个定时器的多级分频器以66Mhz的二分频为基准时钟,定时器计数寄存器等定时器控制逻辑单元赋计算得到的初值。设定第二个定时器的定时钟源为通用系统时钟;设定其多级分频器,使得其基准时钟为第一个定时器的溢出周期。设定第二个定时器计数寄存器等定时器控制逻辑单元,赋初值为溢出时间刚好是1秒钟。由于我们只需要得到两个定时器的当前计数数值,不需要产生中断,所以中断输出都设定为禁止。两个定时器的模式寄存器都设定为自动重装模式。
如图2两个定时器的级联图所示,定时器1模块5的计时周期为1秒钟,定时器2模块6的计时周期为定时器1计时的最小单位。读取2个定时器计数寄存器的值后,通过换算,可以得到单位为系统最小时钟周期的精确计时。
如图3所示,RTC模块7实现以秒为计时单元,计时总长没有限制的计时。定时器模块8则实现以最小计时单元为单位,总计时周期为一秒的计时。两个计时模块协调工作,实现精度高,总计时长度无限制的计时。
依据上述步骤配置好中央处理器定时器和实时时钟并并对其进行初始化后,打开实时时钟和中央处理器定时器开始计时,同时运行待测试的程序。中央处理器定时器每运行到达溢出时间1秒后,将自动重置初始值,进行下一个一秒的计时,当程序运行结束,同时读取RTC模块和定时器模块所记录的数据,RTC模块记录的时间为秒以上时间,定时器模块记录的时间为秒以下的时间,两者合计并转化为统一计时单位即为程序的总运行时间,而且可以精确到纳秒级。
Claims (6)
1.一种软件计时方法,利用实时时钟实现以秒为计时单位、计时总长没有限制的计时,同时利用中央处理器的定时器实现以最小计时单元为单位、总计时周期为一秒的计时,其特征在于所述的方法包括以下的步骤:
(a)初始化实时时钟以及相应的中央处理器的定时器,配置相关参数,中央处理器的定时器设置为自动重装模式,溢出时间设置为1秒;
(b)打开中央处理器的定时器;
(c)打开实时时钟;
(d)开始测试过程,运行待测试对象,与此同时实时时钟和中央处理器的定时器开始记录时间;
(e)中央处理器的定时器溢出后,自动重置初始值,开始第二个1秒的计时;
(f)测试过程结束后,读取实时时钟和中央处理器的定时器的当前计数值,记录这个时间值;
(g)关闭实时时钟和中央处理器定时器,停止计时。
2.根据权利要求1所述的软件计时方法,其特征在于所述的中央处理器的定时器既可以是一个定时器也可以是多个级联定时器,其中多个级联定时器设定其总溢出时间为1秒。
3.根据权利要求1所述的软件计时方法,其特征在于所述的中央处理器的定时器时钟源为通用系统时钟。
4.根据权利要求1所述的软件计时方法,其特征在于所述的测试过程结束后记录的时间值可换算为以ns为单位的时间值。
5.根据权利要求1所述的软件计时方法,其特征在于所述的中央处理器的定时器最小计时单元可以是定时器的一个时钟周期,也可以是定时器的几个时钟周期。
6.根据权利要求1所述的软件计时方法,其特征在于所述的待测试对象可以是程序模块,也可以是程序的某个部分。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005101006561A CN100533394C (zh) | 2005-10-22 | 2005-10-22 | 一种软件计时的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005101006561A CN100533394C (zh) | 2005-10-22 | 2005-10-22 | 一种软件计时的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1952901A true CN1952901A (zh) | 2007-04-25 |
CN100533394C CN100533394C (zh) | 2009-08-26 |
Family
ID=38059254
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005101006561A Expired - Fee Related CN100533394C (zh) | 2005-10-22 | 2005-10-22 | 一种软件计时的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100533394C (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102087513A (zh) * | 2010-12-14 | 2011-06-08 | 广东雅达电子股份有限公司 | Plc定时器的定时扩展方法 |
CN105653242A (zh) * | 2015-12-28 | 2016-06-08 | 北京经纬恒润科技有限公司 | 一种计时方法及装置 |
CN106020332A (zh) * | 2016-05-31 | 2016-10-12 | 乐视控股(北京)有限公司 | 计时处理方法及系统 |
CN106066829A (zh) * | 2016-06-13 | 2016-11-02 | 江西洪都航空工业集团有限责任公司 | 一种弹载嵌入式控制软件周期耗时实时计算方法 |
CN108304031A (zh) * | 2018-03-07 | 2018-07-20 | 杭州先锋电子技术股份有限公司 | 一种时钟走时系统、方法、设备及计算机存储介质 |
CN110609464A (zh) * | 2018-06-14 | 2019-12-24 | 株洲中车时代电气股份有限公司 | 一种嵌入式通讯系统的授时方法和系统 |
-
2005
- 2005-10-22 CN CNB2005101006561A patent/CN100533394C/zh not_active Expired - Fee Related
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102087513A (zh) * | 2010-12-14 | 2011-06-08 | 广东雅达电子股份有限公司 | Plc定时器的定时扩展方法 |
CN105653242A (zh) * | 2015-12-28 | 2016-06-08 | 北京经纬恒润科技有限公司 | 一种计时方法及装置 |
CN105653242B (zh) * | 2015-12-28 | 2018-01-26 | 北京经纬恒润科技有限公司 | 一种计时方法及装置 |
CN106020332A (zh) * | 2016-05-31 | 2016-10-12 | 乐视控股(北京)有限公司 | 计时处理方法及系统 |
CN106066829A (zh) * | 2016-06-13 | 2016-11-02 | 江西洪都航空工业集团有限责任公司 | 一种弹载嵌入式控制软件周期耗时实时计算方法 |
CN108304031A (zh) * | 2018-03-07 | 2018-07-20 | 杭州先锋电子技术股份有限公司 | 一种时钟走时系统、方法、设备及计算机存储介质 |
CN110609464A (zh) * | 2018-06-14 | 2019-12-24 | 株洲中车时代电气股份有限公司 | 一种嵌入式通讯系统的授时方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN100533394C (zh) | 2009-08-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100533394C (zh) | 一种软件计时的方法 | |
CN101145125A (zh) | 一种测量多任务操作系统任务cpu占用率的方法 | |
US11539355B2 (en) | Systems and methods for generating a controllable-width pulse signal | |
CN105115548A (zh) | 具有阶梯计价功能的物联网智能燃气表 | |
CN100501694C (zh) | 处理器利用率的测量装置及方法 | |
CN112653533A (zh) | 一种复杂系统智能授时管理方法 | |
Moy et al. | Modeling power consumption and temperature in TLM models | |
CN104063223A (zh) | 一种fpga实现软件编程器件可控看门狗功能的方法 | |
CN105717979A (zh) | 基于时间戳和计数器的时钟装置及其实现方法 | |
CN101908012A (zh) | 时钟信号测试装置及测试方法 | |
CN115576855B (zh) | 实时操作系统的实时性测试方法 | |
CN1295614C (zh) | 一种测试用软件计时方法 | |
CN205156932U (zh) | 物联网智能燃气表阶梯计价系统 | |
CN104123966A (zh) | 一种基于自动地周期性读操作的读取速度测量电路 | |
CN107566199B (zh) | 信号处理装置和方法及包括该装置的电子设备 | |
Bhattacharjee et al. | LECTOR based clock gating for low power multi-stage flip flop applications | |
US20140173264A1 (en) | Priority activation of metrology driver in boot sequence | |
US8160845B2 (en) | Method for emulating operating system jitter | |
CN100589050C (zh) | 一种毫秒级精度计时方法 | |
CN108375898B (zh) | 一种计算机高精度授时控制方法 | |
CN101303662B (zh) | 一种实现风机转速采集的方法及装置 | |
CN105222846A (zh) | 物联网智能水表阶梯计价的实现方法 | |
CN2867407Y (zh) | 一种毫秒级精度计时装置 | |
CN114385340B (zh) | eCos系统中CPU占用率的统计方法 | |
CN115328750A (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090826 Termination date: 20181022 |
|
CF01 | Termination of patent right due to non-payment of annual fee |