一、介绍
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 )块管理的更多相关文章

  1. UBI - Unsorted Block Images

    参考:http://www.linux-mtd.infradead.org/doc/ubi.html UBI - Unsorted Block Images Table of contents Big ...

  2. 坏块管理(Bad Block Management,BBM)

    看了很多坏块管理的文章,加上自己的理解,把整个坏块管理做了个总结. 坏块分类 1.出厂坏块 又叫初始坏块,厂商会给点最小有效块值(NVB,mininum number of valid blocks) ...

  3. BBM(Bad Block Management)坏块管理

    不管WL算法如何高明,在使用中都会碰到一个头痛的问题,那就是坏块,所以一个SSD必须要有坏块管理机制.何谓坏块?一个闪存块里包含有不稳定的地址,不能保证读/写/擦时数据的准确性.            ...

  4. Nand Flash基础知识与坏块管理机制的研究

    概述 Flash名称的由来,Flash的擦除操作是以block块为单位的,与此相对应的是其他很多存储设备,是以bit位为最小读取/写入的单位,Flash是一次性地擦除整个块:在发送一个擦除命令后,一次 ...

  5. block(代码块)的介绍以及使用方法和变量之间的关系

    http://blog.csdn.net/menxu_work/article/details/8762848 block(代码块)的介绍以及使用方法和变量之间的关系 block(代码块)的介绍以及使 ...

  6. 【转】nand flash坏块管理OOB,BBT,ECC

    0.NAND的操作管理方式      NAND FLASH的管理方式:以三星FLASH为例,一片Nand flash为一个设备(device),1 (Device) = xxxx (Blocks),1 ...

  7. Derek解读Bytom源码-孤块管理

    作者:Derek 简介 Github地址:https://github.com/Bytom/bytom Gitee地址:https://gitee.com/BytomBlockchain/bytom ...

  8. OC Block(代码块)

    #import "ViewController.h" @interface ViewController () @end @implementation ViewControlle ...

  9. nand flash 的oob 及坏块管理

    0.NAND的操作管理方式      NAND FLASH的管理方式:以三星FLASH为例,一片Nand flash为一个设备(device),1 (Device) = xxxx (Blocks),1 ...

随机推荐

  1. [深入React] 6.组件

    组件是react的大杀器,超出其他框架几百里 react 组件和dom一样也是树状结构,只能由上而下传递变量(或者调用),不可以兄弟间或者更远的发生关系,为的就是简单,而且工作的很好. 每个组件有自己 ...

  2. ajax:html5上传文件,上传之前可以实现本地预览

    本主题主要涉及两个新内容: 1.上传文件(主要使用了FormData) 2.本地预览(主要使用了FileReader) html5的FormData其实就是平时的Form表单,只是html5可以直接新 ...

  3. hdu 4848 搜索+剪枝 2014西安邀请赛

    http://acm.hdu.edu.cn/showproblem.php?pid=4848 比赛的时候我甚至没看这道题,事实上不难.... 可是说实话,如今对题意还是理解不太好...... 犯的错误 ...

  4. [开源夏令营][四] Docker remote API 之 镜像篇

    列出镜像 列出镜像,有两个可选參数,一个是all,一个是filter,all可选值有,0/False/false,1/True/true,默觉得0:filter是一个包括一个过滤对象的json,形式如 ...

  5. [React Testing] className with Shallow Rendering

    The React Shallow Renderer test utility lets us inspect the output of a component one level deep. In ...

  6. apache ab工具对网站进行压力测试

    Apache -- ab工具主要测试网站的(并发性能) 这个工具非常的强大. 基本语法 :   cmd>ab.exe –n 请求总次数  -c 并发数 请求页面的url     进入到ab.ex ...

  7. Linux命令之文件与用户权限

    1.文件管理 在Linux里,任何软件和I/O设备都被视为文件.Linux中的文件名最大支持256个字符,分别可以用A-Z.a-z.0-9等字符来命名. 和Windows不同,Linux中文件是区分大 ...

  8. JQuery中常用的 属性选择器

    jQuery中使用$()作为选择符极大提高工作效率以及方便快捷;一些常用属性的选择器由以下几种 1) $('#id') id选择器 2) $('.class') css选择器,class类名 3) $ ...

  9. Tarjan求极大强连通分量模板

    #include<iostream> #include<cstring> #include<cstdio> #include<stack> #inclu ...

  10. [Leetcode][020] Valid Parentheses (Java)

    题目在这里: https://leetcode.com/problems/valid-parentheses/ [标签]Stack; String [个人分析]这个题应该算是Stack的经典应用.先进 ...