zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    2653 区间xor
    c++位运算
    洛谷P1233 木棍加工
    c++背包问题
    FOC基本调试方法[转]
    用于下载AD官网登录账号:User name: fuxin918@fuxin918.com Passeword: s6c0W1w8
    STC10F10XE定时器中断输出10KHz的方波程序
    学习DSP(三)安装C2833x/C2823x C/C++ 头文件和外设示例-压缩包
    学DSP(二):目标芯片28335,GO!
    学DSP(一):开始
  • 原文地址:https://www.cnblogs.com/keanuyaoo/p/3347806.html
Copyright © 2011-2022 走看看