Serial Attached SCSI

SAS
Información sobre la plantilla
Sas29pin.jpg
Conector SAS de 29 Pines
Fecha de invención:1996

Serial Attached SCSI o SAS. Es un sistema de interconexión serie entre dispositivos SCSI, sucesor del SCSI (Small Computer System Interface) paralelo, aunque sigue utilizando comandos SCSI para interaccionar con los dispositivos SAS. Aumenta la velocidad y permite la conexión y desconexión de forma rápida. Es compatible con Serial ATA (SATA) y en el los dispositivos pueden comunicarse por medio de protocolos.

Historia

La organización que se encuentra detrás del desarrollo de la especificación SAS es la SCSI Trade Association. Se trata de una organización sin ánimo de lucro ubicada en California que se formó en 1996 para promover el uso y el conocimiento sobre SCSI paralelo.

La primera versión apareció a finales de 2003: SAS 300, que conseguía un ancho de banda de 3Gb/s, lo que aumentaba considerablemente la velocidad de su predecesor (SCSI Ultra 320Mb/s). La siguiente evolución, SAS 600, consigue una velocidad de hasta 6Gb/s, mientras que se espera llegar a una velocidad de alrededor de 12Gb/s.

Una de las principales características es que aumenta la velocidad de transferencia al aumentar el número de dispositivos conectados, es decir, puede gestionar una tasa de transferencia constante para cada dispositivo conectado, además de terminar con la limitación de 16 dispositivos existente en SCSI, es por ello que se vaticina que la tecnología SAS irá reemplazando a su predecesora SCSI.

El conector es el mismo que en la interfaz SATA y permite utilizar estos discos duros, para aplicaciones con menos necesidad de velocidad, ahorrando costos. Por lo tanto, los discos SATA pueden ser utilizados por controladoras SAS pero no a la inversa, una controladora SATA no reconoce discos SAS.

La comunicación

Protocolos para la comunicación

  • SSP (Serial SCSI Protocol), que permite el transporte de comandos SCSI entre dispositivos SCSI,
  • STP (Serial ATA Tunneled Protocol), que permite el transporte de comandos ATA hacia múltiples dispositivos SATA,
  • SMP (Serial Management Protocol), que permite el transporte de las funciones de gestión del dominio.

Los dispositivos SAS pueden ser Initiators (controladores), Targets (periféricos) o Target/Initiators (pueden funcionar a veces como controlador y a veces como periférico), y pueden soportar uno o más protocolos de transporte (SSP, STP y/o SMP).

Dominio SAS

Un dominio SAS es un sistema formado por dispositivos SAS que se comunican a través de un subsistema de interconexión, el cual puede ser:

  • Un conjunto de enlaces físicos que interconectan a un Initiator SAS con un Target SAS, o
  • Un conjunto de enlaces físicos y de expansores que interconectan a más de dos dispositivos SAS.

Los Targets SATA pueden formar parte de un dominio SAS siempre que se conecten a expansores que soporten el protocolo STP.

Los Initiators que pretendan comunicarse con Targets SATA en un dominio SAS sólo pueden hacerlo mediante el protocolo STP (esto es, los controladores que sólo soporten el protocolo SATA no pueden utilizarse en dominios SAS, sino tan sólo en dominios SATA). Los expansores que soportan STP hacen las funciones de puente entre ambos protocolos (STP y SATA), por lo que hacen de puente entre un dominio SAS y uno o varios dominios SATA.

El hecho de permitir la conexión de dispositivos SATA a un dominio SAS permite compartir concurrentemente el acceso a periféricos ATA por parte de varios Initiators STP, cosa que no se puede hacer en dominios ATA normales, ni paralelo ni serie (SATA).

El nivel físico

Los phys y los enlaces físicos Cada una de las conexiones punto a punto en el subsistema de interconexión se conoce como enlace físico, y se compone de 2 pares de señales diferenciales, un par para transmitir en un sentido y otro par para transmitir en el sentido opuesto, lo que permite transmitir información en ambos sentidos simultáneamente.

Los dispositivos se conectan eléctricamente a un enlace físico a través de un transceptor denominado phy. Los dispositivos SAS pueden tener uno o varios phys.

Las velocidades de transmisión normalizadas por el momento son de 1,5 Gbps y 3 Gbps (1.500 y 3.000 Mbaudios respectivamente), equivalentes a una velocidad en el enlace físico de 150 y 300 MB/s respectivamente (ya que cada carácter se compone de 10 bits, debido a la codificación empleada 8b10b). La información se transmite en código NRZ, y el valor de tensión diferencial máxima permitida en el receptor es de +/- 800 mV (el valor mínimo permitido depende de la velocidad del enlace, siendo de +/- 160 mV aproximadamente para 1,5 Gbps y de +/- 135 mV aproximadamente para 3 Gbps). Los phys pueden soportar distintos roles (Initiator o Target) y/o distintos protocolos (SSP, SMP y/o STP), pero sólo pueden utilizar un rol y un protocolo durante cada conexión.

