CN1328677C - 用于处理中断的设备和方法 - Google Patents

用于处理中断的设备和方法 Download PDF

Info

Publication number
CN1328677C
CN1328677C CNB988128772A CN98812877A CN1328677C CN 1328677 C CN1328677 C CN 1328677C CN B988128772 A CNB988128772 A CN B988128772A CN 98812877 A CN98812877 A CN 98812877A CN 1328677 C CN1328677 C CN 1328677C
Authority
CN
China
Prior art keywords
interrupt
register
vector
interruption
priority
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CNB988128772A
Other languages
English (en)
Other versions
CN1286775A (zh
Inventor
M·亚雅库马
V·K·戈鲁
R·埃坎巴拉姆
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN1286775A publication Critical patent/CN1286775A/zh
Application granted granted Critical
Publication of CN1328677C publication Critical patent/CN1328677C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)

Abstract

一种用于控制中断(110)的系统,此系统用可编程的软件操作以控制何时提供与有最高的优先级中断相关的数据,硬件逻辑操作以控制数据如何被提供。提供一个中断向量寄存器(124)。此中断向量寄存器不象一般寄存器一般运作。它不是个物理寄存器,也不可被写入。一个通过可编程软件对此寄存器(124)的读操作引发硬件逻辑。一旦被引发,此逻辑进行特定的控制任务,它的最终结果返回给可编程的软件,与此中断相对应的向量有最高的优先级。可编程的软件可完成多种的软件策略,另外硬件策略由硬件逻辑完成。

Description

