Inicio Controlador SSD

Controlador SSD

Controlador SSD

Un controlador SSD, también conocido como procesador, incluye la electrónica que une los componentes de la memoria Flash con las interfaces de entrada/salida SSD. El controlador es un procesador incorporado que ejecuta software a nivel de firmware. El firmware SSD es específico del dispositivo y, en la mayoría de los casos, se puede actualizar.

Controlador SSD
Ver imagen más grande

Un controlador SSD, también conocido como procesador, incluye la electrónica que une los componentes de la memoria Flash con las interfaces de entrada/salida SSD. El controlador es un procesador incorporado que ejecuta software a nivel de firmware. El firmware SSD es específico del dispositivo y, en la mayoría de los casos, se puede actualizar.

Controlador SSD
Ver imagen más grande

Los controladores SSD convencionales incluyen los siguientes elementos eléctricos, muchas veces contenidos dentro de un solo circuito integrado (IC):

  • Procesador integrado: generalmente un microcontrolador de 32 bits
  • ROM de firmware de datos borrable eléctricamente
  • RAM del sistema
  • Compatibilidad con RAM externa, generalmente DDR/DDR2 como SDRAM
  • Circuito de código de corrección de errores (ECC)
  • Interfaz de componente flash: generalmente una interfaz estándar como Open NAND Flash Interface (ONFI)
  • Interfaz eléctrica del host: generalmente SATA, USB, SAS o una combinación

Aunque la mayoría de los productos SSD en el mercado utilizan componentes Flash estándar, hay nuevos componentes Flash disponibles que integran el ECC y, en algunos casos, toda la función del controlador dentro de los propios chips Flash. Por el bien de este artículo, nos centraremos en las facciones de controlador tradicionales que se enumeran anteriormente.

Elementos del controlador SSD
Elementos típicos del controlador SSD

La siguiente tabla describe cada uno de estos elementos con más detalle.

 

Elementos del controlador
Descripción original
Uso
Procesador
Microcontrolador integrado de 16 o 32 bits, programado en C en la mayoría de los casos y compilado para ejecutarse en el motor de la CPU de destino.
Ejecución de firmware para la aplicación Flash principal, así como funciones de diagnóstico (SMART), nivelación de desgaste (recolección de basura/TRIM), almacenamiento en caché y seguridad.
Corrección de errores (ECC)
Una función de hardware que agrega bits de redundancia con cada byte almacenado para proporcionar detección y corrección de errores de datos en la lectura. 
La detección y corrección de errores de datos se realiza automáticamente en el hardware ECC para lograr una tasa de error de confiabilidad de datos del orden de 1 bit 10E-12.
Controlador de flash
Contiene el direccionamiento, el bus de datos y el control para administrar uno o más componentes Flash. Un controlador SSD típico administrará hasta 512 GB de Flash. 
Por lo general, la interfaz flash NAND abierta (ONFI) de 8 bits para flash NAND estándar.
 
Por lo general, puede controlar hasta 16 componentes Flash.
Controlador DRAM
Contiene el direccionamiento, el bus de datos y el control para administrar uno o más componentes DRAM. Un controlador SSD típico puede administrar hasta 256 MB de DRAM.
La DRAM se utiliza principalmente como memoria intermedia para hacer coincidir el flujo de datos desde la matriz Flash hasta la interfaz de E/S. Esta memoria también se puede utilizar como caché de datos para mejorar el rendimiento general. Esto requiere programación de firmware
Interfaz de E/S (es decir: SATA)
Contiene la interfaz eléctrica nativa según un estándar de sistema abierto en particular, como SATA, USB o SAS. La interfaz está controlada por el controlador de firmware del controlador. El direccionamiento básico y el protocolo de enlace se realizan en hardware.
Algunos controladores permiten la transferencia de datos entre interfaces, como USB y SATA, sin la intervención del controlador en el flujo de datos.
Memoria del controlador
Compuesto por memoria programada (ROM) y memoria RAM de scratchpad/búfer estrechamente acoplada al procesador. Esta memoria es utilizada por el controlador para la ejecución del programa y para almacenar valores de scratchpad. En algunas aplicaciones de costos limitados, la RAM actúa como el único búfer de datos para el SSD.
Por lo general, es de 32 a 64 KB de ROM y de 128 a 256 KB de RAM.
Configuración de chips
Establece la configuración para los tipos y velocidades de las partes de memoria utilizadas, entradas de reloj, E/S de diagnóstico y salidas de estado de LED.
Varía según el proveedor.
E / S general
Pines programables de propósito general disponibles para la aplicación.  
Por lo general, se proporcionan 4-16 pines.
Embalaje
 
BGA de 281 pines es común
LQFP de 208 pines es común
 

Controladores SSD de uso común

Los controladores SSD comunes en el mercado a principios de 2010 incluyen:

  • Indilinx "Descalzo ECO" IDX110MO1
  • Indilinx "Descalzo" IDX110M00
  • Intel PC29AS21BA0
  • Micron JMF602
  • Micron JMF612
  • Marvel 88SS9174-BJP2
  • Samsung S3C29RBB01-YK40
  • Fuerza de arena SF-1200
  • Fuerza de arena SF-1500
  • Toshiba T6UG1XBG

Los diseñadores de sistemas realizan una serie de compensaciones cuando seleccionan un proveedor y un controlador particular para su producto y mercado objetivo. 

Las compensaciones incluyen:

  • Programático: costo, cronograma, soporte, garantía y disponibilidad.
  • Técnico: rendimiento, potencia, opciones de paquete, características, escalabilidad y flexibilidad.
  • Otros: características comunes, compatibilidad, documentación, soporte de desarrollo, pruebas y reputación.

En el proceso de selección del controlador, el diseñador del sistema también realiza el mismo análisis para las piezas Flash y otras piezas necesarias en el diseño. Es un proceso iterativo para encontrar la combinación correcta de proveedores y componentes para cumplir mejor con los requisitos de un producto en particular.

Debido a preocupaciones de propiedad, no todos los datos de diseño del controlador están disponibles para el público en general a través de Internet. Sin embargo, hay una cantidad significativa de detalles de aplicación que se pueden aprender para cada uno de los controladores SSD en el mercado al estudiar su uso en SSD existentes.

Reseñas sobre StorageReview.com y en otros lugares ayudarán a discernir las ventajas de cada controlador y su efecto en el SSD. Estas referencias contextuales son importantes porque, por más crítico que sea el controlador en el rendimiento de una SSD, el rendimiento de las SSD puede variar entre dos proveedores diferentes, aunque usen exactamente el mismo componente de controlador de SSD.

En general, esta variación de rendimiento se debe a que los dos diseños usaron diferentes partes de Flash, una cantidad diferente de partes de Flash, una cantidad diferente de memoria de búfer de caché o tal vez usaron firmware optimizado de alguna manera. El punto es que el controlador SDD es solo una parte del diseño general de un sistema SSD y, si bien es fundamental para el rendimiento, no es el único factor a considerar al tomar una decisión de compra de SSD.

Guías relacionadas:

Volver a la Guía de SSD