Questo articolo delinea gli elementi di base e i principi alla base della tecnologia Die RAID oltre che il modo in cui viene usato per rinforzare la correzione degli errori nei Drive a Stato Solido (SSD). Con Die RAID l'insorgere dei nuovi tentativi di lettura può essere ritardato grazie al livello aggiuntivo decisionale nella determinazione dei valori di bit. Ciò significa un aumento nell'integrità dati oltre che una durata di vita del dispositivo più stabile.
Introduzione:
La correzione degli errori è una funzione essenziale in tutti i prodotti di archiviazione e memorizzazione. Che gli errori siano dovuti a prodotti che si avvicinano alla fine della loro vita utile o ad eventi come le radiazioni cosmiche, i bit di errore si verificano sempre. Dato che la legge di Moore ha portato i nostri semiconduttori adimensioni sempre più piccole e capacità sempre maggiori, il problema dei bit di errore, col passare degli anni, non ha fatto che aumentare. Senza nessuna contromisura, i moderni dispositivi NAND flash si guasterebbero dopo un periodo di tempo relativamente breve.
Ed è qui che entra in gioco Die RAID, che si pone come uno degli strumenti per correggere i bit di errore, ed è anche uno dei motivi per i quali i Drive a Stato Solido (SSD) hanno delle capacità inferiori alla potenza di due. Le unità SSD impegnano dello spazio per i dati di parità utilizzati per correggere eventuali bit di errore che altre funzioni di correzione non sono riuscite a risolvere. Ecco perché Die RAID, in combinazione con altre funzioni di correzione degli errori, come ad esempio LDPC, è uno dei metodi più potenti disponibili per aumentare il numero di cicli Programmazione/Cancellazione (Program/Erase) oltre che per garantireperformance delle unità flash nel tempo.
Informazioni di carattere generale:
Codice BCH: è un metodo di correzione degli errori particolarmente popolare, utilizzato nelle flash NAND, e viene utilizzato anche per la comunicazione satellitare per processi decisionali complessi. BCH ha raggiunto l'ubiquità quasi totale nel mercato degli SSD, grazie alla sua efficacia. Tuttavia, date le recenti limitazioni, alla luce dei progressi nel campo della tecnologia flash NAND, assistiamo alla sostituzione da parte di LDPC (Low-Density Parity Check) come metodo ECC preferito per gli SSD.
Codice LDPC: è attualmente la funzione ECC standard per la maggior parte degli SSD. Rispetto al codice BCH, vanta una capacità di correzione degli errori molto più potente. Utilizza un processo decisionale soft che, spiegato in parole semplici, consente un'identificazione più accurata della stringa di bit originale dopo che si è verificato un errore.
Array ridondante di dischi indipendenti (RAID): Il RAID consente metodi diversi per disporre di due o più drive di archiviazione al fine di garantire una buona integrità dei dati (e/o prestazioni migliori). Ai fini dell'integrità dei dati, questa operazione può essere fatta tramite mirroring, striping e memorizzazione dei dati di parità. Il mirroring copia i dati da un drive a un altro garantendo che un gruppo di dati sia disponibile anche se l'altro drive registra un errore (RAID 1). I dati di parità vengono usati nelle configurazioni di tre o più drive che salvano un set di dati di parità su un drive che può essere utilizzato per ripristinare i dati da qualsiasi altro drive che registra un errore (RAID 5). Lo striping descrive il modo in cui i set di dati vengono scritti nei diversi dispositivi, invece di essere salvati tutti su un drive.
Funzione XOR: La funzione XOR descrive il metodo di base con il quale viene deciso un bit di parità:
Il bit di parità viene deciso sull'input. Quanto l'input è diverso (01, 10) la parità è vera (1), il che consente di avere un output di 1. Il bit di parità è falso (0) se l'input è lo stesso (00, 11).
Usiamo un esempio per vedere in che modo vengono calcolati i bit di parità fra tre sequenze a 7-bit:
Stringa 1: 1010011
Stringa 2: 1111001
Stringa 3: 1101100
Parità: 1000110
Se i dati dalla stringa 1, 2 o 3 vanno persi, possono essere ricostruiti usando la stringa di parità, questa logica può essere usata per aggiungere ulteriori stringhe di dati. Si chiama "parità pari", dato che l'elemento inserito (3 numeri) più il bit di parità porta sempre a un numero pari. Osservando l'ultimo numero di ogni stringa (1100), cioè l'ultima colonna, si vede che l'ingresso ne ha già due, rendendo così l'uscita 0. Questo significa anche che qualora ci fosse una colonna con un numero dispari, sarebbe sintomo del fatto che si è verificato un errore in fase di trascrizione dei dati.
Sfide:
Aumento del tasso di bit di errore: la riduzione delle dimensioni fisiche delle celle flash NAND ci consente di aggiungere più celle per unità di area, il che ci offre a sua volta una maggiore capacità per IC. Ciò comporta tuttavia anche un maggiore rischio di interferenza per la carica intrappolata all'interno della cella, che a sua volta porta ad un aumento del tasso di bit di errore.
Questo aspetto viene ulteriormente aggravato dal fatto che ogni cella è fatta per contenere più bit, il che significa che il buffer tra ogni livello di tensione diminuisce e che è più probabile che si verifichino errori di lettura. Ad esempio, una cella MLC deve eseguire una separazione fra 4 livelli di tensione (00, 01, 10, 11) mentre le celle TLC separano fra 9 (000 → 111).
Soluzioni:
Di seguito indicheremo nel dettaglio il funzionamento di Die RAID facendo capire perché si tratta di una preziosa aggiunta a una soluzione standard ECC LDPC.
Principio Die RAID: segue lo stesso principio che adotta il RAID per i drive di archiviazione (RAID 5). Anziché eseguire lo striping dei dati nei drive, Die RAID esegue lo striping dei dati nei diversi DIE con un buffer di parità aggiunto a ogni set. Il principio viene spiegato nella seguente immagine:
Nell'esempio qui sopra, abbiamo prima i dati ricevuti dall'SSD (A) che corrispondono a 8 blocchi. Questi dati entrano nel motore RAID (B) che aggiunge un blocco di dati di parità (C) che poi compone il set dati completo che viene, in ultima analisi, scritto sull'SSD (D). Questo set dati viene poi scritto in tutti i die in quelli che vengono chiamati Super Blocchi (Super Block).
Congiuntamente all'over-provisioning, il Die RAID occuperà un po' di spazio sull'SSD. La seguente tabella mostra un esempio della differenza di distribuzione fra un SSD con Die Raid con un SSD standard.
Il processo Die Raid: Il motore RAID ubicato nel controller è l'elemento che decide come salvare i dati ricevuti dall'unità SSD. Il motore costruisce gli strip RAID ed eseguirà anche il ripristino RAID se i bit di errore vengono rilevati e altre funzioni ECC non riescono a mitigare il problema. In altre parole, quando il comando di lettura dati viene inviato, viene come prima cosa inviato al motore LDPC (cfr. la seguente figura). Se i dati vengono corretti o qualsiasi bit di errore viene corretto dal motore LDPC i dati vengono letti senza problemi. Se il motore LDPC non è in grado di correggere il bit di errore, il motore Die RAID eseguirà il ripristino per risolvere l'errore; qualora ciò non sia possibile, il blocco verrà contrassegnato come guasto.
Ciò significa che Die RAID agisce come un livello di difesa aggiuntivo contro i bit di errore e, in ultima analisi, aumenterà la durata di vita di qualsiasi SSD. Ed è proprio per questo motivo che si raccomanda come impostazione predefinita per ogni SSD di ritardare l'inizio dei tentativi di lettura e di aumentare il numero complessivo del ciclo P/E (cfr. grafico sottostante).
Conclusioni:
Vedere che un parte della capacità dell'SSD è riservato alla correzione degli errori, in prima battuta, può causare confusione. Ma quando si comprende la necessità di durata di un'unità SSD, in particolar modo in campo industriale, il Die RAID assicura notevoli progressi per garantire una maggiore durata di vita e una maggiore integrità complessiva dei dati. Ed è proprio per questo motivo che consigliamo di includere il Die RAID in qualsiasi applicazione che registra un carico di lavoro di dati da moderato ad elevato per garantire che l'SSD possa continuare a garantire prestazioni a lungo termine e integrità dei dati. Tutti i prodotti Innodisk basati su flash 3D TLC integrano a bordo la tecnologia Die RAID.
Link Utili:
MEMORIE FLASH 3D TLC CON TECNOLOGIA DIE RAID