La entrada/salida serial de propósito general (SGPIO) es un bus de cuatro señales (o cuatro hilos) que se utiliza entre un adaptador de bus de host (HBA) y un backplane . De las cuatro señales, tres son controladas por el HBA y una por el backplane. Normalmente, el HBA es un controlador de almacenamiento ubicado dentro de un servidor, ordenador de sobremesa, rack o estación de trabajo que se conecta con discos duros o unidades de estado sólido para almacenar y recuperar datos. Se considera una extensión del concepto de entrada/salida de propósito general (GPIO). La especificación SGPIO es mantenida por el Comité de Factor de Forma Pequeño en el estándar SFF-8485 . La Interpretación Internacional de Patrones de Parpadeo (IPRP) indica cómo se interpretan las señales SGPIO en diodos emisores de luz (LED) intermitentes en matrices de discos y backplanes de almacenamiento.
Historia
SGPIO se desarrolló en 2004 como una colaboración de ingeniería entre American Megatrends Inc., en aquel entonces fabricante de placas base, y LSI-Logic. Posteriormente, el comité SFF publicó SGPIO como la especificación SFF-8485 .
Adaptadores de bus host

La señal SGPIO consta de cuatro señales eléctricas y, por lo general, proviene de un adaptador de bus de host (HBA). Los conectores iPass (normalmente SFF-8087 o SFF-8484) transmiten tanto las conexiones eléctricas SAS/SATA entre el HBA y los discos duros como las cuatro señales SGPIO.
Placas posteriores con interfaz de bus SGPIO

