System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种中断处理程序的处理方法、中断控制方法及处理器技术_技高网

一种中断处理程序的处理方法、中断控制方法及处理器技术

技术编号:40541622 阅读:13 留言:0更新日期:2024-03-05 18:57
本发明专利技术实施例提供一种中断处理程序的处理方法、中断控制方法及处理器,属于芯片领域。所述方法包括:生成第一指令和第二指令,其中所述第一指令被配置为指示是否进行硬件自动保存中断上下文,且所述第二指令被配置为指示是否进行硬件自动恢复中断上下文;以及将所述第一指令放置在指定中断处理程序的入口处,且将所述第二指令放置在所述指定中断处理程序的结尾处。本发明专利技术实施例改进了默认中断处理程序,能够使普通向量中断的处理过程和例如任务切换中断的处理过程分开。

【技术实现步骤摘要】

本专利技术涉及芯片领域,具体地涉及一种中断处理程序的处理方法、中断控制方法及处理器


技术介绍

1、针对当前的中断处理,例如中断嵌套,往往需要保存中断上下文信息,以便在中断返回时恢复该中断上下文信息。但是,通过软件保存中断上下文的方式中,cpu执行的指令多,执行中断处理有效部分的延迟较大。对此,为了加快中断响应,现有技术中针对risc-v架构提出了硬件保存和恢复中断上下文的方法,即:当发生中断时,由硬件自动将中断上下文保存到memory(存储器)的堆栈上或者保存到硬件存储区域,中断处理完成后,再执行mret指令,使得硬件自动从相应的memory的堆栈或者硬件存储区域恢复中断上下文信息。

2、但是,本申请专利技术人在实现本申请的过程中发现这种直接对所有类型的中断返回执行硬件自动恢复中断上下文的方法至少存在以下缺陷:

3、在现有硬件保存和恢复中断上下文方法中,无论对于哪种类型的中断,中断返回都是通过执行指令mret来完成的,从而都会发生硬件自动从memory的堆栈上或者硬件存储区域中恢复中断上下文。但对于实时操作系统,例如对其任务切换中断,该中断返回也是通过执行mret指令来完成的,而且在中断处理过程中,已经通过软件的方式设置了新任务的上下文,进而如果在中断处理函数的结尾处再执行mret指令来使得硬件自动恢复中断上下文的话,会把操作系统已设置好的新任务上下文内容覆盖掉。对此,现有技术中也提出了增加硬件控制位来屏蔽硬件自动恢复中断上下文的方案,使得退出中断执行mret时不执行硬件自动恢复中断上下文的操作。但是,这种方法不仅需要增加硬件逻辑,还需要修改实时操作系统的任务切换逻辑来操作硬件控制位,使得实时操作系统不再通用,且操作复杂。

4、因此,本专利技术实施例提供一种更为简洁的方案。


技术实现思路

1、本专利技术实施例的目的是提供一种中断处理程序的处理方法、中断控制方法及处理器,用于至少部分地解决上述技术问题。

2、为了实现上述目的,本专利技术实施例提供一种中断处理程序的处理方法,包括:生成第一指令和第二指令,其中所述第一指令被配置为指示是否进行硬件自动保存中断上下文,且所述第二指令被配置为指示是否进行硬件自动恢复中断上下文;以及将所述第一指令放置在指定中断处理程序的入口处,且将所述第二指令放置在所述指定中断处理程序的结尾处。

3、可选地,所述第一指令和所述第二指令由编译器根据预设的中断处理程序属性修饰符来生成。

4、可选地,所述第二指令还被配置为指示进行中断咬尾。

5、可选地,所述第一指令还被配置为指示硬件自动保存中断上下文至硬件存储区域或者堆栈,而所述第二指令还被配置为指示从相应的硬件存储区域或者堆栈中硬件自动恢复所述中断上下文。

6、可选地,所述第一指令还被配置为设置mstatus寄存器中的mie位。

7、可选地,所述指定中断处理程序是除任务切换中断之外的任意向量中断的中断处理程序。

8、另一方面,本专利技术实施例还提供一种基于risc-v架构的中断控制方法,应用于基于所述risc-v架构的处理器,且包括:检测待执行的当前中断处理程序,以判断是否为通过上述的处理方法来修饰的中断处理程序;若是,在执行所述当前中断处理程序时,通过所述第一指令执行硬件自动保存中断上下文,以及在中断处理结束时,通过所述第二指令执行硬件自动恢复中断上下文;否则,在执行所述当前中断处理程序时,跳过所述硬件自动保存中断上下文和所述硬件自动恢复中断上下文。

