内存保护单元信息的处理方法、系统以及可读介质与流程
未命名
09-29
阅读:64
评论:0
1.本发明涉及数据处理技术领域,尤其涉及一种内存保护单元信息的处理方法、系统以及可读介质。
背景技术:
2.现有技术中,芯片系统通过虚拟机监视器(hypervisor)创建出虚拟机环境,可以通过hypervisor管理多个在虚拟机中运行的客户操作系统(guest operating system,guest os),以实现通过不同操作系统管理不同的系统部分的目的。目前,芯片系统内运行的guest os在切换任务执行时,先通过软件程序解析出切换到的新任务所需的内存保护单元(memory protection unit,mpu)信息,然后将该新任务所需的mpu信息转换成mpu寄存器适配的格式,再将转换了格式后的mpu信息写入到mpu寄存器中,以使得guest os可通过mpu寄存器中的mpu信息提供的内存访问权限,执行该新任务。其中,新任务所需的mpu信息用于说明该新任务在mpu区域的内存访问权限。
3.然而,由于guest os每次切换任务时,都需要通过软件程序对新任务所需的mpu信息进行解析、格式转换、再将mpu信息写入到mpu寄存器等步骤,导致每一次切换任务时的耗时较长,效率较低,不能够快速切换任务。
技术实现要素:
4.有鉴于此,本发明实施例提供一种内存保护单元信息的处理方法、系统以及可读介质,以通过数字逻辑模块实现切换任务时的mpu信息处理,提高处理效率。
5.为实现上述目的,本发明实施例提供如下技术方案:第一方面,本技术公开了一种内存保护单元信息的处理方法,应用于芯片系统,所述芯片系统包括数字逻辑模块,所述内存保护单元信息的处理方法包括:若执行任务切换操作,则向所述数字逻辑模块发送新任务的标识信息;其中,所述新任务的标识信息至少包括所述新任务的标识;所述新任务是所述任务切换操作所切换到的任务;所述数字逻辑模块根据所述新任务的标识信息,查找到新任务所需的内存保护单元信息;其中,所述新任务所需的内存保护单元信息用于说明客户操作系统执行所述新任务时在所述内存保护单元中的内存访问权限;所述数字逻辑模块将所述新任务所需的内存保护单元信息写入至内存保护单元寄存器中。
6.可选地,在上述内存保护单元信息的处理方法中,所述芯片系统还包括:多个客户操作系统和虚拟机监视器;所述新任务的标识信息包括新任务的标识,或者,所述新任务的标识和运行所述新任务的客户操作系统的标识;其中,所述若执行任务切换操作,则向所述数字逻辑模块发送新任务的标识信息,包括:若所述客户操作系统执行从当前任务切换到新任务的操作,则所述客户操作系统
向所述数字逻辑模块发送新任务的标识;若所述虚拟机监视器执行从当前的客户操作系统的任务切换到新客户操作系统的新任务的操作,则所述虚拟机监视器向所述数字逻辑模块发送所述新任务的标识和运行所述新任务的客户操作系统的标识。
7.可选地,在上述内存保护单元信息的处理方法中,所述数字逻辑模块根据所述新任务的标识信息,查找到新任务所需的内存保护单元信息,包括:所述数字逻辑模块根据所述新任务的标识信息,在内存保护单元的特定区域中查找到所述新任务所需的内存保护单元信息;其中,所述特定区域是用于存储所有客户操作系统可执行的每一个任务所需的内存保护单元信息的内存保护单元区域;所述特定区域的权限被配置为在第二异常级别时为可读写权限,在比所述第二异常级别更低的级别时为只读权限;所述客户操作系统处于第一异常级别,所述虚拟机监视器处于第二异常级别。
8.可选地,在上述内存保护单元信息的处理方法中,所述所有客户操作系统可执行的每一个任务所需的内存保护单元信息的存储过程,包括:判断当前是否处于客户操作系统的初始化阶段;若判断出当前处于客户操作系统的初始化阶段、且确定出当前所述芯片系统处于第二异常级别,则将所述客户操作系统可执行的每一个任务所需的内存保护单元信息的格式,处理成内存保护单元寄存器的格式;将处理后的所有任务所需的内存保护单元信息,依次写入至内存保护单元的特定区域中。
9.可选地,在上述内存保护单元信息的处理方法中,还包括:若判断出当前不处于所述客户操作系统的初始化阶段,则判断是否所有客户操作系统均完成了初始化;若判断出存在有客户操作系统未完成初始化,则返回至所述判断当前是否处于客户操作系统的初始化阶段的步骤。
10.可选地,在上述内存保护单元信息的处理方法中,所述判断当前是否处于客户操作系统的初始化阶段之后,还包括:若判断出当前处于客户操作系统的初始化阶段、且确定出当前所述芯片系统不处于第二异常级别,则将所述芯片系统切换至第二异常级别;将所述客户操作系统可执行的每一个任务所需的内存保护单元信息的格式,处理成内存保护单元寄存器的格式;将处理后的所有任务所需的内存保护单元信息,依次写入至内存保护单元区域中。
11.可选地,在上述内存保护单元信息的处理方法中,所述特定区域的权限的配置过程,包括:在所述芯片系统处于第二异常级别时,将内存保护单元中的特定区域设置为第二异常级别的内存保护单元区域,并将所述特定区域在第二异常级别时的权限设置为可读写权限、将比所述第二异常级别更低的级别的权限设置为只读权限;在所述芯片系统处于第一异常级别时,将所述内存保护单元中的特定区域设置为第一异常级别的内存保护单元区域,并将所述特定区域在第一异常级别时的权限设置为只
读权限、且将比所述第一异常级别更低的级别的权限设置为只读权限。
12.可选地,在上述内存保护单元信息的处理方法中,所述数字逻辑模块根据所述新任务的标识信息,在内存保护单元的特定区域中查找到所述新任务所需的内存保护单元信息,包括:所述数字逻辑模块根据所述新任务的标识信息,在内存保护单元的特定区域中查找到与所述新任务的标识信息对应的存储位置;所述数字逻辑模块从与所述新任务的标识信息对应的存储位置中获取到所述新任务所需的内存保护单元信息。
13.第二方面,本技术公开了一种内存保护单元信息的处理系统,包括:芯片系统;其中,所述芯片系统包括数字逻辑模块:所述芯片系统用于执行如上述第一方面任一所述的方法。
14.第三方面,本技术公开了一种计算机可读介质,其上存储有计算机程序,其中,所述程序被处理器执行时实现如上述第一方面中任一所述的方法。
15.基于上述本发明实施例提供的内存保护单元信息的处理方法,该方法应用于芯片系统,该芯片系统包括数字逻辑模块,本技术的芯片系统在执行任务切换操作时,向数字逻辑模块发送新任务的标识信息。其中,新任务的标识信息至少包括新任务的标识,新任务是任务切换操作所切换到的任务。进而使得数字逻辑模块可根据新任务的标识信息,查找到新任务所需的内存保护单元信息。其中,新任务所需的内存保护单元信息用于说明客户操作系统执行新任务时在内存保护单元中的内存访问权限,然后数字逻辑模块将新任务所需的内存保护单元信息写入至内存保护单元寄存器中,实现让客户操作系统使用内存保护单元信息执行该新任务。由于本技术在将新任务所需的内存保护单元信息写入到内存保护单元寄存器的过程中,主要通过数字逻辑模块实现内存保护单元信息的处理,而数字逻辑模块属于硬件,处理流程不涉及到对内存保护单元信息的解析处理,相较于现有的软件程序的处理流程更为快速,任务切换效率得到了提升。
附图说明
16.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
17.图1为本技术实施例公开的一种内存保护单元信息的处理系统的结构示意图;图2为本技术实施例公开的一种内存保护单元信息的处理方法的流程示意图;图3为本技术实施例公开的一种系统任务切换的场景示意图;图4为本技术实施例公开的一种数字逻辑模块获取到内存保护单元信息的流程示意图;图5为本技术实施例公开的一种将内存保护单元信息写入到特定区域的流程示意图;图6为本技术实施例公开的另一种内存保护单元信息的处理方法的流程示意图。
具体实施方式
18.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
19.在本技术中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
20.为了使得下述本技术实施例提出的内存保护单元信息的处理方法的描述更为清楚,首先介绍一下本技术实施例中涉及到的部分名词或者专业术语的解释。
21.(1)内存保护单元(memory protection unit,mpu):mpu将内存划分为多个区域,每个区域定义特定的访问权限,如只读、读写、执行等。防止权限较低的软件访问权限较高的内存区域,增强系统安全性。简化操作系统的内存管理,通过mpu,操作系统可以方便地为不同的硬件资源或软件模块配置内存保护,无需复杂的页表操作。
22.(2)第二异常级别(exception levels 2,el2):arm处理器架构定义了一系列的异常级别,随着异常级别的增加,软件的执行权限也会相应的增加,arm处理器架构定义el2异常级别支持系统虚拟化,el2也被称为虚拟机监视器模式(hypervisor mode)。hypervisor可以运行在el2模式下,可以配置第二异常级别的内存保护单元(简称el2 mpu)为自己服务,同时也可以配置第一异常级别的mpu(简称el1 mpu)为运行在el1下的操作系统内核服务。el2 mpu用于隔离hypervisor内存空间与其他模式。
23.(3)第一异常级别(exception levels 1,el1):arm处理器架构定义el1,el1主要是内核空间运行的异常级别。el1 mpu用于隔离内核内存空间与用户空间。guest os运行在el1,guest os仅能配置el1 mpu。用户空间运行在最低异常级别(exception levels 0,el0),不具有配置el1的权限。
24.(4)内存保护单元信息(mpu信息):guest os在执行任务时,需要使用到任务所需的mpu信息。任务所需的mpu信息用于说明guest os执行任务时在内存保护单元中的内存访问权限。guest os在执行任务时,只能使用mpu信息提供的内存访问权限进行读写操作。
25.(5)内存保护单元寄存器(mpu寄存器):用于存储mpu信息的寄存器。
26.参阅图1,本技术实施例提出了一种内存保护单元信息的处理系统,该内存保护系统包括硬件和软件。该芯片系统的硬件至少包括数字逻辑模块101,还可以包括内存保护单元区域(即mpu域)。
27.具体的,图1示出的芯片系统执行内存单元保护信息的处理过程为:当芯片系统执行任务切换操作时,则向硬件部分的数字逻辑模块101发送新任务的标识信息。其中,新任务的标识信息至少包括新任务的标识,新任务是任务切换操作所切换到的任务。数字逻辑模块101根据新任务的标识信息,查找到新任务所需的内存保护单元信息。其中,新任务所需的内存保护单元信息用于说明客户操作系统执行新任务时在内存保护单元中的内存访问权限。数字逻辑模块将新任务所需的内存保护单元信息写入至内存保护单元寄存器中。
28.可选地,在本技术一具体实施例中,图1示出的芯片系统的软件部分可以包括有第二异常级别(el2)、第一异常级别(el1)以及最低异常级别(el0)分别对应的空间。其中,虚拟机监视器(hypervisor)位于硬件之上,处于el2级别。客户操作系统(guest os)位于hypervisor之上,hypervisor负责guest os之间的切换,guest os处于el1级别。guest os中包含任务,负责任务间的切换,任务处于el0级别。
29.系统系统执行的任务切换操作可以是guest os从当前任务切换到新任务的操作,还可以是虚拟机监视器执行从当前的guest os的任务切换到新的guest os的新任务的操作。
30.示例性的,芯片系统执行若执行任务切换操作,则向数字逻辑模块101发送新任务的标识信息的一种实施方式可以是:若客户操作系统执行从当前任务切换到新任务的操作,则客户操作系统向数字逻辑模块101发送新任务的标识。若虚拟机监视器执行从当前的客户操作系统的任务切换到新客户操作系统的新任务的操作,则虚拟机监视器向数字逻辑模块101发送新任务的标识和运行新任务的客户操作系统的标识。
31.由前述对现有技术的介绍可知,guest os每次切换任务时,都需要通过软件程序对新任务所需的mpu信息进行解析、格式转换、再将mpu信息写入到mpu寄存器等步骤,导致每一次切换任务时的耗时较长,效率较低,不能够快速切换任务。而本技术的芯片系统在将新任务所需的内存保护单元信息写入到内存保护单元寄存器的过程中,主要通过数字逻辑模块101接收新任务的标识信息,然后根据新任务的标识信息查找到新任务的mpu信息,进而由数字逻辑模块101将新任务所需的mpu信息写入到mpu寄存器中,实现内存保护单元信息的处理。由于数字逻辑模块属于硬件,相较于软件程序的处理流程更为快速,而本技术实施例中的任务切换流程主要由数字逻辑模块101实现,因此任务切换效率得到了提升。
32.需要说明的是,图1示出的芯片系统的具体应用场景,本技术实施例不作限制,例如该芯片系统可以是车规芯片系统,可实现对汽车的控制,又例如该芯片系统可以是手机的芯片系统,可实现对手机运行的控制。
33.下面通过本技术实施例提出的内存保护单元信息的处理方法,详细阐述图1示出的芯片系统内的mpu信息的处理过程。
34.具体的,参阅图2,本技术实施例公开了一种内存保护单元信息的处理方法,应用于芯片系统,该芯片系统包括数字逻辑模块。其中,有关图2示出的方法应用的芯片系统的相关介绍,可参见前述图1部分的相关内容,此处不再赘述。具体的,图2示出的方法包括以下步骤:s201、若执行任务切换操作,则向数字逻辑模块发送新任务的标识信息,其中新任务的标识信息至少包括新任务的标识,新任务是任务切换操作所切换到的任务。
35.具体的,若芯片系统的软件执行了任务切换操作,则向数字逻辑模块发送任务切换操作所切换到的新任务的标识信息。其中,新任务的标识信息可以理解为新任务特有的信息,新任务的表示信息至少包括新任务的标识。其中,新任务的标识可以是新任务特有的任务编号、名称字段等。在一些实施例中,新任务的标识信息还可以包括有执行该新任务的客户操作系统的标识。类似的,客户操作系统的标识可以是客户操作系统特有的操作系统编号、名称字段等。
36.其中,触发芯片系统执行任务切换操作的方式有很多,触发执行任务切换操作的
软件模块也可以有多种。例如可以是客户操作系统触发的任务切换操作,也可以是hypervisor触发的切换到新的客户操作系统的新任务的操作。
37.可选地,在本技术一具体实施例中,芯片系统还包括:多个客户操作系统和虚拟机监视器,新任务的标识信息包括新任务的标识(例如新任务的id),或者,新任务的标识和运行新任务的客户操作系统的标识(例如客户操作系统的id),执行若执行任务切换操作,则向所述数字逻辑模块发送新任务的标识信息的一种实施方式,包括:若客户操作系统执行从当前任务切换到新任务的操作,则客户操作系统向数字逻辑模块发送新任务的标识。若虚拟机监视器执行从当前的客户操作系统的任务切换到新客户操作系统的新任务的操作,则虚拟机监视器向所述数字逻辑模块发送新任务的标识和运行新任务的客户操作系统的标识。
38.示例性的,在客户操作系统执行从当前任务切换到新任务的操作的场景下,可以是芯片系统中的客户操作系统预先建立好任务队列,然后按照任务队列中的任务次序,选取出当前需要执行的任务。当客户操作系统当前任务执行结束,需要进入到当前任务的下一个任务(即本技术提及的新任务)时,触发执行任务切换操作。即guest os中任务切换时,guest os会选出下一个要运行的任务(即新任务),然后向数字逻辑模块发送新任务的标识。
39.由于客户操作系统执行的是任务切换操作,并不涉及到客户操作系统的切换,因此数字逻辑模块在已知当前运行的客户操作系统的情况下,只需要知道新任务的标识,即可查找到新任务所需的内存保护单元信息。
40.为了使得上述有关guest os的任务切换场景描述的更为清楚,可以参考如图3示出的任务切换场景示意图。如图3所示,客户操作系统切换执行任务1(task1)的时候,将task1激活,使得task1处于已激活(active)状态,客户操作系统将任务1的任务标识号(identity document,id)发送给数字逻辑模块,数字逻辑模块从内存保护单元区域中即可查找到了task1所需的mpu信息(即图中的e0、e1、e2以及e3)。
41.当guest os本身切换时,hypervisor将下一个运行的guest os的id和guest os要运行的任务id发给数字逻辑模块,由数字逻辑模块在mpu域查找到新任务所需的内存保护单元信息。
42.由于当前的任务切换操作涉及到了guest os和任务的切换,因此数字逻辑模块既需要知道新运行的客户操作系统是哪一个,还需要知道新任务的标识,才可查找到新任务所需的内存保护单元信息。
43.需要说明的是,执行步骤s201的方式还有很多,包括但不限于本技术实施例所提出的内容。例如,还以是芯片系统的软件在发生任务切换时,判断是否有发生guest os切换,如果有发生guest os切换,则将新的guest os id和新的guest os下一个运行的任务id(即新任务的任务id)发送给数字逻辑模块。如果没有发生guest os切换则将下一个运行的任务id发送给数字逻辑模块。
44.s202、数字逻辑模块根据新任务的标识信息,查找到新任务所需的内存保护单元信息,其中新任务所需的内存保护单元信息用于说明客户操作系统执行新任务时内存保护单元中的内存访问权限。
45.具体的,可以预先将新任务的标识信息和存储新任务所需的内存保护单元信息的
mpu区域,在芯片系统处于el2级别时,可以对该特定区域进行读写操作(即具有读写权限)。特定区域同时也被配置为了el1 mpu区域,当芯片系统处于el1时,特定区域只能够被读取,不能够被编写。其中,参阅图1,客户操作系统处于第一异常级别,虚拟机监视器处于第二异常级别,因此虚拟机监视器可以在第二异常级别下对特定区域(即图中的内存保护单元区域)进行读写操作,客户操作系统则可以对特定区域进行只读操作。
53.具体的,虚拟机监视器预先在内存保护单元的特定区域中存储所有客户操作系统可执行的任务所需的mpu信息,同时还一并写入客户操作系统的标识和任务的标识。进而在执行步骤s401时,数字逻辑模块能够根据新任务的标识信息,在内存保护单元中查找到新任务所需的内存保护单元信息。
54.由于特定区域被配置为在el2下具有读写权限,而el1下只有只读权限,因此处于el1的客户操作系统无法对任务所需的mpu信息进行篡改,即在比第二异常级别更低的异常级别时,试图修改mpu的特定区域的内容,就会触发mpu错误,因此提高了mpu信息的数据安全性。相较于现有技术中将mpu信息写入到软件程序的解析得到的方式,将mpu信息预先存储在mpu的特定区域,不但可以加快获取新任务所需的mpu信息的效率,还能够提高mpu信息的安全性。
55.可选地,参阅图4,在本技术一具体实施例中,数字逻辑模块根据所述新任务的标识信息,在内存保护单元的特定区域中查找到新任务所需的内存保护单元信息的一种实施方式,包括:s401、数字逻辑模块根据新任务的标识信息,在内存保护单元的特定区域中查找到与新任务的标识信息对应的存储位置。
56.其中,如前述对mpu的特定区域的介绍可知,所有客户操作系统可执行的任务所需的mpu信息都被预先写入了特定区域中,同时,还可以将mpu信息对应的任务的标识和客户操作系统的标识也一并对应写入到特定区域内,进而在执行步骤s401时,数字逻辑模块即可根据新任务的标识信息,在内存保护单元的特定区域中定位到与新任务的标识信息对应的存储位置。由于客户操作系统的标识和任务的标识与mpu信息之间对应存储,因此根据新任务的标识信息,能够查找到新任务所需的mpu信息具体在mpu的特定区域中的哪一个位置中存储(即与新任务的标识信息对应的存储位置)。
57.示例性的,同一个guest os的mpu信息可以存放在特定区域中的同一个区域中,然后在该区域内依次存放该系统下的各个任务的标识对应的mpu信息。
58.执行步骤s401的过程可以分为两类情况,第一类情况是在客户操作系统执行从当前任务切换到新任务的操作的执行场景下,由于当前客户操作系统没有发生切换,因此数字逻辑模块已经确定出了在mpu的特定区域中存放该客户操作系统下的mpu信息的区域,进而可以直接在该区域中使用新任务的标识进一步定位到与新任务的标识信息对应的存储位置。第二类情况是在虚拟机监视器执行从当前的客户操作系统的任务切换到新客户操作系统的新任务的操作的场景下,由于涉及到了客户操作系统的切换,因此数字逻辑模块需要重新在mpu的特定区域中查找出新客户操作系统存放mpu信息的区域,查找到新客户操作系统存放mpu信息的区域之后,再接着使用新任务的标识从该区域中定位到与新任务的标识信息对应的存储位置。
59.举例说明,如图3所示,在客户操作系统切换任务的场景下,数字逻辑模块根据任
务1的标识,在内存保护单元区域查找到了存放任务1所需的内存保护单元信息的位置。
60.s402、数字逻辑模块从与新任务的标识信息对应的存储位置中获取到新任务所需的内存保护单元信息。
61.与新任务的标识信息对应的存储位置处存放了新任务所需的mpu信息,因此数字逻辑模块可以直接从该存储位置中获取到该mpu信息。需要说明的是,数字逻辑模块获取mpu信息的过程可以理解为是读取、拷贝出mpu信息的过程。即数字逻辑模块获取了mpu信息之后,特定区域内存放的mpu信息也并未被删除掉。
62.参阅图5,下面介绍所有客户操作系统可执行的每一个任务所需的mpu信息的存储过程,该存储过程可以是在执行图2示出的方法之前则预先执行,还可以是在系统初始化启动之后即触发执行。具体的包括以下步骤:s501、判断当前是否处于客户操作系统的初始化阶段。
63.具体的,本技术实施例中可以在客户操作系统的初始化阶段,触发完成对客户操作系统可执行的任务所需的mpu信息的存储流程。因此,需要先判断当前是否处于客户操作系统的初始化阶段,由此来决定是否需要进行对客户操作系统可执行的任务所需的mpu信息的存储。
64.当判断出当前处于客户操作系统的初始化阶段时,则进入到步骤s502步骤,开始执行客户操作系统的mpu信息的存储。当判断出当前不处于客户操作系统的初始化阶段时,则可以返回重复执行步骤s501。
65.可选地,在本技术一具体实施例中,若判断出当前不处于客户操作系统的初始化阶段,则判断是否所有客户操作系统均完成了初始化。若判断出存在有客户操作系统未完成初始化,则返回至步骤s501。若判断出所有客户操作系统均完成了初始化,则也说明了当前所有客户操作系统可执行的任务所需的mpu信息也都完成了存储,因此可以结束存储流程。
66.可选地,图5示出的流程可以由虚拟机监视器执行。
67.s502、若判断出当前处于客户操作系统的初始化阶段、且确定出当前芯片系统处于第二异常级别,则将客户操作系统可执行的每一个任务所需的内存保护单元信息的格式,处理成内存保护单元寄存器的格式。
68.若判断出当前处于客户操作系统的初始化阶段,则说明当前可以触发执行对处于初始化阶段的客户操作系统的mpu信息的存储。然而,若想将mpu信息写入至mpu的特定区域中,还需要当前处于el2级别,由前述对mpu的特定区域的介绍可知,mpu的特定区域在el2级别才具有读写权限。因此,需要在确定出当前芯片系统处于第二异常级别的情况下,才可将该客户操作系统的所有任务所需的mpu信息写入到特定区域中。
69.其中,确认当前芯片是否处于el2的时机本技术实施例不作限制,只需在步骤s503之前执行即可。
70.可选地,在本技术一具体实施例中,执行步骤s501之后,还包括:若判断出当前处于客户操作系统的初始化阶段、且确定出当前芯片系统不处于第二异常级别,则将芯片系统切换至第二异常级别,然后再将客户操作系统可执行的每一个任务所需的内存保护单元信息的格式,处理成内存保护单元寄存器的格式,将处理后的所有任务所需的内存保护单元信息,依次写入至内存保护单元区域中。即将芯片系统切换至
el2级别之后,再执行步骤s502至步骤s503的存储流程。
71.当判断出当前处于客户操作系统的初始化阶段、且确定出当前芯片系统处于第二异常级别,则首先从客户操作系统的软件程序中和获取客户操作系统可执行的每一个任务所需的内存保护单元信息。此时获取到的每一个任务所需的mpu信息的格式还不是可直接存入mpu寄存器的格式,因此需要先处理成内存保护单元寄存器的格式。示例性的,可以将mpu信息按照mpu起始寄存器和结束寄存器的格式生成2个32位(4字节)的条目,然后再执行步骤s503,依次写入到mpu的特定区域中。
72.s503、将处理后的所有任务所需的内存保护单元信息,依次写入至内存保护单元的特定区域中。
73.处理后的所有任务所需的内存保护单元信息都是与mpu寄存器适配的格式,后续在执行下述步骤s203时,数字逻辑模块就可以直接将其写入mpu寄存器中,使得任务切换过程中不需要处理格式转换生成步骤,提高了效率。
74.可选地,在本技术一具体实施例中,执行步骤s503的过程还可以是:除了将处理后的所有任务所需的内存保护单元信息依次写入到特定区域之外,还可以同时将操作系统的标识、任务的标识等任务的标识信息、以及任务所需的mpu信息中的信息条目的数量与mpu信息一同写入到特定区域中。
75.示例性的,依次写入至内存保护单元的特定区域中的过程可以理解为是,依次按照客户操作系统的标识的顺序,将客户操作系统中可执行的每一个任务,按照任务的标识顺序,将任务所需的mpu信息依次写入到mpu的特定区域。其中,将任务所需的mpu信息写入到特定区域时,可以先写入起始地址对应的mpu信息条目再写入结束地址对应的mpu信息条目。以上仅为本技术提出的部分将mpu信息写入mpu的特定区域的示例,依次写入至内存保护单元的特定区域中的实施方式还有很多,本技术实施例对于依次写入至内存保护单元的特定区域中的具体实施方式不作限制。
76.在个别情况下,若在客户操作系统初始化阶段已经结束之后,客户操作系统需要添加新的任务所需的mpu信息,或者是删除原本写入到特定区域的mpu信息,又或者想要修改原本写入到特定区域中的mpu信息时,则可以采用以下方式实现:通过预先配置好的接口接收mpu信息的变更指令,其中mpu信息的变更指令用于说明mpu信息的变更内容。芯片系统通过给接口接收到变更指令后,控制自身处于el2级别,依据变更指令,在mpu的特定区域进行mpu信息的变更,以使得mpu的特定区域中写入经过变更指令指示的变更内容进行变更后的mpu信息。其中,mpu信息的变更内容包括但不限于添加新的任务所需的mpu信息、对原本写入的mpu信息进行修改或者删除等。
77.可选地,在本技术一具体实施例中,特定区域的权限的配置过程可以包括:在芯片系统处于第二异常级别时,将内存保护单元中的特定区域设置为第二异常级别的内存保护单元区域,并将特定区域在第二异常级别时的权限设置为可读写权限、将比第二异常级别更低的级别的权限设置为只读权限。在芯片系统处于第一异常级别时,将内存保护单元中的特定区域设置为第一异常级别的内存保护单元区域,并将特定区域在第一异常级别时的权限设置为只读权限、且将比第一异常级别更低的级别的权限设置为只读权限。
78.具体的,芯片系统处于第二异常级别或第一异常级别的状态都可以由芯片系统进行控制。示例性的,芯片系统可以在检测到系统初始化启动之后,执行控制芯片系统处于第
二异常级别,将内存保护单元中的特定区域设置为第二异常级别的内存保护单元区域。以及执行将特定区域在第二异常级别时的权限设置为可读写权限、将比第二异常级别更低的级别的权限设置为只读权限的步骤。前述提及的两个权限设置的步骤的执行先后顺序本技术实施例不作限制。需要说明的是,在芯片系统初始化启动阶段触发执行特定区域的权限设置仅是其中一种示例,在另一些实施例中,也可以采用别的方式触发对特定区域的权限设置,对特定区域的权限设置只需在执行所有客户操作系统可执行的每一个任务所需的内存保护单元信息的存储过程之前完成即可。
79.经过上述方式对特定区域的权限设置之后,可以看出本技术实施例是将将mpu中的同一块区域(即前述提及的特定区域)配置为了el2 mpu区域和el1 mpu区域,以使得后续往该特定区域中写入mpu信息之后,只有el2级别的虚拟机监视器可以对该特定区域进行读写操作,而比el2更低级别的客户操作系统则只能够读取mpu信息,保障了mpu信息的数据安全性。
80.s203、数字逻辑模块将新任务所需的内存保护单元信息写入至内存保护单元寄存器中。
81.需要说明的是,mpu寄存器可以有很多个,选择哪个mpu寄存器作为写入新任务所需的mpu信息的起始寄存器本技术实施例不作限制。
82.示例性的,数字逻辑模块执行步骤s203的过程可以是,数字逻辑模块依次将新任务所需的mpu信息中的mpu信息条目拷贝到mpu寄存器中。然后在把堆栈中的数据恢复到通用寄存器中,在恢复过程中,mpu的保护作用就能生效。
83.数字逻辑模块完成mpu信息的写入之后,客户操作系统则在执行新任务时从mpu寄存器中读取mpu信息,使用mpu信息提供的内存访问权限,获取到执行新任务所需的数据,完成新任务的执行流程。
84.还需要说明的是,当客户操作系统执行完新任务之后,需要继续切换任务,即重新执行图2示出的流程时,mpu寄存器可以自动将mpu信息清空复位,以便于后续能继续写入新的mpu信息进mpu寄存器。
85.举例说明,如图3所示,客户操作系统(guest os)切换到执行任务1时,数字逻辑模块利用任务1(task1)的任务标识,在内存保护单元区域中查找到了任务1所需的mpu信息,其一共包括有4个mpu信息条目,分别为e0、e1、e2以及e3。数字逻辑模块将任务1的mpu信息依次写入到了mpu寄存器中。当客户操作系统切换到任务2执行时,任务2(task2)的状态就会由睡眠(sleep)状态变为激活(active)状态,此时mpu寄存器中原本写入的task1的mpu信息都会被清空,以便写入task2的mpu信息。
86.为了使得上述实施例描述更为清楚,下面将介绍基于本技术实施例提出的内存保护单元信息的处理方法的一个具体实施例。如图6所示,内存保护单元信息的处理流程可以是:步骤s11芯片系统启动之后,触发步骤s12:芯片系统在第一异常级别(el1)、第二异常级别(el2)级别下设置同一块内存为内存保护单元的特定区域,该特定区域的el2 mpu权限设置为el2可读写,el1和el0只读权限。该特定区域的el1 mpu权限设置为el1只读、el0只读。步骤s13判断是否为客户操作系统的初始化。如果是的话,进入步骤s14,如果不是的话,进入步骤s15。步骤s14判断当前芯片系统是否为el2级别。若判断出当前芯片系统为第二异常级别,如果不是第二异常级别,则将芯片系统切换到第二异常级别,再把客户操作系统中每
个任务中内存保护单元配置信息(即mpu信息),按照内存保护单元起始地址寄存器和结束地址寄存器的格式生成2个32位(4字节)的条目,依次写入到特定区域中。步骤s15判断是否所有客户操作系统初始化完成,如果没有完成,则返回步骤s13。如果完成了,则芯片系统正常运行。步骤s16:当发生了客户操作系统切换之后,根据切换到的客户操作系统的标识号(id)和客户操作系统下一个运行的任务标识号(id),在内存保护单元信息域(即内存保护单元的特定区域)找到任务对应的存储地址,把存储地址中的内存保护单元条目数据,依次复制到内存保护单元寄存器中。步骤s17:当只发生了任务切换,没有发生客户操作系统切换,则依据下一个运行的任务标识号,在内存保护单元的特定区域找到存储地址,取出内存保护单元条目数据,依次复制到内存保护单元寄存器中。步骤s18:如果既未发生任务切换,则芯片系统继续正常运行,返回s16。
87.本发明实施例提供的内存保护单元信息的处理方法,该方法应用于芯片系统,该芯片系统包括数字逻辑模块,本技术的芯片系统在执行任务切换操作时,向数字逻辑模块发送新任务的标识信息。其中,新任务的标识信息至少包括新任务的标识,新任务是任务切换操作所切换到的任务。进而使得数字逻辑模块可根据新任务的标识信息,查找到新任务所需的内存保护单元信息。其中,新任务所需的内存保护单元信息用于说明客户操作系统执行新任务时在内存保护单元中的内存访问权限,然后数字逻辑模块将新任务所需的内存保护单元信息写入至内存保护单元寄存器中,实现让客户操作系统使用内存保护单元信息执行该新任务。由于本技术在将新任务所需的内存保护单元信息写入到内存保护单元寄存器的过程中,主要通过数字逻辑模块实现内存保护单元信息的处理,而数字逻辑模块属于硬件,相较于现有的软件程序的处理流程更为快速,任务切换效率得到了提升。
88.本技术实施例还公开了一种计算机可读介质,其上存储有计算机程序,其中,所述程序被处理器执行时实现如上述中任一所述的内存保护单元信息的处理方法。
89.本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
90.专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
91.对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明
将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
技术特征:
1.一种内存保护单元信息的处理方法,其特征在于,应用于芯片系统,所述芯片系统包括数字逻辑模块,所述内存保护单元信息的处理方法包括:若执行任务切换操作,则向所述数字逻辑模块发送新任务的标识信息;其中,所述新任务的标识信息至少包括所述新任务的标识;所述新任务是所述任务切换操作所切换到的任务;所述数字逻辑模块根据所述新任务的标识信息,查找到新任务所需的内存保护单元信息;其中,所述新任务所需的内存保护单元信息用于说明客户操作系统执行所述新任务时在所述内存保护单元中的内存访问权限;所述数字逻辑模块将所述新任务所需的内存保护单元信息写入至内存保护单元寄存器中。2.根据权利要求1所述的方法,其特征在于,所述芯片系统还包括:多个客户操作系统和虚拟机监视器;所述新任务的标识信息包括新任务的标识,或者,所述新任务的标识和运行所述新任务的客户操作系统的标识;其中,所述若执行任务切换操作,则向所述数字逻辑模块发送新任务的标识信息,包括:若所述客户操作系统执行从当前任务切换到新任务的操作,则所述客户操作系统向所述数字逻辑模块发送新任务的标识;若所述虚拟机监视器执行从当前的客户操作系统的任务切换到新客户操作系统的新任务的操作,则所述虚拟机监视器向所述数字逻辑模块发送所述新任务的标识和运行所述新任务的客户操作系统的标识。3.根据权利要求1所述的方法,其特征在于,所述数字逻辑模块根据所述新任务的标识信息,查找到新任务所需的内存保护单元信息,包括:所述数字逻辑模块根据所述新任务的标识信息,在内存保护单元的特定区域中查找到所述新任务所需的内存保护单元信息;其中,所述特定区域是用于存储所有客户操作系统可执行的每一个任务所需的内存保护单元信息的内存保护单元区域;所述特定区域的权限被配置为在第二异常级别时为可读写权限,在比所述第二异常级别更低的级别时为只读权限;所述客户操作系统处于第一异常级别,虚拟机监视器处于第二异常级别。4.根据权利要求3所述的方法,其特征在于,所述所有客户操作系统可执行的每一个任务所需的内存保护单元信息的存储过程,包括:判断当前是否处于客户操作系统的初始化阶段;若判断出当前处于客户操作系统的初始化阶段、且确定出当前所述芯片系统处于第二异常级别,则将所述客户操作系统可执行的每一个任务所需的内存保护单元信息的格式,处理成内存保护单元寄存器的格式;将处理后的所有任务所需的内存保护单元信息,依次写入至内存保护单元的特定区域中。5.根据权利要求4所述的方法,其特征在于,还包括:若判断出当前不处于所述客户操作系统的初始化阶段,则判断是否所有客户操作系统均完成了初始化;若判断出存在有客户操作系统未完成初始化,则返回至所述判断当前是否处于客户操作系统的初始化阶段的步骤。
6.根据权利要求4所述的方法,其特征在于,所述判断当前是否处于客户操作系统的初始化阶段之后,还包括:若判断出当前处于客户操作系统的初始化阶段、且确定出当前所述芯片系统不处于第二异常级别,则将所述芯片系统切换至第二异常级别;将所述客户操作系统可执行的每一个任务所需的内存保护单元信息的格式,处理成内存保护单元寄存器的格式;将处理后的所有任务所需的内存保护单元信息,依次写入至内存保护单元区域中。7.根据权利要求3所述的方法,其特征在于,所述特定区域的权限的配置过程,包括:在所述芯片系统处于第二异常级别时,将内存保护单元中的特定区域设置为第二异常级别的内存保护单元区域,并将所述特定区域在第二异常级别时的权限设置为可读写权限、将比所述第二异常级别更低的级别的权限设置为只读权限;在所述芯片系统处于第一异常级别时,将所述内存保护单元中的特定区域设置为第一异常级别的内存保护单元区域,并将所述特定区域在第一异常级别时的权限设置为只读权限、且将比所述第一异常级别更低的级别的权限设置为只读权限。8.根据权利要求3所述的方法,其特征在于,所述数字逻辑模块根据所述新任务的标识信息,在内存保护单元的特定区域中查找到所述新任务所需的内存保护单元信息,包括:所述数字逻辑模块根据所述新任务的标识信息,在内存保护单元的特定区域中查找到与所述新任务的标识信息对应的存储位置;所述数字逻辑模块从与所述新任务的标识信息对应的存储位置中获取到所述新任务所需的内存保护单元信息。9.一种内存保护单元信息的处理系统,其特征在于,包括:芯片系统;其中,所述芯片系统包括数字逻辑模块:所述芯片系统用于执行如权利要求1至8任一所述的方法。10.一种计算机可读介质,其特征在于,其上存储有计算机程序,其中,所述程序被处理器执行时实现如权利要求1至8中任一所述的方法。
技术总结
本发明提供一种内存保护单元信息的处理方法、系统以及可读介质,该方法应用于芯片系统,芯片系统包括数字逻辑模块,若执行任务切换操作,则向数字逻辑模块发送新任务的标识信息;其中,新任务的标识信息至少包括新任务的标识;新任务是任务切换操作所切换到的任务;数字逻辑模块根据新任务的标识信息,查找到新任务所需的内存保护单元信息;其中,新任务所需的内存保护单元信息用于说明客户操作系统执行新任务时在内存保护单元中的内存访问权限;数字逻辑模块将新任务所需的内存保护单元信息写入至内存保护单元寄存器中。由于数字逻辑模块是硬件,对内存单元保护信息的处理效率更高,加快了任务切换效率。加快了任务切换效率。加快了任务切换效率。
技术研发人员:马若锋 张天瑞 黄钧
受保护的技术使用者:北京紫光芯能科技有限公司
技术研发日:2023.08.23
技术公布日:2023/9/23
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
航空商城 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/
上一篇:一种软磁合金板收卷系统的制作方法 下一篇:破羊水膜组件的制作方法