在计算设备中管理TLB的方法和对应计算设备技术

技术编号:38755108 阅读:11 留言:0更新日期:2023-09-10 09:40
本说明书实施例提供在一种在计算设备中管理TLB的方法和对应的计算设备。该计算设备通过虚拟机监控器部署有多个虚拟机,所述多个虚拟机包括,运行普通执行环境的普通虚拟机,以及运行TEE实例的安全虚拟机,所述计算设备具有多个CPU核。上述方法包括,响应于修改安全内存的目标请求,普通执行环境向运行安全虚拟机的若干CPU核发送核间中断IPI。其中安全虚拟机对应的控制数据包括TLB控制域,所述TLB控制域预先被设置为目标值,该值指示在退出安全虚拟机时刷除该虚拟机所有的TLB。于是,响应于所述IPI,上述若干CPU核从运行安全虚拟机的安全模式退出,并根据上述目标值的指示,刷除对应虚拟机所有的TLB。虚拟机所有的TLB。虚拟机所有的TLB。

【技术实现步骤摘要】
在计算设备中管理TLB的方法和对应计算设备


[0001]本说明书一个或多个实施例涉及支持TEE的计算设备,尤其涉及一种在计算设备中管理TLB的方法及对应计算设备。

技术介绍

[0002]随着各行业计算技术的发展,以及云端和终端用户的增加,人们将大量数据存储在各种计算机设备中。在行业发展的同时,人们对于设备和数据安全的关注也在日益增加。为了确保设备和数据的安全性,各个架构厂商也分别提出了各自的解决方案,如ARM提出了可信区技术(TrustZone),AMD提出了安全虚拟机加密技术(SEV),英特尔提出了软件防护扩展(SGX)技术,等等。这些解决方案为用户提供一个安全的可信执行环境TEE,用于机密地保存和处理数据,使其免受不可信的应用程序的损害。
[0003]可信执行环境TEE的提供,依赖于对内存权限的有效管理。为了加速内存页的虚拟地址到物理地址的翻译速度,在CPU中利用TLB(Translation Lookaside Buffer)进行页表缓存。因此,TLB中也会存储内存相关信息,影响内存读取。
[0004]因此,希望对TLB进行有效管理,确保针对TEE的内存安全。

技术实现思路

