专利名称:安全岛中的内存管理方法、装置、芯片、车辆以及介质
专利类型:实用新型专利
专利申请号:CN202211049220.4
专利申请(专利权)人:昆仑芯(北京)科技有限公司
权利人地址:北京市海淀区上地十街10号百度大厦
专利发明(设计)人:胡征犀,王栋宇
专利摘要:本公开提供了一种安全岛中的内存管理方法、装置、芯片、车辆以及介质,涉及自动驾驶技术领域,尤其涉及安全岛技术领域。具体实现方案为:构建第一等级内存映射和第二等级内存映射,将第一等级内存映射划分为安全管理空间和客体空间;将安全管理空间分配给安全监控引擎进行独占访问,并授权安全监控引擎对客体空间的访问权限;将客体空间中的域段分配给虚拟机操作系统进行隔离访问;将第二等级内存映射划分为与域段分别对应的细粒度区域,并将细粒度区域分配给与域段匹配的虚拟机操作系统进行隔离访问。本公开除了能实现传统安全岛的所有功能外,还能提供一个安全的实时虚拟化平台,可以宿主不同安全等级的虚拟机操作系统,构建混合关键系统。
主权利要求:
1.一种安全岛中的内存管理方法,由安全监控引擎执行,安全岛中包括安装安全监控引擎的第一等级特权级别运行环境,和安装至少一个虚拟机操作系统的第二等级特权级别运行环境,包括:构建第一等级内存映射和第二等级内存映射,将第一等级内存映射划分为安全管理空间和客体空间,并将客体空间划分为至少一个域段;
将安全管理空间分配给安全监控引擎进行独占访问,并授权安全监控引擎对客体空间的访问权限;
将客体空间中的至少一个域段分配给至少一个虚拟机操作系统进行隔离访问;
将第二等级内存映射划分为与至少一个域段分别对应的细粒度区域,并将细粒度区域分配给与至少一个域段匹配的虚拟机操作系统进行隔离访问。
2.根据权利要求1所述的方法,还包括:
在执行安全监控引擎的引擎初始化的过程中,读取内存配置描述文件;
按照所述内存配置描述文件中的内存配置信息,执行所述内存管理方法。
3.根据权利要求1所述的方法,还包括:
响应于对目标虚拟机操作系统的新增指令,在客体空间中划分出新增域段,并将新增域段分配给目标虚拟机操作系统;
在第二等级内存映射中划分出与新增域段对应的新增细粒度区域,并将新增细粒度区域分配给目标虚拟机操作系统。
4.根据权利要求1所述的方法,还包括:
响应于与第一虚拟机操作系统和第二虚拟机操作系统对应的内存切换指令,在第二等级内存映射中获取与第一虚拟机操作系统对应的第一细粒度区域和与第二虚拟机操作系统对应的第二细粒度区域;
将第一细粒度区域中的内存配置信息切换为第二虚拟机操作系统的内存配置信息,并将第二细粒度区域中的内存配置信息切换为第一虚拟机操作系统的内存配置信息;
在客体空间中,去除第一虚拟机操作系统与第一域段间的分配关系,并去除第二虚拟机操作系统与第二域段间的分配关系;
将第一域段重新分配给第二虚拟机操作系统,并将第二域段重新分配给第一虚拟机操作系统。
5.根据权利要求1所述的方法,还包括:
建立多个内存抽象域,其中,每个内存抽象域中包括多个内存分区,且每个内存抽象域具有设定的域安全等级;
响应于在安全监控引擎或者虚拟机操作系统中安装新软件,获取与新软件匹配的目标软件安全等级和至少一个新软件适配线程;
将目标软件安全等级与多个内存抽象域的域安全等级进行匹配,获取至少一个匹配成功域;
将每个新软件适配线程分别加入至少一个匹配成功域中,其中,每个新软件适配线程仅能访问该新软件适配线程所加入的匹配成功域中的内存分区。
6.根据权利要求5所述的方法,其中,将目标软件安全等级与多个内存抽象域的域安全等级进行匹配,获取至少一个匹配成功域,包括:将目标软件安全等级与多个内存抽象域的域安全等级进行匹配;
获取域安全等级低于或者等于目标软件安全等级的全部内存抽象域,确定为匹配成功域。
7.根据权利要求5所述的方法,还包括:
响应于对目标软件中目标线程的运行调度指令,获取目标线程所加入的至少一个目标内存抽象域;
获取至少一个目标内存抽象域中包括的全部目标内存分区;
将全部目标内存分区设置为对目标线程的可访问状态,并将其他内存分区设置为对目标线程的不可访问状态。
8.根据权利要求7所述的方法,在将每个新软件适配线程分别加入至少一个匹配成功域中之后,还包括:规划每个新软件适配线程所加入的至少一个匹配成功域中每个内存分区对该新软件适配线程的读写操作的允许状态,生成与每个新软件适配线程分别对应的规划信息;
在将全部目标内存分区设置为对目标线程的可访问状态之后,还包括:按照与目标线程对应的规划信息,分别设置每个目标内存分区对所述目标线程的读写操作的允许状态。
9.根据权利要求7所述的方法,还包括:
响应于目标线程对不可访问状态的目标内存分区的异常访问,执行与异常访问匹配的异常处理策略,以进行异常保护。
10.根据权利要求1‑9任一项所述的方法,其中,安全岛中所使用的处理芯片为ARMv8‑R芯片。
11.一种安全岛中的内存管理装置,安全岛中包括安装安全监控引擎的第一等级特权级别运行环境,和安装至少一个虚拟机操作系统的第二等级特权级别运行环境,包括:内存空间划分模块,被配置为构建第一等级内存映射和第二等级内存映射,将第一等级内存映射划分为安全管理空间和客体空间,并将客体空间划分为至少一个域段;
第一访问权限分配模块,被配置为将安全管理空间分配给安全监控引擎进行独占访问,并授权安全监控引擎对客体空间的访问权限;
第二访问权限分配模块,被配置为将客体空间中的至少一个域段分配给至少一个虚拟机操作系统进行隔离访问;
细粒度区域分配模块,被配置为将第二等级内存映射划分为与至少一个域段分别对应的细粒度区域,并将细粒度区域分配给与至少一个域段匹配的虚拟机操作系统进行隔离访问。
12.根据权利要求11所述的装置,还包括细粒度区域获取模块、内存配置信息切换模块、分配关系删除模块以及域段分配模块,其中,细粒度区域获取模块,被配置为响应于与第一虚拟机操作系统和第二虚拟机操作系统对应的内存切换指令,在第二等级内存映射中获取与第一虚拟机操作系统对应的第一细粒度区域和与第二虚拟机操作系统对应的第二细粒度区域;
内存配置信息切换模块,被配置为将第一细粒度区域中的内存配置信息切换为第二虚拟机操作系统的内存配置信息,并将第二细粒度区域中的内存配置信息切换为第一虚拟机操作系统的内存配置信息;
分配关系删除模块,被配置为在客体空间中,去除第一虚拟机操作系统与第一域段间的分配关系,并去除第二虚拟机操作系统与第二域段间的分配关系;
域段分配模块,被配置为将第一域段重新分配给第二虚拟机操作系统,并将第二域段重新分配给第一虚拟机操作系统。
13.根据权利要求11所述的装置,还包括内存抽象域建立模块、新软件匹配数据获取模块、匹配成功域获取模块以及线程加入模块,其中,内存抽象域建立模块,被配置为建立多个内存抽象域,其中,每个内存抽象域中包括多个内存分区,且每个内存抽象域具有设定的域安全等级;
新软件匹配数据获取模块,被配置为响应于在安全监控引擎或者虚拟机操作系统中安装新软件,获取与新软件匹配的目标软件安全等级和至少一个新软件适配线程;
匹配成功域获取模块,被配置为将目标软件安全等级与多个内存抽象域的域安全等级进行匹配,获取至少一个匹配成功域;
线程加入模块,被配置为将每个新软件适配线程分别加入至少一个匹配成功域中,其中,每个新软件适配线程仅能访问该新软件适配线程所加入匹配成功域中的内存分区。
14.根据权利要求13所述的装置,所述匹配成功域获取模块包括等级匹配单元以及匹配成功域确定单元,其中,等级匹配单元,被配置为将目标软件安全等级与多个内存抽象域的域安全等级进行匹配;
匹配成功域确定单元,被配置为获取域安全等级低于或者等于目标软件安全等级的全部内存抽象域,确定为匹配成功域。
15.根据权利要求11所述的装置,还包括异常保护模块,异常保护模块被配置为响应于目标线程对不可访问状态的目标内存分区的异常访问,执行与异常访问匹配的异常处理策略,以进行异常保护。
16.一种自动驾驶芯片,包括安全岛,所述安全岛用于实现如权利要求1‑10任一项所述的安全岛中的内存管理方法;
其中,所述安全岛的第二等级特权级别运行环境中,安装有多个不同安全等级的实时操作系统。
17.一种自动驾驶车辆,包括如权利要求16所述的自动驾驶芯片。
18.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使计算机执行根据权利要求1‑10中任一项所述的安全岛中的内存管理方法。 说明书 : 安全岛中的内存管理方法、装置、芯片、车辆以及介质技术领域[0001] 本公开涉及自动驾驶技术领域,尤其涉及安全岛技术领域,具体涉及一种安全岛中的内存管理方法、装置、芯片、车辆以及介质。背景技术[0002] 传统的自动驾驶系统的安全岛设计主要使用SOC(SystemOnaChip,片上系统)内置的或者外置的低端MCU(MicrocontrollerUnit,微控制单元)来实现,只能提供较简单的Safety(安全)监控的功能,同时,传统的汽车自动驾驶软件设计中,将类似安全监控,安全决策,车辆控制等功能的软件分别放置于多个不同的安全处理器及安全操作系统中实现,这对下一代智能汽车软件的快速迭代及安全性都带来了极大的挑战。[0003] 也即,目前的安全岛设计只能提供较简单的Safety监控的功能,硬件资源受限,软件迭代也较为困难,很难适应快速发展的L4/L5自动驾驶需求。发明内容[0004] 本公开提供了一种安全岛中的内存管理方法、装置、芯片、车辆以及介质。[0005] 根据本公开的一方面,提供了一种安全岛中的内存管理方法,由安全监控引擎执行,安全岛中包括安装安全监控引擎的第一等级特权级别运行环境,和安装至少一个虚拟机操纵系统的第二等级特权级别运行环境,包括:[0006] 构建第一等级内存映射和第二等级内存映射,将第一等级内存映射划分为安全管理空间和客体空间,并将客体空间划分为至少一个域段;[0007] 将安全管理空间分配给安全监控引擎进行独占访问,并授权安全监控引擎对客体空间的访问权限;[0008] 将客体空间中的至少一个域段分配给至少一个虚拟机操作系统进行隔离访问;[0009] 将第二等级内存映射划分为与至少一个域段分别对应的细粒度区域,并将细粒度区域分配给与至少一个域段匹配的虚拟机操作系统进行隔离访问。[0010] 根据本公开的另一方面,提供了一种安全岛中的内存管理装置,配置于安全监控引擎,安全岛中包括安装安全监控引擎的第一等级特权级别运行环境,和安装至少一个虚拟机操纵系统的第二等级特权级别运行环境,包括:[0011] 内存空间划分模块,被配置为构建第一等级内存映射和第二等级内存映射,将第一等级内存映射划分为安全管理空间和客体空间,并将客体空间划分为至少一个域段;[0012] 第一访问权限分配模块,被配置为将安全管理空间分配给安全监控引擎进行独占访问,并授权安全监控引擎对客体空间的访问权限;[0013] 第二访问权限分配模块,被配置为将客体空间中的至少一个域段分配给至少一个虚拟机操作系统进行隔离访问;[0014] 细粒度区域分配模块,被配置为将第二等级内存映射划分为与至少一个域段分别对应的细粒度区域,并将细粒度区域分配给与至少一个域段匹配的虚拟机操作系统进行隔离访问。[0015] 根据本公开的另一方面,提供了一种自动驾驶芯片,包括安全岛,安全岛用于实现如本公开任一实施例中的安全岛中的内存管理方法;[0016] 其中,安全岛的第二等级特权级别运行环境中,安装有多个不同安全等级的实时操作系统。[0017] 一种自动驾驶车辆,包括本公开任一实施例中的自动驾驶芯片。[0018] 根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,计算机指令用于使计算机执行本公开任一实施例的安全岛中的内存管理方法。[0019] 本公开实施例的技术方案除了能实现传统安全岛的所有功能外,还能提供一个安全的实时虚拟化平台,可以宿主不同安全等级的虚拟机操作系统,构建混合关键系统。[0020] 应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。附图说明[0021] 附图用于更好地理解本方案,不构成对本公开的限定。其中:[0022] 图1是本公开实施例提供的一种安全岛中的内存管理方法的流程图;[0023] 图2是本公开实施例提供的另一种安全岛中的内存管理方法的流程图;[0024] 图3是根据本公开实施例提供的一种ARMv8‑R芯片在汽车领域的应用示意图;[0025] 图4是本公开实施例提供的一种自动驾驶片上芯片的安全岛的结构示意图;[0026] 图5是本公开实施例提供的另一种自动驾驶片上芯片的安全岛的结构示意图;[0027] 图6是本公开实施例提供的一种内存隔离环境下的内存保护示意图;[0028] 图7是本公开实施例提供的一种内存保护策略示意图;[0029] 图8是本公开实施例提供的一种两线程内存保护隔离的示意图;[0030] 图9是本公开实施例提供的一种安全岛中的内存管理装置的示意图;[0031] 图10示出了可以用来实施本公开的实施例的示例自动驾驶芯片的示意性框图。具体实施方式[0032] 以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。[0033] 在一个示例中,图1是本公开实施例提供的一种安全岛中的内存管理方法的流程图,本实施例可适用于安全岛的内存隔离访问管理的情况,该方法可以由安全监控引擎来执行,安全监控引擎可以配置在自动驾驶芯片中。运行安全监控引擎的安全岛中可以配置两种不同级别的运行环境,一种为安装安全监控引擎的第一等级特权级别运行环境,另一种为安装至少一个虚拟机操作系统的第二等级特权级别运行环境。相应的,如图1所示,该方法包括如下操作:[0034] 步骤110、构建第一等级内存映射和第二等级内存映射,将第一等级内存映射划分为安全管理空间和客体空间,并将客体空间划分为至少一个域段。[0035] 其中,第一等级内存映射与第二等级内存映射可以是两个不同级别的内存映射。第一等级内存映射可以是在第一等级特权级别运行环境下的内存映射。第二等级内存映射可以是在第二等级特权级别运行环境下的内存映射。第一等级特权级别运行环境可以是安装安全监控引擎的运行环境。第二等级特权级别运行环境可以是安装虚拟机操作系统的运行环境。第一等级特权级别运行环境的等级高于第二等级特权级别运行环境。[0036] 安全监控引擎可以是具备安全监控以及空间隔离访问功能的引擎。安全管理空间可以是第一等级特权级别运行环境下,仅能被安全监控引擎访问的空间。客体空间可以是第一等级特权级别运行环境下,能够被安全监控引擎以及虚拟机操作系统访问的空间。[0037] 在本公开实施例中,可以基于安全岛的第一等级特权级别运行环境以及第二等级特权级别运行环境,分别建立第一等级内存映射和第二等级内存映射,进而将第一等级内存映射划分为两个空间,即安全管理空间以及客体空间,进而根据安全岛中使用第二等级特权级别运行环境的虚拟机操作系统的数量,将客体空间划分为至少一个域段。[0038] 可选的,假设安全岛中使用第二等级特权级别运行环境的虚拟机操作系统的数量为n,可以将客体空间划分为至少n个域段。[0039] 步骤120、将安全管理空间分配给安全监控引擎进行独占访问,并授权安全监控引擎对客体空间的访问权限。[0040] 在本公开实施例中,可以通过安全监控引擎对安全管理空间进行独占访问,即安全岛中的虚拟机操作系统无法对安全管理空间进行访问,并授权安全监控引擎对客体空间的访问权限,从而使安全监控引擎具备对安全管理空间以及客体空间的访问权限。[0041] 步骤130、将客体空间中的至少一个域段分配给至少一个虚拟机操作系统进行隔离访问。[0042] 在本公开实施例中,可以在客体空间中为每个虚拟机操作系统分配对应的域段,并且为每个虚拟机操作系统分配对客体空间中相应域段的访问权限,使每个虚拟机操作系统仅对分配的客体空间中的相应域段进行访问。[0043] 示例性的,假设将客体空间中的域段1分配给虚拟机操作系统a,将客体空间中的域段2分配给虚拟机操作系统b,并将客体空间中的域段3分配给虚拟机操作系统c,而虚拟机操作系统对客体空间域段进行隔离访问,可以理解为虚拟机操作系统a仅能对域段1进行访问,虚拟机操作系统b仅能对域段2进行访问,虚拟机操作系统c仅能对域段3进行访问。[0044] 步骤140、将第二等级内存映射划分为与至少一个域段分别对应的细粒度区域,并将细粒度区域分配给与至少一个域段匹配的虚拟机操作系统进行隔离访问。[0045] 其中,细粒度区域可以是第二等级内存映射中的内存区域,用于存储虚拟机操作系统所需数据。[0046] 在本公开实施例中,可以根据安全岛中使用第二等级特权级别运行环境的虚拟机操作系统的数量,将第二等级内存映射划分为与客体空间各域段分别对应的细粒度区域,进而将各细粒度区域的访问权限分配给与各域段匹配的虚拟机操作系统,以使各虚拟机操作系统仅能够访问与相应域段匹配的细粒度区域,实现虚拟机操作系统对细粒度区域的隔离访问。[0047] 如前所述,若客体空间划分为3个域段(域段1、域段2以及域段3),可以将第二等级内存映射划分为3个细粒度区域(细粒度区域A、细粒度区域B以及细粒度区域C),假设域段1与细粒度区域A对应、域段2与细粒度区域B对应,并且域段3与细粒度区域C对应。进一步,将细粒度区域A的访问权限仅分配给与域段1匹配的虚拟机操作系统a,将粒度区域B的访问权限仅分配给与域段2匹配的虚拟机操作系统b,并将粒度区域C的访问权限仅分配给与域段3匹配的虚拟机操作系统c,实现虚拟机操作系统对相应细粒度区域的隔离访问。[0048] 本公开实施例的技术方案,通过安全监控引擎构建第一等级内存映射和第二等级内存映射,将第一等级内存映射划分为安全管理空间和客体空间,并将客体空间划分为至少一个域段,从而将安全管理空间分配给安全监控引擎进行独占访问,并授权安全监控引擎对客体空间的访问权限,进而将客体空间中的至少一个域段分配给至少一个虚拟机操作系统进行隔离访问,并将第二等级内存映射划分为与至少一个域段分别对应的细粒度区域,并将细粒度区域分配给与至少一个域段匹配的虚拟机操作系统进行隔离访问。在本方案中,安全岛为安全监控引擎以及虚拟机操作系统分别安装了两个不同级别的运行环境,并通过对安全监控引擎的访问权限,以及虚拟机操作系统的访问权限的隔离设置,在保证安全的基础上,可支持自动驾驶中多种不同安全要求的应用场景,解决了现有技术中安全岛硬件资源受限,软件迭代也较为困难以及无法满足自动驾驶需求的问题,除了能实现传统安全岛的所有功能外,还能提供一个安全的实时虚拟化平台,可以宿主不同安全等级的虚拟机操作系统,构建混合关键系统。[0049] 在一个示例中,图2是本公开实施例提供的另一种安全岛中的内存管理方法的流程图,本实施例给出了一种可选的实施方式。相应的,如图2所示,该方法包括如下操作:[0050] 步骤210、构建第一等级内存映射和第二等级内存映射,将第一等级内存映射划分为安全管理空间和客体空间,并将客体空间划分为至少一个域段。[0051] 步骤220、将安全管理空间分配给安全监控引擎进行独占访问,并授权安全监控引擎对客体空间的访问权限。[0052] 步骤230、将客体空间中的至少一个域段分配给至少一个虚拟机操作系统进行隔离访问。[0053] 步骤240、将第二等级内存映射划分为与至少一个域段分别对应的细粒度区域,并将细粒度区域分配给与至少一个域段匹配的虚拟机操作系统进行隔离访问。[0054] 步骤250、响应于对目标虚拟机操作系统的新增指令,在客体空间中划分出新增域段,并将新增域段分配给目标虚拟机操作系统。[0055] 其中,目标虚拟机操作系统可以是安全岛中新增的虚拟机操作系统。新增域段可以是在客体空间中为目标虚拟机操作系统分配的域段。[0056] 在本公开实施例中,当安全监控引擎接收到对目标虚拟机操作系统的新增指令之后,可以在第二等级特权级别运行环境下安装目标虚拟机操作系统,并由安全监控引擎在客体空间中划分出新增域段,进而将新增域段的访问权限分配给目标虚拟机操作系统。[0057] 步骤260、在第二等级内存映射中划分出与新增域段对应的新增细粒度区域,并将新增细粒度区域分配给目标虚拟机操作系统。[0058] 其中,新增细粒度区域可以是第二等级内存映射中,存储目标虚拟机操作系统所需数据的内存空间。[0059] 在本公开实施例中,安全监控引擎在将新增域段分配给目标虚拟机操作系统之后,需要进一步在第二等级内存映射中划分出新增细粒度区域,划分的新增细粒度区域与新增域段具有对应关系,从而将与新增域段对应的新增细粒度区域的访问权限分配给目标虚拟机操作系统,实现目标虚拟机操作系统对新增细粒度区域的隔离访问,不仅实现新的虚拟机操作系统与对应新增域段的增加,还可以使新增虚拟机操作系统对新增域段对应的新增细粒度区域进行隔离访问,避免其他虚拟机操作系统对访问新增域段以及新增细粒度区域,保证数据访问的安全性。[0060] 在本公开的一个可选实施例中,安全岛中的内存管理办法,还可以包括:在执行安全监控引擎的引擎初始化的过程中,读取内存配置描述文件;按照内存配置描述文件中的内存配置信息,执行内存管理方法。[0061] 其中,内存配置描述文件可以是对安全监控引擎进行内存配置的文件。内存配置信息可以是内存配置描述文件中与内存配置相关的数据。[0062] 在本公开实施例中,安全监控引擎在构建两级别内存映射之前,可以先进行引擎初始化,在执行安全监控引擎的引擎初始化的过程中,需要读取内存配置描述文件,进而对内存配置描述文件进行解析,得到存配置描述文件中的内存配置信息,从而按照内存配置信息,执行内存管理方法,实现对安全管理空间、客体空间以及细粒度区域访问权限的配置,为分区数据配置提供实现方式。[0063] 在本公开的一个可选实施例中,安全岛中的内存管理办法,还可以包括:响应于与第一虚拟机操作系统和第二虚拟机操作系统对应的内存切换指令,在第二等级内存映射中获取与第一虚拟机操作系统对应的第一细粒度区域和与第二虚拟机操作系统对应的第二细粒度区域;将第一细粒度区域中的内存配置信息切换为第二虚拟机操作系统的内存配置信息,并将第二细粒度区域中的内存配置信息切换为第一虚拟机操作系统的内存配置信息;在客体空间中,去除第一虚拟机操作系统与第一域段间的分配关系,并去除第二虚拟机操作系统与第二域段间的分配关系;将第一域段重新分配给第二虚拟机操作系统,并将第二域段重新分配给第一虚拟机操作系统。[0064] 其中,第一虚拟机操作系统与第二虚拟机操作系统为安全岛中的两个虚拟机操作系统。第一虚拟机操作系统内存空间中的数据,需要与第二虚拟机操作系统内存空间中的数据进行切换。内存切换指令可以用于将不同内存空间中的数据进行切换。第一细粒度区域可以是为第一虚拟机操作系统分配的细粒度区域。第二细粒度区域可以是为第二虚拟机操作系统分配的细粒度区域。第一域段可以是与第一虚拟机操作系统对应的客体空间中的域段。第二域段可以是与第二虚拟机操作系统对应的客体空间中的域段。[0065] 在本公开实施例中,安全监控引擎接收到第一虚拟机操作系统和第二虚拟机操作系统对应的内存切换指令之后,可以对内存切换指令进行解析,获取第二等级内存映射中与第一虚拟机操作系统对应的第一细粒度区域和与第二虚拟机操作系统对应的第二细粒度区域,并根据内存配置描述文件,确定第一细粒度区域的内存配置信息,以及第二细粒度区域的内存配置信息,进而将第一细粒度区域中的内存配置信息切换为第二虚拟机操作系统的内存配置信息,并将第二细粒度区域中的内存配置信息切换为第一虚拟机操作系统的内存配置信息。在完成第一虚拟机操作系统和第二虚拟机操作系统的细粒度区域的内存切换之后,删除客体空间中第一虚拟机操作系统与第一域段间的分配关系,以及第二虚拟机操作系统与第二域段间的分配关系,进一步将第一域段重新分配给第二虚拟机操作系统,并将第二域段重新分配给第一虚拟机操作系统,实现不同虚拟机操作系统对应内存空间的灵活切换。[0066] 在本公开的一个可选实施例中,安全岛中的内存管理办法,还可以包括:建立多个内存抽象域,其中,每个内存抽象域中可以包括多个内存分区,且每个内存抽象域具有设定的域安全等级;响应于在安全监控引擎或者虚拟机操作系统中安装新软件,获取与新软件匹配的目标软件安全等级和至少一个新软件适配线程;将目标软件安全等级与多个内存抽象域的域安全等级进行匹配,获取至少一个匹配成功域;将每个新软件适配线程分别加入至少一个匹配成功域中,其中,每个新软件适配线程仅能访问该新软件适配线程所加入的匹配成功域中的内存分区。[0067] 其中,内存抽象域可以是由一组内存分区构成的域。内存分区可以是安全岛的内存保护单元中包含的最小内存单元。内存分区由内存的首尾地址、内存大小以及内存访问属性构成。域安全等级可以是为内存抽象域设置的安全等级。可选的,相同域安全等级的内存抽象域中能够包含一个或者多个相同内存分区。目标软件安全等级可以是安全监控引擎或者虚拟机操作系统中安装新软件的安全等级。新软件适配线程可以是与安全监控引擎或者虚拟机操作系统中安装新软件适配的线程。匹配成功域可以是与目标软件安全等级匹配成功的内存抽象域。[0068] 在本公开实施例中,可以按照线程对内存分区进行分组,建立多个内存抽象域,使得每个内存抽象域中可以包括多个内存分区,进而为每个内存抽象域设置域安全等级。当检测到在安全监控引擎或者虚拟机操作系统中安装新软件时,对在安全监控引擎或者虚拟机操作系统中安装新软件进行响应,确定安装的新软件的目标软件安全等级,并获取安装新软件的至少一个新软件适配线程,以及各内存抽象域的域安全等级,从而将目标软件安全等级与多个内存抽象域的域安全等级进行匹配,确定与目标软件安全等级匹配成功的域安全等级,并根据匹配成功的域安全等级以及筛选策略,确定至少一个匹配成功域,进一步将每个新软件适配线程分别加入至少一个匹配成功域中,以使每个新软件适配线程仅能访问所加入的匹配成功域中的内存分区,实现线程的访问隔离,减少软件线程访问未授权的内存抽象域的情况出现,降低安全岛数据访问异常。[0069] 可选的,筛选策略可以包括以随机选择方式在与目标软件安全等级匹配的域安全等级对应的至少一个内存抽象域中选择匹配成功域,或者以人工指定的方式在与目标软件安全等级匹配的域安全等级对应的至少一个内存抽象域中指定匹配成功域,还可以根据与目标软件安全等级匹配的域安全等级对应的至少一个内存抽象域的内存分区的占用情况,确定成功匹配域。[0070] 在本公开的一个可选实施例中,将目标软件安全等级与多个内存抽象域的域安全等级进行匹配,获取至少一个匹配成功域,可以包括:将目标软件安全等级与多个内存抽象域的域安全等级进行匹配;获取域安全等级低于或者等于目标软件安全等级的全部内存抽象域,确定为匹配成功域。[0071] 在本公开实施例中,可以将目标软件安全等级与多个内存抽象域的域安全等级进行匹配,从而确定域安全等级低于或者等于目标软件安全等级的全部内存抽象域,并将域安全等级低于或者等于目标软件安全等级的全部内存抽象域,作为匹配成功域,从而实现按照目标软件安全等级,为新软件适配线程分配匹配成功域,避免新软件适配线程对域安全等级高于自身目标软件安全等级的内存抽象域进行访问。[0072] 在本公开的一个可选实施例中,安全岛中的内存管理办法,还可以包括:响应于对目标软件中目标线程的运行调度指令,获取目标线程所加入的至少一个目标内存抽象域;获取至少一个目标内存抽象域中包括的全部目标内存分区;将全部目标内存分区设置为对目标线程的可访问状态,并将其他内存分区设置为对目标线程的不可访问状态。[0073] 其中,目标软件可以是安全监控引擎或者虚拟机操作系统中的软件。目标线程可以是目标软件运行所需开启的线程。运行调度指令可以运行调度软件线程的指令。目标内存抽象域可以是与目标软件的目标软件安全等级匹配的匹配成功域。目标内存分区可以是目标内存抽象域包括的内存分区。[0074] 在本公开实施例中,安全监控引擎接收到目标软件中目标线程的运行调度指令之后,可以先获取目标线程所加入的至少一个目标内存抽象域,进而确定至少一个目标内存抽象域中包括的全部目标内存分区,从而将全部目标内存抽象域中包括的全部目标内存分区设置为对目标线程的可访问状态,并将其他内存抽象域中的内存分区设置为对目标线程的不可访问状态,实现不同内存分区对目标线程访问状态的区别配置,避免目标线程对非目标内存分区的访问,提升数据访问安全级别。[0075] 在本公开的一个可选实施例中,在将每个新软件适配线程分别加入至少一个匹配成功域中之后,可以包括:规划每个新软件适配线程所加入的至少一个匹配成功域中每个内存分区对该新软件适配线程的读写操作的允许状态,生成与每个新软件适配线程分别对应的规划信息;在将全部目标内存分区设置为对目标线程的可访问状态之后,还可以包括:按照与目标线程对应的规划信息,分别设置每个目标内存分区对目标线程的读写操作的允许状态。[0076] 其中,规划信息可以用于在各内存分区对各新软件适配线程进行读写权限的配置。[0077] 在本公开实施例中,可以对每个新软件适配线程所分别加入的至少一个匹配成功域中,每个内存分区对该新软件适配线程的读写操作的允许状态进行规划,生成与每个新软件适配线程分别对应的规划信息,进而在将全部目标内存分区设置为对目标线程的可访问状态之后,按照目标线程对应的规划信息,确定与目标线程匹配的各目标内存分区,进而分别设置每个目标内存分区对目标线程的读写操作的允许状态,实现目标内存分区对目标线程读写操作的精准控制,防止错误读写操作的发生。[0078] 在本公开的一个可选实施例中,安全岛中的内存管理办法,还可以包括:响应于目标线程对不可访问状态的目标内存分区的异常访问,执行与异常访问匹配的异常处理策略,以进行异常保护。[0079] 其中,异常处理策略可以是对目标线程对不可访问状态进行异常访问时的处理策略。可选的,异常处理策略包括故障工作时的备份安全策略。[0080] 在本公开实施例中,如果安全监控引擎的监控器监测到目标线程对不可访问状态的目标内存分区,即可确认目标内存分区存在异常访问,安全监控引擎对目标内存分区的异常访问进行响应,确定与异常访问匹配的异常处理策略,进而通过执行与异常访问匹配的异常处理策略实现异常保护,实现安全岛的Fault(故障)监控功能。[0081] 在本公开的一个可选实施例中,安全岛中所使用的处理芯片可以为ARMv8‑R芯片,给出了支持安装两级别特权运行环境的芯片示例。[0082] ARMv8‑R芯片是ARM推出的实时V8系列产品,其最大的亮点是支持EL2(一种异常级别)的实时虚拟化,利用ARMv8‑R芯片实实时场景下的本地安装并直接在物理主机上运行Hypervisor(一种系统软件,管理虚拟机之间的隔离免受干扰和受控通信);两级的MPU(MemoryProtectionUnit,内存保护单元)支持SafeTask和OS(OperatingSystem,操作系统)的隔离;Fast及Deterministic上下文切换,即线程切换。Hypervisor与监控器可以管理OS的调度和CPU(CentralProcessingUnit,中央处理器)绑定。[0083] ARMv8‑R芯片在汽车领域的应用可参见图3,通过隔离不同Vendor/不同汽车安全等级的运行代码,保证系统的性能和安全性。[0084] 本公开实施例的技术方案,通过安全监控引擎构建第一等级内存映射和第二等级内存映射,将第一等级内存映射划分为安全管理空间和客体空间,并将客体空间划分为至少一个域段,从而将安全管理空间分配给安全监控引擎进行独占访问,并授权安全监控引擎对客体空间的访问权限,进而将客体空间中的至少一个域段分配给至少一个虚拟机操作系统进行隔离访问,并将第二等级内存映射划分为与至少一个域段分别对应的细粒度区域,并将细粒度区域分配给与至少一个域段匹配的虚拟机操作系统进行隔离访问,进一步响应于对目标虚拟机操作系统的新增指令,在客体空间中划分出新增域段,并将新增域段分配给目标虚拟机操作系统,在第二等级内存映射中划分出与新增域段对应的新增细粒度区域,并将新增细粒度区域分配给目标虚拟机操作系统。在本方案中,安全岛为安全监控引擎以及虚拟机操作系统分别安装了两个不同级别的运行环境,并通过对安全监控引擎的访问权限,以及虚拟机操作系统的访问权限的隔离设置,在保证安全的基础上,可支持自动驾驶中多种不同安全要求的应用场景,解决了现有技术中安全岛硬件资源受限,软件迭代也较为困难以及无法满足自动驾驶需求的问题,除了能实现传统安全岛的所有功能外,还能提供一个安全的实时虚拟化平台,可以宿主不同安全等级的虚拟机操作系统,构建混合关键系统。[0085] 图4是本公开实施例提供的一种自动驾驶片上芯片的安全岛的结构示意图,如图4所示,安全岛中使用的ARMv8‑R芯片,安全监控引擎可以支持运行多个RTOS(RealTimeOperatingSystem,实时操作系统)。安全监控引擎可以对虚拟机1的RTOS以及虚拟机2的AUTOSAROS(也可以称为汽车开放系统框架操作系统)进行监控,还可以对ARMv8‑R芯片进行监控,即保证OS之间隔离,同时通过监控器实时监控系统和OS的故障。其中,通过安全监控引擎属于高异常级别,虚拟机操作系统1以及虚拟机操作系统2属于低异常级别。[0086] 图5是本公开实施例提供的另一种自动驾驶片上芯片的安全岛的结构示意图,如图5所示,安全岛中使用的ARMv8‑R芯片,安全监控引擎可以支持运行单个RTOS,此时安全监控引擎作为系统最高特权的监控层,实时监控ARMv8‑R芯片以及OS的错误。[0087] 在关键安全领域的内存虚拟化和隔离一般都不会使用ARMv8‑A系列的MMU(MemoryManagementUnit,内存管理单元)来实现,因为MMU的TLB(translationlookasidebuffer,转译后备缓冲区)在cachemiss及Tablewalk会增加内存访问的延迟,引入内存访问的不确定性。因此在这样场景的系统中,一般会使用MPU来在内存的保护。MPU的典型的优势是:可以提供确定性的地址翻译,物理地址和虚拟地址是1:1的平面映射;没有TLB和Tablewalk,在保证确定性的基础上,大大缩短了地址转换延时;通过对内存属性的配置,保护内存区域。[0088] 目前的安全岛设计中,大多采用ARM低端的Cortex‑R/M系列MCU来实现,MPU在这些系列的MCU中已经有比较好的应用,通常RTOS通过配置一级MPU模块,可以为OS内核和不同应用构建不同的内存隔离保护区域。ARMv8‑R增加了虚拟化的支持,提供了两级MPU,但是软件上如何来支持多个VM的内存虚拟化及隔离,存在以下的挑战:每一级的MPU的区域通常是有限的,比如32个;如何规划内存的map,同时减少碎片;内存的安全权限如何设置,如何保证虚拟机之间的内存隔离;确定性的静态分配。[0089] 基于安全岛设计所面临的挑战,对ARMv8‑R芯片进行两层内存隔离,首先进行抽象定义:安全管理空间表示为EL2_HYP_ZONE、客体空间表示为EL2_GUEST_ZONE,EL2_HYP_ZONE为安全监控引擎的内存空间。EL2为第一等级特权级别运行环境,EL1/EL0为第二等级特权级别运行环境。[0090] 内存隔离过程具体为:基于物理地址(与虚拟地址相同),构建两层级内存映射,第一等级内存映射(EL2_MEM_MAP)由CPU的EL2MPU2来管理,第二等级内存映射(EL1_MEM_MAP)由CPU的EL1MPU1来管理。将第一等级内存映射分为EL2_HYP_ZONE和EL2_GUEST_ZONE。其中,EL2_HYP_ZONE为安全监控引擎或第一等级的程序使用,一般为在首次初始化时即可配置完成,后续不可修改,且不允许EL1的客体虚拟机(GuestVM)访问。EL2_GUEST_ZONE,为GuestVM可以访问的内存区域,在这个区域再细化为多个EL2_GUEST_SECTION给多个GuestVM使用,每个GuestVM使用的区域是隔离开的,可参见图6。[0091] 内存切换过程为:在图6中,将VM1切换到VM2,重新编程EL1MPU1相应的Region寄存器,将EL1MPU1的Region0‑Region3的内存配置信息切换为VM2的内存配置信息,简单来说既是切换了内存的EL1_MEM_MAP,进而重新编程EL2MPU2相应的Region寄存器,比如从VM1切换到VM2时,需要在EL2_MEM_MAP的EL2_GUEST_ZONE中将VM1Section设为VM1不可访问,同时恢复VM2Section可以被访问。[0092] 新增VM过程为:重新编程EL2MPU2,增加EL2_GUEST_ZONE中的客体空间部分。[0093] 上述隔离策略的实现,可以通过使用如Linux等OS系统中常用的DTS(DeviceTreeSource,设备树源码)描述文件来描述硬件的内部配置信息,即可以通过DTS描述文件来定义内存的分区和配置信息。[0094] 自动驾驶芯片安全岛基于ARMv8‑RMPU执行安全岛中的内存管理方法,可对不同安全等级的软件模块做空间隔离,不仅可保证低安全等级软件模块的内存错误不会影响高安全等级的软件模块,同时也可以保护同安全等级的软件模块的内存空间,以及模块之间安全的共享数据。[0095] 在汽车认证标准ISO26262中的ASIL(AutomotiveSafetyIntegrationLevel,汽车安全完整性等级)对失效后带来的风险进行评估和量化以达到安全目标。ISO26262定义了5个汽车安全完整性等级:QM(qualitymanagement,质量管理)、A、B、C和D,其中D是最高安全等级。[0096] 可选的,ASILDomain(ASIL内存抽象域)可以是具备ASILA以上汽车安全完整性等级的内存抽象域,可进一步细分ASILA/B/C/D多种不同的Domain(内存抽象域)。QMDomain为无ASIL要求的内存抽象域,用于普通QM软件模块。[0097] 内存保护过程如下:1、每个OS的线程加入到至少一个Domain中。2、每个Domain可以添加多个线程。3、每个Domain中包括多个Partition(内存分区,与一个MPU的Regions对应)。4、当低安全等级的线程不可以加入高安全等级的Domain中,比如QM等级的线程不可以加入ASILDomain,ASILA的线程不可以加入ASILD的线程。5、低安全等级的线程不可以访问高安全等级的Region,比如QM等级的线程不可以访问ASIL的Region。6、当OS做上下文切换时,根据其对应Domain里定义的Partitions,来动态的重新编码MPU的Regions,完成线程的内存保护区域切换。[0098] 图7是本公开实施例提供的一种内存保护策略示意图,如图7所示,针对QM应用1的线程1和线程2,定义了QM应用1_Domain_A和QM应用1_Domain_B,这两个Domain都包含了QM应用1Partition。QM应用1的线程1不可访问操作系统内核Partition,另外QM应用1_Domain_B,和QM应用2的线程1的QM应用2_Domain_A,都包含了QM应用SharingPartition,因此QM应用1的线程2和QM应用2的线程1都可访问QM应用SharingPartition来做数据交换。QM应用2的线程1不可加入ASIL应用_Domain,也不能访问ASIL应用Partition。ASIL应用1线程可以访问ASIL应用_Domain中的ASIL应用Partition。[0099] 在一个具体的例子中,如图8所示,可以定义两个线程,分别为QM线程1和ASIL‑D线程2,QM线程1加入QMDomainA,QMDomainA包括三个Partitions(MPURegions):Region1,Region2,Region3。ASIL‑D线程2加入ASILDomainB,ASILDomainB包括两个Partition:Region8,Region9。当运行调度指令选择QM线程1为下一个运行的线程时,在做上下文切换(相当于线程的规划)时,需要做如下MPU编程:1、Region1的内存属性设为只读(ReadOnly),2、Region2的内存属性设为允许读/写(Read/Write),3、Region3的内存属性设为不允许读/写,4、Region8的内存属性设为不可访问,5、Region9的内存属性设为不可访问。当完成线程的上下文切换后,QM线程1不可访问Region8和Region9,即使QM线程1发生故障造成异常访问到Region8的区域,MPU可以立刻捕获到异常并做相应的处理,保护Region8(ASIL)区域的内存不受QM线程的错误影响。[0100] 当然,可以理解的是,图8中示出的两个线程的内存保护隔离仅作为示例,实际上,本公开实施例可以实现任意多个线程(尤其是不同安全等级软件的多线程)之间的内存保护隔离。[0101] 本公开实施例也具备上述实施例中所描述的有益效果,此处不再赘述。[0102] 本公开实施例还提供了一种安全岛中的内存管理装置,配置于安全监控引擎,安全岛中包括安装安全监控引擎的第一等级特权级别运行环境,和安装至少一个虚拟机操纵系统的第二等级特权级别运行环境,用于执行上述的安全岛中的内存管理方法。[0103] 图9是本公开实施例提供的一种安全岛中的内存管理装置的示意图,如图9所示,该装置包括:内存空间划分模块310、第一访问权限分配模块320、第二访问权限分配模块330以及细粒度区域分配模块340,其中:[0104] 内存空间划分模块310,被配置为构建第一等级内存映射和第二等级内存映射,将第一等级内存映射划分为安全管理空间和客体空间,并将客体空间划分为至少一个域段;[0105] 第一访问权限分配模块320,被配置为将安全管理空间分配给安全监控引擎进行独占访问,并授权安全监控引擎对客体空间的访问权限;[0106] 第二访问权限分配模块330,被配置为将客体空间中的至少一个域段分配给至少一个虚拟机操作系统进行隔离访问;[0107] 细粒度区域分配模块340,被配置为将第二等级内存映射划分为与至少一个域段分别对应的细粒度区域,并将细粒度区域分配给与至少一个域段匹配的虚拟机操作系统进行隔离访问。[0108] 本公开实施例的技术方案,通过安全监控引擎构建第一等级内存映射和第二等级内存映射,将第一等级内存映射划分为安全管理空间和客体空间,并将客体空间划分为至少一个域段,从而将安全管理空间分配给安全监控引擎进行独占访问,并授权安全监控引擎对客体空间的访问权限,进而将客体空间中的至少一个域段分配给至少一个虚拟机操作系统进行隔离访问,并将第二等级内存映射划分为与至少一个域段分别对应的细粒度区域,并将细粒度区域分配给与至少一个域段匹配的虚拟机操作系统进行隔离访问。在本方案中,安全岛为安全监控引擎以及虚拟机操作系统分别安装了两个不同级别的运行环境,并通过对安全监控引擎的访问权限,以及虚拟机操作系统的访问权限的隔离设置,在保证安全的基础上,可支持自动驾驶中多种不同安全要求的应用场景,解决了现有技术中安全岛硬件资源受限,软件迭代也较为困难以及无法满足自动驾驶需求的问题,除了能实现传统安全岛的所有功能外,还能提供一个安全的实时虚拟化平台,可以宿主不同安全等级的虚拟机操作系统,构建混合关键系统。[0109] 可选的,安全岛中的内存管理装置还包括描述文件读取模块以及内存管理办法执行模块,其中,描述文件读取模块被配置为在执行安全监控引擎的引擎初始化的过程中,读取内存配置描述文件;内存管理办法执行模块,被配置为按照所述内存配置描述文件中的内存配置信息,执行所述内存管理方法。[0110] 可选的,安全岛中的内存管理装置还包括新增域段分配模块以及新增细粒度区域分配模块,新增域段分配模块被配置为响应于对目标虚拟机操作系统的新增指令,在客体空间中划分出新增域段,并将新增域段分配给目标虚拟机操作系统;新增细粒度区域分配模块,被配置为在第二等级内存映射中划分出与新增域段对应的新增细粒度区域,并将新增细粒度区域分配给目标虚拟机操作系统。[0111] 可选的,安全岛中的内存管理装置还包括细粒度区域获取模块、内存配置信息切换模块、分配关系删除模块以及域段分配模块,其中,细粒度区域获取模块,被配置为响应于与第一虚拟机操作系统和第二虚拟机操作系统对应的内存切换指令,在第二等级内存映射中获取与第一虚拟机操作系统对应的第一细粒度区域和与第二虚拟机操作系统对应的第二细粒度区域;内存配置信息切换模块,被配置为将第一细粒度区域中的内存配置信息切换为第二虚拟机操作系统的内存配置信息,并将第二细粒度区域中的内存配置信息切换为第一虚拟机操作系统的内存配置信息;分配关系删除模块,被配置为在客体空间中,去除第一虚拟机操作系统与第一域段间的分配关系,并去除第二虚拟机操作系统与第二域段间的分配关系;域段分配模块,被配置为将第一域段重新分配给第二虚拟机操作系统,并将第二域段重新分配给第一虚拟机操作系统。[0112] 可选的,安全岛中的内存管理装置还包括内存抽象域建立模块、新软件匹配数据获取模块、匹配成功域获取模块以及线程加入模块,其中,内存抽象域建立模块,被配置为建立多个内存抽象域,其中,每个内存抽象域中包括多个内存分区,且每个内存抽象域具有设定的域安全等级;新软件匹配数据获取模块,被配置为响应于在安全监控引擎或者虚拟机操作系统中安装新软件,获取与新软件匹配的目标软件安全等级和至少一个新软件适配线程;匹配成功域获取模块,被配置为将目标软件安全等级与多个内存抽象域的域安全等级进行匹配,获取至少一个匹配成功域;线程加入模块,被配置为将每个新软件适配线程加入至少一个匹配成功域中,其中,每个新软件适配线程仅能访问新软件适配线程所加入的匹配成功域中的内存分区。[0113] 可选的,匹配成功域获取模块,包括等级匹配单元以及匹配成功域确定单元,其中,等级匹配单元,被配置为将目标软件安全等级与多个内存抽象域的域安全等级进行匹配;匹配成功域确定单元,被配置为获取域安全等级低于或者等于目标软件安全等级的全部内存抽象域,确定为匹配成功域。[0114] 可选的,安全岛中的内存管理装置还包括目标线程加入模块、目标内存分区获取模块、访问状态配置模块,其中,目标线程加入模块,被配置为响应于对目标软件中目标线程的运行调度指令,获取目标线程所加入的至少一个目标内存抽象域;目标内存分区获取模块,被配置为获取至少一个目标内存抽象域中包括的全部目标内存分区;访问状态配置模块,被配置为将全部目标内存分区设置为对目标线程的可访问状态,并将其他内存分区设置为对目标线程的不可访问状态。[0115] 可选的,安全岛中的内存管理装置还包括规划信息生成模块以及读写状态配置模块,规划信息生成模块被配置为规划每个新软件适配线程所加入的至少一个匹配成功域中每个内存分区对该新软件适配线程的读写操作的允许状态,生成与每个新软件适配线程分别对应的规划信息;读写状态配置模块,被配置为在将全部目标内存分区设置为对目标线程的可访问状态之后,按照与目标线程对应的规划信息,分别设置每个目标内存分区对所述目标线程的读写操作的允许状态。[0116] 可选的,安全岛中的内存管理装置还包括异常保护模块,异常保护模块被配置为响应于目标线程对不可访问状态的目标内存分区的异常访问,执行与异常访问匹配的异常处理策略,以进行异常保护。[0117] 可选的,安全岛中所使用的处理芯片为ARMv8‑R芯片。[0118] 根据本公开的实施例,本公开还提供了一种自动驾驶芯片、一种可自动驾驶车辆和一种计算机可读存储介质。其中,自动驾驶车辆可以包括本公开实施例中的自动驾驶芯片。[0119] 图10示出了可以用来实施本公开的实施例的示例自动驾驶芯片的示意性框图。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。[0120] 如图10所示,自动驾驶芯片400包括安全岛401,其可以根据存储在只读存储器(ROM)402中的计算机程序或者从存储单元408加载到随机访问存储器(RAM)403中的计算机程序,来执行各种适当的动作和处理。在RAM403中,还可存储自动驾驶芯片400操作所需的各种程序和数据。安全岛401、ROM402以及RAM403通过总线404彼此相连。输入/输出(I/O)接口405也连接至总线404。[0121] 自动驾驶芯片400中的多个部件连接至I/O接口405,包括:输入单元406,例如键盘、鼠标等;输出单元407,例如各种类型的显示器、扬声器等;存储单元408,例如磁盘、光盘等;以及通信单元409,例如网卡、调制解调器、无线通信收发机等。通信单元409允许自动驾驶芯片400通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。[0122] 安全岛401可以是各种具有处理和计算能力的通用和/或专用处理组件。安全岛401的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。安全岛401执行上文所描述的各个方法和处理,例如安全岛中的内存管理方法。例如,在一些实施例中,安全岛中的内存管理方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元408。在一些实施例中,计算机程序的部分或者全部可以经由ROM402和/或通信单元409而被载入和/或安装到自动驾驶芯片400上。当计算机程序加载到RAM403并由安全岛401执行时,可以执行上文描述的安全岛中的内存管理方法的一个或多个步骤。备选地,在其他实施例中,安全岛401可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行安全岛中的内存管理方法。[0123] 本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、复杂可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。[0124] 用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。[0125] 在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD‑ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。[0126] 为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。[0127] 可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。[0128] 计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端‑服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。[0129] 人工智能是研究使计算机来模拟人的某些思维过程和智能行为(如学习、推理、思考、规划等)的学科,既有硬件层面的技术也有软件层面的技术。人工智能硬件技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理等技术;人工智能软件技术主要包括计算机视觉技术、语音识别技术、自然语言处理技术及机器学习/深度学习技术、大数据处理技术、知识图谱技术等几大方向。[0130] 云计算(cloudcomputing),指的是通过网络接入弹性可扩展的共享物理或虚拟资源池,资源可以包括服务器、操作系统、网络、软件、应用和存储设备等,并可以按需、自服务的方式对资源进行部署和管理的技术体系。通过云计算技术,可以为人工智能、区块链等技术应用、模型训练提供高效强大的数据处理能力。[0131] 应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开提供的技术方案所期望的结果,本文在此不进行限制。[0132] 上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
专利地区:北京
专利申请日期:2022-08-30
专利公开日期:2024-09-03
专利公告号:CN117667297B