《主存储器是什么》一节讲到,计算机中的主存储器分为 RAM 和 ROM 两种类型,那么,RAM 到底是什么呢?
RAM 是 Random Access Memory 的缩写,中文译为随机存取存储器,它通常以一个单独的存储芯片,或者几个存储芯片集成在一个电路板上(例如内存条)的形式,安装在计算机的主板上。
图 1 内存条(集成多个 RAM 芯片的电路板)
对于个人计算机来说,我们平常所说的计算机内存,指的仅是内存条的容量(并非所有内部存储器容量的加和),而 RAM 习惯上指代的就是计算机内存。
RAM 属于计算机的内部存储器,即 CPU 可以直接访问并使用 RAM 的存储空间,比如将一些数据、指令或者运行结果存储到 RAM 里。而对于存储的数据,RAM 不仅允许计算机读取,还支持计算机对数据做修改或者写入新的数据。
从另一个角度看,RAM 还是一个易失性存储器,它无法永久地存储数据或指令。当您启动计算机(或者打开某一个应用程序)后,原本位于外部存储器的操作系统(或者应用程序)会加载到 RAM 中,CPU 会利用这些数据执行任务,而一旦计算机关闭或者突然断电,位于 RAM 的数据就会全部丢失。
将数据由外部存储器加载到 RAM 中,可以大大提高计算机的整体性能。一方面,RAM 的读写效率本身就比外部存储器(如硬盘、U盘、光盘等)高;另一方面, CPU 是无法直接访问外部存储器的,如果要使用其中的数据,则必须先拷贝到 RAM 中。
如果将 RAM 中存储的数据看做是我们的短期记忆,那么外部存储器中的数据就可以看作是我们的长期记忆。短期记忆仅能存留较短的时间,而长期记忆可以长期保留,必要时我们还可以利用长期记忆更新短期记忆。计算机使用 RAM 的过程也是如此,当 RAM 被填满时,计算机会用从外部存储器读取到的新数据覆盖掉 RAM 中不紧要的旧数据。
由此不难理解,RAM 的数量和存储容量会直接影响计算机的性能。也就是说,如果计算机没有足够的 RAM 存储空间来支撑它运行操作系统和应用程序,那么计算机的性能肯定会下降;反之,计算机可用的 RAM 空间越多,它的运行效率就越高。
RAM的类型
根据实现存储机制的不同,RAM 又分为 SRAM 和 DRAM 两类。值得一提得是,这两种 RAM 都属于易失性存储器,当计算机关闭时,它们存储的数据都会全部丢失。
1) SRAM
SRAM 全称 Static Random-Access Memory,中文译为静态随机存取存储器。所谓“静态”,即只要保持通电(计算机处于开启状态),SRAM 就可以保证每个比特位的数值(0 或者 1)不发生变化,从而一直存储这些数据。
SRAM 主要由晶体管构成,SRAM 中的每 1 个比特位都通常要用 6 个 CMOS 晶体管(再配以其它一些零件,但没有电容器)组合实现。这样的六晶体管配置,使得 SRAM 具备以下的特点:
和 DRAM 相比,SRAM 存储 1 比特位所需的部件更多,因此它的体积更大。和具备等量存储空间的 DRAM 相比,SRAM 需要占用更大的电路板空间;而同体积的 DRAM 和 SRAM 相比,SRAM 提供的内存空间也就更少。
同样和 DRAM 比,SRAM 读写效率更高,因为 SRAM 支持立即对每个比特位做读、写操作,而无需等待电容器充满电或者完全释放后再做对应的操作。同时,CPU 访问 SRAM 的时间更快(可以低至 10 纳秒),而且两次访问操作可以连续执行,中间不需要暂停。
基于这样的特性,SRAM 通常用来做计算机的寄存器、高速缓存以及显卡上的帧缓存区。
2) DRAM
DRAM,全称 Dynamic Random Access Memory,中文译为动态随机存取存储器。
该存储器本质是一个集成电路,内部包含数百万个尺寸非常小的晶体管和电容器。在电路板上,每个晶体管都和一个电容器对齐摆放,整体构成 1 个比特位,其中电容器充满电表示存储 1,无电表示存储 0;晶体管则充当开关的角色,它允许电路板读取或者修改当前电容器的状态。
DRAM 这种组织结构存在的最大问题是,即便晶体管处于关闭状态,它也会存在漏电的现象,从而导致相连电容器中的电量减少,存储的数据也相继丢失。因此,DRAM 必须定时刷新各电容器中的电量,才能保证存储的数据不会丢失,这也是它称为“动态 RAM”的原因。
电容器的刷新,通常由专门的刷新电路完成,该电路每秒会对电容器进行数百次的刷新。
读者可以将构成 DRAM 的电容器视为一个能存储电量的盒子,充满电表示存储 1,空盒子表示存储 0。盒子最大的缺点就是会漏电,往往只需几毫秒,盒子中的电就会全部漏光。因此要想使 DRAM 正常工作,CPU 或者存储控制器必须在电容器放完电之前再将其充满电,具体的实现方法是:由 CPU 或者存储控制器先读取 DRAM 中存储的数据,然后再将数据写回到 DRAM 中,整个过程每秒会自动持续数千次。
相比 SRAM,DRAM 具有以下的优点和不足:
相比 SRAM 的六晶体管配置,DRAM 只需“1 个晶体管+1 个电容器”,因此组成结构更加简单。这也就意味着,同体积的 SRAM 和 DRAM,DRAM 拥有更大的存储容量;
CPU 访问 DRAM 的效率不如 SRAM,访问一次大约需要 60 纳秒;
由于 DRAM 必须定义进行刷新,因此耗电量更多。
为了方便读者更好地对比 SRAM 和 DRAM,下表对它们之间的区别做了一个简单的总结。
SRAM | DRAM |
---|---|
静态存取存储器,不需要定时做刷新操作。 | 动态存取存储器,需要定时刷新各电容器的电量,否则会丢失存储的数据。 |
每个比特位主要由 6 个晶体管构成,和同体积的 DRAM 相比,每组比特位部件占用的芯片空间更多,芯片总的存储容量更小。 | 每个比特位主要由 1 个晶体管和 1 个电容器构成。和同体积的 SRAM 相比,每组比特位部件占用更少的芯片空间,芯片总的存储容量更大。 |
比 DRAM 更贵,位于 CPU 内部,或者 CPU 和主存储器之间。 | 比 SRAM 更便宜,大部分位于计算机主板上。 |
CPU 访问 SRAM 的效率更高,访问时间较短(10 纳秒)。 | CPU 访问效率更低,访问时间较长(60 纳秒)。 |
SRAM 的读写效率更高,主要作用寄存器或者高速缓存。 | DRAM 主要位于主板,制造成本低,需要占用的芯片空间更小。 |
SRAM 可以连续被访问,中间不需要暂停。 | DRAM 连续被访问所需要的时间,大于 SRAM 所需的时间。 |
SRAM 中的元器件多,集成度低,运行功率大。 | DRAM 中的元器件数量较少,运行功率小。 |
应用实例:寄存器、L2 或者 L3 高速缓存。 | 应用实例:手机或者笔记本电脑的内存(规格通常为 DDR3、DDR4)。 |
SRAM 的存储容量通常位于 1MB~16MB。 | 智能手机端 DRAM 类型内存的存储容量通常为 1GB~3GB,笔记本电脑 DRAM 类型内存的存储容量通常为 4GB~16GB。 |