zhanglu95

对NVM区的合理使用

0
阅读(329) 评论(22)

凌科芯安多款加密芯片均设置了NVM区,因其具备掉电不擦除的物理特性和防暴力破解等安全特性,众多用户会利用NVM区存储重要数据。虽然使用方法简单,但有一点技术细节容易被忽视。NVM区有10万次擦写寿命或10年存储寿命,因此用户使用时要结合自己项目的应用场景和业务逻辑进行合理分配,达到高效使用NVM区,下面展开说明。

问题一:更新数据逻辑不合理

NVM区的写操作是按页实现的,应多以页为单位进行写操作。举例:有些用户将多组数据存储于同一NVM页内,但每更改其中一组数据时,就对该页执行了一次写操作,这其实是不提倡的。正确的做法是,尽量将该页内的多组数据统一更新,这样能有效减少扇区擦写次数,延长NVM区寿命。

问题二:NVM区地址划分使用不合理

同样因为按页操作的原因,用户应将不同数据分组按页对齐,避免数据跨页存储的情况发生。举例:有些用户将一组连续数据放在了两页地址交界处,当对该组数据进行更新写操作时,实际就对两页数据同时实行了写操作,即使只写了2字节数据,也会造成1024字节区域(假设目标加密芯片的NVM扇区大小是512字节)的写寿命减少,这种操作是不提倡的。

问题三:NVM区未做安全防护引起数据丢失

NVM区的写操作是由三步完成的,第一步读取目标扇区内原数据,第二步擦除目标扇区内数据,第三步将修改后的新数据和未做修改的原数据写回目标扇区。因此当意外断电等情况发生时,加密芯片恰好执行完写NVM区的第二步操作,且未完成写NVM区的第三步操作,就会造成目标区域内数据发生无规律错乱。当然也有解决办法,下期分解。

  1. 只要做好备份和防掉电机制,数据因突然掉电损坏的可能就会极低。

  2. 没有这个潜力,这个只是类似于芯片的FLASH


  3. NVM有低能耗、容量易于扩展的特点,我觉得将有潜力取代DRAM作为计算机内存。


  4. 凡事没有那么绝对哦 我觉得也会存在一定的安全漏洞的

  5. NVM区就一定安全吗?

  6. 不一定非得在调试阶段,程序运行中也可以写,预置信息可以再烧录时候写入,应用场景不同,选择不同,

  7. MCU的软件开发工具链默认都是在下载调试过程中,将全部MCU的NVM存储器擦除重新编程的,怎么操作才不会让它在下载调试的时候不用重新编程呢?

  8. 写操作中途断电还确实麻烦,很想知道如何解决,期待楼主下期文章

  9. 具有扩展性好、静态能耗低以及非易失性等优势


  10. 本文中介绍nvm区如何更好的使用其擦除次数,那么nvm对比其他有什么优势呢?

  11. 啥在芯片安全运行?NVM区数据?只要不对外开放读写接口,内部运行肯定安全。若说是其他的安全,那具体看你的算法设计了。

  12. 楼主家的多款加密芯片内部设置了NVM去,其特点是掉电不擦除,利用NVM区存储重要数据,那又如何确保能在芯片内部安全运行的呢?


  13. 说的没错,但读写NVM的操作一般会被写到芯片固件内部,以api形式提供开发者用,所以读写稳定性和安全性还是有保证的

  14. 内部带NVM的MCU芯片,在程序执行中通常会根据条件判断去执行读写NVM单元的操作,特别是写NVM单元的操作,要注意。否则很容易造成误写NVM单元或者写入NVM单元的值错误,造成系统运行异常。

  15. 期待楼主下期文章的更新