一种中断处理方法及中断处理设备与流程

文档序号:22544554发布日期:2020-10-17 02:10阅读:130来源:国知局
一种中断处理方法及中断处理设备与流程

本发明涉及通信技术领域,特别涉及一种中断处理方法及中断处理设备。



背景技术:

risc-vcpu(risk-five中央处理器)技术作为一种开源新型指令集架构技术目前在业界较为流行;对于常见的32bitrisc-vcpu拥有32个通用寄存器(gpr)以及32个浮点寄存器(fgpr);而对于64bit则拥有64个通用寄存器(gpr)以及64个浮点寄存器(fgpr);较多的寄存器使得risc-vcpu不能在处理实时性要求较高的场景有很好的表现。原因在于,当外设中断来临时,必须通过软件实现对risc-vcpu所有通用寄存器以及浮点寄存器(32个通用寄存器,32个浮点寄存器或者64个通用寄存器,64个浮点寄存器)中断现场保护以及恢复。因此,通用寄存器和浮点寄存器越多,risc-vcpu花在现场保护以及恢复的时间就越长、导致实时性变差。



技术实现要素:

本发明公开了一种中断处理方法及中断处理设备,用于确保中断处理设备满足实时性要求较高场景,扩大了中断处理设备的应用范围。

为达到上述目的,本发明提供以下技术方案:

第一方面,本发明实施例提供一种中断处理方法,包括:

中断处理单元监测译码器译码后的指令是否涉及浮点寄存器;

当所述中断处理单元确定所述指令涉及浮点寄存器时,对所述指令涉及的浮点寄存器进行保护。

上述中断处理方法中,在中断模式下,中断处理单元监测译码器每次译码是否有浮点寄存器的被当前译码的指令所操作,一旦中断处理单元确定译码器译码后的指令涉及某个浮点寄存器,中断处理单元对该指令涉及的浮点寄存器进行保护。

因此,上述中断处理方法中通过中断处理单元仅对使用到的浮点寄存器进行现场保护,而相比于系统软件不筛选寄存器而是将所有通用寄存器和浮点寄存器无差别进行现场保护,上述中断处理方法减少了浮点寄存器的保存数量,从而提高了系统的实时性。

在一种可能的实现方式中,所述中断处理单元监测译码器译码后的指令是否涉及浮点寄存器,具体包括:

所述中断处理单元判断所述译码器译码后的指令中的操作数是否是浮点寄存器对应的操作数;

如果是,则判定所述指令涉及浮点寄存器;否则,判定所述指令未涉及浮点寄存器。

在一种可能的实现方式中,所述中断处理单元对所述指令涉及到的浮点寄存器进行保护,具体包括:

所述中断处理单元将所述指令涉及的浮点寄存器的数据以及用于索引所述数据的所述浮点寄存器的标识,存放在寄存器专属数据存放单元内。

在一种可能的实现方式中,所述中断处理单元对所述指令涉及到的浮点寄存器进行保护之后,还包括:

当所述中断处理单元监测到所述译码器译码后的指令为退出中断指令时,依据用于索引所述数据的所述浮点寄存器的标识,将所述寄存器专属数据存放单元中的数据重新存入对应的所述浮点寄存器中。

在一种可能的实现方式中,所述译码器译码后的指令为中断指令;

当所述中断处理单元确定所述指令涉及浮点寄存器时,对所述指令涉及的浮点寄存器进行保护之前,还包括:

确定所述寄存器专属数据存放单元中,未存储针对所述中断指令涉及的浮点寄存器的数据。

在一种可能的实现方式中,所述中断处理单元监测译码器译码后的指令是否涉及浮点寄存器之后,还包括:

若所述寄存器专属数据存放单元中已存储针对所述中断指令涉及的浮点寄存器的数据,则放弃对所述指令涉及的浮点寄存器进行保护。

在一种可能的实现方式中,所述中断处理单元包括自动压/出栈单元和异常处理单元;

所述中断处理单元监测译码器译码后的指令是否涉及浮点寄存器,包括:

所述自动压/出栈单元监测译码器译码后的指令是否涉及浮点寄存器;

当所述中断处理单元确定所述指令涉及浮点寄存器时,对所述指令涉及的浮点寄存器进行保护,具体包括:

当所述自动压/出栈单元确定所述指令涉及浮点寄存器时,向所述异常处理单元发出请求,并在接收所述异常处理单元的反馈后,对所述指令涉及的浮点寄存器进行保护。

