Conexiones de datos de alta velocidad para dispositivos de almacenamiento interno


Actualmente el conector de datos más común en ordenadores domésticos es:

  • Serial ATA (SATA150) que soporta hasta 150 MB/Seg por conector, en principio este ancho de banda es más que suficiente para cualquier disco duro (HDD: Hard Disk Drive) mecánico actual, aunque se queda corto para los SSD (Solid State Device, Dispositivo de Estado Sólido) basados en memoria flash (En estas entradas del Blog: SSD (Solid State Drive, Dispositivo de Estado Sólido): Los nuevos discos duros y Guía para comprar un SSD (Solid State Device, Dispositivo de Estado Sólido) hay más información sobre estos dispositivos).
  • Serial ATA2 (SATA300) que soporta hasta 300 MB/Seg por conector, en principio este ancho de banda es suficiente para casi cualquier SSD (Solid State Device, Dispositivo de Estado Sólido) actual a excepción de los Crucial C300 que son SATA3 (SATA600) ya que su capacidad de lectura es de 355 MB/Seg (Usando SATA300 se “quedan” en 265 MB/Seg).

Para solucionar el problema de ancho de banda sobre todo para los futuros SSD de altas prestaciones (Sin tener que recurrir al bus PCI Express (PCIe) como hacen por ejemplo los Revo Drive de OCZ, en esta entrada del Blog hay más información sobre este dispositivo) se puede utilizar:

  • Serial ATA 3 (SATA600) soporta hasta 6 Gbps (Unos 600 MB/Seg) por conector, actualmente es una buena opción ya que ningún SSD con conexión SATA supera los 400 MB/Seg.
  • SAS (Serial Attached SCSI) es una conexión que ha sustituido al antiguo SCSI (Small Computer System Interface), se utiliza en Servidores profesionales debido al alto coste tanto de las controladoras como de los dispositivos de almacenamiento, de hecho su evolución es similar a SATA (Los discos SAS son incompatibles con conexiones Serial ATA), la norma actual es SAS 6 Gbps (SAS 600) que soporta hasta 600 MB/Seg y se espera que para 2010 llegue hasta los 12 Gbps denominandose SAS 1200 que tendria aproximadamente 1,2 GB/Seg de ancho de banda.

Sin embargo ya hay proyectos para aumentar aun más la tasa de transferencia de los dispositivos internos como es el caso del conector:

  • High Speed Data Link (HDSL) de OCZ que utiliza un cable SAS de alta calidad, actualmente tiene un ancho de banda de 2 Gbps pero se espera que llegue en un futuro hasta 20 Gbps (Probablemente en un futuro tenga mejoras de velocidad como ocurre con la mayoría de conexiones de datos), HDSL se utiliza en los nuevos OCZ Ibis que tienen 4 controladoras Sand Force 1200 (SF-1200) en RAID 0 llegando a ofrecer unas prestaciones de hasta 804 MB/Seg en lectura y 675 MB/Seg en escritura (Información de Infochaos Digital).
  • Light Peak desarrollado por Intel que utiliza un cable de fibra óptica e inicialmente tendra un ancho de banda de 10 Gbps,  que en un futuro proximo podria llegar hasta los 100 Gbps, en principio se espera que aprezca en 2011.

Estos conectores permiten “apilar” los discos en niveles RAID (En esta entrada del Blog hay más información) siempre y cuando la controladora lo soporte, mientras que el uso de SSD con conexión PCIe no permite la “apilación” porque los discos trabajarian de forma individual.

Se puede encontrar más información en:

Anuncios

¿Cuál es el cuello de botella actual de un equipo informático?


El Bottleneck o Cuello de botella (Definición de Alegsa.com.ar) supone una limitación del rendimiento del equipo informático (PC) para realizar una función determinada (Por lo tanto el cuello de botella de un ordenador siempre a va ser su pieza más lenta). El cuello de botella puede ser debido a:

  • Un componente “lento” de por si (Ej: Un disco duro) que ralentiza al resto del sistema a pesar de ser actual (Los componentes electrónicos (CPU, Gráfica, Chipset,…) actualmente no suponen un cuello de botella).
  • Un desaprovechamiento de un componente “nuevo” porque el componente “base” en el que se instala es “lento” (Esto puede ocurrir por ejemplo al actualizar un equipo antiguo con piezas nuevas que sean compatibles), como por ejemplo utilizar:
    • Una tarjeta gráfica AGP 8x en un puerto 4x.
    • Una tarjeta PCIe 16x en una ranura limitada a PCIe 4x porque no existe ninguna ranura PCIe de  16x.
    • Un disco duro ATA133 en un equipo con conectores SATA300 (Normalmente disponen al menos de un conector ATA133 para conectar dispositivos antiguos y/o unidades ópticas).
    • Una memoria RAM DDR400 en una placa que admita DDR2 667 (Teniendo en cuenta que las placas base que soportan dos tipos diferentes de memoria no la admiten de forma simultánea o mezclada, es decir que sólo se puede usar un tipo de memoria u otro).
    • Una memoria RAM DDR2 1066 en una placa base que admita hasta DDR2 667 o bien el controlador de memoria del procesador (Caso de los Athlon64) este limitado a DDR2 667.

