几种Nand flash文件系统的对比

合集下载

FLASH芯片种类与区别

FLASH芯片种类与区别

F L A S H芯片种类与区别 Hessen was revised in January 2021Flash芯片的种类与区别一、IIC EEPROMIICEEPROM,采用的是IIC通信协议。

IIC通信协议具有的特点:简单的两条总线线路,一条串行数据线(SDA),一条串行时钟线(SCL);串行半双工通信模式的8位双向数据传输,位速率标准模式下可达100Kbit/s;一种电可擦除可编程只读存储器,掉电后数据不丢失,由于芯片能够支持单字节擦写,且支持擦除的次数非常之多,一个地址位可重复擦写的理论值为100万次,常用芯片型号有 AT24C02、FM24C02、CAT24C02等,其常见的封装多为DIP8,SOP8,TSSOP8等;?二、SPI NorFlashSPINorFlash,采用的是SPI 通信协议。

有4线(时钟,两个数据线,片选线)或者3线(时钟,两个数据线)通信接口,由于它有两个数据线能实现全双工通信,因此比IIC通信协议的 IIC EEPROM的读写速度上要快很多。

SPI NorFlash具有NOR技术Flash Memory的特点,即程序和数据可存放在同一芯片上,拥有独立的数据总线和地址总线,能快速随机读取,允许系统直接从Flash中读取代码执行;可以单字节或单字编程,但不能单字节擦除,必须以Sector为单位或对整片执行擦除操作,在对存储器进行重新编程之前需要对Sector或整片进行预编程和擦除操作。

NorFlash在擦写次数上远远达不到IIC EEPROM,并且由于NOR技术Flash Memory的擦除和编程速度较慢,块尺寸又较大,因此擦除和编程操作所花费的时间会很长;但SPI NorFlash接口简单,使用的引脚少,易于连接,操作方便,并且可以在芯片上直接运行代码,其稳定性出色,传输速率高,在小容量时具有很高的性价比,这使其很适合应于嵌入式系统中作为 FLASH ROM,所以在市场的占用率非常高。

几种Nand flash文件系统的对比

几种Nand flash文件系统的对比

几种Nand flas文件系统的对比来源:NLE-FFS: A Flash File System with PRAM for Non-linear EditingFor thesedevices, NAND flash memory has became the most attractive storage medium due to outstanding characteristics such as its increased capacity, low power consumption, small size and light weight. For the efficient management of NAND flashmemory, several flash file systems have been proposed, including JFFS2, YAFFS2, CFFS and PFFS. several file systems such as MNFS,NAMU and ScaleFFS have been designed forreal-time recording /playback and large-capacity storage. A. YAFFS2YAFFS2 is the most widely employed file system for NAND flash memory. YAFFS2 essentially saves the object ID (file ID) and the chunk (page) number in the spare region to show the offset of a page and the owner file of the page. Therefore, YAFFS2 reads the spare regions and object headers to establish the metadata in memory.Although YAFFS2 is designed to support NAND flash memory, it has scalability problems. With YAFFS2, the location of the updated page is saved in NAND flash pages or spare regions, as shown in Fig. 10 (a); hence, the file systemshould scan the entire flash space at the mounting time. Moreover, the entire directory and file system structures must be saved in main memory at that time. Thus, the mounting time and the memory usage are increased linearly according to the NAND flash size and the number of files.YAFFS2 has another problem in which many pages are consumed during metadata updates. The metadata are frequently updated and most of the metadata updates are performed in several bytes. Metadata updating creates large numbers of invalid pages. This severely degrades the write performance due to garbage collection, as byte-level updates and in-place updates are not allowed in NAND flash.B. PFFSTo address the problems with YAFFS2, PFFS wasproposed [4]. In PFFS, an architecture using PRAM and NAND flash memory is employed. In this file system,metadata are separated and stored in the PRAM region,whereas the other data are stored in the NAND flash memory region, as shown in Fig. 10 (b). Metadata separation has two advantages. First, the overhead of metadata updates is reduced. As shown in Fig. 10 (a),YAFFS2 writes 2KB of a NAND flash page for each metadata update. As the metadata are frequently updated and most of the metadataupdates are performed in several bytes, metadata updates with YAFFS2 create many invalid pages. This leads to severe performance degradation due to garbage collection. However, PFFS writes metadata in units of bytes, as it maintains metadata in the PRAM region as shown in Fig. 10 (b). Consequently, metadata separation by PFFS reduces the number of page-writes on account of in-place updating and byte-level updating. Second, PFFS requires only a short mounting time and uses a fixed amount of memory, whereas other flash file systems such as YAFFS2 require a considerable amount of time to scan NAND pages to construct in-memory file and directory structures.However, PFFS is also a general-purpose file system; thus,it does not sufficiently consider NLE operations. In this paper,to effectively support NLE, NLE-FFS is proposed. It is based on the architecture shown in Fig.3.。

JFFS文件系统和YAFFS文件系统的比较

JFFS文件系统和YAFFS文件系统的比较

