难道我们不能简单地将电池连接到 RAM 以防止断电期间数据丢失吗?

电器工程 电脑 eeprom 内存
2022-01-26 14:43:50

所以,我只是想知道易失性内存存储在断电时如何丢失数据。但是我们不能通过将电池与 RAM 和 ROM 结合使用来解决这个问题吗?当断电时,即当计算机没有收到关机信号时,电池启动并且控制器将数据从 RAM 传输到 EEPROM ?

EEPROM - 因为我猜 HDD 和 SSD 会消耗更多电力。我的意思是,如果我们能做到这一点,那么我们可以对其进行编程以将数据显式存储在 EEPROM 中,如果不是数据,那么操作系统(只有一个副本)。这样我们也可以更快地启动。可能有非常明显的理由不这样做。但我不清楚。那么你能告诉我为什么没有这样做吗?

4个回答

简短的回答:您可能能够“将电池连接到 RAM 以防止断电期间数据丢失”,但这取决于 RAM 的类型。

SRAM(静态随机存取存储器)不是 DRAM,如下所述。SRAM 存在于许多电子设备中,例如现代(家用)恒温器(在断电时使用电池保持设置)和闹钟(电池保持时间并可以短时间供电)等. 硬盘驱动器中通常有一些伪装成“32MB 磁盘缓存”的 SRAM。专用 SRAM 甚至存在于 CPU 内部,因为它具有超快的 L1、L2 和 L3 高速缓存存储器。

锂“纽扣电池”一次(不可充电)电池通常用于 SRAM 保持。现代 SRAM 可以具有较低的工作电压,例如 1.8 V,需要更多电路来支持 3.0 V 电池。电源电流非常小(甚至是纳安级),因此可以通过小电池长时间保留数据。许多工业机器(机器人、变频驱动器、可编程逻辑控制器等)采用 SRAM 备用电池在(频繁)电源循环期间保留关键数据。

首字母缩略词 SRAM 的意思是“静态随机存取存储器”。静态的,因为它的内容会无限期地保持它们被编程的任何状态,但只要施加电源。SRAM 速度非常快,但体积庞大,而且相对昂贵,因此即使在今天也只能找到合适的角色。SRAM 和 DRAM 是易失性类型,这意味着如果断电,它们的内容就会丢失。

EEPROM(电可擦可编程只读存储器)是一种古老的非易失性数字存储介质,意味着断电后数据仍然存在。这些最初是在位级别“编程”或“融合”的,但现代的更快一些,并且可以处理块中的数据。这些仍然比 SRAM 或 DRAM 慢得多。由于这种速度极慢、容量有限、写入/擦除能力有限,它们只能用于诸如参数存储和微控制器微型程序等角色。由于容量大,将主系统内存备份到 EEPROM 是不可行的所涉及的时间。

FLASH存储器,通常被称为USB闪存驱动器和SSD硬盘驱动器,是另一种非易失性存储介质。它也比其他类型的 RAM 慢得多,并且具有有限的写入限制,因此不用于主存储器。SSD 硬盘驱动器只不过是一堆这些,全部并行使用,以提高速度和容量。

动态随机存取存储器(动态随机存取存储器)是完全不同的野兽。“动态”是因为它一直在变化,内容会在没有干预的情况下发生变化(丢失)。DRAM 相对密集(容量方面)且价格低廉,因此用于计算机主系统内存。不幸的是,它也比 SRAM 慢*并且需要不断地“刷新”,否则它的内容会在短时间内丢失,具体取决于温度。PC 内存控制器的正常运行使 DRAM 中的数据不断刷新,使其始终可用。如果电源关闭,内存控制器在使用备用电池电源运行时仍需要刷新数据。例如,笔记本电脑在挂起到 RAM 时会执行此操作。因为这个刷新是一个活跃的进程,它会消耗更多的电流,因此电池通常比纽扣电池大得多。如果电池耗尽,则 DRAM 内容将丢失,机器被迫冷启动。

一种有前途的新技术是FeRAM(Ferro-Electric RAM)速度非常快,非易失性,并且具有很高的耐用性。它是新技术,因此非常昂贵且容量有限,因此作用非常有限。

