如果计算机 RAM 像其他持久性存储器一样是非易失性的,那么就不会有启动时间之类的东西了。那么为什么不可能拥有非易失性 RAM 模块呢?
答案1
大多数人读到或听到“RAM”时,都会想到这些事情:
实际上,它们是由 DRAM 芯片制成的,DRAM 是否是一种 RAM 还存在争议。(它曾经是“真正的”RAM,但技术已经发生了变化,它是否是 RAM 更像是一种宗教信仰,请参阅评论中的讨论。)
RAM 是一个广义术语。它代表“随机存取存储器”,即可以按任意顺序访问的任何类型的存储器(这里的“访问”是指读取或写入,但某些类型的 RAM 可能是只读的)。
例如,HDD 不是随机存取存储器,因为当您尝试读取两个不相邻的位(或者出于某种原因以相反的顺序读取它们)时,您必须等待盘片旋转和磁头移动。只能读取连续的位,中间无需执行其他操作。这也是 DRAM 可以被视为非 RAM 的原因 - 它是按块读取的。
随机存取存储器有很多种。有些不是易失性的,甚至还有只读的,例如 ROM。因此存在非易失性 RAM。
我们为什么不使用它呢?速度不是最大的问题,例如 NOR 闪存的读取速度可以和 DRAM 一样快(至少这是维基百科说,但没有引用)。写入速度较差,但最重要的问题是:
由于非易失性内存的内部结构,它们必然会磨损。写入和擦除周期数限制为 100,000-1,000,000。这个数字看起来不错,而且通常足以满足非易失性存储的需求(U盘不会经常坏,对吧?),但这个问题在 SSD 驱动器中已经得到解决。RAM 的写入频率比 SSD 驱动器高得多,因此更容易磨损。
DRAM 不会磨损,速度快,而且相对便宜。SRAM 速度更快,但也更贵。目前它用于 CPU 的缓存。(毫无疑问,它确实是 RAM ;))
答案2
从根本上来说,这是物理原因。
任何非挥发性存储器都必须以两种状态存储数据,这两种状态之间存在较大的能量屏障,否则即使是最小的影响也会改变数据。但在写入该存储器时,我们必须主动克服这种能量屏障。
设计师在设置这些能量屏障方面有相当大的自由度。将其设置为低0 . 1
,您将获得可以多次重写而不会产生大量热量的内存:快速且易变。将能量屏障设置为高0 | 1
,则位将几乎永远保持不变,或者直到您消耗大量能量为止。
DRAM 使用小型电容器,这些电容器会泄漏电流。大型电容器泄漏电流较少,波动性较小,但充电时间较长。
闪存使用以高压射入隔离器的电子。能量屏障非常高,以至于你无法以可控的方式将它们释放出来;唯一的方法是清除整个数据块。
答案3
需要注意的是计算机中第一个常用的“主存储器”是“核心”——由铁氧体材料制成的微型环形线圈排列成阵列,导线从三个方向穿过它们。
要写入 1,您需要通过相应的 X 和 Y 线发送相同强度的脉冲,以“翻转”磁芯。(要写入 0,则不需要。)您必须在写入之前擦除该位置。
要读取,您可以尝试写入 1,然后查看“感测”线上是否生成了相应的脉冲——如果生成了,则位置以前是零。那么您当然必须将数据写回,因为您刚刚将其删除了。
(这是一个轻微地当然是简化的描述。
但这东西是不易挥发的。 你可以关闭电脑,一周后再启动,数据仍然会在那里。而且它肯定是“RAM”。
(在“核心”出现之前,大多数计算机直接通过磁性“鼓”进行操作,仅使用 CPU 内存的几个寄存器,以及一些使用诸如存储 CRT 之类的东西。)
因此,RAM(目前最常见的形式)为何易失性的原因很简单,因为这种形式既便宜又快速。(有趣的是,英特尔这早期在开发半导体 RAM 方面处于领先地位,并且只涉足 CPU 业务来为其 RAM 创造市场。
答案4
我认为这里的主要问题确实是波动性。要快速写入,写入必须容易(即不需要长时间)。这与你在选择 RAM 时希望看到的相矛盾:它必须快速。
日常类比: - 在白板上写字很容易,几乎不费力气。因此速度很快,你可以在几秒钟内在整个板上画出草图。 - 但是,你在白板上的草图非常不稳定。一些错误的移动会毁掉一切。 - 拿一块石板,把你的草图刻在那里——就像摩登原始人风格——你的素描将留在那里几年、几十年甚至几个世纪。不过,写这些素描需要更长的时间。
回到计算机:使用快速芯片存储持久数据的技术已经存在(例如闪存驱动器),但与易失性 RAM 相比,速度仍然要低得多。看看一些闪存驱动器并比较数据。您会发现“读取速度为 200 MB/s”和“写入速度为 50 MB/s”之类的信息。这差别很大。当然,产品价格在这里也有一定的影响,但是,一般访问时间可能会因花费更多钱而有所改善,但读取速度仍然会比写入速度快。
你可能会问:“但是刷新 BIOS 怎么样?它是内置的,而且速度很快!”你说得对,但是你曾经刷新过 BIOS 映像吗?通过 BIOS 启动只需片刻 - 大部分时间都浪费在等待外部硬件上 - 但实际刷新可能需要几分钟,即使它只是几 KB 的刻录/写入。
但是,这个问题有解决方法,例如 Windows 的 Hybernate 功能。RAM 内容被写入非易失性存储(如 HDD),然后读回。上网本上的某些 BIOS 提供类似的功能,用于使用隐藏 HDD 分区进行常规 BIOS 配置和设置(因此即使在冷启动时,您基本上也可以跳过 BIOS 内容)。