JFFS文件系统和YAFFS文件系统的比较NAND flash文件系统JFFS2和YAFFS比较JFFS是由瑞典的Axis Communications Ab公司开发的(1999,以GNU发布),针对flash设备的特性为嵌入式设备开发的.(我边上的兄弟曾想去那里作毕业设计)JFFS1和JFFS2的设计中都考虑到了FLASH的特性特别是满足了上述3个条件,包括了垃圾回收,坏块管理等功能. 这两种文件系统属于LFS(Log-structured File System).这种文件系统的特点是一旦数据出错,容易恢复,但是系统运行是需要占用一定的内存空间,这些空间就是用来存储”log”的.JFFS的缺点就是加载时间太长,因为每次加载都需要将FLASH上的所有节点(JFFS的存储单位)到内存,这样也占用了可观的内存空间.除此之外,”circle log”设计使得在对文件数据进行所有的数据都会被重写,这样造成不必要的时间,同时也会减少FLASH的寿命.JFFS2对JFFS1作了些改进,比如所需的内存变少了,垃圾回收机制也优化了.针对JFFS1,JFFS2的缺点,JFFS3出现了.YAFFS1 ">“Yet Another Flash File System”作者是新西兰的Charles Manning为一家名叫Alpha one 的公司(/)设计的,是第一个为NAND Flash设计的文件系统.共两个版本YAFFS1 和YAFFS2.YAFFS1支持512Bytes/Page的NAND Flash;后者YAFFS2支持2kBytes/Page的NAND Flash. YAFFS文件系统也属于LFS.跟其他文件系统比较,它具有更好的可移植性,甚至可以使用在没有操作系统的设备上(called “YAFFS/Direct”). YAFFS采用模块化设计,虽然最初是用在linux系统上的,但是也已经移植到其他系统比如wince.还有个突出的优点是它在mount的时候需要很少的内存.(如果是小页—512byte/page,每1MByte NAND大约需要4KBytes内存;大页需要大概1KBytes RAM/1MByte NAND) JFFS与YAFFS比较,两者各有长处. 一般来说,对于小于64MBytes的NAND Flash,可以选用JFFS;如果超过64MBytes,用YAFFS比较合适.。

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

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

嵌入式NAND flash文件系统JFFS2和YAFFS比较JFFS是由瑞典的Axis Communications Ab公司开发的(1999,以GNU发布),针对flash设备的特性为嵌入式设备开发的JFFS1和JFFS2的设计中都考虑到了FLASH的特性特别是满足了上述3个条件,包括了垃圾回收,坏块管理等功能. 这两种文件系统属于LFS(Log-structured File System).这种文件系统的特点是一旦数据出错,容易恢复,但是系统运行是需要占用一定的内存空间,这些空间就是用来存储”log”的.JFFS的缺点就是加载时间太长,因为每次加载都需要将FLASH上的所有节点(JFFS的存储单位)到内存,这样也占用了可观的内存空间.除此之外,”circle log”设计使得在对文件数据进行所有的数据都会被重写,这样造成不必要的时间,同时也会减少FLASH的寿命.JFFS2对JFFS1作了些改进,比如所需的内存变少了,垃圾回收机制也优化了.针对JFFS1,JFFS2的缺点,JFFS3出现了.YAFFS1 ">“Yet Another Flash File System”作者是新西兰的Charles Manning为一家名叫Alpha one 的公司(/)设计的,是第一个为NAND Flash设计的文件系统.共两个版本YAFFS1 和YAFFS2.YAFFS1支持512Bytes/Page的NAND Flash;后者YAFFS2支持2kBytes/Page的NAND Flash. YAFFS文件系统也属于LFS.跟其他文件系统比较,它具有更好的可移植性,甚至可以使用在没有操作系统的设备上(called “YAFFS/Direct”). YAFFS采用模块化设计,虽然最初是用在linux系统上的,但是也已经移植到其他系统比如wince.还有个突出的优点是它在mount的时候需要很少的内存.(如果是小页―512byte/page,每1MByte NAND大约需要4KBytes内存;大页需要大概1KBytes RAM/1MByte NAND) JFFS与YAFFS比较,两者各有长处. 一般来说,对于小于64MBytes的NAND Flash,可以选用JFFS;如果超过64MBytes,用YAFFS比较合适.由于嵌入式系统自身存在一些特殊要求,使得一些传统的文件系统(如FAT、EXT2等) 并不十分适合。

一文知道NAND闪存的类型

一文知道NAND闪存的类型

一文知道NAND闪存的类型由于闪存的成本取决于其裸片面积,如果可以在同样的面积上存储更多数据,闪存将更具成本效益。

NAND闪存有三种主要类型:单层单元(SLC)、多层单元(MLC)和三层单元(TLC)。

顾名思义,在相同的单位面积上,TLC闪存比MLC存储的数据更多,而MLC又比SLC存储的数据多。

另一种新型的NAND闪存称为3DNAND或V-NAND(垂直NAND)。

通过在同一晶圆上垂直堆叠多层存储单元,这种类型的闪存可以获得更大的密度。

浮栅晶体管闪存将信息存储在由浮栅晶体管组成的存储单元中。

为了更好地理解不同类型的NAND闪存,让我们来看看浮栅晶体管的结构、工作原理及其局限。

浮栅晶体管或浮栅MOSFET(FGMOS)跟常规MOSFET非常类似,有一点不同的是它在栅极和沟道之间添加了额外的电绝缘浮栅。

图1:浮栅MOSFET(FGMOS)与常规MOSFET对比。

由于浮栅是电隔离的,所以即使在去除电压之后,到达栅极的任何电子也会被捕获。

这使得存储器具有非易失性。

与具有固定阈值电压的常规MOSFET不同,FGMOS的阈值电压取决于存储在浮栅中的电荷量。

电荷越多,阈值电压越高。

与常规MOSFET类似,当施加到控制栅极的电压高于阈值电压时,FGMOS将开始导通。

因此,通过测量其阈值电压并与固定电压电平进行比较,就可以识别存储在FGMOS中的信息。

这称为闪存的读操作。

可以使用两种方法将电子放置在浮栅中:Fowler-Nordheim隧穿或热载流子注入。

对于Fowler-Nordheim隧穿,在带负电的源极和带正电的控制栅极之间施加强电场。

