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

    文章

    16016

    浏览量

    343583
  • 存储器
    +关注

    关注

    38

    文章

    7148

    浏览量

    161979
  • RAM
    RAM
    +关注

    关注

    7

    文章

    1321

    浏览量

    113705
  • 数据存储
    +关注

    关注

    5

    文章

    895

    浏览量

    50584
收藏 人收藏

    评论

    相关推荐

    可以同时用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 1737次阅读

    RAMROM的区别,哪个与CPU连接

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

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

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

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

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

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

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

    请问ramrom的关系是什么?

    ramrom的关系是什么
    发表于 10-19 07:26

    巧言单片机RAMROM

    巧言单片机RAMROM
    的头像 发表于 10-17 15:45 493次阅读

    单片机中的RAM vs ROM

    单片机中的RAM vs ROM
    的头像 发表于 09-28 17:57 690次阅读

    stc11f01的romram多大的?

    stc11f01的romram多大的
    发表于 09-22 06:21

    ch32v307的romram参数

    ch32v307的romram参数 在计算机系统中,RAMROM都是常见的存储设备。不同之处在于它们的运行方式和连续性。在本文中,我们将详细介绍ch32v307的
    的头像 发表于 08-22 15:53 894次阅读

    FPGA中常用的存储器资源

    本文主要介绍FPGA中常用RAMROM、CAM、SRAM、DRAM、FLASH等资源,包括特性、工作原理、应用场景等。
    发表于 08-15 15:41 1458次阅读

    ROMRAM、FLASH、DDR、EMMC的简单解释

    ROM:只读存储器,内容写入后就不能更改了,制造成本比较低,常用于电脑中的开机启动如启动光盘bios,在系统装好的电脑上时,计算机将C盘目录下的操作系统文件读取至内存,然后通过cpu调用各种配件进行工作这时系统存放存储器为RAM
    发表于 06-25 10:07 4110次阅读
    <b class='flag-5'>ROM</b>、<b class='flag-5'>RAM</b>、FLASH、DDR、EMMC的简单解释

    ROMRAM的主要区别 存储器rom的功能是什么

    ROM中存储的数据在断电后依然存在,不会丢失,因此也被称为非易失性存储器。而RAM是易失性存储器,当断电时,其中的数据将会丢失。
    发表于 06-20 16:38 2236次阅读

    Vivado:ROMRAM的verilog代码实现

    本文主要介绍ROMRAM实现的verilog代码版本,可以借鉴参考下。
    的头像 发表于 05-16 16:57 926次阅读