基于RISC-V架构快速唤醒处理器的改进系统及方法与流程

文档序号:21625484发布日期:2020-07-29 02:32阅读:993来源:国知局
基于RISC-V架构快速唤醒处理器的改进系统及方法与流程

本发明涉及低功耗内核中断处理技术和低功耗领域,具体涉及基于risc-v架构快速唤醒处理器的改进系统及方法。



背景技术:

随着soc设计的复杂度越来越大,现如今对于消费类电子功耗要求也越来越高,与之而来的在芯片设计行业中的低功耗技术也层出不穷,各大芯片公司的重视程度也越来越高。

大部分低功耗技术都是让处理器进入休眠状态,来达到省电的目的,但是在诸多的应用场景中,处理器需要被唤醒的方式多种多样,在risc-v指令架构中,一般会执行wfi指令让处理器处于睡眠模式,唤醒wfi指令的方式一般为中断、不可屏蔽中断(nmi)、debug,但是这些唤醒机制很局限,并且唤醒速度很慢,唤醒之后无法直接执行后续程序,导致处理器执行了很多不该执行的操作。在很多应用场景中用户都需要让处理器快速进入休眠模式,并且快速唤醒,唤醒后能够继续执行之后的指令程序,因此risc-v标准的wfi指令无法完全满足这些应用场景,因此需要一个机制去解决所述问题。本发明就是基于risc-v标准指令架构中的wfi指令作以低功耗的改进技术。



技术实现要素:

为了解决所述技术问题,本发明基于risc-v架构快速唤醒处理器的改进系统及方法,基于risc-v架构增加一种处理器低功耗寄存器设计,命名该寄存器为wfe_en寄存器,该寄存器的设计可以改变wfi指令的行为,从而达到使处理器能够通过不同的方式被唤醒。本发明的技术方案如下,本发明基于risc-v指令架构增加了一个自定义寄存器wfe_en寄存器。

为了达到所述目的,本发明的技术方案如下:

基于risc-v架构快速唤醒处理器的改进系统,其特征在于,包括wfe_en寄存器,所述wfe_en寄存器,用于切换wfi指令执行后处理器的唤醒机制。

优选地,所述wfe_en寄存器位宽为64位或32位。

优选地,所述wfe_en寄存器的第0比特为有效位。

优选地,所述wfe_en寄存器在用户模式和机器模式下均为可读可写寄存器。

基于risc-v架构快速唤醒处理器的改进方法,其特征在于,

s1:在所述risc-v架构中增加wfe_en寄存器,所述wfe_en寄存器,用于切换wfi指令执行后处理器的唤醒机制;

s2:当处理器进入休眠模式需要被唤醒时,若所述wfe_en寄存器配置为0,则表示处理器可以被中断、不可屏蔽中断、debug唤醒;若所述wfe_en寄存器配置为1,wfi指令唤醒请求方式变成wfe指令唤醒请求方式,则表示处理器可以被外部事件、不可屏蔽中断、debug唤醒。

优选地,所述wfe_en寄存器位宽为64位或32位。

优选地,所述wfe_en寄存器的第0比特为有效位。

优选地,所述wfe_en寄存器在用户模式和机器模式下均为可读可写寄存器。

基于所述技术方案,本发明的有益效果是:

(1)、本发明增加了处理器唤醒方式,处理器可以接收外部事件信号进行唤醒,只需要配置wfe_en寄存器便可以改变wfi指令的唤醒机制,简单易操作;

(2)、本发明加快了处理器唤醒速度,与传统的中断唤醒相比,本发明可以不需要程序进入中断处理函数,可以直接从wfe指令之后的指令开始执行。

附图说明

图1为本发明一种用于risc-v架构的wfe_en寄存器的存储信息格式图;

图2为本发明wfe_en寄存器配置为0和1时,wfi指令的唤醒流程图;

图3为本发明wfe_en寄存器配置为1时,执行wfi等待外部事件唤醒过程图;

图4为本发明wfe_en寄存器配置为1时,执行wfi等待nmi唤醒过程图;

图5为本发明wfe_en寄存器配置为1时,执行wfi等待debug唤醒过程图;

图6为本发明一种用于risc-v架构的wfe_en寄存器实现wfi指令唤醒切换的电路图。

具体实施方式

下面结合具体实施方式对本发明作进一步详细的说明。

实施例一

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,本发明基于risc-v架构快速唤醒处理器的改进系统及方法,基于risc-v架构增加一种处理器低功耗寄存器设计,命名该寄存器为wfe_en寄存器,该寄存器的设计可以改变wfi指令的唤醒条件,从而达到使处理器能够通过不同的方式被唤醒。本发明的技术方案如下,本发明增加了一个自定义寄存器wfe_en寄存器。

进一步,所述wfe_en寄存器详细描述如下:

新增wfe_en寄存器,该寄存器可以改变wfi的指令行为,

所述wfi指令,执行该指令处理器会进入睡眠模式。

所述wfe_en寄存器,用来改变wfi指令执行后处理器唤醒方式。

如图2所示,当wfe_en寄存器配置为0,此时执行wfi指令,处理器将进入休眠状态,当达到的wfi指令的唤醒条件时,处理器被唤醒,该唤醒条件与标准的risc-v指令架构所定义的唤醒条件相同,即可以被中断、nmi、debug唤醒。