这使得来自源极的电子隧穿穿过薄氧化层并到达浮栅。

隧穿所需的电压取决于隧道氧化层的厚度。

对于热载流子注入方法,高电流通过沟道,为电子提供足够的能量以穿过氧化物层并到达浮栅。

通过在控制栅极上施加强负电压,并在源极和漏极端子上施加强正电压,使用Fowler-Nordheim隧穿可以从浮栅移除电子。

SLC和MLC闪存nand flash的区别和历史

SLC和MLC闪存nand flash的区别和历史

SLC和MLC闪存nand flsah的区别和历史飞凌OK6410开发板全新升级,标配1G超大容量NandFlash,让您的使用更加游刃有余。

市面上绝大多数6410开发板仍然只是支持SLC类型的NAND。

我们经过努力,实现了MLC NAND的完美支持。

成为同价位开发板中唯一标配1GFlash的产品。

包括wince系统在内的驱动软件经过改写,并严格测试。

使用MLC的NAND可大幅提高容量和产品性价比。

备注:强大的S3C6410处理器支持MLC NANDFLASH,而这个功能在S3C2440上是不支持的。

MLC NAND已经得到广泛应用,是未来的发展方向。

------------------------------------------------------------------------------------------以前只是知道FLASH分为NOR和NAND,没有注意过NAND还分很多种。

今天看到飞凌的升级信息,就在网上查了一下。

评论不一,就拿出来和大家讨论一下,互相学习了。

Flash闪存是非易失性存储器,这是相对于SDRAM等存储器所说的。

即存储器断电后,内部的数据仍然可以保存。

Flash根据技术方式分为Nand 、Nor Flash和AG-AND Flash,而U盘和MP3中最常用的内存就是Nand Flash。

Nand Flash也有几种,根据技术方式,分为SLC、MCL、MirrorBit等三种。

SLC是Single level cell的缩写,意为每个存储单元中只有1bit数据。

而MLC就是Multi-Level-Cell,意为该技术允许2 bit的数据存储在一个存储单元当中。

而MirrorBit则是每个存储单元中只有4bit数据。

SLC的技术存储比较稳定,SLC的技术也最为成熟。

然而MLC可以在一个单元中有2bit 数据,这样同样大小的晶圆就可以存放更多的数据,也就是成本相同的情况下,容量可以做的更大,这也是同样容量,MLC价格比SLC低很多的原因。

mtdnandflash分析

mtdnandflash分析

mtd nandflash 分析一、MTD 的概念和层次MTD(memory technology device 存储技术设备) 是用于访问memory 设备(ROM 、flash )的Linux 的子系统。

MTD 的主要目的是为了使新的memory 设备的驱动更加简单,为此它在硬件和上层之间提供了一个抽象的接口。

MTD 的所有源代码在/drivers/mtd 子目录下。

[1]传统上,UNIX 只认识块设备和字符设备。

字符设备是类似键盘或者鼠标的这类设备,你必须从它读取当前数据,但是不可以定位也没有大小。

块设备有固定的大小并且可以定位,它们恰好组织成许多字节的块,通常为512字节。

闪存既不满足块设备描述也不满足字符设备的描述。

它们表现的类似块设备,但又有所不同。

比如,块设备不区分写和擦除操作。

因此,一种符合闪存特性的特殊设备类型诞生了,就是MTD 设备。

所以MTD 既不是块设备,也不是字符设备。

[2]关于MTD 的层次,网络上有一张流传盛广的图片,如下所示,但是最初我看了这幅图根本是一点概念都没有的,不过通过看代码和网上查阅资料,知道了详细一点的分层结构,也纠正了一些前期对这张图的误解。

( 以下这部分纯属个人理解,如果有误,请高人拍砖!)为了方便理解,先声明两点:1. xxx 层(MTD 原始设备层,MTD 块设备层) ,实现封装的代码。

2. xxx 设备(MTD 原始设备,MTD 块设备) ,是xxx 层向下封装后呈现给上层的表象就是一个xxx 设备。

Flash 硬件驱动层:该层的基于特定处理器和特定flash 芯片,这里以pxa935 和Hynix NAND 512MB 1.8V 16-bit 为例。

使用类型为nand_chip, pxa3xx_nand_info, dfc_context, pxa3xx_bbm 这几个结构体来实现硬件驱动。

代码位于drivers/mtd/nand 目录下。

SRAM、DRAM、PROM、EPROM、EEPROM、NOR NAND FLASH区别

SRAM、DRAM、PROM、EPROM、EEPROM、NOR NAND FLASH区别

RAM / ROM 存储器ROM和RAM指的都是半导体存储器,ROM是Read Only Memory的缩写,RAM是Random Access Memory的缩写。

ROM在系统停止供电的时候仍然可以保持数据,而RAM 通常都是在掉电之后就丢失数据,典型的RAM就是计算机的内存。

RAM 有两大类:1) 静态RAM(Static RAM/SRAM),SRAM速度非常快,是目前读写最快的存储设备了,但是它也非常昂贵,所以只在要求很苛刻的地方使用,譬如CPU的一级缓冲,二级缓冲。

2) 动态RAM(Dynamic RAM / DRAM),DRAM保留数据的时间很短,速度也比SRAM 慢,不过它还是比任何的ROM都要快,但从价格上来说DRAM相比SRAM要便宜很多,计算机内存就是DRAM的。

DRAM分为很多种,常见的主要有FPRAM/FastPage、EDORAM、SDRAM、DDR RAM、RDRAM、SGRAM以及WRAM等,这里介绍其中的一种DDR RAM。

