避免长延迟事件发生的方法技术

技术编号:2842114 阅读:171 留言:0更新日期:2012-04-11 18:40
一种避免长延迟事件的方法,应用于一处理器的工作程序中,其于处理器检查一状态(status)是否发生的步骤中,如果该状态并没有发生,则执行一资源释放程序让该处理器在一特定的时间内,执行一第一工作程序,以避免处理器的长延迟发生。

【技术实现步骤摘要】

本专利技术系有关一种防止长延迟事件发生的程序,特别是有关于在处理器中防止长延迟事件发生的程序。
技术介绍
在现今的处理器工作程序中,当许多个不同的工作程序要交由同一个处理器作运算执行时,如何安排工作的处理次序是门重要的课题。当处理器中具有多个不同的工作等待被执行时,适时地让具有急迫性的工作先被完成,而较不急迫的工作则延后执行是在习知的技术中常见的处理方式。上述有关于工作急迫性的区分,则牵扯到在已有技术之中有关于「优先权」概念的使用。对于重要性较高的工作程序,则处理器给予相对较高的优先权以及早处理;反之,对于重要性较低的工作程序,那么处理器就会给予相对较低的优先权以延后处理。可想而知的,对于被认定为最重要的工作,那么处理器势必会给予最高的优先权,以及最多的运算资源以最快地完成工作。但在已有技术中,偶而会有最重要的工作必须先满足某一特定条件之后才可被执行的情况发生,因此如果该特定条件不能够在一特定的时间内被满足的话,那么所有在处理器中的工作程序都将因此而被延后执行,此即所谓的「长延迟事件」。图1显示一传统处理器中工作程序的流程图。首先在步骤100中,是驱动处理器的驱动程式被启动;接着在步骤103中,驱动程式检查一事件(event)是否发生,若事件未发生则重复地再检查,直到该事件发生才进入下一步骤,而上述所谓的事件也就是驱动程式即将要执行的工作,一般而言,在电脑系统中的驱动程式所要处理的工作,都是重要性较高的工作,因此处理器将会在处理完该事件后,才继续执行其它的工作;而当该事件发生时,会执行一时间延迟程序106,让处理器执行一回圈,其目的是为了让处理器静待一段时间以等待一状态(status)发生,而所谓的状态是指一个必要条件,在满足此必要条件的前提下,才可以使事件被执行,而上述的事件与状态,都会在接下来的内文中举例说明之。当执行完时间延迟程序106后,接着便执行轮询状态(poll status)109步骤,如果状态符合事件可以被执行的条件,那么就执行事件目标功能(performevent destination function)112,这时处理器会处理该事件,然后进入步骤115中,驱动程式会执行其它的功能操作,最后再重新回到步骤103中;而如果在步骤109中,状态不符合事件可以被执行的条件,那么就会重新回到时间延迟程序106中。由以上的说明可知,如果在步骤109中的状态迟迟不能符合事件可被执行的条件,那么处理器的效能将重复地耗费在步骤106与步骤109上,而使得长延迟(long latency)的情形发生。鉴于上述在习知驱动程式中可能发生的长延迟情形,特别是处理之事件需透过设定状态位元通知处理器,而不是利用中断的方式通知处理器,因而造成处理器无法处理其它的工作,因此极需要提出一种可以在驱动程式的执行过程中暂时释放处理器资源以完成其它工作的方法,以避免处理器耗费过多的时间在等待。
技术实现思路
鉴于上述之先前技术中传统驱动程式的诸多缺点,本专利技术的主要目的在于提出一种可以暂时释放处理器资源,以避免长延迟事件的方法。本专利技术的另一目的在提出一种处理器处理工作的方法,其可以在长延迟事件发生时,仍然能够暂时处理其它的工作。根据以上所述之目的,本专利技术提供了一种可以在处理器工作程序中,避免长延迟事件的方法,主要包含以下步骤(a)重复检查一事件(event)是否发生;(b)当事件发生时,执行一时间延迟程序以等待一第一预设值的时间经过;(c)检查一状态(status)是否发生;及(d)当步骤(c)中的该状态没有发生时,执行一资源释放程序,让该处理器在一第二预设值的时间内执行其它的工作程序,然后再回到步骤(b)。附图说明图1显示习知的处理器工作流程图;图2显示水平遮蔽与垂直遮蔽的示意图;及图3显示符合本专利技术的处理器工作流程图。具体实施方式本专利技术的一些实施例会详细描述如下。然而,除了详细描述外,本专利技术还可以广泛地在其他的实施例中施行,且本专利技术的范围不受限定,其以之后的专利范围为准。本专利技术揭露一种可以在驱动程式的执行过程中暂时释放处理器资源以完成其它工作的方法。此方法可以应用于任何具有轮询(polling)功能的处理器驱动程式上。接下来将以一个实施例来说明本专利技术之内容。在常见的电脑系统中,当系统所执行的工作较为单调或是对于运算处理的效能需求不大时,那么此时为了节省资源,电脑系统会自动判定对中央处理器(CPU)进行降低工作时脉频率的处理,或是降低供给中央处理器的工作电压。但由于电脑系统此时仍处于工作状态,所以在对中央处理器进行上述的变动时,必须在适当的时机作调整才不至于影响电脑系统目前正在处理的工作。举例来说,假设电脑系统目前只进行播放VCD而没有执行其它的工作时,那么因为电脑系统并不需要中央处理器全部的运算资源,所以此时驱动程式可以对中央处理器降低工作频率或是降低工作电压以节省资源的浪费,而这即所谓一个事件(event)的发生。在一事件发生后,接着驱动程式应当等待一个适当的时机,也就是说在该时机的电脑系统正处于某种状态(status)中,可以执行降低工作频率或是降低工作电压的处理。在本例中,其中一个上述的状态条件,指的是屏幕的显示正好处于”垂直遮蔽”(vertical blanking)或是”水平遮蔽”(horizontal blanking)的时候。在第二A图中显示一垂直遮蔽与一水平遮蔽的例子。当一屏幕要显示一画面,那么此画面依次是由屏幕的最左上角开始,由左至右的显示出第一列的像素(pixel),接着再从第一列最后一个像素移动至第二列的第一个像素,再由左至右的显示出第二列,然后依序显示接下来的每一列直到最后一列的最后一个像素,也就是该屏幕的最右下角为止。而当屏幕要显示下一画面时,那么则必须从屏幕的最右下角再重回到屏幕的最左上角之后,才开始作画面的显示。在以上的说明中,当屏幕的显示由某一列的最后一个像素,返回至下一列的第一个像素位置之间的时间差,就是所谓的”水平遮蔽”。在水平遮蔽的期间屏幕将不会显示任何新的像素。而屏幕从最后一列的最后一个像素,返回至屏幕第一列的第一个像素准备要显示下一画面时,这中间的时间差即称之为”垂直遮蔽”。同样地,在垂直遮蔽的期间屏幕也将不会显示任何新的像素。在上述的”水平遮蔽”或是”垂直遮蔽”的期间,由于没有任何像素作显示的动作,因此可以被利用来执行事件而不至于使屏幕上的画面显示不连贯,特别是”垂直遮蔽”所持续的时间较长,所以在本例中以”垂直遮蔽”的发生定义为事件可执行的状况已满足。但在本专利技术的应用上,并不限定电脑系统所执行的单调工仅为播放VCD,也不限定在本专利技术中的事件仅表示中央处理器的降低工作频率或是降低工作电压,而且状态也不限定仅表示”垂直遮蔽”的发生。图3显示本专利技术的处理器工作流程图。本专利技术提供一种可以暂时释放处理器资源的方法。首先在步骤300中,是处理器的驱动程式被启动;接着在步骤303中,驱动程式检查一事件(event)是否发生,若事件未发生则重复地再检查,直到该事件发生才进入下一步骤,在本例中的事件是指电脑系统为了节省资源而对中央处理器作降低工作频率或是降低工作电压;而当该事件发生时,会执行一时间延迟程序306,让处理器执行一回圈,其目的是为了让处理器静待一段时间以等待一状态(stat本文档来自技高网
...

【技术保护点】
一种避免长延迟事件的方法,应用于一处理器的工作程序中,包含:(a)重复检查一事件(event)是否发生;(b)当该事件发生时,执行一时间延迟程序以等待一第一预设值的时间经过;(c)检查一状态(status)是否发生; 及(d)当步骤(c)中的该状态没有发生时,执行一资源释放程序让该处理器在一第二预设值的时间内,执行一第一工作程序,然后再回到步骤(b)。

【技术特征摘要】

【专利技术属性】
技术研发人员:平德林
申请(专利权)人:矽统科技股份有限公司
类型:发明
国别省市:71[中国|台湾]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1