Presentation is loading. Please wait.

Presentation is loading. Please wait.

UBI – Unsorted Block Images

Similar presentations

Presentation on theme: "UBI – Unsorted Block Images"— Presentation transcript:

1 UBI – Unsorted Block Images
Artem Bityutskiy

2 Introduction A new technology for flash devices Designed by IBM
Publicly accessible Git tree GPL license More information at

3 Plan Linux MTD overview UBI overview

4 Linux MTD overview

5 character device (/dev/mtd0)
MTD overview MTD stands for Memory Technology Devices MTD is a Linux subsystem (drivers/mtd/) MTD provides uniform access to various flash devices MTD provides a generic API for that MTD provides an “MTD device” abstraction JFFS2 character device (/dev/mtd0) MTD device, MTD API NAND NOR DataFlash AG-AND OneNAND ECC’d NOR

6 MTD device MTD device consists of eraseblocks
Eraseblock size varies, typically Kilobytes Eraseblocks may be written to , but not re-written Whole eraseblock has to be erased first Then it is possible to write there write write write write write re-write write X Eraseblock, 128K MTD device

7 MDT device vs Block device
Consists of sectors Sectors are small (512, 1024 bytes) 2 operations: read and write Bad sectors are hidden by hardware Sectors do not get worn out MTD device Consists of eraseblocks Eraseblocks are larger ( Kilobytes) 3 operations: read, write and erase Bad eraseblocks are not hidden Eraseblocks get worn-out after erasures. MTD device is more difficult to handle

8 MTD partitions Flash chip may be split on several MTD partitions
MTD partition is a set of consecutive eraseblocks MTD partitions is a physical flash area Partition 1 (e.g., initfs) Partition 2 (e.g., rootfs) … so on

9 Drawbacks of MTD partitions
MTD partitions are static – now way to change them “on-flight” Do not provide wear-leveling for the whole chip JFFS2 Partition 1 Bad blocks Partition 2

10 UBI overview

11 Flash File System (e.g., UBIFS)
UBI layer Flash File System (e.g., UBIFS) UBI layer MTD layer Physical flash

12 MTD device (physical flash)
Logical Volumes UBI provides logical volumes instead of MTD partitions UBI volumes are in a way similar to LVM volumes UBI volumes may be dynamically created, deleted and re-sized Volume A Volume B Volume B Volume C Volume C Create UBI volume “C” - size 20 logical eraseblocks Create UBI volume “B” - size 15 logical eraseblocks Create UBI volume “A” – size 10 logical eraseblocks Delete UBI volume “A” Re-size volume “C” to 40 logical eraseblock … and so on Re-size volume B to 10 logical eraseblocks MTD device (physical flash)

13 MTD device (physical flash)
Wear-leveling UBI does wear-leveling across whole MTD device! Wear-leveling is done by UBI, not by the UBI user! JFFS2 Boot volume RootFS volume DataStorage volume MTD device (physical flash)

14 UBI volume vs. MTD partition
Consists of physical eraseblocks (PEB) Does not implement wear-leveling Admits of bad PEBs UBI volume Consists of logical eraseblocks (LEB) Implements wear-leveling Devoid of bad LEBs Advantages of UBI Allows dynamic volume creation, deletion and re-sizing  more flexibility Eliminates the “wear” problem  simpler software Eliminates bad eraseblocks problem  simpler software

15 How it works LEBs are mapped to PEBs Any LEB may be mapped to any PEB
erase read read write Return 0xFFs Static read-only data Volume A Volume B LEB 0 LEB 1 LEB 2 LEB 3 LEB 4 LEB 0 LEB 1 LEB 2 UBI layer PEB 0 PEB 1 PEB 2 PEB 3 PEB 4 PEB 5 PEB 6 PEB 6 PEB 7 PEB 8 PEB 9 PEB 10 Low erase counter High erase counter Re-map LEB Move data MTD device

16 Bad eraseblocks handling
UBI volumes are devoid of bad eraseblocks UBI does proper error recovery transparently Write more data The data have been successfully written! An UBI volume Write newcoming data to this PEB Re-map the LEB to this PEB Write error! The eraseblock’s become bad! Partially filled physical eraseblock Mark this PEB s bad Bad physical eraseblock Empty physical Eraseblock No panic! Recover the data to a good PEB

17 UBI interfaces UBI character devices:
/dev/ubi0, /dev/ubi1, … – UBI devices: volume create, delete, re-size, and get device description operations /dev/ubi0_0, /dev/ubi0_1, … - UBI volumes: read, write, update, and get volume description operations UBI sysfs interface: /sys/class/ubi UBI in-kernel interface: include/linux/mtd/ubi.h

18 Volume update operation
Useful for software updates Volume is in “corrupted” state if update is interrupted “Corrupted” volumes are not usable and must be updated

19 Static and dynamic UBI volumes
Dynamic volumes are read-write Static volumes are read-only Static volumes are protected by CRC-32 checksum

Download ppt "UBI – Unsorted Block Images"

Similar presentations

Ads by Google