DDR RAM(Double-Date-Rate RAM)也称作DDR SDRAM,这种改进型的RAM和SDRAM 是基本一样的,不同之处在于它可以在一个时钟读写两次数据,这样就使得数据传输速度加倍了。

这是目前电脑中用得最多的内存,而且它有着成本优势,事实上击败了Intel的另外一种内存标准——Rambus DRAM。

在很多高端的显卡上,也配备了高速DDR RAM来提高带宽,这可以大幅度提高3D加速卡的像素渲染能力。

ROM也有很多种:1) PROM(可编程ROM),是一次性的,也就是软件灌入后,就无法修改了,这种是早期的产品,现在已经不可能使用了;2) EPROM (可擦除可编程ROM),是通过紫外光的照射擦出原先的程序,是一种通用的存储器。

3) EEPROM,是通过电子擦除,价格很高,写入时间很长,写入很慢。

举个例子,手机软件一般放在EEPROM中,我们打电话,有些最后拨打的号码,暂时是存在SRAM中的,不是马上写入通话记录(通话记录保存在EEPROM中),因为当时有很重要工作(通话)要做,如果写入,漫长的等待是让用户忍无可忍的。

各家存储器性能比较

各家存储器性能比较
16MBit-256MBit -
CSF 16MBit
-
64MBit-1GBit
三星samsung
现代Hynix STC ST ISSI蕊盛 旺宏 SST超捷 Ramtron intel
RAM DDR SDRAM
DDR2 SDRAM
SDR SDRAM
128MBit-2GBit
256MBit-1GBit
128MBit-1GBit
1GBit-16GBit
-
-
STC
-
-
-
ST ISSI蕊盛 旺宏 SST超捷
128MBit-1GBit
4MBit
-
-
-
-
-
-
1MBit-64MBit(Industry-Standard Flash)
512KBit-64MBit(Serial Flash)
MTP 64KBit-4MBit MPF 512KBit-64MBit MPF+
32Kit-1MBit
-
36MBit
-
256KBit-32MBit -
2MBit-72MBit -
256KBit-16MBit 1MBit-36MBit -
1MBit-4MBit -
64KBit-18MBit -
MCP
128MBit+64MBit-256MBit+128MBit NOR Only
256MBit+256MBit-2GBit+1GBit NAND Only
16MBit-1GBit
16MBit-4GBit
-
-
-
-
4MBit-256MBit
-
-

不同文件系统的比较

不同文件系统的比较

几种文件系统比较嵌入式系统中比较常用的文件系统为JFFS、JFFS2、CRAMFS和YAFFS。

J f f s2:日志闪存文件系统版本2(J o u r n a l l i n g F l a s h F i l e S y s t e m v2)JFFS2主要应用于NOR Flash,可读写,支持数据压缩,安全保护等特点。

存储空间已满或接近满时,JFFS2文件系统的运行速度却由于垃圾收集的原因而放慢。

不适合用于NAND Flash,NAND Flash的容量一般比较大,JFFS2文件系统为维护日志节点所占用的内存空间也迅速增大,因此JFFS2在挂载时需要很长时间来扫描整个FLASH的内容,用以找出所有的日志节点并建立文件结构,这样就会极大的降低系统的运行效率。

y a f f s:Y e t A n o t h e r F l a s h F i l e S y s t e myaffs/yaffs2是专为嵌入式系统使用NAND型闪存而设计的日志型文件系统。

不支持数据压缩,速度快,挂载时间很短,对内存的占用较小。

支持跨平台。

yaffs/yaffs2自带NAND芯片的驱动,并且为嵌入式系统提供了直接访问文件系统的API。

yaffs仅支持小页(512 Bytes) NAND闪存,yaffs2可支持大页(2KB) NAND闪存。

同时,yaffs2在内存空间占用、垃圾回收速度、读/写速度等方面均有大幅提升。

C r a m f s C o m p r e s s e d R O M F i l e S y s t e m是一种只读的压缩文件系统。

它也基于MTD驱动程序。

降低了系统成本。

以压缩方式存储,在运行时解压缩,不支持应用程序以XIP方式运行,需要将程序拷到RAM里去运行,它的效率高,速度快,其只读的特点保护文件系统免受破坏,提高了系统的可靠性。

R o m f s文件系统是一种简单的只读文件系统,不支持动态擦写,按顺序存放数据,因而支持应用程序以XIP片内运行方式运行,在系统运行时,节省RAM空间。

FLASH芯片种类与区别

FLASH芯片种类与区别

FLASH芯片种类与区别1. NOR FlashNOR Flash是一种并行存储器,其结构类似于传统的ROM。

它具有快速读取速度和高可靠性,适合于存储大量的程序代码和数据。

NOR Flash可以被直接访问,支持随机读取和编程操作。

但是,NOR Flash的写入速度较慢且价格较高,逐渐被NAND Flash所替代。

2. NAND FlashNAND Flash是一种序列存储器,其结构是按行(Page)和块(Block)组织的。

NAND Flash拥有高密度、低成本和快速写入速度的特点,广泛应用于存储容量较大的数据。

它主要用于存储媒体文件、大型应用程序和操作系统。

然而,相比NOR Flash,NAND Flash的读取速度较慢且对于随机读取操作性能较差。

3. SLC FlashSLC(Single Level Cell)Flash是一种基于单元内只存储一个数据位的闪存技术。

它具有较长的寿命、较高的耐用性和较低的读取和写入延迟。

SLC Flash的价格相对较高,但在一些对可靠性和性能要求较高的应用中得到广泛使用,如军事设备、嵌入式系统等。

4. MLC FlashMLC(Multi Level Cell)Flash是一种基于单元内存储多个数据位的闪存技术。

