Industry Insights

Where to Put the Check Points: Placing T10 PI Along the Controller Datapath

By JH SemiconductorT10 PI / end-to-end data protection / DIF DIX

Checking only at the ingress and egress detects an error but cannot localise it, and does not stop bad data from reaching the medium.

Silent errors live in the transfers

A write leaves host DMA, crosses PCIe into controller SRAM, may land in a DRAM write buffer, then passes through LDPC encoding into NAND. Each storage element has its own defence — SRAM ECC, DRAM ECC, LDPC on NAND — but the transfers between them, the address arithmetic and the clock-domain crossings fall outside all of it. Those are the hard failures to catch: the data is intact, it simply went somewhere else.

What the eight bytes do

T10 protection information appends eight bytes per block, with three fields doing distinct jobs. The Guard Tag is a CRC16 over the data content and catches bit flips. The Application Tag is reserved for upper-layer use. The Reference Tag is bound to the LBA and catches misdirected writes — the most valuable part, because data written to the wrong LBA passes any content-only check. Only folding the address into the check exposes it.

Recompute at every boundary

A workable placement: verify immediately after host DMA lands in SRAM; again on entry to and exit from the DRAM write buffer; once before LDPC encoding; once more after decode on the NAND read path. The rule is to re-verify at every media or clock-domain boundary, so each segment can be held individually accountable. The side benefit is interception — once corrupt data reaches NAND, the only remaining options are report and quarantine.

The host-side contract

DIF/DIX lets the host generate protection information and send it with the command; the drive verifies, stores it, and returns it on read for the host to check, closing the loop from application to medium. This requires a namespace formatted with metadata — for instance 4K data plus 64 bytes. Types 1/2/3 differ mainly in Reference Tag checking rules, and the drive's configuration must match the host stack or false failures pile up.

What it does not cover

Protection information guards user data, not the mapping table. If firmware maps an LBA to the wrong physical address, the Reference Tag reports a mismatch on read but cannot recover the correct data. The mapping table therefore needs its own machinery: atomic commit, independent checksums, power-on consistency checks. With those layers stacked, the J750/J770 target a UBER no worse than one sector per 10^18 bits read, and T10 DIF/DIX sits in JH Semiconductor's enterprise feature baseline.

Keywords
T10 PIend-to-end data protectionDIF DIXreference tagmisdirected writeCRC16controller datapathJH Semiconductor