汽车ECU的虚拟化技术初探(一)

目录

1.为什么要提汽车ECU的虚拟化?

2.虚拟化技术分类

2.1 硬件虚拟化

2.2 操作系统虚拟化


问题引入:

  1. Hypervisor是如何来管理和隔离硬件资源,保证各个不同功能的应用程序的资源使用安全和资源调度?
  2. 没有MMU就做不了虚拟化?

1.为什么要提汽车ECU的虚拟化?

        要讲汽车ECU的虚拟化,首先要从汽车电子电气架构的演进roadmap开始说起。汽车行业领头羊博世将整车电子电气架构定义成了六个主要发展阶段,如下:

  • 模块化阶段:汽车上每个 ECU 负责特定的功能,比如车灯控制器,制动控制器等,这些控制器像叶子一样挂在CAN总线上,随着汽车功能增多这种架构日益复杂,无法持续。
  • 集成化阶段,单个 ECU 负责多个功能,ECU 数量较上一阶段减少。在这两个阶段,汽车电子电气架构仍处于分布式阶段,ECU 功能集成度较低。  
  • 集中化阶段,即现在比较主流的功能域控阶段。功能域即根据功能划分的域控制器,最常见的是如博世划分的五个功能域(动力域、底盘域、车身域、 座舱域、自动驾驶域)。域控制器间通过以太网和 CANFD(CAN with Flexible Data-Rate)相连,其中座舱域和自动驾 驶域由于要处理大量数据,算力需求逐步增长。动力总成域、底盘域、车身域主要涉及控制指令计算及通讯资源,算力要求较低。
  • 域融合阶段。在功能域基础上,为进一步降低成本和增强协同,出现了跨域融合,即将多个域融合到一起,由跨域控制单元进行控制。比如将动力域、底盘域、车身域合并为整车控制域,从而将五个功能域(自动驾驶域、动力域、 底盘域、座舱域、车身域)过渡到三个功能域(自动驾驶域、智能座舱域、车控域)。
  • 车载电脑阶段,随着功能域的深度融合,功能域逐步升级为更加通用的计算平台,从功能域跨入位置域(如特斯拉的前域、左域、右域)。区域控制器平台(Zonal Control Unit,ZCU)是整车计算系统中某个局部的感知、数据处理、控制与执行单元。它负责连接车上某一个区域内的传感器、执行器以及 ECU等,并负责该位置域内的传感器数据的初步计算和处理,还负责本区域内的网络协议转换。
  • 车云阶段,将汽车部分功能转移至云端,车内架构进一步简化。车的各种传感器和执行器可被软件定义和控制, 汽车的零部件逐步变成标准件,彻底实现软件定义汽车功能。

       可以看到,随着电子电气架构的更新,整车所需的ECU数量更少,但每个ECU功能更加丰富,例如将制动、转向、动力控制的功能全部集中到一个ECU。这种功能的集中对控制器所采用芯片的资源保护提出了巨大的挑战。      

       因此,借鉴座舱域控将QNX、Android集中到一块SOC的经验,在MCU上实现虚拟化技术,将不同功能安全等级的系统部署到同一个硬件平台上。如下图:

2.虚拟化技术分类

        虚拟化技术按照虚拟化层次通常可以分为硬件虚拟化和操作系统虚拟化两类。

2.1 硬件虚拟化

        进一步的,硬件虚拟化可细分为 Type1 和 Type2 两类;

  • Type1类型的虚拟化

        虚拟化管理程序直接运行在裸硬件上,因此也叫作裸机虚拟化;如下图,Hypervisor一般是一个嵌入在Host OS内核里面的一部分,能够直接操作控制硬件并管理多个虚拟机(Guest VM)。每个虚拟机都有自己的操作系统和应用程序(下图的APP+Guest OS),可以完全独立运行。 

  • Tpye2类型的虚拟化。

        与Type1类型的虚拟机不一样,Type2类型虚拟化是指在已经装载好OS的的硬件上运行一个Hypervisor软件,这个软件作为应用程序管理多个Guest VM。

        可以看到,Type 1 和 Type2的虚拟化最大区别在于Type 1的Hypervisor可以直接操作硬件,没有多余的开销,性能相对比较高;Type2的Hyperviosr访问硬件资源,还必须经过Host OS。可以看到座舱域仪表和中控使用的就是Type1类型的虚拟化技术。

        因此在汽车领域,由于对功能安全等级、实时性有较高要求,一般均使用 Type1的Hypervisor,Hypervisor 之上直接运行多个客户操作系统 (GuestOS);那么这里就出现了今天的首个问题,Hypervisor是如何来管理和隔离硬件资源,保证各个不同功能的应用程序的资源使用安全和资源调度?这个我们稍后再谈。

