专利名称:中断控制器的制作方法
技术领域:
本发明涉及一种中断控制器。
计算机系统的设备(例如磁盘控制器)可以与系统的微处理器交互作用,以执行特定的功能(例如从硬盘驱动器检索数据)。在这个交互中,设备可能需要临时地中断进行中的微处理器的操作,以便微处理器能服务该设备。
例如,微处理器可指令磁盘控制器从硬盘驱动器检索一个数据块,而在磁盘控制器正在检索数据的同时,微处理器可执行其它操作,诸如例如执行程序代码。在控制器检索数据并将数据存储在系统内存中后,控制器就可以通知微处理器。
控制器通知微处理器的一个方法是生成一个中断请求。根据该中断请求,微处理器通常暂时停止任何进行中的操作,以便例如从系统内存读取该数据并根据该数据作出决定。
中断请求一般是通过中断请求信号传达的。对于边沿触发式中断请求来说,中断请求信号通过改变逻辑状态(例如从高逻辑状态变成低逻辑状态)来指示中断请求。电平触发式中断请求一般是由中断请求信号的逻辑状态(高或低)指示的。所以,边沿触发式中断请求是通过中断请求信号的预定转换来指示的,电平触发式中断请求是通过中断请求信号的预定逻辑电平来指示的。
典型的计算机系统具有许多可能需要微处理器留意的设备,因此具有许多可能生成中断请求的设备。然而,微处理器可能只有一个中断请求输入引脚,所以一次只能处理一个中断请求。为了解决这个难题,计算机系统可以有一个中断控制器来接收各设备的中断请求信号,为这些信号所指示的中断请求排定优先级,将一个中断请求定向到微处理器去获得服务。
这样的一个中断控制器可以是英特尔公司生产的8259A可编程中断控制器。8259A中断控制器可在其8个中断输入引脚上接收多达8个不同的中断请求信号。因为在短时间间隔内可能会发生许多中断请求,8259A控制器排定各中断请求的优先次序,并(通过一个输出中断请求信号)将中断请求的表示一次一个地提供给微处理器的中断请求输入引脚。
当中断控制器激活微处理器的中断请求输入引脚以表明有中断请求时,一个中断确认序列开始。在这个序列期间,8259A中断控制器提供一个被微处理器接收的中断值。对于微处理器来说,该中断值标识生成中断请求的中断信号并起着指向中断表中一个单元的索引作用。这个单元存储着微处理器可以为服务该中断请求而执行的一个中断处理例程的地址。在通常被称为主从方案的方案中,为了处理多于8个的中断请求信号,可以将两个或更多的8259A中断控制器级联在一起。
8259A主要是为只用于一个微处理器而设计的。参看
图1,多处理器计算机系统8也可能使用中断控制器10,诸如由英特尔公司生产的部件号为82093AA的I/O高级可编程中断控制器(IOAPIC)。该中断控制器10通过高级可编程中断控制器(APIC)总线11与系统8的微处理器12传送信息。
APIC总线11一般包含两个双向数据线和一个时钟线。当中断控制器10希望向其中一个微处理器12传送一定的中断请求时,中断控制器10向APIC总线11提供信号,该信号指示的信息诸如是一个APIC地址(它标识要接收并服务该中断请求的特定微处理器12)和中断表的索引。
系统8一般有另外的电路用于方便中断控制器10的使用。例如,为了与APIC总线11通信,每个微处理器12一般都有一个局部APIC接口14。系统8可能也包括一个包含8259A控制器的桥电路16,为较老版本的操作系统提供后向兼容。如下文所述,例如当操作系统首次启动系统8时,可能需要这种后向兼容。
通常,有些较老版本的操作系统在系统的启动期间期望在传统的系统总线上(而不是在APIC总线上)确认中断请求。对于这些较老版本的系统,中断控制器10可以与桥16交互作用,以所谓的虚拟线模式(virtual wire mode)模拟较老的8259A控制器的响应。为此,在启动期间,中断控制器10通过APIC总线11上的消息发送中断请求。然而,中断请求的确认发生在系统总线上。
即使不在虚拟线模式中运行,中断控制器10也能以不涉及APIC总线11的方式向微处理器发送中断请求。例如,中断控制器10可以将系统管理中断(SMI)请求和非屏蔽中断(NMI)请求直接提供给微处理器12相应的中断SMI和NMI中断输入引脚。
中断控制器10可以接收来自许多不同的源的中断请求信号,这些源诸如是工业标准体系结构(ISA)总线18的中断请求线、外围部件互连(PCI)总线(一种符合位于Portland的PCI特殊利益集团提供的PCI规范2.0版或97214的总线)的中断请求线(未予示出)和/或母板的中断请求线(未予示出)。所有这些中断请求信号都是中断请求的可能的源,每个中断请求都可以与一个不同的中断处理程序相关联。此外,由于使用多个微处理器,所以可以将不同中断请求的处理分配给不同的微处理器12。为了跟踪所有的与中断请求信号相关联的信息,中断控制器10可包含一个中断请求重定向表20。
该重定向表20通常包含重定向表项21(例如,重定向表项具有64位的寄存器单元,称为RTE
、RTE[1]、RTE[2]…RTE[22]和RTE[23]),它们的每一个都与中断控制器10的一个不同的中断请求输入引脚相关联。参看图13,每个重定向表项21例如可包括一个状态位28,指示相关联的输入引脚的待处理中断请求。每个重定向表项21也可包含一个目的地位字段22,存储一个标识要处理源于该相关引脚的中断请求的微处理器的值。重定向表项21的中断向量位字段36可以存储一个指示一个中断向量的值。每个重定向表项21的其它位例如可以规定中断请求在相关输入引脚上是如何表示的(例如是电平触发的还是边沿触发的),重定向表项21的其它位也可以被用来屏蔽中断请求,阻止从中断控制器10向上传播到一个微处理器12。
重定向表项21一般不被用来为由中断控制器10在内部生成的中断请求信号存储信息。所以,源于这些信号的中断请求不被通过APIC总线11传达给微处理器。例如,中断控制器10内部的逻辑可以有选择地将从有些中断请求输入引脚上接收的信号组合起来,生成一个输出的SMI中断请求信号(称为SMIOUT#)。尽管该SMIOUT#信号在中断控制器10的一个SMI输出引脚17上出现,该SMIOUT#信号所指示的中断请求却不会被提供到APIC总线11,因为该SMIOUT#信号没有相关联的重定向表项21。
然而,一种将一个表项21分配给该SMIOUT#信号的方法是通过一个外部网络将该SMIOUT#信号从输出引脚17传送到一个输入引脚。这样,该SMIOUT#信号就被分配给与从外部网络接收该SMIOUT#信号的输入相关联的表项21。然而,为此要占用一个输入引脚,并且可能需要外部板路由选择(external board routing)。
中断控制器10通常以循环方式一次一个地搜索各表项21,以确定表项21的状态位28是否指示一个待处理的中断请求。这种循环式搜索的结果是,中断控制器10可能不能立即照管待处理的中断请求。中断控制器10一般要搜索每个表项21,即使与该项相关联的中断请求输入引脚是不用的。
所以,继续需要一种减少这种循环查询机制的延迟的中断控制器。也继续需要一种在重定向表中为内部生成的中断请求信号存储信息的中断控制器。
概括地说,在一个实施例中,一个中断控制器包括一个具有用于接收外部中断请求信号的输入引脚的组件。该中断控制器也包括一个中断生成逻辑、一个存储器和多路转换逻辑,它们都安装在该组件内。该中断生成逻辑生成内部中断请求信号,该多路转换逻辑选择性地在该存储器的单元中为内部的或外部的中断请求信号存储中断信息。
概括地说,在另一个实施例中,一个中断控制器包括用于接收中断请求信号的导线、一个存储器、一个寄存器和控制逻辑。每个中断请求信号都能指示一个中断请求。该寄存器是可写的,用来标识供扫描的存储器的单元的集合。该控制逻辑在该单元集合扫描中断请求,但不在存储器的其它单元中扫描中断请求。
从以下说明、附图和权利要求,本发明的优点和其它特点将变得显而易见。
图1是现有技术的一个计算机系统的框图。
图2是图1的中断控制器的重定向表项的示意图。
图3是按照本发明一个实施例的计算机系统的框图。
图4是按照本发明一个实施例的中断控制器的框图。
图5是表示图4的中断控制器的中断信号的映射的图。
图6是表示图4的中断控制器所使用的扫描序列的表。
图7是图4的主控制单元的框图。
图8、9、10、11和12是图7的监控电路的电路示意图。
图13是图7的表访问电路的电路示意图。
参看图3,按照本发明的可编程中断控制器的一个实施例30可以将(重定向表32的)重定向表项36分配给在控制器30内部生成的内部中断请求信号和由控制器30的输入引脚31接收的外部中断请求信号。这种安排的结果是,不耗费任何中断输入引脚31就能将内部生成的中断请求(通过APIC总线56)传达到微处理器150。
此外,如下文所述,在控制器30内部生成的中断请求信号,可以在控制器30的外部中断输出引脚39上出现,通过一个消息接发电路出现(例如在APIC总线56上的一个消息),或者同时以这两种方式出现。在有些实施例中,控制器30包括一个封装了控制器30的电路的单芯片集成电路(IC)组件33,中断请求输入引脚31从该组件伸出,将该电路连接到外部接收的中断请求信号。在这种情况下,术语“内部的”和“内部地”指的是由安置在该组件内的控制器30的电路生成的信号。
该控制器30可以有若干其它特点。例如,为了减少因扫描重定向表项36而产生的延迟,控制器30可以被构造成能在扫描时屏蔽掉一些表项36。如下文所述,被屏蔽的重定向表项可以是不是正在被用来存储中断信息的表项。
该控制器30的另一个特点是,该控制器能选择性地将重定向表项36分配给内部生成的中断请求信号或者外部接收的中断请求信号。这种安排的结果是,用来存储表32的存储空间得到节省,因为不必将未在使用的中断请求输入引脚分配给任何重定向表项36。
也参看图4,更具体来说,每个重定向表项36存储与一个中断请求例程信号相关联的信息(例如包含一个代表指向某中断处理程序的中断向量的值的信息)。该中断请求信号可以是由控制器30以外的设备在外部生成的,也可以是由控制器30在内部生成的。举例来说,可以在控制器30内对来自中断请求输入引脚31的信号进行逻辑组合,生成一个SMI中断请求信号(称为PRE_SMIOUT)。PRE_SMIOUT信号不但可以在控制器30的外部引脚39上出现(作为被称作SMIOUT#的信号(其中后缀“#”表示一个负逻辑再生)),PRE_SMIOUT信号也可以被分配给一个重定向表项36。结果,可以将源于PRE_SMIOUT#信号的中断请求传达到APIC总线56。
在有些实施例中,内部生成的中断请求信号的其它例子包括由控制器30的确立寄存器38提供的信号。该确立寄存器38位于控制器30的寄存器单元34中,它可以提供例如16个中断请求信号(称作INTAS[15∶0])。该寄存器38例如可由微处理器150其中之一写入一个表示对应INTAS[15∶0]信号其中之一的中断请求的值。
例如,在有些实施例中,值“4”可使INTAS[3]信号指示一个中断请求,值“15”可使INTAS[15]信号指示一个中断请求。使具体实施例而定,这些中断请求可以由中断请求信号的一个转换(对于边沿触发式中断请求)或者一个状态(对于电平触发式中断请求)来指示。尽管是内部生成的,每个INTAS[15∶0]信号都可以被分配给重定向表项36的其中之一,如下文所述。
在有些实施例中,控制器30并不为每个中断请求信号(无论是外部还是内部生成的)都分配一个重定向表项36,因为中断请求信号的数目可能会大于重定向表项36的数目。相反,可以将重定向表项36用于内部/外部生成的中断信号的一部分,以便排除其余的中断请求信号。这种安排的结果是,节省了表的空间,可以缩短重定向表项36的扫描时间,可以有效地忽略未使用的中断请求信号或中断请求输入引脚。
举例来说,参看图5,重定向表32可以有64个重定向表项36(例如分配给64个位寄存器单元RTE
、RTE[1]、RTE[2]、…和RTE[63]的表项),每一个表项都可以被分配给一个不同的中断请求信号。可用来进行分配的中断请求信号包括由ISA总线(未予示出)的中断请求线提供并由控制器30的中断请求输入引脚接收的16个中断请求信号(称作INTIO[15∶0])。在有些实施例中,INTIO[15∶0]信号是双向的。中断请求信号也包括另外48个中断请求信号(称作INTIN[47∶0]),它们是由诸如PCI中断请求线和母板中断请求线等其它中断源提供并由中断请求输入引脚接收的。
接着这个例子,在有些实施例中,可以将具有最高的寄存器存储单元RTE[63]的重定向表项36,分配用来存储对应INTIN[47]信号、SMIOUT#信号和INTAS[15]信号的其中之一(从而排除其它两个信号)的中断信息。可以将具有寄存器存储单元RTE[62∶48]的重定向表项36,分配用来存储对应INTIN[46∶32]信号或者INTAS[14∶0]信号(从而排除其它15个信号)的信息。可以将具有寄存器存储单元RTE[47∶16]的重定向表项36分配用来存储对应INTIN[31∶0]信号的信息,可以将具有寄存器存储单元RTE[15∶0]的重定向表项36分配用来存储对应INTIO[15∶0]信号的中断信息。
如下文所述,寄存器单元34(见图4)的(由微处理器)可写的寄存器位(称作ASRTEN和SMI63,下文作说明)被用来如上所述地有选择地将中断信号分配给希望的表项36。可以有选择地对寄存器单元34的其它寄存器位(称作RTEDIS[2∶0](见图6),下文作说明)进行编程设置,以有选择地屏蔽掉不使用的项36。这会有益于例如减少扫描表项36时的延迟,因为如下文所述,每搜索一项36就占用一个PCI时钟周期。
如果没有重定向表项36被屏蔽,则扫描就以递增方式从最低寄存器存储单元的表项(RTE
)循环进行到最高寄存器存储单元的表项(RTE[63]),一次一个单元。
参看图6,在有些实施例中,用RTEDIS[2∶0]位来屏蔽重定向表项36的连续的块,使之不受扫描。在这些实施例中,扫描从最低寄存器存储单元(RTE
)开始向上地连续进行,直到到达一个由RTEDIS[2∶0]位指示的寄存器存储单元。发生这个情况时,扫描就跳到最高寄存器存储单元(RTE[63]),然后(在下一个PCI时钟周期)返回到最低寄存器存储单元(RTE
),重复扫描循环。
其它实施例是可能的。例如,可以用寄存器位来更具体地指明若干个要作扫描屏蔽的相邻的寄存器存储单元块或分别指明要作扫描屏蔽的各寄存器存储单元。
回到图4,为执行上述功能,控制器30中可包含一个主控制单元40,它接收中断请求信号,并根据它们的逻辑状态,维护和更新表项36的位。主控制单元40也提供一个指针(称作SINDEX[5∶0],下文作说明),用来指向正被扫描的表32的存储单元,如下文所述。
主控制单元40接收中断请求信号并按(上述的)ASRTEN和SMI63位所指示的那样向表项36有选择地分配这些信号。主控制单元40就这样接收INTIO[15∶0]信号、INTIN[47∶0]信号,PRE_SMIOUT信号和串行中断信号(称作SERIRQ[15∶0],由串行中断请求接口42提供)。在有些实施例中,PRE_SMIOUT信号是由INTIO[15∶0]信号中选定的一些信号的逻辑组合而生成的。同INTIO[15∶0]信号一样,SERIRQ[15∶0]信号指示ISA总线(未予示出)的中断线的逻辑状态,并且是双向的。如下文所述,在有些实施例中,寄存器单元34的一个位(称作SSLTEN,下文作说明)指定是用INTIO[15∶0]信号还是代之以用SERIRQ[15∶0]信号。
主控制单元40与各种类型的总线通信。例如,主控制单元40通过串行中断请求接口42与串行中断总线44通信(以接收SERIO[15∶0]),通过APIC接口50与APIC总线56通信。主控制单元40可以用串行总线接口通过串行总线与位于其它I/O子系统(例如与不同的PCI总线相连的系统)中的其它(类似于控制器30的)控制器通信。主控制单元40也可以与流线型APIC(SAPIC)接口52通信。
可以不用APIC接口56而是用SAPIC接口52通过PCI总线58向微处理器12传输中断信息。控制器30的PCI接口54既将SAPIC接口52连接到PCI总线58,也将寄存器单元34连接到PCI总线58。
控制器30也包括一个兼容控制单元48,后者在兼容方式中可被用来保持与诸如8259A控制器的老式控制器的向后兼容。例如,可以用兼容控制单元48来有选择地将INTIN[47∶0]信号变换成INTIO[15∶0]信号。在有些实施例中,兼容控制单元48(根据寄存器单元34的某个寄存器(未予示出)的内容)有选择地对INTIO[15∶0]信号和一个SMI信号(称作SMI_IN)进行逻辑组合,生成PRE_SMIOUT信号。
参看图6,在有些实施例中,主控制单元40包括一个监控电路60,它接收所有中断请求信号并通过一个时钟同步电路传送它们。监控电路60以这种方式将(已经被分配表项36的)中断请求信号与PCI时钟(称作PCLK)同步,并将这些数字信号变换成一个多位信号(称作INT NEW[63∶0])的各位。中断请求信号被变换到的位位置直接对应于与该中断请求信号相关联的表项36的存储单元。例如,如果INTIN[33]信号被分配给具有寄存器存储单元RTE[49]的表项36,则INT_NEW[49]位指示该INTIN[33]信号的状态。监控电路60也生成一个代表INT_NEW[63∶0]信号、但落后INT_NEW[63∶0]信号一个PCI时钟周期的多位信号(称作INT_OLD[63∶0])。
状态电路62接收INT_NEW[63∶0]和INT_OLD[63∶0]信号,并根据它们的各位的逻辑状态,检测中断请求。状态电路62以这种方式,通过观测INT_NEW[63∶0]信号的各位的逻辑状态并将这些状态与预定的逻辑电平作比较而检测电平触发式中断请求。状态电路62检测边沿触发式中断请求的方法是,观测INT_NEW[63∶0]和INT_OLD[63∶0]两种信号的各位的状态,以检测其中一个位的转换。根据这些观测,状态电路62对由寄存器单元34接收的一个多位信号(称作STAT[63∶0])的各位进行置位或清除。STAT[63∶0]信号的每个不同位用来提供对应于给定重定向表项36的不同信号的状态位28(见图2)。
仍然参看图6,主控制单元40也包括一个生成一个多位信号(称作RIRR[63∶0])的远程中断请求寄存器电路68。RIRR[63∶0]信号中的每个位被用来更新一个不同表项36的一个不同的RIRR位域26。RIRR位域26不用于边沿触发式中断请求。然而,对于电平触发式中断请求来说,RIRR电路68与一个中断结束(EOI)电路64和监控电路60交互作用,以判定某电平触发式中断请求何时被(微处理器)的局部APIC/SAPIC确认以及何时从该局部APIC接收到一个中断结束(EOI)消息和一个匹配中断向量。
监控电路60用一个表存取电路66来生成选择表项36的SINDEX[5∶0]指针。SINDEX[5∶0]指针所指向的表项36中存储的值,由一个多位信号(称作EDATA[63∶0])指示,该信号由寄存器单元34提供并由监控电路60接收。
参看图7,监控电路60加倍中断请求信号的时钟,以生成INT_NEW[63∶0]信号的各个位。为此,监控电路60生成一个代表延迟一个PCI时钟信号的INT_NEW[63∶0]信号的中间多位信号(称作INT_MID[63∶0]),这样,监控电路60包括一个D型触发器80,它提供INT_MID[63]位,是由PCLK信号定时的。配置位SMI63当被确立时,即高电平时,(通过多路转换器82)选择反相的PRE_SMIOUT信号(PRE_SMIOUT#),传送到触发器80的输入端。如果配置位SMI63被撤销,即低电平,多路转换器82就将多路转换器86的输出信号传送到触发器80的输入端。多路转换器86所提供的输出信号是由ARSTEN配置位的逻辑状态控制的。ASRTEN位被确立时,即高电平时,使多路转换器86选择INTAS[15]信号作为其输出信号;如果被撤销时,则使多路转换器86选择INTIN[47]信号作为其输出信号。
参看图8,监控电路60也包括一个多位的D型触发器90,它由PCLK信号定时,提供INT_MID[62∶48]位。该触发器90的输入端与一个多位的多路转换器92的输出端相连。多路转换器92的选择由ASRTEN配置位的逻辑状态控制。当ASRTEN配置位被确立时,即高电平时,该多路转换器92就将INTAS[14∶0]信号传送到触发器90的输入端;当ASRTEN配置位被撤销时,即低电平时,该多路转换器92就将INTIN[46∶32]信号传送到触发器90的输入端。
如图9所示,INT_MID[47∶16]位是由一个多位的D型触发器88提供的,该触发器(在其输入端)接收INTIN[31∶0]信号,并且是由PCLK信号定时的。
如图10所示,INT_MID[15∶0]位是由一个多位的D型触发器92提供的,该触发器是由PCLK信号定时的。该触发器92的输入端与一个多位的多路转换器94的输出端相连。多路转换器94的选择由SSLTEN配置位的逻辑状态控制。这样,SSLTEN配置位的逻辑状态决定该多路转换器94是将SERIRQ[15∶0]信号(如果该SSLTEN位被确立,即高电平)还是将INTIO[15∶0]信号(如果该SSLTEN位被撤销,即低电平)传送到触发器92的输入端。
如图11所示,INT_NEW[63∶9]和INT_NEW[7∶0]位是由一个多位的D型触发器98提供的,该触发器接收INT_MID[63∶9]和INT_MID[7∶0]位,并且是由PCLK信号定时的。由INT_NEW[8]位指示的中断请求可能反相,也可能不反相,这取决于一个控制多路转换器100的选择的配置位(称作INVRT8)的电平。当该INVRT8位被确立时,即高电平时,多路转换器100就将INT_MID[8]#位传送到触发器98的相应输入端。否则,多路转换器100就将非反相的INT_MID[8]位传送到这个输入端。
触发器98提供INT_NEW[63∶0]位,后者被一个多位的D型触发器96接收的输入端。该触发器96在其输出端提供INT_OLD[63∶0]信号,是由PCLK信号定时的。
参看图12,表存取电路66包括一个多位的D型触发器104,它在其输出端提供SINDEX[5∶0]指针信号,是由PCLK信号定时的。当一个(称作RTAXES的)信号被确立时,即高电平时,表明PCI接口54正在访问寄存器单元34。发生这个情况时,多位的多路转换器106就将该SINDEX[5∶0]指针信号传送回触发器104的输入端,以保留该SINDEX[5∶0]指针信号所指示的当前值。如果RTAXES信号是被撤销时,即低电平时,多路转换器106就把多路转换器110的多位输出信号传送到触发器104的输入端。
多路转换器110的选择是由一个多位比较电路108的输出信号控制的。该比较电路108将SINDEX[5∶0]指针信号所代表的值与值“111111b”(后缀“b”表示二进制表示法),该值表示SINDEX[5∶0]指针信号可以表示的最大允许值(即63)进行比较。如果达到这个最大值,比较电路108就确立其输出信号,使多路转换器110将一个代表“000000b”的多位信号传送到触发器104的输入端。
如果SINDEX[5∶0]指针信号指示的值没有达到这个最大值,多路转换器110就将由另一个多位多路转换器112的输出端提供的一个多位信号传送到触发器104的输入端。该多路转换器112的选择由一个多位比较电路114的输出信号控制。
该比较电路114在一组输入端接收SINDEX[5∶0]信号,在另一组输入端接收一个并置信号。该并置信号的三个最高有效位表示RTEDIS[2∶0]位的反相,并置信号的三个最低有效位表示“111b”。如果SINDEX[5∶0]信号所指示的值等于该并置信号所代表的值,多路转换器通过将一个表示“111111b”的多位信号传送到触发器104的输入端而使SINDEX[5∶0]信号等于“111111b”。然而,如果不是,多路转换器112就将一个加一计数器116的输出端传送到触发器104的输入端。该加一计数器116接收SINDEX[5∶0]信号,同时将该信号代表的值加1,然后提供一个表示该相加结果的多位输出信号。
尽管参照有限数量的实施例说明了本发明,本领域的熟练人员将明白有许多的修改和改变。后附的权利要求旨在包括所有这些在本发明的精神和范围内的修改和改变。
权利要求
1.一种中断控制器,包含接收中断请求信号的导线,其中每个中断请求信号能指示一个中断请求;一个包含能存储关于中断请求信号的信息的单元的存储器;一个寄存器,该寄存器是可写的,用来标识一个供扫描的第一单元集合和一个第二单元集合;在该第一单元集合扫描中断请求、但不在该第二单元集合扫描中断请求的控制逻辑。
2.权利要求1的中断控制器,其中,该第一单元集合包含相邻的单元块。
3.权利要求1的中断控制器,其中,该信息包含中断请求状态信息。
4.权利要求1的中断控制器,其中,该控制逻辑读取该第一单元集合,以检测中断请求,该中断控制器进一步包含一个接口电路,用于在该控制逻辑检测到中断请求之一时通知微处理器。
5.一种方法,包含接收第一种中断请求信号;将该第一种中断请求信号的至少两个组合起来生成一个第二中断请求信号;在一个存储单元为该第一种中断请求信号的任一个或为该第二中断请求信号存储中断信息,该中断信息能指示一个中断请求;和在该中断信息指示中断请求时通知处理器。
6.一种方法,包含接收中断请求信号,每个中断请求信号能指示一个中断请求;分配用于存储关于中断请求信号的信息的存储单元;存储标识要扫描的一个存储器单元集合的扫描信息;和为检测中断请求而扫描该存储单元集合,但不搜索其余的存储单元。
7.权利要求6的方法,其中,该扫描包含遍历一个相邻的单元块。
8.权利要求6的方法,其中,该扫描包含读取该单元集合,以检测中断请求;和在检测到中断请求之一时通知微处理器。
9.一种中断控制器,包含一个有用于接收外部中断请求信号的输入引脚的组件;位于该组件内的用于生成内部中断请求信号的中断生成逻辑;一个位于该组件内并包含一个存储单元的存储器;和位于该组件内的用于在该存储单元为内部中断请求信号或外部中断请求信号有选择地存储中断信息的多路转换逻辑。
10.权利要求9的中断控制器,其中,该中断生成逻辑包含一个存储一个值的确立寄存器;和用于根据该值生成内部中断请求信号的确立逻辑。
11.权利要求10的中断控制器,其中,该值是可以由该组件外部的设备改变的。
12.权利要求9的中断控制器,其中,该中断生成逻辑接收至少一个外部中断请求信号。
13.权利要求9的中断控制器,其中,该内部中断请求信号包含一个SMI中断请求信号。
14.权利要求9的中断控制器,进一步包含一个接口电路,用于在一个表示中断信息被存储的信号指示一个中断请求时将该中断信息传送给微处理器。
全文摘要
一个中断控制器包括用于接收中断请求信号的导线、一个存储器、一个寄存器和控制逻辑。每个中断请求信号能指示一个中断请求。该存储器能够存储关于中断请求信号的信息,该寄存器是可写的,用来标识供扫描的存储器的单元的集合。该控制逻辑在该单元集合扫描中断请求,但不在存储器的其它单元扫描中断请求。在有些情况中,中断请求信号的数量超过单元的数目。对于这些情形,在这些单元中存储关于选定的中断信号的信息。
文档编号G06F13/20GK1298519SQ99805621
公开日2001年6月6日 申请日期1999年4月13日 优先权日1998年4月29日
发明者K·哈伦, T·夸克 申请人:英特尔公司