Cables y conectores SAS

SAS soporta 4 tipos de conexiones: 1- Conexiones externas mediante cable
Los dispositivos SAS externos (Initiators, Targets y expansores) utilizan un conector de 25 pines, que incluye 4 enlaces físicos (4 x 4 pines) y señales de masa (9 pines), y se conectan a cables

SAS externos, los cuales pueden incluir conductores para uno, dos, tres o los cuatro enlaces físicos. Los cables y conectores SAS externos no disponen de contactos de alimentación ni de LED.

2- Conexiones internas directas
Los Targets SAS internos siempre utilizan un conector de 29 pines que incluye dos enlaces físicos (4 pines de señal y 3 de masa por cada enlace), alimentación (14 pines en total para 12 V, 5 V, 3.3 V y masa) y LED de Preparado (1 pin). Los paneles de conectores SAS siempre utilizan un conector de 29 pines para permitir la conexión directa del Target. Los Initiators y expansores internos también pueden utilizar el conector de 29 pines para permitir la conexión directa del Target.

Los dispositivos SATA se pueden conectar directamente a un panel de conectores SAS o a un expansor SAS con conector de 29 pines, ya que el conector de 22 pines del dispositivo SATA es compatible físicamente con el conector SAS de 29 pines, utilizando los pines de alimentación y del enlace físico primario y dejando libres los 7 pines del enlace físico secundario (los dispositivos SATA sólo disponen de un phy). La señal de LED del conector SAS coincide con el pin reservado del segmento de alimentación del conector SATA.

3- Conexiones internas mediante cable de simple puerto
Los cables SAS internos de simple puerto utilizan un conector de 29 pines en el lado del Target, pero sólo incluyen conductores para la alimentación, el LED y el enlace físico primario. Estos cables dejan libre el enlace físico secundario del Target.

Por otro lado, los Initiators y expansores SAS internos que permiten la conexión por cable disponen de conectores de 7 pines idénticos al conector de señal de un controlador SATA (1 enlace físico). Los conductores del enlace físico del cable SAS interno terminan en el lado contrario al Target en un conector de 7 pines idéntico al que se usa en el cable de señal SATA.

Este cable permite la conexión del enlace físico primario de un Target SAS interno a un Initiator o expansor interno, y también permite la conexión de un dispositivo SATA a un expansor interno.

4- Conexiones internas mediante cable de doble puerto
Los cables SAS internos de doble puerto utilizan un conector de 29 pines en el lado del Target, e incluyen conductores para la alimentación, el LED y ambos enlaces físicos. Los conductores de cada enlace físico del cable SAS interno terminan en el lado contrario al Target en un conector de 7 pines idéntico al que se usa en el cable de señal SATA.

Este cable permite la conexión de los dos enlaces físicos de un Target SAS interno a dos puertos de Initiators o expansores internos. También se puede utilizar para conectar un dispositivo SATA a un expansor, aunque el conector del enlace físico secundario no se conectaría a ningún sitio. La longitud de los cables, cuando se utiliza cable twinaxial apantallado de conductor sólido de galga 24 y componentes pasivos de calidad, puede llegar hasta los 8 metros.

El Nivel Phy

El nivel phy define la codificación 8b10b y las señales OOB.

La codificación 8b10b

Es muy utilizada en transmisión serie a velocidades cercanas y superiores al Gbps. Es la codificación utilizada por Fibre Channel (1 y 2 Gbps), posteriormente adoptada por Gigabit Ethernet (1 Gbps), y por SAS y SATA (1,5 y 3 Gbps), FireWire 800 (800 Mbps), así como por InfiniBand (2,5 Gbps).

La codificación tiene las siguientes funciones:

  • Asegurar suficientes transiciones en la línea como para que el receptor pueda recuperar el reloj y así pueda recibir adecuadamente la secuencia de bits.
  • Incrementar en gran medida las posibilidades de detección de errores simples y múltiples que puedan ocurrir durante la transmisión.
  • Permitir la transmisión de caracteres especiales que contienen un patrón fácilmente reconocible por el receptor (denominado patrón Coma), que le permite alinear palabras en la secuencia de bits que recibe (es decir, le permite conocer qué bit es el primero de una palabra).

