nor flash、nand flash 、sdram的区别

nor flash、nand flash 、sdram的区别
nor flash、nand flash 、sdram的区别

ROM和RAM指的都是半导体存储器,ROM是Read Only Memory的缩写,RAM是Random Access Memory的缩写。ROM在系统停止供电的时候仍然可以保持数据,而RAM通常都是在掉电之后就丢失数据,典型的RAM就是计算机的内存。

RAM有两大类,一种称为静态RAM(Static RAM/SRAM),SRAM速度非常快,是目前读写最快的存储设备了,但是它也非常昂贵,所以只在要求很苛刻的地方使用,譬如CPU的一级缓冲,二级缓冲。另一种称为动态RAM(Dynamic RAM/DRAM),DRAM 保留数据的时间很短,速度也比SRAM慢,不过它还是比任何的ROM都要快,但从价格上来说DRAM相比SRAM要便宜很多,计算机内存就是DRAM的。

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

DDR RAM(Date-Rate RAM)也称作DDR SDRAM,这种改进型的RAM和SDRAM是基本一样的,不同之处在于它可以在一个时钟读写两次数据,这样就使得数据传输速度加倍了。这是目前电脑中用得最多的内存,而且它有着成本优势,事实上击败了Intel的另外一种内存标准-Rambus DRAM。在很多高端的显卡上,也配备了高速DDR RAM来提高带宽,这可以大幅度提高3D加速卡的像素渲染能力。

内存工作原理:

内存是用来存放当前正在使用的(即执行中)的数据和程序,我们平常所提到的计算机的内存指的是动态内存(即DRAM),动态内存中所谓的"动态",指的是当我们将数据写入DRAM 后,经过一段时间,数据会丢失,因此需要一个额外设电路进行内存刷新操作。

具体的工作过程是这样的:一个DRAM的存储单元存储的是0还是1取决于电容是否有电荷,有电荷代表1,无电荷代表0。但时间一长,代表1的电容会放电,代表0的电容会吸收电荷,这就是数据丢失的原因;刷新操作定期对电容进行检查,若电量大于满电量的1/2,则认为其代表1,并把电容充满电;若电量小于1/2,则认为其代表0,并把电容放电,藉此来保持数据的连续性。

ROM也有很多种,PROM是可编程的ROM,PROM和EPROM(可擦除可编程ROM)两者区别是,PROM是一次性的,也就是软件灌入后,就无法修改了,这种是早期的产品,现在已经不可能使用了,而EPROM是通过紫外光的照射擦出原先的程序,是一种通用的存储器。另外一种EEPROM是通过电子擦出,价格很高,写入时间很长,写入很慢。

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

FLASH存储器又称闪存,它结合了ROM和RAM的长处,不仅具备电子可擦除可编程(EEPROM)的性能,还不会断电丢失数据同时可以快速读取数据(NVRAM的优势),U 盘和MP3里用的就是这种存储器。在过去的20年里,嵌入式系统一直使用ROM(EPROM)作为它们的存储设备,然而近年来Flash全面代替了ROM(EPROM)在嵌入式系统中的

地位,用作存储Bootloader以及操作系统或者程序代码或者直接当硬盘使用(U盘)。

目前Flash主要有两种NOR Flash和NADN Flash

NOR Flash的读取和我们常见的SDRAM的读取是一样,用户可以直接运行装载在NOR FLASH里面的代码,这样可以减少SRAM的容量从而节约了成本。

NAND Flash没有采取内存的随机读取技术,它的读取是以一次读取一块的形式来进行的,通常是一次读取512个字节,采用这种技术的Flash比较廉价。用户不能直接运行NAND Flash上的代码,因此好多使用NAND Flash的开发板除了使用NAND Flah以外,还作上了一块小的NOR Flash来运行启动代码。

一般小容量的用NOR Flash,因为其读取速度快,多用来存储操作系统等重要信息,而大容量的用NAND FLASH,最常见的NAND FLASH应用是嵌入式系统采用的DOC(Disk On Chip)和我们通常用的"闪盘",可以在线擦除。目前市面上的FLASH 主要来自Intel,AMD,Fujitsu和T oshiba,而生产NAND Flash的主要厂家有Samsung和T oshiba。

NAND Flash和NOR Flash的比较

NOR和NAND是现在市场上两种主要的非易失闪存技术。Intel于1988年首先开发出NOR flash技术,彻底改变了原先由EPROM和EEPROM一统天下的局面。紧接着,1989年,东芝公司发表了NAND flash结构,强调降低每比特的成本,更高的性能,并且象磁盘一样可以通过接口轻松升级。但是经过了十多年之后,仍然有相当多的硬件工程师分不清NOR 和NAND闪存。

相"flash存储器"经常可以与相"NOR存储器"互换使用。许多业内人士也搞不清楚NAND 闪存技术相对于NOR技术的优越之处,因为大多数情况下闪存只是用来存储少量的代码,这时NOR闪存更适合一些。而NAND则是高数据存储密度的理想解决方案。

NOR是现在市场上主要的非易失闪存技术。NOR一般只用来存储少量的代码;NOR主要应用在代码存储介质中。NOR的特点是应用简单、无需专门的接口电路、传输效率高,它是属于芯片内执行(XIP, eXecute In Place),这样应用程序可以直接在(NOR型)flash闪存内运行,不必再把代码读到系统RAM中。在1~4MB的小容量时具有很高的成本效益,但是很低的写入和擦除速度大大影响了它的性能。NOR flash带有SRAM接口,有足够的地址引脚来寻址,可以很容易地存取其内部的每一个字节。NOR flash占据了容量为1~

16MB闪存市场的大部分。

NAND结构能提供极高的单元密度,可以达到高存储密度,并且写入和擦除的速度也很快。应用NAND的困难在于flash的管理和需要特殊的系统接口。

1、性能比较:

