jueves, diciembre 15, 2005

Pequeño Tutorial de SCSI(Small Computer System Interface)

Fuente: http://www.mundopc.net

Introducción

Este puerto, cuyo nombre proviene de una abreviatura inglesa para puertos de pequeños sistemas de ordenador {Small Computer System Interface), goza de una posición especial entre los puertos para PC.
Al contrario que los puertos paralelos, serie o el puerto de teclado, el puerto SCSI no es un puerto estándar del PC. Es decir, se trata de un puerto opcional que puede estar o no estar presente en el ordenador.

En realidad, el SCSI no es simplemente un puerto, sino un complejo sistema de bus de gran autonomía mediante el cual es posible conectar diferentes periféricos tanto internos como externos, como por ejemplo, discos duros, unidades de CD- ROM, unidades de cinta, esc áneres o impresoras. Todos estos periféricos se comunican entre sí y con el ordenador mediante una tarjeta de expansión especial, conocida como adaptador Host o sencillamente la tarjeta controladora SCSI.

Tarjeta controladora SCSI
Controladora SCSI o Host Adapter

SCSI es un interfaz "inteligente" dado que se trata realmente de una CPU que controla directamente a los periféricos y descargando de esta forma a la CPU principal de este trabajo. La controladora SCSI puede controlar hasta 7 periféricos.

Conector 68 pines disco duro SCSI

SCSI dispone además de todo un juego de comandos que le permiten un control más eficaz de los periféricos. SCSI es capaz de identificara cada sector del disco duro por un número independiente, y no como lo hacían los otros tipos de controladoras de disco, teniendo que indicar la cabeza, el cilindro y el sector correspondiente.
Teóricamente, SCSI puede alcanzar una velocidad de transmisión de información de 100 Mbits por segundo, aunque en la realidad las velocidades son mucho más bajas.

A tener en cuenta: SCSI es un complejo sistema de bus gracias al cual pueden conectarse en un ordenador hasta 7 periféricos a una misma tarjeta controladora SCSI. Entre otros, pueden conectarse discos duros, escáner, impresoras, unidades de CD-ROM, o unidades de cinta.

¿Cómo funciona el SCSI?

Desde el momento en que instalamos una tarjeta SCSI con uno o más periféricos SCSI en un ordenador, le estamos añadiendo un nuevo bus: el bus SCSI. Este bus lo forma el cable (o cables) que unen la controladora con los nuevos periféricos. Este cable puede llegara a tener una longitud desde 6 hasta 15 metros sin problemas. Puede controlar hasta 7 periféricos, cosa que no pueden hacer las tarjetas controladoras ST506, ESDI ni IDE, ya que en éstas el trabajo de manejo de los periféricos lo sigue haciendo el microprocesador principal.

En cambio, al ser SCSI una interfaz "inteligente", puede controlar ella misma a los periféricos conectados a su bus SCSI y descargando trabajo al microprocesador principal de la placa madre. Esto hace posible que tras el envío a un periférico SCSI de una petición por parte del PC, éste pueda realizar cualquier otra tarea, de forma que cuando el periférico ha completado la operación que le había sido solicitada envía una notificación a la controladora SCSI, la cual a su vez comunica al procesador dicha situación (habitualmente produciendo una interrupción).

Al tratarse de un bus al que intentan acceder varios dispositivos al mismo tiempo, es necesario definir un protocolo que arbitre los accesos al bus de los periféricos a él conectados. Para ello, dentro de este bus SCSI, los distintos componentes se distinguen mediante un número de dispositivo o identificador SCSI (ID), no pudiendo haber dos dispositivos en el bus SCSI con el mismo identificador, ya que si fuese así ambos periféricos intentarían tomar el control del bus a la vez.

Este número identificador o ID está comprendido entre 0 y 7 (el número 7 suele corresponder a la propia tarjeta controlad ora SCSI). Cuando dos dispositivos intentan acceder al bus SCSI al mismo tiempo, aquel que tenga un número de identificación más alto tiene mayor prioridad, y en definitiva será el que acceda al bus. De esta forma, se evíta que puedan acceder a la vez dos dispositivos al bus SCSI, produciéndose un conflicto y degenerando en un error .

También pueden coexistir sin problemas en un mismo sistema varias tarjetas controladoras SCSI; para ello cada controladora se identificará por un número LUN (Logical Unit Number). La tarjeta LUN O es la tarjeta maestro, y todas las demás son las tarjetas esclavos. Toda la comunicación con el ordenador se lleva a cabo desde la ROM BIOS situada en la tarjeta maestro, quedando el resto de las ROM BIOS de las tarjetas esclavas deshabilitadas.

