viernes, 22 de marzo de 2013

Marrones sobre la Velocidad de Transferencia de Disco

    La Velocidad de Transferencia de los discos duros y los dispositivos de almacenamiento de datos siempre han sido un cuello de botella en los PC's a lo largo de su historia. La Velocidad de Transferencia (Mb/seg) de un dispositivo depende del Modo de Transferencia que soporta tanto el propio dispositivo como la Placa Base o controladora que lo gestiona. Estos modos de transferencia han ido evolucionando desde los antiguos Modos directos PIO a los actuales Modos Ultra DMA (UDMA), esta tabla recoge las velocidades de los Modos recopilados de Wikipedia (http://en.wikipedia.org/wiki/AT_Attachment):

Modo
Numero
Mb/seg
Estándar
PIO
0
3,3
ATA-1
1
5,2
ATA-1
2
8,3
ATA-1
3
11,1
ATA-2
4
16,7
ATA-2
5
20
CompactFlash 2.0
6
25
CompactFlash 2.0
Single-word DMA
0
2,1
ATA-1
1
4,2
ATA-1
2
8,3
ATA-1
Multi-word DMA
0
4,2
ATA-2
1
13,3
ATA-2
2
16,7
ATA-2
3
20

4
25

Ultra DMA
0
16,7
ATA-4
1
25
ATA-4
2
33,3
ATA-4
3
44,4
ATA-5
4
66,7
ATA-5
5
100
ATA-6
6
133
ATA-7
7
167
CompactFlash 6.0[1]

    El orden expuesto va en función del avance de la tecnología con el paso del tiempo. De los antiguos modos PIO a los primeros modos UDMA se pasó en menos de 10 años, yo recuerdo que tuve mi primer PC con UDMA por el año 2002 y tenía instalado aún el Windows 98 y para poder aprovechar al máximo la velocidad de transferencia de la placa base y el disco, tocaba tener los drivers de la placa base actualizados al máximo y modificar entradas del registro de Windows 'a pelo' para activar el modo UDMA que soportara tanto la placa como el propio dispositivo. Aunque parezca una tontería, poner el disco en modo UDMA 1 ó 2 (a 33 Mb/seg) en vez de en PIO 4 (16 Mb/seg) que era el 'por defecto' de Windows, significaba que fuera el doble de rápido, y el poder reproducir un fichero de Video de cierta calidad sin saltos y paradas. La clave del registro de Windows 98 que había que modificar era esta (igual hay alguien por ahí con W98 a quién le pueda servir este dato):


HKLM/System/CurrentControlSet/Services/Class/hdc/0001/

IDEDMADRIVE0=01
CurrentMode0=0203
CustomMode0=0203

Donde CurrentModeX y CustomModeX son 2 valores de 2 bytes, el primero indica el modo (00=PIO, 01=DMA Multiword, 02=UDMA) y el segundo el tipo de transferencia. Por ejemplo 0203 es UDMA modo 3.
Por cada clave que cuelgue de /hdc se identifica 0001 el canal IDE primario y el 0002 el secundario, dentro de los cuales podía haber hasta dos discos o dispositivos en modo maestro/esclavo.

En Windows XP podemos ir directamente al Administrador de Dispositivos y comprobar la configuración que tenemos: 



Realmente el marronazo de todo esto es que en la velocidad de transferencia final de nuestro dispositivo (disco duro), depende de varios factores:

1- Del propio disco (Estándar IDE y UDMA soportado por el modelo),
2- Del cable de conexión a la placa base (parece tontería pero en los cables IDE hay 2 tipos que aparentemente son iguales y uno es más moderno que otro),
3- De los dispositivos conectados al mismo cable (maestro / esclavo), esto solo pasa con los IDE, compartir el canal IDE puede hacer que funcione a la velocidad del menor de los dos,
4- De la Placa Base (UDMA que soporte la BIOS y/o activado por supuesto),
5- Del Sistema Operativo (UDMA que soporte el sistema operativo y/o los drivers IDE instalados). Linux y Windows no son lo mismo, y 32 bits no son lo mismo que 64. Creo que en Windows XP aunque puedas poner un disco de última generación no puedes superar el UDMA 6 a no ser que sea en modo RAID (esto es otra historia). Esto aún no lo tengo muy claro.


