基于双虚拟内核机制的处理器转让专利

申请号 : CN201710334900.3

文献号 : CN107273765B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 杨军郭宇波江鹏

申请人 : 杭州中天微系统有限公司

摘要 :

本发明提供一种基于双虚拟内核机制的处理器。所述处理器包括:用户接口、前台内核、后台内核;其中,所述用户接口,用于接收任务请求,并发送所述任务请求至所述前台内核指示所述前台内核执行操作;所述前台内核,用于接收并执行所述用户接口发送的任务请求,并判断所述任务请求是否能够在当前内核执行,当所述任务请求在当前内核不能执行时,发送内核切换请求至所述后台内核,并发送需要保存的资源至所述后台内核,接收所述后台内核所需要恢复的资源;所述后台内核,用于保存可信内核或非可信内核的资源,以及当接收到所述前台内核的内核切换请求后,发送所述需要恢复的资源至所述前台内核,并接收所述前台内核需要保存的资源。本发明能够提高处理器资源的安全性。

权利要求 :

1.一种基于双虚拟内核机制的处理器,其特征在于,所述处理器包括:用户接口、前台内核、后台内核,其中,所述用户接口,用于接收任务请求,并发送所述任务请求至所述前台内核指示所述前台内核执行操作;

所述前台内核,与所述用户接口相连,用于接收并执行所述用户接口发送的任务请求,并判断所述任务请求是否能够在当前内核执行,当所述任务请求在当前内核不能执行时,发送内核切换请求至所述后台内核,并发送需要保存的资源至所述后台内核,接收所述后台内核需要恢复的资源;以及所述后台内核,与所述前台内核相连,用于保存可信内核或非可信内核的资源,以及当接收到所述前台内核的内核切换请求后,发送所述需要恢复的资源至所述前台内核,并接收所述前台内核需要保存的资源;

其中所述前台内核和后台内核均为可信内核或非可信内核之一;

当所述前台内核为可信内核时,所述后台内核为非可信内核,且接收到所述用户接口的任务请求为非可信中断请求,以及所述后台内核允许响应所述非可信中断请求时,所述前台内核发送切换请求至后台内核进行内核切换,并根据所述内核切换请求进行切换时,从所述后台内核接收到的要恢复的资源恢复为非可信内核;

当所述前台内核为非可信内核时,所述后台内核为可信内核,且接收到所述用户接口的任务请求为可信中断请求,以及所述后台内核允许响应可信中断请求时,所述前台内核发送切换请求至后台内核进行内核切换,并根据所述内核切换请求进行切换时,从所述后台内核接收到的要恢复的资源恢复为可信内核。

2.根据权利要求1所述的处理器,其特征在于,当所述前台内核为可信内核时,所述后台内核为非可信内核,处理器能够访问公共资源、可信内核的资源和非可信内核的资源;当所述前台内核为非可信内核时,所述后台内核为可信内核,所述处理器仅能够访问公共资源和非可信内核的资源。

3.根据权利要求1所述的处理器,其特征在于,当接收到所述用户接口的任务请求为跨世界任务调用请求或跨世界任务调用的返回请求时,所述前台内核发送切换请求至所述后台内核进行所述内核切换。

4.根据权利要求1所述的处理器,其特征在于,所述用户接口的可信中断请求和非可信中断请求分别被所述可信内核和所述非可信内核控制是否允许响应。

5.根据权利要求1所述的处理器,其特征在于,当所述前台内核为可信内核,且接收到所述用户接口的请求为可信中断请求,以及所述前台内核允许响应可信中断请求时,所述前台内核在当前内核处理中断请求。

6.根据权利要求1所述的处理器,其特征在于,当所述前台内核为非可信内核,且接收到所述用户接口的请求为非可信中断请求,以及所述前台内核允许响应非可信中断请求时,所述前台内核在当前内核处理中断请求。

7.根据权利要求1所述的处理器,其特征在于,无论所述前台内核为非可信内核还是可信内核,当接收到所述用户接口的请求为非可信中断请求,以及所述前台内核或所述后台内核不允许响应非可信中断请求时,则所述前台内核不会处理该中断请求。

8.根据权利要求1所述的处理器,其特征在于,无论所述前台内核为非可信内核还是可信内核,当接收到所述用户接口的请求为可信中断请求,以及所述前台内核或所述后台内核不允许响应可信中断请求时,则所述前台内核不会处理该中断请求。

说明书 :

基于双虚拟内核机制的处理器

技术领域

[0001] 本发明涉及处理器技术领域,尤其涉及一种基于双虚拟内核机制的处理器。