flash闪存是非易失存储器,可以对称为块的存储器单元块进行擦写和再编程。任何flash 器件的写入操作只能在空或已擦除的单元内进行,所以大多数情况下,在进行写入操作之前必须先执行擦除。NAND器件执行擦除操作是十分简单的,而NOR则要求在进行擦除前先

要将目标块内所有的位都写为1。

由于擦除NOR器件时是以64~128KB的块进行的,执行一个写入/擦除操作的时间为5s,与此相反,擦除NAND器件是以8~32KB的块进行的,执行相同的操作最多只需要4ms。

执行擦除时块尺寸的不同进一步拉大了NOR和NADN之间的性能差距,统计表明,对于给定的一套写入操作(尤其是更新小文件时),更多的擦除操作必须在基于NOR的单元中进行。这样,当选择存储解决方案时,设计师必须权衡以下的各项因素:

● NOR的读速度比NAND稍快一些。

● NAND的写入速度比NOR快很多。

● NAND的4ms擦除速度远比NOR的5s快。

●大多数写入操作需要先进行擦除操作。

● NAND的擦除单元更小,相应的擦除电路更少。

(注:NOR FLASH SECTOR擦除时间视品牌、大小不同而不同,比如,4M FLASH,有的SECTOR擦除时间为60ms,而有的需要最大6s。)

2、接口差别:

NOR flash带有SRAM接口,有足够的地址引脚来寻址,可以很容易地存取其内部的每一个字节。

NAND器件使用复杂的I/O口来串行地存取数据,各个产品或厂商的方法可能各不相同。8个引脚用来传送控制、地址和数据信息。

NAND读和写操作采用512字节的块,这一点有点像硬盘管理此类操作,很自然地,基于NAND的存储器就可以取代硬盘或其他块设备。

3、容量和成本:

NAND flash的单元尺寸几乎是NOR器件的一半,由于生产过程更为简单,NAND结构可以在给定的模具尺寸内提供更高的容量,也就相应地降低了价格。

NOR flash占据了容量为1~16MB闪存市场的大部分,而NAND flash只是用在8~128MB的产品当中,这也说明NOR主要应用在代码存储介质中,NAND适合于数据存储,NAND在CompactFlash、Secure Digital、PC Cards和MMC存储卡市场上所占份额最大。

4、可靠性和耐用性:

采用flahs介质时一个需要重点考虑的问题是可靠性。对于需要扩展MTBF的系统来说,Flash是非常合适的存储方案。可以从寿命(耐用性)、位交换和坏块处理三个方面来比较NOR和NAND的可靠性。

A) 寿命(耐用性)

在NAND闪存中每个块的最大擦写次数是一百万次,而NOR的擦写次数是十万次。NAND存储器除了具有10比1的块擦除周期优势,典型的NAND块尺寸要比NOR器件小8倍,每个NAND存储器块在给定的时间内的删除次数要少一些。

B) 位交换

所有flash器件都受位交换现象的困扰。在某些情况下(很少见,NAND发生的次数要比NOR多),一个比特(bit)位会发生反转或被报告反转了。

一位的变化可能不很明显,但是如果发生在一个关键文件上,这个小小的故障可能导致系统停机。如果只是报告有问题,多读几次就可能解决了。

当然,如果这个位真的改变了,就必须采用错误探测/错误更正(EDC/ECC)算法。位反转的问题更多见于NAND闪存,NAND的供应商建议使用NAND闪存的时候,同时使用EDC/ECC算法。

这个问题对于用NAND存储多媒体信息时倒不是致命的。当然,如果用本地存储设备来存储操作系统、配置文件或其他敏感信息时,必须使用EDC/ECC系统以确保可靠性。

C) 坏块处理

NAND器件中的坏块是随机分布的。以前也曾有过消除坏块的努力,但发现成品率太低,代价太高,根本不划算。

NAND器件需要对介质进行初始化扫描以发现坏块,并将坏块标记为不可用。在已制成的器件中,如果通过可靠的方法不能进行这项处理,将导致高故障率。

5、易于使用:

可以非常直接地使用基于NOR的闪存,可以像其他存储器那样连接,并可以在上面直接运行代码。

由于需要I/O接口,NAND要复杂得多。各种NAND器件的存取方法因厂家而异。

在使用NAND器件时,必须先写入驱动程序,才能继续执行其他操作。向NAND器件写入信息需要相当的技巧,因为设计师绝不能向坏块写入,这就意味着在NAND器件上自始至终都必须进行虚拟映射。

6、软件支持:

当讨论软件支持的时候,应该区别基本的读/写/擦操作和高一级的用于磁盘仿真和闪存管理算法的软件,包括性能优化。

在NOR器件上运行代码不需要任何的软件支持,在NAND器件上进行同样操作时,通常需要驱动程序,也就是内存技术驱动程序(MTD),NAND和NOR器件在进行写入和擦除操作时都需要MTD。

使用NOR器件时所需要的MTD要相对少一些,许多厂商都提供用于NOR器件的更高级软件,这其中包括M-System的TrueFFS驱动,该驱动被Wind River system、Microsoft、QNX Software system、Symbian和Intel等厂商所采用。

驱动还用于对DiskOnChip产品进行仿真和NAND闪存的管理,包括纠错、坏块处理和损耗平衡。

NOR FLASH的主要供应商是INTEL ,MICRO等厂商,曾经是FLASH的主流产品,但现在被NAND FLASH挤的比较难受。它的优点是可以直接从FLASH中运行程序,但是工艺复杂,价格比较贵。

NAND FLASH的主要供应商是SAMSUNG和东芝,在U盘、各种存储卡、MP3播放器里面的都是这种FLASH,由于工艺上的不同,它比NOR FLASH拥有更大存储容量,而且便宜。但也有缺点,就是无法寻址直接运行程序,只能存储数据。另外NAND FLASH 非常容易出现坏区,所以需要有校验的算法。

在掌上电脑里要使用NAND FLASH 存储数据和程序,但是必须有NOR FLASH来启动。除了SAMSUNG处理器,其他用在掌上电脑的主流处理器还不支持直接由NAND FLASH 启动程序。因此,必须先用一片小的NOR FLASH 启动机器,在把OS等软件从NAND FLASH 载入SDRAM中运行才行,挺麻烦的。

