精华内容
下载资源
问答
  • NAND flash 并行存储器介绍、架构分析、和基于FPGA架构的控制设计方案
  • Nand Flash并行与串行

    千次阅读 2019-04-14 16:16:11
    之前我们有讲到NAND Flash与NOR Flash的封装、读取速率、写速率和电路设计等方面的差异,现在我们将会讲到并行与串行Flash,主要是串行吧,并行需要讲的很少。 因为串行与并行主要区别在于IO口的数量上,因为有些...

    串行Flash与并行Flash

    之前我们有讲到NAND Flash与NOR Flash的封装、读取速率、写速率和电路设计等方面的差异,现在我们将会讲到并行与串行Flash,主要是串行吧,并行需要讲的很少。

    因为串行与并行主要区别在于IO口的数量上,因为有些场景上我不会用到那么大的容量,E而且也不会有那么多的IO引脚,所以串行NOR与NAND Flash应运而生。

    并行与串行NAND Flash

    SERIAL NOR FLASH

    串行NOR Flash支持标准串行外设接口(SPI),双/四路I / O SPI:串行时钟,片选,串行数据I / O0(DI),I / O1(DO),I / O2和I / O3。

    也就是说对于串行NOR Flash而言,支持下面的几种模式。
    
    Standard SPI

    Standard SPI: CLK, /CS, DI, DO

    Dual SPI

    Dual SPI: CLK, /CS, IO0, IO1

    Quad SPI

    Quad SPI: CLK, /CS, IO0, IO1, IO2, IO3

    传输时钟速率

    • 串行NOR Flash 在Standard SPI模式下支持高达133MHz 时钟频率(标准模式);
    • 串行NOR Flash 在Dual SPI模式下支持高达133MHz *2 时钟频率(Dual);
    • 串行NOR Flash 在Quad SPI模式下支持高达133MHz *4 时钟频率(Quad);
    这些传输速率可以胜过标准的异步8和16位并行闪存。
    

    串行NOR Flash常见封装

    如下为SOIC/SOP8封装
    SOP8封装 串行NOR Flash
    引脚介绍
    NOR Flash引脚介绍

    1. IO0 and IO1 are used for Standard and Dual SPI instructions;
    2. IO0 – IO3 are used for Quad SPI instructions, /HOLD (or /RESET) function is only available for Standard/Dual SPI.

    以上引脚如何配置
    1)标准 SPI模式
    连接CS、CLK、DO和DI就可以,WP引脚和HOLD引脚视情况而定,看是要硬件上拉到Vcc还是电阻下拉到地。

    2)Dual SPI模式
    连接CS、CLK、DO(IO1)、DI(IO0),此时注意不是按照DO和DI工作,而是括号内的IO1和IO2。

    3)Quad SPI模式
    CS、CLK、DO(IO1)、DI(IO0)、WP(IO2)、HOLD/Reset/IO3,此时WP与Hold功能全都不能使用。

    标准SPI,双SPI和四线SPI操作
    标准SPI指令使用单向DI(输入)引脚在串行时钟(CLK)输入引脚的上升沿串行写入指令,地址或数据。
    标准SPI还使用单向DO(输出)在CLK下降沿读取器件的数据或状态。
    双SPI和四SPI指令使用双向IO引脚串行写入指令,在CLK的上升沿向器件发送地址或数据,并在CLK的下降沿从器件读取数据或状态。

    电路设计

    片选(/ CS)

    SPI片选(/ CS)引脚用于使能和禁止器件操作。 当/ CS为高电平时,器件被取消选择,串行数据输出(DO或IO0,IO1,IO2,IO3)引脚处于高阻态。取消选择后,器件功耗将处于待机电平,除非内部擦除,编程或写状态寄存器周期正在进行中。当/ CS变为低电平时,将选择器件,功耗将增加到有效电平,并且可以写入指令并从器件读取数据。
    上电后,/ CS必须在接受新指令之前从高电平转换为低电平。/ CS输入必须在上电和断电时跟踪VCC电源电平。如果需要,可以使用/ CS引脚上的上拉电阻来实现此目的。

    写保护(/ WP)

    写保护(/ WP)引脚可用于防止写入状态寄存器。扇区的部分或整个存储器阵列可以受硬件保护,需要与寄存器相互配置。 WP引脚为低电平有效。

    HOLD(/ HOLD)

    / HOLD引脚允许器件在主动选择时暂停。当/ HOLD变为低电平时,/ CS为低电平时,DO引脚将处于高阻态,DI和CLK引脚上的信号将被忽略)。当/ HOLD变为高电平时,器件操作可以恢复。
    当多个设备共享相同的SPI信号时,/ HOLD功能非常有用。 / HOLD引脚为低电平有效。

    Serial Clock (CLK)

    SPI串行时钟输入(CLK)引脚提供串行输入和输出操作的时序。

    复位(/ RESET)

    当它被驱动为低电平至少1μS的时间时,该器件将终止任何外部或内部操作并返回其上电状态。

    电源

    串行Flash的电压也有多种规格,具体的看数据书册就行。

    电路设计

    SPI Nor Flash
    如上图为串行 Nor Flash电路,
    WP引脚连接电阻至Vcc;为了不进行写保护,所以做上拉,但是不悬空是为了在上电时有一个确定的电平状态。
    Hold引脚连接上拉电阻至Vcc;为了不实现数据保持,所以做上拉,但是不悬空是为了在上电时有一个确定的电平状态。
    CS引脚也是上拉至Vcc。上电不选中该器件,只有后续CPU低电平才会选中该器件。

    以下请参考:
    [1].华邦
    [2].复旦微电子

    SERIAL NAND FLASH

    在这里插入图片描述
    注:因为串行NOR Flash与串行NAND Flash所要实现的功能一致,为了减少/简化并行Nand Flash的接口,所以两者的封装等都是一样的,差异只是在于存储器单位存储的结构不同,其余都是一样的,所以大家知道了串行NOR Flash的介绍后,同样就理解串行NAND Flash了。

    20194.14
    于深圳

    展开全文
  • 基于FPGA的多片NAND+FLASH并行存储控制器的设计与实现,帮助初学者学习NAND Flash的原理及开发,进一步进行并行存储控制器的设计
  •  NAND Flash是嵌入式世界里常见的存储器,对于嵌入式开发而言,NAND主要分为两大类:Serial NAND、Raw NAND,这两类NAND的差异是很大的(软件驱动开发角度而言),即使你掌握其中一种,也不代表你能了解另一种。...

      大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家介绍的是ONFI标准及SLC Raw NAND

      NAND Flash是嵌入式世界里常见的存储器,对于嵌入式开发而言,NAND主要分为两大类:Serial NAND、Raw NAND,这两类NAND的差异是很大的(软件驱动开发角度而言),即使你掌握其中一种,也不代表你能了解另一种。
      Raw NAND是相对于Serial NAND而言的,Serial NAND即串行接口的NAND Flash,而Raw NAND是并行接口的NAND FLASH,早期并行接口通信数据率是明显高于串行通信数据率的,但随着串行通信速度越来越快,并行接口速度优势显得不那么重要了,反而因信号线太多导致设计成本较高(PCB走线复杂)显得有点不合潮流。但其实这么说对Raw NAND是不公平的,现在的Serial NOR/NAND信号线其实也不少,比如高速的串行HyperFlash信号线数量已经直逼x8 bit的Raw NAND FLASH,所以Raw NAND市场还是坚挺的,你会发现各大存储厂商都还在不断推出Raw NAND FLASH产品。

    一、ONFI标准由来

      说到Raw NAND发展史,其实早期的Raw NAND没有统一标准,虽然早在1989年Toshiba便发表了NAND Flash结构,但具体到Raw NAND芯片,各厂商都是自由设计,因此尺寸不统一、存储结构差异大、接口命令不通用等问题导致客户使用起来很难受。为了改变这一现状,2006年几个主流的Raw NAND厂商(Hynix、Intel、Micron、Phison、Sony、ST)联合起来商量制订一个Raw NAND标准,这个标准叫Open NAND Flash Interface,简称ONFI,2006年12月ONFI 1.0标准正式推出,此标准一经推出大受欢迎(好像不欢迎也不行,那些大厂说了算啊),此后几乎所有的Raw NAND厂商都按照ONFI标准设计生产Raw NAND,从此Raw NAND世界清静了,不管哪家生产的Raw NAND对嵌入式设计者来说几乎都是一样的,至少在驱动代码层面是一样的,那么各厂商竞争优势在哪呢?主要在三个方面:数据存取速率、ECC能力、ONFI之外的个性化功能。
      你可以从 ONFI官网 下载ONFI标准手册,从2006年推出1.0标准至今,ONFI标准已经发展到4.1,这也说明了Raw NAND技术在不断更新升级。

    onfi_specs.PNG

    二、SLC Raw NAND原理

    2.1 Raw NAND分类

      从软件驱动开发角度而言,Raw NAND可以从以下几个方面进一步细分:

    单元层数(bit/cell):SLC(1bit/cell) / MLC(2bit/cell) / TLC(3bit/cell) / QLC(4bit/cell)
    数据线宽度:x8 / x16
    信号线模式:Asynchronous / Synchronous
    数据采集模式:SDR / DDR
    接口命令标准:非标 / ONFI

      本文的主要研究对象是兼容ONFI 1.0标准的Asynchronous SDR SLC NAND Flash。

    2.2 Raw NAND内存模型

      ONFI规定了Raw NAND内存单元从大到小最多分为如下5层:Device、LUN(Die)、Plane、Block、Page(如下图所示),其中Page和Block是必有的,因为Page是读写的最小单元,Block是擦除的最小单元。而LUN和Plane则不是必有的(如没有,可认为LUN=1, Plane=1),一般在大容量Raw NAND(至少8Gb以上)上才会出现。

    onfi_mem_model.PNG

      根据以上5层分级的内存模型,Raw NAND地址也很自然地由如下图中多个部分组成:

    Raw NAND Address = LUN Addr + Block Addr + Page Addr + Byte Addr (Column Addr)

      可能有朋友对Plane Address bit的位置有疑问,其实结合上面内存模型图就不难理解了,每个Plane里包含的Block并不是连续的,而是与其他Plane含有的Block是交错的。

    onfi_mem_addressing.PNG

    2.3 Raw NAND信号与封装

      ONFI规定了Raw NAND信号线与封装,如下是典型的x8 Raw NAND内部结构图,除了内存单元外,还有两大组成,分别是IO控制单元和逻辑控制单元,信号线主要挂在IO控制与逻辑单元,x8 Raw NAND主要有15根信号线(其中必须的是13根,WP#和R/B#可以不用),关于各信号线具体作用,请查阅相关文档。

    onfi_block_diagram.PNG

      ONFI规定的封装标准有很多,比如TSOP48、LGA52、BGA63/100/132/152/272/316,其中对于嵌入式开发而言,最常用的是如下图扁平封装的TSOP-48,这种封装常用于容量较小的Raw NAND(1/2/4/8/16/32Gb),1-32Gb容量对于嵌入式设计而言差不多够用,且TSOP-48封装易于PCB设计,因此得以流行。

    onfi_tsop48.PNG

    2.4 Raw NAND接口命令

      ONFI 1.0规定了Raw NAND接口命令,如下表所示,其中一部分是必须要支持的(M),还有一部分是可选支持的(O)。必须支持的命令里最常用的是Read(Read Page)、Page Program、Block Erase这三条,涵盖读写擦最基本的三种操作。

    onfi_cmd_set.PNG

      除了读写擦这三个最基本命令外,还有一个必有命令也非常常用,这个命令是Read Status,用于获取命令执行状态与结果,ONFI规定Raw NAND内部必须包含一个8bit的状态寄存器,这个状态寄存器用来存储NAND命令执行状态与结果,其中有两个bit(RDY-SR[6]和FAIL-SR[0])需要特别关注,RDY用于指示命令执行状态(这个bit与外部R/B#信号线功能是一致的),FAIL用于返回命令执行结果(主要是有无ECC错误)。

    onfi_status_register.PNG

      此外,还有一个必有命令不得不提,这个命令是Read Parameter Page,用于获取芯片内部存储的出厂信息(包括内存结构、特性、时序、其他行为参数等),这个Parameter Page大小为256Bytes,其结构已由ONFI规定如下表,痞子衡已经圈出了一些重要信息,在设计NAND软件驱动时,可以通过获取这个Parameter Page来做到代码通用。

    onfi_parameter_page.PNG
    onfi_parameter_page2.PNG

    2.5 Raw NAND数据速率

      前面讲了,数据存取速率这个技术指标是各厂商竞争力的体现,对于这个指标,其实ONFI标准定义了一部分,我们知道Raw NAND数据存取操作是以Page为单位的,Page操作时间决定了数据存取速率,Page操作时间由3部分组成:

    Page操作时间(tReadPage) = Page命令操作时间(tCmd) + Page命令执行等待时间(tBusy) + Page数据操作时间(tData

      以上三部分时间里,ONFI定义了Page命令/数据操作时间标准,但Page命令执行等待时间无法强制,因此各厂商NAND速度差异主要是这个Page命令执行等待时间不同造成的
      以异步模式Read Page命令(0x00 - 0x30)为例讲解,下图是Read Page完整时序简图,0x00是主机发送的第一个字节,用于通知NAND Device主机想要读取Page,随后的5个字节发送的是地址数据,用于通知NAND Device主机想要从什么地址获取数据,0x30是主机发送的最后一个字节,用于通知NAND Device读取Page命令发送已经完成,至此命令操作周期已经结束,NAND Device此时开始进行内部处理流程:拉低外部引脚R/B#或将内部寄存器SR[6]置0表明我正在忙,然后从内存块里将主机指定地址所在的Page数据全部拷贝到临时缓存区(Page Buffer),对这一整个Page数据进行ECC校验,如Page数据校验通过,拉高外部引脚R/B#或将内部寄存器SR[6]置1表明我已经准备好了,至此命令执行等待周期已经结束,主机开始按Byte依次将Page数据读出来,所有Page数据全部都被读出来后,整个Read Page时序就结束了。

    onfi_read_timing.PNG

      下图是命令/地址操作具体时序,根据时序图我们可以粗略计算出tCmd

    tCmd = (cmdBytes + addrBytes) x (tWP + tWH) = 7 * (tWP + tWH)

    onfi_command_latch_cycle.PNG

    onfi_address_latch_cycle.PNG

      下图是数据读取操作具体时序,分为两种:Non-EDO模式(RE#上沿采样数据)和EDO模式(RE#下沿采样数据),从图中我们知道tRC是RE#信号的一个周期,通俗地说,Non-EDO模式一般用于低速模式(即tRC > 30ns时),而EDO模式一般用于高速模式(即tRC < 30ns时)。根据时序图我们可以粗略计算出tData

    tData = dataBytesInOnePage * tRC

    onfi_data_output_cycle.PNG
    onfi_data_output_cycle_edo.PNG

      让我们把tCmd和tData代入tReadPage计算公式可得如下等式,我们知道其中tBusy是无法得知的,那么其他三个时间tWP、tWH、tRC到底是多少呢?

    tReadPage = 7 x (tWP + tWH) + tBusy + dataBytesInOnePage * tRC

      继续查看ONFI手册可以找到答案,ONFI规定了六种timing mode(0-5),timing mode table里指明了所有时序相关的参数数值范围,当然也包括tWP、tWH、tRC,以最快的timing mode 5来计算:

    tReadPage = 7 x 20ns + tBusy + dataBytesInOnePage * 20ns = (dataBytesInOnePage + 7) x 20ns + tBusy

    onfi_timing_mode_table.PNG

      我们似乎离答案更近一步了,但tBusy是多少这个问题始终困扰着我们,其实痞子衡带你绕了路,想要知道Read Page的时间没有这么复杂,我们可以从任何一款Raw NAND数据手册的扉页Features里直接找到答案,如下是Micron生产的型号为MT29F4GxxABBxA的部分feature:

    • Open NAND Flash Interface (ONFI) 1.0-compliant
    • Single-level cell (SLC) technology
    • Organization
      – Page size x8: 2112 bytes (2048 + 64 bytes)
      – Page size x16: 1056 words (1024 + 32 words)
      – Block size: 64 pages (128K + 4K bytes)
      – Plane size: 2 planes x 2048 blocks per plane
      – Device size: 4Gb: 4096 blocks; 8Gb: 8192 blocks; 16Gb: 16,384 blocks
    • Asynchronous I/O performance
      – tRC/tWC: 20ns (3.3V), 25ns (1.8V)
    • Array performance
      – Read page: 25μs
      – Program page: 200μs (TYP: 1.8V, 3.3V)
      – Erase block: 700μs (TYP)
    • Operating voltage range
      – VCC: 2.7–3.6V
      – VCC: 1.7–1.95V

      从feature里我们可以知道tReadPage最小为25us(此数值应是在x16 bits,timing mode 5下得出的最快速度),那么可以反算出tBusy = 25us - 20ns * (1024 + 7) = 4.38us,知道了tBusy让我们计算一下x8 bits下的tReadPage = 20ns * (2048 + 7) + 4.38us = 45.48us,再计算x8 bits下的读取数据率 2048Bytes / 45.48us = 360.246Mbps,这个数据率对于普通嵌入式应用来说其实是够快的。

    2.6 Raw NAND坏块与ECC

      Raw NAND开发绕不开坏块(Bad Block)问题,这是NAND Flash区别于NOR Flash的一个重要特点。NAND技术上允许坏块的存在,这降低了NAND生产工艺要求,因此NAND单位容量价格比NOR低。
      既然物理上的坏块无法避免,那有什么方法可以改善/解决坏块问题呢?方法当然是有的,这个方法就是ECC(Error Correcting Code),ECC的具体实现原理详见痞子衡的另一篇文章 汉明码校验(Hamming Code SEC-DED),在这里你只需要知道ECC是一种错误检测与纠正算法,它通过对一定量的数据块(一般是256/512bytes)进行计算得到ECC码(一般8bytes),在Page Program时将原始Page数据与ECC码一同存入NAND Flash,在Read Page时同时获取Page数据与ECC码再进行一次计算,如果该Page数据没有ECC错误或者bit错误能够被ECC码纠正,那么Page读写操作就能够正常进行,如果bit错误个数太多不能够被纠正,那么该Page所在的块就应该被认定为一个坏块。
      ECC能力主要根据纠正单数据块中错误bit个数来区分的,最基本的ECC只能够纠正1bit错误,强一点的ECC可以纠正4或者8个甚至更多的错误bit。
      让我们用一款实际芯片来具体分析坏块与ECC,依旧以前面分析过的Micron生产的型号为MT29F4G08ABBxA为例,下图是其内存结构图,从图中我们可以知道这款NAND的Page大小为2KB,但如果你仔细看,你会发现每个Page还额外含有64Bytes数据,这个64Bytes区域即所谓的Spare Area,这个区域到底是干嘛用的呢?

    onfi_mt29f4g08_arch.PNG

      下图是Spare Area的mapping图,由于每个Page是2KB,而ECC计算块是512Bytes,因此Page区域被均分为4块,分别是Main 0、1、2、3,每块大小为512Bytes,而相应的Spare Area也被均分为4块,分别是Spare 0、1、2、3,每块大小为16bytes,与Main区域一一对应。每个Spare x由2bytes坏块信息、8bytes ECC码、6bytes用户数据组成。要特别说一下的是ECC区域,当芯片硬件ECC功能开启时,8bytes ECC码区域会被自动用来存储ECC信息,而如果芯片没有硬件ECC功能,这个区域可以用来手动地存放软件ECC值。

    onfi_mt29f4g08_spare_area.PNG

      下图是芯片Error管理相关信息,也包含了ECC,从图中我们可以知道这款芯片ECC是4bits,坏块是用0x00来标识的,并且承诺该芯片出厂时每个Die里所含有的4096个block最多只会有80个坏块。这些信息除了在芯片手册里可以找到之外,前面介绍过的ONFI Parameter Page也同样记录了。

    onfi_mt29f4g08_ecc_detail.PNG
    onfi_mt29f4g08_ecc_detail2.PNG

    2.7 Raw NAND个性化功能

      Raw NAND还有一些个性化的功能,这个是因厂商而异的,ONFI规定了两个可选的命令Get/Set Feature,个性化功能可以通过Get/Set Feature命令来扩展。下表是ONFI 1.0规定的Feature address范围,其中0x01是Timing Mode,0x80-0xFF用于各厂商实现自己的特色功能。

    onfi_feature_address.PNG

      关于Timing Mode地址的具体定义如下,ONFI规定芯片上电初始为Timing mode 0,即最低速的模式,如果我们想要更快的NAND访问速度,必须使用Set feature命令将Timing mode设置到想要的数值

    onfi_feature_address_01h_timing_mode.PNG

      继续以前面分析过的Micron生产的型号为MT29F4G08ABBxA为例,下图是该芯片的Feature定义,除了ONFI规定之外,还定义了自己的特色部分(0x80, 0x81, 0x90)。

    onfi_mt29f4g08_feature_address.PNG

      比如0x90定义的Array operation mode,我们可以通过其实现OTP控制以及硬件ECC的开关。

    onfi_mt29f4g08_feature_address_90h_array_mode.PNG

    三、SLC Raw NAND产品

      Raw NAND厂商产品有两种,一种是裸Raw NAND芯片,另一种是含Raw NAND的存储方案(比如SSD硬盘),对于嵌入式开发而言,我们更关心的是裸Raw NAND芯片产品,下面痞子衡收集了可以售卖SLC Raw NAND芯片的厂商及产品系列:

    厂商 芯片系列 官方网址
    Micron MT29F https://www.micron.com
    slc-nand-part-catalog
    Numonyx NAND256, NAND512 https://www.micron.com
    slc-nand-part-catalog
    Macronix MX30LF, MX60LF http://www.macronix.com
    slc-nand-part-catalog
    Winbond W29N http://www.winbond.com.tw
    slc-nand-part-catalog
    Spansion S34ML, S34MS, S34SL http://www.cypress.com/
    slc-nand-part-catalog
    ISSI IS34ML, IS34MW www.issi.com
    slc-nand-part-catalog
    Toshiba TC58B, TC58N http://toshiba.semicon-storage.com
    SK Hynix H27U http://www.hynix.com
    slc-nand-part-catalog
    Samsung K9F, K9K http://www.samsung.com/semiconductor/

      至此,ONFI标准及SLC Raw NAND痞子衡便介绍完毕了,掌声在哪里~~~

    欢迎订阅

    文章会同时发布到我的 博客园主页CSDN主页微信公众号 平台上。

    微信搜索"痞子衡嵌入式"或者扫描下面二维码,就可以在手机上第一时间看了哦。

    pzhMcu_qrcode_258x258.jpg

    展开全文
  • NOR FLASHNAND FLASH

    2014-07-12 20:28:00
    整理自NOR FLASH ...从上图可以看出,该NorFlash采用并行地址和数据总线, 其中,21bit地址总线,16bit数据总线。 该NorFlash最大可寻址2M的地址空间。实际上,该NorFlash大小为2M。所以,NorFlash可...

    整理自NOR FLASH 与NAND FLASH


    1:NandFlash与NorFlash典型电路图

    Nor Flash接原理图

    从上图可以看出,该NorFlash采用并行地址和数据总线, 其中,21bit地址总线,16bit数据总线。

    该NorFlash最大可寻址2M的地址空间。实际上,该NorFlash大小为2M。所以,NorFlash可作内存使用。可以直接寻址每一个存储单元。


    NandFlash的典型原理图

    NandFlash没有区分地址总线和数据总线。只有一个8bit的I/O总线、6根控制线(WE、WP、ALE、CLE、CE、RE)和RB。

    实际上,NandFlash数据和地址均通过8bit I/O总线串行传输的。


    NOR型与NAND型闪存的区别很大,打个比方说,NOR型闪存更像内存,有独立的地址线和数据线;而NAND型更像硬盘,地址线和数据线是共用的I/O线,类似硬盘的所有信息都通过一条硬盘线传送一般。

    NOR和SRAM都是可以连续空间寻址的,但是对于地址线的要求就多了,比如1MB的地址空间,需要20根地址线(2^20=1048576=1MB)。由于NAND不支持连续空间寻址,无法直接实现片内程序运行,所以要实现NAND BOOT,需要CPU端做一些特殊处理,一般都是将一定大小的程序从NAND读到CPU内部的SRAM里,从SRAM实现BOOT。

    2:使用NandFlash,程序的放置与加载过程。

    S3C2410满足从NandFlash上执行引导程序,为了支持NandFlash的系统引导,S3C2410具备了一个内部SRAM缓冲器。当系统启动时,NandFlash存储器的前面4KByte字节将被自动载入到SRAM中,然后系统自动执行这些载入的引导代码。

    一般情况下,这4K的引导代码需要将NandFlash中程序内容拷贝到SDRAM中,在引导代码执行完毕后跳转到SDRAM执行。

    自动导入模式步骤:

    1、完成复位。

    2、如果自动导入模式使能,NandFlash存储器的前4K字节被自动拷贝到SRAM内。

    3、SRAM被映射到nGS0。

    4、CPU在SRAM的4KB内开始执行引导代码。

    3:NOR FALASH既然不仅可以记忆数据而且可以运行程序,是不是可以不要RAM?

    理论上找一个大一点儿的norflash也应该可以,但事实上是不行的。

    1、程序执行时中间要用到一些临时变量,一些临时的缓存数据,还有一些相应的堆栈 信息。这些变量与数据就要存在RAM中。理论上这些数据存在norflash中也是可以的,但这些变量是要频繁读写的,flash的擦写是有次数的(一般几万次到几百万次),对于一个高速的CPU像操作变量一样擦写flash,估计很快就挂了。

    2、norflash的速度比起RAM来差得多,况且这些临时变量并不需要永久保存,可以掉丢失。

    一般CPU内部都会有一小块的RAM,被称之为cache(高速缓存),常用的变量会放在这里来处理,大量的缓冲数据会放在外面的SDRAM中,这样会提高系统的速度。

    4:NandFlash与NorFlash不同的连接方式

    NandFlash与NorFlash具有相同的存储单元,存储原理相同但是他们的连接方式不同,所以存储管理上就有差异。

    NorFlash存储单元之间采用的是并联方式,而NandFlash存储单元之间是串联方式。

    NAND的结构与硬盘相似,NAND型闪存的编址方法是:全部存储单元被分成若干个块 ,每个块内又分成若干个页 ,每个页的大小为512x8bits,单元位宽为8。就是说,每个页内 有512条位线。页的大小之所以取512个字节,是为了方便闪存装置与磁盘进行数据交换,因为磁盘一个扇区也是512个字节,所以这绝不是数字上的巧合,而是刻意的安排。

    Nor的结构与内存相同,Nor闪存具有专用的地址线,且存储单元是并行排布、可以实现一次性的直接寻址。

    5:结构不同决定了性能不同

    1)速度差异

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

    在写数据和擦除数据时,nand因为支持整块擦写操作,所以速度要快得多。执行一次擦除操作,nor器件需要5s,而nand器件只需要4ms,速度相差千倍。但是,在读取nand闪存中的数据时情况就不同了,因为需要先向芯片发送地址信息进行寻址,之后才能开始读取数据。而nand的地址信息包括“块号”、“快内页号”、“快内字节号”三个部分,首先选择到某一块,然后选择其中的页,最后才能定位到所操作的字节。这样,每进行一次数据访问,就需要经过三次寻址,至少占用三个时钟周期。所以nor的读取速度很快。

    2)容量和成本

    Nor型闪存每个存储单元都与位线相连,增加了芯片内连线的数量,不利于存储密度的提高。通常nand型闪存单元的平面只有nor器件的一半,每个nand存储单元在体积上只有nor器件的1/8。Nand 芯片的价格通常比同等容量的nor芯片便宜。NAND结构可以在给定的模具尺寸内提供更高的容量,也就相应地降低了价格。NOR flash占据了容量为1~16MB闪存市场的大部分,而NAND flash只是用在8~128MB的产品当中,这也说明NOR主要应用在代码存储介质中,NAND适合于数据存储。NAND flash的单元尺寸几乎是NOR器件的一半,由于生产过程更为简单,NAND结构可以在给定的模具尺寸内提供更高的容量,也就相应地降低了价格。

    3)易用性

    NAND器件使用复杂的I/O口来串行地存取数据,各个产品或厂商的方法可能各不相同。8个引脚用来传送控制、地址和数据信息。NOR flash带有SRAM接口,有足够的地址引脚来寻址,可以很容易地存取其内部的每一个字节。

    4)可靠性

    一位的变化可能不很明显,但是如果发生在一个关键文件上,这个小小的故障可能导致系统停机。Nand闪存由于其结构特点,相邻存储单元之间交易发生位翻转而导致坏块的出现,增加了出错率。

    5)耐用性

    Nand 擦写次数100万次,而nor的擦写次数只有10万次。Nand与nor寿命之所以不同,是因为两者使用了不同的写入技术。Nand 采用f-n隧道效应,nor采用热电子注入方式。

    6:选择nor还是nand

    通过上边的介绍我们已经知道,nor闪存与nand闪存各有所长:

    (1)nor的存储密度低,nand闪存的存储密度和存储容量均比较高。

    (2)Nand型闪存在擦写文件时速度非常快,而nor的读取速度很快。

    Nor和nand各有所长(nor读的快而nand写得快),但两种优势无法在一个芯片上得到体现。所以,设计人员在选用芯片时,只能趋利避害,依照使用目的和主要功能在两者之间进行适当的选择。一般的原则是:在大容量的多媒体应用中选用nand型闪存,而在数据/程序存储应用中选用nor型闪存。

    除了速度、存储密度的因素,设计师在选择闪存芯片时,还要考虑接口设计。


    转载于:https://www.cnblogs.com/noble/p/4144175.html

    展开全文
  • nor flashnand flash 区别

    千次阅读 2012-10-23 14:48:45
    今天笔试,遇到一个题目,没想明白,就在网上看下高手们的看法 :nor flashnand flash 区别 ...从上图可以看出,该NorFlash采用并行地址和数据总线, 其中,21bit地址总线,16bit数据总线。 该

    今天笔试,遇到一个题目,没想明白,就在网上看下高手们的看法

    :nor flash  和nand  flash 区别

    NOR FLASH 与NAND FLASH

    1:以下是NandFlash与NorFlash典型电路图

    Nor Flash接原理图

    从上图可以看出,该NorFlash采用并行地址和数据总线, 其中,21bit地址总线,16bit数据总线。

    该NorFlash最大可寻址2M的地址空间。实际上,该NorFlash大小为2M。所以,NorFlash可作内存使用。可以直接寻址每一个存储单元。

    NandFlash的典型原理图

    NandFlash没有区分地址总线和数据总线。只有一个8bit的I/O总线、6根控制线(WE、WP、ALE、CLE、CE、RE)和RB。

    实际上,NandFlash数据和地址均通过8bit I/O总线串行传输的。

    NOR型与NAND型闪存的区别很大,打个比方说,NOR型闪存更像内存,有独立的地址线和数据线;而NAND型更像硬盘,地址线和数据线是共用的I/O线,类似硬盘的所有信息都通过一条硬盘线传送一般。

    NOR和SRAM都是可以连续空间寻址的,但是对于地址线的要求就多了,比如1MB的地址空间,需要20根地址线(2^20=1048576=1MB)。由于NAND不支持连续空间寻址,无法直接实现片内程序运行,所以要实现NAND BOOT,需要CPU端做一些特殊处理,一般都是将一定大小的程序从NAND读到CPU内部的SRAM里,从SRAM实现BOOT。

    2:使用NandFlash,程序的放置与加载过程

    S3C2410满足从NandFlash上执行引导程序,为了支持NandFlash的系统引导,S3C2410具备了一个内部SRAM缓冲器。当系统启动时,NandFlash存储器的前面4KByte字节将被自动载入到SRAM中,然后系统自动执行这些载入的引导代码。

    一般情况下,这4K的引导代码需要将NandFlash中程序内容拷贝到SDRAM中,在引导代码执行完毕后跳转到SDRAM执行。

    自动导入模式步骤:

    1、完成复位。

    2、如果自动导入模式使能,NandFlash存储器的前4K字节被自动拷贝到SRAM内。

    3、SRAM被映射到nGS0。

    4、CPU在SRAM的4KB内开始执行引导代码。

    3:NOR FALASH既然不仅可以记忆数据而且可以运行程序,是不是可以不要RAM。

    理论上找一个大一点儿的norflash也应该可以,但事实上是不行的。

    1、程序执行时中间要用到一些临时变量,一些临时的缓存数据,还有一些相应的堆栈 信息。这些变量与数据就要存在RAM中。理论上这些数据存在norflash中也是可以的,但这些变量是要频繁读写的,flash的擦写是有次数的(一般几万次到几百万次),对于一个高速的CPU像操作变量一样擦写flash,估计很快就挂了。

    2、norflash的速度比起RAM来差得多,况且这些临时变量并不需要永久保存,可以掉丢失。

    一般CPU内部都会有一小块的RAM,被称之为cache(高速缓存),常用的变量会放在这里来处理,大量的缓冲数据会放在外面的SDRAM中,这样会提高系统的速度。

    4:NandFlash与NorFlash不同的连接方式

    NandFlash与NorFlash具有相同的存储单元,存储原理相同但是他们的连接方式不同,所以存储管理上就有差异。

    NorFlash存储单元之间采用的是并联方式,而NandFlash存储单元之间是串联方式。

    NAND的结构与硬盘相似,NAND型闪存的编址方法是:全部存储单元被分成若干个块 ,每个块内又分成若干个页 ,每个页的大小为512x8bits,单元位宽为8。就是说,每个页内 有512条位线。页的大小之所以取512个字节,是为了方便闪存装置与磁盘进行数据交换,因为磁盘一个扇区也是512个字节,所以这绝不是数字上的巧合,而是刻意的安排。

    Nor的结构与内存相同,Nor闪存具有专用的地址线,且存储单元是并行排布、可以实现一次性的直接寻址。

    5:结构不同就决定了他们的性能不同

    1)速度差异

    任何闪存器件的写人操作只能在空或已擦除的单内进行,所以大多数情况下,在进行写入操作之前必须先执行擦除。

    在写数据和擦除数据时,nand因为支持整块擦写操作,所以速度要快得多。执行一次擦除操作,nor器件需要5s,而nand器件只需要4ms,速度相差千倍。但是,在读取nand闪存中的数据时情况就不同了,因为需要先向芯片发送地址信息进行寻址,之后才能开始读取数据。而nand的地址信息包括“块号”、“快内页号”、“快内字节号”三个部分,首先选择到某一块,然后选择其中的页,最后才能定位到所操作的字节。这样,每进行一次数据访问,就需要经过三次寻址,至少占用三个时钟周期。所以nor的读取速度很快。

    2)容量和成本

    Nor型闪存每个存储单元都与位线相连,增加了芯片内连线的数量,不利于存储密度的提高。通常nand型闪存单元的平面只有nor器件的一半,每个nand存储单元在体积上只有nor器件的1/8。Nand 芯片的价格通常比同等容量的nor芯片便宜。NAND结构可以在给定的模具尺寸内提供更高的容量,也就相应地降低了价格。NOR flash占据了容量为1~16MB闪存市场的大部分,而NAND flash只是用在8~128MB的产品当中,这也说明NOR主要应用在代码存储介质中,NAND适合于数据存储。NAND flash的单元尺寸几乎是NOR器件的一半,由于生产过程更为简单,NAND结构可以在给定的模具尺寸内提供更高的容量,也就相应地降低了价格。

    3)易用性

    NAND器件使用复杂的I/O口来串行地存取数据,各个产品或厂商的方法可能各不相同。8个引脚用来传送控制、地址和数据信息。NOR flash带有SRAM接口,有足够的地址引脚来寻址,可以很容易地存取其内部的每一个字节。

    4)可靠性

    一位的变化可能不很明显,但是如果发生在一个关键文件上,这个小小的故障可能导致系统停机。Nand闪存由于其结构特点,相邻存储单元之间交易发生位翻转而导致坏块的出现,增加了出错率。

    5)耐用性

    Nand 擦写次数100万次,而nor的擦写次数只有10万次。Nand与nor寿命之所以不同,是因为两者使用了不同的写入技术。Nand 采用f-n隧道效应,nor采用热电子注入方式。

    6:选择nor还是nand

    通过上边的介绍我们已经知道,nor闪存与nand闪存各有所长:

    (1)nor的存储密度低,nand闪存的存储密度和存储容量均比较高。

    (2)Nand型闪存在擦写文件时速度非常快,而nor的读取速度很快。

    Nor和nand各有所长(nor读的快而nand写得快),但两种优势无法在一个芯片上得到体现。所以,设计人员在选用芯片时,只能趋利避害,依照使用目的和主要功能在两者之间进行适当的选择。一般的原则是:在大容量的多媒体应用中选用nand型闪存,而在数据/程序存储应用中选用nor型闪存。

    除了速度、存储密度的因素,设计师在选择闪存芯片时,还要考虑接口设计。


    NAND与NOR FLASH的原理与异同 

    http://bbs.eastsea.com.cn/thread-716013-1-1.html

    http://hi.baidu.com/wxd_wave/item/83764f4b0c193b0f6dc2f0bb

    http://forum.eepw.com.cn/thread/135715/1

    展开全文
  • CFI nor flash使用的外部接口是CFI(common flash interface公共闪存接口 ),是并行接口(Parallel接口),因遵循jedec标准,又被称为jedec接口。 SPI nor flash使用的外部接口是SPI(serial peripheral i...
  • norflashnandflash的区别

    千次阅读 2013-07-18 21:30:44
    NANDflash和NORflash的区别    两种并行FLASH   Flash存储器又称闪存,是一种可以在线多次擦除的非易失性存储器,即掉电后数据不会丢失,具体积小、功耗低、抗振性强等优点,为嵌入式系统中典型的两种存储...
  • SPI Flash :(任意地址读数据,但按扇区写...2、NOR Flash根据数据传输的位数可以分为并行(Parallel)NOR Flash和串行(SPI)NOR Flash; 3、SPI Nor Flash每次传输一个bit位的数据,parallel Nor Flash每次传输多个
  •  NAND Flash是嵌入式世界里常见的存储器,对于嵌入式开发而言,NAND主要分为两大类:Serial NAND、Raw NAND,这两类NAND的差异是很大的(软件驱动开发角度而言),即使你掌握其中一种,也不代表你能了解另一种。...
  • Nand Flash and Nor flash

    2012-11-14 23:46:59
    NOR FLASHNAND FLASH ...从上图可以看出,该NorFlash采用并行地址和数据总线, 其中,21bit地址总线,16bit数据总线。 该NorFlash最大可寻址2M的地址空间。实际上,该NorFlash大小为2
  • SPI Nand Flash简介

    2020-10-15 17:36:04
    SPI Nand Flash顾名思义就是串行接口的Nand Flash,它和普通并行Nand Flash相似,比如:SLC Nand Flash。 2.SPI Nand Flash的ECC校验(与Nand主要差异) 与普通的Nand不同,SPI Nand使用内部ECC; 当读/写操作一个...
  • Nandflash和norflash的区别 两种并行FLASH Flash存储器又称闪存,是一种可以在线多次擦除的非易失性存储器,即掉电后数据不会丢失,具体积小、功耗低、抗振性强等优点,为嵌入式系统中典型的两种存储...
  • 1.1接口差别 NOR Flash带有SRAM接口,有足够的地址引脚来寻址,可以直接和CPU相连,CPU可以直接通过地址总线对NOR Flash进行访问,可以很容易地存取其内部的每一个字节。...NOR Flash并行访问,Nand Flash
  • SPI NAND flash 简介

    千次阅读 2018-07-16 09:47:37
    在嵌入式系统领域,做为存储设备的NOR flashNAND flash,大家应该不陌生。早期NOR flash的接口是并行口的形式,也就是把数据线,地址线并排设置与IC的管脚中。但是由于不同容量的并行口NOR flash不能硬件上兼容...
  • NandFlash和iNand

    千次阅读 2016-10-02 22:54:12
    NandFlash Nand型号和命名 例如K9F2G08这个NandFlash,K9F表示三星公司的NandFlash,2G表示2Gbit,08表示该...Nand采用并行接口存储,数据位上传递的不一定是纯数据,也可能是命令,地址等。 Nand功能框图 框图如
  • SPI nandflash 驱动程序

    千次阅读 2019-10-22 09:53:09
    nandflash并行的,有串行方式的,8脚的SPI nandflash是众多工程师的首选,不占地方容量又大,这里奉上我总结的SPI nandflash驱动程序,不包含坏块管理机制: H源文件: #include "stdint.h" #define MX35LF...
  • Nandflash和norflash的区别  两种并行FLASH   Flash存储器又称闪存,是一种可以在线多次擦除的非易失性存储器,即掉电后数据不会丢失,具体积小、功耗低、抗振性强等优点,为嵌入式系统中典型的两...
  • 嵌入式系统设计人员在选择闪存时必须考虑许多因素:使用哪种类型的Flash架构,是选择串行接口还是并行接口,是否需要校验码(ECC)等。如果处理器或控制器仅支持一种类型的接口,则会限制选项,因此可以轻松选择内存...
  • S5PV210的NandFlash: 关于Nand的基本知识: 1.NandFlash的型号和命名都是有意义的,K9F2G08,K9F...2.Nand有8bit数据位的,也有16bit位的,说明我们NandFlash并行接口的,我们Nand 的数据线上传输的不一定都是...
  • Nand Flash存储器具有容量较大,改写速度快等优点,适用于大量数据的存储,因而在业界得到了越来越广泛的应用。为了设计大容量、高存储速度、易扩展的存储系统,本文通过分析理论存储速度,结合直接存储器访问(DMA...
  • 为了解决目前记录系统容量小、存储速度低的问题,采用性能优良的固态NANDFLASH为存储介质,大规模集成电路FPGA为控制核心,通过使用并行处理技术和流水线技术实现了多片低速FLASH时高速数据的存储,提高了整
  • 为解决当前固态存储系统有效适应大规模数据高速存储的问题,以NAND Flash为存储介质,利用循环SRAM缓冲、多体存储阵列、交叉开关矩阵等技术实现了低速Flash芯片阵列构建的嵌入式高速数据存储机制.其中SRAM缓冲阵列...
  • MINI2440 ram:4k , ...nandflash和norflash最大区别:norflash可以片上运行程序(并行总线,引脚多),nandflash不能(串行总线,引脚少) 通常linux操作系统存放在nandflash里面 nandflash启动模式:开发板上电时
  • 针对当前提高存储系统容量和访问速度的迫切需求,设计了一种高速大容量存储系统,系统...以FPGA 为控制核心,通过对多片NAND Flash 的逻辑控制实现数据的高速存储。提出了流水线、坏块管理、并行硬件ECC 校验等关键技术
  • eMMC=NAND falsh+主控IC+8位并行接口 任何flash器件的写入操作只能在空或已擦除的单元内进行,所以大多数情况下,在进行写入操作之前必须先执行擦除。 NOR flash需要长时间进行擦写,但它能提供完整的寻址与数据总线...
  • 1. 以下是NandFlash与NorFlash典型电路图 1.1 Nor Flash接原理图 从上图可以看出,该NorFlash采用并行地址和数据总线.其中,21bit地址总线,16bit数据总线. 该NorFlash最大可寻址2M的地址空间...
  • 基于IP设计流程,完成一款应用于安全芯片的BCHIP。从BCH的编码算法入手,基于具有高纠错能力和并行旷课配置的设计方案
  • 看的时候不少是略懵的,大概概念基本是懂的,倒也记一下吧。 简述 关于NandFlash的几个特点...但NandFlash芯片没有独立的地址线,他只有一个8位的并行口,接的是IO口。所以他需要衍生一些控制信号线如ALE,CLE,...
  • NAND NOR 的区别

    2012-03-01 19:42:17
    转自...   NOR FLASHNAND FLASH 1:以下是NandFlash与NorFlash典型电路图 Nor Flash接原理图 ...从上图可以看出,该NorFlash采用并行地址和数据总线, 其中,21bit地址总线,16bit数据总线。

空空如也

空空如也

1 2 3 4
收藏数 62
精华内容 24
热门标签
关键字:

flash并行nand