FLASH闪存文件系统研究

转载 2015年11月19日 10:42:05
FLASH闪存文件系统研究
,转自中国存储网,原文链接:http://www.chinastor.com/a/jishu/FS/0112110212015.html
什么是FLASH闪存文件系统?

在嵌入式领域,FLASH是一种常用的存储介质,由于其特殊的硬件结构,所以普通的文件系统如ext2,ext3等都不适合在其上使用,于是就出现了专门针对FLASH的文件系统,比较常用的有jffs2,yaffs2,logfs,ubifs。

闪存文件系统(Flash file system),是一种为了在闪存设备上存储数据而设计的文件系统。随着移动设备的日渐增加,闪存的存储能力增加以及价格下降,这类型的文件系统变得越来越普遍。

闪存文件系统介绍

• JFFS2 : Journaling Flash File System version 2

(David Woodhouse)

– Has been integrated in Linux kernel since 2001.

– Commonly used for low volume flash devices.

– Compression is supported.

• YAFFS2 : Yet Another Flash File System version 2

(Charles Manning)

– YAFFS is the first file system designed specifically for NAND (since 2001).

– Version 2 supports 2KB large page NAND (since 2005).

– Compression is not supported.

• LogFS : Log Flash File System

(Jörn Engel)

– Mounting time is short (since 2005)

– Under development (Needs more testing on large devices)

– User data is not compressed, while meta data is compressed.

(Jörn said that user data is also compressed in ELC2009, but we could not see it in our

testing. We used the default settings.)

• UBIFS : Unsorted Block Image File System

(Artem Bityutskiy, Adrian Hunter)

– Mainlined in 2.6.27 in Oct 2008.

– Works on top of UBI volumes.

– Compression is supported.

闪存设备跟碟盘存储设备,在硬件上有不同的特性:

抺除区块(Erasing blocks):闪存的区块(block)在写入之前,要先做抹除(erase)的动作。抺除区块的时间可能会很长,因此最好利用系统闲置的时间来进行抹除。

耗损平均技术(Wear leveling):闪存的区块有抺写次数的限制,重复抺除、写入同一个单一区块将会造成读取速度变慢,甚至损坏而无法使用,因此闪存设备的驱动程序需要将抺写的区块分散,以延长闪存寿命。用于闪存的文件系统,也需要设计出平均写入各区块的功能。

随机存取(Random access):一般的硬盘,读写数据时,需要旋转磁盘,以找到存放的扇区,因此,一般使用于磁盘的文件系统,会作优化,以避免搜索磁盘的作用。但是闪存可以随机存取,没有查找延迟时间,因此不需要这个优化。

设计闪存文件系统的基本概念是,当存储数据需要更新时,文件系统将会把新的复本写入一个新的闪存区块,将文件指针重新指向,并在闲置时期将原有的区块抺除。例如JFFS2与YAFFS,都是这样设计。

最早的闪存文件系统之一,是微软所研发的 FFS2(Flash File System 2),在1990年代,它被应用在MS-DOS上。

在1994年间,PCMCIA组织,通过了闪存转换层(Flash Translation Layer,FTL)的规格,允许Linear Flash设备能够看起来像是FAT磁盘设备,但是仍然保有耗损平均技术的能力。应用相同概念,但为了避免专利争议,数据光公司(Datalight)创造了 FlashFX与 FlashFX Pro,作为商业产品。

在Linux上实现的闪存转换层,称为MTD。MTD是一个硬件的抽象层,能够让闪存设备看起来像是一种区块设备,因此能够将既有的文件系统,如FAT、Ext、XFS等,直接应用在闪存上。

本文是对FLASH闪存文件系统的一个概括性介绍,让大家了解什么是闪存文件系统,在哪些领域应用,接下来中国存储网的编辑会分别介绍这些闪存文件系统(jffs2,yaffs2,logfs,ubifs)的架构及工作原理。《UBIFS闪存文件系统详解篇》《JFFS2文件系统内部工作机制详解及优势和不足分析》
,转自中国存储网,原文链接:http://www.chinastor.com/a/jishu/FS/0112110212015.html
什么是FLASH闪存文件系统?