A tener en cuenta: Dentro del bus SCSI cada periférico se identifica por un número de identificación (ID) comprendido entre O y 7. La tarjeta controladora SCSI recibe el número de identificación 7. No puede haber dos periféricos con el mismo identificador .
También es posible instalar varias tarjetas controladoras SCSI, par. lo cual cada una de ellas se identifica con un número LUN distinto.

Arranque del PC desde un dispositivo SCSI

Generalmente, los ordenadores personales suelen arrancar desde un disco duro de tipo IDE. Sin embargo es muy interesante tener la posibilidad de que el PC cargue el sistema operativo desde un periférico SCSI (disco duro, unidad removible, CD-ROM, etc).

Para que esto sea posible la controladora SCSI debe disponer de una BIOS que sea capaz de cargar el sistema operativo desde un dispositivo SCSI.

Algunas tarjetas SCSI incorporan una ROM-BIOS propia, mientras que otros modelos requieren que la propia BIOS del ordenador incorpore las rutinas correspondientes para que sea posible arrancar el ordenador desde una unidad SCSI.

Controladora SCSI Adaptec
Controladora SCSI de Adaptec

Si la tarjeta controladora no dispone de una BIOS propia, o bien la BIOS principal no está expresamente preparada para ello, será imposible arrancar el ordenador desde un periférico SCSI.

En las tarjetas SCSI más sofisticadas es posible incluso definir el periférico SCSI desde el que arrancar el sistema operativo, y no solamente desde un disco duro como suele ser lo habitual. Esta característica la. incluyen, entre otras, algunas tarjetas del fabricante Adaptec, y resulta muy útil cuando se desea instalar diferentes sistemas operativos a partir de una unidad CD-ROM, por ejemplo.

Tipos de estándares SCSI

Actualmente existen varios estándares SCSI, cuyas diferencias se centran principalmente en la velocidad de transmisión de datos y en el número de bits que envían a la vez.

SCSI-l
Es la especificación original, que apareció en 1986. Transfiere 8 bits al mismo tiempo y hace posible el accionamiento conjunto de hasta ocho dispositivos SCSI (siete en realidad, porque la propia tarjeta controladora SCSI constituye el octavo). Asimismo, permite la transferencia de datos en bloque a una frecuencia de 5 MHz en ocho conexiones en paralelo. Es decir, en cada unidad de tiempo se transfiere un byte completo, por lo que supone una velocidad de transferencia de datos teórica de 5 MBytes por segundo.

SCSI-2
Debido a las muchas incompatibilidades que muestra el interfaz SCSI-1, surge en el año 1989 un nuevo estándar, el SCSI-2. Además de intentar resolver todos los problemas producidos con la norma SCSI-1, permite la conexión de nuevas clases de aparatos. También impone como obligatoria la posibilidad de la comprobación de paridad. Dentro del SCSI-2, nos encontramos con otros dos ampliaciones: el Fast- SCSI y el Wide-SCSI. Podemos asegurar que la norma SCSI-2 constituye el estándar actual

Fast-SCSI
Se trata de una especificación SCSI de alta velocidad, en la que es posible alcanzar unos índices de transmisión de datos en el bus SCSI de hasta lO MBytes por segundo. Tras este valor no se esconde ninguna gran innovación tecnológica, sino simplemente una duplicación de la frecuencia de reloj del bus, lo demás queda igual. En la actualidad, prácticamente todos los modelos de discos duros que se comercializan con SCSI-2 se ayudan del Fast-SCSI. Por desgracia, esto no es aplicable a todas las tarjetas controladoras SCSI que se comercializan.

Wide-SCSI
La segunda posibilidad de incremento en la velocidad de transferencia de datos consiste en la utilización paralela de más de ocho cables de datos. El estándar SCSI-2 contempla esta posibilidad, llamada Wide-SCSI, que puede transferir a la vez 16 ó 32 bits.

Enviando 8 bits de datos, Fast-SCSI ofrece upa tasa de transmisión de 10 MBytes por segundo, mientras que Wide-SCSI, enviando 32 bits (cuatro veces más), alcanza velocidades de transmisión de hasta 40 MBytes por segundo. En la práctica, este valor no ha podido ser alcanzado por ningún dispositivo SCSI.

Técnicamente, el Wide-SCSI se hace posible utilizando un cable SCSI de 68 e incluso 80 hilos , en lugar del habitual de 50 hilos. Este cable, llamado cable SCSI-B, se instala de forma adicional al cable estándar de 50 polos en el que puede continuar conectándose los habituales dispositivos de 8 bits. Así, el Wide-SCSI es totalmente compatible con el estándar actual.

