3. 星载存储系统架构与寿命管理接口
星载固态存储不是一块简单的“大容量U盘”,而是一套在辐射、单粒子、温度循环和长寿命约束下工作的嵌入式存储系统。它的架构通常由主控、缓存、多通道控制器、闪存阵列、遥测接口和寿命管理模块共同构成。理解这些部件之间的协同关系,是后续做寿命管理、可靠写入和故障处置的基础。
从数据通路看,主控是系统的“大脑”,负责接收星务计算机下发的写命令、读命令、擦除命令和模式切换命令,并维护逻辑地址到物理地址的映射。缓存位于主控与闪存通道之间,承担速率匹配、命令排队和坏块替换缓冲。通道是并行写入的“高速公路”,每个通道挂载若干片 NAND 闪存,通道之间可以并行工作,从而提高写入带宽。闪存阵列是最终的数据落点,由多个闪存芯片、片内页寄存器和块结构组成。遥测接口则把电压、电流、温度、坏块数、擦写次数、纠错计数等状态回传给星务计算机。寿命管理模块并不直接搬运用户数据,而是持续采集闪存的健康参数,计算剩余寿命,决定何时触发磨损均衡、坏块退役、数据搬移或降级写入。
这些部件之间不是简单的串联关系,而是存在多条并行的控制流、数据流和状态流。下面这张图给出了一种典型的星载存储系统协同关系:主控通过命令总线控制通道,通过数据总线经缓存写入闪存阵列;寿命管理模块从闪存阵列和通道采集健康信息,再向主控反馈写入策略;遥测接口则把寿命状态和异常事件汇总后上报。
从图中可以看出,寿命管理模块处于一个“旁路采集、反馈控制”的位置。它不直接参与每一次用户数据的搬运,但它的输出会改变主控的写入行为。例如,当某个通道的坏块率超过阈值时,寿命管理模块会通知主控降低该通道的写入权重,把新数据优先分配到健康通道;当某个块的擦写次数接近上限时,寿命管理模块会把它标记为“待退役”,并在下一次垃圾回收时将其排除。
在实际工程中,这种协同关系通常通过一组寄存器接口和中断信号来实现。主控与寿命管理模块之间可以约定如下接口:
| 接口名称 | 方向 | 典型位宽 | 作用 |
|---|---|---|---|
| LIFE_STATUS | 寿命管理 → 主控 | 32 bit | 剩余寿命百分比、健康等级、降级标志 |
| BAD_BLOCK_CNT | 闪存阵列 → 寿命管理 | 16 bit | 各通道累计坏块数量 |
| ERASE_CNT | 闪存阵列 → 寿命管理 | 32 bit | 块擦写次数,用于磨损均衡 |
| WR_STRATEGY | 寿命管理 → 主控 | 8 bit | 写入模式:正常/均衡/降级/只读 |
| TM_HEALTH | 寿命管理 → 遥测接口 | 64 bit | 打包后的寿命遥测帧 |
这些接口的刷新周期需要根据任务阶段调整。在发射入轨初期,闪存健康状态变化快,建议每 10 秒刷新一次寿命状态;进入长期稳定运行后,可以放宽到每 60 秒或每 5 分钟刷新一次,以节省遥测带宽和主控开销。但坏块突发增长、纠错计数骤升等异常事件必须通过中断立即上报,不能等待周期轮询。
缓存与通道之间的协同也值得注意。缓存通常被划分为多个队列,每个队列对应一个通道。主控在写入时,会先根据寿命管理模块给出的通道权重,把数据页分配到不同队列中。如果某个通道的闪存正在执行擦除操作,该通道队列会暂时积压,主控可以把后续页数据转向其他空闲通道。这种“通道级并行 + 队列级缓冲”的结构,可以在不增加闪存芯片数量的前提下,显著提高写入吞吐量,同时避免单个慢通道拖累整体性能。
寿命管理模块的另一个关键职责是维护“逻辑地址—物理地址—块健康状态”的三维映射。传统闪存控制器只维护逻辑地址到物理地址的映射,而星载存储还需要记录每个物理块的擦写次数、最近一次编程时间、纠错失败次数和保持力衰减估计。当某个块的健康评分低于阈值时,寿命管理模块会触发数据搬移:先把该块中的有效页读到缓存,再写入新的健康块,最后擦除旧块并标记为退役。这个过程对上层文件系统是透明的,但会消耗额外的写入带宽和擦写次数,因此需要选择合适的时机,例如在系统空闲或写入负载较低时执行。
遥测接口的设计要兼顾“完整性”和“实时性”。完整性要求寿命管理模块能够把坏块分布、擦写次数直方图、纠错计数等原始数据打包上传,供地面做长期趋势分析;实时性要求当剩余寿命低于 20% 或坏块率超过 5% 时,立即产生告警遥测。一个实用的做法是把遥测帧分为两类:周期性的“健康摘要帧”和事件触发的“异常告警帧”。健康摘要帧可以每 5 分钟发送一次,包含剩余寿命、平均擦写次数、最大擦写次数、坏块总数;异常告警帧则在事件发生时立即发送,包含异常类型、发生通道、发生块号和建议处置动作。
最后需要强调,主控、缓存、通道、闪存阵列、遥测接口和寿命管理模块之间的协同,最终要落到“写入策略”上。寿命管理模块给出的不是简单的“好/坏”二值判断,而是一个多维度的健康向量:剩余寿命、坏块率、通道负载、温度、纠错余量。主控根据这个向量决定当前是采用正常写入、均衡写入、降级写入还是只读保护。例如,当温度超过 85℃ 时,即使剩余寿命充足,也应降低写入速度,因为高温会加速电荷泄漏;当纠错余量低于 30% 时,应停止对该块所在通道的写入,转而使用备用通道。只有把这些协同关系在架构层面明确下来,星载存储才能在长达数年的任务周期中保持可靠写入和可预测的寿命衰减。