[0005]本说明书一个或多个实施例描述了一种在计算设备中管理TLB的方案,能够在修改安全内存时,确保刷除对应的TLB条目,提高针对TEE的内存安全性。
[0006]根据第一方面,提供在一种在计算设备中管理TLB的方法,所述计算设备通过虚拟机监控器部署有多个虚拟机,所述多个虚拟机包括,运行普通执行环境的普通虚拟机,以及运行TEE实例的安全虚拟机,所述计算设备具有多个CPU核;所述方法包括:
[0007]响应于修改安全内存的目标请求,普通执行环境向运行所述安全虚拟机的若干CPU核发送核间中断IPI;所述安全虚拟机对应的控制数据包括TLB控制域,所述TLB控制域被设置为目标值,所述目标值指示在退出所述安全虚拟机时刷除该虚拟机所有的TLB;
[0008]响应于所述IPI,所述若干CPU核从运行所述安全虚拟机的安全模式退出,并根据所述目标值的指示,刷除对应虚拟机所有的TLB。
[0009]在一个实施例中,所述控制数据为存储于对应CPU核的寄存器中的虚拟机控制程序块VMCB数据。
[0010]根据一个实施例,所述控制数据包括虚拟机退出信息,所述虚拟机退出信息用于指示导致虚拟机退出的事件;所述虚拟机退出信息被设置为包括核间中断IPI。
[0011]根据一种实施方式,所述目标请求涉及第一TEE实例;所述虚拟机监控器包括追踪模块,所述追踪模块维护所述第一TEE实例对应的第一参数组,其中包括用于指示TLB刷除是否完成的状态参数。该方法还包括:响应于所述目标请求,所述追踪模块通过追踪所述若干CPU核关于安全模式的切换,更新所述第一参数组;所述虚拟机监控器验证所述状态参数是否具有第一值,在验证通过的情况下,将所述目标请求对应的内存修改生效;所述第一值
指示TLB刷除已完成。
[0012]在一个实施例中,在发送核间中断IPI之前,上述方法还包括:响应于所述目标请求,将针对第一TEE实例的启动状态设置为指示未启动的第一状态,并将所述状态参数设置为第二值,所述第二值指示TLB刷除未完成。
[0013]进一步的,响应于所述启动状态为所述第一状态,虚拟机监控器将其修改为指示已启动的第二状态,并初始化所述第一参数组。
[0014]在一个实施例中,所述第一参数组还包括指示需执行TLB刷除的核数目的第一参数,所述第一参数初始被设置为,等于所述第一TEE实例当时运行在安全模式下的线程数量。相应的,追踪模块更新所述第一参数组,具体包括:响应于目标CPU核关于安全模式的切换,更新所述第一参数;其中,所述目标CPU核是所述若干CPU核中运行所述第一TEE实例的CPU核;响应于所述第一参数更新为0,将所述状态参数设置为所述第一值。
[0015]在一个实施例中,第一参数组还包括指示所述目标CPU核是否需要执行TLB刷除的第二参数,所述第二参数的初始值为指示需要刷除的第三值。
[0016]相应的,更新所述第一参数可以包括:响应于所述目标CPU核退出安全模式,若所述第二参数的当前值为所述第三值,将所述第一参数值和所述线程数量均递减1;否则,保持所述第一参数值,而将所述线程数量递减1。
[0017]更新所述第一参数还可以包括:响应于所述目标CPU核切换到安全模式,将所述线程数量递增1,并将所述第二参数设置为第四值,所述第四值指示不需要执行刷除。
[0018]根据一种实现方式,所述状态参数包括对应于第一类内存修改的第一状态参数,和对应于第二类内存修改的第二状态参数;所述第一类内存修改和第二类内存修改分别对应于,普通世界操作系统发起的内存修改,和TEE实例发起的内存修改。
[0019]相应的,虚拟机监控器验证所述状态参数是否具有第一值,包括:
[0020]若所述目标请求涉及第一类内存修改,验证所述第一状态参数是否具有第一值;
[0021]若所述目标请求涉及第二类内存修改,验证所述第二状态参数是否具有第一值。
[0022]根据第二方面,提供了一种计算设备,所述计算设备通过虚拟机监控器部署有多个虚拟机,所述多个虚拟机包括,运行普通执行环境的普通虚拟机,以及运行TEE实例的安全虚拟机,所述计算设备具有多个CPU核;其中:
[0023]所述普通虚拟机配置为,响应于修改安全内存的目标请求,向运行所述安全虚拟机的若干CPU核发送核间中断IPI;所述安全虚拟机对应的控制数据包括TLB控制域,所述TLB控制域被设置为目标值,所述目标值指示在退出所述安全虚拟机时刷除该虚拟机所有的TLB;
[0024]所述若干CPU核配置为,响应于所述IPI,从运行所述安全虚拟机的安全模式退出,并根据所述目标值的指示,刷除对应虚拟机所有的TLB。
[0025]根据第三方面,提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面所述的方法。
[0026]在本说明书实施例提供的方案中,在需要修改安全内存时,通过核间中断IPI促使运行TEE的CPU核退出安全虚拟机。预先设置虚拟机的控制数据,使得安全虚拟机退出时硬件刷除TLB。进一步的,跟踪模块追踪安全世界CPU的世界切换状态,保证在跟踪区间内,运行当前TEE的安全世界CPU都至少发生过一次世界切换。而每当CPU核退出安全世界,都会进
行TLB刷除。因此,跟踪模块通过跟踪CPU核的世界切换,确保对应CPU核正确执行了TLB刷除。
附图说明
[0027]为了更清楚地说明本专利技术实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
[0028]图1示出根据一个实施例的虚拟化系统本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种在计算设备中管理TLB的方法,所述计算设备通过虚拟机监控器部署有多个虚拟机,所述多个虚拟机包括,运行普通执行环境的普通虚拟机,以及运行TEE实例的安全虚拟机,所述计算设备具有多个CPU核;所述方法包括:响应于修改安全内存的目标请求,普通执行环境向运行所述安全虚拟机的若干CPU核发送核间中断IPI;所述安全虚拟机对应的控制数据包括TLB控制域,所述TLB控制域被设置为目标值,所述目标值指示在退出所述安全虚拟机时刷除该虚拟机所有的TLB;响应于所述IPI,所述若干CPU核从运行所述安全虚拟机的安全模式退出,并根据所述目标值的指示,刷除对应虚拟机所有的TLB。2.根据权利要求1所述的方法,其中,所述控制数据为存储于对应CPU核的寄存器中的虚拟机控制程序块VMCB数据。3.根据权利要求1所述的方法,其中,所述控制数据包括虚拟机退出信息,所述虚拟机退出信息用于指示导致虚拟机退出的事件;所述虚拟机退出信息被设置为包括核间中断IPI。4.根据权利要求1所述的方法,其中,所述目标请求涉及第一TEE实例;所述虚拟机监控器包括追踪模块,所述追踪模块维护所述第一TEE实例对应的第一参数组,其中包括用于指示TLB刷除是否完成的状态参数;所述方法还包括:响应于所述目标请求,所述追踪模块通过追踪所述若干CPU核关于安全模式的切换,更新所述第一参数组;所述虚拟机监控器验证所述状态参数是否具有第一值,在验证通过的情况下,将所述目标请求对应的内存修改生效;所述第一值指示TLB刷除已完成。5.根据权利要求4所述的方法,在普通执行环境向运行所述安全虚拟机的若干CPU核发送核间中断IPI之前,还包括:响应于所述目标请求,虚拟机监控器将针对第一TEE实例的启动状态设置为指示未启动的第一状态,并将所述状态参数设置为第二值,所述第二值指示TLB刷除未完成。6.根据权利要求5所述的方法,在普通执行环境向运行所述安全虚拟机的若干CPU核发送核间中断IPI之前,还包括:响应于所述启动状态为所述第一状态,虚拟机监控器将其修改为指示已启动的第二状态,并初始化所述第一参数组。7.根据权利要求4所述的方法,其中,所述第一参数组还包括指示需执行TLB刷除的核数目的第一参数,所述第一参数初始被设置为,等于所述第一TEE实例当时运行在安全模式下的线程数量;所述更新所述第一参数组,包括:响应于目标CPU核关于安全模式的切换,更新所述第一参数;其中,所述目标CPU核是所述若干CPU核中运行所述第一TEE实例的CPU核;响应于所述第一参...

【专利技术属性】
技术研发人员:朱伯君刘双闫守孟
申请(专利权)人:支付宝杭州信息技术有限公司
类型:发明
国别省市:

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

1