The cr.yp.to microblog: 2022.08.29 13:52:00

2022.08.29 13:52:00 (1564219310259679232) from Daniel J. Bernstein, replying to "BenBE (@BenBE1987)" (1564213947359793153):

4096+14 is what libsecded (from https://pqsrc.cr.yp.to/downloads.html) does for 4096 bytes. Can de-interleave into original page + checksums. It's SECDED on the bottom bit of each byte, SECDED on the next bit of each byte, etc. Mixing bits can give better error correction for the same space.

Context

2022.08.29 13:25:45 (1564212707745665027) from Daniel J. Bernstein:

Given the current reality of desktops/laptops/smartphones almost never having ECC RAM, I'd love to see more operating-system support for periodically sweeping through pages to detect and correct errors, storing (say) 14 bytes of error-correction data for each 4096-byte page.

2022.08.29 13:30:41 (1564213947359793153) from "BenBE (@BenBE1987)":

What gives this number of 14 bytes? What error correction capability does this aim for? Where does it stem from? Why not use cross-interleaving for larger blocks of memory (of e.g. 1MiB)?