2.2 操作系统虚拟化

        操作系统虚拟化一般就是指容器技术,由操作系统内核提供的资源隔离和控制功能,创建出多个相互隔离但共享系统内核的用户空间实例,从而实现对多系统运行能力的支持。

       进一步讲,容器技术就是将操作系统所管理的计算机资源,包括进程、文件、设备、网络等分组,然后交给不同的容器使用。容器中运行的进程只能看到分配给该容器的资源。从而达到隔离与虚拟化的目的。 实现容器技术需要用到Namespace及cgroups技术。

        典型代表就是Docker公司在2013推出的轻量级虚拟化技术--Docker。结构如下图:

        在这种虚拟化机制下,操作系统内核被每个容器共享,每个容器使用相同的OS,由OS来分配资源,不过正是因为这种多个App共享内核的机制,可能存在漏洞或攻击风险。因此目前容器化场景在汽车中还没看到实际应用。

2.3 硬件虚拟化的资源安全

        回到我们的问题一,Hypervisor是如何来管理和隔离硬件资源,保证各个不同功能的应用程序的资源使用安全和资源调度

        以常见的Type 1 的Hypervisor安全架构为例,资源安全需要从vCPU调度隔离、内存隔离、存储隔离以及网络隔离四个方面来保证安全,如下图:

         在vCPU的调度中,常见的ARM-v8架构提供了EL0-EL3的等级,每个等级可运行的指令不一样,通常EL0运行APP,EL1运行Guest OS,EL2运行Hypervisor(负责vCPU的上下文切换),实现Guest OS和Hypervisor的隔离;

        在内存隔离中,一般要用到我经常谈到但是没有深入研究的MMU--内存管理单元。MMU主要是包含以下几个功能:

  • 虚拟地址和物理地址的翻译
  • 访问权限控制
  • 对硬件资源物理内存进行管理

         GuestOS 虚拟地址到物理地址的映射由 Hypervisor 来实现,Hypervisor 可以使GuestOS的虚拟地址映射到不同的物理内存段上,保证了 GuestOS 间的内存隔离。如下:

        这就引出第二个问题:没有MMU的芯片是不是就不能做虚拟化了呢?答案是否定的,请看下一篇文章,汽车ECU的虚拟化技术初探(二)。 

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

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

相关文章

4.HTML网页开发的工具

