--- license: mit tags: - pytorch - safetensors - threshold-logic - neuromorphic - error-correction - ecc --- # threshold-sec-ded SEC-DED (8,4) decoder: Single Error Correct, Double Error Detect. Extends Hamming(7,4) with overall parity for double-error detection. ## Circuit ``` codeword[7:0] ──► SEC-DED ──┬──► data[3:0] (corrected) ├──► error (error detected) └──► uncorrectable (double error) ``` ## Codeword Format ``` Position: 7 6 5 4 3 2 1 0 Bit: d3 d2 d1 p3 d0 p2 p1 p0 p0 = overall parity (all bits) p1 = parity of positions 1,3,5,7 p2 = parity of positions 2,3,6,7 p3 = parity of positions 4,5,6,7 d0-d3 = data bits ``` ## Error Handling | Syndrome | Overall Parity | Status | |----------|----------------|--------| | 0 | 0 | No error | | ≠0 | 1 | Single error (correctable) | | ≠0 | 0 | Double error (detected only) | | 0 | 1 | Single error in p0 (correctable) | ## Architecture | Component | Function | Neurons | |-----------|----------|---------| | Syndrome calc (s1,s2,s3) | XOR trees | ~63 | | Overall parity | XOR tree | ~21 | | Error logic | AND/OR | ~7 | | Data correction | Conditional XOR | ~12 | **Total: 95 neurons, 300 parameters, 4 layers** ## Capabilities - **Correct**: Any single-bit error - **Detect**: Any double-bit error - **Miss**: Triple+ errors may be miscorrected ## Test Coverage - 16 no-error cases: All pass - 128 single-error cases: All corrected - 448 double-error cases: All detected ## Usage ```python from safetensors.torch import load_file w = load_file('model.safetensors') # Example: data=5 (0101) # Encoded: 01010110 (with parity bits) # Flip bit 3: 01011110 # Decoder: corrects to data=5, error=1, uncorrectable=0 ``` ## Applications - ECC RAM (Error-Correcting Code memory) - Data storage systems - Communication channels - Safety-critical systems ## Files ``` threshold-sec-ded/ ├── model.safetensors ├── create_safetensors.py ├── config.json └── README.md ``` ## License MIT