Una placa base es una placa de circuito impreso con conectores y circuitos de alimentación a la que se conectan los discos duros; puede tener varias ranuras, cada una de las cuales puede albergar un disco duro. Normalmente, la placa base está equipada con LED que, mediante su color y actividad, indican el estado de la ranura; por lo general, el LED de una ranura emite un color o un patrón de parpadeo específico para indicar su estado actual.
Interpretación de SGPIO y patrones de parpadeo del LED
Aunque muchos fabricantes de hardware definen su propio patrón de parpadeo de LED, el estándar común para la interpretación de SGPIO y el patrón de parpadeo de LED se puede encontrar en la especificación IBPI .
En los backplanes, los proveedores suelen usar 2 o 3 LED por ranura ; en ambas implementaciones, un LED verde indica presencia y/o actividad . Para los backplanes con 2 LED por ranura, el segundo LED indica Estado, mientras que en los backplanes con 3 LED, el segundo y el tercero indican Localizar y Fallo .
Características eléctricas del bus SGPIO
El bus SGPIO consta de 4 líneas de señal y se origina en la HBA, denominada iniciador , y termina en un plano posterior , denominado destino . Si no hay un plano posterior (o destino ), la HBA aún puede controlar el bus sin dañar el sistema; si existe, puede comunicarse con la HBA mediante el cuarto cable.
El bus SGPIO es un bus de colector abierto con resistencias pull-up de 2,0 kΩ ubicadas en el HBA y el plano posterior; como en cualquier bus de colector abierto, la información se transfiere mediante dispositivos en el bus que llevan las líneas a tierra (GND) utilizando un transistor de colector abierto o un FET de drenaje abierto .
Líneas de señal del bus SGPIO
Reloj SC
El bus SGPIO dispone de una línea de reloj dedicada controlada por el iniciador (su frecuencia de reloj máxima es de 100 kHz), aunque muchas implementaciones utilizan frecuencias más bajas (normalmente de 48 kHz).
Carga lenta
Esta línea es síncrona con el reloj y se utiliza para indicar el inicio de una nueva trama de datos. Una nueva trama SGPIO se indica cuando SLoad se encuentra en nivel alto en el flanco ascendente del reloj, después de haber estado en nivel bajo durante al menos 5 ciclos de reloj. Los siguientes 4 flancos descendentes del reloj, tras la condición de inicio, se utilizan para transmitir un valor de 4 bits desde el HBA al plano posterior. La definición de este valor es propietaria y varía entre los fabricantes de sistemas.
Salida de datos
Esta línea transporta 3 bits de datos desde el HBA al plano posterior: el primer bit normalmente indica actividad ; el segundo bit indica localización ; y el tercer bit indica fallo . Un valor bajo para el primer bit indica ausencia de actividad y un valor alto indica actividad .
SDataIn
Esta línea la utiliza el plano posterior e indica el estado de dicho plano hasta la HBA. El primer bit en estado alto suele indicar la presencia de una unidad. Los dos bits siguientes normalmente no se utilizan y se mantienen en estado bajo. Dado que esta línea estaría en estado alto para los tres bits cuando no hay ningún plano posterior conectado, una HBA puede detectar la presencia de un plano posterior si el segundo o el tercer bit de SDataIn se mantienen en estado bajo.
A continuación, las operaciones SDataIn y SdataOut se repiten con 3 ciclos de reloj por unidad hasta que se alcanza la última unidad, y el ciclo vuelve a empezar.
Implementación de SGPIO
Existen distintas formas de implementar el bus SGPIO entre los fabricantes de adaptadores HBA y controladores de almacenamiento: algunos fabricantes envían un flujo continuo de datos, lo cual resulta ventajoso para actualizar rápidamente los LED de un plano posterior después de desconectar y volver a conectar los cables, mientras que otros envían datos solo cuando es necesario actualizar el patrón de los LED.
Adopción de la especificación SGPIO
El estándar SGPIO y su especificación se adoptan e implementan generalmente en productos de la mayoría de los principales fabricantes de controladores HBA y de almacenamiento, como LSI , Intel , Adaptec , Nvidia , Broadcom , Marvell Technology Group y PMC-Sierra . La mayoría de los productos compatibles con unidades SAS y SATA son compatibles con este estándar.
Condiciones de tiempo de espera de SGPIO
La especificación SGPIO exige que el dispositivo de destino apague todos los indicadores cuando SClock, SLoad y SDataOut hayan estado en estado alto durante 64 ms; sin embargo, en la práctica, no todos los fabricantes cumplen con esta norma. Además, en las implementaciones de algunos fabricantes, el reloj puede detenerse esporádicamente o interrumpirse durante o entre ciclos. Otra variación, bastante poco práctica, entre los fabricantes reside en el estado en el que queda el reloj tras un ciclo.
Implementaciones de placa base del bus SGPIO
La idea detrás de esta especificación era poder usar CPLD o microcontroladores de bajo costo en un plano posterior para controlar LEDs; en la práctica, se ha descubierto que existen variaciones en la temporización e interpretación de los bits entre los diferentes fabricantes, por lo que un CPLD simple solo funcionaría para una implementación específica probada exhaustivamente con un producto de un solo fabricante. Un microcontrolador es más adecuado para este propósito, aunque el bus personalizado de interfaz SGPIO de 4 bits no está implementado en ellos : el muestreo de las líneas de 4 bits mediante operaciones de bits de 100 kHz de GPIO es demasiado lento para que muchos microcontroladores de bajo costo lo manejen mientras manejan LEDs y otras funciones simultáneamente. La longitud del flujo de bits varía entre HBA o controlador de almacenamiento; algunos fabricantes detendrán el flujo de bits al llegar a la unidad deseada, mientras que otros lo mantendrán sincronizado hasta el final. Los flujos de bits de algunos expansores SAS pueden tener hasta 108 (36×3) bits.
La implementación más segura que garantiza la compatibilidad entre todos los proveedores de HBA y controladores de almacenamiento es utilizar un ASIC , específicamente, una combinación de un núcleo de microcontrolador con una interfaz SGPIO de hardware; este concepto se implementó en una serie de chips controladores de plano posterior denominados MG9071 , MG9072 , MG9077 y MG9082 .
Estos chips reciben uno o dos flujos SGPIO y controlan los LED según corresponda. El último chip de AMI, el MG9077 , se puede configurar mediante resistencias pull-up y pull-down para adaptarse a 16 configuraciones diferentes de buses SGPIO y controlar los LED de acuerdo con ello. Desde que AMI lanzó estos chips, importantes fabricantes de equipos originales (OEM) , como NEC , Hitachi , Supermicro , IBM , Sun Microsystems y otros, los utilizan en sus placas base para recibir los flujos SGPIO de diversos proveedores de HBA y chips controladores integrados, y así controlar los LED de forma consistente con un patrón de parpadeo predeterminado.
Enlaces externos
- Especificación SFF-8485 para bus GPIO serie (SGPIO)
- Documentos SFF (Documentos y especificaciones)
- Protocolos de comunicación
- SCSI
- Autobuses en serie