第二方面,本发明实施例提供一种中断处理设备,包括:中断处理单元、译码器和浮点寄存器;

所述译码器用于对接收到的指令进行译码;

所述浮点寄存器用于存储数据;

所述中断处理单元用于监测所述译码器译码后的指令是否涉及浮点寄存器;当确定所述指令涉及浮点寄存器时,对所述指令涉及的浮点寄存器进行保护。

本发明实施例提供的一种中断处理设备用于上述中断处理方法的实现,能够达到上述中断处理方法所能够达到的有益效果,此处不再重复说明。

在一种可能的实现方式中,所述中断处理单元具体用于:

判断所述译码器译码后的指令中的操作数是否是浮点寄存器对应的操作数;

如果是,则判定所述指令涉及浮点寄存器;否则,判定所述指令未涉及浮点寄存器。

在一种可能的实现方式中,所述中断处理设备还包括寄存器专属数据存放单元;

所述中断处理单元具体用于:

将所述指令涉及的浮点寄存器的数据以及用于索引所述数据的所述浮点寄存器的标识,存放在所述寄存器专属数据存放单元内。

在一种可能的实现方式中,所述中断处理单元还用于:

当所述中断处理单元监测到所述译码器译码后的指令为退出中断指令时,依据用于索引所述数据的所述浮点寄存器的标识,将所述寄存器专属数据存放单元中的数据重新存入对应的所述浮点寄存器中。

在一种可能的实现方式中,所述译码器译码后的指令为中断指令;

所述中断处理单元还用于:

当所述中断处理单元确定所述指令涉及浮点寄存器时,若确定所述寄存器专属数据存放单元中,未存储针对所述中断指令涉及的浮点寄存器的数据,则对所述指令涉及的浮点寄存器进行保护。

在一种可能的实现方式中,所述中断处理单元还用于:

在所述中断处理单元监测译码器译码后的指令是否涉及浮点寄存器之后,若所述寄存器专属数据存放单元中已存储针对所述中断指令涉及的浮点寄存器的数据,则放弃对所述指令涉及的浮点寄存器进行保护。

在一种可能的实现方式中,所述中断处理单元包括自动压/出栈单元和异常处理单元;

所述自动压/出栈单元用于:

监测译码器译码后的指令是否涉及浮点寄存器,当确定所述指令涉及浮点寄存器时,向所述异常处理单元发出请求,并在接收所述异常处理单元的反馈后,对所述指令涉及的浮点寄存器进行保护;

所述异常处理单元用于:

接收所述自动压/出栈单元发出的请求,根据所述请求终止执行当前指令,并向所述自动压/出栈单元进行反馈。

附图说明

图1为本发明实施例提供的一种中断处理方法的流程示意图;

图2为图1中s101的流程示意图;

图3为图1中s102的流程示意图;

图4为本发明实施例提供的另一种中断处理方法的流程示意图;

图5为本发明实施例提供的一种中断处理设备的结构框图;

图6为本发明实施例提供的另一种中断处理设备的结构框图;

图7为本发明实施例提供的另一种中断处理设备的结构框图;

图8为本发明实施例提供的另一种中断处理设备中自动压/出栈单元的一种功能示意图;

图9为本发明实施例提供的另一种中断处理设备中自动压/出栈单元的另一种功能示意图。

具体实施方式

为了使本领域普通人员更好地理解本发明的技术方案,下面将结合附图,对本发明实施例中的技术方案进行清楚、完整地描述。

需要说明的是,以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。

risc-vcpu取指器从指令存放单元中获取指令(指令存放单元可以是非易失性存储介质,如embeddedflash(嵌入式闪存),也可以是易失性存储介质如sram(staticrandom-accessmemory,静态随机存取存储器)、sdram(synchronousdynamicrandom-accessmemory,同步动态随机存取内存),或者ddr(doubledatarate,双倍速率同步动态随机存储器));取指完成后,risc-vcpu译码器负责完成该所取指令的译码,译码完成后交于执行器执行该指令。同时,根据执行指令的结果,完成通用寄存器或者浮点寄存器与数据存放单元的内容交换。这里的数据存放单元是指易失性存储介质如sram、sdram或者ddr。risc-vcpu的cpu模式包括正常模式和中断模式,当外设中断来临时risc-vcpu处于中断模式下,需要对该中断进行处理。但是,较多的寄存器使得risc-vcpu不能在处理实时性要求较高的场景有很好的表现。原因在于,当外设中断来临时,必须通过软件实现对risc-vcpu所有通用寄存器以及浮点寄存器(32个通用寄存器,32个浮点寄存器或者64个通用寄存器,64个浮点寄存器)中断现场保护以及恢复。因此,gpr和fgpr越多,risc-vcpu进行现场保护以及恢复的时间就越长、导致实时性变差。

