3. 星载计算机典型架构与辐射敏感单元
要理解星载计算机为什么会被单粒子翻转(SEU)打乱,先要看清它的“身体结构”。一台典型的星载计算机并不是单一芯片,而是由处理器、存储层次、非易失存储和可编程逻辑共同组成的计算系统。不同单元在空间辐射环境中的敏感度差异很大:有的单元翻转后只影响一次计算结果,有的会污染整条数据通路,有的甚至会让FPGA逻辑功能整体失效。本节按数据在系统中的流动路径,逐一分析各单元的辐射敏感机理与敏感度差异。
典型架构:从处理器核到外围存储
星载计算机的典型架构可以概括为“一核、多级存储、两类非易失介质、一片可编程逻辑”。处理器核(如SPARC V8、ARM Cortex-R、RISC-V或PowerPC系列)负责指令执行与任务调度;Cache(L1指令/数据Cache、部分型号含L2)位于核与主存之间,用于缓解访问延迟;寄存器堆是核内最快的存储,直接参与每条指令的读写;主存通常采用SRAM或DRAM,承载程序代码、遥测数据和中间结果;Flash用于存放引导程序、操作系统镜像和关键参数;FPGA配置存储器则保存可编程逻辑的配置位流,决定FPGA内部互连与逻辑功能。
这些单元在物理上分布在不同芯片甚至不同工艺节点上,但它们通过总线、存储控制器和片内互连耦合在一起。一次辐射粒子击中某个单元,其后果会沿数据通路传播,因此敏感度分析必须结合“单元自身翻转概率”和“翻转后对系统的影响范围”两个维度。
各单元敏感度差异的物理根源
寄存器堆的敏感度最高,原因在于它由大量触发器构成,每个触发器都是一个双稳态存储单元,粒子击中后极易发生位翻转。更关键的是,寄存器堆直接参与每条指令的读写,翻转后的错误值会立即进入运算通路,可能造成错误结果甚至控制流跳转。以SPARC V8架构为例,其整数寄存器堆通常包含120个以上的32位寄存器,若单个寄存器发生SEU,错误会持续到下一次写覆盖,期间所有读取该寄存器的指令都会得到错误操作数。
Cache的敏感度同样很高,但影响方式与寄存器堆不同。Cache由SRAM阵列和标签比较逻辑组成,数据阵列翻转会污染后续读取,标签翻转则可能导致缓存命中判断错误,把错误数据当作正确数据返回给处理器。L1 Cache距离核最近,翻转后几乎立即影响执行;L2 Cache容量更大、翻转概率更高,但错误可能被后续访问覆盖或通过一致性协议传播。实际工程中,Cache通常采用奇偶校验或ECC保护,但标签阵列的保护往往更复杂。
SRAM作为主存,敏感度属于中高等级。它的存储单元密度高,单粒子翻转截面较大,但错误不会立即被使用,而是等待处理器读取时才暴露。SRAM的翻转会长期驻留,直到被写入覆盖或刷新。DRAM的敏感度略低于SRAM,因为其存储电容需要周期性刷新,刷新过程会自然纠正部分翻转,但DRAM对单粒子多位翻转(MBU)更敏感,且刷新控制逻辑本身也可能被击中。
Flash的敏感度相对较低。Flash单元基于浮栅电荷存储,粒子需要克服更高的势垒才能改变存储状态,因此单粒子翻转截面较小。但Flash的读路径、地址译码和电荷泵电路仍可能受辐射影响,导致读取错误或编程失败。在轨应用中,Flash通常配合ECC和定期回读校验使用。
FPGA配置存储器的敏感度极高,这是星载FPGA最突出的辐射问题。配置存储器由大量SRAM配置位组成,每个配置位控制一个逻辑单元、互连开关或I/O属性。一个配置位翻转可能改变逻辑功能、断开互连或造成短路路径,导致整个设计功能失效。与寄存器堆不同,配置位翻转不会自动恢复,必须通过重新配置或部分重构来纠正。因此,FPGA在轨应用通常需要配置存储器回读、CRC校验和动态重构机制。
敏感度差异对容错设计的指导
敏感度差异直接决定了容错资源的分配优先级。寄存器堆和FPGA配置存储器应优先采用三模冗余(TMR)或配置位回读刷新;Cache和SRAM适合采用ECC或奇偶校验;Flash则依赖ECC和定期回读。设计时不能对所有单元采用同一套防护策略,否则要么过度设计增加功耗和面积,要么保护不足留下单点故障。
理解各单元的敏感度差异,是后续学习SEU故障注入、ECC编码、TMR加固和验证方法的基础。只有先明确“哪里最容易出错、出错后影响多大”,才能有针对性地设计容错机制并规划验证用例。