AliOS Things KV组件的写平衡特性

摘要: KV组件的写平衡(磨损平衡)特性就是通过异地更新、垃圾回收等策略来平衡flash介质各个存储区块的磨损程度,以避免某些“特定”存储区块因过度使用而形成坏区,从而延长flash的使用寿命。

前言

KV组件是AliOS Things中一个以Key-Value方式进行持久化存储的轻量级组件,主要为基于nor flash的小型MCU设备(Micro Control Unit)提供通用的Key-Value持久化存储接口。KV组件支持写平衡(磨损平衡)、掉电保护特性,且具有相当低的footprint。这里主要介绍KV组件在设计写平衡特性时的一些考量。
What – KV组件的写平衡特性是什么

对于flash介质而言,它是有一定的擦写次数限制的。如果针对介质上一个固定地址进行重复的擦除、写入,将会导致该区域的使用寿命降低,甚至出现介质损坏的情况。KV组件的写平衡(磨损平衡)特性就是通过异地更新、垃圾回收等策略来平衡flash介质各个存储区块的磨损程度,以避免某些“特定”存储区块因过度使用而形成坏区,从而延长flash的使用寿命。
Why – KV组件为何需要写平衡特性
KV组件的设计初衷是为了给基于nor flash的小型MCU设备提供一个可以存储配置信息的模块。对于单个配置信息而言,一般所需存储的字节数大多在十几个字节~几百个字节量级,而一般nor flash的最小擦除单位(sector)都在4K字节以上,且根据flash介质需先擦再写的特点,如果没有写平衡特性,每次新写入或更新配置信息都会带来一次flash介质擦除操作,这将大大影响flash介质的使用寿命(一般nor flash的擦除次数限制大约10万次左右)。

下表是flash介质在有无写平衡特性下重复写入使用寿命的理论计算对比:
(限制条件:flash擦除sector大小为4k, 擦除次数限制为10W次,每日写入次数5000次)
图片描述

根据上表的对比,KV组件的写平衡特性在几百个字节量级的写入情况下起码可以延长flash 8倍以上的使用寿命。

How – KV组件写平衡特性的实现考量
由于小型物联网嵌入式设备的硬件资源较为匮乏,对code size以及RAM的占用size比较敏感。所以基于资源消耗的考量,写平衡特性在KV组件中的实现遵循make it simple原则,主要依赖以下两个策略来实现:

  1. 异地更新策略:
    Key-Value键值对采用顺序写入、异地更新的方式,即不再在原存储位置擦除重写,而是在其余空闲位置写入新键值并将原键值标记无效等待回收。这样既可以减少flash的擦除操作次数,又可以提高flash的空间利用率,也避免了对“特定”存储区块过度使用的问题。
    示意图如下:

图片描述

  1. 垃圾回收策略:
    当flash存储区块的剩余可用空间达到阈值时,会触发垃圾回收机制。垃圾回收机制采用基础的SGC算法进行资源回收释放,即当系统触发垃圾回收时,从当前写入块的下一个存储块开始依次检查存储块的管理状态,若存储块的管理状态为Dirty状态,则将该存储块中的有效数据依次挪向垃圾回收预留的空闲存储块,当数据迁移完成后,会擦除Dirty存储块并标记可用空闲状态。
    示意图如下:

图片描述

小结
KV组件的写平衡特性,在兼顾footprint需求的同时,也能有效的提升flash的使用寿命。不过也是由于footprint的要求,写平衡特性在算法的实现相对较为简单,在资源更丰富的场景下,可以采用更复杂高效一些的平衡算法。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/523107.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

解决win10系统下,git Bash闪退的问题

问题描述 在git官网下载了软件,安装之后,git Bash出现闪退现象,同时在当前文件夹下面会生成一个mintty.exe.stackdump的文件。 git GUI同样打不开,同时会报出错误,具体情况如下图: 点击百度云链接,下载一个…

AliOS Things网络适配框架 - SAL

摘要: 很多物联网应用场景中,都需要使用主控MCU外接连接芯片(如WiFi、NB-IoT)的解决方案。为方便这类场景的开发,AliOS Things提供了Socket Adapter Layer(SAL)框架和组件方案 AliOS Things中提…

文末送书啦!| Device Mapper,那些你不知道的Docker核心技术