DRAM 利用MOS管的栅电容上的电荷来存储信息,一旦掉电信息会全部的丢失,由于栅极会漏电,所以每隔一定的时间就需要一个刷新机构给这些栅电容补充电荷,并且每读出一次数据之后也需要补充电荷,这个就叫动态刷新,所以称其为动态随机存储器。由于它只使用一个MOS管来存信息,所以集成度可以很高,容量能够做的很大。SDRAM比它多了一个与CPU时钟同步。

SRAM 利用寄存器来存储信息,所以一旦掉电,资料就会全部丢失,只要供电,它的资料就会一直存在,不需要动态刷新,所以叫静态随机存储器。

以上主要用于系统内存储器,容量大,不需要断电后仍保存数据的。

Flash ROM 是利用浮置栅上的电容存储电荷来保存信息,因为浮置栅不会漏电,所以断电后信息仍然可以保存。也由于其机构简单所以集成度可以做的很高,容量可以很大。Flash rom写入前需要用电进行擦除,而且擦除不同与EEPROM可以以byte(字节)为单位进行,flash rom只能以sector(扇区)为单位进行。不过其写入时可以byte为单位。flash rom主要用于bios,U盘,Mp3等需要大容量且断电不丢数据的设备。

SDRAM:Synchronous Dynamic Random Access Memory,同步动态随机存储器,同步是指Memory工作需要同步时钟,内部的命令的发送与数据的传输都以它为基准;动态是指存储阵列需要不断的刷新来保证数据不丢失;随机是指数据不是线性依次存储,而是自由指定地址进行数据读写。

NandFlash简介

NandFlash简介 分类:Linux2013-03-06 14:34 2945人阅读评论(0) 收藏举报 Flash Memory中文名字叫闪存,是一种长寿命的非易失性(在断电情况下仍能保持所存储的数据信息)的存储器。 从名字中就可以看出,非易失性就是不容易丢失,数据存储在这类设备中,即使断电了,也不会丢失,这类设备,除了Flash,还有其他比较常见的入硬盘,ROM等,与此相对的,易失性就是断电了,数据就丢失了,比如大家常用的内存,不论是以前的SDRAM,DDR SDRAM,还是现在的DDR2,DDR3等,都是断电后,数据就没了。 FLASH的分类:功能特性分为两种:一种是NOR型闪存,以编码应用为主,其功能多与运算相关;另一种为NAND型闪存,主要功能是存储资料,如数码相机中所用的记忆卡。 NOR FLASH和NAND FLASH NOR和NAND是现在市场上两种主要的非易失闪存技术。Intel于1988年首先开发出NOR flash技术,彻底改变了原先由EPROM和EEPROM 一统天下的局面。紧接着,1989年,东芝公司发表了NAND flash结结,强调降低每比特的成本,更高的性能,并且象磁盘一样可以通过接口轻松升级。但是经过了十多年之后,仍然有相当多的硬件工程师分不清NOR和NAND闪存。 NOR的读速度比NAND稍快一些。 NAND的写入速度比NOR快很多。 NAND的4ms擦除速度远比NOR的5s快。 大多数写入操作需要先进行擦除操作。 NAND的擦除单元更小,相应的擦除电路更少 在NOR Flash中, 所有的存储区域都保证是完好的, 同时也拥有相同的耐久性。在硬模中专门制成了一个相当容量的扩展存储单元—他们被用来修补存储阵列中那些坏的部分,这也是为了保证生产出来的产品全部拥有完好的存储区域。为了增加产量和降低生产成本, NAND Flash 器件中存在一些随机bad block 。为了防止数据存储到这些坏的单元中, bad block 在IC烧录前必须先识别。在一些出版物中, 有人称bad block 为“bad block”, 也有人称bad block 为“invalid block”。其实他们拥有相同的含义, 指相同的东西。 从实际的应用上来说, NOR Flash与NAND Flash主要的区别在于接口。NOR Flash拥有完整的存取-映射访问接口, 它拥有专门的地址线和数据线, 类似与EPROM。然而在NAND Flash中没有专门的地址线。它发送指令,地址和数据都通过8/16位宽的总线(I/O接口)到内部的寄存器。 SLC/MLC基本原理

NAND Flash中文版资料

NAND Flash 存储器 和 使用ELNEC编程器烧录NAND Flash 技术应用文档 Summer 翻译整理 深圳市浦洛电子科技有限公司 August 2006

目录 一. 简介 ----------------------------------------------------------------------------------- 1 二. NAND Flash与NOR Flash的区别 -------------------------------------------- 1 三. NAND Flash存储器结构描叙 --------------------------------------------------- 4 四. 备用单元结构描叙 ---------------------------------------------------------------- 6 五. Skip Block method(跳过坏块方式) ------------------------------------------ 8 六. Reserved Block Area method(保留块区域方式)----------------------------- 9 七. Error Checking and Correction(错误检测和纠正)-------------------------- 10 八. 文件系统 ------------------------------------------------------------------------------10 九. 使用ELNEC系列编程器烧录NAND Flash -------------------------------- 10 十. Invalid Block Management drop-down menu -------------------------------- 12 十一. User Area Settings3 -------------------------------------------------------- 13 十二. Solid Area Settings --------------------------------------------------------- 15 十三. Quick Program Check-box ---------------------------------------------- 16 十四. Reserved Block Area Options --------------------------------------------17 十五. Spare Area Usage drop-down menu ------------------------------------18

海力士NANDFlash选型

Q1’2011 DATABOOK Rev 0.1