当wfe_en寄存器配置为1,此时执行wfi指令,处理器将进入休眠状态,若所述wfe_en寄存器配置为1,wfi指令唤醒请求方式变成wfe指令唤醒请求方式,则表示处理器可以被外部事件请求、不可屏蔽中断请求、debug请求唤醒。所述wfe指令是一个虚拟的指令,标准指令集中没有该wfe指令,这里借代wfe指令来说明当wfe_en寄存器配置为1时wfi指令的唤醒条件。当执行wfe指令时,处理器进入休眠模式,能够唤醒wfe指令的方式有如下任意一种:

(1)、如图3所示,当处理器外部输入外部事件时,如果mstatus的mie为0时,处理器将被唤醒继续执行停止的指令流。如果mstatus的mie为1,处理器将被唤醒,可以从一个已启用的和挂起的中断服务例程开始执行,也可以从wfe指令之后的指令开始执行。

所述mstatus寄存器为risc-v标准指令架构手册中所定义的一样。

所述mie域为mstatus中的全局中断使能域,用于控制打开或者关闭全局中断,当mie为0时,外部中断将被屏蔽,中断无法被响应,mie为1时外部中断全局使能将打开。

首先将wfe_en寄存器配置为1,之后执行wfi指令,处理器进入休眠状态,现在假设只有外部事件请求能够进入,那么等待外部事件请求到来处理器将被唤醒,唤醒之后继续执行之后的程序,若mie为0,那么处理器醒来之后继续执行后续的指令;若mie为1,并且在睡眠过程中有中断等待,那么唤醒之后处理器将进入中断处理。

(2)、如图4所示,当接收一个nmi中断时,处理器将被唤醒,并从nmi处理程序的第一条指令开始执行。

首先将wfe_en寄存器配置为1,之后执行wfi指令,处理器进入休眠状态,现在假设只有不可屏蔽中断(nmi)能够进入,那么不可屏蔽中断(nmi)到来处理器将被唤醒,唤醒之后进入不可屏蔽中断(nmi)中处理程序。

(3)、如图5所示,当从调试模块接收调试信号时,处理器将被唤醒并进入调试模式。

首先将wfe_en寄存器配置为1,之后执行wfi指令,处理器进入休眠状态,现在假设只有debug请求能够进入,那么debug请求到来处理器将被唤醒,唤醒之后进入调试模式。

下面用几个具体的实施例来说明本发明的具体电路设计和wfe_en配置为0和1时处理器的行为。

如图6所示,为本发明wfe_en寄存器实现wfi指令唤醒切换的具体电路实现。其中包括信号有alu_exp_i_wfi信号、cmt_ena信号、wfi_cmt_ena信号、alu_exp_i_pc_vld信号、wfi_halt_req信号、wfi_mie_disable信号、status_mie_real信号、csr_wfe_bit信号、wfe_waiting信号、dbg_req_raw信号、irq_req_raw信号、rx_ext_raw信号、nmi_req_raw信号、irq_req信号,其中:

所述alu_exp_i_wfi信号,表示当前指令码为wfi指令;

所述cmt_ena信号,表示当前指令已经cmmint;

所述wfi_cmt_ena信号,表示wfi指令使能信号;

所述alu_exp_i_pc_vld信号,表示当前pc指令为有效指令;

所述wfi_halt_req信号,表示当前pc发起了一个wfi指令的请求;

所述wfi_mie_disable信号,表示当前发生了wfi指令并且全局中断使能关闭或者当前发生了wfi指令,并且wfe_en配置为1;

所述status_mie_real信号,表示当前全局中断使能标志信号;

所述csr_wfe_bit信号,表示wfe_en配置为1或者0;

所述wfe_waiting信号,表示当前wfi指令被切换为了wfe指令;

所述dbg_req_raw信号,表示发生了一个debug请求;

所述irq_req_raw信号,表示发生了一个中断请求;

所述rx_ext_raw信号,表示发生了一个外部事件请求;

所述nmi_req_raw信号,表示发生了一个nmi请求;

所述irq_req信号,表示发生了一个唤醒请求。

进一步,该电路实现了使用wfe_en寄存器,控制当执行wfi时,唤醒请求方式的切换。首先如图所示,当alu_exp_i_wfi有效并且cmt_ena有效,即当前提交的一个wfi指令,当alu_exp_i_pc_vld有效那个当前wfi指令pc为有效的pc,这样发出一个wfi指令请求,

进一步,我们判断当前wfi指令是否能被中断唤醒,不能被中断唤醒,我们就得到一个信号为wfi_mie_disable表示当前发生的wfi指令不能被中断唤醒。不能被中断唤醒的条件有两种,status_mie_real全局中断为0或者csr_wfe_bit配置为1,csr_wfe_bit信号有wfe_en寄存器控制,所以当wfe_en寄存器配置为1那么wfi指令将不被中断唤醒,如果wfi_mie_disable为1并且csr_wfe_bit配置为1那么会得到一个信号名为wfe_waiting的信号,这个信号有效表示了当前wfi指令被切换成了wfe指令唤醒行为,wfe指令行为无法被中断唤醒。

进一步,依照外部的debug、中断、外部事件、不可屏蔽中断(nmi),将信号进行分成两组,分别为dbg_req_raw信号、irq_req_raw信号、nmi_req_raw信号为一组,dbg_req_raw信号、rx_ext_raw信号、nmi_req_raw信号为一组,信号分别经过两个或门,然后经过一个二选一的选择器,选择器的使能信号就是wfe_waiting信号,当这个信号有效,则选择器将选择dbg_req_raw信号、rx_ext_raw信号、nmi_req_raw信号这个一组信号,最终输出一个irq_req信号,这个信号用来唤醒处理器。

以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书内容所作的等效结构或等效流程变换,或直接或间接运用在其它相关的技术领域,均同理包括在本发明的专利保护范围内。

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