4. 星载存储介质与掉电特性

星载计算机的掉电恢复能力,首先取决于数据“存在哪里”。不同存储介质在断电后的数据保持机理完全不同:有的靠持续供电维持电荷,有的靠磁矩或铁电畴的物理取向保存信息,有的则把电荷锁在浮栅中。理解这些差异,才能在设计时正确划分“掉电即失”“掉电可保”“写中易损”三类数据,并为它们选择匹配的介质与保护策略。

一、易失与保持:先分清“断电后还剩什么”

SRAM 是星载计算机中最常见的易失存储器,常用作 CPU 缓存、寄存器堆和关键运行变量区。它的每个存储单元由 6 个晶体管构成双稳态锁存结构,只要供电存在,数据就稳定保持;一旦断电,锁存状态迅速消失,通常在毫秒级内完全丢失。因此 SRAM 中的内容必须依靠外部备份机制(如 FRAM、MRAM 或 Flash)在掉电瞬间转存,否则无法恢复。

与之相对,MRAM、FRAM、EEPROM 和 Flash 都属于非易失存储器,但它们的“非易失”程度和写入代价差别很大。MRAM 利用磁性隧道结的磁化方向存储数据,写入靠电流翻转磁矩,理论上可承受 10^14 次以上写入,且断电后数据保持十年以上,适合做频繁更新的状态区。FRAM 利用铁电晶体的极化方向存储数据,写入功耗低、速度快,耐久性可达 10^12 次以上,常被用作掉电瞬间的“最后写入缓冲区”。

二、写操作中断:真正的风险窗口

非易失并不等于“写的时候断电也安全”。对 EEPROM 和 NAND/NOR Flash 而言,写入(编程)和擦除需要较高的内部电压和较长的操作时间。以 NOR Flash 为例,单字编程约几十微秒,扇区擦除可能达到数百毫秒;NAND Flash 的页编程约 200~700 微秒,块擦除约 1~4 毫秒。如果在这些操作进行到一半时掉电,存储单元可能停留在中间阈值状态,导致读出数据既不是旧值也不是新值,甚至整页校验失败。

更隐蔽的风险是“元数据与数据不一致”。例如系统先写数据页、再更新索引表,若在两步之间掉电,索引可能指向尚未写完的页。因此工程上通常采用“先写新数据到空闲区,再原子更新指针”的顺序,并配合 CRC 校验识别半写页。EEPROM 虽然可以按字节写入,但单字节写入仍需约 5~10 毫秒,期间掉电同样可能破坏该字节及相邻字节。

注意:Flash 的“写前擦除”特性意味着不能原地覆盖。若在擦除过程中掉电,整个扇区可能进入不确定状态,必须依靠备份副本或日志结构恢复。

三、介质特性对比与选型依据

下表汇总了常见星载存储介质的关键参数。需要说明的是,表中数值为典型量级示例,实际选型应以具体器件手册为准。

介质掉电保持写入耐久性写操作中断风险典型用途
SRAM无(毫秒级丢失)无限不适用(断电即失)运行变量、缓存
MRAM10 年以上约 10^14 次低,写入原子性较好频繁更新的状态区
FRAM10 年以上约 10^12 次低,写入快且功耗小掉电瞬间转存缓冲
NOR Flash10~20 年约 10^5 次中高,擦除耗时长程序代码、常量表
NAND Flash10 年量级约 10^3~10^4 次高,页/块操作易半写大容量日志、遥测数据
EEPROM40 年以上约 10^6 次中,字节写入有窗口小参数、校准系数

四、从介质特性到掉电保护设计

基于上述差异,星载软件通常把数据分为三类并分别处理。第一类是“掉电即失”的 SRAM 运行态,需要在检测到掉电中断后,利用储能电容提供的几毫秒至几十毫秒窗口,把关键变量批量写入 FRAM 或 MRAM。第二类是“掉电可保但写中易损”的 Flash 数据,采用日志结构或双副本加 CRC,确保任何时刻至少有一份完整数据。第三类是“长期不变”的代码和常量,存放在 NOR Flash 中,仅在轨升级时改写,并保留回滚镜像。

一个可参考的示例参数是:假设掉电检测到储能电容可维持 20 毫秒,FRAM 写入 256 字节关键状态约需 2 毫秒,则剩余约 18 毫秒可用于关闭外设和记录掉电时间戳。若改用 EEPROM,同样 256 字节按每字节 8 毫秒计算需要约 2 秒,远超电容支撑时间,因此 EEPROM 不适合做掉电瞬间的大批量转存,只适合存放少量校准参数。

星载存储介质掉电特性与写中断风险 易失区 SRAM 运行变量 / 缓存 断电毫秒级丢失 需外部转存 写入无耐久限制 非易失区(掉电保持) MRAM 10^14 次 FRAM 10^12 次 EEPROM 10^6 次 NOR Flash 擦除慢 / 10^5 次 NAND Flash 页/块半写风险高 写操作中断风险 编程/擦除中掉电 → 单元处于中间态 → 读出既非旧值也非新值 → 元数据与数据不一致 CRC 校验可识别半写页 双副本 + 日志可恢复 掉电转存 掉电瞬间时间窗口与介质写入耗时对比(示例) 0 ms 5 ms 10 ms 15 ms 20 ms 储能电容支撑窗口 ≈ 20 ms FRAM 2ms MRAM 3ms EEPROM 256B ≈ 2s(远超窗口,不可用于批量转存) 窗口边界

从图中可以直观看到:FRAM 和 MRAM 的写入耗时远小于储能电容支撑窗口,适合承担掉电瞬间的关键状态转存;而 EEPROM 和 Flash 的写入耗时可能超出窗口,必须依靠日志、双副本和 CRC 来保证可恢复性。选型的核心不是追求“最快”或“最便宜”,而是让介质的写入时间、耐久性和保持能力与数据更新频率、掉电保护窗口相匹配。

实践建议:在星载软件中为每类数据标注“掉电等级”——L0 掉电即失、L1 掉电需转存、L2 掉电可保但写中需保护、L3 长期不变。该标注直接决定数据放置介质和写入策略,是掉电恢复设计的第一步。