nand flash 原理简介【转】Fisrt part : NAND flash和NOR flash的不同NOR flash采用位读写,因为它具有sram的接口,有足够的引脚来寻址,可以很容易的存取其内部的每一个字节。
NAND flash使用复杂的I/O口来穿行地存取数据。8个引脚用来传送控制、地址和数据信息。
NAND的读和写单位为512Byte的页,擦写单位为32页的块。 ● NOR的读速度比NAND稍快一些。
● NAND的写入速度比NOR快很多。 ● NAND的4ms擦除速度远比NOR的5s快。
● 大多数写入操作需要先进行擦除操作。 ● NAND的擦除单元更小,相应的擦除电路更少。
在NOR器件上运行代码不需要任何的软件支持,在NAND器件上进行同样操作时,通常需要驱动程序,也就是内存技术驱动程序(MTD),NAND和NOR器件在进行写入和擦除操作时都需要MTD。 ---------摘抄自网上流传很广的《NAND 和 NOR flash的区别》Second part: NAND Flash结构与驱动分析一、NAND flash的物理组成 NAND Flash 的数据是以bit的方式保存在memory cell,一般来说,一个cell 中只能存储一个bit。
这些cell 以8个或者16个为单位,连成bit line,形成所谓的byte(x8)/word(x16),这就是NAND Device的位宽。这些Line会再组成Page,(NAND Flash 有多种结构,我使用的NAND Flash 是K9F1208,下面内容针对三星的K9F1208U0M),每页528Bytes(512byte(Main Area)+16byte(Spare Area)),每32个page形成一个Block(32*528B)。
具体一片flash上有多少个Block视需要所定。我所使用的三星k9f1208U0M具有4096个block,故总容量为4096*(32*528B)=66MB,但是其中的2MB是用来保存ECC校验码等额外数据的,故实际中可使用的为64MB。
NAND flash以页为单位读写数据,而以块为单位擦除数据。按照这样的组织方式可以形成所谓的三类地址: Column Address:Starting Address of the Register. 翻成中文为列地址,地址的低8位 Page Address :页地址 Block Address :块地址 对于NAND Flash来讲,地址和命令只能在I/O[7:0]上传递,数据宽度是8位。
二、NAND Flash地址的表示 512byte需要9bit来表示,对于528byte系列的NAND,这512byte被分成1st half Page Register和2nd half Page Register,各自的访问由地址指针命令来选择,A[7:0]就是所谓的column address(列地址),在进行擦除操作时不需要它,why?因为以块为单位擦除。32个page需要5bit来表示,占用A[13:9],即该page在块内的相对地址。
A8这一位地址被用来设置512byte的1st half page还是2nd half page,0表示1st,1表示2nd。Block的地址是由A14以上的bit来表示。
例如64MB(512Mb)的NAND flash(实际中由于存在spare area,故都大于这个值),共4096block,因此,需要12个bit来表示,即A[25:14],如果是128MB(1Gbit) 的528byte/page的NAND Flash,则block address用A[26:14]表示。而page address就是blcok address|page address in block NAND Flash 的地址表示为: Block Address|Page Address in block|halfpage pointer|Column Address 地址传送顺序是Column Address,Page Address,Block Address。
由于地址只能在I/O[7:0]上传递,因此,必须采用移位的方式进行。 例如,对于512Mbit x8的NAND flash,地址范围是0~0x3FF_FFFF,只要是这个范围内的数值表示的地址都是有效的。
以NAND_ADDR 为例: 第1 步是传递column address,就是NAND_ADDR[7:0],不需移位即可传递到I/O[7:0]上,而halfpage pointer即A8 是由操作指令决定的,即指令决定在哪个halfpage 上进行读 写,而真正的A8 的值是不需程序员关心的。 第2 步就是将NAND_ADDR 右移9位,将NAND_ADDR[16:9]传到I/O[7:0]上; 第3 步将NAND_ADDR[24:17]放到I/O上; 第4步需要将NAND_ADDR[25]放到I/O上; 因此,整个地址传递过程需要4 步才能完成,即4-step addressing。
如果NAND Flash 的容量是32MB(256Mbit)以下,那么,block adress最高位只到bit24,因此寻址只需要3步。 下面,就x16 的NAND flash 器件稍微进行一下说明。
由于一个page 的main area 的容量为256word,仍相当于512byte。但是,这个时候没有所谓的1st halfpage 和2nd halfpage 之分了,所以,bit8就变得没有意义了,也就是这个时候 A8 完全不用管,地址传递仍然和x8 器件相同。
除了,这一点之外,x16 的NAND使用方法和 x8 的使用方法完全相同。三、NAND flash驱动解读 以前由于做移植多一些,那些工作很简单(现在看来),从来都不用去关心驱动里面到底怎么实现的,这几次面试才发现真的是学的太浅了,似乎我还在学习仰泳而那些牛人基本都属于潜水级的了,潜的不知有多深。
我对照着开发板所带的NAND flash驱动和k9f1208的芯片资料把这些代码通读了一遍,终于明白了NAND flash的读写过程是如何实现的了。我所参考的驱动是mizi公司为三星芯片所写的,我看看了,大概和官方2.4.18内核的nand.c差不多。
在s3c2410处理器中有专门的NAND flash控制器,他们位于SFR区,具体可以参看s3c2410用户手册。以下的这些代码均可以在vivi或者kernel里面找到,文中会标明程序出自何处。
在vivi中。
什么是Flash Memory?FLASH存储器又称闪存(快闪存储器),是一种电可擦可编程只读存储器(EEPROM)的形式,允许在操作中被多次擦或写,EEPROM与高速RAM成为当前最常用且发展最快的两种存储技术。
计算机的BIOS 、数字照相机等的存储卡中都使用闪存。 不同的是,EEPROM是以字节为单位进行数据更新,而闪存则以块为单位。
由于闪存可以比 EEPROM具有更小的电路,这使其能够达到更高的集成度,有利于降低价格。 FLASH结合了ROM和RAM的长处,不仅具备电子可擦除可编程(EEPROM)的性能,还不会断电丢失数据同时可以快速读取数据(NVRAM的优势),U盘和MP3里用的就是这种存储器。
在过去的20年里,嵌入式系统一直使用ROM(EPROM)作为它们的存储设备,近年来Flash全面代替了ROM(EPROM)在嵌入式系统中的地位,用作存储BootLoader以及操作系统或者程序代码或者直接当硬盘使用(U盘)。闪存卡(Flash Card)是利用闪存(Flash Memory)技术达到存储电子信息的存储器。
目前市场上主要的闪存或者多媒体卡主要为:TF卡、SM卡、CF卡、MicroDrive、MemoryStick、MemoryStick PRO, MMC卡、Micro SD Card、MiniSD卡、SD卡、SDHC卡和xD卡。 我们常见的FLASH Memory有储存卡与U盘。
TF卡(TransFLash卡)、SD卡(Secure Digital Memory Card)、CF卡(Compact Flash卡)等。 CF卡(Compact Flash)是1994年由SanDisk最先推出的一种闪存卡,它革命性的使用了闪存技术,对所保存的数据来说,CF卡比传统的磁盘驱动器安全性和保护性都更高。
90年代末至21世纪初出现了SD、MMC、SDHC、MS、xD图像卡等等记忆卡制式,它们将占据各种数码产品及移动存储。路由器、交换器等大多数的网络及电信设备及数码相机仍以CF卡为主要的外部储存装置。
SM卡(Smart Media)是由东芝公司在1995年11月退出的Flash Memory存贮卡,三星公司在1996年购买了生产和销售许可,这两家公司成为主要的SM卡厂商。SmartMedia卡是市场上常见的微存贮卡(但是最大容量只有128MB),一度在MP3播放器上非常的流行。
SmartMedia卡被视为软磁盘的替代者,曾是数码相机普遍支持的存储格式,如今已是没落消亡之势。这一格式相比其他而言最大的好处是通过一个名为FlashPath的转换器,可以在标准的3.5英寸软盘驱动器内使用任何容量的SM卡。
MMC卡(MultiMedia Card)卡由西门子公司和首推CF的SanDisk公司于1997年联合推出,号称是目前世界上最小的Flash Memory存贮卡。 近年MMC卡技术已差不多完全被SD卡所代替,但由于MMC卡仍可被兼容SD卡的设备所读取,因此仍有其作用。
少数一些公司,最著名的如诺基亚,仍然全部地支持MMC。MS卡(Memory Stick)通常称为记忆棒,是Sony公司研发并于1998年10月推出市场的,采用了Sony自己的外型、协议、物理格式和版权保护的一种闪存卡。
MS卡的规格和同一时间上市的MMC很相似。 SD卡(Security Digital Memory Card,译成安全数码卡)由松下、东芝和SanDisk联合推出,1999年8月才首次发布,大小如一张邮票。
一般SD卡也能够向下兼容MMC卡。容量4GB以上称为microSDHC(Secure Digital High Capacity),更大的容量就必须使用microSDXC(Secure Digital eXtended Capacity)规格。
SD卡是东芝在MMC卡技术中加入加密技术硬件而成,SD/MMC卡已经替代东芝开发的SM卡,成为了便携式数码相机使用最广泛的数字存储卡格式。之前仍然在坚持使用自己的专利格式的三大主要厂商:奥林巴斯和富士(xD卡),索尼(Memory Stick),也开始转而使用SD卡(或提供双卡支持)。
SD读卡器对计算机来说类似一个USB的软驱的作用,插上SD卡后的读卡器跟U盘功能是一样的,大小也和普通U盘类似。读卡器与电脑主机之间的连接都是采用USB接口,这种产品是配合数码相机而产生的。
有外接式和内置式两种,不少新的个人电脑都已经内置了多功能的读卡器。 TF卡(TransFlash)由SanDisk(闪迪)公司发明创立,是一种主要用于手机的极细小的快闪存储器卡,2004年重命名为MicroSD(顾名思义,就是小SD卡)。
几乎只有一片指甲盖的大小,主流台式机、笔记本上均没有直接插槽,通过SD式读卡器连接后可以读写数据。 xD卡(eXtreme Digital-Picture Card)是一种专门于数码相机的闪存存储卡,由富士胶卷与奥林巴斯联合于2002年7月发布,用于取代SM卡(SmartMedia Card)。
miniSD是闪迪2003年发布的极细小型规格标准SD卡,特别设计于移动电话上,并随卡附上minSD转接器,令它能够兼容所有配置了标准SD卡插槽的设备中。 微硬盘MD(Microdrive)最早是由IBM公司开发并于1999年上市的一款体积非常微小的硬盘式数据存储设备,用来对抗市面上主流的闪存产品。
IBM将旗下硬盘部门卖给了日立(Hitachi)公司,因此自2003年起MicroDrive的技术与专利是由日立公司拥有。微型硬盘具有记忆容量大、读写速率高有点,缺点是较为耗电、容易发热、使用寿限较短和抗震性能差。
声明:本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
蜀ICP备2020033479号-4 Copyright © 2016 学习鸟. 页面生成时间:2.832秒