• 568查看
  • 0回复

[综合] 汽车ECU虚拟化技术(二)--U2A虚拟化功能

[复制链接]


该用户从未签到

发表于 21-1-2024 10:12:55 | 显示全部楼层 |阅读模式

汽车零部件采购、销售通信录       填写你的培训需求,我们帮你找      招募汽车专业培训老师


目录
1.基本概述1.1 U2A虚拟化辅助功能1.2 U2A虚拟化使能和资源分配2. U2A架构概述 3. CPU运行模式3.1 虚拟化模式3.2 限制运行模式3.3 权限运行模式3.4 CPU运行模式小结4.小结
01.基本概述1.1 U2A虚拟化辅助功能

在汽车ECU虚拟化技术初探(一)中我们聊到,U2A硬件本身的虚拟化辅助功能只能称为半虚拟化,该芯片主要是提供了一种叫做分区功能(partiton function)用于实现虚拟化辅助,该功能对运行在该CPU的软件做了硬件限制,从而将CPU的资源隔离开来;那么运行在虚拟机上的ECU就感觉不到虚拟机的存在,还是像以前一样部署OS即可使用。
1.2 U2A虚拟化使能和资源分配

U2A虚拟化辅助功能是由CPU提供,通过指令LDSR设置系统寄存器HVCFG.HVE,如下:

汽车ECU虚拟化技术(二)--U2A虚拟化功能w1.jpg

汽车ECU虚拟化技术(二)--U2A虚拟化功能w2.jpg

打开虚拟化功能之后,此时CPU就又出现了两种运行模式,Host Mode和Guest Mode。

Host Mode可以使用CPU的所有资源,但是Guest Mode就不能使用CPU虚拟化相关的资源,同时也受Host Mode的限制。

具体的资源分配主要由虚拟化软件来指定,但是软件分配好后,这种资源隔离机制由CPU提供,值得注意是CPU对通用寄存器没有隔离机制,因此需要在VM上下文切换时做好保存。CPU可以访问的主要资源如下:

汽车ECU虚拟化技术(二)--U2A虚拟化功能w3.jpg

隔离机制简介如下:

MPU:用于限制访问的地址空间

Guard Mechanism:产品指定的特殊访问限制机制,后面再聊

Partial Multiplexing:系统寄存器在Host/Guest Mode下多路复用

INTC:中断控制器特定的中断通道隔离机制

*5:Host指定是否使用Guest Mode

可以看到,这里面光memory就有三种:Flash、Local、Cluster;同时CPU也分为了Outside和Inside,隔离机制由MPU和Guard Mechanism构成;这是以前MCU都没有的概念,因此今天着重分析上述内容。

02.U2A架构概述

  首先我们来看U2A-EVA 516的CPU子系统架构框图:

汽车ECU虚拟化技术(二)--U2A虚拟化功能w4.jpg

可以看到,瑞萨将4个核均分给了Cluster#0和#1,Cluster2和3仅包含了Cluster RAM;C#0和C#1里均有两个4MB的CodeFlash和一个64KB的LRAM。与之前RH850-P1x/F1KM系列,缺少了Global RAM,转为了Cluster RAM,这很有意思,为什么要改这个名字呢?后面看到再说。回过头来,我们根据这个图,就可以判断在上面资源分配所谓的Outside CPU其实就是指的当前这个资源是CPU子系统里的还是外面的,以Flash为例,CPU0访问FLI0必须通过Local FLASH Bus,因此它是CPU外部资源,采用MPU+Guard机制进行资源隔离。我们知道虚拟化开启后,CPU新增了一种特权模式,叫做hypervisor privilege;不同的权限也对应不同的功能,所以我们来看看当虚拟化开启后,整个系统功能有哪些不一样。如下:
CPU功能区别描述
CPU运行模式Host/Guest Mode
访问权限在虚拟化开启后新增HV特权
系统寄存器访问权限有所变化,因为新增了HV
指令执行权限有所变化,因为新增了HV
异常处理地址
Host模式,限制使用表引用异常

Guest模式,限制使用异常基地址使用
异常根因如RESET\FENMI..等等可以隔离机制来清晰分辨vCPU
异常接收条件基于异常根因设置接收条件
内部memory保护Host Mode下设置MPU,在Guest Mode无法修改
虚拟化相关系统寄存器仅在虚拟化模式下可以使用虚拟化相关寄存器
Host上下文寄存器Host和Guest切换时复用上下文系统寄存器以节省资源、提升效率
Guest上下文寄存器
MPU系统寄存器实现隔离机制
虚拟化辅助指令仅在虚拟化模式支持指令
        所以,可以初步得出一个结论,U2A提供的虚拟化辅助功能主要还是从CPU角度出发,分别对CPU运行模式、虚拟化模式的异常处理、内存隔离、存储隔离、指令增加以及特权变化做了硬件机制上的新增。
03.CPU运行模式

U2A基于RISC自行设计的G4MH2内核,它支持3种独立的模式:虚拟化模式、有限制运行模式和权限模式。

