一种软件计时的方法

文档序号:6643875阅读:322来源:国知局
专利名称:一种软件计时的方法
技术领域
本发明涉及到一种软件计时的方法,尤其是一种测试用的软件计时方法。
背景技术
现有技术有多种测试用计时方法,但在无线通信系统中,现有的软件计时方法往往误差较大,不能满足较高的精度要求。如果要求较高的计时精度,则需要增加额外的硬件如数字信号处理器(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模块记录的时间为秒以上时间,定时器模块记录的时间为秒以下的时间,两者合计并转化为统一计时单位即为程序的总运行时间,而且可以精确到纳秒级。
权利要求
1.一种软件计时方法,利用实时时钟实现以秒为计时单位、计时总长没有限制的计时,同时利用中央处理器的定时器实现以最小计时单元为单位、总计时周期为一秒的计时,其特征在于所述的方法包括以下的步骤(a)初始化实时时钟以及相应的中央处理器的定时器,配置相关参数,中央处理器的定时器设置为自动重装模式,溢出时间设置为1秒;(b)打开中央处理器的定时器;(c)打开实时时钟;(d)开始测试过程,运行待测试对象,与此同时实时时钟和中央处理器的定时器开始记录时间;(e)中央处理器的定时器溢出后,自动重置初始值,开始第二个1秒的计时;(f)测试过程结束后,读取实时时钟和中央处理器的定时器的当前计数值,记录这个时间值;(g)关闭实时时钟和中央处理器定时器,停止计时。
2.根据权利要求1所述的软件计时方法,其特征在于所述的中央处理器的定时器既可以是一个定时器也可以是多个级联定时器,其中多个级联定时器设定其总溢出时间为1秒。
3.根据权利要求1所述的软件计时方法,其特征在于所述的中央处理器的定时器时钟源为通用系统时钟。
4.根据权利要求1所述的软件计时方法,其特征在于所述的测试过程结束后记录的时间值可换算为以ns为单位的时间值。
5.根据权利要求1所述的软件计时方法,其特征在于所述的中央处理器的定时器最小计时单元可以是定时器的一个时钟周期,也可以是定时器的几个时钟周期。
6.根据权利要求1所述的软件计时方法,其特征在于所述的待测试对象可以是程序模块,也可以是程序的某个部分。
全文摘要
本发明提供一种软件计时的方法,利用中央处理器的定时器和实时时钟进行计时,中央处理器的定时器进行秒以下单位的高精度的计时,实时时钟进行秒以上的长时间计时,两者协调运作可以实现不受计时长度限制的精确计时。本发明克服了现有技术计时精度和计时长度不能兼顾的缺陷,充分利用现有器件,在不增加成本和不增加系统运行负担的情况下达到了较好的计时效果。本发明尤其适合程序测试计时。
文档编号G06F11/00GK1952901SQ20051010065
公开日2007年4月25日 申请日期2005年10月22日 优先权日2005年10月22日
发明者李巧珍 申请人:康佳集团股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1