CN1286775A - 通过被软件控制的寄存器存取初始化硬件优先级管理的设备和方法 - Google Patents

通过被软件控制的寄存器存取初始化硬件优先级管理的设备和方法 Download PDF

Info

Publication number
CN1286775A
CN1286775A CN98812877.2A CN98812877A CN1286775A CN 1286775 A CN1286775 A CN 1286775A CN 98812877 A CN98812877 A CN 98812877A CN 1286775 A CN1286775 A CN 1286775A
Authority
CN
China
Prior art keywords
interrupt
register
vector
highest
cover
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.)
Granted
Application number
CN98812877.2A
Other languages
English (en)
Other versions
CN1328677C (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内核。每个中断被接受逻辑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中的中断,并返回中断服务寄存器到其初始状态。
到此时,单一中断的过程已被描述。实际操作中,多到242个中断可由本发明所示的实施例所服务,并提供操作系统允许多层嵌套中断的功能。且多至242个挂起中断。
在操作中,可编程软件通过读取中断向量寄存器(IVR)124决定当前最高优先级挂起中断向量。在本发明的一个实施例中,IVR是个8位的寄存器,且每一个中断是个8位包括一个由可编程软件分配给特殊中断源的数字的向量,可编程软件已被编程使特定优先级与每个向量相关,并因而与每个中断相关。一个特殊数字被保留为了指定假向量的实施例,在以下做更多描述。
图1所示实施例中,对外可见的寄存器包括中断结束(EOI)寄存器130,中断请求寄存器(IRR)116,中断向量寄存器(IVR)124,和任务优先级寄存器(TPR)120。对外不可见的是中断服务寄存器(ISR)128,最高优先级中断寄存器,和最高服务中断寄存器。
中断结束寄存器(EOI)实际上是个伪寄存器。在最高优先级挂起中断的中断句柄程序的完成后,软件负责对EOI寄存器的地址进行写操作以清除与中断相关的某一特殊位(在中断服务寄存器中)。在可编程中断控制器中,此写操作声明了一个单一信号,它驱动机器通知中断以完成。实际操作中,中断结束寄存器的写操作指示软件已准备好接受由任务优先级寄存器决定的另一个相同或更低优先级的中断。本发明的一个实现中,中断结束寄存器是个8位寄存器。
中断请求寄存器(IRR)保持跟踪挂起中断。挂起中断是个已被处理器接收但还未服务的中断。当一个中断被接收,它将被注册到IRR。当中断向量寄存器被读,IRR中的有最高优先级的中断作为中断向量被编码和提供。一旦向量信息被传到处理器,中断将被移至中断服务寄存器。在本发明的一个实施例中,中断请求寄存器是个242位的寄存器。
中断服务寄存器(ISR)保持跟踪当前正被处理器服务的中断。当中断向量寄存器被读时,最高优先级挂起中断向量将给CPU,且相对应的ISR位将被设置。此位将被保留直到中断结束寄存器被处理器写入。如果在低优先级中断被服务时多个更高优先级中断被接收则ISR寄存器可以有多个位被设置。这些高优先级将在原先中断服务中被嵌套和服务。本发明的一个实施例中,中断服务寄存器是个242位的寄存器。
最高优先级中断寄存器被用于保留最高优先级中断(HPI)的值。本发明的一个实施例中,此寄存器是个8位寄存器。最高优先级中断(HPI)是被接收还没被服务最高优先级中断的向量。
最高服务中断寄存器跟踪当前被服务的中断的优先级,且被用于保留最高服务中断(HIS)的值。本发明的一个实施例中,此寄存器是个8位寄存器。最高服务中断(HIS)是被服务的最高优先级中断的向量。
任务优先级寄存器(TPR)跟踪处理器的优先级。处理器的优先级在每次切换任务时,处理器的当前任务提高或降低其优先级时,处理器进入中断句柄时会改变,优先级由可编程软件控制。在被说明的实施例中,任务优先级寄存器是个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)被返回给可编程软件(处理块230)。另一方面,如果没有不可掩中断,进入决定块240。确定是否任务优先级寄存器(TPR)已使出现的中断无效,或是否最高挂起中断(HPI)小于或等于最高服务中断。如果决定块240的结果为是,那么假向量返回给IVR(处理块250)。在本发明的实现中,向量数15为保留假向量。
对于决定块240,由于在实际操作中,因为一个中断源可能在控制器正在处理此设备刚才发送的中断的处理过程中给控制器发送中断,或某一中断源可能编程到相同的中断向量,所以HPI可能等于HIS。
如果决定块240的输出是否,即,如果TPR还未被出现的中断设无效且HPI>HIS,那么中断服务寄存器(ISR)终于最高优先级中断对应的位被设置,此位也就是本发明的一个实现中中断请求寄存器(IRR)的最高的向量,同时中断请求寄存器中与最高优先级中断对应的位被清除,且中断请求寄存器(IRR)中的最高向量(最高优先级中断的向量)被返回给IVR。
因此CPU中作为操作系统一部分的可编程软件控制何时有最高优先级的挂起中断的向量被提供给可编程软件,且硬件中断逻辑控制如何使向量被提供给可编程软件。通过可编程软件对中断向量寄存器的读操作引起了硬中断逻辑的控制行动,它导致硬件中断逻辑返回数据给可编程软件。可编程软件就好像真正读取了包含信息的中断向量寄存器而实际上是在读操作引起硬件确定数据然后返回数据给软件。其实没有传统意义上真正的读和写操作产生。
图3以方块图的形式显示了本发明一个实施例在中断向量寄存器(IVR)的读操作和中断结束(EOI)寄存器的写操作之上中断请求寄存器(IRR)和中断服务寄存器(ISR)中的数据流。还有,图4显示图3所示的实施例的位于中断向量寄存器(IVR)读,中断结束(EOI)写和中断请求的管道。
读中断向量寄存器的可编程软件能完成多种软件策略和硬中断逻辑完成的硬件策略。本发明的这一特点允许巨大的灵活性,且允许中断结构被裁剪以适合多种操作系统的个别需要。
以上所示的特殊实施例仅为阐明性的,由于本发明可被改变和实践于不同的方式,很明显以上所示特殊实施例可能被改变且所有此类改变被认为是在在本发明的范围和实质内。因此,所要的保护在以下权利要求书中声明。