NAND Flash –SLC / MLC / TLC AND Flash N NAND Flash SLC COMPONENT Product Tech Density Block Size Stack Vcc/Org Package Availability Remark HY27US08281A 90nm 128Mb 16KB Mono 3.3v/X8TSOP/USOP Now HY27US08561A 90nm 256Mb 16KB Mono 3.3v/X8TSOP/USOP/FBGA Now HY27US08121B 70nm 512Mb 16KB Mono 3.3v/X8TSOP/USOP/FBGA Now H27U518S2C 57nm 512Mb 16KB Mono 3.3v/X8TSOP Now HY27US081G1M 70nm 1Gb 16KB Mono 3.3v/X8USOP Now HY27UF081G2A 70nm 1Gb 128KB Mono 3.3v/X8TSOP/USOP/FBGA Now HY27US081G2A 70nm 1Gb 128KB Mono 1.8v/X8FBGA Now H27U1G8F2B 48nm 1Gb 128KB Mono 3.3v/X8TSOP,FBGA Now H27U1G8F2B 48nm 1Gb 128KB Mono 1.8v/X8FBGA Now H27U1G8F2CTR 32nm 1Gb 128KB Mono 1.8v/X8TSOP Q4 '11H27U1G8F2CFR 32nm 1Gb 128KB Mono 1.8v/X8FBGA Q4 '11HY27UF082G2B 57nm 2Gb 128KB Mono 3.3v/X8TSOP,FBGA, LGA Now H27U2G8F2C 41nm 2Gb 128KB Mono 3.3v/X8TSOP Now HY27UF084G2B 57nm 4Gb 128KB Mono 3.3v/X8TSOP Now H27U4G8F2D 41nm 4Gb 128KB Mono 3.3v/X8TSOP Now HY27UG088G5(D)B 57nm 8Gb 128KB DDP 3.3v/X8TSOP Now 2CE/Dual CH.H27U8G8G5D 41nm 8Gb 128KB Mono 3.3v/X8TSOP Now H27QBG8GDAIR-BCB 32nm 32Gb 512KB DDP 1.8v/x8VFBGA Now 2CE/Dual CH.H27QCG8HEAIR-BCB 32nm 64Gb 512KB QDP 1.8v/x8VFBGA Now 4CE/Dual CH.H27QDG8JEAJR-BCB 32nm 128Gb 512KB ODP 1.8v/x8 JFBGA Feb. '11 4CE/Dual CH.NAND Flash MLC COMPONENT Product Tech Density Block Size Stack Vcc/Org Package Availability Remark H27U8G8T2B 48nm 8Gb 512KB Mono 3.3v/X8TSOP Now H27UAG8T2M 48nm 16Gb 512KB(4KB Page)Mono 3.3v/X8TSOP/VLGA Now H27UAG8T2A 41nm 16Gb 512KB(4KB Page)Mono 3.3v/X8TSOP Now H27UBG8U5A 41nm 32Gb 512KB(4KB Page)DDP 3.3v/X8TSOP Now H27UBG8T2M 41nm 32Gb 512KB(4KB Page)Mono 3.3v/X8VLGA Now H27UBG8T2A 32nm 32Gb 2MB(8KB Page)SDP 3.3v/x8TSOP / VLGA Now H27UCG8VFA 41nm 64Gb 512KB(4KB Page)QDP 3.3v/X8TSOP Now H27UCG8UDM 41nm 64Gb 512KB(4KB Page)DDP 3.3v/X8VLGA Now Dual CH.H27UCG8U5(D)A 32nm 64Gb 2MB(8KB Page)DDP 3.3v/x8TSOP / VLGA Now Dual CH. LGA H27UCG8T2M 26nm 64Gb 2MB(8KB Page)SDP 3.3v/x8VLGA Now H27UDG8VEM 41nm 128Gb 512KB(4KB Page)QDP 3.3v/X8VLGA Now 4CE,Dual CH.H27UDG8V5(E)A 32nm 128Gb 2MB(8KB Page)QDP 3.3v/x8TSOP / VLGA Now 4CE,Dual CH.H27UEG8YEA 32nm 256Gb 2MB(8KB Page)ODP 3.3v/x8VLGA Now 4CE,Dual CH.H27UAG8T2B 32nm 16Gb 2MB(8KB Page)SDP 3.3v/x8TSOP Now H27UBG8T2B 26nm 32Gb 2MB(8KB Page)SDP 3.3v/x8TSOP Now Legacy H27UCG8U2B 26nm 64Gb 2MB(8KB Page)DDP 3.3v/x8TSOP Jan. '11Legacy H27UDG8V2B 26nm 128Gb 2MB(8KB Page)QDP 3.3v/x8FBGA-100Feb. '11HS(ONFi2.2)H27UEG8Y2B 26nm 256Gb 2MB(8KB Page) ODP 3.3v/x8 FBGA-100 Mar. '11 HS(ONFi2.2)NAND Flash TLC COMPONENT Product Tech Density Block Size Stack Vcc/Org Package Availability Remark H27UAG8M2M 41nm 16Gb 768KB (4KB page)SDP 3.3V/x8VLGA Now H27UBG8M2A 32nm 32Gb 1MB (4KB page) SDP 3.3V/x8 VLGA Now

NOR-FLASH驱动文档(SST39VF1601)

