汽车ECU的虚拟化技术(五) -- 对MCU虚拟化实现难点的思考

目录

1.概述

2.虚拟化软件的难点

2.1 虚拟化中的中断处理

2.2 虚拟ECU的通信

 3.小结


1.概述

在上面文章里汽车ECU的虚拟化技术(四) -- 对MCU虚拟化实现难点的思考-CSDN博客,解了OEM面临新的电子电气架构下的集成难点,引入了hypervisor以及VM调度机制,接下来我们将继续讲VM之间的通信、中断处理、在safety和security上面的思考。

2.虚拟化软件的难点

2.1 虚拟化中的中断处理

由于中断产生其实是要对应实际功能的,因此在芯片设计时就应考虑虚拟化下的中断是可以分配到某VM里的;这样我们就可以识别当前产生的中断是哪一个VM需要。

此外,还要考虑在其他VM运行期间的中断处理,举个例子,假设VM2正在运行,此时来了一个属于VM1的中断,这时候要不要处理?

一般来讲,中断产生后应由hypervisor分发到不同VM,所以这个在设计hypervisor软件是需要考虑中断的抢占性。如下

上图中,VM1的ISR就可以抢占VM3的内核占用时间,但不能抢占VM2的内核占用时间。 

2.2 虚拟ECU的通信

 在之前分布式架构,ECU之间的通信多为CAN\CANFD,是有实际的物理线束的。

现在好了,这些ECU整合到一个MCU里,他们之间的通信该如何是好?

我们最容易想到的就是采用共享内存和Mailbox的方式,毕竟核间通信就是如此设计,但是虚拟化的特征就是VM始终认为自己独占MCU资源,因此对于共享内存的划分就很随意;如何保证共享内存不冲突,且读写权限,这是Hypervisor需要考虑的事情。

 此外,同一个VM里的不同内核通信,又该如何处理呢?

可以尝试沿用AUTOSAR里的IOC机制。

 3.小结

上面是对hypervisor这一层级的软件思考,鉴于之前没有QNX Hypervisor的经验,暂时能想到的就是这些。

接下来还是得好好捋一遍QNX hypervisor,看看有什么可以继续吸收的。

其实,上面只是从应用功能上进行了梳理,但是还有更重要的两个方向没有考虑到,那就是Safety和Security。

举个例子,在分布式架构下,每个ECU拆分下来的ASIL等级是不相同的,如下图:

那么如果把不同ASIL等级的ECU集成到一个ECU里,这个功能安全该如何分析? 在设计Hypervisor软件时,是否也需要对软件进行功能安全认证?如果要做认证,那就只能以SEooC的方式进行软件设计,而这样的软件会用到量产上吗?

除此之外,针对Security的设计应该如何考虑。据了解,目前量产的MCU基本都是内置HSM,但是只有一个密码加速引擎,这在多VM下势必会产生竞争。如何保证各VM都能够使用到HSM,一个方法是增加HSM加速引擎实例,另一个方式可以在HSM侧增加多个Host的配置,先保存来自VM的请求,根据固定优先级算法进行处理,这就必须考虑HSM引擎的数据处理能力了。

以前还在想汽车MCU的虚拟化应该还很远,殊不知就在自己磨磨蹭蹭的时候需求都已经提过来了。同志们,得再加把劲儿啊。

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

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

相关文章

react中使用google map展示地图