在嵌入式领域,FLASH是一种常用的存储介质,由于其特殊的硬件结构,所以普通的文件系统如ext2,ext3等都不适合在其上使用,于是就出现了专门针对FLASH的文件系统,比较常用的有jffs2,yaffs2,logfs,ubifs。

闪存文件系统(Flash file system),是一种为了在闪存设备上存储数据而设计的文件系统。随着移动设备的日渐增加,闪存的存储能力增加以及价格下降,这类型的文件系统变得越来越普遍。

闪存文件系统介绍

• JFFS2 : Journaling Flash File System version 2

(David Woodhouse)

– Has been integrated in Linux kernel since 2001.

– Commonly used for low volume flash devices.

– Compression is supported.

• YAFFS2 : Yet Another Flash File System version 2

(Charles Manning)

– YAFFS is the first file system designed specifically for NAND (since 2001).

– Version 2 supports 2KB large page NAND (since 2005).

– Compression is not supported.

• LogFS : Log Flash File System

(Jörn Engel)

– Mounting time is short (since 2005)

– Under development (Needs more testing on large devices)

– User data is not compressed, while meta data is compressed.

(Jörn said that user data is also compressed in ELC2009, but we could not see it in our

testing. We used the default settings.)

• UBIFS : Unsorted Block Image File System

(Artem Bityutskiy, Adrian Hunter)

– Mainlined in 2.6.27 in Oct 2008.

– Works on top of UBI volumes.

– Compression is supported.

闪存设备跟碟盘存储设备,在硬件上有不同的特性:

抺除区块(Erasing blocks):闪存的区块(block)在写入之前,要先做抹除(erase)的动作。抺除区块的时间可能会很长,因此最好利用系统闲置的时间来进行抹除。

耗损平均技术(Wear leveling):闪存的区块有抺写次数的限制,重复抺除、写入同一个单一区块将会造成读取速度变慢,甚至损坏而无法使用,因此闪存设备的驱动程序需要将抺写的区块分散,以延长闪存寿命。用于闪存的文件系统,也需要设计出平均写入各区块的功能。

随机存取(Random access):一般的硬盘,读写数据时,需要旋转磁盘,以找到存放的扇区,因此,一般使用于磁盘的文件系统,会作优化,以避免搜索磁盘的作用。但是闪存可以随机存取,没有查找延迟时间,因此不需要这个优化。

设计闪存文件系统的基本概念是,当存储数据需要更新时,文件系统将会把新的复本写入一个新的闪存区块,将文件指针重新指向,并在闲置时期将原有的区块抺除。例如JFFS2与YAFFS,都是这样设计。

最早的闪存文件系统之一,是微软所研发的 FFS2(Flash File System 2),在1990年代,它被应用在MS-DOS上。

在1994年间,PCMCIA组织,通过了闪存转换层(Flash Translation Layer,FTL)的规格,允许Linear Flash设备能够看起来像是FAT磁盘设备,但是仍然保有耗损平均技术的能力。应用相同概念,但为了避免专利争议,数据光公司(Datalight)创造了 FlashFX与 FlashFX Pro,作为商业产品。

在Linux上实现的闪存转换层,称为MTD。MTD是一个硬件的抽象层,能够让闪存设备看起来像是一种区块设备,因此能够将既有的文件系统,如FAT、Ext、XFS等,直接应用在闪存上。

本文是对FLASH闪存文件系统的一个概括性介绍,让大家了解什么是闪存文件系统,在哪些领域应用,接下来中国存储网的编辑会分别介绍这些闪存文件系统(jffs2,yaffs2,logfs,ubifs)的架构及工作原理。《UBIFS闪存文件系统详解篇》《JFFS2文件系统内部工作机制详解及优势和不足分析》
,转自中国存储网,原文链接:http://www.chinastor.com/a/jishu/FS/0112110212015.html
什么是FLASH闪存文件系统?

在嵌入式领域,FLASH是一种常用的存储介质,由于其特殊的硬件结构,所以普通的文件系统如ext2,ext3等都不适合在其上使用,于是就出现了专门针对FLASH的文件系统,比较常用的有jffs2,yaffs2,logfs,ubifs。