用于处理中断的设备和方法
技术领域
本发明一般涉及计算机。特别是,它涉及计算机中控制中断的中断控制器。
背景技术
计算机是一台机器,本质上讲,完成三件事。一,接受输入。二,按所预定的规则集处理输入。三,产生按所预定的规则集处理的输出的结果。
为完成这些操作,通常计算机包括:一个输入设备,如键盘,来接受输入;输出设备,如打印机或视频显示器,它输出结果;和一个处理器,如中央处理器(CPU),它作处理。当今的个人计算机,CPU可以是个微处理器。另外,计算机可以由内存。内存可以被处理器用于存储数据。或内存可以被用于存储计算机指令,指令被以微代码的方式存入内存。
当计算机正在操作,处理器正在处理时被计算机按以前所预定的规则集接收了输入,处理器可能接收了一个请处理的请求。例如,处理器可能由键盘接收了一个新输入的请求。此类请处理的请求被称为中断。
通常,当处理器接受了一个中断,它挂起当前的操作,保存它的工作状态,且将控制转给某一特定包括处理此引起中断的特例的指令的程序。中断可能由多种硬件产生来请求服务或通报问题,或由处理器自身对程序错误或操作系统服务反应。中断是处理器与计算机系统中其它元素通讯的方式。一个中断优先级的层次结构决定了如果多个请求生成时哪个中断将被首先处理。当程序需要处理器完全注意某一程序以完成特定任务时,特定程序可以临时设一些中断无效。
通常,中断可以被理解为计算机的一种功能,此计算机允许某个程序的执行可被中断以执行其他程序。其他程序可为当某一特殊中断发生时被执行的某一特殊程序,有时被称为中断句柄。不同成因的中断有不同的句柄引出与之相符的任务,如更新系统时钟或读键盘。内存中的一个表存储指针,有时被称为地址向量,它引导处理器到多种中断句柄。程序员可以创建中断句柄以替代或补充存在的句柄。可选的方法为,其他程序可能是一种仅在中断方式请求下运行,有时被称为中断驱动过程。所需的任务完成后,CPU空闲以运行其他程序直到下个中断产生。中断驱动过程被用于对如软盘驱动器准备好传输数据之类事件响应。
通常,计算机有一条硬件连线,或被称为中断请求线,通过此设备如键盘或磁盘驱动器可以发送中断到CPU。此类中断请求线被集成到计算机内部硬件中,且被分配不同级别的优先级使CPU能决定中断源和入向服务请求的相关重要性。
特殊的计算机处理中断的方式由计算机中断控制器决定。早期的计算机中的中断控制器是硬连线的。同样的,它们的操作是由计算机制造商固定住了且不可改变。
在某些复杂的现代微处理器中,如Intel制造的PentiumPROTM微处理器,高级可编程中断控制器被包括在CPU中。这一高级可编程中断控制器,被称为APIC,是可编程的。然而,从程序员的角度讲,APIC被看作一个附件,因为APIC的寄存器虽然在CPU中,却是可寻址的设备。就是说,APIC的寄存器是在微代码的控制下,以和存储数据和指令的内存相同的方式,被写入和读出的。
发明内容
本发明提供一种提供中断控制的装置,包括:保存中断向量的第一寄存器;和连接至所述第一寄存器的中断逻辑电路,当一个中断被软件处理时,执行硬件中断序列,当软件执行读取所述第一寄存器时启动硬件中断序列,其中所述中断逻辑电路确定中断优先级并将优先化的向量返回至所述第一寄存器;和连接至所述中断逻辑电路以存储还未被服务的挂起中断的第二寄存器,所述第二寄存器存储与该挂起中断相关的优先级,并且响应由软件启动的硬件中断序列,所述中断逻辑电路返回有选定优先级的一个中断的向量至所述第一寄存器。
本发明还提供一种基于寄存器的中断控制器,包括:保存中断向量的中断向量寄存器;和连接至所述中断向量寄存器的中断逻辑电路,当中断由软件处理时,执行硬件中断序列,当软件执行读取所述中断向量寄存器时启动硬件中断序列,其中所述中断逻辑电路确定中断优先级并将最高优先级的向量返回至所述中断向量寄存器;其中所述中断逻辑电路确定是否存在不可掩中断,并且如果存在不可掩中断,返回该不可掩中断至所述中断向量寄存器;如果不存在不可掩中断,则所述中断逻辑电路确定是否中断已被禁止或是否有最高优先级的中断未被服务,并返回相应于最高优先级的中断的向量至所述中断向量寄存器。
本发明还提供一种在计算机中控制中断的可编程中断控制器,包括:保存中断向量的中断向量寄存器;和连接至所述中断向量寄存器的中断逻辑电路,当中断将由软件处理时,执行硬件中断序列,当软件执行读取所述中断向量寄存器时启动硬件中断序列,其中所述中断逻辑电路确定中断优先级并将选定优先级的向量返回至所述中断向量寄存器;其中所述中断逻辑电路确定是否存在不可掩中断,并且如果存在不可掩中断,返回该不可掩中断至所述中断向量寄存器;如果不存在不可掩中断,则所述中断逻辑电路确定中断是否未被禁止或是否有选定优先级的中断未被服务,并返回相应于选定优先级的中断的向量至所述中断向量寄存器。
本发明还提供了在处理设备中,一种可编程中断控制器,包括:保存中断向量的中断向量寄存器;连接至所述中断向量寄存器的中断逻辑电路,当一个中断将被软件处理时,执行硬件中断序列,当软件执行读取所述中断向量寄存器时启动硬件中断序列,其中所述中断逻辑电路确定中断优先级并将优先化的向量返回至所述中断向量寄存器;存储被服务的中断的向量的中断服务寄存器;和连接至所述中断向量寄存器和所述中断服务寄存器并存储与挂起中断相关的优先级的中断请求寄存器。
本发明还提供一种在计算机中控制中断的方法,包括:确定是否存在一个不可掩中断;如果不可掩中断存在,当中断向量寄存器被可编程软件读时,在中断向量寄存器中返回不可掩中断;如果不可掩中断不存在,但是如果中断已被禁止或有最高优先级的中断在被服务,当中断向量寄存器被可编程软件读时,在中断向量寄存器中返回一个第一向量;如果不可掩中断不存在,且如果中断没有被禁止或有最高优先级的中断没有在被服务,当中断向量寄存器被可编程软件读时,在中断向量寄存器中返回一个有最高优先级中断的向量。
本发明还提供了一种在计算机中控制中断的方法,包括:通过软件读取中断向量寄存器引起控制行为;确定是否存在一个不可掩中断;如果不可掩中断存在;返回给中断向量寄存器该不可掩中断;如果不可掩中断不存在,且如果中断已被禁止,或如果最高挂起中断寄存器的值小于或等于最高服务中断寄存器的值,则返回给中断向量寄存器一个第一向量;如果不可掩中断不存在,且如果任务优先级寄存器未禁止中断,并且如果最高挂起中断寄存器的值大于或等于最高服务中断寄存器的值,设置对应中断请求寄存器中最上面向量的中断服务寄存器位。
本发明提供了一个流水线高级可编程中断控制器(SAPIC)由一个中断向量寄存器(IVR),它在CPU中,此寄存器不认为是计算机内存,也不需要微代码控制。本发明取消了中断控制器的微代码需求,因此取消了比较贵载有微代码的的芯片内只读存储器(ROM)的需求。导致了以前用于此种微代码ROM的芯片部分可被用于完成更智能的逻辑,因此给予芯片制造者更大的投资回报。
几乎所有本领域的现有可编程中断控制器由微代码控制。微代码由微处理器制造商编码,此后不能被程序员改变以更好的适应需求,例如,某一特殊的计算机操作系统。这样,程序员不能改变计算机中中断处理器的方式。
在其他的此领域中的设备,微处理器制造商用软件的而没有硬件的方式已实现CPU内完全的中断管理。虽然它已消除了中断控制器微代码和存储这些代码的ROM,且允许程序员对控制软件作修改,此方法有许多缺点。例如,此方法导致了每次中断出现时更多的代码将被处理器执行,因此增加了中断服务的响应时间。
本发明提供了一种更优化的方法,且直接克服或至少减少其中之一或多个所述的问题的影响。
本发明的一方面,提供一个基于寄存器的可编程中断控制器以控制计算机的中断。控制器包括在CPU中的可编程软件,CPU控制何时提供未决定的有最高优先级的中断,还包括硬中断逻辑,它控制如何提供未决定的有最高优先级的中断。
一个中断向量寄存器包含在CPU中。然而,此寄存器不象普通寄存器一样运作。它不是一个物理寄存器,且不可被写入。用可编程软件对此寄存器的读操作引起了硬中断逻辑;一旦引发,此逻辑执行特定的控制动作,最终结果为返回可编程软件一个与最高优先级中断相符的向量。如此,可编程软件执行了一个读操作,且接收了返回数据;然而,此数据不由寄存器读取,而由硬中断逻辑产生。
本领域已知设备有两种寄存器类型:无边际效应的寄存器;和当写入时有边际效应的寄存器。还没有本领域中的已知寄存器在对寄存器读操作时执行了控制活动,如本发明中的优先级管理活动。
根据本发明的一方面,硬中断逻辑执行的控制活动包括决定是否一个不可掩的中断存在,如果存在,返回可编程软件一个此中断的识别符。如不可掩中断不存在,且如中断已被设无效或最高优先级中断在被服务,一个被称为假向量的特殊向量被返回给可编程软件。如果不可掩中断不存在,且如中断没有被设无效或最高优先级中断没有在被服务,与最高优先级中断相符的向量被返回给可编程软件。假向量是一个特殊的向量,用于告诉处理器继续其原先所作。
根据本发明的另一方面,中断向量寄存器是唯一的在读取时引发一系列CPU中中断优先级方式的控制活动,且返回控制活动结果数据的寄存器。本发明是基于寄存器的,无内存映射且提供比内存映射更高性能的系统。
根据本发明的另一方面,可编程软件能被用于灵活的管理中断优先级:它被编程以分配每一个有特定的优先级的向量数字给予CPU通信的设备,且程序能容易的被改变。本发明不依靠微代码实现,需要更简单的硬件,且给与软件更多的控制权。
执行本发明控制活动的微结构管道不需要握手操作,且能同步的与CPU执行。此结果有更好的效率和可靠性。本发明的可编程软件特性提供了灵活性,且允许集中的中断程序,它读中断向量寄存器且能完成多种附加于硬中断逻辑完成的硬件策略的软件策略。这些和其它优点将随以下本发明被描述的更全面而更明显。
附图说明
其他发明缺点和优点将变得明显,读完以下细节描述和所述参考:
图1是一个示意性的根据本发明的可编程中断控制器的方块图;
图2是一个根据本发明的一个实施例的硬中断逻辑执行的控制行为的逻辑流图;
图3是一个根据本发明的一个实施例的数据流图;且
图4阐明一个根据本发明的一个实施例的多种管道。
具体实施方式
虽然本发明易受多种更改和可选形式的影响,在此结合附图描述了特殊的实施例。然而,所应知道的是在此的特例不是限制发明的,正相反,本发明同等的对待所有与权利要求书的实质和范围相符的改变。
被阐明本发明的实现方式描述如下。为了清楚说明,不是描述一个真正实现的所有特点。任何此类真正实现的发展当然是好的,很多特殊的实现方式可以完成开发者的特殊目的,如符合系统相关且商务相关的限制,它们随实现不同而不同。而且,此种发展效果可能会很复杂和耗时,但对本领域中哪些普通技术采取的程序有所述优点。
参考附图,特别是图1,在此显示根据本发明可编程中断控制器的内部结构的方块图。被可编程中断控制器接收的由不同源来的中断110被区分优先级后被分配给CPU内核122。每个中断被接受逻辑112接收。接受逻辑112着眼于中断,并规划它是否满足基本的中断要求,如屏蔽等。然后中断被中断解码器114解码后分配给中断请求寄存器(IRR)116的特殊位置。
通过锁存中断请求寄存器(IRR)116的一个特殊中断,可编程中断控制器寄存此中断。然后此中断被发送到优先器118,在此新进入的中断与以存在的中断相比,和/或与任务优先级寄存器(TPR)120比较。一个中断等待指示被发送到微处理器内核122。
作为一个中断等待指示的响应,可编程软件通过控制寄存器存取总线(CRAB)126执行对中断向量寄存器(IVR)124的读操作。
根据本发明的一个实施例,因此被描述的更多的是可编程中断控制器的中断确认序列。中断被认知后,可编程中断控制器做出响应。
据图1所示的实现方式,可编程中断控制器对此读操作的响应是将中断向量输入CRAB总线126。内核122由CRAB总线126接收向量,且进入所收到向量的中断服务程序。
中断向量寄存器(IVR)124的读操作引起了中断由中断请求寄存器(IRR)116转到中断服务寄存器(ISR)128。当内核122完成了中断服务程序,它写入中断结束(EOI)寄存器130。它导致可编程中断控制器删除中断服务寄存器(ISR)128中的中断,并返回中断服务寄存器128到其初始状态。
到此时,单一中断的过程已被描述。实际操作中,多到242个中断可由本发明所示的实施例所服务,并提供操作系统允许多层嵌套中断的功能。且多至242个挂起中断。
在操作中,可编程软件通过读取中断向量寄存器(IVR)124决定当前最高优先级挂起中断向量。在本发明的一个实施例中,IVR124是个8位的寄存器,且每一个中断是个8位包括一个由可编程软件分配给特殊中断源的数字的向量,可编程软件已被编程使特定优先级与每个向量相关,并因而与每个中断相关。一个特殊数字被保留为了指定假向量的实施例,在以下做更多描述。
图1所示实施例中,对外可见的寄存器包括中断结束(EOI)寄存器130,中断请求寄存器(IRR)116,中断向量寄存器(IVR)124,和任务优先级寄存器(TPR)120。对外不可见的是中断服务寄存器(ISR)128,最高优先级中断寄存器,和最高服务中断寄存器。
中断结束寄存器(EOI)130实际上是个伪寄存器。在最高优先级挂起中断的中断句柄程序的完成后,软件负责对EOI寄存器130的地址进行写操作以清除与中断相关的某一特殊位(在中断服务寄存器128中)。在可编程中断控制器中,此写操作声明了一个单一信号,它驱动机器通知中断以完成。实际操作中,中断结束寄存器130的写操作指示软件已准备好接受由任务优先级寄存器120决定的另一个相同或更低优先级的中断。本发明的一个实现中,中断结束寄存器130是个8位寄存器。
中断请求寄存器(IRR)116保持跟踪挂起中断。挂起中断是个已被处理器接收但还未服务的中断。当一个中断被接收,它将被注册到IRR 116。当中断向量寄存器124被读,IRR 116中的有最高优先级的中断作为中断向量被编码和提供。一旦向量信息被传到处理器,中断将被移至中断服务寄存器128。在本发明的一个实施例中,中断请求寄存器116是个242位的寄存器。
中断服务寄存器(ISR)128保持跟踪当前正被处理器服务的中断。当中断向量寄存器124被读时,最高优先级挂起中断向量将给CPU,且相对应的ISR位将被设置。此位将被保留直到中断结束寄存器130被处理器122写入。如果在低优先级中断被服务时多个更高优先级中断被接收则ISR寄存器128可以有多个位被设置。这些高优先级将在原先中断服务中被嵌套和服务。本发明的一个实施例中,中断服务寄存器128是个242位的寄存器。
最高优先级中断寄存器被用于保留最高优先级中断(HPI)的值。本发明的一个实施例中,此寄存器是个8位寄存器。最高优先级中断(HPI)是被接收还没被服务最高优先级中断的向量。
最高服务中断寄存器跟踪当前被服务的中断的优先级,且被用于保留最高服务中断(HIS)的值。本发明的一个实施例中,此寄存器是个8位寄存器。最高服务中断(HIS)是被服务的最高优先级中断的向量。
任务优先级寄存器(TPR)120跟踪处理器122的优先级。处理器122的优先级在每次切换任务时,处理器122的当前任务提高或降低其优先级时,处理器122进入中断句柄时会改变,优先级由可编程软件控制。在被说明的实施例中,任务优先级寄存器120是个8位寄存器,提供256个不同的优先级。本发明的一个实现中,使用242个不同的优先级,剩余的向量以下将做更多描述。
在所说明的实现中,如果一个特殊位在任务优先级寄存器(TPR)120中被设置以指出非可掩中断存在,那么非可掩中断(NMI)指示被送之内核122。
8位对应与256个不同的2进制数。有256个数被用于本发明的一个实施例中为中断分配优先级。本实现优先级的结构为:2;0;255,254,253,...,16,数字15到3和1保留。这表明数字2有最高优先级,然后为0,然后为255,然后为254,直到16,数字16有最低的优先级。数字2被用于指示不可掩中断(NMI),数字0被用于指示外部中断,剩下的240个数字可为其他多种中断源自由分配。
最后提到的240个数字被用作每个中断的向量数,因此共有240个中断向量,每个对应与一个特殊的中断源。结果,共有242个向量可被软件编程,其范围是255-16,2,0。
在本发明的一个实施例中,以上提到的可能的256个二进制数被编为16组。每祖编成为一个类;例如,类0包括数字0到15,类1包括数字16到31,类2包括时在32到47,等等,直到类15包括时在0到255。以此安排,240个向量数字(除2和0的所有向量数字)包括类1到15,且在相同特定类中的中断向量可被为某种目的相同对待。例如,如果最高中断在类13(向量数字208-244)中被服务,此时另一个不同的中断被接收,新的中断有比当前中断更高的优先级,它必为类13或更高优先级的类,类14或15,或必须为不可掩中断,或外部中断;如果它为类1到12,它的优先级低于当前服务中断。任务优先级寄存器将使类1至12种的中断无效以加速类13中的中断处理。
然后,以以上设计,最高优先级中断(HPI)是已收到且还未被服务的最高优先级的向量数字或中断值,最高服务中断(HIS)是正在被服务的最高优先级中断的向量数或中断值。本发明的实现中更大的数字有更高优先级值(除向量数2和0)。
图2说明了根据本发明一个实施例的可编程中断控制器的某种逻辑流程。此逻辑通过线210进入。菱形方框220和240是所作的决定,矩形方框230,250和260是完成的任务作为决定输出的结果。
图2说明当中断向量寄存器(IVR)124被可编程软件读取时被引起的控制行为。根据本发明,这些控制行为由硬件完成。第一个被说明的控制行为决定是否不可掩的中断存在(决定块220)。如果不可掩的中断存在,它在中断向量寄存器(IVR)124被返回给可编程软件(处理块230)。另一方面,如果没有不可掩中断,进入决定块240。确定是否任务优先级寄存器(TPR)120已使出现的中断无效,或是否最高挂起中断(HPI)小于或等于最高服务中断。如果决定块240的结果为是,那么假向量返回给IVR124(处理块250)。在本发明的实现中,向量数15为保留假向量。
对于决定块240,由于在实际操作中,因为一个中断源可能在控制器正在处理此设备刚才发送的中断的处理过程中给控制器发送中断,或某一中断源可能编程到相同的中断向量,所以HPI可能等于HIS。
如果决定块240的输出是否,即,如果TPR120还未被出现的中断设无效且HPI>HIS,那么中断服务寄存器(ISR)终于最高优先级中断对应的位被设置,此位也就是本发明的一个实现中中断请求寄存器(IRR)116的最高的向量,同时中断请求寄存器中与最高优先级中断对应的位被清除,且中断请求寄存器(IRR)116中的最高向量(最高优先级中断的向量)被返回给IVR124。
因此CPU中作为操作系统一部分的可编程软件控制何时有最高优先级的挂起中断的向量被提供给可编程软件,且硬件中断逻辑控制如何使向量被提供给可编程软件。通过可编程软件对中断向量寄存器的读操作引起了硬中断逻辑的控制行动,它导致硬件中断逻辑返回数据给可编程软件。可编程软件就好像真正读取了包含信息的中断向量寄存器而实际上是在读操作引起硬件确定数据然后返回数据给软件。其实没有传统意义上真正的读和写操作产生。
图3以方块图的形式显示了本发明一个实施例在中断向量寄存器(IVR)124的读操作和中断结束(EOI)130寄存器的写操作之上中断请求寄存器(IRR)116和中断服务寄存器(ISR)128中的数据流。还有,图4显示图3所示的实施例的位于中断向量寄存器(IVR)124读,中断结束(EOI)写和中断请求的管道。
读中断向量寄存器(IVR)124的可编程软件能完成多种软件策略和硬中断逻辑完成的硬件策略。本发明的这一特点允许巨大的灵活性,且允许中断结构被裁剪以适合多种操作系统的个别需要。
以上所示的特殊实施例仅为阐明性的,由于本发明可被改变和实践于不同的方式,很明显以上所示特殊实施例可能被改变且所有此类改变被认为是在在本发明的范围和实质内。因此,所要的保护在以下权利要求书中声明。

