【FLASH存储器系列四】NAND和NOR两种Flash的本质区别是什么?

👉个人主页: highman110
👉作者简介:一名硬件工程师,持续学习,不断记录,保持思考,输出干货内容

目录

1 Nand 和Nor的区别

2 从存储原理上分析这些区别的原因

        1、为什么nor flash的读取速度比nand flash要稍快?

        2、为什么nand flash的容量比nor flash更大?

        3、为什么flash的写入操作之前,必须要先进行擦除?

        4、为什么nor的擦除速度比nand慢这么多?

        5、为什么nor flash的可擦除次数低于nand flash?

        6、为什么nand flash的写入速度比nor flash要快?

        7、为什么NOR flash可以支持XIP,Nand flash不可以?


1 Nand 和Nor的区别

        下表是从各个维度列举的两种flash的区别:

NOR flash

NAND flash

时间

Intel于1988年首先开发出NORf1ash技术,彻底改变了原先由EPROM和EEPROM一统天下的局面。

1989年,东芝公司发表了NAND f1ash结构,强调降低每比特的成本,更高的性能,并且象磁盘一样可以通过接口轻松升级。

特点

1、存储少量代码
2、芯片内执行,程序可以直接在flash闪存内运行,不必把代码读到系统RAM中

3、传输效率高,在1、4MB小容量时具有很高的成本效益

4、读取速度快,写入和擦除速度低

1、高数据存储密度
2、读速度慢,写入和擦除速度快

3、flash的管理需要特殊的系统接口

4、NandFlash没有挂接在地址总线上,如果想用NandFlash作为系统的启动盘,就需要CPU具备特殊的功能,如s3c2410在被选择为NandFlash启动方式时会在上电时自动读取NandFlash的4k数据到地址0的SRAM中。 如果CPU不具备这种特殊功能,用户不能直接运行NandFlash上的代码,那可以采取其他方式,比如好多使用NandFlash的开发板除了使用NandFlash以外,还用上了一块小的NorFlash来运行启动代码。

性能比较

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

2、执行擦除时的块尺寸/速度:擦除NOR器件时,以64KB,128KB的块执行,执行一个写入/擦除操作的时间为5S。擦除NAND器件时,以8KB,32KB的块进行,执行操作最多只需要4ms。

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

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

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

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

7、在应用中,NOR flash由于功能丰富,不需要其他的软件支持,就可以被系统直接寻址,并在内部直接运行操作代码。而NAND flash的功能相对简单,通常需要搭配相应的控制芯片和驱动程序,才能对其进行操作。

接口差别

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

2、升级麻烦,不同容量的NorFlash的地址线需求不一样,在更换不同容量的NorFlash芯片时不方便(当下的串行接口的器件已经没有这个问题了)。

1、NAND flash使用复杂的I/O口来串行地址存取数据,8个引脚用来控制传送控制、地址和数据信息;
2、NAND读和写操作采用512字节的块,类似硬盘管理的操作,基于NAND的存储器可以取代硬盘或其他块设备。

3、接口固定,升级简单。

容量和成本

1、1MB~16MB,成本较高。

1、8MB~128MB(现在还有更大的)
2、NAND的单元尺寸是NOR的一半,生产过程简单,价格低。

寿命(耐性)

NOR flash的每个块的擦写次数是10万次

NAND flash每个块的最大擦写次数是100万次

坏块处理

冗余比特替换,是指在芯片设计时,每组存储单元会有若干个冗余比特,当该组存储单元存在失效的比特,就可以用冗余比特加以替换。冗余比特替换的方法常用于NOR flash中。当失效的比特很多且连续时,失效的比特所在的区域会被认识是集体失效。在NOR flash中,失效的区域通常也会被冗余的存储单元块替换掉。