它将SLC Flash的寿命和性能进行了牺牲,以更高的存储密度为代价获得更低的操作成本。

MLC Flash相对于SLC Flash来说容易出现位翻转和写入耗损等问题,但在普通电子设备中广泛应用,如智能手机、平板电脑等。

5. TLC FlashTLC(Triple Level Cell)Flash是一种比MLC Flash更高密度的闪存技术,它能够存储更多的数据位于单个存储单元内。

TLC Flash的存储密度非常高,价格更低,但在性能和寿命方面受到更大的限制。

由于TLC Flash存储单元内的电荷水平更复杂,因此更容易发生数据的位移和错误。

6. 3D V-NAND Flash3D V-NAND Flash是一种新型闪存技术,它采用垂直堆积的结构,通过将存储单元堆叠在一起来提高存储密度。

关于NOR与NAND3

关于NOR与NAND3

块写入,这就意味着在NAND器件上自始至终都必须进行虚拟映射。
软件支持
当讨论软件支持的时候,应该区别基本的读/写/擦操作和高一级的用于磁盘仿真和闪存管理算法的软件,包括性能优化。
在NOR器件上运行代码不需要任何的软件支持,在NAND器件上进行同样操作时,通常需要驱动程序,也就是内存技术驱动程序(MTD),NAND和NOR器件
当然,如果这个位真的改变了,就必须采用错误探测/错误更正(EDC/ECC)算法。位反转的问题更多见于NAND闪存,NAND的供应商建议使用NAND闪存
的时候,同时使用EDC/ECC算法。
这个问题对于用NAND存储多媒体信息时倒不是致命的。当然,如果用本地存储设备来存储操作系统、配置文件或其他敏感信息时,必须使用
NAND读和写操作采用512字节的块,这一点有点像硬盘管理此类操作,很自然地,基于NAND的存储器就可以取代硬盘或其他块设备。
容量和成本
NAND flash的单元尺寸几乎是NOR器件的一半,由于生产过程更为简单,NAND结构可以在给定的模具尺寸内提供更高的容量,也就相应地降低了价
格。
技术上,FLASH是结合EPROM和EEPROM技术达到的,很多FLASH使用雪崩热电子注入方式来编程,擦除和EEPROM一样用Fowler-Nordheim tuneling。
但主要的不同是,FLASH对芯片提供大块或整块的擦除,这就降低了设计的复杂性,它可以不要EEPROM单元里那个多余的Tansister,所以可以做到高集成度,大容量,另FLASH的浮栅工艺上也不同,写入速度更快。
EDC/ECC系统以确保可靠性。
坏块处理
NAND器件中的坏块是随机分布的。以前也曾有过消除坏块的努力,但发现成品率太低,代价太高,根本不划算。

MTD 驱动程序NAND AND NOR Flash区别

MTD 驱动程序NAND AND NOR Flash区别

MTD 驱动程序NAND AND NOR Flash区别MTD 驱动程序是专门针对嵌入式Linux的一种驱动程序,相对于常规块设备驱动程序(比如PC中的IDE硬盘)而言,MTD驱动程序能更好的支持和管理闪存设备,因为它本身就是专为闪存设备而设计的.具体地讲,基于MTD的FLASH驱动,承上可以很好地支持cramfs,jffs2和yaffs等文件系统,启下也能对FLASH的擦除,读写,FLASH坏块以及损耗平衡进行很好的管理。

所谓损耗平衡,是指对NAND的擦写不能总是集中在某一个或某几个block 中,这是由NAND芯片有限的擦写次数的特性决定的。

总之,在现阶段,要为FLASH设备开发Linux下的驱动程序,那么基于MTD的开发将几乎是省时又省力的唯一选择!一、NAND和NOR的区别Google “Nand Flash和Nor Flash的区别”。

简单点说,主要的区别就是:1、NAND比NOR便宜;NAND的容量比NOR大(指相同成本);NAND的擦写次数是NOR的十倍;NAND的擦除和写入速度比NOR快,读取速度比NOR稍慢;2、NAND和NOR的读都可以以字节为单位,但NAND的写以page为单位,而NOR可以随机写每一个字节。

NAND和NOR的擦除都以block为单位,但一般NAND的block比NOR的block小。

另外,不管是NAND还是NOR,在写入前,都必须先进行擦除操作,但是NOR在擦除前要先写0;3、NAND不能在片内运行程序,而NOR可以.但目前很多CPU都可以在上电时,以硬件的方式先将NAND的第一个block中的内容(一般是程序代码,且也许不足一个block,如2KB大小)自动copy到ram中,然后再运行,因此只要CPU支持,NAND也可以当成启动设备;4、NAND和NOR都可能发生比特位反转(但NAND反转的几率远大于NOR),因此这两者都必须进行ECC操作;NAND可能会有坏块(出厂时厂家会对坏块做标记),在使用过程中也还有可能会出现新的坏块,因此NAND驱动必须对坏块进行管理。

Flash简介

Flash简介

Flash闪存是非易失性存储器,这是相对于SDRAM(同步动态随机存储器)等存储器所说的。

即存储器断电后,内部的数据仍然可以保存。

Flash根据技术方式分为Nand 、Nor Flash 和AG-AND Flash,而升级。

但是经过了十多年之后,仍然有相当多的硬件工程师分不清NOR 和NAND闪存。

大多数情况下闪存只是用来存储少量的代码,这时NOR闪存更适合一些。

而NAND则是高数据存储密度的理想解决方案。

Nor Flash常常用于存储程序,最初MP3芯片不太成熟的时,曾经有使用过Nor Flash,比如炬力ATJ2075,SunplusSPCA7530等。