Independientemente del modo de transferencia, el almacenamiento ha evolucionado respecto al Interface, es decir, al modo en que se conecta el disco a la placa, pasando del estándar IDE (Paralell ATA o P-ATA) del que hemos hablado hasta el momento, al SATA (Serial ATA), pasando por el SCSI (contemporáneo al estándar IDE), una tecnología de discos y controladores mucho más cara, pero que conseguía tasas de 320 Mb/seg y que solía usarse en servidores.

El estándar IDE soportaba un máximo de transferencia de 133 Mb/seg (UDMA 6), mientras que el SATA empezó por 150 Mb/seg y actualmente va por la versión 3.0 (http://en.wikipedia.org/wiki/Serial_ATA):

SATA I.............150 Mb/seg (1.5 Gbits/s)
SATA II............300 Mb/seg (3 Gbits/s)
SATA III...........600 Mb/seg (6 Gbits/s)


Los discos SATA no tienen problemas a la hora de configurarse en UDMA porque ya NO UTILIZAN este sistema de transferencia, pero Windows XP o los fabricantes de placas, parece ser que por temas de compatibilidad, siguen mostrando la información de conexión del canal IDE de un disco SATA como valores de Ultra DMA 5 creando confusión.
Dejando que tanto placa como sistema operativo y drivers se configuren de modo automático y por defecto, en principio la velocidad de transferencia debe ser la optima o la máxima para el equipo y el disco. Para saber realmente a que velocidad está funcionando tu disco duro puedes usar el programilla HDTune (ver entrada sobre mejorar la lentitud del PC). Este programa te indica después de un testeo la velocidad máxima y la media de tu disco, la información que refleja sobre el UDMA actual de tu disco y el que puede soportar es errónea, pues como he comentado antes UDMA y SATA no tienen nada que ver y la información falsa se debe a un error por compatibilidad de las placas. Ten en cuenta que un disco pertenezca a un estándar (SATA I, II o III) te indica el máximo de velocidad del Interface, no el que puede alcanzar el dispositivo,  este es el marrón de los SATA, de hecho en discos SATA I o SATA II las velocidades entre 60 y 80 Mb/seg suelen ser normales según marca y modelo. Es decir, un disco SATA II significa que tiene un interfaz que soporta hasta 300 Mb/seg, pero puede ser que funcione a 60 Mb/seg perfectamente porque el fabricante lo ha diseñado así. Conviene mirar con lupa las especificaciones del disco antes de comprarlo si te preocupa este tema, pero no suele venir indicada a primera vista esta velocidad 'Real' de transferencia, que se suele indicar como 'Internal Data Transfer Rate', o 'Sustained Data Rate', que sería la velocidad media de transferencia que el disco puede mantener(http://www.pcguide.com/ref/hdd/perf/intRate-c.html). Por ejemplo, me compré un SATA III de 2 Tb Western Digital y en las especificaciones indica claramente una tasa de transferencia de 110 Mb/seg frente a los 600 Mb/seg que soporta el SATA III (http://marronetis.blogspot.com.es/2013/02/el-marron-de-instalar-un-disco-western.html).
Normalmente esta velocidad real es mayor si el disco es de 7200 rpm en vez de 5400, y al parecer mayor aún en en los nuevos discos de tecnología solida SSD, que en el caso de los SATA III si acercan mucho la velocidad de Transferencia Interna Real a la que soporta el Interface (600 Mb/seg).

Si aún así la velocidad del disco no te cuadra, te toca investigar si realmente tu placa soporta más o menos velocidad y si hay algo que no está bien configurado a nivel de BIOS o drivers de la placa base y que puedas corregir.

Por último, un interesantísimo enlace sobre Velocidades o tasas de Transferencia, no solo de disco, sino también de Red, USB, Wi-fi, etc.. Perfecto para comparar y para saber que le puedes pedir a cada tipo de conexión cuando estás conectado: http://en.wikipedia.org/wiki/List_of_device_bit_rates







0 comentarios:

Publicar un comentario