👉个人主页: 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、存储少量代码 3、传输效率高,在1、4MB小容量时具有很高的成本效益 4、读取速度快,写入和擦除速度低 |
1、高数据存储密度 3、flash的管理需要特殊的系统接口 4、NandFlash没有挂接在地址总线上,如果想用NandFlash作为系统的启动盘,就需要CPU具备特殊的功能,如s3c2410在被选择为NandFlash启动方式时会在上电时自动读取NandFlash的4k数据到地址0的SRAM中。 如果CPU不具备这种特殊功能,用户不能直接运行NandFlash上的代码,那可以采取其他方式,比如好多使用NandFlash的开发板除了使用NandFlash以外,还用上了一块小的NorFlash来运行启动代码。 |
性能比较 |
flash闪存是非易失性存储器,可以对称为块的存储器单元块进行擦写和再编程。任何f1ash器件的写入操作只能在空或已擦除的单元内进行,所以大多数情况下,在进行写入操作之前必须先执行擦除。 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个引脚用来控制传送控制、地址和数据信息; 3、接口固定,升级简单。 |
容量和成本 |
1、1MB~16MB,成本较高。 |
1、8MB~128MB(现在还有更大的) |
寿命(耐性) |
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采用的是热电子注入,隧穿比热电子注入的速度更快。文章来源:https://www.toymoban.com/news/detail-828283.html
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的。文章来源地址https://www.toymoban.com/news/detail-828283.html
到了这里,关于【FLASH存储器系列四】NAND和NOR两种Flash的本质区别是什么?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!