闪存文件系统(Flash file system),是一种为了在闪存设备上存储数据而设计的文件系统。随着移动设备的日渐增加,闪存的存储能力增加以及价格下降,这类型的文件系统变得越来越普遍。

闪存文件系统介绍

• JFFS2 : Journaling Flash File System version 2

(David Woodhouse)

– Has been integrated in Linux kernel since 2001.

– Commonly used for low volume flash devices.

– Compression is supported.

• YAFFS2 : Yet Another Flash File System version 2

(Charles Manning)

– YAFFS is the first file system designed specifically for NAND (since 2001).

– Version 2 supports 2KB large page NAND (since 2005).

– Compression is not supported.

• LogFS : Log Flash File System

(Jörn Engel)

– Mounting time is short (since 2005)

– Under development (Needs more testing on large devices)

– User data is not compressed, while meta data is compressed.

(Jörn said that user data is also compressed in ELC2009, but we could not see it in our

testing. We used the default settings.)

• UBIFS : Unsorted Block Image File System

(Artem Bityutskiy, Adrian Hunter)

– Mainlined in 2.6.27 in Oct 2008.

– Works on top of UBI volumes.

– Compression is supported.

闪存设备跟碟盘存储设备,在硬件上有不同的特性:

抺除区块(Erasing blocks):闪存的区块(block)在写入之前,要先做抹除(erase)的动作。抺除区块的时间可能会很长,因此最好利用系统闲置的时间来进行抹除。

耗损平均技术(Wear leveling):闪存的区块有抺写次数的限制,重复抺除、写入同一个单一区块将会造成读取速度变慢,甚至损坏而无法使用,因此闪存设备的驱动程序需要将抺写的区块分散,以延长闪存寿命。用于闪存的文件系统,也需要设计出平均写入各区块的功能。

随机存取(Random access):一般的硬盘,读写数据时,需要旋转磁盘,以找到存放的扇区,因此,一般使用于磁盘的文件系统,会作优化,以避免搜索磁盘的作用。但是闪存可以随机存取,没有查找延迟时间,因此不需要这个优化。

设计闪存文件系统的基本概念是,当存储数据需要更新时,文件系统将会把新的复本写入一个新的闪存区块,将文件指针重新指向,并在闲置时期将原有的区块抺除。例如JFFS2与YAFFS,都是这样设计。

最早的闪存文件系统之一,是微软所研发的 FFS2(Flash File System 2),在1990年代,它被应用在MS-DOS上。

在1994年间,PCMCIA组织,通过了闪存转换层(Flash Translation Layer,FTL)的规格,允许Linear Flash设备能够看起来像是FAT磁盘设备,但是仍然保有耗损平均技术的能力。应用相同概念,但为了避免专利争议,数据光公司(Datalight)创造了 FlashFX与 FlashFX Pro,作为商业产品。

在Linux上实现的闪存转换层,称为MTD。MTD是一个硬件的抽象层,能够让闪存设备看起来像是一种区块设备,因此能够将既有的文件系统,如FAT、Ext、XFS等,直接应用在闪存上。

本文是对FLASH闪存文件系统的一个概括性介绍,让大家了解什么是闪存文件系统,在哪些领域应用,接下来中国存储网的编辑会分别介绍这些闪存文件系统(jffs2,yaffs2,logfs,ubifs)的架构及工作原理。《UBIFS闪存文件系统详解篇》《JFFS2文件系统内部工作机制详解及优势和不足分析》
,转自中国存储网,原文链接:http://www.chinastor.com/a/jishu/FS/0112110212015.html
什么是FLASH闪存文件系统?
,转自中国存储网,原文链接:http://www.chinastor.com/a/jishu/FS/0112110212015.html
什么是FLASH闪存文件系统?

在嵌入式领域,FLASH是一种常用的存储介质,由于其特殊的硬件结构,所以普通的文件系统如ext2,ext3等都不适合在其上使用,于是就出现了专门针对FLASH的文件系统,比较常用的有jffs2,yaffs2,logfs,ubifs。

