La interfaz SATA

También disponible en LATEX y PDF.

La interfaz SATA

Jesús Pérez Rey

2008-09-09

Índice

1 Introducción: la interfaz ATA
 1.1 Versiones de ATA
2 La necesidad de SATA: SATA vs. PATA
3 Características de SATA
 3.1 Hotswapping y hotplugging
 3.2 Native Command Queueing
 3.3 eSATA y SAS
  3.3.1 External SATA
  3.3.2 Serial Attached SCSI
4 Versiones de SATA
5 Críticas y problemas
6 Bibliografía

1. Introducción: la interfaz ATA

Para entender la interfaz Serial ATA primero vamos a explicar brevemente el interfaz ATA, previo al SATA y sobre el que se basa éste.

En 1986 Impris (ahora Seagate), Western Digital y Compaq desarrollan un nuevo interfaz para adjuntar discos duros al IBM PC/AT que introduce la novedad de que la controladora de la unidad va incluida en la propia unidad, frente a la controladoraexterna conectada a la placa base común entonces, lo que proporciona mayor facilidad de conexión y menor número de slots de laplaca base en uso. Comercializado bajo el nombre de IDE (Integrated Disc Electronics), ganó popularidad en PCsCompaq con discos duros Conner Peripherals (ahora Seagate) de 3,5 pulgadas y controladora Western Digital1. Sin embargo, había otras empresas que también hacían interfaces IDE, pero al no haber un estándar que marcaselos requisitos y las condiciones del interfaz se podían producir incompatibilidades entre dispositivos de distintosfabricantes.

En 1995 el comité T13 del ANSI X3 (ahora ANSI INCITS) aprueba el estándar X3.221-1994, el primer estándar que cubre la interfaz IDE. Tras descartar Integrated Disc Electronics, por no ser suficientemente claro y distintivo, e IBM DiscElectronics, por ser inapropiado para un estándar al contener el nombre de una empresa, se decidió inicialmente elnombre de PC/AT Interface, por ser la interfaz usada para adjuntar discos duros a los PC/AT de IBM. Sin embargotampoco fue el nombre definitivo pues antes de aprobarse el estándar fue modificado a AT Attachment (ATA) paraevitar infringir marcas comerciales1. Por eso es frecuente ver que esta interfaz es designada por cualquiera de esosnombres.

El bus ATA es un bus de datos, es decir, se necesita otro conector para la alimentación, aunque en portátiles se le suele añadir 4pines más al bus de datos para la alimentación, evitando un cable aparte para ahorrar espacio. Es un cable plano decomo máximo 46 cm. El bus de datos mas común consta de 40 pines de los cuales 16 son para datos, 11 parainstrucciones y control, 3 para direcciones, 7 ground y uno queda no conectado, el pin 20 normalmente se elimina paraque el conector sea asimétrico y no se pueda enchufar al revés, aunque a veces también se usa para alimentación.En la versión 5 del estándar se introducen los cables de 80 hilos, aunque el conector sigue teniendo 40 pines y suconfiguración no cambia. Los 40 nuevos hilos introducidos están conectados a ground (tierra) protegiendo la línea deinterferencias.

En cada bus ATA pueden ir conectadas dos unidades que se denominan 0 y 1, aunque es más popular la denominación demaestra (master) y esclava (slave). Sin embargo, estos términos no son recogidos por el estándar y pueden ser confusos, puesmuchas veces se entiende que esta terminología responde a la estructura de la interfaz en la que la unidad esclava dependería de lamaestra, cuando en realidad no es así. Los comandos se envían a las dos unidades pero sólo la seleccionada a travésde uno de los bits del registro de direcciones lo ejecuta. Existen interfaces ATA en los que cuando sólo hay unaunidad, ésta debe responder a todos los comandos, pero este comportamiento no es recogido hasta la versión 2 delestándar. Los datos se transfieren por el bus en paralelo (8 o 16 bits) hasta o desde el buffer de la unidad, siendo lapropia unidad la que se encarga de llevar a cabo las operaciones necesarias para almacenar los datos en el buffercuando se está realizando una lectura o leerlos del buffer para escribirlos en la unidad si es la operación que se deseahacer.

