首页> 中国专利> 用于处理器的软件控制例外处理流程的装置及其操作方法

用于处理器的软件控制例外处理流程的装置及其操作方法

摘要

一种用于处理器的软件控制例外处理流程的装置及其操作的方法。该装置在一用户模式、一例外前期模式、及一例外模式的操作之间切换。当一例外发生时,该处理器在执行例外程序之前,可以执行一例外设定及启始过程。在该设定过程期间,在跳到启始过程之前,将目前模式及返回地址储存至缓冲器中。该启始过程允许程序人员在切换寄存器组之前,选择储存信息或除错值。从而可使程序人员在软件除错及建立例外程序时,有最大的弹性。

著录项

  • 公开/公告号CN1357831A

    专利类型发明专利

  • 公开/公告日2002-07-10

    原文格式PDF

  • 申请/专利权人 智原科技股份有限公司;

    申请/专利号CN00135354.3

  • 发明设计人 高民晟;桂念慈;梁景哲;

    申请日2000-12-15

  • 分类号G06F9/48;

  • 代理机构11105 北京市柳沈律师事务所;

  • 代理人马莹

  • 地址 台湾省新竹科学工业园区

  • 入库时间 2023-12-17 14:23:40

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2012-02-22

    未缴年费专利权终止 IPC(主分类):G06F9/48 授权公告日:20030903 终止日期:20101215 申请日:20001215

    专利权的终止

  • 2003-09-03

    授权

    授权

  • 2002-07-10

    公开

    公开

  • 2001-05-16

    实质审查请求的生效

    实质审查请求的生效

说明书

本发明是有关于一种用于处理器的处理例外流程的装置及方法,特别是有关于一种其用于软件控制来处理例外流程的装置及操作方法。

通常所提供的中央处理单元(Central Processing Unit,简称CPU)能够同时在主处理模式及一个或多个例外处理模式下操作。主处理模式是用来执行应用程序,藉以完成用户所需的数据处理。例外处理模式通常是用在诸如回应外部提供的中断信号的操作。

一般希望在主处理模式及例外处理模式之间的移动是可回复性的,即在回到主处理模式时,可以继续主处理模式的操作,好像未曾被中断过一样。为了达到这种可回复性,在离开主处理模式时,必须将CPU中的各个处理寄存器的内容储存起来,使其在例外处理模式结束时,可以回复所用于的寄存器,以及将控制返回主处理模式。

传统上,在离开主处理模式后,是将主处理模式下的寄存器所储存的内容传到外部的一随机存取存储器(Random Access Memory,RAM)上。而在回复到主处理模式时,将储存在该随机存取存储器内的主处理模式数据存回寄存器中。这种传统的方法存在一问题,即从堆栈存储器(Stack Memory)中循序地写入或是读出的速度非常慢,造成中央处理单元(CPU)的效能降低。另外一问题即在进入或是离开主处理模式时,必须储存相当多的数据(例如不同的状态标记,用以指出所要或是所允许的CPU操作等等)。

另外,在其发明名称为“Register substitution duringexception processing”的美国专利5,386,563,以及其发明名称为“Exception handling method and apparatus in data processingsystems”的美国专利5,701,593中披露了相关的已有技术。

如上述专利中所披露的,当用户程序以正常方式执行时,程序计数器(Program Counter,简称PC)会依序地增加。在执行用户程序期间,处理器会检查正常执行的流程是否被中断。假如此正常执行流程被中断,则为例外发生。这些例外或中断允许处理器处理产生此例外的事件。这些例外可以是由内部的或外部的来源所引起的以及可以是由不同原因的硬件或软件所产生的。

一般而言,硬件会提供许多的寄存器,以用来在一般主处理模式下(下面称其为用户模式User32)或是其他例外事件时暂存数据。在该用户模式下,具有十五个寄存器作为一般用途的数据暂存处理之用(下面称其为R0、R1...到R14)。而一程序计数寄存器R15pc用作程序计数器,以指出在将要执行的指令顺序中目前的位置。一目前程序状态寄存器(Current Program Status Register,下面称其为CPSR)用以储存不同的标记,以指出中央处理单元CPU的控制参数(ControlParameters),而其中的5位,可用以指出目前处理的模式。该用户模式User32提供用以执行用户的程序。