目前这种Flash已经使用的不多了,只有少数的读卡MP3和数码相框中还有见到,因为这种支持SD卡的产品中没有内存,芯片内的ROM不够存储程序,所以需要用到Nor Flash存储程序。

另外AG-AND Flash 是日本Renesas(瑞萨)公司的技术,良品率不是很高,而且有效容量也比较低。

原厂推出的Flash,容量有88%、92%、96%,96%可以用于MP3产品中,而另外两种只能用于U盘和SD卡产品中。

我个人认为其性能比较差,尽量不要使用。

现在Renesas已经退出Flash的生产商行列,而AG-AND技术也转给台湾力晶公司在继续生产。

Nand Flash也有几种,根据技术方式,分为SLC、MCL、MirrorBit等三种。

SLC是Single level cell的缩写,意为每个存储单元中只有1bit数据。

而MLC就是Multi-Level-Cell,意为该技术允许2 bit的数据存储在一个存储单元当中。

而MirrorBit则是每个存储单元中只有4bit数据。

SLC与MLC的参数对比:可想而知,SLC的技术存储比较稳定,SLC的技术也最为成熟。

然而MLC可以在一个单元中有2bit数据,这样同样大小的晶圆就可以存放更数据。

这也是MLC价格比SLC低很多的原因。

EPROM,E2PROM,NAND FLASH,NOR FLASH

EPROM,E2PROM,NAND FLASH,NOR FLASH

Flash memory指的是“闪存”,也是一种非易失性的内存,属于EEPROM的改进产品。FLASH ROM则属于真正的单电压芯片。Flash ROM 是利用浮置栅上的电容存储电荷来保存信息,因为浮置栅不会漏电,所以断电后信息仍然可以保存。也由于其机构简单所以集成度可以做的很高,容量可以很大。
一般小容量的用NOR Flash,因为其读取速度快,多用来存储操作系统等重要信息,而大容量的用NAND FLASH,最常见的NAND FLASH应用是嵌入式系统采用的DOC(Disk On Chip)和我们通常用的"闪盘",可以在线擦除。目前市面上的FLASH 主要来自Intel,AMD,Fujitsu和Toshiba,而生产NAND Flash的主要厂家有Samsung和Toshiba。
EPROM(Erasable Programmable ROM,可擦除可编程ROM)芯片可重复擦除和写入,解决了PROM芯片只能写入一次的弊端。EPROM芯片有一个很明显的特征,在其正面的陶瓷封装上,开有一个玻璃窗口,透过该窗口,可以看到其内部的集成电路,紫外线透过该孔照射内部芯片就可以擦除其内的数据,完成芯片擦除的操作要用到EPROM擦除器。EPROM内资料的写入要用专用的编程器,并且往芯片中写内容时必须要加一定的编程电压(VPP=12—24V,随不同的芯片型号而定)。EPROM 的型号是以27开头的,如27C020(8*256K)是一片2M Bits容量的EPROM芯片。EPROM芯片在写入资料后,还要以不透光的贴纸或胶布把窗口封住,以免受到周围的紫外线照射而使资料受损。
"flash存储器"经常可以与"NOR存储器"互换使用。许多业内人士也搞不清楚NAND闪存技术相对于NOR技术的优越之处,因为大多数情况下闪存只是用来存储少量的代码,这时NOR闪存更适合一些。而NAND则是高数据存储密度的理想解决方案。

Flash闪速存储器--(NAND和NOR比较)

Flash闪速存储器--(NAND和NOR比较)

Flash闪速存储器--(NAND和NOR比较)Flash闪速存储器--(NAND和NOR比较)一、闪速存储器的特点闪速存储器(FlashMemory)是一类非易失性存储器NVM(Non-VolatileMemory)即使在供电电源关闭后仍能保持片内信息;而诸如DRAM、SRAM这类易失性存储器,当供电电源关闭时片内信息随即丢失。

FlashMemory集其它类非易失性存储器的特点:与EPROM相比较,闪速存储器具有明显的优势——在系统电可擦除和可重复编程,而不需要特殊的高电压(某些第一代闪速存储器也要求高电压来完成擦除和/或编程操作);与EEPROM相比较,闪速存储器具有成本低、密度大的特点。

其独特的性能使其广泛地运用于各个领域,包括嵌入式系统,如PC及外设、电信交换机、蜂窝电话、网络互联设备、仪器仪表和汽车器件,同时还包括新兴的语音、图像、数据存储类产品,如数字相机、数字录音机和个人数字助理(PDA)。

Flash的技术特点如下:(1)区块存储单元:在物理结构上分成若干个被称为区块的存储单元,不同区块之间相互独立,每个区块几KB~几十KB。

(2)先擦后写:任何flash器件的写入操作只能在空或已擦除的单元内进行,所以大多数情况下,在进行写入操作之前必须先执行擦除。

(3)位交换:有时一个比特位会发生反转,就是位交换。

(4)区块损坏:使用过程中,某些区块可能会被损坏,区块损坏后就不可修复。

二、闪速存储器的技术分类全球闪速存储器的主要供应商有AMD、ATMEL、Fujistu、Hitachi、Hyundai、Intel、Micron、Mitsubishi、Samsung、SST、SHARP、TOSHIBA,由于各自技术架构的不同,分为几大阵营。

1 NOR技术NOR技术(亦称为Linear技术)闪速存储器是最早出现的FlashMemory,目前仍是多数供应商支持的技术架构。

它源于传统的EPROM器件,与其它FlashMemory技术相比,具有可靠性高、随机读取速度快的优势,在擦除和编程操作较少而直接执行代码的场合,尤其是纯代码存储的应用中广泛使用,如PC 的BIOS固件、移动电话、硬盘驱动器的控制存储器等。