Lógicamente la sensación de lentitud (Dentro de un orden claro está) es diferente para cada usuario y por lo tanto el cuello de botella puede estar en piezas diferentes en función de la tarea a desarrollar por ejemplo para:

  • Editar video si no queremos que el proceso se “eternice” suele ser necesario tener:
    • Un buen procesador (Basicamente es el que se encarga de procesar el video).
    • Una buena cantidad de RAM.
  • Jugar de forma fluida a los últimos juegos 3D con gran resolución (Ej: Full HD ó 1080p: 1.920 x 1.080 píxeles) y buen nivel de detalle (Aplicación de filtros) será necesario tener:
    • Una buena tarjeta gráfica que sea capaz de procesar los recursos gráficos que genera el juego en cuestión.
    • Un procesador “bueno”.
    • Bastante RAM.

Hay que tener en cuenta que el cuello de botella sólo se vería reflejado en usos muy concretos (Como por ejemplo los comentados anteriormente), ya que un equipo actual para ofimática con un par de años aunque se actualizase algún componente no tendría un cuello de botella significativo ya que las aplicaciones que utiliza no requieren un gran consumo de recursos, si acaso se podría cambiar el disco duro por otro más rápido pero dado que actualmente:

  • Los equipos domésticos en general usan discos de 7.200 Rpms (Los equipos profesionales pueden usar discos de 10.000 ó 15.000 Rpms, aunque actualmente tienden a utilizar SSD, comentados en estas entradas del Blog: Guía para comprar un SSD (Solid State Device, Dispositivo de Estado Sólido) y SSD (Solid State Drive, Dispositivo de Estado Sólido): Los nuevos discos duros).
  • Los discos de 10.000 Rpms SATA están “limitados” a los Velociraptors de Western Digital, pero tienen una relacion €/GB pémisa (Los modelos de 74 y 150 GB rondan los 150 €, el de 300 GB ronda los 203 €, el de 450 GB los 280 y el de 600 GB ronda los 285 €), ya que los precios en muchos casos se acercan a de un SSD  de entre 60 y 120 GB.
  • Los SSD tienen una relación €/GB también pésima (Aunque su rendimiento es muy superior a cualquier disco duro actual de 10.000 ó 15.000 Rpms), un SSD de 60 GB ronda los 160 € y uno de 120 GB ronda los 320 €, aunque también hay SSD de 40 GB y alto rendimiento (Ej: Mushkin Callisto, comentado en esta entrada del Blog) que rondan los 108 € sin gastos de envío.

Para un uso puramente ofimático posiblemente siga interesando tirar de discos duros mecánicos por su relacion precio/prestaciones frente a los SSD.

Sin embargo existe un cuello de botella “endémico” en cualquier equipo informático actual de altas prestaciones: El disco duro, desde el inicio de la informática los sistemas de almacenamiento electro-mecánicos (Discos duros) han sido siempre el cuello de botella, un disco duro:

  • UDMA33 (ATA33) podía transmitir hasta 33 MB/Seg aunque luego su rendimiento secuencial y aleatorio era inferior (Utilizaban cables de 40 hilos y 40 contactos).
  • UDMA66 (ATA6) podía transmitir hasta 66 MB/Seg aunque luego su rendimiento secuencial y aleatorio era inferior (A partir de ATA66 hasta ATA133 se utilizaron cables de 80 hilos y 40 contactos).
  • UDMA100 (ATA100) podía transmitir hasta 100 MB/Seg aunque luego su rendimiento secuencial y aleatorio era inferior.
  • UDMA133 (ATA33) podía transmitir hasta 133 MB/Seg (Que es justamente el máximo ancho de banda del bus PCI) aunque luego su rendimiento secuencial y aleatorio era inferior.
  • Serial ATA 150 (SATA150) podía transmitir hasta 150 MB/Seg (Que es justamente el máximo ancho de banda del bus PCI) aunque luego su rendimiento secuencial y aleatorio era inferior (Lo normal es que el bus SATA utilice una conexión PCI express o PCIe).
  • Serial ATA 300 (SATA300 ó SATA2) transmite hasta 300 MB/Seg (Que es justamente el máximo ancho de banda del bus PCI) aunque luego su rendimiento secuencial y aleatorio era inferior.
  • Serial ATA 600 (SATA600 ó SATA3) podía transmitir hasta 600 MB/Seg (Que es justamente el máximo ancho de banda del bus PCI) aunque luego su rendimiento secuencial y aleatorio era inferior.

