带任务切换的零开销计算机中断的制作方法

文档序号:6418862阅读:228来源:国知局
专利名称:带任务切换的零开销计算机中断的制作方法
技术领域
本发明涉及数据处理系统中的中断处理和任务切换电路及方法。
现代计算机用特殊硬件自动进行中断处理和任务切换。中断包括的事件例如有I/O传送、时钟、硬件故障、软件中断以及除零这样的软件故障。为使中断程序不改变运行程序,因此所有被中断任务的状态都必须被保存起来。然后,必须从存储器中检索所有新的中断任务状态并继续处理这些新的中断任务状态。一旦完成中断任务,则通常执行中断返回指令,执行状态保存过程将其自身还原并恢复先前的任务。
大多数现代计算机利用硬件中断机构实现任务转变过程,该硬件中断机构在跳到特殊中断服务程序之前首先禁止另外的中断并且只保存最少数量的状态寄存器。然后,可以要求特殊中断服务程序保存其余的任务寄存器。接着它为中断任务加载寄存器。在从中断返回时,逆向执行该过程,计算机就可以回到其初始任务了。
在寄存器的保存和恢复过程中,必须禁止任何进一步的中断请求以防止破坏系统的现存数据。因此,计算机在这些时间间隔即所说的中断等待时间内对中断是不敏感的。传统的计算机体系结构在响应中断之前必须完成当前指令。通常,这些指令在它们的工作期间内变化很大。此外,根据当前执行处理的方式以及中断处理的方式,不同的计算机体系结构有不同的中断等待时间。这两个因素合起来导致高度不确定的中断等待延迟和开销。
除了与开始每项新的中断任务有关的等待延迟外,在现有技术的计算机中,在两个任务间进行切换也要花费时间。这个切换时间是中断和任务转变处理开销。它是用于保存和恢复寄存器的时间,因此是不可用于处理的时间。在很多现代计算机中,该中断和任务转变处理开销总计达几十或几百个周期。即使在多兆赫时钟频率下,等待延迟与相对于切换开销所需时间的结合导致计算机仅能以数十或数百千赫处理中断。其间,以数十至数百兆赫进行多媒体数据传送。
由于这些现代计算机在中断和任务转变等待时间及处理开销方面的时间限制,现有的计算机不使用大的存储缓冲器和辅助专用处理器就不能处理所需的数据速率。这些缓冲器的大小使多媒体系统跨度为几十个芯片,每个都需要额外的维护成本。即使由于技术进步可以在每个集成电路上放置更多的存储器,但现有的大尺寸且复杂的缓冲数据传送方法继续造成额外的制造成本,同时降低了计算机的操作性能。现代应用需要更大数量的中断,这只会使问题更加恶化。
前面已提到了多寄存器中断和任务切换系统,但它们都具有各种局限性。特别地,大寄存器组的使用会随之增大与线路和电容有关的延迟,使整个计算机慢下来。其它方法是使用独立的寄存器存储数据,但这会在中断执行前,在数据进出这些任务保存寄存器的过程中造成时间的浪费。然后,必须在中断处理开始前使用额外的时间将工作数据载入通用寄存器。
传统计算机体系结构的另一个缺陷是它们不能在不需额外的硬件仿真器以及逻辑分析器的情况下结合跟踪处理器流程、包括任务转变的有效方法。同时,由于传统的硬件仿真器不能象测试中的计算机运行那么快,因此不能在实际操作环境下测试计算机。
而且,计算机缺乏基于硬件的任务链接顺序执行系统和随着时间的推移允许中断自动增大其优先级的截止期优先级“无耐性”计数器。
同时,多循环不可中断指令也增加中断等待延迟。在现代复杂的计算机中,这些等待延迟可能是成百甚至成千个周期长。
而且,当前现有技术的CPU的数据和指令处理是流水线,以便在每个周期内处理更多的数据和指令。这有许多不利之处。无论中断何时进入,流水线CPU必须放弃流水线中未完成的任务,并将不同的计数器复位,从而当它重新启动时恢复处理。这称为流水线“停止”。当执行分支指令时,流水线CPU必须或预测分支将会走哪条路,或停止或尽量跟随多重可能的分支结果。所有这些不同的流水线CPU情况都可能使计算机浪费处理资源并导致进一步的延迟。
此外,传统计算机系统需要扩展缓冲以适应高数据速率。因此,通常它们不适于在成本、低能耗及冷却支出和提高性能方面具有优点的单片、整体结构加工。
针对操作传统计算机的现有结构和方法所存在的上述问题和局限性,本发明的一个目的是提供一种用在计算机体系结构中的独特的零开销中断和任务转变机构,用于检测后台中断,然后在不需软件干预的情况下在一个处理机周期和下一个处理机周期之间执行完全状态保存和恢复操作,同时仅通过任务存储存储器系统的大小来限制任务数量以及不管任务存储器存取时间如何都维持机构的零开销特征。
本发明的另一个目的是出现中断和任务转变事件时,通过消除将运行任务的数据传送到独立任务状态存储单元的需要来防止时间损失。
本发明的另一个目的是允许使用部分系统任务存储器对计算机程序调试中使用的全速、实时处理机流进行有效跟踪。
本发明的另一个目的是提供任务链接系统,以使任务的链接能按多任务系统所需强制顺序执行所链接的任务。
本发明的另一个目的是提供优先级“无耐性”计数器系统,在不同任务的任务优先级截止期接近时增加其相对优先级。
本发明的中断和任务转变机构的另一个目的是消除对与扩展存储器缓冲器及辅助专用处理机有关的成本和延迟的需要。
本发明的另一个目的是通过切换任务的全部状态而不仅仅是CPU寄存器的状态允许以前被认为是不可中断的指令中断,以消除等待时间,否则会陷入长时间的多周期不可中断指令中。
本发明的另一个目的是建立确定性的计算机体系结构以有效消除等待时间的不可预见性。
本发明的中断和任务转变机构的另一个目的是消除部分以前所需CPU流水线及分支预测电路部分,更好地避免计算机停止和延迟。
本发明的目的还在于所设计的系统电路足够简单和紧凑,以便在单片、小型、集成电路的限制内实现其目的,单片、小型、集成电路能在传统加工处理的限制内在CPU内实现,以便在提高计算机处理速度的同时减少本发明电路的能量和冷却需要。
本发明的优点在于使计算机既能处理中断和带零开销的任务转变,又能处理非常少的等待周期,特别是来自于局部存储器的仅一个或两个等待周期。这是通过使用硬件来完全自动完成全部中断和任务转变处理来完成的,通过检测后台中断然后在没有软件干预的情况下执行一个处理机周期和下一个处理机周期之间的全部状态保存和恢复操作,同时仅通过任务存储存储器系统的大小来限制任务的数量,并不管任务存储器存取时间如何都维持机构的零开销。
本发明避免与大寄存器组相关的线路和容量延迟。用与计算机后台处理电解耦的相对小型的寄存器组保存和恢复来自大存储库的寄存器状态。由于具有比寄存器组更大的存储库密度,因此这是一个重要的优点。而且,在花在等待的时间上,可用外部存储库存储寄存器状态。这实质上增加了用于附加的可用零开销任务的系统容量。
中断和任务转变机构通过在每个任务寄存器位使用两个或两个以上任务锁存器达到其目的。每个这种锁存器可交替与大任务存储库或CPU相连。因此,当CPU正在使用一个锁存器时,另一个锁存器中的数据被保存起来并同时进一步加载任务数据。一个小型状态机控制任务转变的排序。
中断和任务转变机构的体系结构在简单寄存器上加入2个以下的门延迟。任务存储随机访问存储器(RAM)的访问时间不加入中断和任务转变开销。目前的集成电路处理允许任务RAM在一个周期内操作,允许“最坏情况”中断和2个周期的任务转变等待时间。
与传统计算机系统相反,确定性系统具有独立于操作或中断方式,以及独立于当前指令持续时间的固定等待时间。
在本发明中,由于中断时保留机器的全部状态,因此系统在任何时刻都是可中断的。中断延迟为两个等待周期中的一个,因此比传统计算机具有更高的确定性。
本发明的另一个优点在于用确定性中断结构使系统更易于设计、测试及调试。
本发明的另一个优点在于其容错,容错可以替代自己或以允许单独一步一步进行调试的方式被替代。
本发明的另一个优点在于当使用与不确定性结构体系相反的确定性结构体系导致处理机结构的成本降低时,需要保持较低的处理能力和较少的缓冲。
另一个优点在于因为其是确定性的,因此本发明便于新的潜在中断应用机会。
由于本发明的中断和任务转变机构使用其中一个任务锁存器作为与CPU相连的寄存器,因此不需要象其它方法那样将数据传送给独立的任务状态存储器单元。这种结果也是一个优点,因为处理过程中节省了时间。
该中断和任务转变系统的另一优点在于能在部分任务存储器外建立跟踪存储器,因此允许对基于该系统的计算机进行全速、实时调试。
本发明的另一个优点是允许任务被链接的任务链接系统,以使任务必须顺序执行。这可以通过软件方法节省时间。
本发明提供的另一个优点在于其任务截止期优先级计数器系统允许任务发出硬件中断信号,从而随时间的推移自动增大其优先级。这特别适用于类似音频任务的较慢任务,其在低优先级开始。通常CPU会寻找时间为较低优先级的任务服务,下一个采样周期前的任何时间都是可用的。然而,有时CPU会有许多高优先级任务。在这种情况下,本发明的任务截止期优先级计数器系统在其截止期接近时逐渐增大较低优先级任务的优先级。
本发明的另一个优点在于设计有这种中断和任务转变机构的计算机系统在没有有效的缓冲及维护控制电路的情况下能处理多媒体数据速率。这允许用更少的电路产生更高的I/O功能。
本发明的另一个显著优点是通过切换任务的全部状态不仅仅是CPU寄存器的状态允许以前被认为是不可中断的指令中断,以消除等待时间,否则会陷入长时间的多周期不可中断指令中。
本发明的中断和任务切换系统的另一个优点是其能够代替CPU中的流水线和分支预测功能。本发明旨在解决存在于流水线CPU中的现有问题。仅仅通过切换任务,不需流水线和分支预测电路就可将其实现。不需分支预测。当分支指令出现时,CPU进行处理。如果分支指令需要不在局部存储器内的数据,分支任务与等待任务交换并继续处理。
本发明的另一个优点在于其足够简单且紧凑,从而能放置在与现有加工过程相容的单片、小型、集成电路上。结果,实际电路所需的能量被减少,对冷却装置的需要以及由此而带来的对额外的电子冷却能量的需要也被降低或消除,并且通过减小电路的尺寸和复杂性,由此使系统的芯片数量和芯片的内部连接减少,使CPU的处理速度得到了提高。
通过阅读以下结合附图的详细描述,本领域的技术人员显然可以清楚本发明的上述以及其他目的、特征和优点。