Claims (19)

1.一种提供中断控制的装置,包括:
保存中断向量的第一寄存器;和
连接至所述第一寄存器的中断逻辑电路,当一个中断被软件处理时,执行硬件中断序列,当软件执行读取所述第一寄存器时启动硬件中断序列,其中所述中断逻辑电路确定中断优先级并将优先化的向量返回至所述第一寄存器;和
连接至所述中断逻辑电路以存储还未被服务的挂起中断的第二寄存器,所述第二寄存器存储与该挂起中断相关的优先级,并且响应由软件启动的硬件中断序列,所述中断逻辑电路返回有选定优先级的一个中断的向量至所述第一寄存器。
2.权利要求1的提供中断控制的装置,其中所述中断逻辑电路确定是否存在不可掩中断,并且如果存在不可掩中断,返回该不可掩中断至所述第一寄存器;
如果不存在不可掩中断,则所述中断逻辑电路确定是否中断未被禁止或是否有选定优先级的中断未被服务,并返回相应于选定优先级的中断的向量至所述第一寄存器;和
如果中断已经被禁止或如果有选定优先级的中断被服务,返回特定的向量至所述第一寄存器。
3.一种基于寄存器的中断控制器,包括:
保存中断向量的中断向量寄存器;和
连接至所述中断向量寄存器的中断逻辑电路,当中断由软件处理时,执行硬件中断序列,当软件执行读取所述中断向量寄存器时启动硬件中断序列,其中所述中断逻辑电路确定中断优先级并将最高优先级的向量返回至所述中断向量寄存器;其中所述中断逻辑电路确定是否存在不可掩中断,并且如果存在不可掩中断,返回该不可掩中断至所述中断向量寄存器;如果不存在不可掩中断,则所述中断逻辑电路确定是否中断已被禁止或是否有最高优先级的中断未被服务,并返回相应于最高优先级的中断的向量至所述中断向量寄存器。
4.权利要求3的中断控制器,其中如果中断已被禁止或有最高优先级的中断被服务,所述中断逻辑电路还返回假向量至所述中断向量寄存器。
5.权利要求4的中断控制器,进一步包括连接至所述中断逻辑电路以存储未被服务的挂起中断的中断请求寄存器,所述中断请求寄存器存储与该挂起中断相关的优先级,并且响应由软件启动的硬件中断序列,所述中断逻辑电路返回有最高优先级的中断的向量至所述中断请求寄存器。
6.一种在计算机中控制中断的可编程中断控制器,包括:
保存中断向量的中断向量寄存器;和
连接至所述中断向量寄存器的中断逻辑电路,当中断由软件处理时,执行硬件中断序列,当软件执行读取所述中断向量寄存器时启动硬件中断序列,其中所述中断逻辑电路确定中断优先级并将选定优先级的向量返回至所述中断向量寄存器;其中所述中断逻辑电路确定是否存在不可掩中断,并且如果存在不可掩中断,返回该不可掩中断至所述中断向量寄存器;如果不存在不可掩中断,则所述中断逻辑电路确定中断是否未被禁止或是否有选定优先级的中断未被服务,并返回相应于选定优先级的中断的向量至所述中断向量寄存器。
7.权利要求6的中断控制器,其中如果中断已被禁止或有选定优先级的中断被服务,所述中断逻辑电路还返回假向量至所述中断向量寄存器。
8.权利要求6的中断控制器,进一步包括连接至所述中断逻辑电路以存储未被服务的挂起中断的中断请求寄存器,所述中断请求寄存器存储与该挂起中断相关的优先级,并且响应由软件启动的硬件中断序列,所述中断逻辑电路返回有选定优先级的中断的向量至所述中断请求寄存器。
9.在处理设备中,一种可编程中断控制器,包括:
保存中断向量的中断向量寄存器;
连接至所述中断向量寄存器的中断逻辑电路,当一个中断将被软件处理时,执行硬件中断序列,当软件执行读取所述中断向量寄存器时启动硬件中断序列,其中所述中断逻辑电路确定中断优先级并将优先化的向量返回至所述中断向量寄存器;
存储被服务的中断的向量的中断服务寄存器;和
连接至所述中断向量寄存器和所述中断服务寄存器并存储与挂起中断相关的优先级的中断请求寄存器。
10.权利要求9的中断控制器,其中所述中断逻辑电路确定是否存在不可掩中断,并且如果存在不可掩中断,返回该不可掩中断至所述中断向量寄存器;如果不存在不可掩中断,则所述中断逻辑电路确定是否中断未被禁止或是否有最高优先级的中断未被服务,并设置相应于中断请求寄存器中最上面的向量的中断服务寄存器位,并返回最上面的向量至中断请求寄存器。
11.权利要求9的中断控制器,其中:
所述中断向量寄存器是一个x位寄存器;
所述中断服务寄存器是一个y位寄存器;和
所述中断请求寄存器是一个y位寄存器;
其中x小于y。
12.权利要求9的中断控制器,其中所述中断向量寄存器是一个8位寄存器。
13.权利要求12的中断控制器,其中:
所述中断服务寄存器是一个242位寄存器,且
所述中断请求寄存器是一个242位寄存器。
14.一种在计算机中控制中断的方法,包括:
确定是否存在一个不可掩中断;
如果不可掩中断存在,当中断向量寄存器被可编程软件读时,在中断向量寄存器中返回不可掩中断;
如果不可掩中断不存在,但是如果中断已被禁止或有最高优先级的中断在被服务,当中断向量寄存器被可编程软件读时,在中断向量寄存器中返回一个第一向量;
如果不可掩中断不存在,且如果中断没有被禁止或有最高优先级的中断没有在被服务,当中断向量寄存器被可编程软件读时,在中断向量寄存器中返回一个有最高优先级中断的向量。
15.一种在计算机中控制中断的方法,包括:
通过软件读取中断向量寄存器引起控制行为;
确定是否存在一个不可掩中断;
如果不可掩中断存在;返回给中断向量寄存器该不可掩中断;
如果不可掩中断不存在,且如果中断已被禁止,或如果最高挂起中断寄存器的值小于或等于最高服务中断寄存器的值,则返回给中断向量寄存器一个第一向量;
如果不可掩中断不存在,且如果任务优先级寄存器未禁止中断,并且如果最高挂起中断寄存器的值大于最高服务中断寄存器的值,发送对应中断请求寄存器中最上面向量的中断服务寄存器位,且使所述中断请求寄存器中的最上面向量返回所述中断向量寄存器。
16.权利要求15中的方法,其中返回所述第一向量返回假向量。
17.权利要求15中的方法,其中引起控制行为启动一个硬件序列。
18.权利要求17中的方法,其中软件选择性地屏蔽中断。
19.权利要求17中的方法,其中软件选择性地设置中断优先级。
CNB988128772A 1997-12-31 1998-12-22 用于处理中断的设备和方法 Expired - Fee Related CN1328677C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/001,817 US6298410B1 (en) 1997-12-31 1997-12-31 Apparatus and method for initiating hardware priority management by software controlled register access
US09/001,817 1997-12-31