基于上述问题,本发明实施例提供了一种中断处理方法,如图1所示,该方法包括如下步骤:

s101、中断处理单元监测译码器译码后的指令是否涉及浮点寄存器;

s102、当中断处理单元确定指令涉及浮点寄存器时,对指令涉及的浮点寄存器进行保护;

s103、当中断处理单元监测到译码器译码后的指令为退出中断指令时,对指令涉及的浮点寄存器进行恢复。

上述s101中,当risc-vcpu处于中断模式时,中断处理单元监测译码器每次译码是否有浮点寄存器的被当前译码的指令所操作,这里的操作是指:该指令涉及到浮点寄存器与数据存储单元存在数据读写,或者浮点寄存器之间是否存在数据交换。

上述s102中,一旦中断处理单元确定译码器译码后的指令涉及某个浮点寄存器,中断处理单元对该指令涉及的浮点寄存器进行保护。

上述s103中,中断处理单元对指令涉及到的浮点寄存器进行保护之后,当中断处理单元监测到译码器译码后的指令为退出中断指令时,对该指令涉及的浮点寄存器进行恢复。

因此,上述中断处理方法中通过中断处理单元仅对使用到的浮点寄存器进行现场保护及恢复,而对于某些中断处理函数不涉及到浮点寄存器操作时,无需保存浮点寄存器,从而提高实时性。

进一步地,断处理单元包括自动压/出栈单元(auto-un/stackingunit,ausu)和异常处理单元;

上述s101中,自动压/出栈单元监测译码器译码后的指令是否涉及浮点寄存器;

上述s102中,当自动压/出栈单元确定指令涉及浮点寄存器时,向异常处理单元发出请求,并在接收异常处理单元的反馈后,对指令涉及的浮点寄存器进行保护。

上述s103中,当自动压/出栈单元监测到译码器译码后的指令为退出中断指令时,对该指令涉及的浮点寄存器进行恢复。

这里需要说明的是,自动压/出栈单元的功能介入只发生在risc-vcpu处于中断模式时,在中断模式下,自动压/出栈单元监测译码器译码后的指令是否涉及浮点寄存器,当自动压/出栈单元确定上述指令涉及浮点寄存器时,向异常处理单元发出请求,并在接收异常处理单元的反馈后,对上述指令涉及的浮点寄存器进行保护及恢复。

具体地,下面针对上述中断处理方法中s101进行说明:

如图2所示,中断处理单元监测译码器译码后的指令是否涉及浮点寄存器,具体包括如下步骤:

s201、中断处理单元判断译码器译码后的指令中的操作数是否是浮点寄存器对应的操作数;

如果是,则执行s202;否则,执行s203;

s202、判定指令涉及浮点寄存器;

s203、判定指令未涉及浮点寄存器。

这里需要说明的是,指令通常是由16位或者32位0或者1组成。cpu会解析一些0和1得到操作码和操作数,操作数对应数据和地址。自动压/出栈单元在中断模式下监测译码器每次译码是否有浮点寄存器被当前译码的指令所操作,这里的指令是由操作码和操作数共同确定的,每个浮点寄存器与其对应的操作数是一一对应的;这里的操作是指:该指令涉及到浮点寄存器与数据存储单元存在数据读写,或者浮点寄存器之间是否存在数据交换等。

在本发明的一个具体实施例中,中断处理单元通过如下方式监测译码器译码后的指令是否涉及浮点寄存器:

若中断处理单元判断译码器译码后的指令中的操作数是浮点寄存器对应的操作数,则判定上述指令涉及浮点寄存器,中断处理单元对该浮点寄存器进行现场保护;若中断处理单元判断译码器译码后的指令中的操作数不是浮点寄存器对应的操作数,则判定上述指令未涉及浮点寄存器,中断处理单元不会对该浮点寄存器进行现场保护,从而提高实时性。