图1是根据本发明的一个任务寄存器位片实施例的电路图。
图2是任务切换流程图。
图3是中断和任务转变处理电路的方框图。
图4是用三个锁存器代替二个锁存器的中断和任务转变系统的另一种实施方式的电路图。
图5是具有附加的跟踪电路的任务寄存器的电路图。
图6是实现跟踪控制系统的方框图。
图7是任务切换采样的控制序列时序图。
图1示意性地示出了用于计算机1的任务寄存器的一个位片。每个32位寄存器使用32个这样的片。通常,CPU使用多个32位寄存器。CPU1和静态随机访问存储器(SRAM)2可交替与锁存器3和锁存器4相连(从不与同一个锁存器相连)。为便于讨论,我们从与CPU相连的锁存器3、与SRAM2相连的锁存器4开始。在这种结构中,CPU运行存储在锁存器3中的任务。当CPU1运行使用任务锁存器3的程序时,硬件在后台处理中断。
图3示意性地示出了中断处理电路。硬件中断90包含所有可能的硬件中断源,包括外部探针、内部外围设备以及异常发生器。在优选实施方式中,为每个主要的中断源分配固定的硬件任务号码。或者,在硬件和源以及任务之间的软映射是可能的。当超时计数寄存器91达到其计数终点时,输出中断,就象任何硬件中断90源一样。由超时计数寄存器91控制的任务在超时计数寄存器91完成后运行,并且运行时自动传送来自超时计数寄存器91的新的超时值。可能的中断源、超时计数寄存器91以及硬件中断90在或门99组合,并进入中断允许控制96。
中断允许控制开关96由任务链接系统进行控制。通过任务解码器82和与门100,任务链接系统用运行任务的链接寄存器81触发所存储任务所链接的锁存器83。写入链接寄存器81也禁止指定的任务。在所链接的锁存器被置位后,当首要任务再次运行时,将再次允许链接寄存器81中指定的任务。然后所指定的任务可以运行。在链接的任务运行结束时,如果其链接的锁存器83被置位,通过任务解码器102、与门103和或门104,将禁止其自身的中断允许锁存器97。图3A所示为这个电路的逻辑图。因此,这个电路将保证所链接的任务和首要任务交替运行,所链接的任务总是在首要任务之后运行而不是在这之前运行。所链接任务有很长的链是可能的。
中断信号使其通过中断允许控制96,然后进入其任务优先级计数寄存器95。该寄存器通过CPU总线从任务上加载,无论何时,它都以任务的开始优先级运行。当任务运行时,截止期率锁存器94也被加载,然后将其载入任务截止期优先级计数器93。到达中断允许控制96的中断允许任务截止期优先级计数器93。任务截止期优先级计数器93计数直至完成,然后向任务优先级计数寄存器95输出将任务优先级增加1的信号。用这同一个信号将截止期率锁存器94重新载入任务截止期优先级计数器93。用这种方式,随着其截止期的接近,在已经中断之后,可以将任务设为增加其优先级。
每个任务将其优先级从任务优先级计数寄存器95送入优先级选择器19。该电路选择最高的优先级任务并将任务号码和优先级传送到任务切换控制器20。由于任务可以花时间等待在锁存器4或3(图1)中运行,因此等待任务的任务截止期优先级计数器93通过MUX92到达任务切换控制器20。用这种方式,任务控制器20可以继续增加等待任务的优先级,直至其超过运行任务的优先级,然后开始任务交换。
在多个相同优先级的任务同时出现在优先级选择器19中的情况下,优先级选择器19将确定优先级并随后选择任务。任务切换控制器20用小型状态机对任务控制器总线排序以完成任务切换。图2示出了用任务切换控制器20完成任务切换步骤的流程图。
在图1中的时间零点,如下设置电路CPU1与锁存器3相连;任务控制总线A/B信号线置为B;锁存器3Q输出通过多路转接器(MUX)17至CPU1输入;CPU1输出通过MUX14至锁存器3输入D;锁存器4输出通过MUX13至SRAM2输入;及,SRAM2输出通过MUX15至锁存器4输入D。
切换任务中的第一步是从SRAM2中将任务读入CPU1不使用的锁存器,在本例中为锁存器4。通过将中断任务地址放在任务控制总线读任务地址总线上来完成这一步。然后时钟B信号将该状态存储进锁存器4中。(由于我们的示例均来自冷启动,因此在锁存器4中没有任务。正常情况下其中应有任务。通过认定写任务任务目标地址并接着认定时钟SRAM线,该任务在新的中断任务从SRAM2中读出时有可被写入SRAM2中)。在时刻T2,将新任务载入锁存器4中(图2)。在同一时钟边沿或随后的几分之一周期,A/B控制信号变为B,使锁存器4输出并接收来自CPU1的输入,使锁存器3接收输入并向SRAM2输出。在这点上,如果最初的任务再次中断,则A/B线被再次触发,不需从SRAM2中读取就切换任务。
上述示例是启动示例。通常,一旦启动,当新中断进入时就有任务等待运行。因此,等待任务可以是“清洗”(扔掉)的。但是,在优选实施例中,在从SRAM2中取出新的中断任务并将以前正在运行的任务存入SRAM2中时,等待任务总是至少运行一个周期。依次地,当锁存器3与CPU1相连并运行任务时,同时锁存器4保持下一个预定要运行的任务,如果优先级选择器19检测到具有相同或更高优先级的新中断(图3),则在T1(图2),A/B线被触发成B,使锁存器4中的任务数据与CPU1附接,同时锁存器3与SRAM2相连。然后新的中断任务地址放在读任务任务控制总线上,前一个运行任务地址放在写任务线上。在T2(图2),前一个中断任务数据被锁入到SRAM2中,新中断任务数据被锁入到锁存器3中,CPU1将所有数据(如果已编程)锁入到锁存器4。然后再次将A/B线触发成A以在锁存器3外运行新的中断任务。
用另外的实施方式实现本发明也是可能的。图4示出了用3个锁存器代替2个来实现寄存器位。在这里,用3-输入MUX40&41代替2个锁存器设计中2-输入MUX42(图1)。增加另外的MUX42来选择SRAM2或CPU1。额外的锁存器允许3个任务仅具有1个周期的等待时间。然而,电路每位更大且由于额外的线路和容量变得有点慢。与更简单得MUX13&17(图1)相比,有通过MUX40&41的另外的门延迟(图1)。对给定应用的最佳配置取决于所使用的集成电路制造过程的具体特性以及应用的时间请求。
图5示出了跟踪功能执行过程。除上面描述并显示在图1中的任务切换功能外,增加了MUX50和三态开关51。通过改变MUX50的地址和跟踪/任务控制线,跟踪SRAM2a被用作任务切换SRAM2或跟踪SRAM2a。当CPU1存入锁存器3或4时,如果进行跟踪,则由MUX50传送数据以跟踪SRAM2a。图6所示为跟踪控制器的方框图。由MUX60选择不同的测试点通过测试逻辑61进行逻辑测试。如果测试逻辑表示情况符合用户测试设置点,则跟踪控制器62开始跟踪。跟踪控制器62最简单的用途是,在认定跟踪信号时输出连续跟踪写地址。跟踪控制器也可以设计成不断进行跟踪直至事件发生,然后停止跟踪,或在停止前多跟踪几个步骤。通过认定对每个将要与跟踪读位相连的位的三态51(图5)进行选通控制来完成跟踪数据的读出。由于跟踪读出不是时限任务,或可以使用更宽的总线将其集合成寄存器输出,因此该数据可以每次读出一位。
虽然上面已对本发明的不同实施例进行了描述,但是应当知道,它们均是通过示例的方式呈现的,且不受限制。因此本领域的技术人员可以在不背离本发明的精神的条件下进行修改和变型,本发明的范围由权利要求书限定。
以上说明中采用的术语和表达方式仅是本文描述的术语,不具有限制性,在使用这种术语和表达方式时,不排除对所示特征使用等价的术语,本领域的技术人员知道本发明的范围由权利要求书限定。
权利要求
1.在微计算机中具有多个寄存器和寄存器设置存储器,多个寄存器可选择性地与CPU多路通信,寄存器设置存储器用来存储多个寄存器设置并具有双地址用于在读取第一寄存器设置的同时写第二寄存器设置,每个所述寄存器设置被指定完成一个任务,在任务间快速切换方面进行改进,所述改进包括用于所述寄存器设置中的每个位的第一和第二锁存器组件,每个所述锁存器组件包括锁存器;第一多路转接器,其输出与所述锁存器的输入端相连,与所述CPU的输出相连的第一输入以及与所述寄存器设置存储器的输出相连的第二输入;第二多路转接器,其输入与所述锁存器的输出相连,与所述CPU的输入相连的第一输出以及与所述寄存器设置存储器的输入相连的第二输出,由此在相同的时钟周期中由所述CPU处理的第一寄存器设置可写入所述第一锁存器设置,第二寄存器设置从所述寄存器设置存储器中读出并存储在所述第二锁存器设置中,以及第三寄存器设置从所述第二锁存器中读出并写入所述寄存器设置存储器中。
全文摘要
本发明构成了独特的硬件零开销中断和任务转变系统,该系统用于减少或消除作为计算机结构体系中任务转变处理开销延迟的中断等待时间。在不损失时间的情况下,系统在没有软件干预下的情况下完成一个周期和下一个周期之间全部任务状态的保存和恢复。对每个中央处理器(1)而言,本发明使用一个或一个以上辅助锁存器(3,4),其中一个锁存器(4)用作“运行”锁存器,辅助锁存器之一连接到任务存储存储器上。本发明在交替的“运行”寄存器和辅助寄存器之间交换连接,同时将其它任务送入和送出任务存储器(2)。本发明提供一种允许任务链接的任务连接系统,用于强制顺序执行所链接的任务。而且,本发明包括优先级“无耐性”计数器系统以便不同任务接近其任务截止期时增大其相对优先级。
文档编号G06F9/48GK1293776SQ99803977
公开日2001年5月2日 申请日期1999年2月5日 优先权日1998年2月13日
发明者布赖恩·多诺万 申请人:齐龙公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1