具体实施方式
以下,参照附图来详细说明本发明的实施例。
图1是根据本发明一个实施例的用于计算机***的中断控制器的示意图。
计算机***中的常规的中断控制器一般设置在芯片组的南桥芯片上或者设置在南北桥一体的单个芯片上。因此,本发明的中断信号预处理电路既可以应用于传统的南桥芯片上,也可以应用于传统的南北桥一体的芯片上。
如图1所示,根据本发明的中断控制器1包括CLK模块410,高级可编程中断控制器APIC(Advanced Programmable Interrupt Controller)模块420(通常APIC模块420具有24个中断入口),以及分别在APIC模块420的每一个中断入口处串联的中断信号预处理电路430_1......430_24。
计算机***中的北桥芯片(针对南北桥一体芯片)或南桥芯片自身中的PLL(锁相)模块产生时钟信号CLK给南桥芯片的CLK模块410,CLK模块410产生合适的选通时钟信号I4给APIC模块420和中断信号预处理电路430_1......430_24,外部或内部中断输入信号分别输入到中断信号预处理电路430_1......430_24的输入端I1_1......I1_24,表明外部或内部中断输入信号I1_1......I1_24分别为高电平有效还是低电平有效的输入信号分别输入到中断信号预处理电路430_1......430_24的输入端I2_1......I2_24。中断信号预处理电路430_1......430_24的输入端I3_1......I3_24分别输入到各中断信号预处理电路的内部锁存器,分别是在APIC中断处理完成、状态清零后产生的一个至少长于1个时钟周期的脉冲信号,常态为低电平,仅在复位其内部锁存器的时候才为高电平的脉冲信号。中断信号预处理电路430_1......430_24的输入端I4_1......I4_24是APIC的选通时钟信号,I5_1......I5_24是PCIRST信号,在整个***加电时进行复位动作。中断信号预处理电路430_1......430_24的输出O1_1......O1_24分别连接到APIC的中断信号输入端,中断信号预处理电路430_1......430_24的输出O2_1......O2_24进行或运算之后连接到CLK模块410,以便控制选通时钟信号的正常工作或被拉低到低电平,从而产生合适的选通时钟信号I4给APIC模块420和中断信号预处理电路430_1......430_24。
在***正常工作的情况下,只有当中断控制器1所有的中断信号输入端均没有中断信号输入时,选通时钟信号才会被拉低到低电平,从而节省电能。
图1中的中断控制器1所采用的中断信号预处理电路430_1......430_24,其中每一个中断信号预处理电路的内部电路如图2所示,在图2中,中断信号预处理电路2包括反相器10、90,多路器20、50,缓冲器70、110,或门80、100,锁存器30、60,寄存器40。
信号I1是计算机***内部或外部产生的中断输入信号,可以是电平(高电平或低电平)触发中断或者是边沿触发中断。信号I1输入到多路器20的一个输入端,信号I1经过反相器20反相后输入到多路器的另一个输入端。信号I2是指示中断输入高电平有效或低电平有效的中断电平有效选择确定信号,输入到多路器20、50的选择控制端。当信号I2为高电平时,表明中断输入信号高电平有效,多路器20选择信号I1作为输出,多路器50选择寄存器40的输出作为中断信号预处理电路2的输出信号O1;当信号I2为低电平时,表明中断输入信号低电平有效,多路器20选择反相后的信号I1作为输出,多路器50选择经反相器90反相后的寄存器40的输出作为中断信号预处理电路1的输出信号O1。输出信号O1是经过中断信号预处理电路2之后将进入计算机***的高级可编程中断控制器(APIC)的中断输入信号,可以是电平(高电平或低电平)触发中断或者是边沿触发中断。
多路器20的输出经过缓冲器70输入到锁存器30的输入端。同时,多路器20的输出还连接到或门80的一个输入端,或门80的另一个输入来自寄存器40的输出端,或门80的输出连接到锁存器30的时钟输入端。锁存器30的输出端连接到寄存器40的输入端,寄存器40的输出端连接到多路器50的一个输入端,寄存器40的输出经反相器90反相后输入到多路器50的另一个输入端。
寄存器40的输出经过缓冲器110输入到锁存器60的输入端。同时,寄存器40的输出还连接到锁存器60的时钟输入端,锁存器60的输出连接到或门100的一个输入端,锁存器30的输出端还连接到或门100的另一个输入端,或门100的输出作为中断信号预处理电路2的输出信号O2,输出信号O2是在***正常工作时的APIC的选通时钟使能信号,当信号O2为高电平时,选通时钟信号正常工作,当信号O2为低电平时,选通时钟信号被拉低到低电平,从而在***正常工作无中断输入的情况下,没有选通时钟信号输出,以达到节能的目的。
中断信号预处理电路2还有三个输入信号I3、I4和I5。信号I3输入到锁存器60的复位端,是在APIC中断处理完成、状态清零后产生的一个至少长于1个时钟周期的脉冲信号,常态为低电平,仅在复位锁存器60的时候才为高电平的脉冲信号。
信号I4是APIC的选通时钟信号,输入到寄存器40的时钟输入端。
信号I5是PCIRST信号,输入到锁存器30和寄存器40的复位端,在整个***加电时进行复位动作。
图3是图2中的中断信号预处理电路2的工作时序图。下面结合图3的时序图来说明中断信号预处理电路2的工作过程。其中图3A是中断输入信号高电平有效的情况;图3B是中断输入信号低电平有效的情况;图3C是伪中断输入信号的情况,即中断输入信号为毛刺等噪声信号的情况。
在图3A中,中断输入信号I1是高电平有效的中断触发信号,信号I2因此为高电平信号。I1的初始状态为低电平,多路器20选择I1为输出信号。在信号I5的复位作用下,锁存器30、寄存器40的初始输出为低电平,多路器50选择寄存器40的输出作为中断信号预处理电路的输出O1,信号O1为低电平。在信号I3的复位作用下,锁存器60的初始输出为低电平,则输出O2为低电平,则此时没有选通时钟信号输出,信号I4被拉低到低电平。
当I1从低电平变为高电平时,多路器20的输出变为高电平,则或门80的输出变为高电平,锁存器30的时钟信号有效,从而锁存器30的输入为缓冲器70输出的高电平,锁存器30的输出变为高电平,则或门100的输出变为高电平,从而输出O2变为高电平,使得选通时钟信号I4正常工作,进而寄存器40的输出变为高电平,多路器50的输出变为高电平,输出O1变为高电平,锁存器60的输出变为高电平,进入正常的中断处理。
当中断结束时,I1从高电平变为低电平时,多路器20的输出变为低电平,此时由于寄存器40的输出仍保持为高电平,所以或门80的输出仍为高电平,锁存器30的时钟信号有效,从而锁存器30的输出为缓冲器70输出的低电平,锁存器30的输出变为低电平,则寄存器40的输出变为低电平,多路器50的输出变为低电平,信号O1变为低电平,同时或门80的输出变为低电平,使得锁存器30的时钟信号无效,锁存器30的输出锁存在低电平,同时锁存器60的输出锁存在高电平,则或门100的输出仍为高电平,选通时钟信号I4仍然正常工作,直到中断处理结束后出现的信号I3将锁存器60复位后,或门100的输出变为低电平,选通时钟信号I4才被拉到低电平。
在图3B中,中断输入信号I1是低电平有效的中断触发信号,信号I2因此为低电平信号。I1的初始状态为高电平,多路器20选择反相器10的输出为输出信号。在信号I5的复位作用下,锁存器30、寄存器40的初始输出为低电平,多路器50选择反相器90的输出作为中断信号预处理电路的输出O1,信号O1为高电平。在信号I3的复位作用下,锁存器60的初始输出为低电平,则输出O2为低电平,则此时没有选通时钟信号输出,信号I4被拉低到低电平。
当I1从高电平变为低电平时,多路器20的输出变为高电平,则或门80的输出变为高电平,锁存器30的时钟信号有效,从而锁存器30的输入为缓冲器70输出的高电平,锁存器30的输出变为高电平,则或门100的输出变为高电平,从而输出O2变为高电平,使得选通时钟信号I4正常工作,进而寄存器40的输出变为高电平,多路器50的输出变为低电平,输出O1变为低电平,锁存器60的输出变为高电平,进入正常的中断处理。
当中断结束时,I1从低电平变为高电平时,多路器20的输出变为低电平,此时由于寄存器40的输出仍保持为高电平,所以或门80的输出仍为高电平,锁存器30的时钟信号有效,从而锁存器30的输出为缓冲器70输出的低电平,锁存器30的输出变为低电平,则寄存器40的输出变为低电平,多路器50的输出变为高电平,信号O1变为高电平,同时或门80的输出变为低电平,使得锁存器30的时钟信号无效,锁存器30的输出锁存在低电平,同时锁存器60的输出锁存在高电平,则或门100的输出仍为高电平,选通时钟信号I4仍然正常工作,直到中断处理结束后出现的信号I3将锁存器60复位后,或门100的输出变为低电平,选通时钟信号I4才被拉到低电平。
从图3A和3B的波形图中可以看出,输出信号O1是比I1滞后1个时钟周期的原样重复的信号,并且选通时钟信号I4正常工作的时间周期比输出信号O1的存在周期长,因此,当将输出信号O1连接到APIC的中断信号输入端时的中断处理情况与直接将信号I1连接到APIC的中断信号输入端时的传统中断处理情况是一样的。也就是说,图2中的中断信号预处理电路除了产生在没有中断输入的情况下使选通时钟信号I4拉低,从而达到省电的技术效果之外,对***的中断处理没有任何影响。
在图3C中,中断输入信号I1是伪中断输入信号的情况,即中断输入信号为毛刺等噪声信号的情况。根据上面图3A和3B的分析可知,无论信号I2为高电平还是为低电平,输出信号O1均是比I1滞后1个时钟周期的原样重复信号,对于APIC的中断机制来说,当中断输入信号I1是伪中断输入信号时,中断信号预处理电路2的输出信号O1不会引起***中断的产生。并且在信号I3的复位下,仍然会将选通时钟信号拉低。
此外,尽管在此没有给出中断输入信号边沿(上升沿或下降沿)触发中断的情况,但本领域普通技术人员显然可以理解,上述中断信号预处理电路2同样可以适用于边沿触发中断的情况。并且能够达到同样的技术效果,即除了产生在没有中断输入的情况下使选通时钟信号I4拉低,从而达到省电的技术效果之外,对***的中断处理没有任何影响。
图4是根据本发明一个实施例的用于计算机***的中断控制方法的流程图。
首先,在步骤S10判断有无中断输入信号,其中中断输入信号包括外部中断信号和内部中断信号。若在步骤S10判断没有中断输入信号,则重复进行步骤S10。若在步骤S10判断有中断输入信号,则进行到步骤S20。
在步骤S20,使能中断控制过程中的选通时钟信号。接着在步骤S30,对中断输入信号进行适当的处理,如延迟、有效电平选择处理等,并将处理过的中断输入信号引入到高级可编程中断控制器(APIC)进行正常的中断处理。中断处理一般包括忽略中断信号中的毛刺等噪声,识别真正的中断信号,并且能够识别是电平触发中断还是边沿触发中断,根据中断信号进行相关处理,当中断处理结束时,自动清除中断。
接着进行步骤S40,在步骤S40,判断中断处理是否结束。如果中断处理没有结束,则重复进行步骤S40。如果中断处理结束,则进行步骤S50。
在步骤S50,将选通时钟信号拉低到低电平,然后返回到步骤S10。
根据本发明实施例的中断控制方法,在***正常工作的情况下,只有当没有任何中断信号输入时,才将选通时钟信号拉低到低电平,从而节省电能。
本发明虽以优选实施例披露如上,然其并非用以限定本发明的范围,本领域的技术人员在不脱离本发明的精神和范围的前提下,可做各种的更动与润饰,因此本发明的保护范围以本发明的权利要求为准。