专利名称::可动态补偿定时器的不准确性的定时器系统与相关方法
技术领域:
:本发明涉及一种定时器系统,特别涉及一种可动态补偿定时器的不准确性的定时器系统与相关方法。
背景技术:
:在各种电子装置之中,定时器系统(timersystem)是用来辅助对各种运算的编程(scheduling)工作以及管理工作的重要组件。通常定时器系统的工作方式是跟踪(tracking)时间的变化,并且在经过一特定量的时间之后,发出(issue)警告信息(alarm)。至于定时器系统在实施上则可以分成两种类别,分别是软件式(software-based)与硬件式(hardware-based)两类。软件式定时器系统是利用一电子装置中的一微处理器来执行一软件定时器程序(softwaretimerprogram),以轮询(poll)设置在该电子装置中的一硬件定时器。该硬件定时器则在经过一特定量的时间之后,发出中断信息(interrupt)以通知该微处理器。然而,除了很难撰写出适当的程序代码执行上述功能之外,前述的作法还会占用到额外的系统资源(systemresource)。至于硬件式定时器系统则是使用独立的硬件装置来执行前述软件定时器程序的功能。在这种作法下,撰写程序代码的工作会变的较为简单,且省下来的系统资源还可以提供给其它的任务使用。在大多数的情形下,一定时器系统会包含有一定时器,耦合于一时钟源(clocksource)、一计数器、一比较器、以及储存有一阀值(threshold)的一储存装置。每当经过一特定的时间之后,该定时器就会产生出一事件(event)。而该时钟源会输出一时钟信号以驱动该定时器,而依据该时钟信号,定时器即可跟踪究竟经过了多少时间。该计数器是连接于该定时器,用来计算该定时器所产生的事件的数量。该比较器是用来比较该计数器所算出的一计数值与该储存装置中的该阀值。该阀值是用来表示该定时器系统在经过了多少时间之后,必须发出一警告信息(alarm)。因此,每当该计数值等于该阀值时,该定时器系统即会发出一警告信息。前述的定时器系统具有一个主要的缺点就是大多数定时器中的时钟源都不稳定(unstable)。而时钟源的不稳定性(instability)则表示定时器无法很准时地产生每一个事件,亦即定时器系统所产生的警告信息在时间上并不一定是准确的。举例来说,假设定时器的设置是每经过20ms即产生一事件,而定时器系统必须在经过200ms之后发出警告信息,在此种情形下,必须经过10个事件之后,才会经过200ms的时间,因此必须将阀值设定为10。理想上来讲,当定时器产生到第10个事件之后,计数值即会等于阀值,此时定时器系统就会发出警告信息,表示已经经过了200ms的时间。然而,如前所述,通常时钟源不是很稳定,因此定时器有可能每经过大于20ms的时间(例如40ms)才会产生一次事件。此时,当计数值到达10的时候,会相等于阀值,定时器系统会因而发出警告信息,然而,由于时钟源的不稳定,此时可能已经过了400ms的时间,而不只是200ms而已。而现有技术中有一种静态的(static)解决方法,可以在定时器无法准时产生事件时,对计数器进行补偿。举例来说,以上述定时器每经过40ms(而非20ms)及产生一次事件的情形为例。在此现有技术的作法下,定时器系统会检测一第一事件是否准确地经过20ms之后就产生出来。若真的是20ms,则系统不会有补偿的动作。若是所需的时间不同,则定时器系统会产生一补偿值来递增(increment)计数器。明显地,在上述例子中,40ms并不等于20ms。由于计数器理想上必须每经过20ms即产生一事件,故对40ms的补偿值应该设成2。因此计数器在知道第一事件产生后,会使用此补偿值(2)来执行递增工作,并在后续事件产生时亦使用此补偿值(2)来执行递增工作。因此,只要经过5次事件之后,计数器的计数值就会等于阀值,故定时器系统可以在200ms之后发出警告信息。然而,此种现有技术有一个缺点,就是会将时钟源的不稳定性(instability)假设为固定的值。换句话说,在得知定时器花了40ms才产生第一事件之后,此种现有技术就会假设所有的事件都需要40ms才会产生。很明显地,当时钟源的不稳定性不具有固定值时,系统就会产生错误计时的问题。举例来说,假设定时器需要40ms来产生第一事件,需要60ms来产生该第二事件,需要80ms来产生第三事件,而后续的各个事件则皆须20ms,则在前述静态的解决方案下,定时器系统在得知第一事件经过了40ms才发生后,后续每个事件产生时,系统都会使用补偿值(2)来对计数器执行递增工作。因此只要经过5个事件之后,计数值就会等于阀值。然而,经过5个事件之后,实际上却会经过220ms的时间(而不是预期的200ms)。若是让计数值经过4个事件之后即等于阀值,则系统的计时工作才会正确,然而,由于此种现有技术在计算补偿值时具有静态的本质(亦即只能使用固定的补偿值来进行修正),故并没有办法达到准确计时的功效。
发明内容因此本发明的目的之一,在于提供一种可动态补偿定时器的不准确性的定时器系统与相关方法,以解决现有技术所面临的问题。根据以下的一实施例,本发明是揭露一种设置在一电子装置中的定时器系统,可对其定时器的不准确性进行补偿。该定时器系统包含有一定时器,用来依据一预设时间间隔重复地触发一参考事件;一第一储存单元,用来储存一阀值;一第二储存单元,用来储存对应于该定时器所产生的多个参考事件的一计数值;一跟踪模块,电连接于该定时器,用来跟踪一第一与一第二参考事件之间的一实际时间间隔,其中该第二参考事件是发生在该第一参考事件之后;一计算模块,电连接于该跟踪模块,用来依据该预设时间间隔与该实际时间间隔计算一补偿值;一补偿模块,电连接于该计算模块,用来减小该计数值与该阀值之间的一差异值;以及一决定逻辑,用来在该计数值不再小于该阀值时产生一应答事件。根据以下的另一实施例,本发明是揭露一种方法,用来对设置在一电子装置中的定时器系统的定时器的不准确性进行补偿。该方法包含有以下步骤储存一阀值;储存一计数值,其中该计数值是对应于由该定时器所产生的多个参考事件;跟踪一第一参考事件与一第二参考事件之间的一实际时间间隔,其中该第二参考事件是发生在该第一参考事件之后;依据该预设时间间隔与该实际时间间隔计算一补偿值;使用该补偿值来减小该计数值与该阀值之间的一差异值;以及若该计数值到达该阀值则产生一应答事件。本发明的好处之一在于,所使用的补偿值可以依据参考事件间波动的时间间隔而动态地改变,而非如现有技术一般只使用固定的补偿值。由于本发明使用了动态改变的补偿值,因此在计时上可以比现有技术更为准确。图1是本发明的定时器系统的一实施例示意图。图2是图1的定时器系统所使用的方法的一流程图。图3是图1的定时器系统所使用的方法的另一流程图。附图符号说明10定时器系统20定时器30跟踪模块32时钟产生器40计算模块50补偿模块60、70储存单元80比较器90控制器具体实施方式请参阅图1,图1是本发明的定时器系统的一实施例示意图。本实施例中的定时器系统10包含有一定时器20、一跟踪模块(trackingmodule)30、一计算模块40、一补偿模块50、一第一储存单元60(用来储存一阀值TH)、一第二储存单元70(用来储存一计数值CV)、一决定逻辑(即比较器80)、以及一微处理器(即控制器90)。除此之外,跟踪模块30还包含有一时钟产生器32,用来提供一参考时钟,以正确地跟踪由定时器20所触发的每两个相邻的事件(event)之间的一实际时间间隔。然而,由于时钟产生器32无法发出系统中断信息(interrupt),因此只能用来提供参考时钟,而不能代替定时器的功能。如前所述,将定时器系统10设置成软件式的定时器系统或硬件式的定时器系统皆是可行的作法。若是设置成硬件式的定时器系统,则定时器系统10之中的组件就是各种硬件装置;若是设置成软件式的定时器系统,就必须使用一微处理器来实现控制器90、计算模块40、补偿模块50、储存单元60、70以及比较器80,并正确地执行软件定时器程序。换句话说,控制器90、计算模块40、补偿模块50、储存单元60、70、以及比较器80可以设置在前述的微处理器之中,并执行软件定时器程序以触发(trigger)通知信息(notification);相反地,控制器90、计算模块40、补偿模块50、储存单元60、70、以及比较器80亦可以是单纯的硬件装置,以不执行软件定时器程序的方式来触发通知信息。定时器20是用来连续地在每经过一预设时间值后,产生一事件,举例来说,其所产生的事件可以是系统中断(systeminterrupt)。跟踪模块30是电连接于定时器20,用来跟踪两个事件之间所历经的一实际时间间隔值。计算模块40是电连接于跟踪模块30,用来依据该预设时间值与该实际时间间隔值来计算出一补偿值。补偿模块50是连接于计算模块40以及储存单元60、70中的至少一者,用来减小计数值CV与阀值TH之间的差异值。储存单元60储存有阀值TH,其是代表了所应经过的事件的数量;储存单元70储存有计数值CV,用来跟踪所应经过的事件的适当的数量。该决定逻辑(亦即比较器80)是用来判断是否计数值CV已到达阀值TH,在「是」的状况下,则产生出一应答信息(acknowledgementsignal)。在本实施例中,控制器90是以一不稳定的驱动时钟(drivingclock)来驱动定时器20,并可接收自比较器80送来的应答信息。由于该驱动时钟是不稳定的,因此定时器20的特性亦会变得不稳定。请注意,上述的描述仅用来作为本发明的一个例子,并不限制本发明的申请专利范围。请参阅图2,图2是图1的定时器系统10所使用的方法的一流程图。该方法是用来动态地补偿定时器20的不准确性(imprecision)。以下将详述图2的各个步骤步骤100开始。步骤110储存阀值。由定时器系统10将一阀值TH存入储存单元60之中。此一阀值TH是用来控制在比较器80产生出应答信息送至微处理器90之前,所应经过的时间长度。步骤120跟踪实际时间间隔。使用不稳定的驱动时钟,定时器20可连续地在每次经过一预设时间值之后,产生出一事件。当定时器20产生出一第一事件时,跟踪模块30即会开始使用由时钟产生器32所输出的正确的参考时钟,来计算直到定时器20产生出一第二事件时,所经过的时间长度,以得出一实际时间间隔值。步骤130计算补偿值。使用该实际时间间隔值与该预设时间值,计算模块40可决定出一适当的补偿值,以对计数值CV及/或阀值TH进行调整。步骤140减少差异值。依据由计算模块40所决定出的该补偿值,补偿模块50可减少于阀值TH与计数值CV之间的差异值。步骤150阀值TH与计数值CV是否相互吻合?由比较器80负责检查储存单元70中的计数值CV是否已经到达储存单元60中的阀值TH的大小。若计数值CV并未到达阀值TH的大小,即回到步骤120。若计数值CV已到达阀值TH,则进入步骤160。步骤160产生应答信息。在计数值CV到达阀值TH的情形下,即代表已经经过了预期所欲经过的时间,故比较器80可产生出一应答信息并传送至微处理器90。步骤170结束。请同时参阅图1与图2。在步骤110中,定时器系统10是将阀值TH储存在储存单元60之中。阀值TH是用来控制定时器系统10以产生应答信息。在步骤120中,在定时器20依据预设的时间间隔产生各个事件的时候,跟踪模块30会开始利用由时钟产生器32所产生的正确的参考时钟来计算两个连续产生的事件之间的时间间隔。换句话说,透过定时器20与时钟产生器32之间的同步关系(synchronization),将可得出两个连续产生的事件间所经历正确的时间间隔,因此本发明可以达到正确跟踪实际时间间隔的目的。前文所提到的实际时间间隔值将会由计算模块40使用在步骤130之中,以产生出一补偿值。在此一实施例中,该补偿值是为实际时间间隔值相对于该预设时间的一比率(ratio),至于该预设时间则是依照使用者的设定,定时器20据以产生各个事件的参考标准。而在本实施例中是以最近的整数值来作为该比率值。举例来说,若前述的比率是为5∶2,则本发明可以整数3来代替所使用的比率值;相似地,若前述的比率是为10∶3,则本发明可以以整数3来代替所使用的比率值。请注意在本发明其它的实施例中,亦可使用浮点数(floatingpoint)来代表该比率值,此时就不用选用最接近的整数来代替,且数值的精确程度还可由使用者自行选择。举例来说,5∶2可以用2.5来代表其比率值。请注意,上述使用最接近整数或浮点数来代表比率值的方式仅是说明中所使用的例子,并不限定本发明的申请专利范围。接下来,在步骤140中,补偿模块50会使用补偿值来减小储存单元60中的阀值TH与储存单元70中的计数值CV之间的差异值。而在本实施例中,补偿模块50是直接将补偿值加入计数值CV之中。举例来说,若补偿值等于3,则计数值CV就会被增加3(请注意此处所述的作法仅是其中一种可行的方式)。在其它的实施例中亦可以将补偿值拆开来,分别用以修改计数值CV与阀值TH,或是仅对阀值TH进行修改。举例来说,在补偿值等于3的情形下,有的实施例可以将计数值CV增加2并将阀值TH减小1,有的实施例则可以仅将阀值TH减小3。这三种作法仅是在实施上几种可行的作法,并不限制本发明的申请专利范围。在步骤140中缩小了差异值之后,在步骤150中比较器80会检查计数值CV是否已到达阀值TH的大小。若计数值CV尚未到达阀值TH,即表示预期所欲经过的时间长度还没到达,因此定时器系统10会回到步骤120,以更进一步减小计数值CV与阀值TH之间的差异值。然而,若计数值CV与阀值TH已相互吻合,则表示已经经过了预期所欲经过的时间长度了,故此时比较器80会发出一应答信息以告知控制器90。接下来,控制器90即可在收到应答信息之后执行后续该执行的任务。请同时参阅图3与图2。图3是图1的定时器系统10所使用的方法的另一流程图。图3与图2所示的流程图具有大致上相同的步骤,不同之处在于图3中多了一个步骤180。很明显的,图2所示的流程图仅是一个时间跟踪机制(trackingmechanism),用来跟踪特定的时间长度,亦即,在经过了特定的时间之后,图2所示的流程一定会发出一应答信息。然而,除了用来跟踪特定的时间长度之外,本发明亦可以用来安排执行一预期任务的时间。举例来说,在加载一光盘的时候,光驱(opticaldiskdrive)通常需要在一预设时间内确认该光盘的种类(例如是CD-R或是CD-RW)。当光盘加载光驱中时,图3所示的流程图会在步骤100开始执行。依据前述的预设时间,本发明是在步骤-110中决定出阀值TH。请注意,由于步骤110、120、130、140、150、160皆已在前文中做过详细的说明,故在此不多作赘述。如图3所示,若计数值CV尚未到达阀值TH,即会进入步骤180中以检查是否已完成预期任务(在本实施例中是为判定光盘的种类)。若预期任务已经完成了,则图3所示的流程图就会从步骤180直接跳到步骤170以结束整个流程(即使在计数值CV尚未到达阀值TH的情形下,亦会结束整个流程)。换句话说,这就表示光驱已经在预设时间内分辨出光盘所属的种类,因此不需要再花后续的时间来进行盘片种类判定的工作。另一方面,若光驱无法在预设时间内判断出光盘的种类,则在计数值CV到达阀值TH的情形下,在步骤160中就会产生出一应答事件以回报任务失败的情形。总结来说,本发明的方法不仅可以用来在经过了预设时间之后触发相对应的应答事件,亦可藉由跟踪机制的帮助,来检视一预期任务在预定时间内的执行状况。为了更清楚的说明本发明的概念,先来看看前述的现有技术,定时器预期每经过20ms的预设时间就应该要产生出一事件(因此要到达200ms的话,阀值就必须要设定为10),然而,第一事件经过了40ms才产生,第二事件经过了60ms才产生,第三事件经过了80ms才产生,后续其它的事件则都经过了20ms产生。由于现有技术的解决方案仅会使用固定的补偿值(在这个例子中补偿值是为2),因此定时器系统会在经过5个事件之后到达阀值,总共会经过220ms(而非所期望的200ms)。然而,依据本发明的作法,定时器系统10会在经过4个事件之后到达阀值,所经过的时间则为200ms,正是所期望的时间长度。假设计数值CV的初始值是为0(相对地,阀值TH的初始值则设为10)。当定时器20开始工作时,跟踪模块30会重置以开始进行计数。经过40m之后,定时器20会触发第一事件,此时计算模块40会决定出补偿值等于2(因为实际时间间隔值40ms与默认值20ms之间的比率是等于2)。因此补偿模块50会将2加到计数值CV之中,故计数值CV将会等于2。由于此时计数值CV依旧小于阀值TH,故定时器系统10会回到步骤120。这次(第二次)所经历的实际时间间隔值将会是60ms,因此计算模块40将会决定出补偿值等于3(因为实际时间间隔值60ms与默认值20ms之间的比率是等于3)。经过步骤140之后,计数值CV将会等于5。由于到达步骤150时,计数值CV依旧小于阀值TH,故定时器系统10会再次回到步骤120。这次(第三次)所经历的实际时间间隔值将会是80ms,因此计算模块40将会决定出补偿值等于4(因为实际时间间隔值80ms与默认值20ms之间的比率是等于4)。经过步骤140之后,计数值CV将会等于9。再次执行步骤150系统还是会回到步骤120。在第四次执行步骤120时,实际时间间隔将会等于20ms。因此补偿值会等于1。在步骤140中将此一补偿值1加入计数值CV之后,计数值CV将会等于10,亦即计数值CV已经与阀值TH相互吻合,故比较器80会产生出一应答信息来通知控制器90。在前述以动态方式来调整计数值CV与阀值TH以校正定时器20的不准确性的作法下,定时器系统10将在经过4个事件之后即产生出应答事件,所经历的时间确实会等于预期的200ms。在前面的描述中,阀值TH的初始值是设计成大于计数值CV的初始值。因此,当要使用补偿值M来减小计数值CV与阀值TH之间的差异时,可以将计数值CV加上补偿值M、或是将阀值TH减去补偿值M,或是将计数值CV加上一值N并将阀值TH减去另一值(M-N)。然而,将计数值CV的初始值设计成大于阀值TH的初始值亦是可行的作法,此时,当要使用补偿值M′来减小计数值CV与阀值TH之间的差异时,可以将计数值CV减去补偿值M′、或是将阀值TH加上补偿值M′,或是将计数值CV减去一值N′并将阀值TH加上另一值(M′-N′)。不论是使用上述哪一种作法皆可达成本发明正确跟踪时间的功效。请注意在某些情形下,定时器系统可能会经过比预期更久的时间才发出应答信息,这是因为实际时间间隔值并不一定每次都可以被预设时间值所整除。在这种情形下,若设计者想更进一步增加定时器系统10的准确度,一种方法就是将预设时间值设的更小。举例来说,可以将前述20ms的预设时间值改成10ms。当然,若使用此种作法,则亦需对阀值TH作相对应的修改。当默认值变得更小时,舍去误差(round-offerror)就会变得更小。举例来说,若默认值是为20ms,则最大的舍去误差将会等于10ms。然而,若默认值是为10ms,则最大的舍去误差将会缩小为等于5ms。换句话说,在定时器20使用更小的预设时间值的情形下,因舍去误差所造成的影响就会变得较为不重要。请注意,前述使用储存单元70中的计数值CV来计数所经过的事件仅是一个例子,并不限定本发明的申请专利范围。在本发明其它的实施例中,亦可使用计数值CV来直接表示真正经历的时间长度。举例来说,在上述例子中,除了在实际时间间隔等于40ms时将2存入计数值CV之中以外,定时器系统10亦可直接将40存入计数值CV之中。如此一来,定时器系统10将可直接记录所经历的时间长度(而非所产生的事件的数目)。在此种作法下,将不需要使用计算模块40,且阀值TH将直接设为预期所欲经过的时间长度(而非预期该经过的事件的数目)。总和来说,在定时器需要40ms来产生第一事件,60ms来产生第二事件,80ms来产生第三事件,各20ms来产生后续事件的定时器系统中,阀值可以设定为200,而经过第一事件之后,计数器将递增40(而非2)、经过第二事件之后,计数器将递增60(而非3)、经过第三事件之后,计数器将递增80(而非4),最后,经过第四事件之后,计数器将递增20(而非1),此时计数值CV将会等于200,而相等于阀值TH(亦为200),故定时器系统亦可以于200ms之后正确地产生出应答事件。此种作法的好处在于由于使用了真实的时间来计数(而非使用最接近于产生的事件数目的整数值),因此不会有舍去误差的问题。请注意不论是计算事件的数量或是直接计算经过的时间,都仅是本发明其中的例子而已,并不限制本发明的申请专利范围。很明显地,本发明的一个优点在于,可以提升定时器系统的准确性。藉由动态地调整计数值与阀值之间的差异量,可以补偿定时器系统中不稳定定时器所造成的不准确性(imprecision),因此计时所经过的时间会更接近预期所欲经过的时间长度。故定时器系统的整体效能可以大为提升。以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。权利要求1.一种方法,用来动态地补偿一定时器的不准确性,该定时器是依据一预设时间间隔重复地触发一参考事件,该方法包含有以下步骤储存一阀值;储存一计数值,其中,该计数值是对应于由该定时器所产生的多个参考事件;跟踪一第一参考事件与一第二参考事件之间的一实际时间间隔,其中,该第二参考事件是发生在该第一参考事件之后;依据该预设时间间隔与该实际时间间隔计算一补偿值;以及使用该补偿值来减小该计数值与该阀值之间的一差异值。2.如权利要求1所述的方法,其另包含有若该计数值到达该阀值,则产生一应答事件。3.如权利要求1所述的方法,其中,跟踪该实际时间间隔的步骤另包含有跟踪每二相邻的参考事件之间的一实际时间间隔。4.如权利要求3所述的方法,其中,跟踪该实际时间间隔的步骤另包含有使用一参考时钟来计算一时间值,其中,该时间值是对应于每二相邻的参考事件之间的该实际时间间隔;以及在该参考时钟开始跟踪该第一参考事件与该第二参考事件之间的该实际时间间隔前,重新设定该时间值。5.如权利要求3所述的方法,其中,计算该补偿值的步骤另包含有藉由计算该实际时间间隔对该预设时间间隔的一比率来决定该补偿值。6.如权利要求5所述的方法,其中,计算该补偿值的步骤另包含有使用最接近于该比率的一整数来作为该补偿值。7.如权利要求5所述的方法,其中该补偿值是为记录该实际时间间隔对该预设时间间隔的比率的一浮点值。8.如权利要求1所述的方法,其中,该阀值的一初始值是大于该计数值的一初始值,而使用该补偿值来减小该差异值的步骤另包含有加大该计数值并减小该阀值以该补偿值来减小该差异值。9.如权利要求1所述的方法,其中,该阀值的一初始值是大于该计数值的一初始值,而使用该补偿值来减小该差异值的步骤另包含有将该计数值加上该补偿值而不修改该阀值,以该补偿值来减小该差异值。10.如权利要求1所述的方法,其中,该阀值的一初始值是小于该计数值的一初始值,而使用该补偿值来减小该差异值的步骤另包含有减小该计数值并加大该阀值以该补偿值来减小该差异值。11.如权利要求1所述的方法,其中,该阀值的一初始值是小于该计数值的一初始值,而使用该补偿值来减小该差异值的步骤另包含有将该计数值减去该补偿值而不修改该阀值,以该补偿值来减小该差异值。12.如权利要求1所述的方法,其中,这些参考事件是为系统中断。13.一种方法,用来动态地补偿一定时器的不准确性,该定时器是重复地触发一参考事件,该方法包含有以下步骤储存一阀值与一计数值;跟踪每二参考事件之间的一实际时间间隔;以及累计对应于多个参考数件的多个实际时间间隔以产生一值,并使用该值来更新该计数值。14.如权利要求13所述的方法,其另包含有若该计数值到达该阀值,则产生一应答事件。15.如权利要求13所述的方法,其中,跟踪该实际时间间隔的步骤另包含有跟踪每二相邻的参考事件之间的该实际时间间隔。16.如权利要求15所述的方法,其中,跟踪该实际时间间隔的步骤另包含有使用一参考时钟来计算一时间值,其中,该时间值是对应于每二相邻的参考事件之间的该实际时间间隔;以及在该参考时钟开始跟踪一第一参考事件与一第二参考事件之间的该实际时间间隔前,重新设定该时间值。17.如权利要求13所述的方法,其中,这些参考事件是为系统中断。18.一种定时器系统,包含有一定时器,用来依据一预设时间间隔重复地触发一参考事件;一第一储存单元,用来储存一阀值;一第二储存单元,用来储存对应于该定时器所产生的多个参考事件的一计数值;一跟踪模块,电连接于该定时器,用来跟踪一第一参考事件与一第二参考事件之间的一实际时间间隔,其中,该第二参考事件是发生在该第一参考事件之后;一计算模块,电连接于该跟踪模块,用来依据该预设时间间隔与该实际时间间隔计算一补偿值;以及一补偿模块,电连接于该计算模块以及该第一、第二储存单元中的至少一者,用来减小该计数值与该阀值之间的一差异值。19.如权利要求18所述的定时器系统,其另包含有一决定逻辑,电连接于该第一、第二储存单元,用来在该计数值到达该阀值时产生一应答事件。20.如权利要求19所述的定时器系统,其中,该第一、第二储存单元、该计算模块、该补偿模块、以及该决定逻辑是设置在一微处理器之中,该定时器是由该微处理器所驱动。21.如权利要求18所述的定时器系统,其中,该跟踪模块包含有一时钟产生器,用来提供一参考时钟;其中,该跟踪模块是使用该参考时钟来计算一时间值,该时间值是对应于每二相邻的参考事件之间的该实际时间间隔;该跟踪模块并在该参考时钟开始跟踪该第一参考事件与该第二参考事件之间的该实际时间间隔前,重新设定该时间值。22.如权利要求18所述的定时器系统,其中,该补偿模块是藉由计算该实际时间间隔对该预设时间间隔的一比率来决定该补偿值。23.如权利要求22所述的定时器系统,其中,该补偿模块是使用最接近于该比率的一整数来作为该补偿值。24.如权利要求22所述的定时器系统,其中,该补偿模块是使用一浮点值来作为该补偿值,用来记录该实际时间间隔对该预设时间间隔的该比率。25.如权利要求18所述的定时器系统,其中,该阀值的一初始值是大于该计数值的一初始值,该补偿模块是藉由加大该计数值并减小该阀值以该补偿值来减小该差异值。26.如权利要求18所述的定时器系统,其中,该阀值的一初始值是大于该计数值的一初始值,该补偿模块是藉由将该计数值加上该补偿值而不修改该阀值以该补偿值来减小该差异值。27.如权利要求18所述的定时器系统,其中,该阀值的一初始值是小于该计数值的一初始值,该补偿模块是藉由减小该计数值并加大该阀值以该补偿值来减小该差异值。28.如权利要求18所述的定时器系统,其中,该阀值的一初始值是小于该计数值的一初始值,该补偿模块是藉由将该计数值减去该补偿值而不修改该阀值以该补偿值来减小该差异值。29.如权利要求18所述的定时器系统,其中,这些参考事件是该定时器系统的系统中断。30.一种定时器系统,包含有一定时器,用来重复地触发一参考事件;一第一储存单元,用来储存一阀值;一第二储存单元,用来储存一计数值;一跟踪模块,电连接在该定时器,用来跟踪每二参考事件之间的一实际时间间隔;以及一计算模块,电连接于该跟踪模块,用来累计对应于多个参考事件的多个实际时间间隔以计算出一值,并藉由该值来更新该计数值。31.如权利要求30所述的定时器系统,其另包含有一决定逻辑,电连接于该第一、第二储存单元,用来在该计数值到达该阀值时产生一应答事件。32.如权利要求30所述的定时器系统,其中,该第一、第二储存单元、该计算模块、以及该决定逻辑是设置在一微处理器之中,该定时器是由该微处理器所驱动。33.如权利要求30所述的定时器系统,其中,该跟踪模块包含有一时钟产生器,用来提供一参考时钟;其中,该跟踪模块是使用该参考时钟来计算一时间值,该时间值是对应于每二相邻的参考事件之间的该实际时间间隔;该跟踪模块并在该参考时钟开始跟踪一第一参考事件与一第二参考事件之间的一实际时间间隔前,重新设定该时间值。34.如权利要求30所述的定时器系统,其中,这些参考事件是该定时器系统的系统中断。全文摘要本发明揭露一种可动态补偿一定时器的不准确性的定时器系统与相关方法。该定时器系统包含有一定时器,用来依据一预设时间间隔重复地触发一参考事件;一第一储存单元,用来储存一阀值;一第二储存单元,用来储存对应于该定时器所产生的多个参考事件的一计数值;一跟踪模块,用来跟踪一第一参考事件与一第二参考事件之间的一实际时间间隔;一计算模块,用来计算一补偿值;以及一补偿模块,用来减小该计数值与该阀值之间的一差异值;以及一决定逻辑,用来于该计数值不再小于该阀值时产生一应答事件。文档编号G06F1/04GK1673926SQ20041010022公开日2005年9月28日申请日期2004年12月13日优先权日2004年3月26日发明者丘伟源申请人:联发科技股份有限公司