戳蓝字“CSDN云计算”关注我们哦!接触Docker 比较早的同学应该知道,Docker 在最开始只能在Ubuntu和Debian等少数的Linux 发行版上运行,并且在这些发行版上默认使用的存储驱动为AUFS。由于Linux 并未将AUFS的支持纳入自己的内核主线(据说是因为…

铃木uy125最高时速_五菱宏光mini EV月销三万辆,铃木是否后悔退出中国?

国内新能源汽车市场一直是“兵家必争之地”,大到传统汽车厂商,小到造车新势力,都希望能在新能源汽车市场分一杯羹。但长久以来,大多数汽车厂商都只注意到了一部分中国消费者对于“大”的需求,忽视了微型车市场&#xf…

服务器读取账号密码,WIN服务器得明文密码神器 mimikatz、WCE

一、mimikatz(自己亲试,可以在win7 x64下使用)昨天有朋友发了个法国佬写的神器叫mimikatz 让我们看下还有一篇用这个神器直接从 lsass.exe 里获取windows处于active状态账号明文密码的文章http://pentestmonkey.net/blog/mimikatz-tool-to-recover-cleartext-passwo…

100%移植阿里云移动测试技术,竟仅需1周?!——移动测试专有云(3)——内容详解...

摘要: Android兼容性测试旨在帮助解决Android应用在不同真机机型上的各类兼容性问题,包括 Crash/ANR分析、6项性能分析、UI检测、3个版本的覆盖安装检测等。Android兼容性测试使用非常简单,客户只需要提交被检测的APK文件(如需登录…

投篮机投篮有技巧吗_「技巧干货」高手练习投篮的几个技巧,让投篮变得更实用...

会打篮球的都知道,篮球主要的是用更高于对手的得分来取得胜利;然而,让很多的球友烦恼的是,投篮时因为不够稳定,而导致每一场的发挥都不一样,全靠运气投球;这可是球场上的一大禁忌,人…

天龙八部服务器都需要那种系统,天龙八部排行榜系统怎么看 排行榜系统分类介绍...

天龙八部排行榜系统怎么看?有这么一群人,不但战力高,等级高,在其他玩家眼中,他们就是膜拜的大神,他们便是游戏中排行榜上的大神玩家。排行榜分类等级:排行榜打开后的第一个排名就是玩家角色的等级排名&…

SDN精华问答 | 了解SDN架构

SDN火热了好一阵子,无论运营商、政府企业、投资机构,一段时间,不知道SDN、不能甩几个SDN相关的名词术语,似乎都落后于时代了。今天,就来看看关于SDN的精华问答吧。1Q:SDN的本质属性? A&#xff…

SpringBoot2整合Activiti6工作流框架

文章目录下载实战操作:创建用户3 创建app4 选择我们的指定的流程图下载 wget https://github.com/Activiti/Activiti/releases/download/activiti-6.0.0/activiti-6.0.0.zip浏览器 http://localhost:8080/activiti-app/#实战操作: 创建用户 2.创建流程…

如何转obj_Java 开发中如何正确的踩坑,看完这个你可以避免50%的错误

为什么说一个好的员工能顶 100 个普通员工我们的做法是,要用最好的人。我一直都认为研发本身是很有创造性的,如果人不放松,或不够聪明,都很难做得好。你要找到最好的人,一个好的工程师不是顶10个,是顶100个…

ajax 在新选卡打开,开始使用 AJAX 控制工具包 (VB) | Microsoft Docs

AJAX 控件工具包入门 (VB)05/12/2009本文内容了解开始使用 AJAX 控制工具包所需的所有知识。AJAX 控制工具包包含 30 多个免费控件,可用于ASP.NET应用程序中。 在本教程中,您将了解如何下载 AJAX 控件工具包,并将工具包控件添加到可视化工作室…

IBM斥资340亿美元完成收购红帽;亚马逊云计算Q2营收数据新鲜出炉;甲骨文推出Oracle专用自治数据库云……...

关注并标星星CSDN云计算极客头条:速递、最新、绝对有料。这里有企业新动、这里有业界要闻,打起十二分精神,紧跟fashion你可以的!每周三次,打卡即read更快、更全了解泛云圈精彩newsgo go go Waymo应用(图片来…

AliOS Things全链路优化-CoAP FOTA

摘要: FOTA(Firmware Over-The-Air)即空中固件升级功能;CoAP(Constrained Application Protocol),字面意思为受限的应用协议,基于UDP,专为资源有限的物联网设备量身定制;所以AliOS Things的纯Co…

关于IoT网络的一些特征的探讨

摘要: 网络是IoT设备非常关键的部分,本文和大家一起探讨IoT网络的几个重要特征,及AliOS Things尝试提供的一些解决方案。 IoT网络的特征包括IP网络,UDP网络,多种通信手段及拓扑。而AliOS Things也尝试提供包括CoAP,SAL…

字典 学生成绩等级_python-列表及字典进阶

# -*- coding: utf-8 -*-l list(python) print(l) l[2:] zza print(l)numbers [1, 5] print(numbers)numbers[1:1] [2, 3, 4] print(numbers)numbers[1:4] [] print(numbers)d {lilei: 98, hanmeimei: 99} # 写字典的方法 print(d)message [(lilei, 98), (hanmeimei, 9…

highcharts ajax 数据格式,Highcharts ajax获取json对象动态生成报表生成 .

最近做个项目,项目经理想做一个统计报表,在网上查看些资料就选用Highchars 这里和大家分享下使用心得。重点说明此代码是针对一个报表显示多个项对比显示。直接贴代码:web端$(document).ready(function() {var options {chart: {renderTo: c…

5G承载网,到底有哪些关键技术?

戳蓝字“CSDN云计算”关注我们哦!作者 | 小枣君来源 | 鲜枣课堂之前小枣君给大家介绍了5G承载网的基本知识(链接:5G承载网到底有什么不同?)。今天,我们再来看看5G承载网中的常见关键技术。首先&#xff0c…

SpringBoot2整合Activiti6工作流框架 源码

git clone gitgithub.com:gb-heima/Activiti.git 创建分支 cd Activiti git checkout -b study6 activiti-6.0.0编译项目 mvn clean test-compilercd modules/activiti-ui//activiti-appmvn clean tomca7:rundemo开始 流程图绘制 首先创建一个基本的maven工程 初步流程图效果…

一个智能运维算法测试方法

摘要: 质量是企业长远生存的根基,是企业竞争的免死金牌。作为质量控制团队的一员,保障和提高所负责系统的质量,是工作的核心。而完善的测试覆盖,是保证质量的有效手段。 写在前面 质量是企业长远生存的根基&#xff0…