NOR-FLASH驱动文档(SST39VF1601)2012-03-30 00:57:33 NOR-FLASH是最早出现的Flash Memory,目前仍是多数供应商支持的技术架 构.NOR-FLASH在擦除和编程操作较少而直接执行代码的场合,尤其是纯代码存储的应用中广泛使用,但是由于NOR-FLASH只支持块擦除,其擦除和编程速度较慢,而块尺寸又较大,导致擦除和编程操作所花费的时间很长,所以在纯数据存储和文件存储的应用中显得力不从心. NOR-FLASH的特点是: 1. 程序和数据可存放在同一芯片上,FLASH芯片拥有独立的数据总线和地址总线,能快速随 机读取,并且允许系统直接从Flash中读取代码执行,而无需先将代码下载至RAM中再执行; 2. 可以单字节或单字读取,但不能单字节擦除,必须以部分或块为单位或对整片执行擦除操 作,在执行写操作之前,必需先根据需要对部分,块或整片进行擦除,然后才能写入数据。 以SST系列NOR-FLASH芯片为例介绍FLASH的使用方法及驱动. 首先,在驱动的头文件中,要根据芯片的具体情况和项目的要求作如下定义: 1. 定义操作的单位,如 typedef unsigned char BYTE; // BYTE is 8-bit in length typedef unsigned short int WORD; // WORD is 16-bit in length typedef unsigned long int Uint32; // Uint32 is 32-bit in length 在这里地址多是32位的,芯片写操作的最小数据单位为WORD,定义为16位,芯片读操作的最小数据单位是BYTE,定义为8位. 2. 因为芯片分为16位和32位的,所以对芯片的命令操作也分为16位操作和32位操作(命令 操作在介绍具体的读写过程中将详细介绍). #ifdef GE01 /*宏NorFlash_32Bit,若定义了为32位NorFlash,否则为16位NorFlash*/ #define NorFlash_32Bit #endif 3. 根据芯片的情况,定义部分(段)和块的大小. #define SECTOR_SIZE 2048 // Must be 2048 words for 39VF160X #define BLOCK_SIZE 32768 // Must be 32K words for 39VF160X

NandFlash的基础知识

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),每页528Byte,每32 个page 形成一个Block, Sizeof(block)=16kByte = 32 page = 32 * 528 byte Numberof(block)=64Mbyte/16kbyte=4096 1page=528byte=512byte(Main Area)+16byte(Spare Area) Nand flash 以页为单位读写数据,而以块为单位擦除数据。按照这样的组织方式可以形成所谓的三类地址: --Block Address -- Page Address --Column Address 对于NAND Flash 来讲,地址和命令只能在I/O[7:0]上传递,数据宽度是8 位。 512byte需要9bit来表示,对于528byte系列的NAND,这512byte被分成1st half和2nd half,各自的访问由地址指针命令来选择,A[7:0]就是所谓的column address。32 个page 需要5bit 来表示,占用A[13:9],即该page 在块内的相对地址。Block的地址是由A14 以上的bit 来表示,例如512Mbit的NAND,共4096block,因此,需要12 个bit 来表示,即A[25:14],如果是1Gbit 的528byte/page的NAND Flash,则block address用A[26:24]表示。而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 即bit8 是由操作指令决定的,即指令决定在哪个halfpage 上进行读写。而真正的bit8 的值是don't care 的。 ◆第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 的容量是256Mbit 以下,那么,block adress 最高位只到bit24,因此寻址只需要3 步。下面,就x16 的NAND flash 器件稍微进行一下说明。由于一个page 的main area 的容量为256word,仍相当于512byte。但是,这个时候没有所谓的1st halfpage 和2nd halfpage 之分了,所以,bit8就变得没有意义了,也就是这个时候bit8 完全不用管,地址传递仍然和x8 器件相同。除了,这一点之外,x16 的NAND使用方法和x8 的使用方法完全相同。 正如硬盘的盘片被分为磁道,每个磁道又分为若干扇区,一块nand flash也分为若干block,每个block分为如干page。一般而言,block、page之间的关系随着芯片的不同而不同,典型的分配是这样的

浅谈NorFlash的原理及其应用

浅谈NorFlash的原理及其应用 NOR Flash NOR Flash是现在市场上两种主要的非易失闪存技术之一。Intel 于1988年首先开发出NOR Flash 技术,彻底改变了原先由EPROM(Erasable Programmable Read-Only-Memory电可编程序只读存储器)和EEPROM(电可擦只读存储器Electrically Erasable Programmable Read - Only Memory)一统天下的局面。紧接着,1989年,东芝公司发表了NAND Flash 结构,强调降低每比特的成本,有更高的性能,并且像磁盘一样可以通过接口轻松升级。NOR Flash 的特点是芯片内执行(XIP ,eXecute In Place),这样应用程序可以直接在Flash闪存内运行,不必再把代码读到系统RAM中。NOR 的传输效率很高,在1~4MB的小容量时具有很高的成本效益,但是很低的写入和擦除速度大大影响到它的性能。NAND的结构能提供极高的单元密度,可以达到高存储密度,并且写入和擦除的速度也很快。应用NAND的困难在于Flash的管理需要特殊的系统接口。性能比较 flash闪存是非易失存储器,可以对称为块的存储器单元块进行擦写和再编程。任何flash 器件的写入操作只能在空或已擦除的单元内进行,所以大多数情况下,在进行写入操作之前必须先执行擦除。NAND器件执行擦除操作是十分简单的,而NOR则要求在进行擦除前先要将目标块内所有的位都写为0。由于擦除NOR器件时是以64~128KB的块进行的,执行一个写入/擦除操作的时间为5s,与此相反,擦除NAND器件是以8~32KB的块进行的,执行相同的操作最多只需要4ms。执行擦除时块尺寸的不同进一步拉大了NOR和NAND之间的性能差距,统计表明,对于给定的一套写入操作(尤其是更新小文件时),更多的擦除操作必须在基于NOR的单元中进行。这样,当选择存储解决方案时,设计师必须权衡以下的各项因素。 l 、NOR的读速度比NAND稍快一些。 2、NAND的写入速度比NOR快很多。 3 、NAND的4ms擦除速度远比NOR的5s快。 4 、大多数写入操作需要先进行擦除操作。 5 、NAND的擦除单元更小,相应的擦除电路更少。此外,NAND 的实际应用方式要比NOR复杂的多。NOR可以直接使用,并可在上面直接运行代码;而NAND需要I/O接口,因此使用时需要驱动程序。不过当今流行的操作系统对NAND结构的Flash都有支持。此外,Linux内核也提供了对NAND结构的Flash的支持。详解 NOR

Nand Flash存储结构及控制方法

