Calcolatore bit di parità Hamming ECC
Trovi quanti bit di parità servono al minimo a un codice di Hamming: 4 bit di dati ne richiedono 3, il che dà il classico codice (7,4) senza sindromi libere. Vede anche la lunghezza totale e il tasso del codice. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Esempio risolto
- Bit di dati
- 4
- Bit di parità
- 3
- Bit totali
- 7
- Capacità di copertura
- 8
- Posizioni usate
- 8
I codici binari di Hamming proteggono parole di memoria, pagine flash e trame di collegamento aggiungendo pochi bit di parità così che un bit invertito possa essere localizzato e corretto a partire dalla sindrome. La prima domanda di progetto è quanti bit di parità r Le servono per un dato numero di bit di dati m. Questo calcolatore di bit di parità Hamming ECC risponde con la disuguaglianza classica di copertura: due elevato a r deve essere almeno m più r più uno, in modo che i 2^r sindromi distinti codifichino il caso senza errore e ogni errore di un solo bit tra gli n uguale a m più r bit codificati.
Perché 2^r deve coprire m + r + 1 pattern
Un codice Hamming binario a correzione di errore singolo di lunghezza n uguale a m più r memorizza m bit di informazione e r bit di parità. Dopo la trasmissione o la memorizzazione, il decodificatore calcola una sindrome a r bit. Sindrome zero significa che la parola ricevuta coincide con una parola di codice (nessun errore di un bit rilevato).
Ogni altra sindrome non zero deve indicare esattamente una delle n posizioni di bit che potrebbero essersi invertite, così il decodificatore può invertire quel bit e ripristinare la parola originale. Questo inventario richiede un pattern per il caso pulito e n pattern per i casi di errore singolo, cioè n più uno uguale a m più r più uno valori di sindrome distinti.
Poiché una sindrome a r bit ha solo due elevato a r valori possibili, la disuguaglianza due alla r maggiore o uguale a m più r più uno è necessaria. Quando vale l'uguaglianza il codice è perfetto: ogni sindrome è usata e non resta capacità di riserva per rilevare errori doppi senza un bit di parità globale aggiuntivo.
Esempi classici sono il codice (7,4) con m uguale a quattro e r uguale a tre (otto sindromi per sette posizioni più pulito), e il (15,11) con m uguale a undici e r uguale a quattro. Questo calcolatore trova il minimo r che soddisfa la disuguaglianza per ogni m lecito, così Lei non deve provare il vincolo a mano nel dimensionare un registro, una pagina di metadati ECC DRAM o una risposta d'esame.
Dove il dimensionamento di parità Hamming crea valore
I team di firmware e controller di memoria usano un calcolatore di bit di parità Hamming ECC quando devono sapere quanti bit di controllo pendono da un percorso dati prima di congelare una mappa di registri o un layout di area di riserva flash. I corsi di architettura dei calcolatori e teoria della codifica necessitano di un oracolo deterministico per i compiti che chiedono il minimo r dato m, comprese lunghezze non perfette in cui restano sindromi di riserva.
La preparazione ai colloqui beneficia di verifiche istantanee che quattro bit di dati richiedono tre di parità e undici ne richiedono quattro, senza ridisegnare ogni volta la matrice completa di controllo di parità. I progettisti di strato di collegamento e archiviazione confrontano il tasso m su n tra ampiezze di parola candidate per bilanciare overhead di affidabilità e larghezza di banda. La validazione fallita non consuma saldo.
Casi d'uso
Layout ECC di memoria e flash
Dimensioni quanti bit di parità Hamming pendono da una parola o pagina di dati prima di fissare la mappa dei registri, l'area di riserva o il budget di microcodice del controller.
Compiti ed esami di teoria della codifica
Verifichi il r minimo per qualsiasi m sotto 2^r ≥ m+r+1, inclusi i casi perfetti (7,4) e (15,11) e le lunghezze non perfette con sindromi di riserva.
Colloqui e compromessi di progetto
Confronti la lunghezza totale n e il tasso m/n tra ampiezze di dati candidate nello spiegare l'overhead Hamming a correzione di errore singolo.
Domande frequenti
Quanti bit di parità serve un codice di Hamming per m bit di dati?
Il minimo intero r tale che 2^r ≥ m + r + 1.
Perché la disuguaglianza è 2^r ≥ m + r + 1?
Una sindrome a r bit ha 2^r valori: uno senza errore e uno per posizione di bit codificato che può invertirsi. Servono m+r+1 pattern, quindi 2^r deve coprirli.
Include la parità globale dell'Hamming esteso (SECDED)?
No. Questo calcolatore restituisce il r minimo solo per la correzione di errore singolo Hamming binario. Il SECDED esteso aggiunge un bit di parità globale extra sopra quel r.
Quanti bit di parità servono per 11 bit di dati?
Quattro. Due alla quarta copre esattamente 11 bit di dati, più 4 bit di parità, più il caso senza errori. È il classico codice di Hamming (15,11), che usa tutte le sindromi senza lasciarne libera nessuna.
Che cosa rende perfetto un codice di Hamming?
Il fatto che tutte le sindromi siano usate: una per il caso senza errori e una per ogni posizione di bit. I codici (7,4) e (15,11) sono perfetti, quindi non hanno margine per rilevare anche gli errori doppi senza un bit di parità globale in più.
Strumenti correlati
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo stack
curl -X POST https://api.kit.forhosting.com/dev/ecc-parity-bits \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"data_bits":4}'const res = await fetch("https://api.kit.forhosting.com/dev/ecc-parity-bits", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"data_bits": 4
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/ecc-parity-bits",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"data_bits": 4
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/ecc-parity-bits", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"data_bits":4}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"data_bits":4}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/ecc-parity-bits", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Esempio di richiesta
{
"data_bits": 4
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.ecc_parity_bits",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |
Note tecniche
Inserisca m come intero positivo; l'endpoint restituisce il r minimo, la lunghezza totale del codice n, la capacità di copertura, quanti pattern di sindrome sono usati rispetto a quelli di riserva, e il tasso di codice m su n. L'ingresso non valido fallisce con invalid_input e non viene addebitato.
Contratto di ingresso, campi di risposta e numeri risolti
Invii con POST un corpo JSON con un campo obbligatorio: data_bits, un intero da uno a un milione incluso. I valori possono arrivare come interi JSON o stringhe numeriche; campi assenti, non interi, zero, negativi, non finiti e valori oltre il massimo documentato falliscono con invalid_input indicando il problema. Esempio: data_bits quattro produce parity_bits tre, total_bits sette, covering_capacity otto, positions_used otto, spare_syndromes zero e code_rate circa zero punto cinque sette uno quattro—i parametri Hamming (7,4) da manuale. Esempio: data_bits uno produce parity_bits due e total_bits tre, perché due alla due uguale a quattro copre uno più due più uno. Esempio: data_bits otto richiede parity_bits quattro (sedici copre otto più quattro più uno uguale a tredici) con tre sindromi di riserva. Abbini i conteggi al Suo schema di disposizione dei bit se serve la numerazione delle posizioni (parità alle potenze di due); questo endpoint restituisce solo le figure di dimensionamento r e n, mai un payload codificato né una matrice di bit.
Dove il dimensionamento di parità Hamming crea valore
Poiché l'implementazione è parse puro di livello A, ogni chiamata riuscita costa il prezzo base pubblicato $0.002 senza token di modello e senza rete in uscita. Mantenga data_bits nell'intervallo documentato, fissi i campi interi nei test e otterrà un dimensionamento SEC riproducibile per aule, plugin LMS e worker al bordo senza montare una libreria completa di teoria della codifica.
Domande tecniche
Quali sono i parametri per 4 bit di dati?
parity_bits=3, total_bits=7, covering_capacity=8, spare_syndromes=0—il classico codice Hamming perfetto (7,4).
Quanto costa il calcolatore di bit di parità Hamming ECC?
Lo strumento nel browser è gratuito. Le richieste API usano il saldo prepagato KIT a $0.002 per chiamata riuscita; l'ingresso non valido non viene addebitato.