不堪回首的“内存”
就像小姐一样,内存这个词如今已经被用滥了。比如ROM、RAM、SRAM、DRAM、Cache都叫内存,哪个才是我们真正要找的王子呢?
一、混乱的内存
可以说,内存的私生活非常紊乱,这年头能存点儿东西的差不多都能叫内存。
大体上,内存分为广义上的内存和狭义上的内存。
1.1 广义内存
广义内存包括以下类型:
- 只读存储器(ROM):用于保存固定不变的数据,数据是预先写入的,在断电后不会丢失。通常用来存储启动程序和系统配置信息,一般位于在主板上的BIOS芯片中。BIOS指基本输入/输出系统,当启动计算机时,它会首先运行,执行硬件初始化和启动过程。
- 随机访问存储器(RAM):用于临时存储正在运行的程序和数据,断电后数据会丢失。RAM位于计算机的主板上,以内存条的形式存在。RAM的全称为random access memory。
- 高速缓存(Cache):集成在CPU内部,位于寄存器和主存储器之间,用于缓存CPU频繁访问的数据和指令,访问速度比RAM更快。
这些之所以都能叫内存,可能是相对于硬盘来说,都有一个优势,就是快。
1.2 狭义内存
单纯名字看,内存嘛,就是内部存储器呗,它是一个与外部存储器相对应的概念。
但到底啥是内,啥是外呢?也没有一个统一的标准。
一般来讲,所谓的内,就是计算机要完成它最核心的计算工作离不开的范围。要计算你总得有处理器(CPU)器吧?处理器只会算。但用什么方法算、算什么呢?这就必须得有数据,就得有存储器存这些信息,这就是内的范围。那么直接和CPU打交道,给它提供计算数据的存储器就是内部存储器,一般就是指内存;不和CPU直接打交道的,需要通过内部存储器作为信息桥梁的,就是外部存储器,一般就是硬盘。
狭义的内存,也就是我们通常所说的“内存”,是指内存条中的内存。本节下面谈到的内存都指内存条中的内存。
跟硬盘那种“慢性子”不同,内存可是个“急性子”,读写速度嗖嗖的。它主要由一系列的存储单元组成,每个单元就像一个小盒子,里面可以放一个数字(通常是0或1,也就是二进制),这些数字组合起来,就成了咱们的程序和数据。
内存为什么这么快?
离大脑近。内存条安装在靠近CPU的插槽上,数据传输距离短,自然就快。
既然内存这么快,那还要硬盘干嘛?
因为内存有个硬伤,只能临时存储,它就像咱家的冰箱,一断电就啥用都没有了。
电脑就像个工厂,CPU是厂长,内存是厂里的“仓库”。工厂要生产(运行程序),就得从仓库里拿材料(读取数据),用完了再放回去(写入数据)。要是仓库太小,放不下多少材料,厂长就得频繁跑到外面进货(从硬盘调取数据),一来回可能就十天半拉月,这不就慢了吗?
京东为啥这么快,就因为人家的仓库离你比较近!
1.2 手机内存
1.2.1 两种手机内存
随便找个电商网站,打开手机的商品介绍页面,都能看到类以下面的图:
这里面有两个内存:运行内存、机身内存。
也有可能你看到的是这个画面:
从图中能看出,运行内存=RAM,机身内存=ROM。
运行内存=RAM没什么好说的,和电脑中内存条的内存一个意思,都是临时存储当前正在运行的程序和数据;关键是这个神奇的“机身内存=ROM”,从图中看出这玩艺容量比较大,咱们平时往手机里存的各种东西都应该保存在这里,故而它就相当于电脑的硬盘。ROM咱们前面说了,它是只读存储器,英文为Read-Only Memory。手机里的ROM却可以往里面写东西,神不神奇?
老金猜想,手机中之所以起ROM这个不伦不类的名,多半是因为这块存储器有一块不可改写的区域,这块区域用来存放系统文件,用户不能修改。正是有了这块区域,手机厂家才可以肆无忌惮地往里面预装各种“流氓”软件,你想删也删不掉。我们平时所说的“刷机”,就指重写这块存储区域的数据。
但不管怎么样,管能随便往里存东西的东西叫ROM,老金都觉得太恶心了。
咱们一般人的理解,手机内存越大,就越不卡,现在有了ROM内存,你可以说:我们的手机内存比电脑高多了,128G只能算小儿科,我们已经整到了一个T!
1.2.2 RAM与ROM的区别
鉴于前面所述,关于 RAM与ROM的区别,咱们可以直接给ROM来上一刀。
所谓的只读,所谓的固定不变,所谓的Read-Only,就像太监的宝贝一样,只能用来展览。
所以RAM和ROM就只剩下一个区别:RAM断电后数据会丢失,ROM在断电后数据不会消失(妥妥的硬盘特征)。
1.3 内分泌混乱的RAM
RAM分为静态RAM指SRAM(Static RAM)、动态RAM即DRAM(Dynamic RAM),这两种类型的RAM区别如下:
- 静态随机存取存储器(SRAM):不需要定期刷新就能维持数据。它的优点是速度快、功耗低,但缺点是成本较高,所以通常用作高速缓存,也就是前面说的位于CPU内部的Cache。
- 动态随机存取存储器(DRAM):需要周期性地刷新才能保证数据不会丢失。计算机上的内存条基本上都是DRAM,因为它性价比高。
现在问题来了,我们说内存条中的内存是RAM,而RAM分为SRAM和DRAM。其中,SRAM不是内存条中的内存,而是用作Cache;DRAM才是用于内存条。
这种关系就好像说一个人是男人,但它的一半是女人。
现在问你,内存条中的内存,到底应该是RAM?还是DRAM?
二、各种内存的原理
2.1 DRAM与SRAM
RAM之所以在断电后数据会丢失,是因为RAM是通过电荷来保存数据的。
DRAM(动态RAM)是靠电容存储的电荷来保存数据的,这些电容就是充电电池一样,充满电就代表1,没充电的就代表0。电容就像电池一样,电量会随着时间流失(放电),因此需要定期充电才能保持数据状态。
SRAM(静态RAM)的好处是速度更快、功耗更低,而且不用像动态RAM那样,得不断给电容充电来维持数据。
静态RAM使用触发器来保持其状态,只要在通电的情况下,数据就不会消失,因此不需要定期充电。
不过,静态RAM一般需要6个或者更多的晶体管来存储一个0或1,成本较高,所以通常用作高速缓存(Cache)。而动态RAM只需要一个晶体管和一个电容就可以存储一个0或1,这使得它可以更密集地集成更多位数,所以用于内存条。
2.1 ROM
根据制造工艺、存储方式和可编程性的不同,ROM可以分为以下几种类型:
(1)掩模ROM(Mask ROM):
这是最基本的ROM类型。数据在制造过程中通过掩模技术写入,写入后无法更改。由于其成本较低,适用于大批量生产,常用于存储固定不变的程序或数据。在掩模ROM中,存储单元通过固定连接(如熔丝或二极管)来实现数据的存储。在制造过程中,根据所需存储的数据,通过特定的工艺将熔丝熔断或二极管连接成特定的电路,从而固定存储位的状态。
(2)可编程ROM(PROM,Programmable ROM):
PROM允许在制造后通过特殊设备编程一次。一旦编程完成,数据就不能再被修改。PROM在出厂前可以被编程,适用于需要定制数据但不需要修改的场景。
(3)可擦除可编程ROM(EPROM,Erasable Programmable ROM):
数据可以通过紫外线照射擦除,然后重新写入。EPROM解决了PROM只能写入一次的弊端,但擦除和重写过程相对繁琐。
(4)电可擦除可编程ROM(EEPROM,Electrically Erasable Programmable ROM):
数据可以通过电信号擦除和重新写入,不需要紫外线照射,因此更加便捷,适用于频繁更新数据的场合。
(5)闪存ROM(Flash Memory):
一种非易失性存储器,可以在不消耗电力的情况下保存数据。它可以在通电状态下进行编程和擦除操作,允许在操作中被多次擦除或写入。Flash ROM广泛应用于存储设备、数码相机、智能手机等领域。
EEPROM和Flash ROM的存储单元通过电荷积累来存储数据。当数据被写入时,电荷被注入到存储单元的浮栅中;当数据被读取时,通过检测浮栅中的电荷量来确定存储位的状态。