3.1 虚拟化模式

该模式主要用于表征CPU虚拟化辅助功能的使用状态,使用系统寄存器HVCFG.HVE进行切换,如下:

汽车ECU虚拟化技术(二)--U2A虚拟化功能w5.jpg

传统模式就是ECU直接运行在裸机上面,因此不能使用虚拟化相关功能或者指令,否则会触发RIE(reserved instruction exception)。
3.2 限制运行模式

         如上图所示CPU切换到虚拟化模式后,首先会进入到虚拟化模式中的限制运行子模式Host Mode,如下图所示:

汽车ECU虚拟化技术(二)--U2A虚拟化功能w6.jpg

        Host Mode:该模式下不能使用隔离机制(partition function);

        Guest Mode:可以使用隔离机制。

因此,我们这里做一些总结,在CPU最初情况下,有两种运行模式可以选择:conventional和virtualized,当选择virtualized模式之后,会进入该模式下的子状态:Host Mode。Host可以通过寄存器PSWH进入到Guest Mode,如下:

汽车ECU虚拟化技术(二)--U2A虚拟化功能w7.jpg

当虚拟化使能后(HVCFG.HV = 1),PSW变成了扩展性寄存器,如下:

汽车ECU虚拟化技术(二)--U2A虚拟化功能w8.jpg

这里有一个很关键的点,GM这一bit是只读的,因此如何使得CPU从Host跳转至Guest模式呢?根据描述需要使用return指令,例如EIRET,

汽车ECU虚拟化技术(二)--U2A虚拟化功能w9.jpg

所以我们看到上图,有一个xxPSWH,可以实际举例为EIPSWH,如下:

汽车ECU虚拟化技术(二)--U2A虚拟化功能w10.jpg

3.3 权限运行模式

权限运行模式主要针对软件的操作权限,分为Supervisor Mode(SV)和User Mode,这些权限通俗讲就是用于操作某些寄存器(寄存器受不同权限保护)。很明显,不管是在3.1、3.2哪种模式,软件权限划分都要分SV和UM。例如在传统运行模式中,通知App是运行在UM里,OS才有SV权限去完全调度CPU资源,因此我们可以把这些权限全部贴进上述模式中,如下:

汽车ECU虚拟化技术(二)--U2A虚拟化功能w11.jpg
而在Host Mode下,有一种独有权限,叫做HV(Hypervisor privilege) ,用于操作受HV保护的寄存器。
3.4 CPU运行模式小结

有了上述基本概念,我们再回过头来看瑞萨提供的这张图就清晰了,如下:

汽车ECU虚拟化技术(二)--U2A虚拟化功能w12.jpg



    CPU运行后,首先在Conventional Mode运行,如果不使用虚拟化,那么软件就可以在SV/UM权限去操作不同的寄存器或者资源;

    使能虚拟化后,CPU进入到Virtualized Mode,并且此时软件处在HV特权下;同时Hypervisor的软件也可以在HV\UM跳转;

    当真正运行虚拟机之后,进入到Guest Mode,并且与传统模式一样拥有SV和UM权限

那么具体模式之间跳转后的PC、上下文以及对应寄存器有哪些呢?先来一个Host Mode 寄存器模型大图:

汽车ECU虚拟化技术(二)--U2A虚拟化功能w13.jpg

这里暂时不讲了,不然大伙儿就没兴趣看了。

04.小结

今天讲清楚了CPU的运行模式,以及各种模式的切换方式。接下来,我们要继续深度研究每个模式下的寄存器、内存管理机制、中断虚拟化等内容。

该用户已被删除
发表于 15-3-2025 14:08:00 | 显示全部楼层
汽车ECU虚拟化技术(二)——U2A虚拟化功能概述

在汽车ECU虚拟化技术初探(一)中已简要介绍了U2A硬件的半虚拟化特性。本文将深入探讨U2A虚拟化功能的详细内容。

第一部分:基本概述
关于U2A虚拟化辅助功能。U2A硬件提供的一种称为分区功能(partition function),这可以被看作是真正的硬件级别的虚拟化辅助功能。这种功能可以对运行在该CPU上的软件进行硬件限制,确保各个软件间的资源隔离,实现ECU软件在多环境条件下的稳定高效运行。此种特性大大提升了汽车ECU的安全性、灵活性和稳定性。
这种分区功能的存在是为了提供更精细的资源管理和更高的系统效率。接下来的部分会详细阐述U2A架构以及CPU在各种运行模式中的状态和行为,让我们进一步了解和掌握汽车ECU虚拟化技术的核心要素和运行机制。
回复 支持 反对

使用道具 举报

快速发帖

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|Archiver|汽车工程师之家 ( 渝ICP备18012993号-1 )

GMT+8, 19-8-2025 15:48 , Processed in 0.493592 second(s), 36 queries .

Powered by Discuz! X3.5

© 2001-2013 Comsenz Inc.