这里需要说明的是,译码器译码后的指令为中断指令,即该指令为中断过程中的指令。

具体地,下面针对上述中断处理方法中s102进行说明:

如图3所示,中断处理单元对指令涉及到的浮点寄存器进行保护,具体包括如下步骤:

s301、确定寄存器专属数据存放单元中,未存储针对指令涉及的浮点寄存器的数据;

s302、中断处理单元将指令涉及的浮点寄存器的数据以及用于索引数据的浮点寄存器的标识,存放在寄存器专属数据存放单元内;

s303、若寄存器专属数据存放单元中已存储针对指令涉及的浮点寄存器的数据,则放弃对指令涉及的浮点寄存器进行保护。

上述s302中,中断处理单元通过如下方式对指令涉及到的浮点寄存器进行保护:

中断处理单元将译码器中指令所涉及到的浮点寄存器的数据以及用于索引上述数据的浮点寄存器标识存放在寄存器专属数据存放单元中(该存放单元为易失性存储介质)。每一个用于索引上述数据的浮点寄存器标识对应一个浮点寄存器名称(如:fgpr0,fgpr1,fgprx)以及该浮点寄存器(如:fgprx)在寄存器专属数据存放单元的地址值(如:地址x);此过程,称之为浮点寄存器的现场保护。

上述s301和s303确保,当一个中断发生时中断处理单元不会对同一中断过程中译码器译码后的不同指令得出的相同浮点寄存器重复进行现场保护,以提高实时性。具体采用以下方式确认:

同一中断过程中,中断处理单元对指令涉及的浮点寄存器进行保护之前需要确定寄存器专属数据存放单元中未存储针对该中断指令涉及的浮点寄存器的数据,并在中断处理单元确定寄存器专属数据存放单元中已存储针对上述浮点寄存器的数据后,放弃对另一指令涉及的相同浮点寄存器进行保护。

具体地,risc-vcpu的软件中断处理函数通常涉及到多个函数的调用,如,函数a调用子函数b,函数b又调用子函数c等。函数a,使用了某一个浮点寄存器(举例如fgpr3),同时,子函数b,c完全有可能同样使用fgpr3。但是,函数a、b、c的调用过程完成处于同一个外设ip中断中,即,risc-vcpu在执行a时,执行b、c时,中断没有退出时,中断处理单元就不会对fgpr3进行重复保存。

具体地,下面针对上述中断处理方法中s103进行说明:

当中断处理单元监测到译码器译码后的指令为退出中断指令时,对指令涉及的浮点寄存器进行恢复,具体包括如下步骤:

中断处理单元将存放在寄存器专属数据存放单元中的浮点寄存器的数据依据用于索引数据的浮点寄存器的标识,将寄存器专属数据存放单元中的数据重新存入对应的浮点寄存器中。

上述步骤中,中断处理单元对指令涉及到的浮点寄存器进行保护之后,当中断处理单元监测到译码器译码后的指令为退出中断指令时,中断处理单元将存放在寄存器专属数据存放单元中的浮点寄存器的数据依据用于索引上述数据的浮点寄存器标识存放在对应的浮点寄存器中。这种索引标识的方式方便中断结束能将寄存器专属数据存放单元中存放的数据快速恢复至对应的浮点寄存器中。

图4为本发明实施例提供的一种中断处理方法的流程示意图,如图4所示,包括如下步骤:

s401、自动压/出栈单元采用预设周期,检测中央处理器模式;

s402、判断当前中央处理器模式是否为正常模式,如果是,则执行s403;否则,执行s404;

s403、记录当前中央处理器模式;

s404、判断当前中央处理器模式是否为中断模式,如果是,则执行s403和s405;否则,执行s401;

s405、自动压/出栈单元判断译码器译码后的指令是否涉及浮点寄存器;如果是,则执行s406;否则,继续执行s405;

s406、自动压/出栈单元向异常处理单元发出请求,并接收异常处理单元的反馈;

s407、根据异常处理单元的反馈判断寄存器专属数据存放单元中,是否存储针对指令涉及的浮点寄存器的数据;如果是,则执行s408;否则,执行s409;

s408、放弃对指令涉及的浮点寄存器进行保护,并继续执行s407;

s409、自动压/出栈单元将指令涉及的浮点寄存器的数据以及用于索引数据的浮点寄存器的标识,存放在寄存器专属数据存放单元内;

