Un controller SSD, chiamato anche processore, include l'elettronica che collega i componenti della memoria Flash alle interfacce di ingresso/uscita dell'SSD. Il controller è un processore integrato che esegue software a livello di firmware. Il firmware SSD è specifico del dispositivo e nella maggior parte dei casi può essere aggiornato.
Un controller SSD, chiamato anche processore, include l'elettronica che collega i componenti della memoria Flash alle interfacce di ingresso/uscita dell'SSD. Il controller è un processore integrato che esegue software a livello di firmware. Il firmware SSD è specifico del dispositivo e nella maggior parte dei casi può essere aggiornato.
I controller SSD tradizionali includono i seguenti elementi elettrici, molte volte contenuti all'interno di un singolo circuito integrato (IC):
- Processore incorporato: solitamente un microcontrollore a 32 bit
- ROM firmware dati cancellabile elettricamente
- RAM di sistema
- Supporto per RAM esterna – solitamente DDR/DDR2 come SDRAM
- Circuiti ECC (Error Correction Code).
- Interfaccia del componente Flash: solitamente un'interfaccia standard come Open NAND Flash Interface (ONFI)
- Interfaccia elettrica host: solitamente SATA, USB, SAS o una combinazione
Sebbene la maggior parte dei prodotti SSD sul mercato utilizzi componenti Flash standard, sono disponibili nuovi componenti Flash che integrano l'ECC e, in alcuni casi, l'intera funzione del controller all'interno dei chip Flash stessi. Per il bene di questo articolo, ci concentreremo sulle tradizionali fazioni dei controller elencate sopra.
Elementi tipici del controller SSD
La tabella seguente descrive ciascuno di questi elementi in modo più dettagliato.
Elementi del controllore
|
Descrizione
|
Impiego
|
Processore
|
Microcontrollore incorporato a 16 o 32 bit, programmato in C nella maggior parte dei casi e compilato per funzionare sul motore CPU di destinazione.
|
Esecuzione del firmware per l'applicazione Flash principale nonché funzioni di diagnostica (SMART), livellamento dell'usura (Garbage Collection/TRIM), caching e sicurezza.
|
Correzione degli errori (ECC)
|
Una funzione hardware che aggiunge bit di ridondanza a ciascun byte memorizzato per fornire il rilevamento e la correzione degli errori dei dati dopo la lettura.
|
Il rilevamento e la correzione degli errori dei dati vengono eseguiti automaticamente nell'hardware ECC per ottenere un tasso di errore di affidabilità dei dati dell'ordine di 1 bit 10E-12.
|
Controller flash Flash
|
Contiene l'indirizzamento, il bus dati e il controllo per la gestione di uno o più componenti Flash. Un tipico controller SSD gestirà fino a 512 GB di Flash.
|
Tipicamente l'interfaccia Open NAND Flash (ONFI) a 8 bit per flash NAND standard.
In genere può controllare fino a 16 componenti Flash.
|
Controllore DRAM
|
Contiene l'indirizzamento, il bus dati e il controllo per la gestione di uno o più componenti DRAM. Un tipico controller SSD può gestire fino a 256 MB di DRAM.
|
La DRAM viene utilizzata principalmente come memoria buffer per far corrispondere il flusso di dati dall'array Flash all'interfaccia I/O. Questa memoria può essere utilizzata anche come cache di dati per migliorare le prestazioni generali. Ciò richiede la programmazione del firmware
|
Interfaccia I/O (es.: SATA)
|
Contiene l'interfaccia elettrica nativa per un particolare standard di sistema aperto come SATA, USB o SAS. L'interfaccia è controllata dal driver del firmware del controller. L'indirizzamento e l'handshaking di base vengono eseguiti nell'hardware.
|
Alcuni controller consentono il trasferimento di dati tra interfacce, come USB e SATA, senza l'intervento del controller nel flusso di dati.
|
Memoria del controllore
|
Composto da memoria programmata (ROM) e RAM buffer/blocco note strettamente accoppiati al processore. Questa memoria viene utilizzata dal controller per l'esecuzione del programma e per memorizzare i valori dello scratchpad. In alcune applicazioni con costi limitati, la RAM funge da unico buffer di dati per l'SSD.
|
In genere è 32-64KB di ROM e 128-256KB o RAM.
|
Configurazione del chip
|
Definisce le impostazioni per i tipi e le velocità delle parti di memoria utilizzate, degli ingressi di clock, degli I/O diagnostici e delle uscite di stato dei LED.
|
Varia in base al fornitore.
|
I / O generale
|
Pin programmabili per uso generale disponibili per l'applicazione.
|
In genere vengono forniti 4-16 pin.
|
Packaging
|
|
Il BGA a 281 pin è comune
LQFP a 208 pin è comune
|
Controller SSD comunemente utilizzati
I comuni controller SSD sul mercato dall'inizio del 2010 includono:
- Indilinx "Barefoot ECO" IDX110MO1
- Indilinx "A piedi nudi" IDX110M00
- IntelPC29AS21BA0
- JMicronJMF602
- JMicronJMF612
- Marvel88SS9174-BJP2
- Samsung S3C29RBB01-YK40
- SandForceSF-1200
- SandForceSF-1500
- Toshiba T6UG1XBG
I progettisti di sistema eseguono una serie di compromessi quando selezionano un fornitore e un particolare controller per il loro prodotto e mercato target.
I compromessi includono:
- Programmatica: costi, pianificazione, supporto, garanzia e disponibilità.
- Tecnica: prestazioni, potenza, opzioni del pacchetto, funzionalità, scalabilità e flessibilità.
- Altro: elementi comuni, compatibilità, documentazione, supporto allo sviluppo, test e reputazione.
Nel processo di selezione del controller, il progettista del sistema esegue la stessa analisi anche per le parti Flash e altre parti necessarie nella progettazione. È un processo iterativo per trovare la giusta combinazione di fornitori e componenti per soddisfare al meglio i requisiti di un particolare prodotto.
Per motivi di proprietà, non tutti i dati di progettazione del controller sono disponibili al pubblico in generale su Internet. È tuttavia possibile apprendere una quantità significativa di dettagli applicativi per ciascuno dei controller SSD sul mercato studiando il loro utilizzo negli SSD esistenti.
Recensioni su StorageReview.com e altrove aiuteranno a discernere i vantaggi di ciascun controller e il suo effetto sull'SSD. Questi riferimenti contestuali sono importanti perché, per quanto il controller sia fondamentale per le prestazioni di un SSD, le prestazioni degli SSD possono variare tra due diversi fornitori anche se utilizzano esattamente lo stesso componente del controller SSD.
Generalmente questa variazione di prestazioni è dovuta al fatto che i due progetti utilizzavano parti Flash diverse, un numero diverso di parti Flash, una quantità diversa di memoria buffer cache o forse utilizzavano in qualche modo firmware ottimizzato. Il punto è che il controller SDD è solo una parte della progettazione complessiva di un sistema SSD e, sebbene sia fondamentale per le prestazioni, non è l'unico fattore da considerare quando si prende una decisione sull'acquisto di un SSD.
Guide correlate:
Ritorna al Guida all'SSD