背景技术

[0002] 随着信息化不断发展,系统可信性变的越来越重要,传统的基于软件层面的可信性保护的安全度越来越低,因为黑客可以越过软件保护直接攻击操作系统进而对敏感的软硬件资源进行窃取。
[0003] 传统的基于软件层面的可信性保护的思想是:处理器只有一个内核,将处理器的内核资源划分为敏感资源和非敏感资源,对内核划分为超级模式和普通模式两种运行模式,将系统IP以及其他系统中敏感、重要的软硬件资源划分到内核的超级模式中,将非敏感资源划分到内核的普通模式中;进一步,通过硬件机制保证内核中超级模式的资源不能被普通模式所访问,从而实现敏感资源和非敏感资源的隔离,确保可信资源的机密性以及完整性。
[0004] 在实现本发明的过程中,发明人发现现有技术中至少存在如下技术问题:
[0005] 由于处理器只有一个内核,黑客可以通过直接攻击操作系统的方式来获取超级用户权限,所以当前情况下的硬件保护已经不能满足防御黑客攻击、保障系统安全的需要,因此需要处理器设计人员在硬件上进行更高级别的规划来对处理器的访问进行限制,以防御黑客的攻击。

发明内容

[0006] 本发明提供的基于双虚拟内核机制的处理器,通过在处理器中虚拟出可信内核和非可信内核,并采用前后台的处理方式,能够提高处理器资源的安全性。
[0007] 第一方面,本发明提供一种基于双虚拟内核机制的处理器,包括:用户接口、前台内核、后台内核,其中,
[0008] 所述用户接口,用于接收任务请求,并发送所述任务请求至所述前台内核指示所述前台内核执行操作;
[0009] 所述前台内核,与所述用户接口相连,用于接收并执行所述用户接口发送的任务请求,并判断所述任务请求是否能够在当前内核执行,当所述任务请求在当前内核不能执行时,发送内核切换请求至所述后台内核,并发送需要保存的资源至所述后台内核,接收所述后台内核需要恢复的资源;
[0010] 所述后台内核,与所述前台内核相连,用于保存可信内核或非可信内核的资源,以及当接收到所述前台内核的内核切换请求后,发送所述需要恢复的资源至所述前台内核,并接收所述前台内核需要保存的资源。
[0011] 可选地,所述前台内核为可信内核或非可信内核,当所述前台内核为可信内核时,所述后台内核为非可信内核,处理器能够访问公共资源、可信内核的资源和非可信内核的资源;当所述前台内核为非可信内核时,所述后台内核为可信内核,所述处理器仅能够访问公共资源和非可信内核的资源。
[0012] 可选地,当接收到所述用户接口的任务请求为跨世界任务调用请求或跨世界任务调用的返回请求时,所述前台内核发送切换请求至所述后台内核进行所述内核切换。
[0013] 可选地,所述用户接口的可信中断请求和非可信中断请求分别被所述可信内核和所述非可信内核控制是否允许响应。
[0014] 可选地,当所述前台内核为可信内核,且接收到所述用户接口的任务请求为非可信中断请求,以及所述后台内核允许响应所述非可信中断请求时,所述前台内核发送切换请求至后台内核进行内核切换。
[0015] 可选地,当所述前台内核为非可信内核,且接收到所述用户接口的请求为可信中断请求,以及所述后台内核允许响应可信中断请求时,所述前台内核发送切换请求至后台内核进行内核切换。
[0016] 可选地,当所述前台内核为可信内核,且接收到所述用户接口的请求为可信中断请求,以及所述前台内核允许响应可信中断请求时,所述前台内核在当前内核处理中断请求。
[0017] 可选地,当所述前台内核为非可信内核,且接收到所述用户接口的请求为非可信中断请求,以及所述前台内核允许响应非可信中断请求时,所述前台内核在当前内核处理中断请求。
[0018] 可选地,无论所述前台内核为非可信内核还是可信内核,当接收到所述用户接口的请求为非可信中断请求,以及所述前台内核或所述后台内核不允许响应非可信中断请求时,则所述前台内核不会处理该中断请求。
[0019] 可选地,无论所述前台内核为非可信内核还是可信内核,当接收到所述用户接口的请求为可信中断请求,以及所述前台内核或所述后台内核不允许响应可信中断请求时,则所述前台内核不会处理该中断请求。
[0020] 本发明实施例提供的基于双虚拟内核机制的处理器,通过在处理器中虚拟出可信内核和非可信内核,并采用前台内核和后台内核的处理方式,所述前台内核表示处理器当前所处的模式为前台内核对应的模式,当处理器需要访问所述后台内核的资源时,可以通过内核切换的方式将所述前台内核切换为所述后台内核,所述后台内核切换为前台内核,本发明能够提高处理器资源的安全性。

