0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

边聊安全 | 功能安全开发之MPU

上海磐时 ? 2025-09-05 16:21 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

在与从事功能安全开发行业的同事以及SASETECH 社区的成员讨论时,笔者经常被问及有关芯片内存保护单元(MPU)的问题。ISO 26262的第6部分和第11部分都提及了MPU,但并未详细描述MPU在功能安全开发中的具体要求。因此,本文旨在讨论以下问题:什么是MPU?MPU解决哪些问题?功能安全开发对MPU的功能安全需求有哪些?

01.

MPU简述

微处理器单元内的内存保护单元(Memory Protection Unit,简称MPU)是执行内存访问控制和隔离的硬件机制。其核心功能是确保系统中的每个程序或进程只能访问其被分配的内存区域。这一机制有效防止了非法内存访问,保护系统不受恶意软件攻击及数据损坏的威胁。此外,它还支持多任务环境下的上下文切换,确保了任务间的独立性及系统整体的稳定性。

几乎所有具备功能安全等级的芯片均集成了MPU,例如英飞凌(Infineon)的AURIX系列、瑞萨(Renesas)的RH850系列以及恩智浦NXP的S32K系列等。

在功能安全相关产品开发的背景下,MPU的主要目标可概括为以下几点:

● 代码访问保护:通过定义存储器区域之间的访问规则,确保数据安全和系统稳定。

