我找不到任何关于 RAM 究竟为何比磁盘驱动器/固态硬盘快得多的具体信息。RAM 读取和写入数据的方式与永久存储的方式有何不同?它们之间有什么根本区别,导致如此巨大的差异?永久存储与临时存储。慢速读取/写入与快速读取/写入。RAM 中的哪些因素使其速度如此之快
答案1
物理层面发生的事情和 CPU 与影响这些设备速度的设备之间的接口发生的事情之间存在很大差异。
注意:还有其他类型的 RAM(FeRAM、PRAM 等)和其他存储系统,为了讨论的目的,我仅考虑计算机中使用的主要组件。
身体差异
RAM 中使用的“简单”电子状态变化与 HDD 和 SSD 设备中使用的物理世界变化之间存在根本区别。
传统 RAM 使用少量晶体管来保存状态。晶体管本质上是一种快速设备,完全基于电流运行。它们的运行方式与 CPU 相同,但速度也存在缺点,即它们易失性,这意味着如果断电,数据就会丢失。
硬盘驱动器发生的物理变化要大得多。与其改变电子电路的状态,不如说您实际上是在试图强制改变物理介质。对于硬盘驱动器来说,这个过程类似于重新磁化针头,您需要使用磁铁推动原子使其磁场对齐,与纯电子晶体管开关相比,这个过程相对较慢。
固态硬盘 (SSD) 是介于普通 RAM 和硬盘之间的奇怪中间件,它们本质上是一种电子存储设备,但为了写入数据,仍然需要发生物理变化。必须使用更高的电压将电子强制进入它们通常不想进入的区域。这种更高的电压和强制写入操作比简单的晶体管状态变化需要更多的工作。读取也稍微复杂一些,因此读取速度略慢。我写了更多关于闪存工作原理的文章关于这个答案。
接口差异
还需要考虑这些设备的接口性质。存储设备(如 HDD 和 SSD)具有控制器和接口,该接口将地址和数据线组合成基于协议的命令接口。为了做任何事情,我们必须发送一个命令,该命令说明give me the data from block 3192
或write this <data> to block 549,321,974
控制器需要解码然后付诸行动。由于物理 HDD 的旋转特性,当每个数据请求按顺序跟随前一个数据时,它们工作得最好。
SSD 是一种更宽容的设备,并不真正关心数据请求是否按顺序进行,但它们仍然需要设备中的控制器来处理通过“简单”接口发送的命令。
HDD 和 SSD 与其控制器的接口(以及一般的基于现代协议的接口)以“串行”模式运行。这意味着本质上只有一条数据线,必须反复切换才能建立命令。为了传输单个字节的数据,串行线必须切换至少 8 次。除了数据之外,您还需要发送大量“开销”,用于命令字节,告诉控制器您是要求它读取还是写入。
另一方面,RAM 具有与 CPU 的非常宽的接口,并且它还是一个“并行”接口。它具有多个地址线和数据线,并且不需要实际控制器(除了内置在 CPU 中的内存控制器)来处理数据的输入和输出。CPU 将地址线更改为所需的地址线,设置另外几条线以表明它是在读取还是在写入,然后开始通过多条数据线发送数据。这是一个复杂得多的安排,但由于专用的“宽”数据总线,可以一次发送更大的数据块,从而实现更大的批量速度。