查看: 4194|回复: 24

对NVM区的合理使用

[复制链接]
发表于 2019-7-25 09:42:22 | 显示全部楼层 |阅读模式
关键词: 加密芯片 , NVM区
凌科芯安多款加密芯片均设置了NVM区,因其具备掉电不擦除的物理特性和防暴力破解等安全特性,众多用户会利用NVM区存储重要数据。虽然使用方法简单,但有一点技术细节容易被忽视。NVM区有10万次擦写寿命或10年存储寿命,因此用户使用时要结合自己项目的应用场景和业务逻辑进行合理分配,达到高效使用NVM区,下面展开说明。
问题一:更新数据逻辑不合理
NVM区的写操作是按页实现的,应多以页为单位进行写操作。举例:有些用户将多组数据存储于同一NVM页内,但每更改其中一组数据时,就对该页执行了一次写操作,这其实是不提倡的。正确的做法是,尽量将该页内的多组数据统一更新,这样能有效减少扇区擦写次数,延长NVM区寿命。
问题二:NVM区地址划分使用不合理
同样因为按页操作的原因,用户应将不同数据分组按页对齐,避免数据跨页存储的情况发生。举例:有些用户将一组连续数据放在了两页地址交界处,当对该组数据进行更新写操作时,实际就对两页数据同时实行了写操作,即使只写了2字节数据,也会造成1024字节区域(假设目标加密芯片的NVM扇区大小是512字节)的写寿命减少,这种操作是不提倡的。
问题三:NVM区未做安全防护引起数据丢失
NVM区的写操作是由三步完成的,第一步读取目标扇区内原数据,第二步擦除目标扇区内数据,第三步将修改后的新数据和未做修改的原数据写回目标扇区。因此当意外断电等情况发生时,加密芯片恰好执行完写NVM区的第二步操作,且未完成写NVM区的第三步操作,就会造成目标区域内数据发生无规律错乱。当然也有解决办法,下期分解。
发表于 2019-7-26 15:32:19 | 显示全部楼层
LKT产品的NVM区存储空间是多大?
发表于 2019-7-26 17:12:19 | 显示全部楼层
4k、16K的都有吧,具体看型号
发表于 2019-7-26 17:20:40 | 显示全部楼层
4k、16K的都有吧,具体看型号
发表于 2019-7-26 18:43:33 | 显示全部楼层
可以介绍一下相关的型号吗?
发表于 2019-7-26 21:26:35 | 显示全部楼层
同问,楼主推荐一款内部设置了NVM的加密芯片呗
发表于 2019-7-27 09:19:16 | 显示全部楼层
型号很多,几乎每个产品都有nvm区,具体你咨询一下吧
发表于 2019-7-28 09:54:04 | 显示全部楼层
Nvm就是铁电吧?怎么做到按页写?有实例吗?
发表于 2019-7-28 10:47:38 | 显示全部楼层
这个NVM应该跟FLASH类似吧,按页写,应该是一次写入256字节或者512字节吧
发表于 2019-7-28 10:48:10 | 显示全部楼层

..

      ..
发表于 2019-7-28 15:05:52 | 显示全部楼层
期待楼主下期文章的更新
 楼主| 发表于 2019-7-29 09:03:04 | 显示全部楼层
内部带NVM的MCU芯片,在程序执行中通常会根据条件判断去执行读写NVM单元的操作,特别是写NVM单元的操作,要注意。否则很容易造成误写NVM单元或者写入NVM单元的值错误,造成系统运行异常。
发表于 2019-7-29 09:21:24 | 显示全部楼层
上面说的没错。但是读写NVM的操作一般会被写到芯片固件内部,以提供api的形式供开发者使用,所以NVM读写的稳定性和安全性还是有保证的。
发表于 2019-7-29 14:49:43 | 显示全部楼层
楼主家的多款加密芯片内部设置了NVM去,其特点是掉电不擦除,利用NVM区存储重要数据,那又如何确保能在芯片内部安全运行的呢?
发表于 2019-7-29 14:52:51 | 显示全部楼层
啥在芯片安全运行?NVM区数据?只要不对外开放读写接口,内部运行肯定安全。若说是其他的安全,那具体看你的算法设计了。
发表于 2019-7-29 22:33:15 | 显示全部楼层
本文中介绍nvm区如何更好的使用其擦除次数,那么nvm对比其他有什么优势呢?
发表于 2019-7-30 11:00:11 | 显示全部楼层
具有扩展性好、静态能耗低以及非易失性等优势
发表于 2019-7-30 11:23:14 | 显示全部楼层
写操作中途断电还确实麻烦,很想知道如何解决,期待楼主下期文章
发表于 2019-7-30 13:31:46 | 显示全部楼层
MCU的软件开发工具链默认都是在下载调试过程中,将全部MCU的NVM存储器擦除重新编程的,怎么操作才不会让它在下载调试的时候不用重新编程呢?
发表于 2019-7-30 13:35:31 | 显示全部楼层
MCU的软件开发工具链默认都是在下载调试过程中,将全部MCU的NVM存储器擦除重新编程的,怎么操作才不会让它在下载调试的时候不用重新编程呢?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
快速回复 返回顶部 返回列表