Claims (22)

1.一种基于寄存器的可编程系统中断控制器,用于在有CPU的计算机中控制中断,包括:
可编程软件,可操作地控制何时提供与最高优先级中断相关的数据;和
硬件中断逻辑可操作地控制如何提供与最高优先级中断相关的数据。
2.权利要求1的设备,其中:
一个中断向量寄存器包括在CPU中;和
当所述可编程软件读取所述中断向量寄存器时,提供与最高优先级中断相关的数据。
3.权利要求1的设备,其中:
一个中断向量寄存器包括在CPU中;
关系到有最高优先级中断相关的数据由硬件中断逻辑提供:
决定是否一个不可掩中断存在;
如果一个不可掩中断存在,返回一个不可掩中断存在的指示;
如果一个不可掩中断不存在,且如果中断已被设无效或有最高优先级中断在被服务,返回特殊向量;
如果一个不可掩中断不存在,且如果中断已没有被设无效或有最高优先级中断没有在被服务,返回有最高优先级中断相符的向量。
4.一种基于寄存器的可编程系统中断控制器,用于在有CPU的计算机,包括:
一个作为CPU寄存器实现的中断向量寄存器;
可编程软件,读取所述中断向量寄存器;和
硬件中断逻辑,可操作地返回一个向量,以响应所述中断向量寄存器被所述可编程软件读取。
5.权利要求4的设备,其中:
所述硬件中断逻辑:
决定是否一个不可掩中断存在;
返回可编程软件一个不可掩中断存在的指示,
如果一个不可掩中断存在;
返回可编程软件一个第一向量,
如果一个不可掩中断不存在,且
如果中断已被设无效或有最高优先级中断在被服务;
返回可编程软件一个第二向量,
如果一个不可掩中断不存在,且
如果中断没有已被设无效或有最高优先级中断没有在被服务。
6.权利要求5的设备,其中所述第一向量是个假向量。
7.权利要求5的设备,其中所述第二向量是有最高优先级中断的向量。
8.一种可编程中断控制器,在有CPU和可编程软件的计算机中控制中断,包括:
一个在计算机的CPU中的中断向量寄存器,和当所述中断向量寄存器被可编程软件读取时可操作地引发控制。
9.权利要求8的设备,其中所述的控制行为包括:
确定是否一个不可掩中断存在;
如果一个不可掩中断存在,在中断向量寄存器中返回此不可掩中断;
如果一个不可掩中断不存在,且如果中断已被设无效或有最高优先级中断正在被服务,在中断向量寄存器中返回第一个向量;
如果一个不可掩中断不存在,且如果中断被有被设无效或最高优先级中断没有正在被服务,在中断向量寄存器中返回第二个向量;
10.权利要求9的设备,其中所述的第一向量是假向量。
11.权利要求9的设备,其中所述的第二个向量是有最高优先级中断的向量。
12.一个计算机中控制中断的可编程中断控制器,包括:可编程软件;
硬件中断逻辑;和
当所述中断向量寄存器为所述可编程软件读取时,一个中断向量寄存器通过所述硬件中断逻辑可操作的引发控制行为;
其中所述硬件中断逻辑包括以下寄存器:
一个任务优先级寄存器;
一个最高挂起中断寄存器;
一个最高服务中断寄存器;
一个中断服务寄存器;和
一个中断请求寄存器。
13.权利要求12的设备,在其中所述控制行为包括:
确定是否一个不可掩中断存在;
返回给可编程软件此不可掩中断;
如果一个不可掩中断存在;
返回给此可编程软件一个第一向量,
如果一个不可掩中断不存在,且
如果任务优先级寄存器已使中断无效,或如果最高挂起中断寄存器的值小于或等于最高服务中断寄存器的值;
设置中断服务寄存器位与中断请求寄存器中最高向量相符,且返回给可编程软件中断请求寄存器中最高向量,
如果一个不可掩中断不存在,且
如果任务优先级寄存器没有使中断无效,或如果最高挂起中断寄存器的值大于最高服务中断寄存器的值;
14.权利要求12的设备,其中:
所述中断向量寄存器是一个x位寄存器;
所述最高挂起中断寄存器是一个x位寄存器;
所述最高服务中断寄存器是一个x位寄存器;
所述中断服务寄存器是一个y位寄存器;和
所述中断请求寄存器是一个y位寄存器;
其中x小于y。
15.权利要求14的设备,其中:
所述中断向量寄存器是一个8位寄存器;
所述最高挂起中断寄存器是一个8位寄存器;和
所述最高服务中断寄存器是一个8位寄存器;
16.权利要求7的设备,其中:
所述中断服务寄存器是一个242位寄存器,且中断请求寄存器是一个242位寄存器。
17.一种在计算机中控制中断的方法,计算机有一个CPU,一个中断向量寄存器,和可编程软件,此方法包括的步骤如下:
确定是否一个不可掩中断存在;
如果不可掩中断存在,当中断向量寄存器被可编程软件读时,在中断向量寄存器中返回不可掩中断;
如果不可掩中断不存在,且如果中断已被设无效或有最高优先级的中断在被服务,当中断向量寄存器被可编程软件读时,在中断向量寄存器中返回一个第一向量;
如果不可掩中断不存在,且如果中断没有被设无效或有最高优先级的中断没有在被服务,当中断向量寄存器被可编程软件读时,在中断向量寄存器中返回一个有最高优先级中断的向量;
18.一种在计算机中控制中断的方法,
所述计算机包括:
可编程软件;
一个中断向量寄存器;
一个任务优先级寄存器;
一个最高挂起中断寄存器;
一个最高服务中断寄存器;
一个中断服务寄存器;和
一个中断请求寄存器;
所述方法包括步骤如下:
通过可编程软件读取中断向量寄存器引起控制行为;
其中所述控制行为包括:
确定是否一个不可掩中断存在;
返回给可编程软件此不可掩中断,
如果不可掩中断存在;
返回给可编程软件一个第一向量,
如果不可掩中断不存在,且
如果任务优先级寄存器已设中断无效,或如果最高挂起中断寄存器的值小于或等于最高服务中断寄存器的值;
设置中断服务寄存器位对应中断请求寄存器中的最高向量,且返回给可编程软件中断请求寄存器中的最高向量,
如果不可掩中断不存在,且
如果任务优先级寄存器没有设中断无效,或如果最高挂起中断寄存器的值大于最高服务中断寄存器的值。
19.权利要求18中的方法,其中所述第一向量是假向量。
20.权利要求18中的方法,其中可编程软件对控制一或多个所述寄存器可编程。
21.权利要求18中的方法,其中可编程软件对可选屏蔽中断可编程。
22.权利要求18中的方法,其中可编程软件对选择性设置中断优先级可编程。
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 1997-12-31
US09/001,817 US6298410B1 (en) 1997-12-31 1997-12-31 Apparatus and method for initiating hardware priority management by software controlled register access