s410、自动压/出栈单元判断译码器译码后的指令是否为退出中断指令,如果是,则执行s411;否则,继续执行s410;

s411、自动压/出栈单元将存放在寄存器专属数据存放单元中的浮点寄存器的数据依据用于索引数据的浮点寄存器的标识,将寄存器专属数据存放单元中的数据重新存入对应的浮点寄存器中;

s412、在执行s405的同时,自动压/出栈单元采用预设周期,检测并记录中央处理器的中断编号;

s413、判断当前周期中断编号的优先级是否高于前一周期中断编号的优先级;如果是,则先执行s411,后执行s405;否则继续执行s413;

s414、在s411之后,自动压/出栈单元向异常处理单元发出返回请求,并将控制权交还给异常处理单元。

具体地,上述s406中,在满足risc-vcpu标准架构规范的情况下,在异常处理单元内增设risc-vcpu异常编号如,18(编号只要大于16即可);负责处理该异常发生时对异常现场的浮点寄存器进行保护及恢复;例如:18号异常是一个异常编号;自动压/出栈单元触发risc-vcpu异常处理单元中的18号异常。此时,异常处理单元会停止执行指令,同时,将控制权交给自动压/出栈单元,由自动压/出栈单元进行浮点寄存器的现场保护工作。即18异常无需系统软件介入,所有异常处理均由自动压/出栈单元完成,且只涉及到对risc-vcpu浮点寄存器的保护及恢复,不涉及到通用寄存器的操作。这样目的是,提高系统响应的实时性。

由此可以看出,如果risc-vcpu的中断服务程序中没有指令设计到对浮点寄存器的操作,那么,自动压/出栈单元不会触发编号18异常,也即是说不需要进行现场保护及恢复;同时,自动压/出栈单元也只会对中断服务程序所用到的部分浮点寄存器进行保存,省去了软件保存所有32个或者64个浮点寄存器的时间;提升了risc-vcpu系统实时性。

具体地,上述s407~s409中,在同一个中断发生时自动压/出栈单元不会对risc-vcpu译码器得出的相同浮点寄存器重复进行现场保护。

具体地,上述s410和411中,当risc-vcpu在中断现场中对退出中断指令(mret指令)进行译码时,自动压/出栈单元会触发编号18异常返回即触发s414。编号18异常返回发生在执行器执行mret指令之前,且该编号18异常返回会将寄存器专属数据存放单元中的浮点寄存器的内容进行恢复。这也称为浮点寄存器的现场恢复;该现场恢复对系统软件不可见,属于自动压/出栈单元的数字逻辑行为。

具体地,上述s412~s413中,这里的中断编号是由基于risc-vcpu开发的芯片中的外设ip中断号(外设可以理解为串口、usb、i2c等设备)。取值范围一般为:1~1024之间。每一个外设对应于一个中断编号。risc-vcpu在执行软件代码时,中断的产生是随机的。risc-vcpu的软件中断处理函数通常涉及到多个函数的调用,如,函数a调用子函数b,函数b又调用子函数c等。函数a,使用了某一个浮点寄存器(举例如,fgpr3),同时,子函数b,c完全有可能同样使用fgpr3。但是,函数a、b、c的调用过程完成处于同一个外设ip中断中,即,risc-vcpu在执行a时,中断编号为5,执行b、c时,中断没有退出,中断编号仍然为5。自动压/出栈单元检测的中断编号,可以从risc-vcpu异常处理单元中获取。因此只要自动压/出栈单元检测到中断编号没有发生改变,如中断编号5没有改变,那么,自动压/出栈单元就不会对fgpr3进行重复保存;另外,假定,risc-vcpu在执行子函数c时,risc-v的中断编号为5。如果此时,外设ip触发了一个比中断编号5优先级更高的中断,如中断编号4。此时,中断编号4抢占了中断编号5的执行。risc-vcpu转而执行中断编号4的中断处理函数。中断编号4的中断处理函数中,涉及到函数d、e、f函数的调用,同时,d、e、f完全有可能使用了fgpr3。由于自动压/出栈单元检测到中断编号由5变成了4。那么,d、e、f中使用到的fgpr3将会重新再保存一次。

具体地,上述s414中,在执行器执行mret指令之前,自动压/出栈单元向异常处理单元触发编号18异常返回,即当浮点寄存器现场保护及恢复工作完成后,risc-vcpu恢复指令执行的控制权。