Nand Flash存储结构及控制方法(K9F1G08) 2011-02-26 15:05:59| 分类:默认分类 | 标签: mini2440nandflash k9f1g08 |字号订阅 一、NAND Flash介绍和NAND Flash控制器的使用 NAND Flash在嵌入式系统中的作用,相当于PC上的硬盘 常见的Flash有NOR Flash和NAND Flash,NOR Flash上进行读取的效率非常高,但是擦除和写操作的效率很低,容量一般比较小;NAND Flash进行擦除和写操作的效率更高,并且容量更大。一般NOR Flash用于存储程序,NAND Flash 用于存储数据。 1)NAND Flash的物理结构 笔者用的开发板上NAND Flash型号是K9F1G08,大小为128M,下图为它的封装和外部引脚 I/O0-I/O7 数据输入/输出 CLE 命令锁存使能 ALE 地址锁存使能 CE 芯片使能 RE 读使能 WE 写使能 WP 写保护 R/B 就绪/忙输出信号 Vcc 电源 Vss 地 N.C 不接 K9F1G08功能结构图如下

K9F1G08内部结构有下面一些功能部件 ①X-Buffers Latches & Decoders:用于行地址 ②Y-Buffers Latches & Decoders:用于列地址 ③Command Register:用于命令字 ④Control Logic & High Voltage Generator:控制逻辑及产生Flash所需高压 ⑤Nand Flash Array:存储部件 ⑥Data Register & S/A:数据寄存器,读、写页时,数据存放此寄存器 ⑦Y-Gating ⑧I/O Buffers & Latches ⑨Global Buffers ⑩Output Driver

总结NAND FLASH控制器的操作

NAND FLASH相对于NOR FLASH而言,其容量大,价格低廉,读写速度都比较快,因而得到广泛应用。NOR FLASH的特点是XIP,可直接执行应用程序, 1~4MB时应用具有很高的成本效益。但是其写入和擦除的速度很低直接影响了其性能。 NAND FLASH不能直接执行程序,用于存储数据。在嵌入式ARM应用中,存储在其中的数据通常是读取到SDROM中执行。因为NAND FLASH主要接口包括 几个I/O口,对其中的数据都是串行访问,无法实现随机访问,故而没有执行程序。 NAND FLASH接口电路是通过NAND FLAH控制器与ARM处理器相接的,许多ARM处理器都提供NAND FLASH控制器,为使用NAND FLASH带来巨大方便。 K9F2G08U0B是三星公司的一款NAND FLASH产品。 K9F2G08U0B包含8个I/O,Vss、Vcc、以及控制端口(CLE、ALE、CE、RE、WE、WP、R/B)。其存储结构分块。 共2K 块 每块大小16 页 每页大小2K + 64BYTE 即容量=块数×页数×每页大小=2K×16×(2K + 64BYTE)=256M BYTE + 8M BYTE NAND FLASH控制器提供了OM[1:0]、NCON、GPG13、GPG14、GPG15共5个信号来选择NAND FLASH启动。 OM[1:0]=0b00时,选择从NAND FLASH启动。 NCON:NAND FLASH类型选择信号。 GPG13:NAND FLASH页容量选择信号。 GPG14:NAND FLASH地址周期选择信号。 GPG15:NAND FLASH接口线宽选择。0:8bit总线宽度;1:16bit总线宽度。 访问NAND FLASH 1)发生命令:读、写、还是擦除 2)发生地址:选择哪一页进行上述操作 3)发生数据:需要检测NAND FLASH内部忙状态 NAND FLASH支持的命令: #define CMD_READ1 0x00 //页读命令周期1 #define CMD_READ2 0x30 //页读命令周期2 #define CMD_READID 0x90 //读ID 命令 #define CMD_WRITE1 0x80 //页写命令周期1 #define CMD_WRITE2 0x10 //页写命令周期2 #define CMD_ERASE1 0x60 //块擦除命令周期1 #define CMD_ERASE2 0xd0 //块擦除命令周期2 #define CMD_STATUS 0x70 //读状态命令 #define CMD_RESET 0xff //复位 #define CMD_RANDOMREAD1 0x05 //随意读命令周期1

NANDFLASH 常见问题汇总

NAND flash常见问题汇总 掉程序(这里专指使用NAND flash的主板掉程序),这是一个让工程师浑身发毛的问题,特别是用着用着程序就没有了,往往这个时候很多工程师都无法下手,问题出现的时候你可能根本不在旁边,无法看到问题现象,而且通过测量信号也很难发现问题的原因,这个时候很多工程师可能会采用更换主板器件的方式,用排除法来定位问题,基本上换一个NAND flash就可以解决问题了。这个时候很多工程师可能就会表示NAND flash有问题,需要换厂商,换品牌。但其实还可以更加深入的去了解问题的原因,这里我总结一下我遇到过得NAND flash掉程序的情况及原因。 1.电源电压不稳导致的NAND flash程序错误 很多时候,产品在客户手中出现了问题,工程师把产品拿回来,重新烧录程序产品可以上电启动,反复测试并不会出现掉程序的情况。如果这种产品是带有电池的产品,就可以考虑一下是否在客户实际使用中是用电池的情况,当电池的电量比较低,或者在极端情况下,程序对于电池电量的检测阈值较低,这个时候主控就有可能刚刚可以启动,但是很快电量不够,NAND flash内的程序乱掉,从而无法正常启动。 解决方法可以在程序中加入或者提高电池电量检测的阈值,保证所有芯片在这个阈值上均可以正常工作。 2.DRAM工作状态不正常导致的NAND flash程序错误 主控, DRAM和NAND flash基本构成了一个产品的最小系统。当系统中的任何一环出现问题,整个系统就可能出现问题。但是当DRAM出现问题时,有可能反映出来的是NAND flash 出错,掉程序或者查明NAND flash坏块过多。对于这种情况,处理起来就会复杂一些。如果直接重新烧录程序,系统又能正常工作,则说明之前存储在NAND flash中的程序确实乱了,但是NAND flash的功能正常,特别是SLC规格的1bit ECC 的NAND flash,出错概率非常小。因为对于NAND flash来说,只有当写数据或者擦除数据时,数据可能产生坏块,当程序只是读取的状态时,由于不涉及电荷的改变,所以NAND flash一般不会出现问题。但从程序的调试端口读到NAND flash坏块很多时,看是否有更深入的调试工具,例如JTAG等调试工具,可以深入调试NAND flash的情况。有些时候,因为一些程序误操作,导致将原本good block的标志位标记成了bad block。用过JTAG调试工具可以修改标志位,并且重新打标,重新烧录一遍程序,有可能主板又能重新启动了。 3.坏块管理未做好 因为NAND flash都面临着可能出现坏块的问题,所以必须应该对于坏块进行管理,在规格书中可以看到,坏块产生的三种情况,在编程的时候,在擦出的时候,在读取的时候。对于这几种情况下,程序应该怎么操作,规格书中也有流程图来说明,在读取和擦除中,如果出现失败情况,就需要重新坏一个块进行目标块的转移,并且对于当前块进行标识,在坏块表中进行更新。通过对于坏块表的维护,达到程序避免写入坏块中的情况。在读取程序时,也需要对于ECC进行校验,保证读取的程度是真实可靠的。但是很多工程师可能由于对于坏块管理做的不够仔细,导致产品在实际使用中,会出现掉程序的问题。工程师也应该从程序方面着手,分析一下程序对于坏块部分管理是否完善。 从上面三种类型只是部分说明了关于掉程序这个问题的一些原因。特别是对于1bit ECC 的SLC NAND flash大部分适用,工程师们可以进行参考。