A pesar de sus prestaciones, el Wide-SCSI no ha podido imponerse en la práctica. La oferta de aparatos ajustables a él es extremadamente baja y los precios, astronómicos.

Wide-SCSI se puede combinar sin problemas con un simple SCSI-2. Pero, ¿qué sucede si se utiliza SCSI-l, SCS-2 y/o aparatos Fast-SCSI en un mismo bus? En principio todo es posible con una excepción: si un dispositivo SCSI antiguo que, por motivos de incompatibilidad, no funciona en un adaptador SCSI, tampoco lo hará cuando haya otros aparatos conectados.

Si dejamos aparte este caso tan aislado, en la actualidad la mayoría de los dispositivos SCSI pueden trabajar conjuntamente, incluso el Fast-SCSI. En esta configuración el bus se conmuta simplemente a dos distintos índices de transmisión. Cuando dos dispositivos Fast-SCSI se comunican entre sí el bus es rápido mientras que si interviene un dispositivo más lento también el bus reducirá su velocidad.

En algunas controladoras SCSI, hay que determinar qué dispositivos utilizarán el Fast-SCSI y cuales no. A un dispositivo Fast-SCSI se le puede bajar la velocidad de modo que funcione a la misma velocidad que cualquier otro dispositivo SCSI convencional.

Por el contrario, si a un dispositivo SCSI le configuramos como Fast-SCSI, casi seguro que ocasionará problemas.

SCSI-3
El SCSI-3 es totalmente compatible con el SCSI-2. También se había previsto la utilización de cables de fibra de vidrio para la transmisión de datos, así como un modo de transmisión por cable de alta frecuencia similar al utilizado en los cables de red. Con estas novedades, se obtendría un mayor índice de transmisión a una distancia mayor. Obviamente, no se pensó nunca para el mercado doméstico, sino para el profesional.

Otra novedad que incorporaría la norma SCSI-3 es la posibilidad de conectar hasta 15 periférícos a la vez utilizando una misma tarjeta controladora. Incluye también características de autoconfiguración de dispositivos mediante el protocolo denominado SCAM (SCSI Configured Autimatically, SCSI configurado automáticamente).

Características de los estándares SCSI



SCSI-2
SCSI-2


SCSI-1
Fast-SCSI
Wide-SCSI
SCSI-3
Nº Bits
8
8
16 ó 32
16 ó 32

Velocidad Máxima
5 Mbytes/seg
10 Mbytes/seg
40 Mbytes/seg
100 Mbits/seg
Nº de Periféricos
7
7
7
15

Lo cierto es que estos tres estándares no están lo suficientemente definidos como para considerarlos "estándares" de verdad, lo que hace que en la práctica cada fabricante interprete este estándar adaptándolo a sus requerimientos, teniendo como resultado productos que no son totalmente compatibles entre sí. Para intentar resolver este problema, un prestigioso fabricantes de tarjetas SCSI llamado Adaptec introdujo un tipo particular de SCSI al que llamó ASPI.

ASPI
Es relativamente aventurado considerar ciertas especificaciones como estándares, pero sí merece la pena mencionarlas. En la práctica, cada fabricante lo interpreta y 10 adaptará a sus requerimientos, teniendo como resultado productos que no son totalmente compatible entre sí. Para intentar resolver este problema, la firma Adaptec introdujo un tipo particular de SCSI (al cual llamó ASPI, Advanced SCSI Programming Interface) con el objetivo de convertirlo en el "estándar real". Si bien no es utilizado por todos los fabricantes de productos SCSI, sí es el más utilizado.

Para los desarrolladores de software es fundamental disponer de un estándar mediante el que acceder a los dispositivos conectados al bus SCSI. Además, es importante que el modo de acceso sea independiente del dispositivo, de forma que no sea necesario conocer los detalles de la programación de la tarjeta SCSI instalada en el ordenador. Mediante la norma ASPI, un programa puede comunicarse con cualquier periférico SCSI independientemente del modelo de controladora instalada en el ordenador, siempre y cuando se disponga del controlador ASPI adecuado. Esta norma está disponible en versiones para distintos sistemas operativos, como DOS, Windows, OS/2, Novel NetWare, etc.

Existen otros estándares SCSI, aunque aquí hemos repasado los más comunes.

Tipos de conectores SCSI

Una de las desventajas dentro del mundo SCSI es la multitud de tipos de conectores existentes. Casi todas las controladoras SCSI incluyen el conector denominado mini SCSI o SCSI-2. Este conector tiene 50 pines y tiene forma de D, aunque actualmente se están adoptando en mayor medida los conectores de 68 y 80 hilos.

