【存储器】NAND、NOR、QSPI FLASH , EEPROM 等存储器的区别

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

1. ROM(非易失性存储器)

ROM也有很多种,PROM是可编程的ROM,PROM和EPROM(可擦除可编程ROM)两者区别是:PROM是一次性的,也就是软件灌入后,就无法修改了,这种是早期的产品,现在已经不可能使用了,而EPROM是通过紫外光的照射擦出原先的程序,是一种通用的存储器。另外一种EEPROM是通过电子擦出,价格很高,写入时间很长,写入很慢。
FLASH存储器又称闪存,它结合了ROM和RAM的长处,不仅具备电子可擦出可编程(EEPROM)的性能,还不会断电丢失数据同时可以快速读取数据(NVRAM的优势),U盘和MP3里用的就是这种存储器。在过去的20年里,嵌入式系统一直使用ROM(EPROM)作为它们的存储设备,然而近年来Flash全面代替了ROM(EPROM)在嵌入式系统中的地位,用作存储Bootloader以及操作系统或者程序代码或者直接当硬盘使用(U盘),用于存放系统、应用和数据等。在 PC 系统中,则主要用在固态硬盘以及主板 BIOS 中。另外,绝大部分的 U 盘、SDCard 等移动存储设备也都是使用 Flash Memory 作为存储介质。

1.1 Flash

Flash Memory的主要特性:

  1. 需要先擦除再写入
    Flash Memory 写入数据时有一定的限制。它只能将当前为 1 的比特改写为 0,而无法将已经为 0 的比特改写为 1,只有在擦除的操作中,才能把整块的比特改写为 1。
  2. 块擦除次数有限
    Flash Memory 的每个数据块都有擦除次数的限制(十万到百万次不等),擦写超过一定次数后,该数据块将无法可靠存储数据,成为坏块。为了最大化的延长 Flash Memory 的寿命,在软件上需要做擦写均衡(Wear Leveling),通过分散写入、动态映射等手段均衡使用各个数据块。同时,软件还需要进行坏块管理(Bad Block Management,BBM),标识坏块,不让坏块参与数据存储。(注:除了擦写导致的坏块外,Flash Memory 在生产过程也会产生坏块,即固有坏块。)
  3. 读写干扰
    由于硬件实现上的物理特性,Flash Memory 在进行读写操作时,有可能会导致邻近的其他比特发生位翻转,导致数据异常。这种异常可以通过重新擦除来恢复。Flash Memory 应用中通常会使用 ECC 等算法进行错误检测和数据修正
  4. 电荷泄漏
    存储在 Flash Memory 存储单元的电荷,如果长期没有使用,会发生电荷泄漏,导致数据错误。不过这个时间比较长,一般十年左右。此种异常是非永久性的,重新擦除可以恢复。

1.1.1 按存储结构分类

flash按照内部存储结构不同,分为两种: NOR Flash和 NAND Flash。

1.1.1.1 NAND Flash
  • 架构: NAND Flash是一种基于串行结构的闪存技术。采用串联存储单元的结构,每组存储单元共享位线和字线。

  • 特点:

    1. 写入和擦除速度较快,适合数据存储。
    2. 擦除操作以块为单位进行,块大小较小(通常为数KB到数十KB)。
    3. 具有更高的存储密度和更低的成本。
  • 应用: 广泛用于大容量数据存储设备,如固态硬盘(SSD)、USB闪存盘和存储卡。

1.1.1.2 NOR Flash
  • 架构: NOR Flash是一种基于并行结构的闪存技术。采用垂直地址线和水平位线的交叉结构,每个存储单元直接连接到位线和字线.

  • 特点:

    1. 读取速度快,适合代码执行(如固件和BIOS)。
    2. 擦除速度相对较慢,擦除操作以块为单位进行。
    3. 擦除单元较大(通常为128KB或更大)。
  • 应用: NOR Flash以其高可靠性和直接执行代码的能力而著称,允许应用程序直接在flash闪存中运行。常用于需要快速读取的场景,如嵌入式系统的固件存储。

