您好、欢迎来到现金彩票网!
当前位置:手机棋牌游戏平台 > 位元组 >

嵌入式 NAND flash文件系统JFFS2和YAFFS比较

发布时间:2019-06-12 11:02 来源:未知 编辑:admin

  ons Ab公司开发的(1999,以GNU发布),针对flash设备的特性为嵌入式设备开发的

  JFFS1和JFFS2的设计中都考虑到了FLASH的特性特别是满足了上述3个条件,包括了垃圾回收,坏块管理等功能. 这两种文件系统属于LFS(Log-structured File System).这种文件系统的特点是一旦数据出错,容易恢复,但是系统运行是需要占用一定的内存空间,这些空间就是用来存储”log”的.

  JFFS的缺点就是加载时间太长,因为每次加载都需要将FLASH上的所有节点(JFFS的存储单位)到内存,这样也占用了可观的内存空间.除此之外,”circle log”设计使得在对文件数据进行所有的数据都会被重写,这样造成不必要的时间,同时也会减少FLASH的寿命.

  JFFS2对JFFS1作了些改进,比如所需的内存变少了,垃圾回收机制也优化了.

  跟其他文件系统比较,它具有更好的可移植性,甚至可以使用在没有操作系统的设备上(called “YAFFS/Direct”). YAFFS采用模块化设计,虽然最初是用在linux系统上的,但是也已经移植到其他系统比如wince.

  由于嵌入式系统自身存在一些特殊要求,使得一些传统的文件系统(如FAT、EXT2等) 并不十分适合。专用的嵌入式文件系统应有一些自身的特性,如文件系统面对的储存介质特殊性、文件系统应具有的跨平台的安全性,以及整个系统的即时性等。本文介绍了3种源码开放的嵌入式文件系统Cramfs、JFFS2、YAFFS2,详细分析比较了这3种文件系统的主要性能,并根据分析结果指出了各自的适用领域。

  Cramfs、JFFS2、YAFFS2是3种性能优越,专用于嵌入式系统的文件系统。本文通过对这3种文件系统的设计原理和主要性能进行分析与比较,归纳出各自的选型依据据和适用领域。   三种文件系统的介绍 Cramfs        Cramfs是Linux的创始人Linus Torvalds开发的一种只读文件系统,采用了zlib压缩,压缩比一般可以达到1:2,但仍可以做到高效的随机读取。在Linux系统中,通常把不需要经常修改的目录压缩存放,在系统引导时再将压缩文件解开。Cramfs并不需要一次性地把文件系统的所有内容都解压到记忆体中,而只是在系统需要访问某个位置的资料时,马上计算出该资料在Cramfs中的位置,将其解压缩到记忆体之中,然后通过对记忆体的访问来获取需要读取的资料。   JFFS2         JFFS意为「Journaling Flash File System」,该文件系统是瑞典Axis通信公司开发的一种基于Flash记忆体的日志文件系统。该公司于1999年在GNU/Linux上发行了第一版JFFS文件系统,后来经过Redhat公司的发展,现在已经发行了第二个版本的JFFS2,其全部程式码都是可供研究开发的。它在设计时充分考虑了嵌入式系统中Flash记忆体的读写特性,确保在系统掉电时,正在读写的文件不受影响;同时,其储存策略以及抗疲劳性等方面也在第一版的基础上进行了改进。目前,JFFS2广泛应用于嵌入式系统中,尤其是嵌入式μClinux作业系统中。   YAFFS2         YAFFS意为「Yet Another Flash File System」,是目前唯一一个专门为NAND Flash设计的文件系统。它采用了类日志结构,结合NAND Flash的特点,提供了损耗平衡和掉电保护机制,可以有效地避免意外掉电对文件系统一致性和完整性的影响。Aleph One公司于2002年5月发布了第一版YAFFS程式码,用户可以很方便地在网站上下载到。第一版的YAFFS只支援每页512位元组的NAND Flash。YAFFS2是YAFFS的升级版,即支援每页512位元组的NAND Flash记忆体,也支援每页2048位元组的NAND Flash记忆体。   Flash记忆体 Flash设备特点         相对于传统储存介质,Flash记忆体具有如下优点:

  ˙可靠性高,采用Flash为储存介质,可以确保100万次以上的可靠写入;   储存速度快,写入∕读取均可接近1Mb/ s;   使用方便,具有很强的环境适应能力。

  基于NOR技术的Flash记忆体是最早出现的Flash记忆体,它具有以下特点:

  ˙程序和资料可存放在同一晶片上,拥有独立的资料汇流排和位址汇流排,支援快速随机读取,允许系统直接从Flash中读取程式码并执行,而无需先将程式码下载至RAM中再执行;

  由于NOR Flash记忆体的擦除和程式化速度较慢,而块尺寸又比较大,因此擦除和程式化操作所花费的时间很长。目前,NOR Flash记忆体大多只用于储存嵌入式系统的启动程式码。

  NAND Flash记忆体可以顺序读取储存单元的内容,由于制程上的进步,其容量越来越大,单位价格越来越便宜,正逐步成为Flash记忆体的主流。NAND Flash记忆体具有以下特点: ˙以页为单位进行读写操作,以块为单位进行擦除操作;页大小为512位元组或2048位元组,每页不仅有

  ˙晶片内含有失效块,并且在使用过程中可能会出现随机坏块。                   表1 比较了这两种Flash记忆体的性能参数。

  三种嵌入式文件系统主要性能分析与比较         资料安全、运行速度、占用资源、使用范围等是嵌入式文件系统的主要性能指标。下面从这几个方面入手,对这三种嵌入式文件系统进行分析与比较。   资料安全         当前的嵌入式系统主要使用固态Flash晶片作为储存设备。由于Flash设备自身的特点以及嵌入式系统工作环境的复杂多样性,如何保证资料的安全是嵌入式文件系统首先要考虑的问题。资料安全主要包括资料冗余和掉电保护等部分。   资料冗余         提高资料安全性的最有效措施是增加资料的冗余,而资料的大量冗余又给维护资料一致性带来困难。对此应进行合理取舍,在尽量降低冗余的前提下,确保资料的安全性和可靠性。           Cramfs文件系统是一种只读文件系统,文件系统内容不可更改,设计思想遵循「只储存最少的信息」;甚至没有时间戳之类的信息,除了资料包的CRC校验信息外,几乎没有别的资料冗余。           JFFS2文件系统是典型的日志结构的文件系统,它储存的资料是日志式资料信息。JFFS2在Flash上只有两种类型的资料实体:j.ffs2_raw_inode和jffs2_raw dirent。前者包含文件的管理信息,后者用于描述文件在文件系统中的位置。真正的资料信息就保持在jffs2_raw_inode节点的后面,大部分管理的信息都是在系统挂载之后建立起来的。两种资料实体有着公共的文件头结构jffs2 _ unknown_node。在这个结构里,有个jint32 _t类型的hdr_crc变量,它代表文件头部中其他域的CRC校验值。这说明JFFS2文件系统使用的是CRC循环冗余校验码。           YAFFS2文件系统是一种类日志文件系统,专用于NAND型Flash设备。其储存资料的基本单位是chunk,相当于Flash的页。Chunk中的资料包括两部分:一部分是资料区,占用Flash的一页;另一部分是文件信息及冗余资料区,占用Flash页的OOB区。其冗余资料主要是ECC校验资料,对于小页(每页512位元组)的Flash,每页有6位元组的ECC资料;对于大页(每页2048位元组)的Flash,每页有24位元组的ECC资料。   掉电保护         掉电保护的目的是:在系统意外失去供电的情况下,保证系统运行状态的确定性以及记录资料的完整性;当系统供电恢复后,现场资料可以及时恢复,避免系统产生混乱。很多文件系统出于运行速度考虑,在程序运行过程中,常将资料暂存在SDRAM中;一旦系统意外掉电,往往会造成资料丢失。           Cramfs文件系统将文件系统内容解压到记忆体中,由于其不能写入,文件系统的内容无法更改,因此不存在掉电保护的问题。           JFFS2是一种日志结构文件系统,因此不论电源以何种方式在哪个时刻停止供电,JFFS2都能保持资料完整性。当系统遭受不正常断电后重新启动时,JFFS2自动将系统恢复到断电前最后一个稳定状态。需要注意的是,文件系统在最后一个稳定状态之后发生的任何改变,都无法进行恢复。           YAFFS2是一种类日志文件系统,可以在意外掉电重启后自动提供可靠的资料记录,防止文件系统的崩溃。它使用独立的日志文件跟踪文件系统内容的变化。举例来说:当应用程式需要写Flash的某一页时,它首先修改的是存放于文件日志中的一块镜像;只有当日志中的镜像复制到文件系统中后,资料才真实地写到该页上。当发生意外掉电重启后,YAFFS2没有像JFFS2那样,使用旧文件完全代替新写文件,而是选择用新文件完全代替旧的文件,或者已写部分使用新文件,未写部分使用旧文件。这种方式增强了掉电时未完全写入文件的安全性能,特别是当意外掉电发生在资料区时,意外掉电时的文件几乎被完好地保存下来。   运行速度         运行速度可以从以下几个方面考察:文件系统挂载速度,读文件速度,写文件速度等。这里预设的储存介质是NAND Flash。           一般而言,压缩的、只读的文件系统在启动时需要将文件系统解压到SDRAM中,这在一定程度上会减缓文件系统挂载速度。但是,Cramfs文件系统在设计时充分考虑了系统挂载的时间,并没有一次性地把文件系统的所有内容都解压到记忆体中,而只是在系统需要访问某个位置的资料时,迅速计算出该资料在Cramfs中的位置,将其解压缩到记忆体之中,再进行访问操作。由于其读文件速度只是找出文件位址以及访问记忆体的操作,所以无论是挂载速度,还是读文件速度, Cramfs文件系统都比JFFS2和YAFFS2文件系统要快。           JFFS2文件系统的挂载可以分为以下几个步骤进行:

  1.检查每个节点CRC校验码的合法性,在记忆体中为每个节点每个节点分配必需的相关的结构;

  3.释放扫瞄过程中使用的临时信息。           可以看出这个过程还是很复杂的,更重要的是,在JFFS2文件系统被挂载时,需要对整个Flash储存区域进行扫瞄,这就耗费了大量的时间,因此JFFS2文件系统的开机速度非常缓慢。与JFFS2相比,YAFFS2减少了一些功能,挂载时只需扫瞄Flash记忆体的空闲区,根据从OOB(备份资料区)中读取的yaffs_tags信息判读是文件头页面还是资料页面,再根据相应信息在记忆体中为每个文件建立一个对应的yaffs_object对象。由于YAFFS2在系统载入时只需扫瞄各个页面的OOB区,即可建立起整个文件系统的结构,而不需要像JFFS2那样扫瞄整个Flash设备,因此大大加快了文件系统的启动速度。但是,YAFFS2仍然要求对整个Flash设备所有页的空闲进行扫瞄,这就导致当Flash设备储存空间变大时,系统扫瞄时间会直线上升。           在文件系统运行时,JFFS2需要维护几个链表来管理擦写块。根据擦写块上的内容,一个擦写块可能会在不同的链表上。具体来说,当一个擦写块上都是合法(valid)的节点时,它会在clean_list上;当一个擦写块包含至少一个过时(obsolete)的节点时,它会在dirty_list上;当一个擦写块被擦写完毕,并被写入Cleanmarker节点后,它会在free_list上。正是以这些链表为基础, JFFS2文件系统才可以实现垃圾回收、损耗平衡等性能。文件系统挂载时YAFFS2在记忆体中建立一个层次结构的索引,可以看作是一个文件树。树的最底层指向实际存放文件的页面,高层则是一层层的索引目录。文件树是通过一个联合结构的节点来实现的。联合结构是固定大小(32位元组),当它处于最底层时, 由16个2位元组入口来查找页面ID;当处于其它层时,由8个4位元组指针指向其他更低层的节点。每个文件对应一个文件树,便于检索。在以NAND Flash为储存介质的嵌入式系统中,YAFFS2的文件读写性能都优于JFFS2。   占用资源         在嵌入式系统中,记忆体和外部记忆体资源匮乏,需要节约使用。因此占用的记忆体和外部记忆体资源量也是衡量嵌入式文件系统的一个重要指标。           如果使用RAMDISK方式运行文件系统,那么在系统运行之后,首先要把Flash上的映像文件解压到记忆体中,才可以开始运行程序。这样,同样的程式码不仅在外部记忆体中占据了空间,而且由于解压缩,还在记忆体中占用了更大的空间。Cramfs虽然是一个压缩式的文件系统,但前面已介绍过,它并不需要一次性地将所有内容解压到记忆体之中。由于其对文件内容的压缩,因此无论是外部记忆体还是记忆体, Cramfs都比JFFS2和YAFFS2占用更少的资源。           JFFS2将文件系统的资料和原资料以节点的形式储存在Flash上,其冗余资料只是节点头部的CRC校验码,并且在储存时对节点的资料进行了压缩。与之相比,YAFFS2不仅储存了页资料的ECC校验码,并且没有Flash设备OOB区储存资料,而是用来储存页节点信息。其映像也是由若干个页面组成,没有对资料进行压缩,因此YAFFS2文件系统映像大大超过了JFFS2文件系统映像。实验表明,普通YAFFS2映像的大小约为同样JFFS2映像大小的2倍。当文件系统在记忆体中运行时,JFFS2在记忆体中定义了若干链表,YAFFS2在记忆体中为每个文件创建一个文件树。尽管为每个文件建立一个文件树需要消耗掉不少的记忆体,但是比起维护JFFS2所需的链表消耗的记忆体,还是少一些。在实际运行中,YAFFS2占用的记忆体要小于JFFS2文件系统。   使用范围         要使用Cramfs或JFFS2文件系统,离不开MTD驱动程式层的支援。MTD(Memory Technology Device)是Linux中的一个储存设备通用界面层。虽然也可以建立在RAM上,但它是专为基于Flash的设备而设计的。MTD包含特定Flash 晶片的驱动程式, Flash晶片驱动向上层提供读、写、擦除等基本的Flash操作方法。MTD对这些操作进行封装后向用户层提供MTD char和MTD block类型的设备。MTD char类型的设备包括/dev/mtd0等,可以对Flash的原始字元访问;MTD block类型的设备包括/dev/mtdblock0等,将Flash类比成块设备,这样就可以在这些块设备上创建Cramfs或JFFS2等格式的文件系统。在对用户层的界面上, Cramfs或JFFS2文件系统还需要作业系统VFS(虚拟文件系统)的支援。           同样,YAFFS2文件系统支援使用MTD驱 动层和VFS层,这也是一般在嵌入式Linux或者μClinux作业系统中使用YAFFS2文件系统的常用方法。除此之外,YAFFS2还带有NAND Flash晶片驱动,并为嵌入式系统提供了直接访问文件系统的API,用户可以不使用Linux中的MTD和VFS,直接对文件进行操作。图1 为嵌入式系统的文件系统结构。

  YAFFS2中的YAFFS2 Direct提供了直接的文件系统界面,因此在那些没有VFS层的嵌入式系统中也可使用YAFFS2。YAFFS2文件系统的使用范围要比Cramfs和JFFS2文件系统广泛;但是需要注意的是,YAFFS2只能用在NAND Flash储存设备上。   结论         这3种嵌入式文件系统在嵌入式系统中的应用非常广泛,但是又具有各自的特点。表2 比较了3种文件系统的主要性能,并归纳出各自最适用的领域。

  1. Cramfs是最早的一种嵌入式文件系统,它只储存了最少的信息,对文件内容进行了压缩,运行速度比较   快。但是由于其不能写入,不支援超过16 MB大小的文件,因此广泛地应用于储存空间小、文件系统内容   较少并且不需要用户写入的嵌入式系统中。

  2. JFFS2是一种较早的Flash专用文件系统。目前已有很多JFFS2应用于μClinux以及嵌入式Linux的例子。事   实上,它已经成为新版Linux中的一种标准文件系统。

  同时它对NOR Flash和NAND Flash提供支援,针对两种Flash设备共同的特性,提供掉电保护和损耗平衡等   功能,可供用户读写,十分适合于同时用到这两种Flash设备的嵌入式系统。

  3. YAFFS2是专为NAND Flash设计的文件系统,它充分考虑了NAND Flash设备的特性,支援ECC校验,提   供掉电保护和损耗平衡功能,运行和挂载速度都比JFFS2要快。它支援作业系统广泛,包括常见的嵌入   式Linux、WinCE、μClinux。由于它提供Direct界面,因此稍加修改也可使用在没有作业系统的嵌入式   系统中。目前,被广泛应用于使用NAND Flash作为储存设备的嵌入式系统中。

  针对具体应用,可以在考察各种文件系统特点的基础上,选择更适合自身系统的一种文件系统解决方案。比如在许多以NAND Flash为储存介质的应用系统中,都用到「Cramfs YAFFS2」文件系统。以Cramfs作为根文件系统,既提高了启动速度,也能保护根文件不受破坏;使用YAFFS2作为用户文件系统,在保证用户可以自由读写文件的基础上,提高了文件系统的安全性和运行速度,不失为一种优良的嵌入式文件系统解决方案。

  发烧友学院官方 (在学习过程中,有任何问题可在视频右侧问答框提出,或下方评论区提出

  根据全球市场研究机构集邦咨询半导体研究中心(DRAMeXchange)研究显示,今年NAND Fla...

  2018年下半年存储器芯片价格开始下跌,销量也起伏变化,存储器公司营收明显下滑。

  存储器市况不明,针对存储器价格波动趋势,存储器控制芯片厂慧荣总经理苟嘉章表示,预估快闪存储器(NAN...

  Flash属于广义的EEPROM,因为它也是电擦除的ROM。但是为了区别于一般的按字节为单位的擦写的...

  台零组件厂光宝科表示,尽管第2季包括云端、户外照明、LED及AI仍将是主要动能,不过因为第1季NAN...

  JFFS1和JFFS2的设计中都考虑到了FLASH的特性特别是满足了上述3个条件,包括了垃圾回收,坏...

  Flash 内存(可以通过几种不同的技术实现)是一种非挥发性内存,这意味着断开电源之后其内容仍然保持...

  通过一系列的介绍和实验验证,我们看到了TRIM的价值和实现原理。在TRIM的帮助下,NVMe SSD...

  与多年前相比,现在的移动消费电子装置结构复杂,功能丰富,能够存储大量音乐、照片和视频内容。让人欣慰的...

  SK海力士今年第一季财报和当初预期相同,受存储器行情影响,营收和营益骤减,对此SK海力士准备以强化技...

  SK海力士今年第一季财报和当初预期相同,受存储器行情影响,营收和营益骤减,对此SK海力士准备以强化技...

  我们常说的闪存其实只是一个笼统的称呼,准确地说它是非易失随机访问存储器(NVRAM)的俗称,特点是断...

  通过启用追踪和分析应用程序使用闪存方式的能力,制造商现在可以为任何用例确定最优的闪存存储技术。

  今天发布一个Vivado 下固化 FLASH的压缩和提高加载速度的技巧和方法。这个方法对于需要快速加...

  紫光集团旗下的长江存储YMTC是国内三大存储芯片阵营中主修NAND闪存的公司,也是目前进度最好的,去...

  “现在长江存储国产的芯片逐渐量产,但是国际上的芯片价格下降比较厉害,国际上是不是有打压中国芯片崛起的...

  全球晶圆厂自2013年ProMOS关闭两座晶圆厂后,造成当年12英寸厂数量减少,从那以后每年12英寸...

  国产存储芯片再下一城,日前有产业链方面的消息称,中国长江存储将如期在今年年底量产64层3D NAND...

  最近推出的FlashXE生态系统通过一系列功能集确保了基于NAND闪存的存储系统的最大可靠性,该功能...

  据消息,由于显示面板和存储芯片市场环境减弱,三星第一季度业绩可能低于市场预期。

  嵌入式系统正随着Internet的发展而在各个领域得到广泛的应用,作为一个优秀的操作系统,VxWor...

  施敏发明的非挥发性存储技术,是现今被全球各国视为关键战略物资 NAND Flash 闪存芯片的基础核...

  集邦咨询半导体研究中心(DRAMeXchange)调查指出,受到服务器需求疲弱、智能手机换机周期延长...

  供需是影响客户为其闪存存储所支付的价格的两个因素,需求增加推动价格上涨,促使供应商增加产量。如果高估...

  1960 年时代,当时主流的存储技术为磁圈记忆体,但磁圈记忆体的体积大又耗电,拖累计算机的效能表现,...

  依据von Neumann架构,计算机中记忆体和控制单元是分离的,这也是目前计算机及相关的半导体零件...

  全球智能手机市场疲弱,车用电子、AIoT等逐渐成为市场瞩目焦点。NAND Flash控制芯片及存储解...

  这两年,DRAM内存、NAND闪存市场跌宕起伏,也带动内存条、固态硬盘持续动荡,而作为掌握核心芯片资...

  西班牙巴塞罗那,2019 年 2 月 25 日 —— 在2019世界移动通信大会上,作为创新内存和存...

  全球市场研究机构集邦咨询半导体研究中心(DRAMeXchange)表示,部分服务器厂商因2018年第...

  对于独立的嵌入式系统,需要把程序存入non-volitale存储单元中,常用的也就是flash。但是...

  近日,HPE 3PAR存储单元副总裁兼总经理Ivan Iannaccone进行了一次大胆预测,在他看...

  记忆体市况需求冷淡,受到库存水位偏高,首季价格跌幅达到双位数,由于预期市场价格持续下探,模组厂及终端...

  存储级内存(SCM)这种RAM能够像NAND闪存那样保保存其内容,但兼具DRAM的速度,最终将会取代...

  客户反馈在使用STM32F412的时候,擦除Sector 8~11发现时间过长,从而导致意外触发IW...

  存储级内存(SCM)这种RAM能够像NAND闪存那样保保存其内容,但兼具DRAM的速度,最终将会取代...

  由于闪存的固有设计,SCM在这块要好很多。性能问题和闪存延迟的最大原因之一是使用垃圾收集以满足新写入...

  去年,SK海力士设备总投资达17万亿韩元(约合151亿美元),预计2019年设备投资与去年相比减少4...

  一个Google Chrome扩展程序会窃取银行卡信息,但这个扩展程序目前还未在Chrome Web...

  ST标准外设库和参考手册、数据手册等都可以在ST官网下载,你也可以到我的360云盘下载。关于F0系列...

  面对本次降价大潮,不少企业打算收缩战线,准备过冬,比如中国台湾的南亚科,就计划将资本支出减少一半,也...

  据悉,衡宇科技于2012年2月创立,可为用户提供应用于通讯、消费电子及数据处理行业的闪存主控芯片产品...

  三星是存储产业的霸主,其一举一动将影响到整个行业。DRAM内存是三星目前的“摇钱树”,就算市场趋势是...

  目前双方的3D XPoint闪存主要是在美国犹他州的工厂生产,双方将继续通力合作完成第二代3D XP...

  在2017年年底举行的第四届世界互联网大会上透露,紫光集团董事长赵伟国透露,紫光旗下的长江存储已经研...

  2018年,NAND闪存全年供过于求,价格一直下跌,导致西数、东芝等厂商毛利率大幅下滑。如今到了20...

  从市场研究公司Gartner发布的2018年全球半导体市场初步报告的数据显示,全球半导体厂商2018...

http://lsm-systems.com/weiyuanzu/132.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有