Publications (2)

Publication Number Publication Date
CN1286775A true CN1286775A (zh) 2001-03-07
CN1328677C 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)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100429625C (zh) * 2005-08-05 2008-10-29 三菱电机株式会社 实时内部简易监视方法
CN101426099B (zh) * 2007-10-31 2010-08-25 晨星半导体股份有限公司 数字电视系统及数字电视中处理数据信号的方法
CN110221861A (zh) * 2019-05-31 2019-09-10 常州市常河电子技术开发有限公司 一种cpu新型寄存器体系结构及其中断处理方法

Families Citing this family (25)

* 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
DE10062996B4 (de) * 2000-12-16 2005-09-29 Micronas Gmbh Unterbrecher-Steuereinrichtung mit Prioritätsvorgabe
DE10062995A1 (de) * 2000-12-16 2002-07-11 Micronas Gmbh Unterbrecher-Steuereinrichtung
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 株式会社デンソー 制御ユニットおよびマイクロコンピュータ
US7917740B1 (en) * 2004-05-11 2011-03-29 Advanced Micro Devices, Inc. Virtualization assist for legacy x86 floating point exception handling
US20070016906A1 (en) * 2005-07-18 2007-01-18 Mistletoe Technologies, Inc. Efficient hardware allocation of processes to processors
WO2008046227A1 (en) * 2006-10-20 2008-04-24 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
CA2667142C (en) * 2006-10-20 2013-01-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 creating a configurable browser-based forms application
US9946668B1 (en) * 2007-01-10 2018-04-17 The Mathworks, Inc. Automatic prioritization of interrupts in a modeling environment
US20120226842A1 (en) * 2011-03-02 2012-09-06 Research In Motion Limited, an Ontario, Canada corporation Enhanced prioritising and unifying interrupt controller
US9952895B2 (en) * 2015-06-27 2018-04-24 Vmware, Inc. Implementing pseudo non-masking interrupts behavior using a priority interrupt controller
US9952990B2 (en) * 2015-06-27 2018-04-24 Vmware, Inc. Implementing pseudo non-masking interrupts behavior using a priority interrupt controller