NAND的坏块是随机分布的,错误检查和纠正(ECC),是指芯片中每组存储单元会有若干个比特用做数据的校验,当该组存储单元存在失效的比特则通过相应的数据校验算法,还原中真实的数据。错误检查和纠正的方法常用于NAND flash中。当失效的比特很多且连续时,失效的比特所在的区域会被认识是集体失效。在NAND flash中,失效的区域会被标记为不可用。

serial flash

现在有些芯片为了减少启动引脚,可以采用QSPI serial flash作为启动存储器。其采用spi/qspi 的方式进行串行的读取数据,减小引脚消耗。这个只是通信方式的改变,其内部结构一般还是nor flash或者nand flash

2 从存储原理上分析这些区别的原因

        1、为什么nor flash的读取速度比nand flash要稍快?

        首先nor flash的每个存储单元是直接连接在位线和字线上的,相当于每个单元时独立的,而nand flash的存储单元时串联的,要访问其中某个单元时,这个串联中的其他晶体管要全部导通,才能正确访问到被访问的单元,所以nor flash的读取速度比nand flash要稍快。

        2、为什么nand flash的容量比nor flash更大?

        由于阵列的连接方式区别,nor flash的版图开销更大,所以nor flash的容量一般不大,一般几兆、几十兆,而nand flash在本身阵列面积开销小的优势下,还可以进行3D堆叠,容量可以做得很大,甚至几T,一般固态硬盘里使用的就是大容量的nand flash。关于3D nand的实现,大家可以到B站学习一下硬件茶谈的某期视频。

        3、为什么flash的写入操作之前,必须要先进行擦除?

        flash的写入操作之前,必须要先进行擦除。因为flash只能将1写为0,不能将0写为1,写1,也就是将存储单元中的中的电子拉出来,需要通过擦除操作处理。

        4、为什么nor的擦除速度比nand慢这么多?

        网上找到的说法为:由于擦除NOR器件时是以64~128KB的块进行的,执行一个写入/擦除操作的时间为5s ,与此相反,擦除NAND器件是以8~32KB的块进行的,执行相同的操作最多只需要4ms。我理解擦除的块大小相差几倍,而相应的时间却相差几千倍,这有点不合理,块的大小可能是一个影响因素,但我觉得根本原因还得从存储单元的擦除原理来解释。Nor flash擦除是以栅源之间的隧穿效应实现,隧穿通道比较集中,通道较小,而nand flash擦除以栅极和衬底之间的隧穿效应实现,隧穿通道更大,隧穿更分散,更容易完成电子隧穿,所以擦除时间更短。

        5、为什么nor flash的可擦除次数低于nand flash?

        由于nor flash擦除时隧穿通道集中,所以此处的隧道氧化层更容易在多次电子隧穿后损坏,所以nor flash的擦除次数一般十万次等级,而nand flash由于分散隧穿,它的氧化层寿命更长,一般在一百万次等级。同时热电子注入对氧化层的损伤又比FN隧穿要大,这也是nor寿命不及nand的一个原因。这条是我的猜测,大家自行甄别。

        6、为什么nand flash的写入速度比nor flash要快?

        nand flash的写入速度比nor flash要快,原因是nand flash采用FN隧穿效应进行写入,而nor flash采用的是热电子注入,隧穿比热电子注入的速度更快。

        7、为什么NOR flash可以支持XIP,Nand flash不可以?

        我的理解是Nand flash也可以支持XIP,只是做起来麻烦点罢了。网上的说法是nor flash有类似SRAM的接口,CPU可以直接从nor flash中取指,不用将数据拷贝到内存,然后直接译码执行,而nand flash由于地址和数据共用IO,需要有专门的nand flash控制器和驱动程序才能进行读写,同时nand flash由于容易发生位翻转的,需要以页为单位做ECC校验,所以nand flash的读操作是以页为单位,而程序可能并不是连续存放在页中,这样读就会出错。但是我个人理解,如果CPU硬件把nand 控制器已经做好了,且flash中的数据是按既定数据写进去的,同时flash在程序数据端没有坏块,他也是可以支持XIP的。

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

highman110

你的鼓励将是我最大的创作动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值