处理多个电平触发和边沿触发中断的方法和装置的利记博彩app

文档序号:6418874阅读:383来源:国知局
专利名称:处理多个电平触发和边沿触发中断的方法和装置的利记博彩app
技术领域
本发明涉及计算机。更具体说,本发明涉及控制计算机中断的中断控制器。
计算机是基本上做3种事情的机器。首先,它接收输入。第二,它根据一组规定的规则处理输入。第三,根据该组规定的规则它产生处理输入的结果作为输出。
为执行这些任务,一般来说,计算机包括输入设备,诸如键盘,它接收输入;输出设备,诸如打印机或视频显示器,它输出结果;和处理器,诸如中央处理单元(CPU),它执行处理。在当今的个人计算机中,CPU可以是微处理器。另外,计算机可以有存储器。这种存储器可以由处理器使用来存储数据。或者可以使用该存储器存储计算机指令,这种指令以微代码形式放在存储器中。
当计算机正在运行和处理器正根据规定的规则组处理先前由该计算机接收到的输入时,处理器可能接收请求注意的请求。例如,处理器可能接收来自键盘的请求,接收新的输入。这种请求注意的请求叫作中断。
一般说来,当处理器接收中断时,它挂起当前操作,保存它的工作的状态,并转移控制到一个特殊的子例程,该子例程包含处理引起该中断的特定情况的指令。中断可以由各种硬件设备产生以请求服务或报告问题,或由处理器自身响应程序错误或请求操作系统服务产生。中断是处理器与组成计算机系统的其它元件通信的方式。如果产生多于一个请求的话,中断优先级的层次结构决定哪一个中断请求被首先处理。当一个程序需要处理器完全注意来完成一个特定任务时,该特别的程序可以临时禁止某些中断。
一般来说,可以认为中断是计算机的一个特征,它允许一个程序的执行被中断以便执行另一程序。该另一程序可以是当一个特别的中断发生时被执行的特别的程序。由不同原因产生的中断具有不同的处理程序以执行相应的任务,诸如更新系统时钟或读取键盘。在存储器中存储的一张表包含指针,有时称为地址向量,它们引导处理器到各个中断处理程序。程序可以产生中断处理程序来替换或补充现有处理程序。另一可选方案为,其它程序可以是仅当以中断的方式请求时发生的程序,有时称为中断驱动的处理。在被请求的任务完成后,CPU于是自由而执行其它任务,直到下一中断发生。中断驱动的处理器有时用于响应这样的事件,诸如软磁盘驱动器准备好传输数据。
一般说,计算机包含一条硬件线路,有时叫中断请求线,诸如键盘或磁盘驱动器等设备能通过它传送中断到CPU。这种中断请求线装进计算机的内部硬件中,并指定不同的优先级,以便CPU能决定资源和到来的服务请求的相对重要性。
特定计算机处理中断的方式由计算机的中断控制器决定。每一个中断有一个特征,它允许中断控制器作为中断识别它。一个这种特征是中断的触发方式。一般来说,有两种触发方式,边沿触发和电平触发。对边沿触发的中断,中断控制器识别中断源信号的正向边沿作为有效中断请求;对电平触发的中断,中断控制器识别中断源信号的静态高电平作为有效中断请求。
在某些精密的现代微处理器中,诸如英特尔公司制造的PentiumPROTM微处理器,包括高级可编程中断控制器。这一现有技术处理器的高级可编程中断控制器(称为APIC),包括一个APIC输入/输出(I/O)模块,它接收来自I/O设备的系统中断请求,并引导它们到处理器包含的本地APIC模块。一个三线APIC总线把所有这些设备连接在一起。APIC总线在APIC I/O模块和处理器中包含的本地APIC模块之间传送消息。每一处理器也有两个本地中断引脚,叫LINT0和LINT1,用于从外部连接到本地处理器的设备。
当现有技术的APIC I/O模块通过APIC总线发送中断请求时,所有本地APIC模块都评估通过APIC总线传送的信息。被作为目标的本地APIC模块识别、接收和服务该中断请求。
当该现有技术的设备接收中断时,使在相应于中断向量号的触发方式寄存器中的位反映该中断是边沿触发中断还是电平触发中断。在该现有技术的设备中的触发方式寄存器是一个256位寄存器,用于跟踪每一中断的触发方式。软件程序员可以编程中断控制器的内部寄存器,以对每一中断源识别是边沿触发中断还是电平触发中断。
边沿触发的中断输入只支持连接到给定中断输入到I/O APIC的单一中断源设备。当一个中断被触发后,现有技术的I/O APIC在APIC总线上发送一个中断请求。在传递该中断请求后,I/O APIC自动清除它的中断待处理位并准备识别来自同一中断源的另一边沿触发中断。
在中断服务例程期间,现有技术设备的程序员清除中断源设备中的中断待处理位。这将通知设备当前中断正在被服务,可以发布另一中断请求。在中断服务例程结束时,程序员通过在中断寄存器的本地APIC末尾都写零来执行中断命令的结束,从而,使其它待处理中断被服务。这引起本地中断服务寄存器中最高优先级中断请求被清除,阻止再一次为它服务。
电平触发中断允许不止一个中断源设备共享一条中断线。当由电平触发中断服务例程执行中断结束命令时,现有技术的本地APIC必须广播一个中断结束消息到I/O APIC。该中断结束消息包含刚才服务的电平触发中断的向量。如果仍然确立相应于该中断结束向量的中断输入,则I/O APIC识别共享同一中断线的另一设备为请求设备,并在APIC总线上传送另一中断请求。I/O APIC不能检测中断输入是否仍被确立,因为触发最初请求的设备仍然被服务,或者因为另一设备正在确立一个中断请求。所以,中断服务继续,直到某一时间点,中断线上的电平无效,I/O APIC传送撤销消息,该消息清除中断待处理条件。
现有技术设备的256位触发方式寄存器跟踪并识别一个待处理中断是边沿触发还是电平触发。边沿触发中断意味每一特定极性边沿有一个中断调用;电平触发中断意味只要存在静态电平就有连续中断调用,这样就可能有不止一个中断调用。
在比PentiumPROTM更高级,更快的处理器中,APIC必须广播一个撤销消息的以上方案将产生多个虚幻中断(multiple ghostinterrupts),因为该清除消息通过微处理器的各种系统接口缓冲器需要很长时间。
本发明提供流水线高级可编程中断控制器(SAPIC),它消除了对触发方式寄存器的需要。在本发明里,软件负责电平触发中断处理以与输入/输出系统通信。这样在硬件中不需要关于某中断是边沿触发还是电平触发的知识。结果,原来用于触发方式寄存器的部分芯片可以用于实现更加智能的逻辑,从而给芯片生产者更大的投资回报,并允许系统高速操作而没有多个虚幻中断的问题。
本发明的一个方面,提供一种方法,用于决定需要服务的最高优先级待处理中断是否是一个激活的电平触发中断。该方法包括决定相应于最高优先级待处理中断的向量是否匹配与特定中断输入关联的向量;如果是,则决定与该特定中断输入关联的向量是否被编程为一个电平触发输入;如果是,则决定该特定中断输入的电平状态是否激活;如果是,则为该最高优先级待处理中断发送一个电平触发激活消息。
本发明的另一方面,提供一种方法,用于决定在一个中断被服务后某电平触发中断是否在激活状态,该方法包括决定相应于刚被服务的中断的向量是否匹配与待处理中断关联的向量;如果是,则决定该待处理中断是否被编程为一个电平触发中断;如果是,则决定该待处理中断的电平状态是否激活;如果是,则为该待处理中断发送一个电平触发激活消息。
根据本发明的另一方面,提供一种装置,包括一个可操作以指示某中断正被服务的中断服务寄存器,一个可操作以指示某中断正等待处理的中断请求寄存器。这些寄存器的每一个是一个多位寄存器。还包含一个比较器,可操作以比较相应于最高优先级待处理中断的向量和与某特定待处理中断输入关联的向量。该比较器连接到一个控制发生器。可操作该控制发生器有选择地清除或设置与最高优先级待处理中断关联的中断服务寄存器位,和有选择地设置或清除与最高优先级待处理中断关联的中断请求寄存器位。
本发明既支持边沿触发中断也支持电平触发中断,而不需内务处理控制的额外开销和为这种控制的存储逻辑,也不需要任何握手操作。随着下面更详细地叙述本发明,这些和其它优点将十分明显。
阅读下面详细的说明并参考附图,本发明的其它目的和优点将显而易见,附图中

