4. 大容量存储阵列组织方式
星载大容量记录器要在有限体积、功耗和抗辐照约束下同时满足“容量够大”和“写入够快”两个目标。单颗NAND Flash芯片的容量和接口带宽都是有限的:一颗容量256 Gb(32 GB)、接口为异步/同步ONFI的芯片,顺序写入带宽通常只有几十MB/s量级,远不能满足多路高速载荷(如高光谱、SAR、激光通信)动辄数Gbps的持续记录需求。因此工程上必须把多颗Flash按一定结构组织成“存储阵列”,用并行换取带宽、用堆叠换取容量。本节讨论四种基本组织手段及其权衡。
一、多片Flash并行扩展:位宽与通道两个维度
并行扩展有两个正交维度。第一个是位宽扩展:把多片Flash的数据线并联,共用同一组控制/地址/片选信号,使一次读写操作同时命中多片,等效数据位宽从x8变为x16、x32。位宽扩展的代价是每片都要独立片选和独立的Ready/Busy状态线,且要求各片时序一致,一旦某片坏块或擦写次数超限,整组并行写入的可靠性会受影响。第二个是通道扩展:每片(或每组)Flash独占一组数据/控制总线,控制器通过多个独立通道并发访问,各通道之间互不阻塞。通道扩展的带宽提升更接近线性,但会显著增加控制器的引脚数、PCB走线层数和功耗。
工程上常见的折中是“通道×位宽”二维组合。例如用4个通道、每通道2片位宽并联,共8片,理论写入带宽约为单片的4倍(通道并行)×2倍(位宽并行),但实际受控制器调度开销、ECC计算和坏块管理影响,通常只能达到理论值的60%~75%。
二、通道交织与Bank分组:把“等待”藏起来
NAND Flash的写入并非连续流:一次页编程(Program)命令发出后,芯片进入内部编程状态,tPROG典型值约300~600 μs,这段时间总线是空闲的。如果只挂一片,控制器只能干等。通道交织(Interleaving)就是利用这段空闲:在同一通道上挂多片(或多Bank)Flash,当Bank0处于编程忙时,控制器立即向Bank1发下一条命令,如此轮转,使总线利用率接近100%。
Bank分组则是把同一片Flash内部或同一通道上的多个Die划分为若干逻辑Bank,每个Bank可独立执行编程/擦除/读操作,共享同一组I/O总线。交织的粒度取决于tPROG与命令/数据传输时间的比值:若单次页数据传输需50 μs、tPROG为500 μs,则至少需要约10个Bank轮转才能填满等待窗口。实际设计中常取8~16个Bank为一组,兼顾调度复杂度和总线占用率。
三、堆叠封装与三维存储:容量扩展的物理路径
当PCB面积和引脚数成为瓶颈时,容量扩展转向垂直方向。堆叠封装(Stacked Die / PoP)把2~8片裸Die在封装内垂直堆叠,共用球栅阵列引脚,通过硅通孔或引线键合互连。堆叠后单封装容量可达256 GB~1 TB,但散热路径变长,底部Die温升明显,星载环境下需通过导热垫和结构件把热量导向机壳。三维NAND(3D NAND)则是在晶圆层面把存储单元垂直堆叠成几十到上百层,单Die容量大幅提升,同时因为单元尺寸放宽,擦写寿命和抗辐照特性通常优于同代平面NAND。对星载应用而言,3D NAND的另一个优势是单粒子翻转截面相对可控,配合ECC和坏块管理可满足在轨可靠性要求。
四、容量与带宽的工程权衡
容量扩展和带宽扩展并非线性叠加,而是存在明确的约束关系。增加通道数能提升带宽,但控制器引脚、PCB层数、连接器尺寸和功耗随之上升;增加堆叠层数能提升容量,但散热和信号完整性变差,且堆叠Die共享同一接口,带宽不会因堆叠而增加。Bank交织度提高可提升总线利用率,但调度逻辑复杂度和坏块管理开销增大。
一个实用的估算方法是先确定任务需求:假设某遥感载荷持续输出2 Gbps数据,记录时长30分钟,则原始数据量约450 GB;考虑ECC开销、文件系统和坏块预留,实际需配置约600 GB可用容量。若选用单颗256 Gb(32 GB)3D NAND,则至少需要约19颗;若采用8层堆叠封装,则需3个封装。带宽方面,单颗同步ONFI接口写入约40 MB/s,若要求持续写入250 MB/s(2 Gbps),则至少需要7个并行单元;考虑交织效率取0.7,实际需约10个并行单元。最终可组织为4通道×每通道2片位宽并联×每通道4 Bank交织,共32片,容量约1 TB,理论带宽约320 MB/s,留有约28%余量。
需要强调的是,上述参数均为教学示例,实际选型必须依据具体Flash数据手册的tPROG、tBERS、接口速率和控制器实测调度效率进行核算。星载环境下还需额外考虑总剂量效应下的擦写次数降额、单粒子锁定保护以及低温下的时序余量,这些因素会进一步压缩可用带宽和容量,设计时应保留不低于20%的余量。