【SoC基础】从[存储器]到[内存]再到[闪存],一次性解释清楚!

:如果你也对机器人、人工智能感兴趣,看来我们志同道合✨
:不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852】
:文章若有幸对你有帮助,可点赞 收藏 ⭐不迷路
:内容若有错误,敬请留言 指正!原创文,转载请注明出处

文章目录

  • 一、存储器
    • 1.1存储器的作用
    • 1.2存储器的种类
      • 1.2.1按主次分类
      • 1.2.2按特性、功能分类
  • 二、内存
    • 2.1硬件和逻辑两方面
    • 2.2内存的编程模型
    • 2.3类比内存
    • 2.4内存访问方式
    • 2.5内存管理方法
      • 2.5.1操作系统管理
      • 2.5.2裸机程序管理
  • 三、闪存
    • 3.1 NOR FLASH和NAND FLASH
    • 3.2 2D FLASH和3D NAND FLASH
      • 3.2.1 2D FLASH
      • 3.2.2 3D NAND Flash
      • 3.2.3 总结
    • 3.3 采用闪存颗粒的存储器
  • 疑问1:存储器和寄存器的关系?
  • 总结


一、存储器

1.1存储器的作用

存储器又被称为存储芯片,是全球需求最多的一类芯片,主要用来存储程序和数据的部件,对于计算机来说,有了存储器,才有记忆功能,才能保证正常工作。然而在2016年之前我国国产存储芯片的市场基本为零,其中最为主要的当属DRAM内存和NAND flash两类。

1.2存储器的种类

1.2.1按主次分类

按其主次可分为内存和外存,即主存储器和辅助存储器
首选,我们从字面上来尝试理解内存,其中有个“内”,这明显是一个相对的词,那它到底相对于谁?

答案是:相对于CPU而言,能与其直接进行数据传输的存储器,称之为“内存”。

主存储器又称内存储器(简称内存),内存指的就是主板上的存储部件,是CPU直接与之沟通,并用其存储数据的部件,存放当前正在使用的(即执行中)的数据和程序,一旦关闭电源或发生断电,其中的程序和数据就会丢失,一般为RAM;

辅助存储器又称外存储器(简称外存),外存通常是磁性介质或光盘,像硬盘(机械和SSD),软盘,磁带,CD等,能长期保存信息,并且不依赖于电来保存信息;

1.2.2按特性、功能分类

RAM、ROM和闪存(Flash)是按照存储器的特性和功能进行分类的。

  1. RAM(Random Access Memory,随机存取存储器):

    • RAM是易失性存储器,断电后数据会被清除,分为SRAM和DRAM。
    • SRAM:静态随机存储器,上电后可以直接使用;价格昂高,容量小
    • DRAM:动态随机存储器,软件初始化后才能使用;价格低,容量大
    • RAM是一种临时存储器,用于存储当前执行的程序、数据和临时结果。
    • 它具有快速的读写速度和随机访问的特性,可以快速存取和处理数据。
  2. ROM(Read-Only Memory,只读存储器):

    • ROM是一种只读的存储器,其中的数据在生产制作过程中被写入,并且在正常操作期间无法被修改,因此掉点后数据不会丢失。
    • ROM中的数据通常是固化的程序代码、固件、配置数据等,用于存储不需要更改的信息。
    • 因此可以将ROM看作是一个不可修改的存储器。
    • 分类: PROM、EPROM
  3. 闪存(Flash):

类似RAM,闪存是一种可以进行读取和写入操作的存储器,也具备了随机存取数据的能力。它可以像RAM一样用于存储和处理数据。

类似ROM,闪存具有非易失性特性,即在断电或重新启动设备后数据仍然保存。这使得闪存在长期存储数据方面非常有用,可以作为可靠的存储介质。

上述特性描述表明:

  • 闪存可以说是兼具了RAM可读可写的特性和ROM断电不丢失数据的特性(意味着可以长时间存储数据)。
  • 闪存是一种非易失性存储器,可以用于长期存储数据并允许数据的可擦写和可编程,
  • 它具有较快的写入速度,但相对较慢的读取速度。
  • 闪存经常用于存储固件、操作系统、配置数据、用户数据等长期保存的信息。

此外,闪存还具有可擦写和可编程的特性。与ROM不同,闪存中的数据可以被擦除和重新编程,这使得闪存适用于存储需要频繁修改或更新的数据,如操作系统、固件、配置数据、用户数据等。