Nand flash文件系统总结

Nand flash文件系统总结

NAND flash文件系统目前flash的文件系统比较多,用的比较多的就是JFFS2文件系统。

基于NOR flash上的JFFS2文件系统可以说算是比较成熟了,支持NAND flash的JFFS2也已经发布了。

源代码可以到上面下载。

但是在我的测试过程中,在nand flash上挂接的JFFS2文件系统很不稳定,经常有CRC错误产生。

特别是进行写操作的时候,每次复位都会产生CRC错误,可以说支持NAND flash的JFFS2文件系统目前还不成熟。

而YAFFS文件系统则是专门针对NAND flash的,源代码可以到/yaffs/index.html上下载。

在测试过程中稳定性能比JFFS2文件系统要稳定的多,而且mount分区的时间也比JFFS2文件系统少的多。

用JFFS2 mount一个2m的文件系统大约需要1s。

下面分别介绍在uclinux 下面使用JFFS2和YAFFS文件系统。

1、JFFS2到上面下载最新的MTD和JFFS2压缩包。

压缩包里面还有有关的内核补丁和一些MTD的相关工具。

主要的补丁就是ilookup-2.4.23.patch,因为最新的MTD驱动中要用到一个ilookup()函数。

打完补丁、更新了MTD驱动和JFFS2文件系统之后就开始写自己nand flash驱动了。

如果不想把JFFS2作为根文件系统的话,还需要修改MTD_BLOCK_MAJOR。

驱动可以参考里面的例子,最简单的就是参考spia.c。

写驱动主要工作是定义flash分区结构、定义flash读写地址、写控制flash 的**_hwcontrol()函数。

具体的操作要看所用的nand flash的芯片资料。

相对NOR flash来说驱动要简单多了。

:)改完之后再配置Memory Technology Devices(MTD)下CONFIG_MTD=YCONFIG_MTD_DEBUG=YCONFIG_MTD_DEBUG_VERBOSE=3CONFIG_MTD_PARTITIONS=YCONFIG_MTD_CHAR=YCONFIG_MTD_BLOCK=YNAND Flash Device Drivers下CONFIG_MTD_NAND=Y定义自己的驱动文件File systems下CONFIG_JFFS2_FS=YCONFIG_JFFS2_FS_DEBUG=2CONFIG_JFFS2_FS_NAND=y /*这个是新加的*/在uClinux v1.3.4 Configuration下Flash Tools下CONFIG_USER_MTDUTILS=YCONFIG_USER_MTDUTILS_ERASE=YCONFIG_USER_MTDUTILS_ERASEALL=YCONFIG_USER_MTDUTILS_MKFSJFFS2=Y最后就是辛苦了调试工作了。

终于有人说清楚了什么是DRAM、什么是NANDFlash

终于有人说清楚了什么是DRAM、什么是NANDFlash

终于有⼈说清楚了什么是DRAM、什么是NANDFlash所有使⽤者对“存储器”这个名词可是⼀点都不陌⽣,因为所有的电⼦产品都必须⽤到存储器,且通常⽤到不只⼀种存储器。

不过对于存储器种类、规格与形式,很多⼈容易搞混。

⽐如,最近价格贵到炸的 NAND Flash,产业新闻⾥常常提到的DRAM,还有SRAM、SDRAM、DDR 3、DDR 4、NOR Flash … 这些⼜是什么?先来⼀段百度百科。

存储器是⽤来存储程序和数据的部件,对于计算机来说,有了存储器,才有记忆功能,才能保证正常⼯作。

存储器的种类很多,按其⽤途可分为主存储器和辅助存储器,主存储器⼜称内存储器(简称内存,港台称之为记忆体)。

外储存器是指除计算机内存及CPU缓存以外的储存器,此类储存器⼀般断电后仍然能保存数据。

常见的外存储器有硬盘、软盘、光盘、U盘等。

⽽简单来说,DRAM就是我们⼀般在⽤的内存,⽽NAND Flash 闪存,它在做的事情其实是硬盘。

(这段是给电脑⼩⽩的科普,⼤家可以酌情跳过)不熟悉PC知识的朋友常常在选购设备时问,硬盘和内存到底有什么差别?我硬盘容量明明有 1TB,但PC还是跑得很慢哎?硬盘和内存的差异,在于把电源关掉后、空间中储存的数据还会不会留着。

就算关掉电源,硬盘的数据也不会消失。

但我们要运算数据时,如果 CPU 要直接从硬盘⾥⾯抓数据,时间会太久。

所以”内存”会作为中间桥梁,先到硬盘⾥⾯复制⼀份进来、再让 CPU 直接到内存中拿数据做运算。

这样会⽐直接去硬盘抓数据,快约数百万倍。

打开任务管理器,就可以看到现在执⾏中程序占掉的内存空间,很多⼈就在骂Chrome 耗费的运算资源很⾼,内存使⽤率⾼于其他浏览器,多开⼏个分页内存就被吃完了。

所以简单来说,计算机在运作就像是办公⼀样,喝饮料、看书本、听⾳响… 想⼀次使⽤越多东西、桌⾯(内存)就要越⼤。

但其他⼀时间没有要⽤到的东西,都会放在抽屉(硬盘)⾥⾯。

所以硬盘就算再⼤,你⼀次想执⾏很多任务,还是得要看内存⼤⼩。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