Hay que tener en cuenta que en el caso de los discos UDMA/ATA el ancho de banda disponible se repartía entre los dos dispositivos (Master y Slave)  conectados al mismo canal (Primario o Secundario) y que el acceso a los mismos (Ej: Pasar datos de un disco duro Master en canal primario al disco Slave del mismo canal) no era simultáneo sino alterno. Con el nuevo conector Serial ATA (SATA) ha habido una mejora en este sentido ya que cada dispositivo tiene su ancho de banda propio (En el caso de SATA150, cada conector tiene hasta 150 MB/Seg de ancho de banda, en el caso de SATA300/SATA2 cada conector tiene hasta 300 MB/Seg y en el caso de SATA600/SATA3 cada conector tiene 600 MB/Seg) puesto que la conexion es “directa” desde el dispositivo (Ej: Disco Duro) al conector SATA de la placa base.

Actualmente para equipos de gama alta parece más interesante tener un SSD o dos en RAID 0 (Stripping) junto con un disco duro de alta capacidad para:

  • Instalar el Sistema Operativo y el Software (Programas y Juegos) en el SSD, acelerando así la carga del Sistema Operativo y la apertura de los programas/juegos).
  • Dejando el disco duro de gran capacidad para almacenar los datos de usuario (Documentos, Música, Videos/Películas, Descargas,…) los cuales no necesitan tener una apertura “instantánea”.

El mayor problema es que si necesitamos un SSD de cierta capacidad 120 GB o más el precio del mismo se “dispara”.

Ya que actualmente los ordenadores tienen un gran ancho de banda en los componentes puramente electrónicos como por ejemplo:

  • FSB de los procesadores, por ejemplo el bus Hyper-Transport (HTT) v3.0 de los ultimos AMD tiene una frecuencia de funcionamiento de 3,2 Ghz con 32 Bits, que se traduce en un ancho de banda bidireccional de 51,2 GB/Seg, y los primeros Intel Nehalem (Core i7 y derivados) tienen un bus similar al HTT de AMD denominado QPI (QuickPath Interconnect), el cual funciona a 3,2 Ghz con 20 Bits, que se traduce en un ancho de banda bidireccional de 25,6 GB/Seg.
  • Memoria RAM DDR2 PC1066 que tiene 8.500 MB/Seg (8,5 GB/Seg).
  • Memoria RAM DDR3 PC1600 que tiene 12.800 MB/Seg (12,8 GB/Seg).
  • Bus Serial ATA300 (Hasta 300 MB/Seg).
  • Bus Serial ATA600 (Hasta 600 MB/Seg).
  • USB 3.0 (Hasta 4,8 Gbps, unos 4.800 Mbps que equivalen a unos 600 MB/Seg).
  • Bus PCI Express (PCIe) que en su version 1.1 tiene un ancho de banda de 250 MB/Seg y por canal, es decir que un bus PCIe de 1x tendría 250 MB/Seg (El bus PCI anterior tenía como máximo 133 MB/Seg para todos los dispositivos que hubiese conectados a él), mientras que un PCIe 16x tendría 4 GB/Seg (4.000 MB/Seg) ya que serían 16 canales de 250 MB/Seg cada uno (250 MB/Seg x 16  canales = 4.000 MB/Seg). Actualmente el bus PCIe va por la versión 2.0 el cual dobla la tasa de transferencia, hastalos 500 MB/Seg y el próximo bus PCIe 3.0 la vuelve a doblar hasta los 1.000 MKB/Seg.

