AliOS things的 KV组件阅读笔记

本文解析了AliOS Things中的KV组件工作原理,介绍了Flash的基础知识、NorFlash与NandFlash的区别,并详细探讨了KV组件如何实现初始化、写入、读取、删除及垃圾回收等功能。

嵌入式数据库

Flash基础

  • FLASH分层结构为块(Block)>扇区(Sector)>页(Page), 以LPC55S69-EVK为例,其包含一个块(Block),块大小为640K,每个块包含20个扇区(Sector),扇区大小为32K,每个扇区包含64个页(Page),页大小为512B
  • FLASH写入,先判断如果不是FF就要先擦除. 写入只能把数据(bit)从1改为0;擦除只能把所有数据(bit)从0改为1. 所以某些数据更新的时候有备份、再写入这个步骤
  • 原来flash芯片不支持覆盖写,只能在擦除过的区域进行写操作,想要重写数据,必须进行擦除,而且擦除一般是按照扇区或者是块进行擦除。根本原因其实是flash芯片的写操作只能将1变为0,而不能将0变为1,擦除之后,flash中是全1的状态,若想将0变为1则只能通过擦除操作。所以严格来说不是不支持覆盖写,因为对于特定的数据(只要不涉及0变1)也可以进行覆盖写。
Nor Flash 和 Nand Flash的差别
  1. 使用寿命上,nand flash的擦除次数是nor的数倍。而且nand flash可以标记坏块,从而使软件跳过坏块。nor flash一旦损坏便无法再用
  2. 结构:Nor Flash和Nand Flash的存储单元结构不同。Nor Flash采用并行结构,每个存储单元都有自己的地址,数据可直接读取。而Nand Flash采用串行结构,数据必须通过多级地址转换才能读取。
  3. 读写速度:Nor Flash的读写速度比Nand Flash快,因为它可以直接访问每个存储单元,而Nand Flash需要多级地址转换,因此读写速度较慢。
  4. 寿命:Nor Flash的寿命比Nand Flash长,因为它可以进行单个存储单元的擦写和读取,而Nand Flash只能进行整块擦写和读取,容易出现坏块,缩短寿命。(nandflash按块来擦除,按页来读,norflas
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值