几种Nand flas文件系统的对比1.来源:NLE-FFS: A Flash File System with PRAM forNon-linear EditingFor thesedevices, NAND flash memory has became the most attractive storage medium due to outstanding characteristics such as its increased capacity, low power consumption, small size and light weight. For the efficient management of NAND flashmemory, several flash file systems have been proposed, including JFFS2, YAFFS2, CFFS and PFFS. several file systems such as MNFS,NAMU and ScaleFFS have been designed forreal-time recording /playback and large-capacity storage. A. YAFFS2YAFFS2 is the most widely employed file system for NAND flash memory. YAFFS2 essentially saves the object ID (file ID) and the chunk (page) number in the spare region to show the offset of a page and the owner file of the page. Therefore, YAFFS2 reads the spare regions and object headers to establish the metadata in memory.Although YAFFS2 is designed to support NAND flash memory, it has scalability problems. With YAFFS2, the location of the updated page is saved in NAND flash pages or spare regions, as shown in Fig. 10 (a); hence, the file systemshould scan the entire flash space at the mounting time. Moreover, the entire directory and file system structures must be saved in main memory at that time. Thus, the mounting time and the memory usage are increased linearly according to the NAND flash size and the number of files.YAFFS2 has another problem in which many pages are consumed during metadata updates. The metadata are frequently updated and most of the metadata updates are performed in several bytes. Metadata updating creates large numbers of invalid pages. This severely degrades the write performance due to garbage collection, as byte-level updates and in-place updates are not allowed in NAND flash.B. PFFSTo address the problems with YAFFS2, PFFS wasproposed [4]. In PFFS, an architecture using PRAM and NAND flash memory is employed. In this file system,metadata are separated and stored in the PRAM region,whereas the other data are stored in the NAND flash memory region, as shown in Fig. 10 (b). Metadata separation has two advantages. First, the overhead of metadata updates is reduced. As shown in Fig. 10 (a),YAFFS2 writes 2KB of a NAND flash page for each metadata update. As the metadata are frequently updated and most of the metadataupdates are performed in several bytes, metadata updates with YAFFS2 create many invalid pages. This leads to severe performance degradation due to garbage collection. However, PFFS writes metadata in units of bytes, as it maintains metadata in the PRAM region as shown in Fig. 10 (b). Consequently, metadata separation by PFFS reduces the number of page-writes on account of in-place updating and byte-level updating. Second, PFFS requires only a short mounting time and uses a fixed amount of memory, whereas other flash file systems such as YAFFS2 require a considerable amount of time to scan NAND pages to construct in-memory file and directory structures.However, PFFS is also a general-purpose file system; thus,it does not sufficiently consider NLE operations. In this paper,to effectively support NLE, NLE-FFS is proposed. It is based on the architecture shown in Fig.3.2.来源:An Efficient Multimedia File System for NAND Flash MemoryStorageJFFS2 (Journaling Flash File System 2) [4] is a log structured file system designed for NAND flash memory in embedded systems. It has been widely used due to its excellent stability. JFFS2 saves only the altered contents into the file system. JFFS2 compresses both metadata and file data to reduce write overhead and to utilize the space efficiently.JFFS2 loads valid pages from NAND flash memory into main memory during mount and generates file metadata and index entries of file data by reading the pages from cache or NAND flash memory whenever a file is accessed. Therefore, because all the valid pages must be read in during mount, the two main problems of JFFS2 are mount time and memory usage. In addition, JFFS2 has high read/writeoverheads.YAFFS (Yet Another Flash File System) [5], the first file system developed for NAND flash memory, has better performance than JFFS2 in terms of read and write operations,file system mount time and memory usage. YAFFS2 [5] has been developed based on YAFFS to support large block flash memory. For file write operations, YAFFS stores metadata of a file first into a page, and saves the file ID in the spare area of all pages belonging to the file. Because YAFFS does not compress data while JFFS does and manages data in page units, the size of file data’s index is smaller than that of JFFS2. Further, since all metadata of files and index entries of file data are stored in main memory, page access latency of YAFFS is shorter than that of JFFS2. YAFFS reduces the mount time when compared to JFFS2 by scanning only the spare areas instead of the entire NAND flash memory during mount, but its mount time still increases linearly as the size of the NAND flash memory increases.NFFiS (Nand Flash memory File System) [6], which is afile system based on YAFFS, utilizes a logical block. Each logical block consists of two or more contiguous physical blocks, and the indexes of all file data existing in the logical block are stored in its last page. Thus, it needs to scan justthe last page of each logical block during mount. NFFiS’s mount time also increases linearly as YAFFS2, but is shorter than YAFFS2’s. Data loss may occur, if a file system terminates abnormally due to unexpected hardware errors such as power down. NFFiS rolls back files which have not been closed yet at the time of error to its previous safe state for error recovery. In addition, since NFFiS adopts a caching policy based on a careful analysis of file usage patterns, NFFiS’s read/write performances are better than both JFFS2’s and YAFFS2’s.CFFS (Core Flash File System) [7], which is another file system based on YAFFS, stores index entries and metadata into index blocks which are distinct from data blocks. Since CFFS just reads in the index blocks during mount, it has a faster mount time than YAFFS2. Furthermore, frequently modified metadata are collected and stored into index blocks, garbage collection performance o f CFFS is better than YAFFS2’s. However, since CFFS stores the physical addresses of index blocks into the first block of NAND flash memory in order to reduce mount time, and the first block is frequently erased, wear-leveling performance of CFFS get worse.The performance of sequential reading and writing of NANDflash memory is 20~30% better than that of its random reading and writing [10]. It is important to attempt sequential writing as long as possible for fast reading performance especially for large-capacity files such as multimedia files.The existing file systems have not paid any attention to supporting the sequential read and write operations of NAND flash memory. In addition, since the file systems manage data in page units, their memory usage increases linearly as the number of used pages increases.。

相关文档
最新文档