Unidad disco duro SCSI 50 pines
Conector unidad disco duro,... SCSI 50 pines

Conector externo SCSI 50 pines
Conector externo SCSI 50 pines

Como conector para dispositivos internos se suele usar un modelo de 50 contactos al que se conecta un cable plano de aspecto similar al usado con los dispositivos IDE. Este cable tiene pintado de color rojo el hilo correspondiente al pin número 1 del conector. Como es lógico, debemos tener cuidado para hacer coincidir dicho hilo con el pin número uno del conector SCSI, tanto en la tarjeta controladora como en los dispositivos que conectemos a ella.

Cable plano SCSI
Cable plano SCSI similar al usado para conectores IDE

Para la conexión de dispositivos Wide-SCSI existen dos tipos de conectores específicos: uno externo y otro interno. Estos conectores tienen un número mayor de contactos que los SCSI tradicionales, concretamente 68 pines, ya que el cable debe estar preparado para soportar transferencias de datos de 16 y 32 bits.

Otras características

El interfaz SCSI dispone además de una serie de caracteristicas avanzadas:

Modo de transmisión (síncrono/asíncrono)
El modo de transmisión síncrono está controlado por una señal de reloj, alcanzándose velocidades más altas que con el asíncrono. No todos los periféricos SCSI lo poseen, pero en cambio las transferencias asíncronas están disponibles en todos los dispositivos. Lo mejor es activar la negociación de transferencias síncronas en los periféricos que lo posean.

Paridad
Debido a las interferencias eléctricas que pueden producirse en el bus SCSI, es posible que se produzcan errores en la transmisión de datos. Si pudieran detectarse estos errores, podria enviarse de nuevo el dato incorrecto, corrigiéndose el error .

El proceso es bastante sencillo. Cuando el emisor envía los datos (bien sea 8, 16 ó 32) envía además un bit de paridad, el cual indica si la suma de los bits de datos enviados es par o impar. A recepción llegan los bits de datos y el de paridad, comprobándose en primer lugar la paridad de los bits de datos recibidos. Si dicha paridad coincide con el bit de datos transmitido implica que no se ha producido un error en la transmisión.

Si por alguna circunstancia un bit de datos se alterase, en el cálculo de la paridad y su comparación con el bit de datos enviado se comprueba que no coinciden, síntoma inequívoco de que se ha producido un error en la transmisión, y los datos enviados no son entonces los correctos. Dado esto, el receptor comunica al emisor que los datos no han sido correctos y que los tiene que enviar de nuevo .

El control de paridad no está determinado obligatoriamente en el bus SCSI. En realidad el usuario puede conectarlo o desconectarlo, modificando la posición de algunos interruptores o puentes. Cada vez es más habitual que los aparatos modernos permitan un control de paridad mediante software.

En este sentido, es de extraordinaria importancia que todos los aparatos conectados al bus SCSI funcionen del mismo modo, es decir, con la paridad conectada o desconectada. Si estos dispositivos admiten el control de la paridad, deberá activarse en todos ellos, ya que añade un importante grado de seguridad en las transmisiones de datos.

Afortunadamente, es difícil encontrarse con aparatos que no dispongan del control de paridad.

Desconexión de periféricos
Es de gran utilidad en sistemas con varios periféricos SCSI, ya que permite que los distintos periféricos cumplan las operaciones que se les han asignado sin estar conectado al bus, que queda libre para otros periféricos. En el caso de los CD-ROM es muy importante ya que son periféricos lentos, y si permanecen enganchados al bus, impiden la comunicación de la tarjeta con otros dispositivos.

La rentabilidad de SCSI

Un sistema SCSI resulta caro, no sólo por la compra de una tarjeta controladora SCSI, sino porque además los dispositivos SCSI son siempre más caros.

La compra e instalación de un SCSI merece la pena en dos situaciones:

1.- Deseamos utilizar un dispositivo que sólo existe en versión SCSI. Suelen ser por ejemplo las unidades magneto-óptica o los grabadores de CD-ROM, así como discos duros de gran capacidad.

2.- Deseamos instalar un gran número de aparatos. Será ideal si deseamos instalar un escáner, una unidad de cinta para hacer copias de seguridad, uno o más discos duros, una unidad de CD-ROM, sistemas de discos removibles,etc.

No sólo nos ahorramos slots de expansión, sino también nos quitamos complicaciones con las direcciones de entrada/salida, canales DMA o niveles de interrupción IRQ que cada tarjeta requiere.
Con una sola tarjeta SCSI, podríamos instalar todos los dispositivos mencionados anteriormente.