La codificación 8b10b consiste en sustituir cada octeto (8 bits) por un código de 10 bits antes de su transmisión. De todos los posibles códigos de 10 bits (en total 2^10 = 1024) sólo se utilizan 512 para codificar todos los posibles caracteres de datos (que en total pueden ser 2^8 = 256), y unos pocos códigos más para codificar una serie de caracteres de control.

Señales Out of Band (OOB)

Las señales OOB (Out of band) son unos patrones de señales de baja velocidad que no aparecen durante las transmisiones, y que sólo se utilizan durante la inicialización de los phys. Consisten en ciclos de duraciones predefinidas de reposo y de transmisión de unas determinadas Primitivas (ALIGNs). La transmisión de las Primitivas se usa sólo para producir una envolvente, de forma de el receptor distingue las distintas señales OOB por la duración del intervalo de reposo que hay entre las transmisiones de las Primitivas (el tiempo de transmisión de las Primitivas no se utiliza para distinguir las distintas señales).

SATA define dos señales OOB denominadas COMINIT/COMRESET y COMWAKE, y SAS define una nueva señal denominada COMSAS, la cual se utiliza durante la inicialización del enlace para identificarse como dispositivo SAS y verificar si el otro dispositivo es SAS o SATA.

El Nivel de Enlace

El nivel de enlace define el uso de las distintas Primitivas en cada tipo de conexión, todas las cuestiones relativas al establecimiento y cierre de las conexiones y algunos otros detalles como los relativos al código de detección de errores (CRC) y a la aleatorización de datos (scrambling), para distribuir la energía irradiada cuando se transmiten secuencias repetitivas de caracteres.

Las tramas de dirección y la inicialización del enlace Hay dos tramas especiales utilizadas en las fases de identificación y de petición de conexión, que se denominan tramas de dirección. Las primitivas de comienzo y final de trama son también especiales: SOAF (Start Of Address Frame) y EOAF (End Of Address Frame):

  • IDENTIFY, que contiene información sobre el tipo de dispositivo (Initiator, Target, expansor edge, expansor fanout, etc.), los protocolos que soporta (SSP, STP, SMP) y las identificaciones (direcciones SAS) del puerto o dispositivo expansor y del phy que envía la trama.
  • OPEN, en la que se indica el protocolo a utilizar en la conexión (SSP, STP, SMP), si la solicitud parte de un Initiator o un Target, la velocidad que deben soportar todos los enlaces físicos en el pathway (1,5 Gbps, 3 Gbps), un tag opcional asignado por el Initiator a las conexiones SSP y STP y la direcciones SAS de los puertos origen y destino.

El nivel de Transporte

El nivel de transporte construye las tramas que se van a transmitir y comprueba el contenido de las tramas que se reciben. Sólo se reciben tramas aceptadas por el nivel de enlace.

Conexiones SSP

En conexiones SSP se utilizan las siguientes tramas:

  • Trama de Datos.
  • Trama de Preparado
  • Trama de Comando
  • Trama de Respuesta
  • Trama de Tarea

Conexiones STP

En conexiones STP, el protocolo SATA se encapsula junto con las tramas de control de la conexión. Este mecanismo se denomina SATA Tunneling:

  • Cuando un Target SATA envía una trama SATA al expansor al que está conectado, el expansor abre una conexión STP con el Initiator STP o con un expansor que se encuentre en el camino hacia el Initiator STP. La conexión STP se establece sólo para esta trama SATA, por lo que al final de la misma el expansor cierra la conexión STP.
  • Cuando un Initiator STP quiere enviar una trama, abre una conexión STP con el expansor al que está conectado. El expansor conectado al Target SATA abre una conexión SATA con el Target sólo para esta trama, por lo que al final de la misma el expansor cierra la conexión SATA.

Conexiones SMP

En cuanto a las conexiones SMP, sólo se utilizan dos tipos de trama:

  • SMP_REQUEST, enviada por el dispositivo origen (Initiator SMP) indicando la función solicitada.
  • SMP_RESPONSE, enviada por el dispositivo destino (Target SMP) con la información solicitada en la petición.

Beneficios de la tecnología SAS

Al fusionar el rendimiento y la fiabilidad de la interfaz serie con los entornos SCSI existentes, SAS aporta mayor libertad a las soluciones de almacenamiento sin perder la base tradicional sobre la que se construyó el almacenamiento para empresas, otorgando las siguientes características:

  • Acelera el rendimiento del almacenamiento en comparación con la tecnología SCSI paralela
  • Garantiza la integridad de los datos
  • Protege las inversiones en TI
  • Habilita la flexibilidad en el diseño de sistemas con unidades de disco SATA en un compartimento sencillo

Fuentes