所有不同类型的例外处理模式包括SVC32模式、Undef32模式、Abt32模式、IRQ32模式与FIQ32模式。SVC32模式用来当处理器复位(Reset)或是当软件中断指令(Software Interrupt Instruction)执行时进入。Abt32模式当存储器系统终止存储器存取时进入。IRQ32(Interrupt Request)模式是当nIRQ处于低电平(逻辑0)时,而在CPSR的Ibit清楚地指出这样的慢速中断要求容许时进入。FIQ32(Fast Interrupt request)模式是在当nFIQ处于低电平(逻辑0),而在CPSR的Fbit清楚地指出这样的快速中断要求容许时进入。

每一个例外处理模式SVC32模式、Undef32模式、Abt32模式、IRQ32模式与FIQ32模式均具有两个例外模式寄存器,当在进入这些模式后,可用以替换在用户模式时的第13个寄存器R13与第14个寄存器R14的内容。而第13个寄存器R13通常用来储存在用户模式User32或是例外处理模式下的堆栈指针(Stack Pointer)。当进入这些例外模式中的一个模式时,系统将程序计数寄存器R15pc的内容储存到寄存器R14,以作为跳回用户模式时的地址寄存位置。这样当该系统从例外处理模式跳回用户模式后,可以依据该地址跳回。因此,如何在每一个例外处理的事件处理后,将寄存器原来所储存的数据存回则相当地重要。

每一例外模式有其对应的储存程序状态寄存器(Saved ProgramStatus Register,SPSR)。该SPSR是用以暂时储存前一次模式中CPSR的数据,并且容许当前一次模式回复后,重新存回CPSR。

经过例外处理的过程后,则必须回到原来执行的地址,要求该例外处理能够让CPSR的数据重新存回SPSR。接着,程序计数器(ProgramCounter,简称PC)将会根据储存在寄存器R14的回复地址(ReturnAddress),重新返回到该回复地址,并接着执行用户模式下的执行程序。

传统的例外处理流程有严重的限制,其不容许在例外处理时,在未切换寄存器组(Register Bank)或是切换模式前进行储存重要信息或是排错值(Debug value)的操作。本发明的目的是要克服上述缺点,而允许程序人员在设计例外程序时有更多的弹性。

为了实现本发明的目的,本发明提出一种用于一处理器的一数据处理软件控制例外处理流程的装置及操作方法,该装置在一用户模式、一例外前期模式、及一例外模式的操作之间切换。本发明可在未切换寄存器组(Register Bank)或是切换模式前,进行储存重要信息或是排错值的操作,使程序设计人员更具有弹性与效率。

在一例外发生后,该处理器可以在执行该例外程序之前,执行设定及启始程序。在该设定程序期间,在跳到启始程序之前,会将目前模式及返回地址储存至缓冲器中。

在该启始程序期间,因为该模式尚未改变为例外模式,所以可以储存信息及检测寄存器的值,藉以允许程序人员除错。这在除错中断时是非常有用的。

本发明提出一种用于一处理器的一数据处理的软件控制例外处理流程的装置,该装置在一用户模式、一例外前期模式(pre-exception mode)及一例外模式(exception mode)的操作之间切换,该装置包括一程序状态寄存器,用以储存在该用户模式的处理状态信息;一程序计数器寄存器,用以储存在该用户模式的一目前执行的程序指令的一地址;一目前程序状态寄存器缓冲器及一程序计数器缓冲器,用以在一例外发生且该装置从该用户模式改变操作时,在该例外前期模式的一例外处理者设定程序期间,分别储存该程序状态寄存器的内容及该程序计数器寄存器的内容;以及一储存程序状态寄存器及一连结寄存器,用以在一改变模式指令输入该处理器后,分别储存该目前程序状态寄存器缓冲器的内容及该程序计数器缓冲器的内容,其中该装置改变从该例外前期模式至该例外模式的操作,其中该装置在该例外前期模式操作的一期间足以供一用户执行一软件操作。

