描述了一种用于事件处理机制的方法和设备。在本发明专利技术的一个实施例下,一种方法包括为多个时间间隔设置定时器,在所述多个时间间隔的每一个的结束处调用轮询功能,该轮询功能由第一处理器来执行;并且如果轮询功能导致肯定的结果,则使用第二处理器处理该轮询功能的结果。
【技术实现步骤摘要】
【国外来华专利技术】
本专利技术的实施例一般地涉及计算机操作,更具体地涉及事件处理机制。
技术介绍
在计算机操作中,通常存在一些过程以考虑到特定的事件处理。在一个常见的例子中,可以存在一个中断过程,其中中断信号是使用来暂停正常的系统操作并且将处理转移到特定事件。然而,中断过程的利用系统的本质也要求额外开销,且因此减缓了处理。在某些环境中,特定的事件处理可以改为由定时器中断来操控,一种可以被称作为“免中断(interrupt free)”的系统。如果某些事件需要监控,则这种类型的事件处理机制可以被修改以包括周期的轮询,通过该轮询,一个过程、连接或其它项会以一定的间隔被检查或轮询来确定是否需要动作。周期的轮询可以通过使用周期的定时器事件和每次定时器期满时实现的功能来加以实现。然而,周期轮询可能在处理器操作上强加一定的花费。轮询操作必须按应用所需要的去足够频繁地执行。然而,应用需要的轮询越频繁,所引起的性能损失越大。附图简述通过参照下面的描述和用于示例本专利技术的实施例的附图,本专利技术可以得到最佳理解。在附图中附图说明图1示出了一个常规的中断处理;图2示出了在多处理器系统中周期轮询的一个实施例;图3示出了在一个事件处理机制中处理器任务的一个实施例;图4示出了用于一个事件处理机制的处理器操作的一个实施例;图5示出了为事件处理使用另一个处理器的处理机制的处理器操作的一个实施例;图6示出了在一个计算机系统中事件处理的实施例的流程图;以及图7示出了一个典型计算机环境的实施例的框图。具体实施例描述了一种用于事件处理机制的方法和设备。在描述可以实现本专利技术的各种实施例的典型环境之前,将简单定义在本申请中使用的某些术语。如这里所用到的,“引导(bootstrap)处理器”指用来初始化系统的处理器。系统的初始化可以包括引导一个操作系统。如这里所用到的,“应用处理器”指除了引导处理器之外的处理器,用于执行系统中的应用和进程。根据本专利技术的一个实施例,事件机制被提供在多处理器(MP)或超线程(HT)计算机结构中。根据本专利技术的实施例,事件机制通过允许一个物理或逻辑处理器来从事正常的处理、而同时将特定的事件操作定向到另一个物理或逻辑处理器来实现。在一个例子中,一个物理或逻辑处理器可能是一个引导处理器并且另一个物理或逻辑处理器可能是一个应用处理器。在本专利技术的一个实施例下,计算机结构利用定时器中断来进行事件通知。在一个实施例下,使用定时器中断来实现周期轮询。该周期轮询操作包括被以一定的时间间隔设置的定时器中断,让功能或其它动作在定时器刚一达到一个时间间隔时就被调用。根据一个实施例,一个物理或逻辑处理器至少部分地与执行周期轮询任务的另一个物理或逻辑处理器并行地执行正常处理。在本专利技术的一个特定实施例下,多处理器(MP)或超线程(hyper-threading)(HT)结构被用于为Intel公司的EFI(可扩展固件接口)实现并行事件处理机制。(EFI接口在技术规范,即Intel公司在2002年12月1日的1.10版本、在2003年11月26日更新的可扩展固件接口技术规范中被更充分地加以描述。)该事件处理机制利用了“免中断”环境中的异步事件通知,该通知指示了唯一可用的中断为定时器中断。该定时器中断是EFI环境下的唯一异步事件源并且可用于实现异步事件通知。在本专利技术的一个实施例下,事件处理机制是基于定时器中断。为了实现事件处理机制,通过利用周期的定时器事件来实现周期轮询。通过调用事件和定时器服务,程序驱动器将创建一个周期的定时器事件并且对于该事件登记一个回调(callback)通知功能。该回调功能可以由事件处理机制周期地(例如,每1毫秒一次)执行。在一个例子中,USB(通用串行总线)驱动器可以登记一个回调功能,该回调功能周期地轮询一个或者多个USB端口以确定是否有任何USB设备的插入或移除的事件已经发生。然而,事件处理机制的一个实施例可以是为需要周期轮询的任何事件来实现的。虽然“免中断”方法可以简化一个计算机结构,比如EFI结构,并且因此增强系统的稳定性,但是在比如,举例来说对其而言实时性能是很关键的网络堆栈或其它网络处理的情况中存在着麻烦。在一个用于网络堆栈的事件处理机制中,轮询功能可以被实现来周期地轮询网络接口卡(NIC)以便以适时方式获得到来的数据。因为到来的数据的频率和被接收的数据的长度通常是不可预料的,并且因为通常不可能对于网络的当前状况做出任何假设,所以可能需要相对短的定时器周期来以足够的频率轮询以防止数据的丢失。然而,通过支持定时器中断来实现的周期轮询机制通常将中断用于一个处理器的正常的执行线程并且因此导致对正常执行的线程的性能的负面影响。在周期轮询中使用的定时器周期越短,则在轮询上所花费的CPU(中央处理单元)周期越多,并且其它任务可用的CPU周期越少。在复杂过程的处理中,比如TCP/IP(因特网协议上的传输控制协议),周期定时器事件自身的处理机可能变得复杂。结果,整个系统执行可能被大大减缓。在某些点上,例如在计算节点之间存在大量的数据传送的模块式计算环境中,速度上的损失可能变得无法忍受。因此,随着周期轮询更频繁地发生,对于正常执行线程的性能损失可能增加,但是周期轮询的频率需要足够高以获得应用所需的实时性能。在本专利技术的一个实施例下,执行线程的性能和事件机制的性能之间的冲突通过利用在MP/HT平台中提供的额外处理能力来减轻。在本专利技术的一个实施例下,事件处理机制从引导处理器(BSP)转移到应用处理器(AP)。在这个实施例中,事件处理的负担被从引导处理器移到应用处理器,从而免去了引导处理器的操作。通常对于MP/HT系统,外部中断可以被分发到引导处理器或应用处理器,这些处理器对于中断分发目的而言是等同的。在本专利技术的一个实施例下,在平台初始化的一开始,应用处理器专用于处理定时器中断,并且该定时器中断被指定为只分发到那个应用处理器。在这个实施例中,所述指定的应用处理器因此专用于事件处理,因为事件处理机制是基于定时器中断。应用处理器负责执行通过使用周期的定时器事件而实现的周期轮询任务。引导处理器于是负责执行正常的计算任务。正常的计算任务和周期的轮询任务被并行执行,至少部分地在时间上重叠。在这个实施例中,周期的轮询任务并不带来对于正常任务的重大性能损失,并且周期的轮询任务可以按需要被频繁地执行,以便满足特定应用的需要。在常规的BIOS中(基本输入-输出系统),引导处理器可以负责执行正常任务和事件处理。事件处理,尤其是通过使用周期定时器事件实现的周期轮询任务,对于正常任务的执行有重大的负面影响。在一个事件处理机制的实施例下,引导处理器仅执行正常任务并且一个指定的应用处理器提供给事件处理。通过利用另一个处理器进行事件处理的事件机制,正常任务的性能和事件处理的实时性能都可以得到提高。在利用了典型的BIOS PXE(预引导执行环境)引导的本专利技术的一个实施例中,带有多处理器的事件处理的采用既可以减小引导时间又可以提高网络堆栈的性能,这进而又可以减少数据分组的丢失。在本专利技术的这样的实施例下,对于现有的结构有很少的影响,因此使之比较易于实现和布置。在一个可能的实例中,EFI为一个单线程且“免中断”的环境,使该执行的线程仅由一个定时器中断来中断。周期轮询机制可以通过支持定时器中本文档来自技高网...
【技术保护点】
一种方法,包括:为多个时间间隔设置定时器;在所述多个时间间隔的每一个的结束处调用轮询功能,该轮询功能由第一处理器来执行;并且如果该轮询功能导致肯定的结果,则用该第二处理器处理该轮询功能的结果。
【技术特征摘要】
【国外来华专利技术】1.一种方法,包括为多个时间间隔设置定时器;在所述多个时间间隔的每一个的结束处调用轮询功能,该轮询功能由第一处理器来执行;并且如果该轮询功能导致肯定的结果,则用该第二处理器处理该轮询功能的结果。2.权利要求1的方法,其中轮询功能包括轮询网络堆栈。3.权利要求1的方法,其中第一处理器为应用处理器。4.权利要求3的方法,还包括声明第一处理器专用于该轮询功能。5.权利要求1的方法,其中第二处理器为引导处理器。6.权利要求1的方法,其中正常执行线程由第二处理器至少部分地与第一处理器对轮询功能的执行相并行地处理。7.权利要求1的方法,其中定时器中断是用于第一处理器和第二处理器的异步事件处理的唯一方法。8.一种事件处理机制,包括第一处理器,该第一处理器在每次中断定时器达到一个特定的时间间隔时为事件处理执行一个轮询操作;以及第二处理器,该第二处理器用来执行正常的处理操作,如果该轮询操作提供了肯定的结果,那么该第一处理器传送数据给第二处理器以便处理。9.权利要求8的事件处理机制,其中轮询操作的执行与正常处理操作的执行至少部分重叠。10.权利要求8的事件处理机制,其中第一处理器专用于事件处理。11.权利要求8的事件处理机制,其中用于轮询操作的事件包括网络堆栈事件。12.权利要求8的事件处理机制,其中第一处理器和第二处理器为单独的物理处理器。13.权利要求8的事件处理机制,其中第一处理器和第二处理器为一单个物理处理器中的逻辑处理器。14.一种计算机系统,包括第一处理器,该第一处理器用来为计算机系统执行事件处理功能;第二处理器,该第二处理器用来...
【专利技术属性】
技术研发人员:L陈,F金,J梅,C宋,Y孙,
申请(专利权)人:英特尔公司,
类型:发明
国别省市:US[美国]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。