- 一、提要
- 二、计算机的存储结构
- 三、高速缓存:cache memory
- 四、主存:Primary memory
- 4.1 RAM
- 4.11 SRAM 和 DRAM的概念
- 4.12 SRAM 和 DRAM的应用场景
- 4.2 ROM
- 4.21 PROM
- 4.22 EPROM
- ▶ EEPROM
- ▶ UVEPROM
- 五、辅助存储器:secondary memory
- 六、单片机的存储
一、提要
昨天晚上在JD搜了下SSD,居然都这么便宜了,价格几乎是几年前的1/2、1/3了。
着看看着,脑海中浮现出一些名词:DAM、SAM、EEPRAM、FLASH等等,仿佛又回到了当年的课堂。
二、计算机的存储结构
简单来说是这样:
内存可以分为高速缓存和主存(也称为主存储器),不仅仅是我们常说的内存条。
高速缓存(Cache
)是位于CPU内部或靠近CPU的一种特殊类型的内存。它用于临时存储CPU最频繁访问的数据和指令,以提供快速访问和执行。高速缓存的目的是通过预先存储常用的数据,以减少CPU等待主存储器访问的时间,从而提高计算机系统的性能。总之就是很快。
高速缓存通常分为多个层级,如L1、L2和L3缓存。L1缓存是最接近CPU核心的、最快速的缓存层级,L2缓存位于L1缓存之外,而L3缓存则位于更远离CPU的位置,通常是多个CPU核心共享的。不同层级的高速缓存具有不同的容量和访问延迟。
主存(Main/primary Memory
)是计算机系统中用于存储程序、数据和操作系统的内部存储器。它是计算机系统的主要存储区域,用于临时存储正在执行的程序和数据。主存是相对于高速缓存而言的,其容量通常比高速缓存大得多,但访问速度较慢。
主存储器与高速缓存之间存在访问延迟和容量的差异。高速缓存是为了提供更快的数据访问,而主存则提供了更大的存储容量。CPU在需要数据时首先从高速缓存中查找,如果数据不在高速缓存中,则会从主存中获取。高速缓存和主存之间的数据传输通过总线进行。
Secondary memory
(辅助存储器)是计算机系统中用于持久存储数据和程序的一种存储设备。与主存储器(主存)相比,辅助存储器的容量更大,但访问速度较慢。辅助存储器通常用于长期存储和持久保存数据,即使在断电或重新启动计算机后,存储在辅助存储器中的数据仍然保持不变。
常见的辅助存储器设备包括硬盘驱动器(Hard Disk Drive,HDD)、固态硬盘(Solid State
Drive,SSD)、光盘、闪存驱动器(Flash Drive)、磁带等。
三、高速缓存:cache memory
根据与处理器的接近程度,我们可以将缓存分为三种类型。
- L1 缓存– L1 缓存通常嵌入在处理器中。因此,它非常接近处理器。
- L2 缓存– L2 缓存比 L1 更大且更慢。L2 要么在处理器中实现,要么在单独的芯片上实现。处理器可以直接访问二级缓存。
- L3 缓存——L3 的实现是为了提高上述两种缓存的性能。L3缓存存在于多核处理器之外,处理器的每个核心都可以共享L3缓存。它当然比 L1 和 L2 慢,但比主存快。
缓存的优缺点
- 优点
- 处理器可以比主内存更快地访问高速缓存的内容。
- 缓存还提高了处理器的性能。
- 缺点
- 与主存储器相比,高速缓冲存储器尺寸较小且价格昂贵。
- 它是一个易失性存储器,因为一旦电源关闭,数据就会消失。
可以看一下各级缓存的速度:
高速缓存大小范围:
L1缓存:
L1指令缓存(L1 Instruction Cache)通常在4 KB到128 KB之间。 L1数据缓存(L1 Data Cache)通常在8 KB到256 KB之间。
L2缓存:
L2缓存通常在128 KB到8 MB之间。
L3缓存:
L3缓存通常在4 MB到64 MB之间。
缓存这么快,为什么不把容量设计的大大的呢?
前面的速度图里面,可以看到,现在主存的速度一般在5000MB/s到10GB/s,但L1缓存速度高达 百G/s。很明显,cache的价格很高,当然了,不只是价格原因:
- 成本:高速缓存是一种昂贵的存储器,其制造和维护成本相对较高。增加缓存的容量会导致更多的硬件资源和成本投入,因此在设计中需要权衡成本与性能之间的平衡。
- 物理空间限制:高速缓存需要位于CPU芯片上或靠近CPU的位置,以便能够提供快速访问。然而,物理空间在芯片上是有限的。增加缓存的容量可能需要更多的芯片空间,而这可能会对其他重要的组件和功能造成限制。
- 命中率和成本效益:增加缓存的容量并不总是会带来线性的性能提升。高速缓存的作用是通过存储最常访问的数据来提高命中率,以减少对主存的访问。然而,数据的局部性原理(Locality Principle)指出,大部分程序只是访问其中一小部分数据,而不是整个内存空间。因此,增加缓存容量超过一定阈值可能并不会显著提高命中率,从而带来成本效益的下降。
- 访问延迟:较大容量的缓存可能需要更长的访问延迟,因为更多的数据需要在缓存层级之间传输。尽管缓存的访问速度比主存快得多,但增加容量会引入更多的访问路径和传输时间,从而增加整体的访问延迟。
四、主存:Primary memory
Primary memory
(主存储器)是计算机系统中的主要存储器,用于存储正在执行的程序、数据和操作系统。它是计算机的内部存储器,直接与CPU(中央处理器)相连,用于快速的读取和写入操作。
其中RAM就是我们最常见的了,比如你电脑的内存条。
4.1 RAM
RAM(随机存取存储器)是计算机主存储器的一部分,可由CPU直接访问。RAM用于读取和写入由CPU随机访问的数据。RAM 本质上是易失性的,这意味着如果断电,存储的信息就会丢失(说的是DRAM)。RAM用于存储CPU当前正在处理的数据。大多数可修改的程序和数据都存储在 RAM 中。
4.11 SRAM 和 DRAM的概念
SRAM(Static
Random Access Memory)和DRAM(Dynamic
Random Access Memory)都是常见的计算机内存类型,它们在构造、工作原理和性能特点上有所区别。
SRAM:
- 构造:SRAM使用触发器(flip-flop)构建存储单元,每个存储单元由多个晶体管组成。它们的构造比较复杂,因此每个存储单元需要更多的晶体管,导致SRAM的密度较低。
- 工作原理:SRAM的存储单元通过反馈回路来保持数据状态,因此在未被刷新的情况下,数据可以持续存储。这也是SRAM的一个重要特点,使得它的访问速度快。
- 性能特点:SRAM的访问速度快、读写延迟低,可以实现随机访问,因此适用于对速度要求较高的任务。它的耗电量较高,相对较昂贵,但由于不需要定期刷新,SRAM在电源断电或重新启动后能够保持数据的完整性。
DRAM:
- 构造:DRAM使用电容器和晶体管构成存储单元,每个存储单元只需要一个电容器和一个晶体管,因此DRAM的存储密度较高。
- 工作原理:DRAM的电容器存储数据,但电容器的电荷会逐渐泄漏,因此数据需要定期刷新。为了刷新数据,DRAM需要周期性地进行读取和写入操作。
- 性能特点:DRAM的访问速度较慢,因为每次访问都需要读取和写入操作,而且需要进行刷新。然而,DRAM具有较低的功耗和相对较低的成本,因此在大容量内存需求的场景下被广泛使用。
综合比较:
- SRAM比DRAM更快、更可靠,但更昂贵、容量较小。
- DRAM比SRAM更便宜、容量更大,但速度较慢、需要定期刷新。
4.12 SRAM 和 DRAM的应用场景
SRAM(静态随机存取存储器)由于其快速的访问速度和不需要刷新的特性,在许多应用领域中得到广泛应用:
- 缓存存储器(Cache Memory):SRAM常用于计算机系统的缓存层级,包括L1、L2和L3缓存。缓存存储器用于暂时存储CPU最常访问的数据,以提供快速的数据访问速度,从而加快计算机的运行速度。
- 寄存器文件(Register Files):SRAM用于存储处理器内部的寄存器文件。寄存器文件用于存储指令和数据操作的临时结果,供处理器进行高速计算和操作。
- 图形和图像处理器(Graphics and Image Processors):SRAM被广泛应用于图形处理器和图像处理器,用于存储图像数据、图形纹理和其他计算所需的临时数据。
- 交换和路由设备(Switches and Routers):SRAM用于存储路由表和缓冲区,以帮助实现数据包的路由和转发。
- 嵌入式系统(Embedded Systems):由于SRAM的快速访问和低功耗特性,它经常用于嵌入式系统中,如智能手机、平板电脑、数字摄像机、网络设备等。
SRAM主要用于需要快速访问和持久存储数据的场景,特别适用于缓存存储器、寄存器文件和对数据响应速度要求高的应用。然而,由于SRAM的成本较高和容量较小,它通常被用作辅助存储器,而不是主要的系统内存。
DRAM:
- 主存储器(Main Memory):DRAM是计算机系统中主要的内存类型,用于存储运行中的程序和数据。它提供了大容量的存储空间,可以满足计算机系统对临时存储和访问数据的需求。
- 个人电脑(Personal Computers):DRAM被广泛应用于个人电脑中作为主要的内存。它提供了足够的容量和速度,以支持操作系统、应用程序和用户数据的加载和运行。
- 服务器(Servers):DRAM用于服务器系统中作为主存储器,以满足多用户和多任务的需求。服务器通常需要大容量的内存来处理复杂的计算任务和大规模的数据操作。
- 数据中心(Data Centers):数据中心使用DRAM作为主要的内存类型,用于存储和处理大规模的数据。数据中心通常需要高容量和高性能的内存来支持各种数据分析、处理和存储任务。
- 移动设备(Mobile Devices):虽然移动设备的内存容量相对较小,但DRAM仍然被广泛用于智能手机、平板电脑和其他移动设备中。它用于存储运行的应用程序、临时数据和用户数据。
- 嵌入式系统(Embedded Systems):DRAM也在许多嵌入式系统中使用,例如工业控制系统、汽车电子、物联网设备等。它提供了临时存储和数据交换的功能。
4.2 ROM
ROM(只读存储器)是一种存储数据的电子存储器类型,其中存储的数据在断电或重新启动后保持不变。ROM被称为"只读",是因为存储在其中的数据无法被常规操作修改或擦除。
ROM的数据是在制造过程中被编程的,通常由芯片制造商或设备制造商在生产阶段完成。这些数据包括预先存储的指令、固件、引导程序、配置信息、固定数据等。ROM的内容在使用过程中无法修改,因此它被用于存储不可更改或固定的数据。
以前常用的51单片机,烧录程序,就是把程序写入到ROM中。
有几种常见类型的ROM:
- Mask ROM(掩模只读存储器):Mask ROM是一种最早的ROM类型。在制造过程中,ROM芯片的数据被物理地编码到芯片内部的电路中。一旦编程完成,数据将无法修改或擦除。使用很少了,不介绍。
PROM
(可编程只读存储器):PROM允许用户编程数据到ROM芯片中,但一旦编程完成,数据就无法再次修改或擦除。编程通常通过使用特定的设备或编程器进行。EPROM
(可擦除可编程只读存储器):EPROM与PROM类似,但它具有可擦除的特性。它允许多次编程和擦除数据,通常通过使用紫外线擦除器来擦除数据。擦除后,新的数据可以重新编程到EPROM中。
4.21 PROM
PROM(可编程只读存储器)是一种只读存储器类型,可以由用户编程数据。它允许将数据一次性编程到芯片中,之后数据无法再次修改或擦除。下面是对PROM的详细介绍:
- 工作原理:PROM使用一种特殊的存储单元,称为可编程存储单元(fuse或antifuse)。这些存储单元中的电路元件可以被电气信号编程以表示二进制数据的位。编程过程是非可逆的,一旦编程完成,数据就无法再次更改或擦除。
- 编程过程:编程PROM通常需要使用特定的设备或编程器。在编程过程中,电气信号被应用到PROM的特定位置,以改变存储单元的状态。编程后,存储单元的状态会被固定下来,以表示编程的数据。
- 数据存储:PROM的数据存储在每个存储单元的编程状态中。存储单元的状态可以是导通(1)或不导通(0),表示二进制数据的位。编程过程中,用户可以选择将存储单元设置为1或0,以编程相应的数据。
- 不可擦除性:与EPROM和EEPROM不同,PROM无法擦除已编程的数据。一旦编程完成,数据就无法再次修改或擦除。这使得PROM的数据是固定的,无法在使用过程中进行更新或修改。
- 应用:PROM在过去广泛用于存储固定的数据,例如引导程序、配置信息、固件等。然而,由于其不可擦除的特性,PROM的应用范围相对受限。现代技术中,可编程ROM的更高级版本,如EPROM和EEPROM,更常用于满足灵活性和可更新性的需求。
4.22 EPROM
EPROM(可擦除可编程只读存储器)是一种只读存储器类型,具有可擦除和可编程的特性。它允许用户多次编程和擦除数据,以更新或修改存储的内容。下面是对EPROM的详细介绍:
- 工作原理:EPROM使用一种特殊的存储单元,称为浮栅(floating gate)。浮栅中的电子可以被紫外线辐射(UV)或电子激励(电子注入)来改变电子的能量状态。这个状态的变化会影响存储单元的导电性,从而表示二进制数据的位。
- 编程过程:EPROM的编程是通过将电荷注入浮栅中来实现的。编程时,电压被应用到存储单元,使得电子被注入到浮栅中,改变其能量状态。存储单元的状态可以是导通(1)或不导通(0),表示二进制数据的位。
- 擦除过程:EPROM的擦除是将浮栅中的电荷移除,恢复存储单元的初始状态。擦除通常通过暴露EPROM芯片到紫外线光源下进行,以使浮栅中的电子能量状态返回到未编程状态。擦除后,存储单元可以重新编程以存储新的数据。
- 可擦除性:与PROM不同,EPROM具有可擦除的特性。它可以通过紫外线擦除器来擦除数据,使存储单元返回到未编程状态。擦除过程是全局性的,即整个EPROM芯片的数据都会被擦除。
- 多次编程和擦除:EPROM允许多次编程和擦除操作,这使得数据可以被更新和修改。在EPROM编程时,只需要选择要编程的存储单元,并将相应的数据编程到这些单元中。擦除时,整个芯片的数据都会被擦除。
- 应用:EPROM在过去广泛用于存储固件、引导程序、配置信息等需要更新的数据。然而,由于EPROM的擦除过程需要紫外线擦除器,并且擦除是全局性的,使用EPROM的灵活性有限。现代技术中,更常用的是EEPROM和闪存等可擦除存储器类型,它们具有更高的擦除和编程灵活性。
EPROM虽然具有可擦除的特性,但其擦除和编程过程都是相对较慢的。此外,EPROM芯片的寿命也有限,擦除和编程次数越多,芯片的可靠性和性能可能会下降。因此,在使用EPROM时需要注意擦除和编程的次数,以保证数据的可靠性和持久性。
▶ EEPROM
EEPROM(Electrically Erasable
Programmable Read-Only Memory)是一种可擦写可编程只读存储器。与传统的ROM类型不同,EEPROM具有可编程和可擦写的特性,可以在电子设备中存储和更新数据。以下是对EEPROM的详细介绍:
- 存储和擦写:EEPROM可以像ROM一样存储数据,但它还具有擦写的能力。擦写是指可以将存储在EEPROM中的数据擦除,并写入新的数据。与EPROM需要使用紫外线擦除器不同,EEPROM可以通过电子擦除操作实现,无需特殊设备。
- 工作原理:EEPROM中的存储单元由浮栅(floating gate)组成,类似于EPROM。然而,EEPROM具有控制门(control gate),可以在正常工作时改变浮栅中的电荷状态。这使得数据可以被编程到EEPROM中,并在需要时被擦除和重新编程。
- 擦写操作:EEPROM的擦写操作通常通过电子隧道效应来实现。在擦写操作中,通过应用适当的电压和电流,电子可以从浮栅隧穿到擦除门(erase gate),从而将浮栅中的电荷移除,实现数据的擦除。
- 编程操作:EEPROM的编程操作类似于擦写操作,但是编程时会将电子注入浮栅中,以改变其电荷状态。这种改变会影响存储单元的导电性,从而表示存储的数据。
- 数据保持性:与RAM不同,EEPROM是非易失性存储器,意味着它可以在断电情况下保持存储的数据。即使没有外部电源供应,EEPROM中的数据仍然会保持。
- 应用:EEPROM常用于存储需要在设备使用过程中更新或修改的数据,如配置信息、用户设置、校准数据等。它在许多电子设备中得到广泛应用,例如计算机、手机、电视、汽车电子系统等。
EEPROM的擦写和编程操作相对较慢,相比于RAM和高速缓存等存储器,EEPROM的访问速度较慢。此外,EEPROM具有一定的擦写寿命,即可以进行有限次数的擦写操作,超过寿命后可能会导致存储单元的损坏。因此,在使用EEPROM时需要注意擦写次数的限制和数据的可靠性。
比如ROM容量较小的51单片机就是用的EEPROM。
▶ UVEPROM
就是前面说的使用紫外线擦除的EROM。
五、辅助存储器:secondary memory
Secondary memory
(辅助存储器)是计算机系统中用于持久存储数据和程序的一种存储设备。与主存储器(主存)相比,辅助存储器的容量更大,但访问速度较慢。辅助存储器通常用于长期存储和持久保存数据,即使在断电或重新启动计算机后,存储在辅助存储器中的数据仍然保持不变。
常见的辅助存储器设备包括硬盘驱动器(Hard Disk Drive,HDD)、固态硬盘(Solid State
Drive,SSD)、光盘、闪存驱动器(Flash Drive)、磁带等。
介绍一下最常见的 HDD、SSD和Flash:
-
HDD(
Hard Disk Drive
):HDD是一种机械式存储设备,使用旋转的磁盘和移动的读写磁头来存储和检索数据。HDD内部包含一个或多个磁性盘片,数据通过读写磁头在盘片上进行读写。HDD的工作原理是通过磁性材料在盘片上创建磁场,用于表示数据的位。HDD具有较大的存储容量、相对较低的成本和广泛的应用领域,但其速度较慢、存在机械部件和易受冲击和震动的影响。
-
SSD(
Solid State Drive
):SSD是一种基于闪存存储芯片的存储设备,不含任何机械部件。SSD使用闪存芯片来存储数据,这些芯片具有非易失性存储特性,可以在断电情况下保持数据。SSD的工作原理是通过电子门和电荷存储单元(如NAND闪存)来表示数据的位。SSD具有较快的读写速度、较低的访问延迟和较高的耐冲击性。它们广泛应用于个人电脑、笔记本电脑、服务器和移动设备等领域。
-
Flash 存储器:Flash存储器是一种非易失性存储器技术,用于数据存储和传输。它是SSD和其他存储设备中使用的核心技术之一。Flash存储器通过电子门和电荷存储单元来存储数据,类似于SSD。Flash存储器具有较快的读取速度、较低的功耗、较高的可靠性和耐久性。它被广泛应用于闪存驱动器(SSD)、USB闪存驱动器、闪存卡、存储卡、手机和其他便携设备中。
以前买的电脑都是SSD+HDD的组合,而现在已经完全是SSD了,而且SSD由于技术的提升,价格已经大幅下降了(当然了也有无良商家)。
六、单片机的存储
简单说一下。
51单片机有几种存储介质。它有一个内部RAM,每种51单片机都应该有,共256字节。此外,它还有一个程序存储器(EEPROM),片内外统一编址,共64KB。此外,如果内部数据存储器不够用,可以外接数据存储器。8051单片机最大可以外接容量为64KB的数据存储器(RAM)。
STM32单片机也有几种存储介质。它有一个内置的Flash
,一般我们使用JTAG
或者SWD
模式下载程序时,就是下载到这个里面,重启后也直接从这启动程序,可以理解为电脑中的软件安装在这里。
此外,它还有一个内置的SRAM
区,可以理解为这个是电脑的内存条。STM32单片机还有一个系统存储器,这是一块特定的区域,只读ROM
存储器,STM32厂家在这个区域内部预置了一段BootLoader
,也就是我们常说的ISP程序,出厂后无法修改。
把 永 远 爱 你 写 进 诗 的 结 尾 ~