需要注意的是,闪存的读写速度相较于RAM较慢,并且闪存的写入操作通常需要整个块或扇区的擦除,再进行数据的重新编程。这些特点使得闪存在某些场景下可能不适用于频繁的随机写入操作。

  • 种类
    NOR FLASH
    NAND FLASH:分为2D NAND FLASH和 3D NAND FLASH
    【SoC基础】从[存储器]到[内存]再到[闪存],一次性解释清楚!_第1张图片

二、内存

第一章将存储器的种类以及相应的特性进行了阐述,我们知道:
:内存用于临时存储数据和程序运行
:ROM用于存储只读信息
:而闪存用于长期存储和可擦写的数据
接下来,我们思考一个问题,平时买手机的时候,经常会将内存作为一个很重要的参考指标,听它的名字就知道是一种存储器,那它到底属于哪种存储器呢?应当具备何种特性?

2.1硬件和逻辑两方面

1.2.1小节已经将内存的概念阐述清楚了,即:

内存主要是指随机存取存储器(RAM)。RAM作为计算机的主存储器,用于临时存储正在运行的程序、数据和临时结果。

从硬件和逻辑两方面对内存的概念进行阐述

1.硬件角度:内存并不单单是电脑上的一个配件(一般叫内存条)。其存在的硬件形式多种多样,根据不同的硬件实现原理可将内存分成SRAM和DRAM(DRAM又有好多代,譬如最早的SDRAM,后来的DDR1、DDR2·····、LPDDR)
在嵌入式产品中,并没有内存条。例如:单片机中,内存通常指的是芯片内部的存储器,

【SoC基础】从[存储器]到[内存]再到[闪存],一次性解释清楚!_第2张图片

2.逻辑角度:内存(RAM)可以随机访问(随机访问的意思是只要给一个地址,就可以访问这个内存地址)、并且可以读写(当然了逻辑上也可以限制其为只读或者只写);内存在编程中天然是用来存放变量的(就是因为有了内存,所以C语言才能定义变量,C语言中的一个变量实际就对应内存中的一个单元)。

2.2内存的编程模型

内存的编程模型就是其逻辑的抽象化表现
逻辑上,内存实际上是由无限多个内存单元格组成的,每个单元格有一个固定的地址称为“内存地址”,这个内存地址和这个内存单元格唯一对应且永久绑定。
在这里插入图片描述
内存的访问方式
内存通过CPU的地址总线来寻址定位,然后通过CPU数据总线来读写。
CPU的地址总线的位数是CPU设计时确定的,因此一款CPU所能寻址的范围是一定的,而内存是需要占用CPU的寻址空间的。
内存与CPU的这种总线式连接方式是一种直接连接,优点是效率高、访问快,缺点是资源有限,扩展性差。

2.3类比内存

可以将内存比作一栋大楼,内存单元格类似于大楼中的小房间,而每个内存单元格的地址就相当于每个小房间的房间号。内存中存储的内容(数据)可以看作是住在房间中的人。
虽然可以使用类比来帮助解释某些存储器的工作原理,但不同存储器之间的差异需要加以考虑。例如,内存的类比可以使用房间和房间号来解释,但它不适用于闪存中的数据写入和擦除操作。类似地,硬盘、SSD、光盘等存储器类型也有各自独特的特征,类比方法需要根据其特点进行调整。

2.4内存访问方式

内存通过CPU的地址总线来寻址定位,然后通过CPU数据总线来读写。
CPU的地址总线的位数是CPU设计时确定的,因此一款CPU所能寻址的范围是一定的,而内存是需要占用CPU的寻址空间的。
内存与CPU的这种总线式连接方式是一种直接连接,优点是效率高、访问快,缺点是资源有限,扩展性差。

2.5内存管理方法

内存用来存储数据,数据在程序中表现为全局变量、局部变量等(在gcc中,其实常量也是存储在内存中的)(大部分单片机中,常量是存储在flash中的,也就是在代码段)。

如果内存管理不善,可能会造成程序运行消耗过多的内存,这样迟早内存都被程序消耗殆尽,当没有内存可用时程序就会崩溃。所以内存对程序来说是一种资源,所以管理内存对程序来说是一个重要技术和话题。

2.5.1操作系统管理

操作系统给提供了内存管理的一些接口,我们只需要用API即可管理内存。譬如在C语言中使用malloc、free这些接口来管理内存。

2.5.2裸机程序管理

而在没有操作系统(其实就是裸机程序)中,程序需要直接操作内存,编程者需要自己计算内存的使用和安排。如果编程者不小心把内存用错了,错误结果需要自己承担。

三、闪存

