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

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

3天内不再提示

RAM、ROM常用安全机制

科技绿洲 来源:立功科技 作者:立功科技 2022-06-13 14:48 次阅读

存储器数据的稳定可靠是MCU安全运行的基础,但环境因素和存储器本身的物理特性都可能造成存储器数据异常,本文将详细介绍RAM&ROM常用安全机制。

存储器(ROM,RAM)数据的安全可靠是MCU稳定运行的基础,在汽车功能安全设计中,存储器相关的安全机制也是系统基本保障的重点之一。通常,不同的汽车芯片都有自己的存储器校验机制以及相应的处理手段来保证功能的正常运行。下面会对常见的处理机制进行一些介绍。

RAM的校验纠错机制

RAM的校验机制相对ROM的校验机制较少,校验机制基本都属于MCU本身的特性,通过内部硬件实现,对于用户来说是透明的。而一般用户使用时也不会主动的对RAM进行校验。1. Parity BitParity Bit(奇偶校验位)是一种数据校验机制,常用与判断数据在存储过程中是否发生了比特位错误。

pYYBAGKm3YSALt5-AAAT2QbpJIg793.png

图1 奇偶校验模式可以看到图1,带有Parity Bit的内存在每一个字节(B7~B0)外又额外增加了一个校验位(C)用于对错误进行校验。Parity Bit有着计算简单的优点,只需要对前面字节的位进行异或操作:

C = B7^ B6^ B5^ B4^ B3^ B2^ B1^ B0Parity Bit在ECC技术之前,是RAM中应用最多的错误检查技术,当然,现在只有在已经很少有CPU用到,因为每1 Byte的数据都需要1 bit的校验位,对于MCU本就很紧张的RAM显然不合适。另外Parity Bit只具备检错能力,并不具备纠错能力。2. ECC通过上面对Parity Bit的分析可以知道,通过在原来的数据1 byte基础上增加1 bit,可以用来检查当前1 byte数据的正确性。如果数据为256 byte就需要256 bit的校验位,而且出错的数据无法纠正。由于上述的缺点,出现了一种新的存储检错纠错机制 – ECC。

poYBAGKm3ZSAa9pAAAAhkQrXSWM972.png

图2 检错能力对比ECC(Error-Correcting Code),可以译为检错纠错码。ECC的计算过程比Parity Bit的计算过程复杂一点,这里不进行过多描述。仅针对ECC的两个主要特点进行说明:① ECC有极强的检错能力ECC的计算方式与Parity Bit不同,当数据为1 Byte时,ECC需要5 bit校验位对数据进行校验,之后数据每增加1倍,相应的只需要增加1 bit的ECC 校验位。可以看到图2,ECC的检错能力相比Parity Bit有极大的提升。② ECC具有纠错能力当数据只有单bit 错误时,ECC能够对错误进行修复,但需要注意的是,当数据中有超过 2 bit的错误同时产生时,ECC不一定能检测出来,这一点Parity Bit也是一样。

ROM的检验纠错机制

与复杂的RAM空间相比,ROM空间的操作显然简单的多,因此,对于ROM的校验使用者可以根据不同的需求,选择不同的方式。

常用的有hash,CRC,对于大容量ROM,比如Nand Flash同样也可以使用ECC的方式。基本上,只需要满足ROM内容和生成的校验码存在相对唯一的映射关系即可。

但是用户自己实现的ROM校验机制存在不少缺点:校验失败没有灵活的处理措施,对ROM的校验需要消耗额外MCU资源等。1. HSE随着汽车产业的不断升级,汽车智能化程度也在不断加深,越来越多的汽车会通过OTA的方式实现客户的个性化需求。但OTA在增加汽车升级和维护便利性的同时,也给数据的安全可靠性带来了新的考验。显然,应用开发者自己实现的ROM校验并不足以满足汽车应用的安全需求,汽车应用上,保证MCU程序的正确运行显然需要一套更灵活,更完善的校验机制,并且该校验机制不仅需要保证数据的可靠性,还要保证检验机制本身的可靠性。下面会介绍NXP S32系列芯片是如何利用其HSE安全子系统来为ROM数据的可靠性提供支持,进而保证汽车应用的安全稳定运行的。

poYBAGKm3aOAE67IAAByA9MKpUE952.png

图3 HSE框架HSE(Hardware Security Engine)全称为硬件安全引擎,用于给对数据的可靠性和保密性有严格要求的应用提供相应的安全服务。其有以下特点:

独立的内核,固件,存储空间;

可以为加密算法提供安全硬件加速;

支持固件升级。

可以看到图3中,HSE模块最基础也最主要的部分是它的Crypto Engine(加密引擎),其可以通过硬件实现加解密/MAC生成校验/签名验签等功能。因为HSE全面完善的算法和密钥管理机制,可以利用HSE模块可以对用户设定的存储区域进行校验,并根据检验结果执行不同的操作,正是HSE安全可靠,设置灵活的特性,构成了MCU安全稳定运行的基础。当然HSE除了能够为MCU的OTA和安全启动功能提供可靠保证外,HSE通过硬件加速特性和完善的加解密算法库还能够对网络协议进行全面可靠的支持,可以实现TLS offload,IP offload,减少网络协议的通信时延。

结语