Family Cites Families (8)

* 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
US4604683A (en) 1984-12-10 1986-08-05 Advanced Computer Communications Communication controller using multiported random access memory
GB9012950D0 (en) * 1989-11-03 1990-08-01 Ibm Programmable interrupt controller
WO1993000638A1 (en) 1991-06-26 1993-01-07 Ast Research, Inc. Automatic distribution of interrupts controller for a multiple processor computer system
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 Nat Semiconductor Corp 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 データ処理装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100429625C (zh) * 2005-08-05 2008-10-29 三菱电机株式会社 实时内部简易监视方法
CN101426099B (zh) * 2007-10-31 2010-08-25 晨星半导体股份有限公司 数字电视系统及数字电视中处理数据信号的方法
CN110221861A (zh) * 2019-05-31 2019-09-10 常州市常河电子技术开发有限公司 一种cpu新型寄存器体系结构及其中断处理方法
CN110221861B (zh) * 2019-05-31 2023-08-29 常州市常河电子技术开发有限公司 一种cpu寄存器体系结构及其中断处理方法

Also Published As

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

Similar Documents

Publication Publication Date Title
CN1286775A (zh) 通过被软件控制的寄存器存取初始化硬件优先级管理的设备和方法
US5469571A (en) Operating system architecture using multiple priority light weight kernel task based interrupt handling
EP1062578B1 (en) Method and apparatus for handling multiple level-triggered and edge-triggered interrupts
CN1188794C (zh) 到一个共享的协处理器资源的多个逻辑接口
US8612659B1 (en) Hardware interrupt arbitration in virtualized computer systems
JPH05204679A (ja) I/o割込みサブクラスの認識方法
US6473780B1 (en) Scheduling of direct memory access
US8135894B1 (en) Methods and systems for reducing interrupt latency by using a dedicated bit
US20080177682A1 (en) Autonomic SMT System Tuning
CN101187848A (zh) 改进硬盘驱动器效率的技术
US20080052713A1 (en) Method and system for distributing unused processor cycles within a dispatch window
CA2769899C (en) Enhanced prioritising and unifying interrupt controller
US7506075B1 (en) Fair elevator scheduling algorithm for direct access storage device
US7516311B2 (en) Deterministic microcontroller context arrangement
WO1981002477A1 (en) Data processing system
US7562207B2 (en) Deterministic microcontroller with context manager
CN108845969B (zh) 适用于不完全对称多处理微控制器的操作控制方法及操作系统
JP4334026B2 (ja) コンピュータシステム、およびその中でシステム管理割込を発生し処理するための方法
WO2018219440A1 (en) System and method for dynamic determination of a number of parallel threads for a request
WO2006081092A2 (en) Deterministic microcontroller with configurable input/output interface
JP3073903B2 (ja) 情報処理装置及びそのi/o割込み制御方法
US20060168420A1 (en) Microcontroller cache memory
WO1994018625A1 (en) Computer workstation having demand-paged virtual memory
JPH04367035A (ja) 複数タスクの実時間処理装置
JPH03229328A (ja) マイクロプロセッサ

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