闪存文件系统(Flash file system),是一种为了在闪存设备上存储数据而设计的文件系统。随着移动设备的日渐增加,闪存的存储能力增加以及价格下降,这类型的文件系统变得越来越普遍。

闪存文件系统介绍

• JFFS2 : Journaling Flash File System version 2

(David Woodhouse)

– Has been integrated in Linux kernel since 2001.

– Commonly used for low volume flash devices.

– Compression is supported.

• YAFFS2 : Yet Another Flash File System version 2

(Charles Manning)

– YAFFS is the first file system designed specifically for NAND (since 2001).

– Version 2 supports 2KB large page NAND (since 2005).

– Compression is not supported.

• LogFS : Log Flash File System

(Jörn Engel)

– Mounting time is short (since 2005)

– Under development (Needs more testing on largedevices)

– User data is not compressed, while meta data is compressed.

(Jörn said that user data is also compressed in ELC2009, but we could not seeit in our

testing. We used the default settings.)

• UBIFS : Unsorted Block Image File System

(Artem Bityutskiy, Adrian Hunter)

– Mainlined in 2.6.27 in Oct 2008.

– Works on top of UBI volumes.

– Compression is supported.

闪存设备跟碟盘存储设备,在硬件上有不同的特性:

抺除区块(Erasing blocks):闪存的区块(block)在写入之前,要先做抹除(erase)的动作。抺除区块的时间可能会很长,因此最好利用系统闲置的时间来进行抹除。

耗损平均技术(Wear leveling):闪存的区块有抺写次数的限制,重复抺除、写入同一个单一区块将会造成读取速度变慢,甚至损坏而无法使用,因此闪存设备的驱动程序需要将抺写的区块分散,以延长闪存寿命。用于闪存的文件系统,也需要设计出平均写入各区块的功能。

随机存取(Random access):一般的硬盘,读写数据时,需要旋转磁盘,以找到存放的扇区,因此,一般使用于磁盘的文件系统,会作优化,以避免搜索磁盘的作用。但是闪存可以随机存取,没有查找延迟时间,因此不需要这个优化。

设计闪存文件系统的基本概念是,当存储数据需要更新时,文件系统将会把新的复本写入一个新的闪存区块,将文件指针重新指向,并在闲置时期将原有的区块抺除。例如JFFS2与YAFFS,都是这样设计。

最早的闪存文件系统之一,是微软所研发的 FFS2(FlashFile System 2),在1990年代,它被应用在MS-DOS上。

在1994年间,PCMCIA组织,通过了闪存转换层(Flash Translation Layer,FTL)的规格,允许Linear Flash设备能够看起来像是FAT磁盘设备,但是仍然保有耗损平均技术的能力。应用相同概念,但为了避免专利争议,数据光公司(Datalight)创 造了 FlashFX与 FlashFX Pro,作为商业产品。

在Linux上实现的闪存转换层,称为MTD。MTD是一个硬件的抽象层,能够让闪存设备看起来像是一种区块设备,因此能够将既有的文件系统,如FAT、Ext、XFS等,直接应用在闪存上。

MTD全称是Memory Technology Device,内存技术设备. 实际上是一个虚拟设备驱动层,类似Virtual File System。它提供标准API给那些操作Raw Flash的device driver。那么Flash device和普通的Block device的区别是什么呢?
    普通的BLD只有两种操作:read和write
    而Flash Device有三种操作:read,write和erase,另外,还需要一种wear leveling算法来做损耗均衡
这里要重点指出的是:
SD/MMC卡、CF(Compact Flash)卡、USB Flash等并不是MTD设备,因为这些设备中已经有一个内置的Flash Translation Layer,这个layer处理erase、wear leveling事情了(这个TL应该是固件中支持的)。所以这些设备直接当做普通的Block Device使用


本文是对FLASH闪存文件系统的一个概括性介绍,让大家了解什么是闪存文件系统,在哪些领域应用,接下来中国存储网的编辑会分别介绍这些闪存文件系统(jffs2,yaffs2,logfs,ubifs)的架构及工作原理。《UBIFS闪存文件系统详解篇》《JFFS2文件系统内部工作机制详解及优势 和不足分析》


