用户态中断请求的处理方法及装置制造方法及图纸

技术编号:36325293 阅读:19 留言:0更新日期:2023-01-14 17:32
本申请提供了,一种用户态中断请求的处理方法及装置,该用户态中断请求的处理方法包括:中央处理器CPU在内核态通过运行不包括内核地址的第二中断异常处理程序,以确定用户态中断请求对应的用户态中断处理程序,再通过无上下文恢复的第一特权级切换至用户态,进而在用户态运行用户态中断处理程序,随后通过无上下文存储的第二特权级切换至内核态。采用这种方法可以有效提高CPU对用户态中断处理程序的响应速度,从而减少用户态中断请求的处理时延。延。延。

【技术实现步骤摘要】
用户态中断请求的处理方法及装置


[0001]本申请涉及通信
,并具体涉及一种用户态中断请求的处理方法及装置。

技术介绍

[0002]中央处理器(central process unit,CPU)存在两种运行状态级别内核态和用户态,程序可以运行在这两种运行级别中,其中,内核态的执行级别高于用户态。目前大量第三方驱动代码质量良莠不齐,当驱动代码运行在内核态时,如果第三方驱动代码出现错误,会影响内核代码运行的安全性。为了提升系统的安全性,将第三方驱动置于用户态成了未来的发展趋势,也就是将第三方驱动与内核态隔离。现代微内核已经选用了用户态驱动的架构,例如,Fuchsia操作系统、seL4操作系统均采用类似的设计。
[0003]驱动的运行离不开中断处理,用户态驱动需要用户态中断,因此用户态中断请求的处理时延会对用户态驱动产生很大的影响,并将直接影响产品的竞争力。例如,外围设备的输入输出、触屏、网络的收包发包等性能的保证都依赖于中断处理的低时延。因此,如何降低用户态中断处理的时延是亟待解决的问题。

技术实现思路