●内存或外设保护:为不同的存储区域配置存储器访问权限,这包括指令/数据缓存(I/D Cache)、静态随机存取存储器(SRAM以及外设存储。

MPU主要防御的故障模式包括:

●数据完整性破坏:防止用户应用程序破坏操作系统所依赖的数据。

●任务隔离:避免一个任务异常地访问另一个任务的数据区域,确保任务之间的隔离。

●意外存储访问:防止诸如堆栈溢出或数组越界等意外的存储访问行为。

●关键数据保护:通过将不可写的关键数据区域设为只读,防止对该区域数据的错误篡改。

02.

MPU工作原理

MPU负责实现一系列内存保护功能,其工作原理主要包括以下几个方面:

内存区域定义:MPU可以定义多个内存区域,通常能够保护多达16个不同的内存区域。

访问权限设置:操作系统(OS)可以根据安全策略为每个内存区域配置特定的访问权限。这意味着可以指定哪些进程或任务有权读取、写入或执行内存中的数据。例如,可以设定Region A仅允许执行任务Task X,而Region B仅允许执行任务Task Y。如果一个属于Task X的4字节指令“DCBA”被放置在Region A中,并且该指令的一部分延伸到了不允许执行的Region B,则该指令将无法执行。

5288eb86-8a31-11f0-8ce9-92fbcf53809c.png

地址映射与检查:MPU与内存管理单元(Memory Management Unit,MMU)协同工作,负责将虚拟地址映射到物理地址。在映射过程中,MPU会检查每个内存访问请求的权限,确保其与内存区域的访问设置相匹配。

异常生成:一旦检测到违反内存区域访问权限的请求,MPU将触发一个异常或中断,以阻止非法访问。这会通知操作系统,操作系统随后可以采取措施,如终止非法访问进程或记录安全事件以供后续分析。以英飞凌(Infineon)的AURIX系列芯片为例,当MPU激活时,任何未包含在活动保护集选择的MPU范围内的指令或数据访问都将立即导致CPU陷入陷阱(trap),并可向安全管理单元(Safety Management Unit,SMU)发出警报。

作为硬件组件,MPU的执行速度通常优于软件实现的内存保护机制,这使得它能够高效地处理大量的内存访问请求,同时保持系统的响应性。MPU是现代计算机系统中的一个关键部分,它为操作系统提供了一种强有力的方法来隔离任务、保护数据,并防御恶意软件攻击。通过这种方式,MPU有助于维护整个系统的稳定性和安全性。

03.

功能安全开发中对于MPU的要求

在功能安全开发中,MPU扮演着至关重要的角色。其核心要求主要遵循ISO 26262这一国际功能安全标准。对于不同功能安全完整性等级要求的软件组件,必须满足要素共存的设计原则。对于没有安全相关功能的软件组件,其安全要求遵循无干扰原则,确保:

◆ 安全的内存访问

◆正确的时间执行

◆安全的数据交换

以操作系统(OS)为例,MPU可用于实现空间隔离保护,以防止内存错误。在这种情况下,MPU的目的是确保:

●同一软件分区内的任务(Task)之间不会相互干扰。一个软件分区不能修改其他分区的代码或数据,也不能控制其他分区的非共享资源。如下图所示。

529b9a38-8a31-11f0-8ce9-92fbcf53809c.png

●在操作系统切换正在运行的任务或中断服务例程时,执行上下文切换。此时,上下文数据被存储,MPU重新配置,仅激活当前任务或中断服务例程所需的内存分区。这可以保护任务Task1和Task2免受应用程序Application B的未授权访问。如下图所示。

52b0be40-8a31-11f0-8ce9-92fbcf53809c.png

在功能安全开发过程中,MPU主要保护的对象包括安全相关的应用程序数据、寄存器数据和堆栈数据等。

04.

总结

通常,在功能安全开发过程中,MPU主要用于确保不同ASIL(Automotive Safety Integrity Level)等级的任务或不同执行任务之间的独立性。通过进行故障模式与影响分析(FMEA)和独立性故障分析(DFA),我们可以确定分区保护的软件安全需求。

52c03816-8a31-11f0-8ce9-92fbcf53809c.png

作者

边俊

磐时创始人/首席安全专家

汽车安全社区SASETECH发起人;智能网联预期功能安全工作组核心成员;国内最早从事汽车功能安全、预期功能安全的专家之一

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 微处理器
    +关注

    关注

    11

    文章

    2388

    浏览量

    84629
  • MPU
    MPU
    +关注

    关注

    0

    文章

    428

    浏览量

    50374
  • 功能安全
    +关注

    关注

    2

    文章

    152

    浏览量

    6045
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    大唐恩智浦启动首个ISO 26262功能安全开发流程认证项目

    近日,中国首家汽车半导体公司大唐恩智浦半导体有限公司 (以下简称“大唐恩智浦”)与 T?V 南德意志大中华集团 (以下简称“T?V S?D”)正式签署了ISO 26262功能安全开发流程认证的合作协议。大唐恩智浦因此成为中国汽车半导体行业首个启动ISO26262
    发表于 11-02 20:04 ?1457次阅读

    动力电池bms功能安全开发过程包括哪些内容

    不存在因电气和电子系统故障而引起的不合理危险。因此,功能安全开发的首要任务是避免不可接受的风险。BMS作为车辆零部件,在开发功能安全时,一般
    的头像 发表于 07-13 09:48 ?5183次阅读
    动力电池bms<b class='flag-5'>功能</b><b class='flag-5'>安全开发</b>过程包括哪些内容

    Android安全开发WebView中的地雷

    `Android安全开发WebView中的地雷0X01 About WebView在Android开发中,经常会使用WebView来实现WEB页面的展示,在Activiry中启动自己的浏览器,或者
    发表于 09-09 19:35

    求一种符合功能安全的BMS解决方案

    BMS是什么?BMS功能安全开发流程是怎样的?
    发表于 10-15 07:51

    STM32安全框架助力客户应对安全挑战

    内容包含:安全框架:面向开发人员、应用要求:应用案例与安全功能、应用要求:应用案例与安全功能、MCU/MPU独立架构等。
    发表于 09-05 06:35

    嵌入式开发系列课程五:Windows CE安全开发

    嵌入式开发系列课程五:Windows CE安全开发与配置
    发表于 03-25 08:58 ?22次下载

    电子功能安全开发及汽车EPS电机控制设计

    实现认证并开始你的功能安全开发
    的头像 发表于 08-14 00:15 ?5447次阅读

    什么是SEooC?SEooC和正常功能安全开发有什么不同?

    功能安全开发过程中,很多时候我们会遇到独立于环境的安全要素开发(Safety Element out of Context, SEooC)
    的头像 发表于 04-27 16:52 ?1.1w次阅读
    什么是SEooC?SEooC和正常<b class='flag-5'>功能</b><b class='flag-5'>安全开发</b>有什么不同?

    贸泽开售面向安全应用的英飞凌OPTIGA Trust M物联网安全开发套件

    2023 年 5 月 11 日 – 专注于引入新品的全球半导体和电子元器件授权代理商贸泽电子 (Mouser Electronics) 即日起供货英飞凌的OPTIGA? Trust M物联网安全开发
    发表于 05-12 17:05 ?785次阅读
     贸泽开售面向<b class='flag-5'>安全</b>应用的英飞凌OPTIGA Trust M物联网<b class='flag-5'>安全开发</b>套件

    倾倒安全开关的作用

    安全开关是一种用于保护电路和设备的重要装置。它的作用是在电路发生故障或设备出现异常情况时,迅速切断电源,以防止电流过大或电压过高对人身安全和设备造成损害。 安全开关可以防止电路过载。当电路中的电流
    的头像 发表于 08-22 14:07 ?1282次阅读
    倾倒<b class='flag-5'>安全开</b>关的作用

    智能网联汽车ISO 26262?功能安全开发解决方案

    ,经纬恒润功能安全服务团队提供覆盖功能安全流程咨询及ISO26262功能安全认证、产品
    的头像 发表于 12-19 09:39 ?934次阅读
    智能网联汽车ISO 26262?<b class='flag-5'>功能</b><b class='flag-5'>安全开发</b>解决方案

    安全 | ASPICE与功能安全流程体系融合

    上海磐时PANSHI“磐时,做汽车企业的安全智库”ASPICE与功能安全流程体系融合本文中提到的内容涉及到汽车行业的两个重要标准:ISO26262和ASPICE(AutomotiveSoft-wareProcessImprove
    的头像 发表于 09-05 16:19 ?275次阅读
    <b class='flag-5'>边</b><b class='flag-5'>聊</b><b class='flag-5'>安全</b> | ASPICE与<b class='flag-5'>功能</b><b class='flag-5'>安全</b>流程体系融合

    安全 | 智能驾驶时代的新挑战:AI功能安全

    智能驾驶时代的新挑战:AI功能安全写在前面:随着人工智能(AI)技术在自动驾驶汽车等领域的快速发展,其功能安全性成为了一个不可忽视的议题。功能
    的头像 发表于 09-05 16:20 ?956次阅读
    <b class='flag-5'>边</b><b class='flag-5'>聊</b><b class='flag-5'>安全</b> | 智能驾驶时代的新挑战:AI<b class='flag-5'>功能</b><b class='flag-5'>安全</b>

    安全 | 预期功能安全接受准则

    上海磐时PANSHI“磐时,做汽车企业的安全智库”预期功能安全接受准则为什么需要预期功能安全功能
    的头像 发表于 09-05 16:21 ?229次阅读
    <b class='flag-5'>边</b><b class='flag-5'>聊</b><b class='flag-5'>安全</b> | 预期<b class='flag-5'>功能</b><b class='flag-5'>安全</b>接受准则

    安全 | 人机交互对功能安全的影响

    上海磐时PANSHI“磐时,做汽车企业的安全智库”人机交互对功能安全的影响HMI,HumanMachineInterface,也就是大家熟知的人机接口。近年来,HMI的功能也随着汽车智
    的头像 发表于 09-05 16:21 ?21次阅读
    <b class='flag-5'>边</b><b class='flag-5'>聊</b><b class='flag-5'>安全</b> | 人机交互对<b class='flag-5'>功能</b><b class='flag-5'>安全</b>的影响