1. 安装插件 google-maps-react npm install google-maps-react --save 2. 使用 import React, { Component } from "react"; import { Map, GoogleApiWrapper, Marker } from "google-maps-react";class MapContainer extends Component {render() {co…

ARM-Linux 开发板下安装编译 OpenCV 和 Dlib

安装 OpenCV 和 Dlib 不像在 x86 平台下那样简单,用一句命令就可以自动安装完。而在 ARM 平台中许多软件都需要自行下载编译,且还有许多问题,本篇文章就是记录在 ARM 平台下载 OpenCV 踩过的坑。 硬件环境: RK3568 Ubuntu20.04…

全国大学生数学建模大赛备赛——相关系数的求解(皮尔逊(pearson)、斯皮尔曼(spearman)、肯德尔(kendall)相关系数)

相关系数是用来衡量两个变量之间线性相关程度的指标。它的取值范围在-1到1之间,当相关系数为1时表示两个变量完全正相关(即一个变大另一个也变大),当相关系数为-1时表示两个变量完全负相关(即一个变大另一个变小&#…

【Flutter】数据库操作的基本介绍

上一篇博文介绍了Flutter 如何读取 excel 文件,这一篇我们来介绍如何操作数据库。 Flutter 提供了三种数据持久化方式: 将 KV 值存储到硬盘:shared_preferences读取和写入文件:Read and write files数据库:sqflite。…

实现节流防止连点方法以及调用方式

1、新建throttle.js文件,复制该代码 export function throttle(fn, delay) { let latestTime 0 return function() { const _this this const _arguments arguments const nowTime new Date().getTime() if (nowTime - latest…

定制 Elasticsearch 镜像

安装ik分词器 下载ik分词器 下载地址:https://github.com/infinilabs/analysis-ik/releases Dockerfile FROM docker.elastic.co/elasticsearch/elasticsearch:8.12.2 COPY ./elasticsearch-analysis-ik-8.12.2.zip /opt/ RUN bin/elasticsearch-plugin instal…

IOS面试题编程机制 16-20

16. 详述iOS 中的事件的传递:响应链?事件沿着一个指定的路径传递直到它遇见可以处理它的对象。 首先一个UIApplication 对象从队列顶部获取一个事件并分发(dispatches)它以便处理。 通常,它把事件传递给应用程序的关键窗口对象,该对象把事件传递给一个初始对象来处理。 初始…

国产DSP FT-M6678开发-网络开发

简介 今天准备调试FT-M6678的网络部分,参考例程是《3. FT-M6678 Project\1. FT-M6678 接口驱动函数\13. GMAC\NDK 协议栈工程-V7.1\03应用例程\UDP\DSP端应用程序\DSP_UDP_Test_V7》,首先参照文档将NDK使用官方提供的NDK进行替换: 将D:\ti\pdk_C667…

FMEA助力新能源汽车行业腾飞:安全、效率双提升

随着新能源汽车市场的迅猛发展,各大车企纷纷加大研发力度,力求在激烈的市场竞争中脱颖而出。其中,FMEA(故障模式与影响分析)作为一种先进的质量管理工具,正被越来越多地应用于新能源汽车的研发和生产过程中…

Redis中的常用数据结构

目录 String类型 Hash类型 List类型 Set类型 SortedSet类型 全局命令 集合中的交并补 String类型 //set,get型set key valueget key//设置一个10s后过期的键值对 ex单位是sset key value ex 10 或者 setex key 10 value//设置一个10ms后过期的键值对 px单位是msset key…

Vue 面试题(二)

目录 上一篇:Vue 常见面试题(一)-CSDN博客 11、Vue 组件 data 为什么必须是函数(必会) 12、讲一下组件的命名规范(必会) 13、怎么在组件中监听路由参数的变化?(必会) 14、怎么捕获 Vue 组件…

深度学习pytorch——链式法则(Chain rule)(持续更新)

这篇文章将会以深度学习的角度解析链式法则。 基本的求导法则 高中的时候就学过,大学高数也巩固了一遍,这里不再赘述。 深度学习中的链式法则 为什么要讲述深度学习中的链式法则? 通过链式法则,我们可以得到中间层信息&#x…

unbantu Apache的基本配置与配置静态资源访问

目录 前言: 1.Apache介绍 2.安装Apache 3. 测试Apache服务是否启动成功 3.1配置Servername 3.2重启服务 4.配置Apache主页面 5. 配置静态的资源 6.为静态资源设置访问权限(基于源地址) 致谢: 前言: 此博客是基于unbantu的Apache服务的详细解析,在这片博…

Elasticsearch面试系列-03

1. Elasticsearch 中 refresh 和 flush 有什么区别? 整体流程: 1、数据写入buffer缓冲和translog日志文件中。当写一条数据document的时候,一方面写入到mem buffer缓冲中,一方面同时写入到translog日志文件中。 2、buffer满了或者每隔1秒(可配),refresh将mem buffer中的…

MediatR 框架使用FluentValidation对Comand/Query进行自动拦截验证

简介 目录 简介 1. MediatR项目框架 2. 实现步骤 步骤 1:编写管道行为 1. query 查询的管道 2. command命令的管道 步骤 2:注册验证器和管道行为 步骤 3:定义命令类 步骤 4:定义处理程序 步骤 5:编写命令验证器…

34 | 到底可不可以使用join?

在实际生产中,关于 join 语句使用的问题,一般会集中在以下两类: 1. 我们 DBA 不让使用 join,使用 join 有什么问题呢? 2. 如果有两个大小不同的表做 join,应该用哪个表做驱动表呢? 今天这篇文…

机器学习流程—迁移学习 模型微调

文章目录 机器学习流程—迁移学习 模型微调迁移学习的思想主要优点常见的微调 fine-tuning案例一 VGG19鲜花分类器案例二 ResNet图像分类案例三 BERT 情感分析总结机器学习流程—迁移学习 模型微调 一旦你踏进了机器学习领域,就等同于踏进了“终身学习”之旅。因为机器学习领…

【算法刷题 | 二叉树 02】3.21 二叉树的层序遍历01(5题:二叉树的层序遍历、层序遍历||、右视图、层平均值,以及N叉树的层序遍历)

文章目录 5.二叉树的层序遍历5.1 102_二叉树的层序遍历5.1.1问题5.1.2解法:队列 5.2 107_二叉树的层序遍历||5.2.1问题5.2.2解法:队列 5.3 199_二叉树的右视图5.3.1问题5.3.2解决:队列 5.4 637_二叉树的层平均值5.4.1问题5.4.2解决&#xff1…

.NET Core 服务实现监控可观测性最佳实践

前言 本次实践主要是介绍 .Net Core 服务通过无侵入的方式接入观测云进行全面的可观测。 环境信息 系统环境:Kubernetes编程语言:.NET Core ≥ 2.1日志框架:Serilog探针类型:ddtrace 接入方案 准备工作 DataKit 部署 DataK…

探索神经网络:从前端开发者的视角看AI技术

在当今数字化时代,人工智能(AI)技术正在以惊人的速度发展,并在各个领域展现出巨大的潜力和影响力。其中,神经网络作为AI领域的核心技术之一,引起了广泛的关注和研究。作为一名前端开发人员,了解…