上述方法中无需系统软件介入,所有异常处理均由自动压/出栈单元完成,且只涉及到对risc-vcpu浮点寄存器的保护及恢复,不涉及到通用寄存器的操作。同时,自动压/出栈单元也只会对中断服务程序所用到的部分浮点寄存器进行保存,省去了软件保存所有32个或者64个浮点寄存器的时间;这样目的是提高系统响应的实时性。

第二方面,如图5和图6所示,本发明实施例提供一种中断处理设备,包括:中断处理单元100、译码器200和浮点寄存器300;

译码器200用于对接收到的指令进行译码;

浮点寄存器300用于存储数据;

中断处理单元100用于监测译码器200译码后的指令是否涉及浮点寄存器300;当确定指令涉及浮点寄存器300时,对指令涉及的浮点寄存器300进行保护。

本发明实施例提供的一种中断处理设备用于上述中断处理方法的实现,能够达到上述中断处理方法所能够达到的有益效果,此处不再重复说明。

如图6所示,取指器400从指令存放单元500中获取指令(指令存放单元500可以是非易失性存储介质,如embeddedflash,也可以是易失性存储介质如sram、sdram,或者ddr);取指完成后,译码器200负责完成该所取指令的译码,译码完成后交于执行器600执行该指令。同时,根据执行指令的结果,完成通用寄存器或者浮点寄存器与数据存放单元700的内容交换。

在一种可能的实现方式中,中断处理单元100具体用于:

判断译码器200译码后的指令中的操作数是否是浮点寄存器300对应的操作数;

如果是,则判定指令涉及浮点寄存器300;否则,判定指令未涉及浮点寄存器300。

在一种可能的实现方式中,中断处理设备还包括寄存器专属数据存放单元;

中断处理单元100具体用于:

将指令涉及的浮点寄存器300的数据以及用于索引数据的浮点寄存器300的标识,存放在寄存器专属数据存放单元内。

在一种可能的实现方式中,中断处理单元100还用于:

当中断处理单元100监测到译码器200译码后的指令为退出中断指令时,依据用于索引数据的浮点寄存器300的标识,将寄存器专属数据存放单元中的数据重新存入对应的浮点寄存器300中。

在一种可能的实现方式中,译码器200译码后的指令为中断指令;

中断处理单元100还用于:

当中断处理单元100确定指令涉及浮点寄存器300时,若确定寄存器专属数据存放单元中,未存储针对中断指令涉及的浮点寄存器300的数据,则对指令涉及的浮点寄存器300进行保护。

在一种可能的实现方式中,中断处理单元100还用于:

在中断处理单元100监测译码器200译码后的指令是否涉及浮点寄存器300之后,若寄存器专属数据存放单元中已存储针对中断指令涉及的浮点寄存器300的数据,则放弃对指令涉及的浮点寄存器300进行保护。

在一种可能的实现方式中,中断处理单元100包括自动压/出栈单元120和异常处理单元110;

自动压/出栈单元120用于:

监测译码器200译码后的指令是否涉及浮点寄存器300,当确定指令涉及浮点寄存器300时,向异常处理单元110发出请求,并在接收异常处理单元110的反馈后,对指令涉及的浮点寄存器300进行保护;

异常处理单元110用于:

接收自动压/出栈单元120发出的请求,根据请求终止执行当前指令,并向自动压/出栈单元120进行反馈。

如图7-图9所示,risc-vcpu取指器400从指令存放单元500中获取指令(指令存放单元500可以是非易失性存储介质,如embeddedflash,也可以是易失性存储介质如sram、sdram,或者ddr);取指完成后,risc-vcpu译码器200负责完成该所取指令的译码,译码完成后交于执行器600执行该指令。同时,根据执行指令的结果,完成通用寄存器或者浮点寄存器与数据存放单元700的内容交换。这里的数据存放单元700是指易失性存储介质如sram、sdram或者ddr。risc-vcpu的cpu模式包括正常模式和中断模式,自动压/出栈单元rv模式模块用以记录当前risc-vcpu的cpu模式,自动压/出栈单元的功能介入只发生在risc-vcpu处于中断模式时。

本发明实施例提供一种计算机可存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述中断处理方法的步骤。其中,可存储介质可以为非易失可存储介质。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1