RAM 不是随机存取的。它更像是具有二维访问和固有块大小的磁盘。
所以为了给你正确的答案,我将复制维基百科关于随机存取存储器的文章中的一部分:
“随机存取存储器的第一个实用形式是威廉姆斯管
从 1947 年开始。它将数据存储为阴极射线管表面的带电点
. 由于 CRT 的电子束可以按任意顺序读取和写入管上的点,因此内存是随机访问的。“
最后一句话真正回答了手头的问题——“读取和写入……以任何顺序”,而不仅仅是被迫选择矩阵的一个区域并在一个块中读取整个区域(移位寄存器)。或者,更糟糕的是,每次您想要访问一位数据(穿孔磁带)时,都必须从存储介质的开头开始读取其全部内容。
我同意。我看不到任何“随机”和“随机访问”。QUICK Access Memory 不是更准确吗?“CRT 的电子束可以按任何顺序读取和写入管子上的点。” 但是“管子上的斑点”不是随机的。CRT 的电子束不会读写随机点。
一位读者问:“为什么 RAM 被称为随机存取存储器?” – Langa.com
回想一下,早期的计算机使用磁带作为存储器——最初是纸带,后来是磁带。基于磁带的内存是串行的:如果你想在磁带中间有一个字节的内存,你必须从磁带的一端开始,然后绕到你想要的位置。这是笨拙和缓慢的。
在早期的 PC 中,使用盒式录音带作为记忆,在 PC 甚至开始从磁带中检索特定信息之前要经过数十秒的情况并不少见。你会坐在那里玩弄你的拇指,而磁带驱动器会发出呜呜声到你需要的位置。
RAM 让您可以一步直接访问任何内存地址,而无需先通过任何其他地址。这意味着您可以按任何顺序访问内存位置,而不仅仅是以 1-2-3 串行方式访问。
此外,虽然这与随机存取部分无关,但 RAM 是电子的,以纳秒级的速度运行,而不是机械磁带传输的慢得多的速度。结合起来,随机存取和电子速度这两个优势使 RAM比机械串行存储器快多个数量级。根本没有可比性!
ELI5:为什么 RAM 被称为随机存取存储器?: 解释一下
想象一个带有 x 轴和 y 轴的网格。将数据视为可以位于任何 xy 坐标的位。现在,假设处理器可以在该网格中的任何 xy 坐标处放置任何位,然后非常快速地检索它,因为没有需要物理操作(旋转)的物理介质(如硬盘驱动器)以便读。可以从“网格”中的任何位置存储和检索数据这一事实是“随机访问”发挥作用的地方。计算机将数据存储在任何有存储位置的地方……在哪里都无所谓。
只要通电,数据就只存在于 RAM 中。关闭 PC,RAM 中的数据丢失。顺便说一句,这在技术上是 RAM(易失性)之类的“内存”与硬盘驱动器之类的“存储”(相对永久)之间的主要区别……人们经常错误地将存储称为“内存”。
我提到这一点,以防你也在这种误解下工作……无意冒犯,这只是我的一个小烦恼;)
在我被激怒之前,请让我说我知道这个词已经演变为两者都使用,但这并不意味着我必须喜欢它!而且我也知道有相对永久的内存,比如ROM……但通常我听到人们问“内存”,而他们真正的意思是硬盘存储空间。所以请善待。
TL;DR RAM 是一个“网格”,其中数据基本上可以存储为电力并快速检索。
“随机”是指在内存位置之间切换没有惩罚的事实。与其他类型的媒体不同,顺序读取和随机读取之间实际上没有区别。
RAM 可能具有与其他存储器类型类似的“2D”阵列布局,但它没有“顺序”存储器类型(如硬盘、磁带驱动器或 CD ROM)的磁头移动或区域选择缺点。
许多这些计算术语的名称是在磁带驱动器很普遍的时代创造的,甚至使用了纸质穿孔卡片。这些都不能轻易地以随机方式使用。他们通常会强迫您以一种较长的连续方式扫描整个媒体以找到您想要的位置。即使现在硬盘也必须寻找该区域,等待数据移动到磁头下方,然后开始读取。
它与设备的物理布局和速度无关。就速度而言,SSD 正在接近 RAM 速度,但它们仍然更喜欢顺序访问而不是随机访问。
大多数存储设备对顺序访问而不是随机访问有一种自然的偏好。内存没有。RAM 始终允许真正的随机访问。
与大多数存储介质不同,RAM 具有连接到 CPU 的完整且专用的地址和数据总线。这个地址总线意味着内存需要很少的主动控制器,并且区域之间的切换实际上是“免费的”。当然,有一点点惩罚,但它远低于其他类型的设备。虽然我同意 Mark Hahn 关于技术性的原始链接,但他对它的主要部分有很大的错误。单独的总线意味着地址可以一直更改,数据“简单地”沿一个方向或另一个方向流动。
其他存储设备没有CPU直接和专用的地址总线访问。它们都有一个数据通道,需要某种控制器,它必须等待命令、解码该命令、寻找数据、接收数据,然后将其编组到 CPU。他们可能有“抓取下一个块”命令,可以让事情变得更快,但是一旦他们看到一个新的地址命令,他们基本上必须从头开始。由于使用命令协议访问媒体,随机访问和顺序访问具有非常不同的性能特征。它们缺乏让 RAM 随时“轻松”访问任何内存位置的快速双总线。
RAM 可能有一些缓冲,但它没有用于命令解码和切换的控制器开销。