El proceso de lectura/escritura sobre un interfaz ATA se puede resumir de la siguiente manera: el equipo espera a que eldispositivo devuelva un estado de no ocupado. Cuando se cumpla la condición, escribirá los comandos y parámetros en los registrosde la interfaz. La unidad pone entonces su estado en ocupado y se lleva a cabo la operación sobre el registro de datos (si es unaescritura, se escriben en este registro los datos que se escribirán y si es una lectura se copian los datos solicitadosal registro de datos para que el host los lea). Cuando finaliza la operación se envía una interrupción al sistemapara informar de ello y que se pueda leer el registro de estado para comprobar si la operación tuvo éxito. Esteproceso debe repetirse para cada bloque de 512 bytes con algunas diferencias, pues el estándar define dos modos detransferencia:

  • PIO (Programable Input/Output): De implementación obligatoria. Es necesaria la intervención del procesador para cada operación de lectura/escritura, por lo que por cada bloque de 512 bytes transferidos se genera una interrupción que debe atender el sistema.
  • DMA (Direct Memory Access): De implementación opcional aunque normalmente presente en la mayoría de unidades. Las operaciones de lectura/escritura se realizan directamente entre la memoria y el dispositivo sin necesidad de la intervención del procesador y generándose una única interrupción al finalizar la operación completa, por lo que se incrementa la velocidad y se alivia la carga del sistema.

Con lo visto hasta ahora, especialmente los últimos párrafos, podemos darnos cuenta de que sólo era posible hacer una operaciónsimultánea y sobre un sólo dispositivo simultáneamente en cada interfaz ATA. En la versión 4 se introdujo Queueing y Overlappingpara paliar este problema2, aunque, debido a que su implementación es opcional, la mayoría de los dispositivos no lo incluyen.Desde entonces se han seguido introduciendo mejoras en el interfaz, muchas veces limitándose a incorporar mejoras yapresentes en el mercado dándoles cobertura en el estándar, hasta llegar a ser el más popular actualmente, sobretodo en PCs domésticos, por su reducido precio. Entre los cambios más importantes se encuentra ATAPI, unaimplementación de comandos SCSI sobre ATA para dar soporte a CD-ROMs y cintas, y CRC para comprobación deerrores.

Entre las limitaciones más importantes y que más problemas causaron se encuentra la del tamaño máximo de los discos durosdebido a una combinación de limitaciones entre la BIOS, el interfaz y el sistema operativo. Posteriores mejoras en estos trescomponentes fueron incrementando el límite de 528 MiB a 8,4 GiB, 128 GiB, … hasta tamaños que se pueden considerar ilimitadosen la actualidad.

El interfaz ATA es retrocompatible, es decir, pueden estar conectados en un mismo equipo dispositivos de distintas versionesdel estándar sin ningún problema, y actualmente, en teoría un dispositivo rápido ya no se ve limitado por la velocidad de otrodispositivo más lento en el mismo cable. Pero debido a la ausencia de Overlapping en la mayoría de dispositivos, la unidad másrápida tendrá que esperar más tiempo para que se ejecuten las operaciones más lentas produciéndose un retrasoreal.3

1.1. Versiones de ATA






Nombre Aliases Estándar Velocidad máxima teórica Cambios










ATA-1

ATA, IDE

X3.221-1994 8.3 MiB/s





ATA-2

EIDE, Fast ATA, Fast ATA-2, Fast IDE, Ultra ATA

X3.279-1996 16.6 MiB/s

LBA de 28 bits






ATA-3

EIDE

X3.298-1997 16.6 MiB/s

No introdujo novedades importantes, sólo algunas mejoras en seguridad e integridad






ATA/ATAPI-4

ATA-4, Ultra ATA/33

NCITS 317-1998 33.3 MiB/s

ATAPI, Overlapping, Queueing y CRC






ATA/ATAPI-5

ATA-5, Ultra ATA/66

NCITS 340-2000 66.7 MiB/s

Cables de 80 hilos






ATA/ATAPI-6

ATA-6, Ultra ATA/100

NCITS 361-2002 100 MiB/s

LBA de 48 bits y cabezas de 16 sectores






ATA/ATAPI-7

ATA-7, Ultra ATA/133

NCITS 397-2005 133 MiB/s (PATA)
150 MiB/s (SATA)

ATA serie






ATA/ATAPI-8

ATA-8

en desarrollo

Cache flash no volátil de gran tamaño (hybrid drives)






2. La necesidad de SATA: SATA vs. PATA

Cable PATA Cable SATA
Conector PATA Conector SATA
Fuente: Wikipedia
PIC
Comparación cable SATA y cable PATA

ATA fue el líder durante casi 20 años, pero a medida que va pasando el tiempo los ordenadores requieren mayores prestaciones,más velocidad y más capacidad y, como hemos visto, ATA tiene limitaciones en todos estos puntos, actualizándose el estándarsegún las necesidades del momento hasta que se aproximó a las máximas prestaciones que se pueden alcanzar con estainterfaz.

Así, por ejemplo, empezó como una interfaz que como máximo aceptaba velocidades de 8.3 MiB y, aunque ha aumentado hasta133 MiB, es difícil pensar en seguir aumentando constantemente la velocidad porque al ser un interfaz paralelo, se ha depoder reconocer sin errores a qué octeto pertenece cada bit recibido, sin embargo no llegan exactamente a la vezsino que hay una pequeña asincronía entre unos bits y otros, por eso, si se aumenta la frecuencia con la que seenvían los bits para así aumentar la velocidad aproximándose demasiado al retardo de unos bits con respecto aotros, se puede correr el riesgo de que los más retardados de un octeto se solapen con los bits más adelantados delsiguiente.