STM32使用FSMC控制NAND flash 例程概要

本文原创于观海听涛,原作者版权所有,转载请注明出处。 近几天开发项目需要用到STM32驱动NAND FLASH,但由于开发板例程以及固件库是用于小页(512B,我要用到的FLASH为1G bit的大页(2K,多走了两天弯路。以下笔记将说明如何将默认固件库修改为大页模式以驱动大容量NAND,并作驱动。 本文硬件:控制器:STM32F103ZET6,存储器:HY27UF081G2A 首先说一下NOR与NAND存储器的区别,此类区别网上有很多,在此仅大致说明: 1、Nor读取速度比NAND稍快 2、Nand写入速度比Nor快很多 3、NAND擦除速度(4ms远快于Nor(5s 4、Nor 带有SRAM接口,有足够的地址引脚来寻址,可以很轻松的挂接到CPU 地址和数据总线上,对CPU要求低 5、NAND用八个(或十六个引脚串行读取数据,数据总线地址总线复用,通常需要CPU支持驱动,且较为复杂 6、Nor主要占据1-16M容量市场,并且可以片内执行,适合代码存储 7、NAND占据8-128M及以上市场,通常用来作数据存储 8、NAND便宜一些 9、NAND寿命比Nor长 10、NAND会产生坏块,需要做坏块处理和ECC 更详细区别请继续百度,以上内容部分摘自神舟三号开发板手册

下面是NAND的存储结构: 由此图可看出NAND存储结构为立体式 正如硬盘的盘片被分为磁道,每个磁道又分为若干扇区,一块nand flash也分为若干block,每个block分为如干page。一般而言,block、page之间的关系随着芯片的不同而不同。 需要注意的是,对于flash的读写都是以一个page开始的,但是在读写之前必须进行flash 的擦写,而擦写则是以一个block为单位的。 我们这次使用的HY27UF081G2A其PDF介绍: Memory Cell Array = (2K+64 Bytes x 64 Pages x 1,024 Blocks 由此可见,该NAND每页2K,共64页,1024块。其中:每页中的2K为主容量Data Field, 64bit为额外容量Spare Field。Spare Field用于存贮检验码和其他信息用的,并不能存放实际的数据。由此可算出系统总容量为2K*64*1024=134217728个byte,即1Gbit。NAND闪存颗粒硬件接口: 由此图可见,此颗粒为八位总线,地址数据复用,芯片为SOP48封装。 软件驱动:(此部分写的是伪码,仅用于解释含义,可用代码参见附件 主程序: 1. #define BUFFER_SIZE 0x2000 //此部分定义缓冲区大小,即一次写入的数据 2. #define NAND_HY_MakerID 0xAD //NAND厂商号 3. #define NAND_HY_DeviceID 0xF1 //NAND器件号 4. /*配置与SRAM连接的FSMC BANK2 NAND*/

nandflash时序

三星系列的NAND FLASH芯片容量从8MB到256MB(最近听说有1G容量的了),对于需要大容量数据存储的嵌入式系统是一个很好的选择,尤其是其接近1MB/元的高性价比,更是普通nor flash 无法比拟的。本文以K9F2808U0C为例,采用AVR芯片连接,进行了初步的读写试验,完成了芯片的ID读出功能。 电路连接如下图: 左边是所使用的AVR芯片ATmega16L的局部电路,右边是K9F2808芯片的连接图,数据/地址总线使用ATmega16的PORTB端口连接,其它全部所需信号线使用IO连接,组成了IO模拟方式。 K9F2808芯片的全部命令字如下: 其中,Read1读取的是普通数据存储区域的数据,Read2读取的是每页存储器附加的16Bytes区域的数据;Page Program可以编程一页最大528Bytes的数据,Block Erase擦除指定页面数据,Read Status可以读取芯片状态。 芯片的整个读写时序可以分解为4个基本步骤,即1、命令写入,2、数据写入,3、数据读出,4、地址写入。 1、命令写入时序如下:

对应函数为: void WriteCmd(unsigned char cmd) { nandPortD = 0xFF; ClsLine(nandSPortO,nandALE); ClsLine(nandSPortO,nandnCE); SetLine(nandSPortO,nandCLE); ClsLine(nandSPortO,nandnWE); nandPortO = cmd; SetLine(nandSPortO,nandnWE); ClsLine(nandSPortO,nandCLE); SetLine(nandSPortO,nandALE); } 2、数据写入时序如下: 对应函数为:

NAND FLASH在储存测试中的应用

NAND FLASH在储存测试系统中的应用(3) 2009-11-09 22:35:43 来源:王文杰马游春李锦明 关键字:NAND FLASH 储存测试K9K8G08UOM 2 NAND FLASkI Memory的硬件部分 本设计当中,FLASH的数据输入输出口、控制端口通过调理电路与FPGA的端口相连,图4所示是其硬件连接电路。 从图4中可知,FLASH的数据输入输出端口I/00~7、控制端口/CE、是通过芯片SN54LV245与FPGA相连;FLASH的控制端口cLE、ALE、/WE、/RE通过芯片SN54LV245和芯片74HCl4与ITGA相连。其中F-CLE、F-ALE、F—WE、F-RE、F—CE、F- R/Bur是FPGA的I/O口,是FPGA逻辑的输入输出口。CLE、ALE信号是FLASH存储器命令、地址锁存使能信号,/WE是保证命令、地址、数据能否及时正确的写入FLASH 的信号,/RE信号控制着数据的读取,这些信号的精确度关系着FLASH存储、读数功能的实现。所以,这些信号的好坏直接关系着FLASH的正常工作。经实践的电路调试,这些信号在传输过程中受到了其它因素的干扰,信号明显失真,在电路中加入74HCl4(非门)以后,信号会变得光滑,准确。 芯片SN54LV245是八进制三态总线收发器,DIR=1时,总线传输方向从A→B;DIR=0时,总线传输方向从B→A。/OE是片选信号。/0E,DIR信号是由FPGA内部编程逻辑控制的。 FL,ASH接口中,为了保证/wE、/RE、/CE、R/B控制信号初始状态无效,由硬件电路实现端口值拉高。本设计中不使用写保护功能,所以/WP端口也接上了上拉电阻。 3 结束语 基于闪存技术的固态存储器存储密度大,功耗小,可靠性高,体积小重量轻且成本也在不断降f氐,在航空应用中有良好的应用前景。在设计储存测试系统时选用大容量的NAIXD FLASH存储器大大提高了储存、读取速度,并且设计电路结构简单,易于修改。 (本文转自电子工程世界:http://www.eewo

Nand Flash的读写操作

NandFlash的读写操作 正如硬盘的盘片被分为磁道,每个磁道又分为若干扇区,一块nand flash也分为若干block,每个block分为如干page。一般而言,block、page之间的关系随着芯片的不同而不同,典型的分配是这样的: 1block = 32page 1 page = 512bytes(datafield) + 16bytes(oob) 需要注意的是,对于flash的读写都是以一个page开始的,但是在读写之前必须进行flash 的擦写,而擦写则是以一个block为单位的。同时必须提醒的是,512bytes理论上被分为1st half 和2sd half,每个half各占256个字节。 我们讨论的K9F1208U0B总共有4096 个Blocks,故我们可以知道这块flash的容量为4096 *(32 *528)= 69206016 Bytes = 66 MB 但事实上每个Page上的最后16Bytes是用于存贮检验码和其他信息用的,并不能存放实际的数据,所以实际上我们可以操作的芯片容量为4096 *(32 *512) = 67108864 Bytes = 64 MB 由上图所示,1个Page总共由528 Bytes组成,这528个字节按顺序由上而下以列为单位进行排列(1列代表一个Byte。第0行为第0 Byte ,第1行为第1 Byte,以此类推,每个行又由8个位组成,每个位表示1个Byte里面的1bit)。这528Bytes按功能分为两大部分,分别是Data Field和Spare Field,其中Spare Field占528Bytes里的16Bytes,这16Bytes是用于在读写操作的时候存放校验码用的,一般不用做普通数据的存储区,除去这16Bytes,剩下的512Bytes便是我们用于存放数据用的Data Field,所以一个Page上虽然有528个Bytes,

nandflash用法

6 NAND FLASH CONTORLLER OVERVIEW In recent times, NOR flash memory gets high in price while an SDRAM and a NAND flash memory is comparatively economical , motivating some users to execute the boot code on a NAND flash and execute the main code on an SDRAM. S3C2440A boot code can be executed on an external NAND flash memory. In order to support NAND flash boot loader, the S3C2440A is equipped with an internal SRAM buffer called ‘Steppingstone’. When booting, the first 4K Bytes of the NAND flash memory will be loaded into Steppingstone and the boot code loaded into Steppingstone will be executed. Generally, the boot code will copy NAND flash content to SDRAM. Using hardware ECC, the NAND flash data validity will be checked. Upon the completion of the copy, the main program will be executed on the SDRAM. comparatively 比较地、相当地 motivating v. 激励;刺激;调动…的积极性(motivate的ing形式) execute vt. 实行;执行;处死 internal n. 内脏;本质adj. 内部的;里面的;体内的;(机构)内部的 Steppingstone n. 踏脚石;进身之阶;达到目的的手段 validity n. [计] 有效性;正确;正确性 content n. 内容,目录;满足;容量adj. 满意的;vt. 使满足 FEATURES 1. Auto boot: The boot code is transferred into 4-kbytes Steppingstone during reset. After the transfer, the boot code will be executed on the Steppingstone. 2. NAND Flash memory I/F: Support 256Words, 512Bytes, 1KWords and 2KBytes Page. 3. Software mode: User can directly access NAND flash memory, for example this feature can be used in read/erase/program NAND flash memory. 4. Interface: 8 / 16-bit NAND flash memory interface bus. 5. Hardware ECC generation, detection and indication (Software correction). 6. SFR I/F: Support Little Endian Mode, Byte/half word/word access to Data and ECC Data register, and Word access to other registers 7. SteppingStone I/F: Support Little/Big Endian, Byte/half word/word access. 8. The Steppingstone 4-KB internal SRAM buffer can be used for another purpose after NAND flash booting. 特性 1。自动引导:在复位时,引导代码写入4-k字节的中转区,在转移后启动 代码将在中转区上执行。 2。NAND闪存接口:支持256字,512字节,1k字和2KB字节页。 3。软件模式:用户可以直接访问NAND闪存,例如这个特性可以用于 读/写/擦除NAND闪存。

相关主题
相关文档
最新文档