[0004]本申请提供一种用户态中断请求的处理方法及装置,能够有效降低用户态中断处理时延,从而保证了用户态驱动性能。
[0005]第一方面,提供了一种用户态中断请求的处理方法,以中央处理器CPU为例,包括:中央处理器CPU在内核态对第一中断异常处理程序的内核地址进行脱敏处理,以获得第二中断异常处理程序;CPU在内核态获取用户态中断请求,并执行第二中断异常处理程序,以确定对应于用户态中断请求的用户态中断处理程序;CPU在内核态通过第一特权级切换,切换至用户态,其中,第一特权级切换为无上下文恢复的切换;CPU在用户态执行用户态中断处理程序;CPU在用户态通过第二特权级切换,切换至内核态,其中,第二特权级切换为无上下文存储的切换。
[0006]在本申请的技术方案中,无上下文恢复和存储的特权级切换可以大大减少用户态中断处理的时延,无内核地址等敏感信息的第二中断异常处理程序,在减少用户态中断处理时延的同时,保证了系统内核的安全性。
[0007]结合第一方面,在第一方面的某些实现方式中,CPU在内核态对第一中断异常处理程序的内核地址进行脱敏处理包括:覆盖或删除第一中断异常处理程序中的内核地址和内核地址中的信息。
[0008]结合第一方面,在第一方面的某些实现方式中,执行第二中断异常处理程序,以确定对应于用户态中断请求的用户态中断处理程序包括:唤醒用户态中断请求对应的用户态中断处理线程,其中,用户态中断处理线程包括用户态中断处理程序;或者获得用户态中断请求对应的用户态中断处理程序的地址。
[0009]结合第一方面,在第一方面的某些实现方式中,获得用户态中断请求对应的用户
态中断处理程序的地址包括:获得用户态中断请求对应的中断号;获得中断号对应的用户态中断处理程序的地址。
[0010]在本申请的技术方案中,对于单线程或者单进程的应用场景,可以直接获得中断号对应的用户态中断处理程序的地址,进一步缩短了CPU在内核态运行第二中断异常处理程序的时间,可以更大地提升用户态中断处理程序的响应速度,从而减少用户态中断处理的时延。
[0011]结合第一方面,在第一方面的某些实现方式中,获得用户态中断请求对应的中断号包括:CPU在内核态读取中断控制器的寄存器,以获得用户态中断请求对应的中断号,中断控制器获得应答消息,应答消息用于指示中断控制器屏蔽和用户态中断请求的优先级相同的中断请求,或者屏蔽低于用户态中断请求的优先级的中断请求。
[0012]结合第一方面,在第一方面的某些实现方式中,该方法还包括:CPU在内核态给中断控制器设置中断优先级组,中断优先级组包括第一中断优先级组和第二中断优先级组,其中,第一中断优先级组包括内核态中断请求,第二中断优先级组包括和用户态中断请求的优先级相同的中断请求,或者低于用户态中断请求的优先级的中断请求,第一中断优先级组的优先级高于第二中断优先级组;CPU在内核态给中断控制器设置抢占操作,抢占操作包括第一中断优先级组抢占第二中断优先级组。
[0013]在本申请的技术方案中,CPU在启动后的初始化过程中通过为中断控制器设置优先级组,使得用户态中断请求处理过程中不再需要禁用中断和重新使能中断的操作,可以大大减少CPU开始在用户态执行用户态中断处理线程之前的时延,进而使得用户态中断处理线程得到快速响应。
[0014]除此以外,CPU在启动后的初始化过程中通过为中断控制器设置抢占操作,内核态IRQ可以打断正在进行的用户态IRQ,优先得到服务和响应,内核态IRQ不需要等到用户态中断处理程序结束后,才可以被服务和响应,从而保证了内核态中断请求不会被用户态中断影响。
[0015]结合第一方面,在第一方面的某些实现方式中,CPU在用户态通过第二特权级切换,切换至内核态之后,CPU在内核态将结束中断EOI写入中断控制器的寄存器,中断控制器收到EOI,EOI用于指示中断控制器解除屏蔽和用户态中断请求的优先级相同的中断请求,或者屏蔽低于用户态中断请求的优先级的中断请求。
[0016]结合第一方面,在第一方面的某些实现方式中,该方法还包括:CPU在用户态执行用户态中断处理程序时,CPU在内核态并发检测用户态中断处理程序的结果状态。
[0017]结合第一方面,在第一方面的某些实现方式中,如果用户态中断处理程序的结果状态指示未结束,CPU在内核态中禁用用户态中断请求,并将结束中断EOI写入中断控制器的寄存器。
[0018]在本申请的技术方案中,CPU在用户态运行用户态中断处理程序时,通过并发检测用户态中断处理程序的状态结果,可以有效防止用户态中断处理程序处理过程中出现异常时,CPU卡死在用户态中执行用户态中断处理程序,进而保证CPU的正常运行。
[0019]第二方面,提供了一种用户态中断请求的处理装置,处理装置包括初始化模块、中断异常处理模块、特权级切换模块和用户态中断处理模块;初始化模块在内核态用于对第一中断异常处理程序的内核地址进行脱敏处理,以获得第二中断异常处理程序;中断异常
处理模块在内核态用于获取用户态中断请求,并执行第二中断异常处理程序,以确定对应于用户态中断请求的用户态中断处理程序;特权级切换模块在内核态用于通过第一特权级切换,切换至用户态;用户态中断处理模块在用户态用于执行用户态中断处理程序,其中,第一特权级切换为无上下文恢复的切换;特权级切换模块在用户态用于通过第二特权级切换,切换至内核态,其中,第二特权级切换为无上下文存储的切换。
[0020]在本申请的技术方案中,无上下文恢复和存储的特权级切换可以大大减少用户态中断处理的时延,无内核地址等敏感信息的第二中断异常处理程序,在减少用户态中断处理时延的同时,保证了系统内核的安全性。
[0021]结合第二方面,在第二方面的某些实现方式中,初始化模块在内核态用于对第一中断异常处理程序的内核地址进行脱敏处理包括:覆盖或删除中断异常处理程序中的内本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用户态中断请求的处理方法,其特征在于,包括:处理器在内核态对第一中断异常处理程序的内核地址进行脱敏处理,以获得第二中断异常处理程序;所述处理器在所述内核态获取用户态中断请求,并执行所述第二中断异常处理程序,以确定对应于所述用户态中断请求的用户态中断处理程序;所述处理器在所述内核态通过第一特权级切换,切换至用户态,其中,所述第一特权级切换为无上下文恢复的切换;所述处理器在所述用户态执行所述用户态中断处理程序;所述处理器在所述用户态通过第二特权级切换,切换至所述内核态,其中,所述第二特权级切换为无上下文存储的切换。2.根据权利要求1所述的方法,其特征在于,所述处理器在内核态对第一中断异常处理程序的内核地址进行脱敏处理包括:覆盖或删除所述第一中断异常处理程序中的所述内核地址和所述内核地址中的信息。3.根据权利要求1所述的方法,其特征在于,所述执行所述第二中断异常处理程序,以确定对应于所述用户态中断请求的用户态中断处理程序包括:唤醒所述用户态中断请求对应的用户态中断处理线程,其中,所述用户态中断处理线程包括所述用户态中断处理程序;或者获得所述用户态中断请求对应的所述用户态中断处理程序的地址。4.根据权利要求3所述的方法,其特征在于,所述获得所述用户态中断请求对应的所述用户态中断处理程序的地址包括:获得所述用户态中断请求对应的中断号;获得所述中断号对应的所述用户态中断处理程序的地址。5.根据权利要求4所述的方法,其特征在于,所述获得所述用户态中断请求对应的中断号包括:所述处理器在内核态读取中断控制器的寄存器,以获得所述用户态中断请求对应的中断号,所述中断控制器获得应答消息,所述应答消息用于指示所述中断控制器屏蔽和所述用户态中断请求的优先级相同的中断请求,或者屏蔽低于所述用户态中断请求的优先级的中断请求。6.根据权利要求1至5任一项所述的方法,其特征在于,所述方法还包括:所述处理器在所述内核态给中断控制器设置中断优先级组,所述中断优先级组包括第一中断优先级组和第二中断优先级组,其中,所述第一中断优先级组包括内核态中断请求,所述第二中断优先级组包括和所述用户态中断请求的优先级相同的中断请求,或者低于所述用户态中断请求的优先级的中断请求,所述第一中断优先级组的优先级高于第二中断优先级组;所述处理器在所述内核态给所述中断控制器设置抢占操作,所述抢占操作包括第一中断优先级组抢占第二中断优先级组。7.根据权利要求1至6任一项中所述的方法,其特征在于,所述处理器在所述用户态通过第二特权级切换,切换至所述内核态之后,所述处理器在所述内核态将结束中断EOI写入中断控制器的寄存器,所述中断控制器
收到所述EOI,所述EOI用于指示所述中断控制器解除屏蔽所述和所述用户态中断请求的优先级相同的中断请求,或者屏蔽低于所述用户态中断请求的优先级的中断请求。8.根据权利要求1至7任一项所述的方法,其特征在于,所述方法还包括:所述处理器在所述用户态执行所述用户态中断处理程序时,所述处理器在所述内核态并发检测所述用户态中断处理程序的结果状态。9.根据权利要求8所述的方法,其特征在于,所述方法还包括:如果所述用户态中断处理程序的结果状态指示未结束,所述处理器在所述内核态中禁用所述用户态中断请求,并将结束中断EOI写入中断控制器的寄存器。10.一种用户态中断请求的处理装置,其特征在于,所述处理装置包括初始化模块、中断异常处理模块、特权级切换模块和用户态中断处理模块;所述初始化模块在内核态用于对第一中断异常处理程序的内核地址进行脱敏处理,以获得第二中断异常处理程序;所述中断异常处理模块在所述内核态用于获取用户态中断请求,并执行所述第二中断异常处理程序,以确定对应于所述用户态中断请求的用户态中断处理程序;所述特权级切换模块在所述内核态用于通过第一特权级切换,切换至用户态;所述用户态中断处理模块在所述用户态用于执行所述用户态中断处理...

【专利技术属性】
技术研发人员:吴宇明曹慎刘宇涛
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

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

1