*除此之外:为了解决 DRAM 的缓慢问题,PC 会大量并行使用这些内存。首先,一次访问整个棒(8x 速度,因为上面有 8 个芯片),然后如果主板支持双排,同时两个模块(2x8 = 16x),三排 = 24x 等。这是标有“PC3-10666”的模块如何能够像运行在 10,666MHz 的芯片一样运行。从 666MHz 总线:666*2(DDR 表示每个时钟两次传输)* 8 个芯片/模块 = 10,666。

难道我们不能简单地将电池连接到 RAM 以防止断电期间数据丢失吗?那么你能告诉我为什么没有这样做吗?

我们当然愿意!它被称为电池供电 SRAM,广泛用于嵌入式系统。如今,NVRAM 技术(例如传统的 EEPROM,或新的 FRAM)的成本很低,它们可以在没有电源的情况下做同样的事情,所以它不像以前那么普遍,但它仍然存在。而且很可能您的台式计算机内部仍然有一个来保存 BIOS 设置。

电池供电 SRAM

图片来源:ST M48T128Y 数据表

应用包括:

  • 约会时间。计算机主板上的纽扣电池为实时时钟芯片供电,该芯片内部有 SRAM,可以保持时间。这就是您的台式计算机即使断电也能记住时间的原因。

  • 校准参数。示波器等测试设备可以将当前的校准数据保存在 SRAM 中(旧测试设备的一个常见问题是电池没电时会丢失所有校准数据)。

  • 运行时参数。微控制器可以将重要的运行时数据保存在电池供电的 SRAM 中,这样即使微控制器因断电或崩溃而复位,数据也不会丢失。同样,手持科学计算器可以保存您的变量。

    • 许多台式计算机仍然使用这种技术来保留一些 BIOS 设置以及日期/时间。之所以保留它,是因为人们发现如果 BIOS 设置错误,很容易取出电池并重置所有内容。早期的 PC 使用真正的专用 SRAM 芯片,现代 PC 使用集成解决方案。虽然现代 UEFI 固件大多使用 NVRAM,但有些除了 NVRAM 之外还有电池供电的 SRAM。
  • 密码学和安全性。安全硬件可以将私钥保存在电池供电的 SRAM 中,脾气如果检测到入侵,篡改检测机制会擦除并断开 SRAM,永久破坏私钥。同样,在极端情况下,程序本身保存在 SRAM 中,以挫败竞争对手的任何逆向工程努力。

我们不在台式计算机上执行此操作。计算机上的大型 DRAM 消耗大量电力。此外,大多数操作系统和软件的设计都不是为了在断电后继续工作。你可以实现像休眠这样的东西,但如果是这样,你为什么不直接使用休眠呢?总的来说,它没有完成,不是因为它不可能,只是因为没有人真的想这样做。

对于个人电脑,这或多或少是“低电量休眠”的意思。RAM 的内容在休眠文件中写入磁盘。由于您在执行此操作时需要开启整个系统,因此它需要大量电力,因此仅适用于像笔记本电脑这样无论如何都需要电池的系统。

同样,可以从休眠状态快速启动;英特尔将其称为“快速启动”,并且在某些系统上已经存在很长时间了。

主要的限制因素是 RAM 太大,以至于将其全部写入 Flash 需要几秒钟的时间。

EEPROM - 因为我猜 HDD 和 SDD 会消耗更多的电量。

根据定义,SSD 是 EEPROM。

您所描述的正是现代计算机中“挂起到磁盘”或“休眠”功能的作用。您拔下插头,电池或外接电池 (UPS) 开始为计算机供电,当电池电量耗尽到某一点时,操作系统(取决于设置)只是将整个 RAM 写入文件并关闭。当您重新打开电源时,操作系统会看到“休眠”文件存在,而不是正常启动,它会将文件读取到 RAM 并从之前停止的位置开始(当然,这里有很多简化)。

还有一个“暂停到 RAM”功能 - 关闭外围设备,停止 CPU 并仅为 RAM 和 RAM 控制器供电。

这两个功能都可以链接 - 您首先挂起到 RAM,当电池电量耗尽时,计算机会短暂唤醒,以便将 RAM 内容传输到磁盘并完全关闭电源。