4. 网页开发的工具 4.1 快捷键 4.1.1 快速复制一行 快捷键:shiftalt下箭头(上箭头) 或者ctrlc 然后 ctrlv 4.1.2 选定多个相同的单词 快捷键: ctrld 4.1.3 添加多个光标 快捷键:ctrlalt上箭头(下箭头&…

CS224W6.2——深度学习基础

在本文中,我们回顾了深度学习的概念和技术,这些概念和技术对理解图神经网络至关重要。从将机器学习表述为优化问题开始,介绍了目标函数、梯度下降、非线性和反向传播的概念。 文章目录 1. 大纲2. 优化问题2.1 举例损失函数 3. 如何优化目标函…

MySQL on duplicate key update用法

基本使用方法 public static final String SQL_TQI_SINK "insert into " ConfigureContext.get(ConfigKeyConstants.MYSQL_TABLE_TQI) " \n" "(mile_km, mile_start_km, mile_start_m, is_out, tqi_alig_l, \n" "tqi_alig_r, tqi_surf_l…

Redis系列-Redis性能优化与安全【9】

目录 Redis系列-Redis性能优化与安全【9】Redis性能优化策略Redis安全设置与防护措施Redis监控与诊断工具介绍 七、Redis应用案例与实战八、Redis未来发展与趋势 个人主页: 【⭐️个人主页】 需要您的【💖 点赞关注】支持 💯 Redis系列-Redis性能优化与安…

2023年第十六届山东省职业院校技能大赛高职组“信息安全管理与评估”赛项规程

第十六届山东省职业院校技能大赛 高职组“信息安全管理与评估”赛项规程 一、赛项名称 赛项名称:信息安全管理与评估 英文名称:Information Security Management and Evaluation 赛项组别:高职组 赛项归属:电子与信息大类 二…

运行npm install卡住不动的几种解决方案

在前端开发经常会遇到运行npm install 来安装工具包一直卡住不动,为此这里提供几种解决方案,供大家参考学习,不足之处还请指正。 第一种方案、首先检查npm代理,是否已经使用国内镜像 // 执行以下命令查看是否为国内镜像 npm con…

虚假内容检测,谣言检测,不实信息检测,事实核查;纯文本,多模态,多语言;数据集整理

本博客系博主个人理解和整理所得,包含内容无法详尽,如有补充,欢迎讨论。 这里只提供数据集相关介绍和来源出处,或者下载地址等,因版权原因不提供数据集所含的元数据。如有需要,请自行下载。 “Complete d…

深度学习之基于Django+Tensorflow商品识别管理系统

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 项目简介 本系统是一个基于DjangoTensorflow的商品识别管理系统。通过深度学习技术,实现商品的自动识别…

arduino 简易智能花盆

编辑器:arduino IDE 主板:arduino uno 传感器: 0.96寸的OLED屏(四脚) 声音模块 土壤温湿度模块 DS18B20温度模块(这里用到防水的) 光敏电阻模块(买成三脚的了只能显示高低&#x…

el-table实现展开当前行时收起上一行的功能

<el-tableref"tableRef":data"tableData":expand-row-keys"expandRowKeys":row-key"handleRowKey" // 必须指定 row-keyexpand-change"handleExpandChange" // 当用户对某一行展开或者关闭的时候会触发该事件> <…

【算法专题】双指针—三数之和

力扣题目链接&#xff1a;三数之和 一、题目解析 二、算法原理 解法一&#xff1a;排序暴力枚举利用set去重 代码就不写了&#xff0c;你们可以试着写一下 解法二&#xff1a;排序双指针 这题和上一篇文章的两数字和方法类似 排序固定一个数a在这个数的后面区间&#xff0…

《詩經别解》——國風·周南·雎鳩​​​​​​​

一、关于古文的一个认识 目前可以阅读的古文经典&#xff0c;大多是经历了几千年的传承。期间的武力战争、文化纷争、宗教侵袭、官僚介入及文人的私人恩怨与流派桎梏&#xff0c;印刷与制作技术&#xff0c;导致这些古文全部都已经面目全非。简单地说&#xff0c;你读到的都是…

2022最新版-李宏毅机器学习深度学习课程-P46 自监督学习Self-supervised Learning(BERT)

一、概述&#xff1a;自监督学习模型与芝麻街 参数量 ELMO&#xff1a;94MBERT&#xff1a;340MGPT-2&#xff1a;1542MMegatron&#xff1a;8BT5&#xff1a;11BTuring NLG&#xff1a;17BGPT-3&#xff1a;175BSwitch Transformer&#xff1a;1.6T 二、Self-supervised Lear…

[HXPCTF 2021]includer‘s revenge

文章目录 方法一前置知识Nginx 在后端 Fastcgi 响应过大产生临时文件竞争包含绕过include_once限制 解题过程 方法二前置知识Base64 Filter 宽松解析iconv filter 解题过程 方法一 NginxFastCGI临时文件 前置知识 Nginx 在后端 Fastcgi 响应过大产生临时文件 www-data用户在n…

SharePoint 页面中插入自定义代码

我们都知道 SharePoint 是对页面进行编辑的。 对于一些有编程基础的人来说&#xff0c;可能需要对页面中插入代码&#xff0c;这样才能更好的对页面进行配置。 但是在新版本的 SharePoint modern 页面来说&#xff0c;虽然我们可以插入 Embed 组件。 但是 Embed 组件中是不允…

【C++基础 】类和对象(上)

C基础 类和对象&#xff08;上&#xff09; 1.面向过程和面向对象初步认识2.类的引入3.类的定义4.类的访问限定符及封装4.1 访问限定符4.2 封装 5.类的作用域6.类的实例化7.类对象模型7.1 如何计算类对象的大小7.2 类对象的存储方式猜测7.3 结构体内存对齐规则 8.this指针8.1 t…

Kubernetes实战(四)-部署docker harbor私有仓库

1 Docker原生私有仓库Registry 1.1 原生私有仓库Registry概述 Docker的仓库主要分两类&#xff1a; 私有仓库公有仓库 共有仓库只要在官方注册用户&#xff0c;登录即可使用。但对于仓库的使用&#xff0c;企业还是会有自己的专属镜像&#xff0c;所以私有库的搭建也是很有…

分享vmware和Oracle VM VirtualBox虚拟机的区别,简述哪一个更适合我?

VMware和Oracle VM VirtualBox虚拟机的区别主要体现在以下几个方面&#xff1a; 首先两种软件的安装使用教程如下&#xff1a; 1&#xff1a;VMware ESXI 安装使用教程 2&#xff1a;Oracle VM VirtualBox安装使用教程 商业模式&#xff1a;VMware是一家商业公司&#xff0c;而…

HTTP和HTTPS详解

一)什么是HTTP协议 1)HTTP协议是倾向于相遇业务层次上面的一种协议&#xff0c;传输层协议主要考虑的是端对端之间的一个传输过程&#xff0c;TCP重点进行关注的是可靠传输&#xff1b;咱们的HTTP/1&#xff0c;HTTP/2是基于TCP的&#xff0c;但是咱们的HTTP/3是基于UDP的&…

uniapp H5预览PDF支持手势缩放、分页、添加水印、懒加载、PDF下载

效果预览 项目说明 uniapp vue2 node&#xff1a;v14.18.3 npm&#xff1a; 6.14.15 安装pdfh5.js插件 pdfh5 - npm (npmjs.com)pdfh5.js 基于pdf.js和jQuery pdfh5 - npm (npmjs.com) npm install pdfh5 由于我安装最新的pdfh5.js后运行时报错 所以我选择降低版本,可能是node…