图1是根据本发明的可编程中断控制器的原理方框图;图2和图4是根据本发明的两个实施例用于处理电平触发中断和边沿触发中断的装置的原理方框图;图3和图5是根据本发明的两个方面的方法的逻辑流程图。
虽然本发明容易进行各种修改和采取其它形式,但是以附图中的示例表示和在这里详细描述它的一个特定的实施例。然而,应该明白,这里对该特定实施例的说明不是要限制本发明为特定的公开形式,恰恰相反,本发明覆盖落入在所附权利要求中规定的本发明的精神和范围内的所有修改、同等物、和替代物。
下面说明本发明的示意实施例。为清楚起见,在本说明书中不叙述实际实现的所有特征。当然应该理解,在任何这种实际实施例的开发中,必须做出大量针对特定实现的决策以达到开发人员特定的目的,诸如遵从与系统有关和与业务有关的约束,它将依不同实现而变化。此外,应该理解,这种开发努力可能复杂而耗时,然而对于熟悉本技术领域的人来说,在该公开后,无非是例行工作。
现在参考附图,特别是图1,它以方框图的形式表示根据本发明一个方面的可编程中断控制器的基本内部结构。来自不同中断源的中断110被可编程中断控制器接收,排出优先级,然后被发送到CPU内核。接受逻辑112接收每一个中断。接受逻辑监视中断,如果它满足基本中断准则(例如屏蔽等等)就调度它。然后用向量解码器114解码该中断,然后分配到在中断请求寄存器(IRR)116中的一个特定位置。
通过在中断请求寄存器(IRR)116中锁存一个特定中断,可编程中断控制器登记该中断。然后该中断被发送到优先级判别器118和/或任务优先级寄存器(TPR)120,在优先级判别器118中进来的中断与一个已存在的中断比较。某中断正在等待服务的指示被发送到微处理器内核122。
响应某中断正在等待服务的指示,可编程软件经由控制寄存器存取总线(CRAB)126对中断向量寄存器(IVR)124执行读操作。
根据图1说明的实施例,可编程中断控制器通过把中断向量放在CRAB总线126上来响应该读操作。内核122从CRAB总线126接收向量,并根据接收的向量进入一个中断服务例程。
对中断向量寄存器(IVR)124的读操作引起该中断从中断请求寄存器(IRR)116移到中断服务寄存器(ISR)128。当内核122完成中断服务例程时,它对中断结束(EOI)寄存器130进行写操作。这将导致可编程中断控制器抛弃中断服务寄存器(ISR)128中包含的中断,使中断服务寄存器返回其最初状态。
迄今为止,已经说明了单一中断的处理。在操作中,在说明的实施例中可服务多达242个中断,只要操作系统允许中断多重嵌套。以及,也可以有多达242个待处理中断。
中断110包括中断LINT0和中断LINT1,在本发明的特定实施例中,它们是各自与本地中断引脚0和本地中断引脚1关联的本地中断。设备能被连接到处理器的本地中断引脚,并经由这些引脚和与每一引脚关联的中断线能直接向本地SAPIC提供中断请求。
在本发明的一个实施例中,中断LINT0和中断LINT1中的任一个可以是电平触发中断或边沿触发中断。
现在参考图2,中断LINT0和中断LINT1都由边沿-电平检测器210接收。该检测器为它接收的每一个中断决定该中断是否有效确立自已是电平触发中断。
继续参考图2,包括两个本地重定向寄存器,LRR0和LRR1,分别通过参考数字212和214表示。寄存器LRR0和LRR1接收和存储分别与本地中断引脚LINT0和LINT1关联的中断向量。在本发明的一个实施例中,每一个寄存器212和214是64位寄存器。位7-0用于存储为某特定中断源编程的向量号,位15用于存储为该特定中断源编程的触发方式。在本发明的一个实施例中,位15包含0表示某中断源被编程为边沿触发中断,位15包含1表示某中断源被编程为电平触发中断。
在图2说明的实施例中表示的其它寄存器包括中断结束(EOI)寄存器216,中断请求寄存器(IRR)218,中断服务寄存器(ISR)220,中断向量寄存器(IVR)222,最高优先级中断寄存器224,和最高服务中断寄存器226。
中断结束(EOI)寄存器实际上是一个伪寄存器。在完成为最高优先级待处理中断的中断处理程序例程后,软件负责对EOI寄存器的地址执行写操作以清除与该中断关联的一个特定位(在中断服务寄存器内),下面将更详细说明。在操作中,对中断结束寄存器的写操作指示软件准备接收同一或较低优先级的另一中断,其由任务优先级寄存器决定。
中断请求寄存器(IRR)跟踪待处理中断。待处理中断是已经由处理器接收但还未被服务的中断。当一个中断被接收时,它被寄存在IRR中。当读中断向量寄存器时,在IRR中具有最高优先级的中断被解码并作为中断向量提供。一旦该向量信息被传送到处理器,该中断就移动到中断服务寄存器。
中断服务寄存器(ISR)跟踪当前正由处理器服务的中断。当读中断向量寄存器时,最高优先级待处理中断向量被送到CPU,将设置相应ISR位,下面将更详细说明。该位将保持设置直到由处理器对中断结束寄存器写操作,下面将更详细说明。如果在较低优先级中断的服务期间接收到较高优先级中断,则ISR寄存器可能有多位被设置。这些较高优先级中断将在最初中断服务内被嵌套和服务。
最高优先级中断寄存器用来保存最高优先级中断(HPI)的值。最高优先级中断(HPI)是已经接收但还未服务的最高优先级中断的向量号;最高优先级中断(HPI)有时称为最高优先级待处理中断。
最高服务中断寄存器跟踪当前正被服务的中断的优先级,用于保存最高服务中断(HSI)的值。最高服务中断(HSI)是正被服务的最高优先级中断的向量号。
在所说明的实施例的操作中,一些中断110可以是电平触发中断(LINT0和LINT1),而其它是边沿触发中断。图1和图2中表示的中断控制器适当地处理每一中断类型。当某中断已经被服务并且中断结束(EOI)寄存器被写时,如果该中断是边沿触发中断,则为该中断清除中断待处理状态,如果该中断是电平触发中断,则可以清除或不清除。
对边沿触发中断,只有一个中断源连接到某特定中断引脚,所以,当与该特定引脚关联的中断已经被服务时,与该特定引脚关联的所有中断也已被服务。电平触发中断不是这样;对于电平触发中断,可以把多于一个的中断源连接到某特定中断引脚,例如,与在图1和图2表示的实施例中的LINT0和LINT1关联的本地中断引脚。因为不止一个中断源设备可以连接到同一中断引脚,从而连接到同一中断请求线,因此该线路可以保持高电平,指示某中断正在等待处理,即使完成了连接到那条线的一个设备的服务,因为连接到那条线上的其它设备可以仍然有等待处理的中断。
这样,虽然软件以读中断向量寄存器(IVR)和写中断结束(EOI)寄存器来处理所有中断,但是对于边沿触发中断实际发生的必须不同于对于电平触发中断所发生的。
根据本发明的一个实施例,图3表示中断结束(EOI)寄存器写的某个逻辑流图,根据本发明的另一个实施例,图5表示中断向量寄存器(IVR)读的某个逻辑流图。
首先参考图3,菱形框320,330和340是做判定,矩形框310,350和360是在EOI写时从事的任务。刚被服务的中断是需要服务的最高优先级中断。包含在中断服务寄存器(ISR)中相应于该中断的位先前已被设置以指示它是原先正被服务的中断,相应于中断请求寄存器(IRR)中的中断的位先前已被设置以指示它原先是需要服务的中断源,而在最高服务中断寄存器HSI中包含的向量号是为该中断的向量号。
如果已经被服务的中断例如在与本地中断引脚0关联的中断线上,则与LINT0关联的IRR位和与LINT0关联的ISR位先前各自被设置。由于中断已被服务,控制器必须决定是否应该清除与刚被服务的中断关联的IRR位和/或ISR位。对例如与本地中断引脚0关联的电平触发中断,如果与该引脚关联的所有中断已被服务,则应该清除这些位的每一个;但是如果不是所有这些中断均已被服务,则需要做某些事情来指示需要进一步的服务。另一方面,如果该中断是边沿触发中断,例如,图1表示的各种中断110中除了LINT0和LINT1的一个中断,则与中断请求寄存器(IRR)中的中断关联的位应该被清除以指示该请求已被服务,与中断服务寄存器(ISR)中的中断关联的位应该被清除以指示已完成该服务。图3表示的逻辑流图有效和迅速地完成这些任务。
在所示实施例中,电平触发中断可能发生在与LINT0和LINT1关联的中断线上,而不是任何其它中断线上。因此,根据本发明的一个实施例,把最高服务中断(HSI)和与LINT0关联的向量比较,也与LINT1关联的向量比较(矩形框310)。然后做框320的判定在HSI和与LINT0关联的向量或与LINT1关联的向量之一之间是否存在匹配?如果不存在,则清除IRR位(矩形框350)和清除ISR位(矩形框360)。
反之,另一方面,如果存在匹配,例如与LINT0关联的向量,则必须决定LINT0是否被编程为电平触发中断。这一信息包含在LINT0的本地重定向寄存器中的位15,亦即图2的寄存器212,LRR0位15。如果不是,则清除IRR位(矩形框350)和清除ISR位(矩形框360)。
如果LINT0被编程为电平触发中断,则必须决定与LINT0关联的中断线的电平状态是激活还是未激活(菱形框340)。如果该电平状态未激活,则清除IRR位(矩形框350)和清除ISR位(矩形框360)。如果电平状态为激活状态,则清除ISR位(矩形框360),保留IRR位设置。
图2表示的LRR0/1比较器228执行图3表示的矩形框310的比较步骤。比较器228接收关于来自图2所示寄存器226的最高服务中断(HSI)的信息,该信息是为刚已被服务的中断的向量号;来自寄存器212和214关于与本地中断引脚0关联的和与本地中断引脚1关联的待处理中断的输入;来自检测器210关于本地中断引脚0和本地中断引脚1的电平状态的输入。
比较器228,配合控制发生器230,有选择地写中断请求寄存器(IRR)218和写中断服务寄存器(ISR)220(图3中分别为矩形框350和360),如图3所示方法指示。
这样,根据本发明的这一方面,如果最高服务中断(HSI),亦即刚已被服务的中断,具有和与LINT0或LINT1之一关联的待处理中断的同一向量号(能在LRR0/1寄存器找到),则认为它们匹配。如果该匹配的待处理中断被编程为电平触发(能在LRR0/1寄存器位15找到),并且如果与该匹配的待处理中断关联的引脚的电平状态为激活状态,则不清除与有该匹配向量的本地中断引脚关联的中断请求寄存器(IRR)位。即使清除与该引脚关联的中断服务寄存器(ISR)位,也不清除该位,从而指示与该引脚关联的电平触发中断是待处理服务,即使与该引脚关联的电平触发中断刚刚已被服务。
图3表示的为本发明的一个实施例的逻辑流图,发生在一个中断被服务后对中断结束(EOI)寄存器的写操作时。在中断结束(EOI)寄存器的写操作期间,该逻辑流图需要访问中断服务寄存器(ISR)和中断请求寄存器(IRR)。
在本发明的一个特定实施例中,在中断向量寄存器(IVR)读操作时既可访问中断服务寄存器(ISR)也可访问中断请求寄存器(IRR),但在中断结束(EOI)寄存器的写操作时不可以。图4表示该实施例,图5表示为该实施例的逻辑流图,是在中断向量寄存器(IVR)读操作时的逻辑流图。图4实施例在某些方面不同于图2实施例。例如IVR寄存器而不是EOI寄存器连接到比较器,HPI寄存器而不是HSI寄存器连接到比较器。
现在参考图5,菱形框520,530,540是用于判定,矩形框510,550和560是在IVR读时执行的任务。接收到一个中断,中断请求寄存器(IRR)中相应于该中断的位被设置,指示它是需要服务的中断源。包含在中断服务寄存器(ISR)中相应于该中断的位先前已被清除,且仍然没有被设置。
在中断向量寄存器(IVR)读操作时,控制器必须决定是否应该清除与最高优先级待处理中断关联的IRR位。对电平触发中断,例如,与本地中断引脚关联的一个中断,如果与该引脚关联的所有中断都已被服务,则应该清除IRR位;如果不是所有这些中断都已被服务,则应该保留设置。对边沿触发中断,例如,图1表示的各种中断110中除了LINT0和LINT1外的一个中断,应该清除IRR位。图5表示的逻辑流图有效和迅速地完成这些任务。
在所示实施例中,电平触发中断可能发生在与LINT0和LINT1关联的中断线上,而不是在任何其它中断线。因此,根据本发明的一个实施例,把相应于最高优先级中断请求寄存器(IRR)位(就是现在要被服务的中断的IRR位)的向量和与LINT0关联的向量比较,也和与LINT1关联的向量比较(矩形框510)。然后框520进行判定在相应于最高优先级IRR位的向量和与LINT0关联的向量或与LINT1关联的向量之一之间是否存在匹配?如果不存在,则清除IRR位(矩形框550)和设置ISR位(矩形框560)。
反之,另一方面,如果存在匹配,例如,和与LINT0关联的向量匹配,则必须决定LINT0是否编程为电平触发中断。这一信息包含在LINT0的本地重定向寄存器的位15,亦即图2的寄存器212,LRR0位15。如果不是,则清除IRR位(矩形框550)和设置ISR位(矩形框560)。
如果LINT0被编程为电平触发中断,则必须决定与LINT0关联的中断线上的电平状态是激活还是未激活状态(菱形框540)。如果该电平状态未激活,则清除IRR位(矩形框550)和设置ISR位(矩形框560)。如果电平状态为激活,则设置ISR位(矩形框560),保留IRR位设置。
在该实施例中,图4表示的LRR0/1比较器428执行图5所示矩形框510的比较步骤。比较器428接收关于来自图4所示寄存器424的最高待处理中断(HPI)的信息,该信息是为现在要被服务的中断的向量号;来自寄存器412和414关于与本地中断引脚0关联的和与本地中断引脚1关联的待处理中断的输入;来自检测器410关于本地中断引脚0和本地中断引脚1的电平状态的输入。
比较器428,配合控制发生器430,有选择地写中断请求寄存器(IRR)418和写中断服务寄存器(ISR)420(图5中分别为矩形框550和560),如图5所示方法指示。
这样,根据本发明的这一方面,如果最高待处理中断(HPI),亦即现在要被服务的中断,具有和与LINT0或LINT1之一关联的待处理中断同样的向量号(能在LRR0/1寄存器找到),则认为它们匹配。如果该匹配的待处理中断被编程为电平触发(能在LRR0/1寄存器位15找到),并且如果与该匹配的待处理中断关联的引脚的电平状态为激活状态,则不清除与具有该匹配向量的本地中断引脚关联的中断请求寄存器(IRR)位。即使与该引脚关联的中断服务寄存器(ISR)位被设置,也不清除该位。
在该实施例中的中断处理结束时,软件对中断结束(EOI)寄存器130执行写操作,这将清除最高优先级中断服务寄存器(ISR)位,指示已完成为该中断的服务。
对该实施例中的电平触发中断,仅当接收到一个电平撤销消息时才清除中断请求寄存器(IRR)位。电平撤销消息由图4检测特定LINT0或LINT1引脚从高过渡到低的边沿检测器410引起。
在本发明的另一实施例中,为每一LINT0和LINI1包括一个单独的中断结束寄存器。虽然这将减少需要的控制逻辑,但是它要为现在3个EOI寄存器增加存储空间。
在本发明的另一实施例中,LINT0和LINT1共用一个中断结束寄存器。该实施例中,除了需要附加的一个EOI寄存器外,还需要传送参数以识别对中断结束寄存器的写操作是为LINT0还是为LINT1。
以上公开的特定实施例仅仅是举例,因为十分明显,对于熟悉本技术领域并具有这里讲授的知识的人来说,本发明可以修改和以不同但等价的方式实现。此外,除了下面所述的权利要求之外,对这里表示的结构或设计的细节没有限制。因此十分明显,以上公开的特定实施例可以改变或修改,所有这些改变都被认为在本发明的范围和精神之内。因此,在下面权利要求中陈述此处寻求的保护。
权利要求
1.一种方法,用于当一个待处理中断要么是电平触发中断或者是边沿触发中断时决定最高优先级待处理中断是否是有效电平触发中断并当其是时通知计算机处理器,这里,每一中断有一个与其关联的中断向量,这里,电平触发中断有一个电平状态,其在该中断等待服务时为激活状态,而当该中断不是等待服务时为非激活状态,以及这里计算机包括中断输入,可操作以接收一个或者多个电平触发中断,该方法包括步骤判定相应于最高优先级待处理中断的向量是否匹配与在所述中断输入上的待处理中断关联的向量;如果是,则判定在所述中断输入上的待处理中断是否被编程为一个电平触发中断;如果是,则判定在所述中断输入上的待处理中断的电平状态是否是激活状态;如果是,则为该最高优先级待处理中断发送一个电平触发的中断激活消息。
2.权利要求1所述方法,其中,所述计算机包括一个中断请求寄存器,可操作以指示一个中断正在等待处理,其中,所述中断请求寄存器是一个多位寄存器,以及其中,发送电平触发中断激活消息的步骤包括保留中断请求寄存器中与最高优先级待处理中断关联的位的设置。
3.权利要求1所述方法,其中,每一中断向量包括一个向量号,以及,其中决定相应于最高优先级待处理中断的向量是否匹配与所述中断输入上的待处理中断关联的向量的步骤包括比较与最高优先级待处理中断关联的向量号和与所述中断输入上的待处理中断关联的向量号的步骤。
4.一种方法,用于当一个待处理中断要么是电平触发中断要么是边沿触发中断时决定最高优先级待处理中断是否是有效电平触发中断并当其是时通知计算机处理器,这里,每一中断有一个与其关联的中断向量,这里,电平触发中断有一个电平状态,其在该中断等待服务时为激活状态,而当该中断不在等待服务时为非激活状态,以及,计算机包括一个中断输入,可操作以接收一个或者多个电平触发中断;一个中断服务寄存器,可操作以指示某中断正被服务;和一个中断请求寄存器,可操作以指示某中断正在等待处理,其中,中断请求寄存器是一个多位寄存器,中断服务寄存器是一个多位寄存器,该方法包括步骤如果编程最高优先级待处理中断为电平触发中断,且如果该最高优先级待处理中断是激活的话,则比较相应于该最高优先级待处理中断的向量和与所述中断输入上的待处理中断关联的向量;以及发送一个最高优先级待处理中断的电平触发中断激活消息。
5.权利要求4所述方法,其中,比较步骤包括决定与最高优先级待处理中断关联的向量是否匹配与所述中断输入上的待处理中断关联的向量。
6.权利要求5所述方法,其中,决定步骤包括如果与最高优先级待处理中断关联的向量不和与所述中断输入上的待处理中断关联的向量匹配的话,则清除与该最高优先级待处理中断关联的中断请求寄存器位,以及设置与该最高优先级待处理中断关联的中断服务寄存器位。
7.权利要求5所述方法,其中,决定步骤包括如果与最高优先级待处理中断关联的向量的确与所述中断输入上的待处理中断关联的向量匹配的话,则决定所述中断输入上的待处理中断是否被编程为电平触发中断。
8.权利要求7所述方法,其中,决定步骤包括如果所述中断输入上的待处理中断未被编程为电平触发中断的话,则清除与该最高优先级待处理中断关联的中断请求寄存器位,设置与该最高优先级待处理中断关联的中断服务寄存器位。
9.权利要求7所述方法,其中,决定步骤包括如果所述中断输入上的待处理中断被编程为电平触发中断的话,则决定所述中断输入上的待处理中断的电平状态是否是激活。
10.权利要求9所述方法,其中,决定步骤包括如果所述中断输入上的待处理中断的电平状态未激活,则清除与该最高优先级待处理中断关联的中断请求寄存器位,以及设置与该最高优先级待处理中断关联的中断服务寄存器位。
11.权利要求9所述方法,其中,发送步骤包括如果所述中断输入上的待处理中断的电平状态是激活状态,则保留与最高优先级待处理中断关联的中断请求寄存器位的设置;设置与最高优先级待处理中断关联的中断服务寄存器位。
12.权利要求4所述方法,其中,发送步骤包括保留与最高优先级待处理中断关联的中断请求寄存器位的设置;设置与最高优先级待处理中断关联的中断服务寄存器位。
13.权利要求4所述方法,其中,每一中断向量有一个向量号,其中,比较相应于最高优先级待处理中断的向量与所述中断输入上的待处理中断关联的向量的步骤包括比较与最高优先级待处理中断关联的向量号和与所述中断输入上的待处理中断关联的向量号的步骤。
14.一种装置,用于当一个待处理中断要么是电平触发中断要么是边沿触发中断时决定最高优先级待处理中断是否是有效电平触发中断并当其是时通知计算机处理器,这里,每一中断有一个与其关联的中断向量,这里,电平触发中断有一个电平状态,其在该中断等待服务时为激活状态,而当该中断不在等待服务时为非激活状态,包括可操作以接收一个或多个电平触发中断的中断输入;可操作以指示中断正被服务的中断服务寄存器,所述中断服务寄存器是一个多位寄存器;可操作以指示一个中断正在等待处理的中断请求寄存器,所述中断请求寄存器是一个多位寄存器;比较器,可操作以比较相应于最高优先级待处理中断的向量和与所述中断输入上的待处理中断关联的向量;连接到比较器的控制发生器,可操作以设置与最高优先级待处理中断关联的中断服务寄存器位和保留设置与最高优先级待处理中断关联的中断请求寄存器位,如果与最高优先级待处理中断关联的向量匹配与所述中断输入上的待处理中断关联的向量,且如果所述中断输入上的待处理中断被编程为电平触发中断,且所述中断输入上的待处理中断的电平状态在激活状态的话。
15.权利要求14所述装置,另外包括一个解码器,其可操作以决定一个待处理中断是否被编程为电平触发中断。
16.权利要求14所述装置,另外包括一个检测器,可操作以决定一个待处理中断是否是激活的电平触发中断。
17.权利要求14所述装置,其中,每一中断向量包含一个向量号,其中,通过比较与最高优先级待处理中断关联的向量号和与所述中断输入上的待处理中断关联的向量号,可操作所述比较器以比较相应于最高优先级待处理中断的向量和与所述中断输入上的待处理中断关联的向量。
18.一种方法,用于当一个待处理中断要么是电平触发中断或者是边沿触发中断时决定某电平触发中断在某中断已被服务后是否在激活状态,并当其是时通知计算机处理器,这里,每一中断有一个与其关联的中断向量,这里,电平触发中断有一个电平状态,其在该中断等待服务时为激活状态,而当该中断不在等待服务时为非激活状态,该方法包括步骤决定相应于刚已被服务的中断的向量是否匹配与某个待处理中断关联的向量;如果是,则决定该待处理中断是否被编程为电平触发中断;如果是,则决定该待处理中断的电平状态是否是激活状态;如果是,则为该待处理中断发送一个电平触发中断激活消息。
19.权利要求18所述方法,其中,该计算机包括一个中断请求寄存器,可操作以指示某中断正等待处理,其中,所述中断请求寄存器是一个多位寄存器,其中,发送电平触发中断激活消息的步骤包括保留设置在与刚被服务的中断关联的中断请求寄存器中的位的步骤。
20.权利要求18所述方法,其中,每一中断向量包含一个向量号,其中,决定相应于刚被服务的中断的向量是否匹配与某待处理中断关联的向量的步骤包括比较与刚被服务的中断关联的向量号和与该待处理中断关联的向量号的步骤。
21.一种方法,用于当一个待处理中断要么是电平触发中断要么是边沿触发中断时决定某电平触发中断在某中断已被服务后是否在激活状态,并当其是时通知计算机处理器,这里,每一中断有一个与其关联的中断向量,这里,电平触发中断有一个电平状态,其在该中断等待服务时为激活状态,而当该中断不在等待服务时为非激活状态,这里,该计算机包括中断服务寄存器,可操作以指示某中断正被服务,还包括一个中断请求寄存器,可操作以指示某中断正等待处理,其中,中断服务寄存器是一个多位寄存器和中断请求寄存器是一个多位寄存器,该方法包括步骤比较相应于刚被服务的中断的向量和与待处理中断关联的向量;如果该待处理中断被编程为电平触发中断且如果该待处理中断的电平状态为激活状态的话,则为该待处理中断发送一个电平触发中断激活消息。
22.权利要求21所述方法,其中,比较步骤包括决定与刚被服务的中断关联的向量是否匹配与待处理中断关联的向量。
23.权利要求22所述方法,其中,所述决定步骤包括如果与刚被服务的中断关联的向量不匹配与待处理中断关联的向量的话,则清除与刚被服务的中断关联的中断请求寄存器位和清除与刚被服务的中断关联的中断服务寄存器位。
24.权利要求22所述方法,其中,所述决定步骤包括如果与刚被服务的中断关联的向量匹配与待处理中断关联的向量的话,则决定该待处理中断是否被编程为一个电平触发中断。
25.权利要求24所述方法,其中,所述决定步骤包括如果待处理中断未被编程为电平触发中断的话,则清除与刚被服务的中断关联的中断请求寄存器位和清除与刚被服务的中断关联的中断服务寄存器位。
26.权利要求24所述方法,其中,所述决定步骤包括如果待处理中断被编程为电平触发中断的话,则决定该待处理中断的电平状态是否处于激活状态。
27.权利要求26所述方法,其中,所述决定步骤包括如果该待处理中断的电平状态不在激活状态的话,则清除与刚被服务的中断关联的中断请求寄存器位和清除与刚被服务的中断关联的中断服务寄存器位。
28.权利要求26所述方法,其中,所述发送步骤包括如果该待处理中断的电平状态处于激活状态的话,则保留设置与刚被服务的中断关联的中断请求寄存器位和清除与刚被服务的中断关联的中断服务寄存器位。
29.权利要求21所述方法,其中,所述发送步骤包括保留设置与刚被服务的中断关联的中断请求寄存器位和清除与刚被服务的中断关联的中断服务寄存器位。
30.权利要求21所述方法,其中,每一中断向量包括一个向量号,其中,比较相应于刚被服务的中断的向量与某待处理中断关联的向量的步骤包括比较与刚被服务的中断关联的向量号和与该待处理中断关联的向量号的步骤。
31.一种方法,用于当一个待处理中断要么是电平触发中断要么是边沿触发中断时决定某电平触发中断在某中断已被服务后是否不在激活状态,并当其是时通知计算机处理器,这里,每一中断有一个与其关联的中断向量,这里电平触发中断有一个电平状态,其在该中断等待服务时为激活状态,而当该中断不在等待服务时为非激活状态,该方法包括步骤决定相应于刚被服务的中断关联的向量是否匹配与某待处理中断关联的向量。
32.权利要求31所述方法,其中,每一中断向量包括一个向量号,其中,决定相应于刚被服务的中断的向量是否匹配与某待处理中断关联的向量的步骤包括比较与刚被服务的中断关联的向量号和与该待处理中断关联的向量号的步骤。
33.权利要求31所述方法,其中所述决定步骤包括如果相应于刚被服务的中断的向量不匹配与某待处理中断关联的向量的话,则为该待处理中断发送一个电平触发中断未激活消息。
34.权利要求33所述方法,其中,该计算机包括一个中断请求寄存器,可操作以指示某中断正在等待处理,其中,所述中断请求寄存器是一个多位寄存器,其中,发送电平触发中断未激活消息的步骤包括清除与刚被服务的中断关联的中断请求寄存器中的位的步骤。
35.权利要求31所述方法,其中,所述决定步骤包括如果相应于刚被服务的中断的向量匹配与某待处理中断关联的向量的话,则决定该待处理中断是否被编程为一个电平触发中断;如果不是,则为该待处理中断发送一个电平触发中断未激活消息。
36.权利要求31所述方法,其中,所述决定步骤包括如果相应于刚被服务的中断的向量匹配与某待处理中断关联的向量的话,且如果该待处理中断被编程为一个电平触发中断的话;则决定该待处理中断的电平状态是否处于激活状态;如果不是,则为该待处理中断发送一个电平触发中断未激活消息。
37.一种装置,用于当一个待处理中断要么是电平触发中断要么是边沿触发中断时决定某电平触发中断在某中断已被服务后是否在激活状态,并当其是时通知计算机处理器,这里,每一中断有一个与其关联的中断向量,这里电平触发中断有一个电平状态,其在该中断等待服务时为激活状态,而当该中断不在等待服务时为非激活状态,包括中断服务寄存器,可操作以指示某中断正被服务,所述中断服务寄存器是一个多位寄存器;中断请求寄存器,可操作以指示某中断正在等待处理,所述中断请求寄存器是一个多位寄存器;比较器,可操作以比较相应于刚被服务的中断的向量和与待处理中断关联的向量;连接到比较器的控制发生器,可操作以清除与刚被服务的中断关联的中断服务寄存器位和保留设置与刚被服务的中断关联的中断请求寄存器位,如果与刚被服务的中断关联的向量匹配与该待处理中断关联的向量,且如果该待处理中断被编程为一个电平触发中断,且如果该待处理中断的电平状态处于激活状态的话。
38.权利要求37所述装置,其中所述处理器包括一个本地中断引脚,所述引脚可被操作而具有连接到所述引脚的一个或多个中断源,和接收一个或多个电平触发中断。
39.权利要求38所述装置,其中所述处理器包括多个中断引脚,所述每一引脚可被操作而具有连接到所述引脚的一个中断源,和接收一个边沿触发中断。
40.权利要求37所述装置,另外包括一个解码器,可操作以决定某待处理中断是否被编程为一个电平触发中断。
41.权利要求37所述装置,另外包括一个检测器,可操作以决定某待处理中断是否为一个电平触发中断。
42.权利要求37所述装置,其中,每一中断向量包括一个向量号,其中,可操作所述比较器以通过比较与刚被服务的中断关联的向量号和与待处理中断关联的向量号来比较相应于刚被服务的中断的向量和与待处理中断关联的向量。
全文摘要
决定最高优先级待处理中断是否是活动的电平触发中断。本发明的一个实施例包括一个可操作以指示某中断正在被服务的中断服务寄存器(220),一个可操作以指示某中断正在等待处理的中断请求寄存器(218),和一个可操作以比较相应于最高优先级待处理中断的向量和与特定中断输入关联的向量的比较器(228)。还包括一个连接到比较器、可操作以有选择地清除和/或设置包含在中断服务寄存器(220)和中断请求寄存器(218)中的位的控制发生器。本发明既支持边沿触发中断,也支持电平触发中断,不需要触发方式寄存器或其它类似的通常开支的内务处理控制和有关存储逻辑,也没有任何握手需求。
文档编号G06F9/48GK1294707SQ99804266
公开日2001年5月9日 申请日期1999年1月18日 优先权日1998年1月21日
发明者M·贾亚库马, V·K·戈鲁 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1