Publications (2)

Publication Number Publication Date
CN1286775A CN1286775A (zh) 2001-03-07
CN1328677C true CN1328677C (zh) 2007-07-25

Family

ID=21697969

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB988128772A Expired - Fee Related CN1328677C (zh) 1997-12-31 1998-12-22 用于处理中断的设备和方法

Country Status (6)

Country Link
US (1) US6298410B1 (zh)
EP (1) EP1049985B1 (zh)
CN (1) CN1328677C (zh)
AU (1) AU2012599A (zh)
DE (1) DE69839194T2 (zh)
WO (1) WO1999034298A1 (zh)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6202090B1 (en) * 1997-12-11 2001-03-13 Cisco Technology, Inc. Apparatus and method for downloading core file in a network device
JP2000010800A (ja) * 1998-06-19 2000-01-14 Toshiba Corp 計算機システムに於けるスレッド制御装置、及び同システムに於けるスレッド制御方法
US6553443B1 (en) * 1999-09-28 2003-04-22 Legerity, Inc. Method and apparatus for prioritizing interrupts in a communication system
KR100317237B1 (ko) * 1999-10-01 2001-12-22 윤종용 유사 벡터 방식의 인터럽트 컨트롤러 및 그것의 인터럽트 처리 방법
US6754754B1 (en) * 1999-12-30 2004-06-22 Intel Corporation Apparatus and method for end of interrupt handling
JP4600586B2 (ja) * 2000-05-29 2010-12-15 セイコーエプソン株式会社 割込信号生成装置及び割込信号の生成方法
JP2002055830A (ja) * 2000-05-29 2002-02-20 Seiko Epson Corp 割込信号生成装置及び割込信号の生成方法
US6647441B1 (en) * 2000-09-15 2003-11-11 Hewlett-Packard Development Company, L.P. Method of maximizing servicing capability of large numbers of I/O descriptors
DE10062995A1 (de) * 2000-12-16 2002-07-11 Micronas Gmbh Unterbrecher-Steuereinrichtung
DE10062996B4 (de) * 2000-12-16 2005-09-29 Micronas Gmbh Unterbrecher-Steuereinrichtung mit Prioritätsvorgabe
US20030204655A1 (en) * 2002-04-24 2003-10-30 Schmisseur Mark A. Prioritizing vector generation in interrupt controllers
US7739438B2 (en) * 2003-02-12 2010-06-15 Hewlett-Packard Development Company, L.P. Method for priority-encoding interrupts and vectoring to interrupt code
GB2403822B (en) * 2003-07-07 2006-05-10 Advanced Risc Mach Ltd Data processing apparatus and method for handling interrupts
US7426728B2 (en) * 2003-09-24 2008-09-16 Hewlett-Packard Development, L.P. Reducing latency, when accessing task priority levels
US7590982B1 (en) * 2003-12-17 2009-09-15 Vmware, Inc. System and method for virtualizing processor and interrupt priorities
DE10361364B4 (de) * 2003-12-29 2010-07-01 Advanced Micro Devices, Inc., Sunnyvale Vorrichtung zum Behandeln von Interruptereignissen, mit der pegel-sensitive bzw. level-sensitive Interruptanforderungen in flankengetriggerten Interruptnachrichten umgesetzt werden
JP4241462B2 (ja) * 2004-03-26 2009-03-18 株式会社デンソー 制御ユニットおよびマイクロコンピュータ
US7707341B1 (en) * 2004-05-11 2010-04-27 Advanced Micro Devices, Inc. Virtualizing an interrupt controller
US20070016906A1 (en) * 2005-07-18 2007-01-18 Mistletoe Technologies, Inc. Efficient hardware allocation of processes to processors
JP4068106B2 (ja) * 2005-08-05 2008-03-26 三菱電機株式会社 リアルタイム組込み簡易モニタプログラム
US8336022B2 (en) * 2006-10-20 2012-12-18 Her Majesty the Queen in Right of Canada as Represented by the Minister of Health Through the Public Health Agency of Canada Method and apparatus for creating a configurable browser-based forms application
EP2108147B1 (en) * 2006-10-20 2017-03-08 Her Majesty The Queen, In Right Of Canada As Represented By The Minister Of Health Through The Public Health Agency Of Canada Method and apparatus for software policy management
US9946668B1 (en) * 2007-01-10 2018-04-17 The Mathworks, Inc. Automatic prioritization of interrupts in a modeling environment
CN101426099B (zh) * 2007-10-31 2010-08-25 晨星半导体股份有限公司 数字电视系统及数字电视中处理数据信号的方法
US20120226842A1 (en) * 2011-03-02 2012-09-06 Research In Motion Limited, an Ontario, Canada corporation Enhanced prioritising and unifying interrupt controller
US9952990B2 (en) * 2015-06-27 2018-04-24 Vmware, Inc. Implementing pseudo non-masking interrupts behavior using a priority interrupt controller
US9952895B2 (en) * 2015-06-27 2018-04-24 Vmware, Inc. Implementing pseudo non-masking interrupts behavior using a priority interrupt controller
CN110221861B (zh) * 2019-05-31 2023-08-29 常州市常河电子技术开发有限公司 一种cpu寄存器体系结构及其中断处理方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1986003607A1 (en) * 1984-12-10 1986-06-19 Advanced Computer Communications Communication controller using multiported random access memory
CN1052202A (zh) * 1989-11-03 1991-06-12 国际商业机器公司 可编程中断控制器
US5446910A (en) * 1991-06-26 1995-08-29 Ast Reasearch, Inc. Interrupt controller with automatic distribution of interrupts for a multiple processor computer system

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4365294A (en) * 1980-04-10 1982-12-21 Nizdorf Computer Corporation Modular terminal system using a common bus
US5384724A (en) * 1991-09-05 1995-01-24 Texas Instruments Incorporated Electronic circuit and method for half adder logic
DE69228980T2 (de) 1991-12-06 1999-12-02 National Semiconductor Corp., Santa Clara Integriertes Datenverarbeitungssystem mit CPU-Kern und unabhängigem parallelen, digitalen Signalprozessormodul
JPH0713772A (ja) * 1993-06-29 1995-01-17 Mitsubishi Electric Corp データ処理装置
JPH0721035A (ja) * 1993-07-02 1995-01-24 Mitsubishi Denki Eng Kk データ処理装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1986003607A1 (en) * 1984-12-10 1986-06-19 Advanced Computer Communications Communication controller using multiported random access memory
CN1052202A (zh) * 1989-11-03 1991-06-12 国际商业机器公司 可编程中断控制器
US5446910A (en) * 1991-06-26 1995-08-29 Ast Reasearch, Inc. Interrupt controller with automatic distribution of interrupts for a multiple processor computer system