闪存浪潮下不得不知的知识(2)-颗粒篇

近两年随着闪存颗粒密度增加、价格下降,SSD成为一个炙手可热的话题;今天有幸跟大家交流一下闪存颗粒的相关技术。闪存(Flash)是相对于HDD而言的一种非易失性存储器,Flash分为NOR Flash...
  • swingwang
  • swingwang
  • 2015年12月30日 23:43
  • 1754

laravel5.1 session flash(信息闪存) 应用

什么是 flash message , flash , 闪烁,稍纵即逝,message ,消息。大概其直译就是“闪信”,其原先是出自 rails 的,用于在页面上显示一些提示信息。在 Laravel ...
  • ckdecsdn
  • ckdecsdn
  • 2016年08月01日 09:51
  • 3902

STM32F4——FLASH闪存编程原理

一、简介:     首先是对FLASH闪存的一个基本了解和认识。FLASH闪存分为多个模块。其中有:主存储器、系统存储器、OTP区域、选项字节。现在主要认识的是有关主存储器的相关结构,主存储器分为了多...
  • u013030441
  • u013030441
  • 2015年10月14日 16:56
  • 2503

闪存误码根源分析及测试

Bit错误从Nand Flash物理机构上来说是不可避免的问题,Nand Flash受外界工作环境(如:温度、辐照等)和生产工艺、工作原理、存储材料本身的弊端等影响,总会在各种条件下产生错误。误码率是...
  • Renice_SSD
  • Renice_SSD
  • 2016年11月28日 09:52
  • 780

NAND和NOR FLASH技术设计师在使用闪存时需要慎重选择

  NOR和NAND是现在市场上两种主要的非易失闪存技术。Intel于1988年首先开发出NOR flash技术,彻底改变了原先由EPROM和EEPROM一统天下的局面。紧接着,1989年,东芝公...
  • zjjyliuweijie
  • zjjyliuweijie
  • 2011年04月27日 11:11
  • 630

stm32闪存的理解

STM32f1xxx的闪存模块由:主存储器、信息块和闪存存储器接口寄存器等3部分组成。 各个部分的大小因不同型号有一定的差异,数据手册中可以看到 小容量产品主存储块1-32KB,每页1KB。系...
  • WZJwzj123456
  • WZJwzj123456
  • 2016年10月12日 21:13
  • 796

[解读] 同是NAND Flash闪存(SSD)技术,MLC和SLC差距为何如此之大?

直到现在,NAND闪存技术的发展,还是遵循传统的内存技术发展的轨迹,如SRAM、DRAM、EEPROM(EEPROM)等,在每个存储单元中存储一个二进制数据,然而这种类型的NAND技术现在被称为Sin...
  • BtB5e6Nsu1g511Eg5XEg
  • BtB5e6Nsu1g511Eg5XEg
  • 2018年01月09日 00:00
  • 368

闪存基础

目前绝大多数SSD都是以NAND FLASH为存储介质的。SSD工作原理很多都是基于NAND FLASH特性的。比如,NAND FLASH在写之前必须先擦除,而不能覆盖写,于是SSD 才需要垃圾回收(...
  • cighao
  • cighao
  • 2016年02月25日 13:40
  • 1055

闪存删除数据的过程,与硬盘不一样!

相比于传统HDD,SSD最大的不同在于使用的NAND闪存无法进行覆盖操作。在已经被写入数据的位置,要重复写入的话,SSD就必须先对该位置进行擦除的操作,而且擦除操作的最小单位(block)比写入操作单...
  • New_Teacher
  • New_Teacher
  • 2016年09月27日 17:36
  • 654

闪存的特点:

闪存是有层次结构的。一个闪存片包括多个块儿(一般一个块儿有128KB)。一个块儿包括多个页面(一个页面一般是2KB)。读和写操作的单位一般是页面。同时,覆盖写之前需要先擦除。擦出操作的单位是块儿。也就...
  • chenhuijie666
  • chenhuijie666
  • 2012年12月26日 13:59
  • 1291
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:FLASH闪存文件系统研究
举报原因:
原因补充:

(最多只允许输入30个字)