智能座舱域

news2024/11/24 19:29:50

bosch对车载系统的划分,通常分为5大域:动力域,底盘域,车身域,智能座舱域和adas自动驾驶域。随着ECU集成中央化的发展趋势,大众,华为等巨头将动力域,底盘域和车身域合并为整车控制域,划分为3大域。下图是某车企的2域架构图,省去了整车控制域。本篇主要涉及智能座舱域的hypervisior,qnx,android系统之间是什么关系。

                                                                         两域划分的汽车架构图

一 虚拟化简介

资源隔离技术有多种,从硬件底层逐层向上包括硬件隔离、虚拟化隔离、容器隔离、进程隔离等。硬件隔离域的性能、安全可靠性最好,但灵活性、可配置性差,不能实现硬件共享,导致整个系统的资源利用率差,不能充分达到软件定义汽车的目标。

        容器隔离、进程隔离可以更轻量级地实现业务隔离,但还是在同一个操作系统内,存在着资源干扰、相互安全攻击的隐患,并且无法支持异构操作系统业务域融合,影响传统业务继承,不利于生态发展。

         虚拟化是安全可靠、弹性灵活的优选方案,是软件定义汽车的重要支撑技术。本篇主要涉及hypervisior裸机虚拟化技术,hypervisior直接在soc上运行,之间没有宿主操作系统Host OS中转。如下图Type1所示:

在汽车领域,Hypervisior 主要完成以下任务:

  • CPU 虚拟化:为虚拟机提供 VCPU 资源和运行环境;

  • 内存虚拟化:负责为其自身和虚拟机分配和管理硬件内存资源;

  • 中断虚拟化:发生中断和异常时,按需将中断和异常路由到虚拟机进行处理;

  • 虚拟机设备模拟:根据需求创建虚拟机可以访问的虚拟硬件组件;

  • 硬件支持 BSP:提供 Hypervisor 在 SoC 上运行的板级支持包,如串口驱动;

  • 虚拟机资源配置:对虚拟机的 CPU,内存,IO 外设等资源进行配置和管理;

  • 虚拟机通信:为虚拟机提供 IPC,共享内存等通信机制。

  • 虚拟机调度:为虚拟机提供优先级和时间片等调度算法;

  • 虚拟机生命周期管理:创建,启动和停止虚拟机;

  • 虚拟机调测服务:提供控制台,日志等调试功能;

二 半虚拟化

在硬件辅助虚拟化技术不完善、不强大的发展阶段,或者对于某些复杂外设的共享复用,为避免全虚拟化的性能问题,可以采用 GuestOS 与 Hypervisor 协作的半虚拟化技术。这种技术一般应用于 IO 设备虚拟化,采用前后端的方式来实现 IO 设备虚拟化,在 Guest OS(VM2标示android系统) 中实现前端驱动,在 Hypervisor 或 Host OS(VM1标示qnx系统) 中实现后端驱动,前后端一般按照 VirtIO 标准来实现,后端驱动作为硬件的实际访问方。Guest OS 中前端驱动通过 Virt Queue 等通信机制与后端驱动进行通信,android侧前端驱动将 Guest OS 的请求传递给qnx侧后端驱动,后端驱动将请求发送给硬件驱动,处理完后将结果再传回给前端驱动。半虚拟化相对全虚拟化实现的硬件性能较好,且可实现相对比较复杂的硬件,比如 : 块设备,网卡,显示设备等,如下图所示:

                                              半虚拟化Pass-through资源分配

Hypervisor 支持将硬件资源直接分配给其上虚拟机中 Guest OS 使用,无需通过 Hypervisor 进行地址和指令翻译。例如 : 串口资源、USB 资源等接口比较丰富的资源可以通过 Pass-through 直接分配给某虚拟机使用。设备控制器一般都是以 MMIO 方式来访问的,所以只需要将控制器地址区域映射到 VM 就可实现设备控制器的分配,同时还需要分配一个设备硬件中断对应的虚拟中断到该 VM,直接透传的方式就是 VM 独占访问该硬件,所以在性能上是最好的。