本发明提出一种用于一处理器的一数据处理的软件控制例外处理流程的操作方法,该处理器在一用户模式、一例外前期模式及一例外模式的操作之间切换,该方法包括当该处理器在该用户模式操作时,将处理状态信息储存在一程序状态寄存器;当该处理器在该用户模式操作时,将一目前执行的程序指令的一地址储存在一程序计数器寄存器;当一例外发生且该处理器从该用户模式改变操作时,于该例外前期模式的一例外处理者设定程序期间,分别将该程序状态寄存器的内容及该程序计数器寄存器的内容储存在一目前程序状态寄存器缓冲器及一程序计数器缓冲器;以及在一改变模式指令输入该处理器后,分别将该目前程序状态寄存器缓冲器的内容及该程序计数器缓冲器的内容储存在一储存程序状态寄存器及一连结暂存器,其中该处理器改变从该例外前期模式至该例外模式的操作,其中该处理器在该例外前期模式操作的一期间足以供一用户执行一软件操作。

图1是依照本发明的软件控制例外处理流程的较佳实施例的流程图。

请参照图1,图1示出了依照本发明的用于处理器的软件控制例外处理流程的装置及其操作方法的较佳实施例的流程图。其装置及方法可在用户模式、例外前期模式、及例外模式间切换。

连续执行步骤S110的主程序直到在步骤S120发生中断。当在步骤S120发生中断时,处理器会进入例外前期模式,其包括例外处理者设定过程及启始过程,如图1的步骤130及步骤140所示。在步骤S130的例外处理者设定中,将目前程序状态寄存器(Current ProgramStatus Register,简称CPSR)的内容暂时复制到CPSR缓冲器中。其储存在用户模式中的目前的处理状态信息(例如目前模式、中断遮罩及条件标志)。然后将程序计数器(Program Counter,简称PC)的内容储存在用户模式中的目前执行的程序指令的地址,复制到PC缓冲器中。然后处理器跳到步骤S140的例外前期模式的启始程序。

在步骤S140中,启始过程允许程序人员在切换具有保存被运用的数据的寄存器的寄存器组之前,执行选择的软件操作,例如储存信息、除错或用于的值。这就允许程序人员在进入例外程序之前有最大的弹性。处理器在例外前期模式的期间取决于用户的需求。假如用户需要较多的时间来执行软件操作,则处理器在例外前期模式操作的时间较久。在例外前期模式的精确时间可藉由发出的例如改变模式指令来决定。

在完成步骤S140的启始过程后,接着到步骤S150,执行启始过程之后接着的改变模式指令,例如CDP协处理器指令。处理器会将原来的处理状态信息及返回地址分别从CPSR缓冲器及PC缓冲器复制到相关的储存处理状态寄存器(Saved Program Status Register,简称SPSR)及一连结寄存器(Link Register,简称LR)中。此连结寄存器是处于一例外模式下的一寄存器,用以储存返回主程序的地址,执行CDP协处理器指令来执行(register bank)切换。

CPSR缓冲器被复制到相关的一储存处理状态寄存器(SavedProgram Status Register,简称SPSR),其储存的处理状态信息包括目前模式、中断遮罩及条件标志。然后将其储存内容为一返回地址的CP缓冲器,复制到寄存器组的连结寄存器中。最后,在步骤S160,处理器将模式改变到例外模式,执行适当的例外程序。

当例外程序结束后,在步骤S170,处理器必须将系统回复到在主程序遇到例外时的系统状态。将SPSR复制到CPSR,其回复处理状态信息,例如储存的模式、中断遮罩及条件标志。然后将用来储存返回地址的LR复制到PC。

然后,处理器返回到用户模式,继续执行指令。

在已知技术中,例外切换是由硬件来控制的。软件没有决定切换时间的机制。在本发明中,提出在例外处理流程的软件控制机制。软件可以决定在用户模式或例外模式之间切换的精确时间。其可以在例外之后立刻切换模式,或是在储存返回后要用的信息后才切换模式。显然的,此机制在程序人员设计例外程序时,更具弹性。

很显然的,本领域的普通技术人员,在不脱离本发明的精神和范围的前提下,可对本发明进行修改和变更。但对本发明的修改和变更均在本发明权利要求的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号