La entrada / salida serial de propósito general (SGPIO) es un bus de cuatro señales (o cuatro cables) que se usa entre un adaptador de bus de host (HBA) y un backplane . De las cuatro señales, tres son impulsadas por el HBA y una por el backplane. Por lo general, el HBA es un controlador de almacenamiento ubicado dentro de un servidor, computadora de escritorio, rack o estación de trabajo que interactúa con unidades de disco duro 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 del patrón de parpadeo internacional indica cómo se interpretan las señales SGPIO en diodos emisores de luz (LED) parpadeantes en las matrices de discos y las placas posteriores de almacenamiento.
Historia
SGPIO se desarrolló como una colaboración de ingeniería entre American Megatrends Inc, en la época en que se fabricaban los backplanes, y LSI-Logic en 2004. Posteriormente, SGPIO fue publicado por el comité SFF como especificación SFF-8485 .
Adaptadores de bus de host
La señal SGPIO consta de 4 señales eléctricas; normalmente se origina en un adaptador de bus de host (HBA). Los conectores iPass (generalmente SFF-8087 o SFF-8484) llevan conexiones eléctricas SAS / SATA entre el HBA y los discos duros, así como las 4 señales SGPIO.
Backplanes con interfaz de bus SGPIO
Un backplane es una placa de circuito con conectores y circuitos de alimentación a los que se conectan los discos duros; pueden tener varias ranuras, cada una de las cuales se puede llenar con un disco duro. Normalmente, la placa trasera está equipada con LED que, por su color y actividad, indican el estado de la ranura; normalmente, el LED de una ranura emitirá un color particular o un patrón de parpadeo para indicar su estado actual.
Interpretación SGPIO y patrones de parpadeo de LED
Aunque muchos proveedores de hardware definen su propio patrón de parpadeo de LED patentado, el estándar común para la interpretación SGPIO y el patrón de parpadeo de LED se pueden encontrar en la especificación IBPI .
En los planos posteriores, los proveedores utilizan normalmente 2 o 3 LED por ranura; en ambas implementaciones, un LED verde indica presencia y / o actividad; para los planos posteriores con 2 LED por ranura, el segundo LED indica el estado, mientras que en los planos posteriores con 3 Los LED segundo y tercero indican localizar y fallar .
Características eléctricas del bus SGPIO
El bus SGPIO consta de 4 líneas de señal y se origina en el HBA, denominado iniciador y termina en un plano posterior , denominado destino . Si no hay un plano posterior (o un objetivo ), el HBA aún puede conducir el bus sin dañar el sistema; si existe, se puede comunicar con el HBA utilizando 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, ya que en cualquier bus de colector abierto la información es transferida por dispositivos en el bus que tiran de las líneas a tierra (GND) usando un transistor colector o FET de drenaje abierto .
Líneas de señal del bus SGPIO
SClock
El bus SGPIO tiene una línea de reloj dedicada impulsada por el iniciador (su frecuencia de reloj máxima es de 100 kHz), aunque muchas implementaciones usan otras más lentas (típicamente 48 kHz).
SLoad
Esta línea es síncrona al reloj y se utiliza para indicar el inicio de una nueva trama de datos; una nueva trama SGPIO se indica si SLoad es alto en un flanco ascendente de un reloj después de haber estado bajo durante al menos 5 ciclos de reloj. Los siguientes 4 flancos de reloj descendentes después de una condición de inicio se utilizan para transportar un valor de 4 bits desde el HBA al plano posterior; la definición de este valor es propietaria y varía entre los proveedores de sistemas.
SDataOut
Esta línea transporta 3 bits de datos desde el HBA al backplane: el primer bit típicamente transporta actividad ; el segundo bit lleva localizar ; y el tercer bit acarrea falla . Un valor bajo para el primer bit indica que no hay actividad y un valor alto indica actividad .
SDataIn
Esta línea es utilizada por el backplane e indica alguna condición en el backplane de regreso al HBA. El primer bit que es alto normalmente indica la presencia de una unidad. Los dos bits siguientes normalmente no se utilizan y se reducen. Debido a que esta línea sería alta para los 3 bits cuando no hay un backplane conectado, un HBA puede detectar la presencia de un backplane si el segundo o tercer bit del SDataIn está bajo.
SDataIn y SdataOut luego se repiten con 3 relojes por unidad hasta que se alcanza la última unidad y el ciclo comienza de nuevo.
Implementación SGPIO
Existen diversas formas de implementar el bus SGPIO entre los proveedores de HBA y los controladores de almacenamiento: algunos proveedores enviarán un flujo continuo de datos que es ventajoso para actualizar rápidamente los LED en un backplane después de que los cables se retiran y se vuelven a insertar, mientras que otros envían datos solo cuando sea necesario actualizar el patrón de LED.
Adopción de la especificación SGPIO
SGPIO y la especificación SGPIO. generalmente se adopta e implementa en productos de la mayoría de los principales proveedores de controladores de almacenamiento y HBA, como LSI , Intel , Adaptec , Nvidia , Broadcom , Marvell Technology Group y PMC-Sierra . La mayoría de los productos que se envían con soporte para unidades SAS y SATA son compatibles con este estándar.
Condiciones de tiempo de espera de SGPIO
La especificación SGPIO exige que el objetivo apague todos los indicadores cuando SClock, SLoad y SDataOut hayan estado altos durante 64 ms; en la práctica, esto no es seguido de manera consistente por todos los proveedores. Además, en las implementaciones de algunos proveedores, el reloj puede detenerse esporádicamente o detenerse durante o entre ciclos. Otra variación, bastante poco práctica, entre los proveedores es el estado en el que se deja el reloj después de un ciclo.
Implementaciones de backplane 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 impulsar los LED; en la práctica, se ha descubierto que existen variaciones en el tiempo y las interpretaciones de los bits entre los proveedores, por lo que un CPLD simple solo funcionaría para una implementación específica probada a fondo con un producto de un proveedor. [ cita requerida ] Un microcontrolador es más aplicable para este propósito, aunque el bus personalizado de la interfaz SGPIO de 4 bits no está implementado en ellos [ cita requerida ] - el muestreo de las líneas de 4 bits usando operaciones de 100 kHz de GPIO es demasiado lento [ aclaración necesario ] para que muchos microcontroladores de bajo costo manejen mientras manejan LED y otras funciones simultáneamente. La longitud del flujo de bits varía entre HBA o controlador de almacenamiento; algunos proveedores detendrán el flujo de bits cuando alcancen la unidad deseada, mientras que otros lo registrarán hasta el final. Algunos flujos de bits de expansores SAS pueden tener hasta 108 (36 × 3) bits.
La implementación más segura que garantiza la compatibilidad entre todos los proveedores de controladores de almacenamiento y HBA es utilizar un ASIC , específicamente, una combinación de un núcleo de microcontrolador con una interfaz SGPIO de hardware; este concepto fue patentado [ cita requerida ] en 2006 por AMI e implementado en una serie de chips controladores de placa posterior denominados MG9071 , MG9072 , MG9077 y MG9082 .
Estos chips recibirán 1 o 2 flujos SGPIO y conducirán los LED en consecuencia; el último chip de AMI, el MG9077 , se puede configurar mediante resistencias pull-up y pull-down para adoptar 16 configuraciones diferentes de buses SGPIO y controlar los LED en consecuencia. Desde la disponibilidad de estos chips de AMI, los principales fabricantes de equipos originales, incluidos NEC , Hitachi , Supermicro , IBM , Sun Microsystems y otros, los están utilizando en sus planos posteriores para recibir los flujos SGPIO de una variedad de proveedores de HBA y chips de controlador integrados. para impulsar constantemente los LED con un patrón de parpadeo predeterminado.
enlaces externos
- Especificación SFF-8485 para bus serial GPIO (SGPIO)
- Documentos SFF (documentos y especificaciones)