Con respecto al tamaño, una combinación de limitaciones desde la BIOS, el sistema operativo y la propia interfaz hizo que éstafuera también durante bastante tiempo una de las principales desventajas de ATA. Si bien actualmente estos límites se han alzadohasta cotas que hoy en día nos parecen inalcanzables, la experiencia nos demuestra que puede que en un futuro no seaasí.

Con estas limitaciones, especialmente en cuanto a la velocidad, que es la más presente, era necesario un estándar que dieserespuesta a las necesidades actuales basándose en un nuevo interfaz que no fuera otra actualización más de uno de hace veinteaños.

3. Características de SATA

Fue entonces cuando apareció el interfaz Serial ATA. Este interfaz implementa el interfaz ATA líder del mercado doméstico sobreun bus serie, eliminando el problema del posible solapamiento de los bits de cada octeto que limitaba la velocidad máximapudiendo entonces alcanzarse velocidades tan altas como permitiese la tecnología existente, ya que los bits se envían de uno en unoy así por ejemplo SATA/150 trabaja a una frecuencia de 1500 MHz frente a los 50 MHz de ATA/1004. SATA añade además otrasmejoras y características avanzadas como hotplugging, NCQ, hotswapping y overlapping, las cuales veremos másadelante.

Pensado originalmente para que se mantenga en todas la versiones la compatibilidad con versiones anteriores yposteriores aunque ya se han detectado incompatibilidades entre controladoras de primera generación y unidadesde segunda generación, por lo que algunas unidades SATA II cuentan con un jumper para forzar el modo SATAI.

El bus de datos de SATA, de una longitud máxima de 1 m. (más del doble que ATA paralelo), está compuesto por siete hilos delos cuales cuatro son para transmisión de datos (dos para recibir y dos para enviar, sin embargo sigue siendo un bus half-duplex5)y tres van a tierra (GND).

El motivo de que se usen dos cables para enviar y dos para recibir a pesar de que los datos se envían bit a bit es porque SATAusa un modo de transferencia diferencial similar al que se usa en Ethernet 100BaseT (incluida la codificación 8B/10B) en el quecada bit se transmite por duplicado siendo cada una de las dos señales un espejo de la otra, y así cuando se reciben las dos señalesse comprueba que sean iguales (aunque una invertida con respecto a la otra) minimizando las interferencias y siendo más fácil dedetectar el ruido.6

El uso de la codificación 8B/10B implica que cada 8 bits de datos se codifican en un grupo de 10 bits, por lo que de cada 10bits transferidos solo 8 son de datos, por lo que la velocidad real de transferencia de datos se reduce en un 80 %con respecto a la cantidad de bits que pueden ser transferidos por el bus en favor de una mayor integridad de losdatos.

Para el cable de alimentación se abandona el conector Molex usado en los dispositivos PATA por un nuevo conector de 15 pinesde los cuales 3 proporcionan 3.3 V (uno de los cuales es usado para hotplugging), otros 3 para 5 V y otros 3 para 12V. 5 pines sonpara ground y el restante bien se deja sin conectar o bien toma la función de staggered spin-up (un tipo de gestión de alimentaciónen SATA). No obstante, hay dispositivos que siguen incluyendo un conector Molex y también hay adaptadores para poder conectarun dispositivo SATA con un conector Molex, aunque conlleva la desventaja de que dejan desconectado el pin de hotplugginginhabilitando esta característica.

3.1. Hotswapping y hotplugging

Aunque hotplugging se refiere a la mera capacidad de enchufar un dispositivo en caliente y hotswapping a la posibilidad dereemplazar en caliente un dispositivo por otro, ambos términos hacen referencia al mismo concepto: poder conectar y desconectardispositivos con el equipo encendido.

Ésta es una característica muy interesante sobre todo para servidores y equipos que necesitan estar permanentementeoperativos. Sin embargo, para poder hacer uso de esta propiedad es necesario que esté soportada a tres niveles: en el dispositivo, enel bus y en el sistema operativo.

La mayoría de los dispositivos lo soportan, pero al ser una característica soportada a través del tercer pin de alimentación, lacompatibilidad se elimina cuando se le proporciona la alimentación al dispositivo a través de un conector Molex (los usados con losdispositivos PATA) debido a las limitaciones de este conector. De hecho, previendo la posibilidad de que el dispositivo vaya a serconectado con un adaptador Molex algunos fabricantes ya dejan desconectado el pin de hotplugging por lo que no dan soporte aesta característica.

