UBI(unsorted block image )块管理
一、介绍
ubi是unsorted block images的缩写,是由IBM开发设计的,它与ubifs有不同的含义,ubifs是一种文件系统(nokia开发的);而ubi是一种块管理工具,工作在mtd之上,文件系统之下
示意图如下:
-------------------flash file system(e.g.,UBIFS)-------------------------------
-------------------------ubi layer---------------------------------------------
-------------------------mtd layer---------------------------------------------
----------------------phisical flash-------------------------------------------
二、概念
ubi是种逻辑块管理工具,与flash的物理块之间有个map操作,类似于磁盘管理中的LVM
ubi LEB(logic erase bclock) mtd PEB(phisicak erase block)
__________________ __________________
|__________________| \ |__________________|
__________________ \ / __________________
|__________________|\ / \ |__________________|
__________________ \ / __________________
|_________________ |--- /----- |__________________|
ubi volume A / \ __________________
/ \ |__________________|
__________________ / __________________
|__________________|/ /|__________________|
__________________ / __________________
|__________________|--------|__________________|
__________________ / __________________
|_________________ |\ / |__________________|
__________________ \/ __________________
|_________________ |/ \ |__________________|
ubi volume B \ __________________
\ |__________________|
__________________
|__________________|
ubi的主要就是逻辑块映射,创建ubi volume,为上层文件系统服务。
三、主要特征
1)ubi 可以动态的创建、移除和resize valume (可以称之为分卷)
2)ubi 通过逻辑块的映射可以实现 wear-leveling (磨损平衡,避免部分块被过度使用导致损坏)
3)ubi 对上层文件系统来说可以透明处理坏块,减少了文件系统的复杂度
4)ubi通过scrubbing方式,可以减少数据出错的几率(当检测到错误时,选择一个新块映射,而后将数据拷贝进去)
四、增加的flash负担
1) 2 PEB block来存储 ubi volume table (其中一个是另一个的备份,基于安全的考虑)
2)1 PEB block用来存储wear-leveling相关的信息
3)1 PEB block为Atomic LEB change服务,主要就是类似于一个代码中的swap操作:假设 逻辑块L对应于物理块p1,为atomic leb change服务的块为p2;当写入L时,并没有写入p1,而是写入p2;若写入过程ok,则将L映射到p2,若存在问题,仍然映射到p1
4) 在每个PEB的开始,存储EC header(擦除块号等信息)和VID header(该块所属的volume id 和 逻辑块号)信息;所以LEB的可使用大小小于PEB
引文:http://www.linux-mtd.infradead.org/doc/ubi.html#L_vol_table
UBI(unsorted block image )块管理的更多相关文章
- UBI - Unsorted Block Images
参考:http://www.linux-mtd.infradead.org/doc/ubi.html UBI - Unsorted Block Images Table of contents Big ...
- 坏块管理(Bad Block Management,BBM)
看了很多坏块管理的文章,加上自己的理解,把整个坏块管理做了个总结. 坏块分类 1.出厂坏块 又叫初始坏块,厂商会给点最小有效块值(NVB,mininum number of valid blocks) ...
- BBM(Bad Block Management)坏块管理
不管WL算法如何高明,在使用中都会碰到一个头痛的问题,那就是坏块,所以一个SSD必须要有坏块管理机制.何谓坏块?一个闪存块里包含有不稳定的地址,不能保证读/写/擦时数据的准确性. ...
- Nand Flash基础知识与坏块管理机制的研究
概述 Flash名称的由来,Flash的擦除操作是以block块为单位的,与此相对应的是其他很多存储设备,是以bit位为最小读取/写入的单位,Flash是一次性地擦除整个块:在发送一个擦除命令后,一次 ...
- block(代码块)的介绍以及使用方法和变量之间的关系
http://blog.csdn.net/menxu_work/article/details/8762848 block(代码块)的介绍以及使用方法和变量之间的关系 block(代码块)的介绍以及使 ...
- 【转】nand flash坏块管理OOB,BBT,ECC
0.NAND的操作管理方式 NAND FLASH的管理方式:以三星FLASH为例,一片Nand flash为一个设备(device),1 (Device) = xxxx (Blocks),1 ...
- Derek解读Bytom源码-孤块管理
作者:Derek 简介 Github地址:https://github.com/Bytom/bytom Gitee地址:https://gitee.com/BytomBlockchain/bytom ...
- OC Block(代码块)
#import "ViewController.h" @interface ViewController () @end @implementation ViewControlle ...
- nand flash 的oob 及坏块管理
0.NAND的操作管理方式 NAND FLASH的管理方式:以三星FLASH为例,一片Nand flash为一个设备(device),1 (Device) = xxxx (Blocks),1 ...
随机推荐
- 关于数据表命名为mysql保留的时候的操作
今天操作数据表的时候,发现order数据表无法进行操作,必须加上反单引号才能进行操作,查了一下原因: 反引号是用来区别mysql关键字的,比如,如果你有一个表名叫select,你就必须写成`selec ...
- Gson 基础教程 —— 自定义类型适配器(TypeAdapter)
1,实现一个类型适配器(TypeAdapter) 自定义类型适配器需要实现两个接口: JsonSerializer<T> JsonDeserializer<T> 和两个方法: ...
- Linux 下文件监控
本文转自http://www.jiangmiao.org/blog/2179.html 在日常应用中,常常会遇到以下场景,监控文件夹A,若文件夹中的B文件发生变化,则执行C命令.Linux下可以通过i ...
- MySQL删除外键定义的方法
MySQL外键在定以后,如果我们不再需要这个外键,可以进行删除操作,下面就为您介绍MySQL删除外键定义的方法,供您参考. 不知道大家有没有发现,在定义外键的时候articles.member_id外 ...
- 只要关闭浏览器,session就消失了
程序一般都是在用户做log off的时候发个指令去删除session,然而浏览器从来不会主动在关闭之前通知服务器它将要被关闭,因此服务器根本不会有机会知道浏览器已经关闭.服务器会一直保留这个会话对象直 ...
- IOS设计模式学习(18)模板方法
1 前言 模板方法模式是面向对象软件设计中一种非常简单的设计模式.其基本思想是在抽象类的一个方法定义“标准”算法.在这个方法中调用的基本操作由子类重载予以实现.这个方法成为“模板”.因为方法定义的算法 ...
- 命令行运行android模拟器
创建模拟器 android create avd --name avd_4.1 --target "android-16" --abi armeabi-v7a Android 4. ...
- POJ 2502 Subway(迪杰斯特拉)
Subway Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 6692 Accepted: 2177 Descriptio ...
- 用GDB调试多进程程序
在子进程中sleep.然后attach上去. gdb --pid=123456 ps出子进程的id,gdb attach 进程号. http://www.ibm.com/developerworks/ ...
- zabbix监控应用连接数
zabbix使用用户自定义键值来监控应用系统连接数: 1.修改配置文件zabbix_agentd.conf 格式: UserParameter=<key>,<shell comman ...