1.1.1.3 NAND Flash和NOR Flash区别
  1. 读取速度: NOR Flash的读取速度通常比NAND Flash稍快一些,因为NOR Flash的架构允许随机访问数据,而NAND Flash则需要按顺序访问数据‌.
  2. 写入和擦除速度:NAND Flash的写入和擦除速度比NOR Flash快很多。NAND Flash能在毫秒级别内完成擦除操作,而NOR Flash的擦除速度通常在秒级别‌.
  3. 存储容量: NOR Flash的容量通常在1MB~8MB之间,而NAND Flash用于8MB以上的产品中‌。NAND Flash的数据存储密度更高,因此其容量通常比NOR Flash大得多。这使得NAND Flash成为存储大量数据的理想选择,而NOR Flash则更适合存储少量代码‌。
  4. 应用场景
    NAND Flash以其高速的写入和擦除速度、大容量和高成本效益在大数据存储领域占据主导地位,如U盘、MP3播放器和固态硬盘等‌。而NOR Flash则以其快速的读取速度和直接执行代码的能力在嵌入式系统和特定应用中发挥重要作用‌,如存储固件和引导程序。
    另外,NOR Flash的读取和我们常见的SDRAM的读取是一样,用户可以直接运行装载在NOR FLASH里面的代码,这样可以减少SRAM的容量从而节约了成本。NAND Flash没有采取内存的随机读取技术,它的读取是以一次读取一快的形式来进行的,通常是一次读取512个字节,采用这种技术的Flash比较廉价。用户不能直接运行NAND Flash上的代码,因此好多使用NAND Flash的开发板除了使用NAND Flah以外,还作上了一块小的NOR Flash来运行启动代码。
  5. 寿命和耐久性
    NOR Flash:由于其较低的存储密度和按字节擦除的特性,NOR Flash具有更长的寿命和更高的耐久性。它可以承受更多的擦写操作,因此适用于对寿命要求较高的应用场景。NOR Flash的较低存储密度意味着每个存储单元占用的空间相对较大,因此在同样的物理尺寸下,可以容纳更少的存储单元。这导致了NOR Flash相对较小的容量。
    NAND Flash:相对而言,NAND Flash的寿命较短且较容易损坏。由于采用了块擦除的方式,并且每个存储块只能擦写有限次数,所以随着时间的推移和频繁的擦写操作,NAND Flash的寿命会逐渐减少。为了增加寿命,NAND Flash通常使用了一些技术来平衡数据分布并将擦写操作尽量均匀地分散在整体存储芯片上。
  6. 可靠性和错误纠正
    NOR Flash:NOR Flash具有较好的可靠性和错误纠正能力。由于其并行结构,当某个存储单元出现错误时,可以通过冗余电路进行错误校验和修正。这使得数据的读取和写入过程更加可靠,并提供了更高的数据完整性。
    NAND Flash:与之相比,NAND Flash的可靠性较低。由于存储密度较高,当某个存储单元出现错误时,可能会导致整个块的数据损坏。为了解决这个问题,NAND Flash通常使用了一些纠错码(ECC)算法来检测和纠正错误。这些算法可以检测和修复在数据传输过程中发生的错误,提高了存储数据的可靠性。
  7. 价格:‌NOR Flash的价格相对较高,而NAND Flash的价格相对较低。NOR Flash:由于其内部复杂的结构和较低的存储密度, 导致其成本相对较高。

1.1.2 按外置Flash按接口分类:总线Flash,SPI Flash

外置flash按接口分有总线flash,SPI flash。总线flash需要MCU上有外部总线接口,SPI flash就是通过SPI口对flash进行读写。速度上,总线flash比SPI的快,但是SPI的便宜。

1.1.2.1 总线Flash和SPI flash区别
  • 接口类型:总线FLASH需要通过外部总线接口进行连接,而SPI FLASH则是通过SPI口进行读写操作。
  • 速度与成本‌:总线FLASH的速度通常比SPI FLASH快,但SPI FLASH的成本较低。这是因为SPI FLASH使用串行传输方式,每次传输的数据量较小,而总线FLASH支持并行传输,可以同时传输多个数据位,从而提高了数据传输速度‌。
  • 应用场景:由于总线FLASH的速度较快,它更适合对性能要求较高的应用,如高性能计算、图像处理等。而SPI FLASH由于其低成本和简单的接口,更适合用于对成本敏感的应用,如物联网设备、嵌入式系统等‌。

1.1.3 按存储芯片分类

目前市面上常见的集成存储芯片类型:SSD、eMMC、UFS、SPI-Flash、QSPI-Flash、各尺寸的SD卡等。

1.2 EEPROM

技术上,FLASH是结合EPROM和EEPROM技术达到的。

1.2.1 EEPROM和FLASH区别

对于用户来说,EEPROM和FLASH的最主要的区别就是:

  • 读写方式:EEPROM可以按位擦写,而FLASH只能按块Block擦除(每个区块的大小不定,不同厂家的产品有不同的规格 );
  • 容量:EEPROM一般容量不大,一般在64KB以下,而FLASH一般8MB 以上(NOR型);
  • 读写速度:两者读的速度差别不大;
  • 应用:EEPROM是低端产品、容量低、价格便宜,但是稳定性较FLASH要好一些。
  • 寿命和耐久性:EPROM数据保存时间大约是100年,而SPI Flash数据保存时间为20年。EPROM的读写次数为100万次左右,SPI Flash读写次数为10万次左右。

2. RAM(易失性存储器)

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

2.1 SRAM

SRAM是Static Random Access Memory的缩写,中文含义为静态随机访问存储器,它是一种类型的半导体存储器。**"静态"是指只要不掉电,存储在SRAM中的数据就不会丢失。**这一点与动态RAM(DRAM)不同,DRAM需要进行周期性的刷新操作。然后,我们不应将SRAM与只读存储器(ROM)和Flash Memory相混淆,因为SRAM是一种易失性存储器,它只有在电源保持连续供应的情况下才能够保持数据。"随机访问"是指存储器的内容可以以任何顺序访问,而不管前一次访问的是哪一个位置。

2.2 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加速卡的像素渲染能力。

2.3 SRAM和DRAM区别

  1. 访问速度: SRAM中的每一位均存储在四个晶体管当中,这四个晶体管组成了两个交叉耦合反向器。这个存储单元具有两个稳定状态,通常表示为0和1。另外还需要两个访问晶体管用于控制读或写操作过程中存储单元的访问。因此,一个存储位通常需要六个MOSFET。对称的电路结构使得SRAM的访问速度要快于DRAM。SRAM比DRAM访问速度快的另外一个原因是SRAM可以一次接收所有的地址位,而DRAM则使用行地址和列地址复用的结构。

常见误区:

  1. SRAM不应该与SDRAM相混淆,SDRAM代表的是同步DRAM(Synchronous DRAM),这与SRAM是完全不同的。
  2. SRAM也不应该与PSRAM相混淆,PSRAM是一种伪装成SRAM的DRAM。

3. 参考资料

嵌入式开发得弄明白各种Flash
EEPROM与Flash区别
Flash存储器解析:从原理到应用,全面了解其与缓存的区别
norflash和nandflash的区别
关于SPIFlash那些你不知道的事儿!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

步达硬件

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

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

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

打赏作者

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

抵扣说明:

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

余额充值