Sin embargo los discos duros mecánicos actuales (Lo habitual es que sean de 5.400 ó 7.200 Rpms) por muy rápidos que sean (Aun siendo de 10.000 ó 15.000 Rpms)  no pueden aprovechar al 100% el ancho de banda que proporcionan los buses de datos actuales como por ejemplo:

  • SATA o S-ATA (Serial ATA).
  • SCSI (Small Computers System Interface (Sistema de Interfaz para Pequeñas Computadoras).
  • SAS (Serial Attached SCSI que es utiliza unos conectores similares a SATA pero incompatibles con él).

Por lo que el rendimiento del sistema de almacenamiento supone un cuello de botella bastante grande, por varias razones:

  1. Alta latencia: Los discos duros de 7.200 Rpms (Los más comunes en entornos domésticos) tiene un tiempo de busqueda según fabricante en el mejor de los casos de unos 9 ms aproximadamente (Mientras que un disco de 10.000 Rpms segun datos de los fabricantes tienen el mejor de los casos 4,2 ms y los discos de 15.000 Rpms tienen entre 3,4 y 3,5 ms), esto se traduce en una pérdida de rendimiento debido a que para buscar un dato es necesario invertir bastante “tiempo” si se compara con un SSD los cuales tienen latencias (Tiempo de Acceso) inferiores a 1 ms.
  2. Tasa de transferencia: Que en el caso de los discos duro no se mantiene sostenida sino que fluctua entre un maximo y un minimo, de hecho las gráficas de los Benchmark de disco duro como: HD Tach y HD Tune, muestran que un disco duro SATA300 de 500 GB y 7.200 Rpms actual puede tener una tasa media de transferencia de datos de unos 100 MB/Seg pero esta tasa no es sostenida a lo largo de toda la superficie del plato sino que suele empezar por una tasa ligeramente superior a la media para ir bajando progresivamente hasta por debajo de la media pudiendo llegar a ser la tasa mínima aproxidamente entre el 50 (En torno a los 50 MB/Seg) ó el 60% (En torno a los 60 MB/Seg) de la velocidad media.
  3. IOPS (Input Output Per Second, Operaciones de Entrada – Salida Por Segundo): Los discos duros tienen muy bajo rendimiento en este sentido.

Estos problemas y otros derivados de la propia arquitectura de los discos duros inicialmente se “resolvieron” con los niveles RAID (Hay más información en esta entrada del Blog) que permitian mejorar:

  • El rendimiento del sistema de almacenamiento (Ej: RAID 0, Stripping)
  • La seguridad física de los datos, como es el caso de RAID 1 (Mirroring o Espejo).
  • El rendimiento y la seguridad física de los datos, como es el caso de RAID 5 y RAID 10.

Sin embargo aun utilizando sistemas RAID los discos duros tienen una latencia alta, por lo que los SSD (Solid State Device, Dispositivos de Estado Sólido) basados en memorias Nand Flash como las que se utilizan en las memorias flash USB o las tarjetas de memoria, son los que realmente proporcionaran al usuario un gran rendimiento ya que apenas tienen latencia (Es inferior a 1 ms) y sus tasas de transferencia de datos son muy altas (Si queremos mayor rendimiento aún se puede optar por un RAID 0 con dos o más SSD); sin embargo hasta que no sus precios sean “asequibles” (Actualmente un SSD “bueno” de entre 60 y 80 GB ronda los 160 – 225 €) no se podrá eliminar el lastre de rendimiento que suponen los discos duros para los sistemas operativos actuales y sus programas/juegos.

De hecho en el futuro no sería raro ver equipos de altas prestaciones con Un SSD para el Sistema (Incluyendo los Programas y Juegos) para que le de “rapidez” al equipo, mientras que los datos de usuario se guardan en:

  • Discos duro electro-mecánicos de gran capacidad (Actualmente existen discos de hasta 2 TB y ya que comenta que en breve saldrán los discos de 3 TB).
  • Discos duros híbridos (HHD: Hybrid Hard Drive, Discos Duro Híbrido que son discos electro-mecánicos pero con algo de memoria Flash para acelerar el rendimiento, en esta entrada del Blog hay más información)  de gran capacidad (Actualmente Seagate tiene un modelo con estas caracteristicas denominado Seagate Momentus XT, es un disco duro de 2,5″ (Tamaño de disco duro de portátil) que esta disponible en tres capacidades: 250 GB, 320 GB y 500 GB que cuenta con 4 GB de memoria Nand Flash SLC, pero teniendo en cuenta que el modelo de 320 GB ronda los 123 € y el modelo de 500 GB los 148 € parece mejor opción este último ya que por unos 30 € más se consiguen 180 GB “extras”).