主控芯片架构

校验点该放在哪:T10 PI在主控数据通路上的布置

作者:军航科工半导体T10 PI / 端到端数据保护 / DIF DIX

只在入口和出口各校验一次能发现错误,却无法定位注入点,也拦不住即将落盘的坏数据。

静默错误出在搬运环节

一笔写入从主机DMA出发,经PCIe进入主控SRAM,可能落到DRAM写缓冲,再经LDPC编码写进NAND。每一段介质内部各有防护——SRAM有ECC、DRAM有ECC、NAND有LDPC——但段与段之间的搬运、地址计算与时钟域跨越并不在这些防护的覆盖范围内。真正难查的正是这类错误:数据本身没坏,只是去错了地方。

八个字节里的分工

T10保护信息在每个数据块后追加8字节,三个字段各司其职:Guard Tag是覆盖数据内容的CRC16,负责抓比特翻转;Application Tag留给上层用途;Reference Tag与LBA绑定,负责抓错位写入。第三项是端到端保护中最有价值的部分,因为写到错误LBA的数据在任何纯内容校验下都是“正确”的,只有把地址纳入校验才能识别。

每跨一次边界就重算一次

可行的布置是:主机DMA落入SRAM后立即校验;进出DRAM写缓冲各一次;LDPC编码前一次;NAND读回解码后再一次。原则是每跨越一次介质或时钟域边界就重新验证,让每一段都能独立定责。这样做的额外好处是错误可以在写入NAND之前被拦下——一旦落盘,可选项就只剩下上报和隔离。

与主机侧的接口

DIF/DIX允许主机生成保护信息并随命令下发,盘内校验后透传保存,读回时再交还主机比对,形成贯穿应用到介质的完整链路。这要求命名空间使用带元数据的LBA格式,例如4K数据加64字节元数据。Type 1/2/3的差别集中在Reference Tag的检查规则上,与主机栈的配置必须一致,否则会出现大量误报。

它覆盖不到的那一块

保护信息保护的是用户数据,不是映射表本身。若固件把某个LBA错误地映射到另一段物理地址,读回时Reference Tag能报出不匹配,却无法恢复正确数据。因此映射表需要另一套机制——原子提交、独立校验和、上电一致性检查。多层防护叠加之后,J750/J770的UBER目标定在不高于每读取10^18位一个扇区,T10 DIF/DIX与端到端保护也列入军航科工的企业级功能基线。

关键词
T10 PI端到端数据保护DIF DIXReference Tag错位写入CRC16主控数据通路军航科工