三 qnx hypervisior

此图由高通官网提供,虚拟机管理程序hypervisior包括一个虚拟机管理程序微内核和一个或多个 qvm 进程实例。在 QNX 虚拟机管理程序环境中,虚拟机体现为qvm进程。qvm 进程是在内核外部的Hypervisor中运行的操作系统进程。

需要注意的是:

1 Guest OS实际上并不在 VM 中运行。虚拟机管理程序不会转换Guest 在物理CPU 的指令。VM 将定义的虚拟硬件和直通硬件呈现给Guest OS,当Guest 在物理 CPU 上执行指令是,就像没有虚拟机管理程序一样。只有Guest执行不被允许的指令,或访问被Hypervisor监控的客户机内存和虚拟化硬件是,Hypervisor才会捕获异常并强制Guest退出。个人理解:hypervisior类似于一个监控的角色。
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/448136.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java中将json字符串导出为json文件【详细步骤】

一、概述 请根据具体需求具体改动,此代码需要将前端的数据查询出来,然后进行json字符串的转化 .getCatalogId(id)方法是根据id查出来的内容然后再进行转换成json字符串 也可以直接传入json字符串进行测试 二、代码 ApiOperation("导出为json文件&q…

fzyczn生日赛t1 CZN

fzy&czn生日赛t1 CZN 膜拜hybb首杀 文章目录 fzy&czn生日赛t1 CZN题目背景题目描述分析my codewnags code 题目 题目背景 有一天,czn在机房里面心心念念的pj终于来找他了,pj希望czn能够帮助她来解决一道数学题,czn“十分不乐意”地…

数据库基础篇 《8. 聚合函数》

1. 聚合函数介绍 聚合函数不能嵌套调用。比如不能出现类似“AVG(SUM(字段名称))”形式的调用 1.1 AVG和SUM函数 可以对 数值型数据 使用 AVG 和 SUM 函数。 SELECT AVG(salary), MAX(salary),MIN(salary), SUM(salary) FROM employees WHERE job_id LIKE %REP%; 1.2 MIN…

【Latex排版】使用Latex 排版过程中的那些一二三问题汇总

排版错误问题总结: 1.在【\maketitle】 位置处报错----Missing $ inserted. 2.添加参考文献,编译后显示错误,并且pdf中引用文献处为问号(?) 持续更新问题。。。。。。 近期用Latex整理期刊论文时遇到了不少问题,现把遇到的问题及…

2023 最新最细 vite+vue3+ts 多页面项目架构,建议收藏备用!

🌻 前言 本文教程 github地址 。 如果对你有帮助,希望能点个star ⭐️⭐️⭐️ 万分感谢😊😊😊 🧱 背景 不久前我司需要重新部署一个前端项目,由我来负责这个项目的搭建。因为这个项目是需要…

python爬虫简介

关于爬虫使用 使用python编写的爬虫脚本(程序)可以完成定时定量,指定目标(Web站点)的数据爬取,主要使用多(单)线程/进程,网络请求库,数据解析,数…

记一次误用顶层await导致的路由渲染错误

背景:顶层 await Async 异步函数能将 Promise 的链式调用的形式,改为同步的形式,对于编写和阅读代码都非常友好。但一直以来都有一个限制,就是 async 和 await 这两个关键字必须成对出现。这就导致了一个问题,想使用 …

【JavaScript速成之路】一文带你掌握DOM基础

📃个人主页:「小杨」的csdn博客 🔥系列专栏:【JavaScript速成之路】 🐳希望大家多多支持🥰一起进步呀! 文章目录 前言1,Web API简介1.1,初识Web API1.2,Web A…

TryHackMe-Services(Windows域渗透)

Services 认识团队! 今天thm新出的房间,尝尝鲜 端口扫描 循例nmap 把services.local加入hosts Web枚举 发现员工邮箱以及一些员工姓名 从下边的邮箱中,大致可以猜测其他员工账户名跟这个一致的格式 将其保存起来 立足 - AS-REP Roasting…

gin获取url路径参数

package mainimport ("github.com/gin-gonic/gin""net/http" )//获取请求路径的path参数 func main() {r : gin.Default()r.GET("/user/:name/:age", func(c *gin.Context) {//获取路径参数name : c.Param("name")age : c.Param("…

华为云上云实践(一):Windows 环境下对云硬盘 EVS 的创建、挂载和初始化

本文主要讲解华为云云硬盘 EVS 的在 Windows 服务器上创建、挂载及云硬盘初始化等基本操作,快速掌握华为云云硬盘 EVS 操作方法。 文章目录 一、前言二、前期准备:华为云 EVS 采购三、挂载非共享云硬盘 EVS五、初始化云硬盘 EVS 一、前言 华为云 EVS&am…

除了Navicat和DBeaver,还有没有免费又好用的数据库管理工具推荐

最近看到一款数据库Web版工具,SQL Studio,是麦聪软件公司出品的,主打的就是一个,不使用任何的开源代码,产品由中国研发团队100%自主研发。 SQL Studio是一款可创建多个连接的Web版数据库管理开发工具,让你…

RocketMQ的学习历程(二)----MQ基本构架

文章目录 1.MQ的基本要素1.1.消息(Message)1.2.主题(Topic)1.3.标签(Tag)1.4.队列(MessageQueue)1.5.消息标识(MessageId) 2.MQ中的主要角色和相关联系2.1.Pr…

列表、栈、队列

列表(List) 介绍 一系列有序元素的集合。列表中的元素可以是任意类型,允许重复。 可通过索引定位、访问列表中的(单个)元素,还可使用切片(slice)操作一次性访问多个元素&#xff…

LINUX系统SSH连接安装Matlab、添加环境变量、后台运行Matlab脚本

安装Matlab 使用MobaXterm软件SSH连接远程服务器,输入IP、用户名和端口号: 输入密码进入(密码不显示) 网上找一个Matlab安装包(iso镜像)上传进服务器端,或者直接使用wget指令在服务器端下载镜…

Faster RCNN系列4——生成Proposal与RoI

Faster RCNN系列: Faster RCNN系列1——Anchor生成过程 Faster RCNN系列2——RPN的真值与预测值概述 Faster RCNN系列3——RPN的真值详解与损失值计算 Faster RCNN系列4——生成Proposal与RoI Faster RCNN系列5——RoI Pooling与全连接层 一、生成Proposal 生成Pr…

【python中的多进程了解一下?】

基本说明 多进程是指在同一台计算机中同时运行多个独立的进程。每个进程都有自己的地址空间,可用于执行一些特定的任务。这些进程可以同时执行,从而提高了程序的性能和效率。多进程可以在多核计算机上实现真正的并行计算,可以同时运行多个程…

资本观望,大厂入局,海外大模型血脉压制……国内AIGC创业者的机会在哪里?...

图片来源:由无界 AI生成 A股AI概念股直线式拉涨,技术大牛带资进组分分钟成数十亿人民币独角兽,互联网巨头争抢着入局,政府各类扶持政策持续出台,媒体动不动就是万亿风口,500万年薪难招AIGC大牛……2022年以…

57、Yolov8-seg实例分割部署MNN、OpenVINO、OAK,RK3588平台上

基本思想:部署yolov8-seg到mnn、openvino、oak平台上,仅仅做记录 实验模型:链接: https://pan.baidu.com/s/1ilX1YMuhONkisKuGuiqvWw?pwd75ti 提取码: 75ti 一、是用官方模型转onnx首先,然后进行sim一下,是用模型日期2023-04-2…

从120s到2.5s,看看人家的MyBatis批量插入数据优化,那叫一个优雅

最近在压测一批接口,发现接口处理速度慢的有点超出预期,感觉很奇怪,后面定位发现是数据库批量保存这块很慢。 这个项目用的是 mybatis-plus,批量保存直接用的是 mybatis-plus 提供的 saveBatch。 我点进去看了下源码&#xff0c…