9、可选地,在所述第二指令还被配置为指示进行中断咬尾的情况下,所述中断控制方法还包括针对第二中断咬尾第一中断的中断咬尾场景,执行以下步骤:控制所述第一中断的中断处理程序的所述第一指令来完成相应中断上下文的保存;控制所述第二中断的中断处理程序的所述第一指令和所述第一中断的中断处理程序的所述第二指令以失效方式被执行;以及控制所述第二中断的中断处理程序的所述第二指令来完成相应中断上下文的恢复。

10、可选地,所述中断控制方法还包括:针对具有所述第一指令和所述第二指令的中断处理程序,在获取该中断处理程序的入口处的所述第一指令之前,预先执行另行配置的预启动指令,该预启动指令与所述第一指令功能相同;以及比对所述预启动指令和所述第一指令的指令码,若两者不一致,则控制所述预启动指令失效以执行所述第一指令,否则控制所述预启动指令生效以跳过执行所述第一指令。

11、另一方面,本专利技术实施例提供一种基于risc-v架构的处理器,该处理器被配置为响应中断以执行上述任意的中断控制方法。

12、通过上述技术方案,本专利技术实施例对默认中断处理程序进行了改进,一方面增加用于指示是否进行硬件中断上下文的保存的第一指令,以避免针对任何类型的向量中断处理都直接进行硬件自动保存中断上下文;另一方面增加了指示是否进行所述硬件中断上下文的恢复的第二指令,代替常规的mret指令来实现硬件中断上下文的恢复。

13、本专利技术实施例的其它特征和优点将在随后的具体实施方式部分予以详细说明。

本文档来自技高网...

【技术保护点】

1.一种中断处理程序的处理方法,其特征在于,包括:

2.根据权利要求1所述的处理方法,其特征在于,所述第一指令和所述第二指令由编译器根据预设的中断处理程序属性修饰符来生成。

3.根据权利要求1所述的处理方法,其特征在于,所述第二指令还被配置为指示进行中断咬尾。

4.根据权利要求1所述的处理方法,其特征在于,所述第一指令还被配置为指示硬件自动保存中断上下文至硬件存储区域或者堆栈,而所述第二指令还被配置为指示从相应的硬件存储区域或者堆栈中硬件自动恢复所述中断上下文。

5.根据权利要求1所述的处理方法,其特征在于,所述第一指令还被配置为设置MSTATUS寄存器中的MIE位。

6.根据权利要求1所述的处理方法,其特征在于,所述指定中断处理程序是除任务切换中断之外的任意向量中断的中断处理程序。

7.一种基于RISC-V架构的中断控制方法,其特征在于,应用于基于所述RISC-V架构的处理器,且包括:

8.根据权利要求7所述的中断控制方法,其特征在于,在所述第二指令还被配置为指示进行中断咬尾的情况下,所述中断控制方法还包括针对第二中断咬尾第一中断的中断咬尾场景,执行以下步骤:

9.根据权利要求7或8所述的中断控制方法,其特征在于,所述中断控制方法还包括:

10.一种基于RISC-V架构的处理器,其特征在于,该处理器被配置为响应中断以执行权利要求7至9中任一项所述的中断控制方法。

...

【技术特征摘要】

1.一种中断处理程序的处理方法,其特征在于,包括:

2.根据权利要求1所述的处理方法,其特征在于,所述第一指令和所述第二指令由编译器根据预设的中断处理程序属性修饰符来生成。

3.根据权利要求1所述的处理方法,其特征在于,所述第二指令还被配置为指示进行中断咬尾。

4.根据权利要求1所述的处理方法,其特征在于,所述第一指令还被配置为指示硬件自动保存中断上下文至硬件存储区域或者堆栈,而所述第二指令还被配置为指示从相应的硬件存储区域或者堆栈中硬件自动恢复所述中断上下文。

5.根据权利要求1所述的处理方法,其特征在于,所述第一指令还被配置为设置mstatus寄存器中的mie位。

6.根据权...

【专利技术属性】
技术研发人员:马俊赵东艳刘亮孙玉峰张喆周佳慧李政良薛泓林
申请(专利权)人:北京智芯微电子科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1