3.1 NOR FLASH和NAND FLASH

  • 存储结构:
    NOR Flash的存储单元是通过交织的MOSFET和存储电容器构成的,而NAND Flash的存储单元是通过多级交织的MOSFET构成的。这种不同的结构导致了它们在擦除和写入操作上的差异。
  • 访问方式:
    NOR Flash支持随机读取,可以直接通过地址来读取特定的字节或页。相比之下,NAND Flash不支持随机读取,只能顺序读取整个页。这意味着NOR Flash具有较低的读取延迟,并且可以像传统的存储器一样直接访问数据,而NAND Flash则需要按顺序读取数据。
  • 擦写操作:
    对于擦除操作,NOR Flash可以逐个擦除存储单元,通常以字节或页为单位。而NAND Flash以块为单位进行擦除,通常块的大小范围在512KB至2MB之间。由于NAND Flash的较大块擦除操作,导致在进行写入操作之前需要将整个块擦除,这会带来额外的时间和写入压力。
  • 存储密度和成本:
    由于NAND Flash的多级交织结构和按块擦写的特点,它具有更高的存储密度和较低的价格。相比之下,NOR Flash的交织结构和按页擦写的方式导致存储密度较低,价格相对更高。
  • 应用场景:
    由于其较低的读取延迟和随机读取的特性,NOR Flash通常用于存储程序代码、引导加载器和固件升级等需要快速读取和执行的应用中。而NAND Flash由于较高的存储密度和较快的写入速度,适用于存储大容量数据,如闪存存储卡、USB闪存驱动器、固态硬盘(SSD)和移动设备的主要存储器。
    1、NOR的读速度比NAND稍快一些;
    2、NAND的写入速度比NOR快很多;
    3、NAND的擦除速度远比NOR快;
    4、NAND的擦除单元更小,相应的擦除电路更加简单;
    5、NAND的实际应用方式要比NOR复杂的多;
    6、NOR可以直接使用,并在上面直接运行代码,而NAND需要I/O接口,因此使用时需要驱动;

3.2 2D FLASH和3D NAND FLASH

3.2.1 2D FLASH

概念:2D NAND Flash是最早的NAND Flash技术,也被称为Planar NAND Flash或Planar Cell NAND Flash。它采用了二维的布局结构,在一个平面上排列存储单元。每个存储单元通常由一个浮动栅和一个控制栅组成,可以存储多个位数据。
特性:2D NAND Flash的存储密度和性能较低,因为它的单层结构限制了每个存储单元的数目。随着存储需求的增加,2D NAND Flash逐渐无法满足高容量和高速度的要求。

3.2.2 3D NAND Flash

概念:3D NAND Flash是新一代的NAND Flash技术,也被称为Vertical NAND Flash或Vertical Cell NAND Flash。3D NAND Flash采用垂直堆叠的结构,使每个芯片内的存储单元层数大大增加。
特性:通过在垂直方向上堆叠多层存储单元,3D NAND Flash大大提高了存储密度,同时也提升了写入和擦除速度。3D NAND Flash技术能够实现更大容量和更高性能的存储器设备,如高容量的固态硬盘。

3.2.3 总结

2D NAND Flash和3D NAND Flash是两种不同的闪存存储器技术,用于制造NAND Flash芯片。2D NAND Flash是较旧的技术,采用二维平面布局结构,存储密度和性能有限。而3D NAND Flash是较新的技术,采用垂直堆叠结构,具有更高的存储密度和性能,能够满足日益增长的存储需求。

3.3 采用闪存颗粒的存储器

消费机存储器:SSD 主要作用是取代 PC/服务器上的 HDD 硬盘;
嵌入式存储:eMMC 和 UFS 都是面向移动端 Flash 的标准。主要应用于例如手机、手表、汽车等嵌入式终端设备。

疑问1:存储器和寄存器的关系?

寄存器是一种特殊的存储器,虽然同样具有存储数据的功能,特殊之处在于寄存器是一种位于CPU内部的高速存储器,用于暂存和执行指令所需要的数据。

总结

(1)存储器按照其特性进行分类,内存RAM用于临时存储数据和程序运行,ROM用于存储只读信息,而闪存用于长期存储和可擦写的数据。这些存储器在计算机系统中有着不同的用途和应用场景。
(2)闪存是一种兼具了RAM和ROM特点的存储器,在许多嵌入式系统和移动设备中发挥着关键的作用。
(3)RAM和ROM的区别:
ROM用来存储用户写好、编译好的程序,运行时CPU直接从ROM中读取一条一条的指令来运行,指令运行过程中产生的临时数据放在RAM中。因此,基本可以理解为:ROM是单片机用来放程序,RAM用来放数据。

【SoC基础】从[存储器]到[内存]再到[闪存],一次性解释清楚!_第3张图片

你可能感兴趣的:(#,SoC,嵌入式硬件)