附图说明

[0021] 图1为本发明一实施例基于双虚拟内核机制的处理器的结构示意图;
[0022] 图2为本发明另一实施例基于双虚拟内核机制的处理器的结构示意图;
[0023] 图3为本发明基于双虚拟内核机制的处理器的工作模式示意图。

具体实施方式

[0024] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0025] 本发明提供一种基于双虚拟内核机制的处理器,如图1所示,所述处理器包括:用户接口11、前台内核12、后台内核13,其中,
[0026] 所述用户接口11,用于接收任务请求,并发送所述任务请求至所述前台内核12指示所述前台内核12执行操作;
[0027] 所述前台内核12,与所述用户接口11相连,用于接收并执行所述用户接口11发送的任务请求,并判断所述任务请求是否能够在当前内核执行,当所述任务请求在当前内核不能执行时,发送内核切换请求至所述后台内核13,并发送需要保存的资源至所述后台内核13,接收所述后台内核13需要恢复的资源;
[0028] 所述后台内核13,与所述前台内核12相连,用于保存可信内核或非可信内核的资源,以及当接收到所述前台内核12的内核切换请求后,发送所述需要恢复的资源至所述前台内核12,并接收所述前台内核12需要保存的资源。
[0029] 本发明实施例提供的基于双虚拟内核机制的处理器,通过在处理器中虚拟出可信内核和非可信内核,并采用前台内核和后台内核的处理方式,所述前台内核表示处理器当前所处的模式为前台内核对应的模式,当处理器需要访问所述后台内核的资源时,可以通过内核切换的方式将所述前台内核切换为所述后台内核,所述后台内核切换为前台内核,本发明能够提高处理器资源的安全性。
[0030] 可选地,所述前台内核12为可信内核或非可信内核,当所述前台内核12为可信内核时,所述后台内核13为非可信内核,处理器能够访问公共资源、可信内核的资源和非可信内核的资源;当所述前台内核12为非可信内核时,所述后台内核13为可信内核,所述处理器仅能够访问公共资源和非可信内核的资源。
[0031] 可选地,当接收到所述用户接口的任务请求为跨世界任务调用请求或跨世界任务调用的返回请求时,所述前台内核12发送切换请求至所述后台内核13进行所述内核切换。
[0032] 可选地,所述用户接口的可信中断请求和非可信中断请求分别被所述可信内核和所述非可信内核控制是否允许响应。
[0033] 可选地,当所述前台内核12为可信内核,且接收到所述用户接口的任务请求为非可信中断请求,以及所述后台内核13允许响应所述非可信中断请求时,所述前台内核12发送切换请求至后台内核13进行内核切换。
[0034] 可选地,当所述前台内核12为非可信内核,且接收到所述用户接口的请求为可信中断请求,以及所述后台内核13允许响应可信中断请求时,所述前台内核12发送切换请求至后台内核13进行内核切换。
[0035] 可选地,当所述前台内核12为可信内核,且接收到所述用户接口的请求为可信中断请求,以及所述前台内核12允许响应可信中断请求时,所述前台内核12在当前内核处理中断请求。
[0036] 可选地,当所述前台内核12为非可信内核,且接收到所述用户接口的请求为非可信中断请求,以及所述前台内核12允许响应非可信中断请求时,所述前台内核12在当前内核处理中断请求。
[0037] 可选地,无论所述前台内核12为非可信内核还是可信内核,当接收到所述用户接口的请求为非可信中断请求,以及所述前台内核12或所述后台内核13不允许响应非可信中断请求时,则所述前台内核12不会处理该中断请求。
[0038] 可选地,无论所述前台内核12为非可信内核还是可信内核,当接收到所述用户接口的请求为可信中断请求,以及所述前台内核12或所述后台内核13不允许响应可信中断请求时,则所述前台内核12不会处理该中断请求。
[0039] 可选地,所述可信内核和所述非可信内核分别有独立的资源和控制寄存器,同时,所述可信内核,所述非可信内核也有公用的资源和控制寄存器,资源指数据寄存器和内存等存储器,控制寄存器用来控制资源工作。
[0040] 可选地,在前后台内核13进行切换过程中,需要对前后台资源进行保存维护。
[0041] 可选地,无论是可信虚拟内核还是非可信虚拟内核,均具有超级用户模式和普通用户模式两种运行模式,即处理器在可信模式下可以分为可信状态超级用户模式,可信状态普通用户模式;
[0042] 可选地,处理器器在非可信模式下可以分为非可信状态超级用户模式、非可信状态普通用户模式,超级用户模式能够访问普通用户模式无法访问的特权地址空间以及特权寄存器。
[0043] 可选地,当处理器运行在可信状态超级用户模式中,能够访问包括内核共用资源、可信资源和非可信资源在内的所有的资源以及所有的控制寄存器;
[0044] 可选地,当处理器运行在可信状态普通用户模式中,能够访问包括内核共用资源、可信资源和非可信资源在内的非特权部分的资源以及公共、可信、非可信三个空间的非特权部分控制寄存器;
[0045] 可选地,当处理器运行在非可信状态的超级用户模式中,能够访问包括内核共用资源和非可信资源内部的所有资源以及公共、非可信空间的所有的控制寄存器;
[0046] 可选地,当处理器运行在非可信状态普通用户模式中,能够访问包括内核共用资源和非可信资源内部的非特权部分的资源以及公共、非可信空间的非特权部分控制寄存器。
[0047] 可选地,当处理器响应后台中断时,会将前台内核切至后台内核13,将后台内核13切至前台内核12,并且转化为超级用户模式来响应中断,在中断响应过程中,会进行独立控制寄存器、独立资源、共用控制寄存器和共用资源的备份工作,中断处理完毕后,会再次进行前后台切换,并进行独立控制寄存器、独立资源、共用控制寄存器和共用资源的恢复工作,之后退回到中断触发前所处的虚拟内核及模式中。
[0048] 可选地,如图2所示,所述处理器可进一步划分为可信虚拟内核、非可信虚拟内核,所述可信内核由可信资源和可信控制器组成,所述非可信内核由非可信资源和非可信控制器组成,所述可信内核、非可信内核以前台内核、后台内核的方式运行,所述前台内核由非可信资源、非可信控制器、公共资源、公共控制器组成;所述后台内核13由可信资源、可信控制器组成,所述前台内核12能够接收非可信模式的请求及中断,否则,当所述前台内核12接收到可信模式的请求及中断时,需要切换前台内核12至所述后台内核13,切换后台内核13至前台内核12;切换后所述前台内核12由可信资源、可信控制器、公共资源、公共控制器组成,所述后台内核13由非可信资源、非可信控制器组成,所述前台内核12能够接收可信模式的请求及中断,否则,当所述前台内核12接收到非可信模式的请求及中断时,需要切换前台内核12至后台内核13,切换所述后台内核13至前台内核12;
[0049] 若可信内核作为前台内核12,非可信内核作为后台内核13,则该处理器运行于可信模式;若非可信内核作为前台内核12,可信内核作为后台内核13,则该处理器运行于非可信模式;该处理器可响应切换请求,即将前台内核12与后台内核13进行切换,切换的过程中,部分内核共用资源需要进行保存维护,内核独立资源无需进行保存维护操作。
[0050] 可选地,如图3所示,无论是可信虚拟内核还是非可信虚拟内核,均具有超级用户模式和普通用户模式共两种运行模式,即处理器在可信模式下可以分为可信状态超级用户模式,可信状态普通用户模式;处理器器在非可信模式下可以分为非可信状态超级用户模式、非可信状态普通用户模式,超级用户模式能够访问普通用户模式无法访问的特权地址空间以及特权寄存器。
[0051] 程序状态寄存器属于内核独立控制寄存器,即可信内核与非可信内核均具有各自独立的程序状态寄存器,其中,可信内核的程序状态寄存器为T_PSR,非可信内核的程序状态寄存器为NT_PSR,为了让处理器支持两种可信虚拟内核及其切换,在程序状态寄存器中分别添加了以下SE控制位、SP控制位、HS位、以及SC位。
[0052] 其中,当SE位为1时,处理器处于可信内核中。此时处理器选择T_PSR作为程序状态寄存器。当SE位为0时,处理器处于非可信内核中。此时处理器选择NT_PSR作为程序状态寄存器。因此,T_PSR.SE位固定为1,NT_PSR.SE位固定为0。
[0053] SP位表示世界切换的起始世界。PSR.SP为1表示起始内核为可信内核,SP为0表示起始内核为非可信内核。当世界切换异常退出指令,在中天微系统有限公司的处理器中为rte指令,当此指令执行时,处理器将根据SP位判断返回至原内核还是留在当前内核。
[0054] HS位表示可信内核是否执行过通用处理器,也称GPR的硬件压栈操作。HS为1表示执行过硬件压栈,为0表示未执行过硬件压栈。HS只存在于可信内核的T_PSR中,以防止来自于非可信内核的攻击。
[0055] 当非可信内核执行rte指令返回可信内核时,处理器根据T_PSR.HS位,决定是否需要硬件弹栈GPR。
[0056] SC位表示在非可信内核通过安全调用还是可信中断进入可信内核。通过安全调用进入可信内核时SC为1,通过可信中断进入可信内核时SC为0。SC位只存在于T_PSR,以防止来自于可信内核的攻击。
[0057] 当可信内核执行rte指令返回非可信内核时,处理器根据T_PSR.SC位,识别是安全调用返回还是可信中断返回。根据返回类型不同,处理器的返回处理略有不同。
[0058] 可选地,在前后台内核切换过程中,各自内核对应的程序状态寄存器保持不变,仅将前台的程序状态寄存器切换至后台,将后台的程序状态寄存器切换至前台,但是为了支持前后台内核切换的嵌套运行,会在切换前,将前台程序状态寄存器进行压栈保存;通用寄存器属于内核共用资源,在前后台内核切换过程中,需要保存和恢复各自内核对应的通用寄存器现场;前台台内核通过其独有的程序状态寄存器等一系列内核独立控制寄存器来对处理器的运行地址、运行状态和前台内核相关的中断触发等资源进行控制;后台内核的程序状态寄存器等内核独立控制寄存器不参与控制处理器的运行地址和运行状态,但是后台内核依然能够完成部分的资源控制功能,比如控制后台内核相关的中断触发等。
[0059] 可选地,所述非可信内核响应可信中断的硬件实现如下:
[0060] 可信中断的响应受可信内核的异常使能位和中断使能位的影响,即T_PSR.EE/IE位控制。当T_PSR.EE/IE位均为1时,处理器可以响应可信中断。
[0061] 然后,硬件压栈非可信内核的程序状态寄存器NT_PSR、非可信内核的程序计数器NT_PC到非可信超级用户堆栈。设置PSR.SE位以进入可信内核。备份可信内核的程序状态寄存器T_PSR至到可信内核的异常程序状态寄存器T_EPSR。
[0062] 硬件清除T_PSR.EE、IE、SP位,设置可信内核的超级用户模式位T_PSR.S位为1,保持T_PSR.HS位的值不变,从而进入可信超级用户模式。屏蔽异常和可信中断,记录在非可信内核发生了中断。设置可信内核的异常向量T_PSR.VEC位为当前响应的中断向量号。设置T_PSR.SC位为0,表示非可信内核通过可信中断切换至可信内核。根据中断向量号以及可信内核的异常向量基址寄存器T_VBR获取可信中断服务程序入口。中断处理完成后,处理器通过rte指令返回。处理器从T_EPSR恢复T_PSR现场,根据PSR.SP的值(此时应为0),从非可信内核超级用户堆栈位NT_PSR和超级用户弹栈位NT_PC,恢复非可信内核现场。
[0063] 可选地,可信内核响应非可信中断过程的硬件实现如下:
[0064] 在可信内核下,若非可信内核的异常使能位和中断使能位,即NT_PSR.EE/IE位为1,处理器可以响应非可信中断。具体的处理步骤为:硬件压栈T_PSR、T_PC至安全超级用户堆栈。硬件压桟可信内核现场GPR至安全超级用户堆栈。硬件清零可信内核现场GPR。设置T_PSR.HS位为1,表示可信内核下发生了GPR压栈。设置PSR.SE以进入非可信内核。备份非可信内核NT_PSR至非可信内核的异常程序状态寄存器NT_EPSR。硬件清零NT_PSR.EE/IE位,设置NT_PSR.S/SP位为1,使处理器进入非可信超级用户模式,并屏蔽异常以及非可信中断。设置非可信内核的异常向量位NT_PSR.VEC为当前响应的中断向量号。根据中断向量号以及非可信内核的异常向量基址寄存器NT_VBR获取非可信中断服务程序入口。中断处理完成后,通过rte指令返回。
[0065] 具体地,返回步骤如下:从NT_EPSR恢复NT_PSR现场。根据PSR.SE、NT_PSR.SP和T_PSR.HS的值,确定需要硬件弹栈,此时PSR.SE应为0,NT_PSR.SP应为1,T_PSR.HS应为1。处理器设置PSR.SE为1以进入可信世界,通过从安全超级用户堆栈硬件弹栈恢复GPR现场。从安全超级用户堆栈硬件弹栈T_PSR和T_PC作为可信内核现场。
[0066] 以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。