上面提到了一些存储器常见的校验方式和NXP S32系列的HSE安全子系统,当然无论通过哪种方式,为了实现OTA和越来越多的网络应用功能,通过MCU实现更加安全可靠的数据存储传输都是现在的趋势。

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

    关注

    146

    文章

    16987

    浏览量

    350301
  • 存储器
    +关注

    关注

    38

    文章

    7452

    浏览量

    163599
  • RAM
    RAM
    +关注

    关注

    8

    文章

    1367

    浏览量

    114528
  • 数据存储
    +关注

    关注

    5

    文章

    963

    浏览量

    50856
收藏 人收藏

    评论

    相关推荐

    ROMRAM的主要区别

    在现代计算机系统中,存储技术扮演着至关重要的角色。ROMRAM是两种基本的存储类型,它们共同支撑着计算机的运行。 一、定义与基本功能 1.1 ROM(只读存储器) ROM是一种非易失
    的头像 发表于 11-04 10:01 375次阅读

    什么是RAMROM

    RAM(Random Access Memory,随机存取存储器)和ROM(Read-Only Memory,只读存储器)是计算机存储系统中的两种重要组成部分,它们在计算机的性能和功能上扮演着不同的角色。下面将分别详细解释RAM
    的头像 发表于 08-30 11:38 2960次阅读

    ram存储器和rom存储器的区别是什么

    定义: RAM(Random Access Memory):随机存取存储器,是一种易失性存储器,主要用于计算机和其他设备的临时存储。 ROM(Read-Only Memory):只读存储器,是一种
    的头像 发表于 08-06 09:17 574次阅读

    内存储器一般由romram组成吗

    直接影响计算机的性能。 内存储器通常由两种类型的存储器组成:只读存储器(ROM)和随机存取存储器(RAM)。 一、只读存储器(ROMROM的定义和特点 只读存储器(Read-Onl
    的头像 发表于 08-06 09:15 1267次阅读

    外部存储器是ROM还是RAM

    RAM(随机存取存储器)和ROM(只读存储器)有所不同,下面我们将介绍这三者的区别和特点。 1. RAM(随机存取存储器) RAM是计算机的主要工作内存,用于存储计算机运行时的程序和
    的头像 发表于 08-06 09:13 1091次阅读

    romram都是内存储器吗

    ROMRAM都是计算机存储器的重要组成部分,它们在计算机系统中扮演着不同的角色。 ROMRAM的概念 1.1 ROM(Read-Only
    的头像 发表于 08-06 09:09 561次阅读

    简述RAMROM的区别

    RAM(Random Access Memory,随机存取存储器)和ROM(Read-Only Memory,只读存储器)是计算机系统中两种不同类型的存储器,它们在构造、用途、存储原理、数据可修改性、数据保存、数据访问速度、存储容量、成本、功耗等方面存在显著区别。
    的头像 发表于 07-15 16:34 5951次阅读

    只读存储器(ROM)和随机读写存储器(RAM)的区别

    在计算机系统中,存储器是不可或缺的组成部分,它负责存储程序和数据以供处理器使用。其中,只读存储器(ROM)和随机读写存储器(RAM)是两种常见的存储器类型,它们在计算机系统中各自扮演着重要的角色。本文将详细探讨ROM
    的头像 发表于 05-12 17:04 3438次阅读

    可以同时用QSPI接2个片子,一个ROM,一个RAM吗?

    求教,可以同时用QSPI接2个片子,一个ROM,一个RAM嘛?QSPI有2个bank,能用一个接flash,一个接QPI PSRAM嘛?分别用来外扩ROMRAM嘛?
    发表于 04-10 07:43

    ramrom的作用和区别是什么

    RAM(Random Access Memory)是一种计算机内部存储器,而ROM(Read-Only Memory)则是一种只读存储器。两者在计算机系统中扮演着不同的角色,起到不同的作用。本文将
    的头像 发表于 02-04 17:05 4500次阅读

    RAMROM的区别,哪个与CPU连接

    RAM(Random Access Memory)和ROM(Read-Only Memory)是计算机中两种主要的存储器件,它们在结构、功能以及与CPU之间的连接上有不同之处。RAM主要用于临时存储
    的头像 发表于 01-31 14:14 2239次阅读

    romram的主要区别 rom断电后数据会丢失吗

    ROM(Read-Only Memory)是只读存储器,而RAM(Random Access Memory)是随机存取存储器。它们在计算机系统中扮演着不同的角色和功能。 ROM是一种非易失性存储器
    的头像 发表于 01-25 10:46 3542次阅读

    求助,如何指定变量的RAMROM地址?

    我使用 \" pragma 部分 far \" data 来指定 ram 地址,但我怎样才能指定它加载的 ROM 地址?
    发表于 01-25 06:44

    如何采用TLF35584的CAN安全机制?

    采用 TLF35584 的 CAN 安全机制
    发表于 01-18 10:03

    ROMRAM的主要区别是什么?它们是如何影响计算机性能的?

    ROMRAM的主要区别是什么?它们是如何影响计算机性能的? ROMRAM是计算机中常见的两种存储器件,它们在功能、结构和性能方面有很大的区别。下面将详细介绍
    的头像 发表于 12-11 11:42 3554次阅读