Also Published As

Publication number Publication date
WO1999034298A9 (en) 1999-10-28
CN1286775A (zh) 2001-03-07
DE69839194T2 (de) 2009-03-26
AU2012599A (en) 1999-07-19
EP1049985A1 (en) 2000-11-08
US6298410B1 (en) 2001-10-02
WO1999034298A1 (en) 1999-07-08
EP1049985A4 (en) 2001-12-19
EP1049985B1 (en) 2008-02-27
DE69839194D1 (de) 2008-04-10

Similar Documents

Publication Publication Date Title
CN1328677C (zh) 用于处理中断的设备和方法
EP1062578B1 (en) Method and apparatus for handling multiple level-triggered and edge-triggered interrupts
EP0382505B1 (en) Virtual computer system having improved input/output interrupt control
US5469571A (en) Operating system architecture using multiple priority light weight kernel task based interrupt handling
EP0794492B1 (en) Distributed execution of mode mismatched commands in multiprocessor computer systems
US5911065A (en) System and method for providing cooperative interrupts in a preemptive task scheduling environment
EP0106669A2 (en) Operating system supervisor
JPH0916533A (ja) 対称多重処理システム
US20060168429A1 (en) Deterministic microcontroller with configurable input/output interface
US8135894B1 (en) Methods and systems for reducing interrupt latency by using a dedicated bit
JPH07175666A (ja) データプロセッサおよびその割込み要求処理方法
CN108694079A (zh) 半导体设备
JPH0855038A (ja) 対称多重処理システム、そのための割込制御ユニット、および対称多重処理システム内でプロセッサ割込信号を開始するための方法
KR100495240B1 (ko) 프로세서 시스템
CA2769899C (en) Enhanced prioritising and unifying interrupt controller
US7516311B2 (en) Deterministic microcontroller context arrangement
US7562207B2 (en) Deterministic microcontroller with context manager
US7748003B2 (en) Hard real-time response
US20050193260A1 (en) Interrupt control program, recording medium, and interrupt control method
JP4334026B2 (ja) コンピュータシステム、およびその中でシステム管理割込を発生し処理するための方法
WO2006081094A2 (en) Deterministic microcontroller
US20160378543A1 (en) Implementing pseudo non-masking interrupts behavior using a priority interrupt controller
US11593159B2 (en) External exception handling
US20060168420A1 (en) Microcontroller cache memory
US20060168421A1 (en) Method of providing microcontroller cache memory

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20070725

Termination date: 20121222