【整理】nand相关

记录nand相关知识,主要是mtd和ubi

什么是UBI

它是一种flash管理方式

flash是一系列连续的物理擦除块组成的。
UBI卷是一系列连续的逻辑擦除块(eraseblock),每一块都可以被映射到物理分区,这种映射是由UBI管理的。
UBI是靠什么来管理这些物理擦除块的呢??
首先要区分一些层次:

  1. MTD subsystem :
    provide ubiform interface to access flash (e.g. /dev/mtd0)
  2. UBI subsystem
    UBI works on top of MTD devices ,provide a notion of UBI volumes
  3. UBIFS file system
    work on top of UBI volume关系图

UBI介绍

综述

UBI全称Unsorted Block Images,是一种原始flash设备的卷管理系统。这个系统能在一个物理的flash设备上管理操纵多个卷并且能在整个flash芯片上实现损耗均衡。
从某种意义上说,UBI和LVM有点相似,LVM将逻辑扇区映射到物理扇区上面,UBI映射逻辑擦除块到物理擦除块。但是除了映射,UBI还实现了全局的损耗均衡和透明的I/O错误处理。

  • 一个UBI卷就是一串连续的逻辑擦除块。每一个逻辑擦除块可以被映射到任何一个物理擦除块上面。这个映射是由UBI管理,这种映射对用户是透明的,同时这种映射也是UBI实现全局的损耗均衡的基础。通过每一个物理擦除块记录的擦除计数,可以将数据从损耗严重的物理块转移到损耗较少的擦除块。
  • UBI卷的大小在卷被创建的时候被指定,这个大小也可以动态的被改变。有用户空间工具可以用来操作UBI卷。
  • 总共有两种类型的UBI卷,一种是动态卷,一种是静态卷。静态卷是只读的,内容被CRC-32校验保护。动态卷可读可写,上层软件负责数据完整性。
  • UBI能管理flash的坏块,这样上层软件可以不需要考虑坏块。UBI有一个预留的物理块池,当一个物理擦除块坏掉了,UBI会利用预留的块来替代这个坏块。UBI将数据从新出现的坏块上转移到预留的好块上面。这个功能的好处就是应用层软件不会感知到底层的I/O错误。

NAND Flash在读写的时候可能会出现bit翻转,bit翻转可以被ECC校验来纠正,但是这种现象长期积累会导致数据丢失。UBI将出现bit翻转块上的数据转移到其它块上面。这种机制叫做冲刷,冲刷过程在后台完成,对上层软件是透明的。

下面是UBI特性的列表

  1. UBI提供一种卷的机制,可以动态创建、删除、重设置卷大小等操作

  2. UBI在整个Flash设备上提供了损耗平衡的机制,你可以不断的对某一个逻辑擦除块进行擦除,UBI会将你的操作均匀分散到其它各个物理块上面。

  3. UBI透明的处理Flash上面的坏块

  4. UBI通过冲刷机制最大限度的减小数据丢失的几率

  5. UBI和MTD分析对比,有如下的特点。

  6. 两者都由擦除块组成,在UBI中是逻辑擦除块,在MTD分区中是物理擦除块。

  7. 两者都支持三种基本的擦做,read、write和erase

  8. UBI卷没有擦除块损耗均衡的限制,用户层软件不需要关注损耗均衡,简化了用户层软件的设计

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值