El nivel que es más probable que carezca de una implementación de hotplugging es el del host. Algunos buses SATA no incluyensoporte para hotplugging, pero si la mayoría de los hosts SCSI y RAID.

3.2. Native Command Queueing

Native Command Queueing (NCQ) es una tecnología diseñada para mejorar el rendimiento de los dispositivos minimizando losdesplazamientos necesarios de las cabezas de lectura/escritura.

Requiere también soporte por parte del dispositivo, el host y el sistema operativo y consiste en que el dispositivo escoge elorden en el que se procesan las órdenes de lectura y escritura recibidas realizándolas de tal forma que el desplazamiento de lacabeza sea el mínimo posible.

Fuente: Wikipedia

3.3. eSATA y SAS

3.3.1. External SATA
Conectores SATA y eSATA
Fuente: Wikipedia

El estándar SATA define también la posibilidad de conectar un dispositivo SATA a través de un bus externo denominado eSATA(external SATA) del mismo modo que USB.

Se conecta con un cable apantallado de un largo máximo de 2 m. (frente a los 5. m de USB 2.0 y los 100 m. de FireWire 800)manteniendo la velocidad de transferencia de 300 MiB/s de SATA/300 (USB 2.0 y FireWire 800 sólo llegan a 60 MiB/s y 98.25MiB/s respectivamente).

Aunque es posible conectar dispositivos SATA a través de USB y FireWire es necesario usar adaptadores para posibilitar lacomunicación entre las distintas interfaces, situación que no se produce con eSATA al ser un bus que soporta nativamente lainterfaz SATA. Aunque eSATA aún no está muy extendido los equipos que carecen de él pueden instalar un host eSATA o a travésde una tarjeta CardBus (PCMCIA).

3.3.2. Serial Attached SCSI

Del mismo modo que con la interfaz ATA se paso de un bus paralelo a uno serie para evitar las limitaciones de aquél, lo mismosucedió con SCSI. De la implementación original de SCSI sobre un bus paralelo se paso a un bus serie conocido como SerialAttached SCSI (SAS) que permite la conexión de dispositivos SATA, pero no a la inversa, es decir, no se pueden conectardispositivos SAS a un bus SATA.7

4. Versiones de SATA






Nombre8 Aliases Estándar Velocidad máxima teórica










SATA 1.5Gbit/s

SATA I, SATA 1.5, SATA/150, SATA 1.0

NCITS 397-2005 150 MiB/s





SATA 3Gbit/s

SATA II, SATA 3.0, SATA/300, SATA 2.0

No estandarizado 300 MiB/s





SATA 6Gbit/s

SATA III, SATA 6.0, SATA/600, SATA 3.0

En desarrollo 600 MiB/s





5. Críticas y problemas

Entre las críticas al estándar SATA hay quien encuentra que las prácticas de SATA-IO, la organización privada y mercantil quedesarrolla el estándar, son poco claras y transparentes: no comparte ni hace públicas sus reuniones y votaciones ni lasespecificaciones del interfaz9, que sólo son enviadas al organismo regulador T13 del ANSI cuando ya existe una nueva versión dela interfaz, por lo que se convierte en estándar de facto antes de llegar al T13. Además los miembros del T13 lo son tambiénde SATA-IO, por lo que T13 el pierde el control sobre el estándar sometiéndose a SATA-IO, encargándose T13únicamente de darle estatus de estándar aprobado a la interfaz diseñada por SATA-IO frente a la alternativa dedesarrollar un estándar de iure paralelo al estándar de facto implementado por SATA-IO y ya arraigado en elmercado.

Frente a los conectores grandes y de fuerte acoplamiento de PATA, en SATA se optó por unos conectores más pequeños y deenganche más suave, lo que a veces provoca desconexiones accidentales. Además, en las primeras implementaciones era común quelos conectores no fueran apantallados, produciéndose un mayor riesgo de interferencias.

6. Bibliografía

Referencias

1 Gene Milligan: ATA/ATAPI CAM ATA History

2 Wikipedia: AT Attachment: Serialized, overlapped, and queued operations

3 Wikipedia: AT Attachment: Two devices on one cable – speed impact

4 Mark Kyrnin: Serial ATA: Next Generation Storage Interface

5 mike@netapp.org: When did SATA become full duplex?

6 Gabriel Torres: How Gigabit Ethernet Works

7 Wikipedia: Serial Attached SCSI

8 SATA-IO: SATA Naming Guidelines

9 ATA-ATAPI.COM: Serial ATA (SATA)

2 comments on “La interfaz SATA

  1. Interesantísimo resumen, enhorabuena por el trabajo, a mi, personalmente, me ha aclarado conceptos que no conocía y que completan necesariamente la lógica de su evolución hasta hoy

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.