jueves, 21 de junio de 2012

Modo DMA en dispositivos ATA/ATAPI en Windows XP

Windows XP habilita por defecto el modo DMA en la mayoría de los dispositivos ATA / ATAPI, pero para asegurar la estabilidad del sistema cuando encuentra un número grande de errores (más de seis) durante la transferencia de datos, seleccionará el modo PIO.
En este artículo explicaremos las razones por las cuales XP selecciona este modo de acceso y si es posible cambiarlo.
El modo PIO es habilitado por defecto en las situaciones siguientes:

En dispositivos ATAPI, excepto DVD y CD-RW

Windows XP habilita por defecto el modo PIO en CD-ROM y dispositivos removibles como los magnetoópticos. Podemos habilitar el DMA a través del administrador de dispositivos como describiremos al final del artículo.
Windows XP habilita por defecto el DMA en ATAPI DVD y CD-RW/CD-R.

En dispositivos ATA/ATAPI que no funcionan correctamente en modo DMA
El test de compatibilidad de Microsoft ha demostrado que permitir el DMA a ciertos dispositivos podría causar la corrupción de datos o la inestabilidad del sistema. No hay manera de habilitar el DMA en estos dispositivos.

En ciertos chipsets IDE que causan la corrupción de los datos
Para ciertos dispositivos ATA o ATAPI que usan chipsets de los que se sabe pueden ocasionar problemas durante la ejecución del DMA Windows XP habilitará el modo PIO por defecto.
Los fabricantes de dichos dispositivos pueden corregir estos errores mediante los métodos GTM y STM en las ACPI de la BIOS, por lo que haría falta una actualización de la misma.
Mientras tanto podemos habilitar de nuevo el DMA a través del administrador de dispositivos.

Por errores repetidos del DMA
Windows XP deshabilitará el modo DMA de un dispositivo si durante el proceso de transferencia de datos encuentra un número significativo de errores (mayor de 6) habilitando para el dispositivo en cuestión el modo PIO.
En este caso no podremos habilitar de nuevo el modo DMA a través del cambio de modo en el administrador de dispositivos, sólo será posible desinstalando y volviendo a instalar el dispositivo.
Todos los errores se guardan en el registro del sistema.
Este tipo de errores puede ser causados por el montaje incorrecto del cableado o por la utilización de cables de 40 contactos en lugar de 80.
También nos puede indicar el mal funcionamiento de nuestro hardware como discos duros.

Habilitar DMA desde el administrador de dispositivos
1. Abrimos el administrador de dispositivos
2. Doble click sobre "Controladoras IDE ATA/ATAPI para ver la lista de canales y controladoras.
3. Sobre el canal del dispositivo en cuestión: Botón derecho del ratón - Propiedades - Configuración avanzada.
4. Seleccionar en "Modo de transferencia" el modo DMA si está disponible.

 

Modo PIO, recuperar el estado DMA en XP/Vista/7: Cuando los discos duros fallan

Y es que a decir verdad desde que compré mi nueva PC tuve este problema con un disco SATAII, que empezó a fallar, haciendo sonidos raros en el hardware, indicación de que había algún error grave en la lectura de los datos que además provocaba congelamientos parciales e incluso una caída general del OS.

Lo más lógico es pensar que el cable de conexión de la fuente de poder y/o el cable de transferencia pueden estar defectuoso o que el voltaje es inferior a 11.5 voltios, por lo que habría que pensar en una fuente nueva y probar cambiar los cables.

El mayor problema es que al reiniciar el sistema, el disco duro SATA se ponía en Modo PIO, como saben esta modalidad no DMA es sumamente lenta y consume hasta el 60% de los recursos de un procesador multinúcleo

El Modo PIO se establece automáticamente después de 6 comprobación de redundancia cíclica (CRC) o de tiempo de espera, como medida de seguridad, el Modo PIO permite recuperar datos de un disco duro en caso de un daño progresivo inminente.

Si un dispositivo se pone lento después de algunos meses de uso, una buena limpiada de los pines y cables sería necesaria antes de sacarlo del modo PIO.

Tres métodos:
El primer método es al vuelo, no necesita de reiniciar, puede adaptarse a Windows Vista pero tiene como límite que sólo se puede aplicar a discos secundarios al que tiene instalado nuestro sistema operativo.
El segundo puede recuperar todos los estados DMA de todos los dispositivos se aplica a Windows 7, Vista, XP, 2000 y NT. (Es el método recomendado y más sencillo)
El tercero y más delicado es para editar desde el registro y tratar con un disco primario que contiene al sistema operativo.

1.-Recuperar DMA al Vuelo
Si es un dispositivo diferente al disco primario, esto es, distinto al disco donde almacenamos el sistema operativo vayamos a Inicio ► Ejecutar (En otros OS pulse Win+R) y escribimos devmgmt.msc y pulsamos Aceptar, se abrirá el
Administrador de dispositivos, pulsamos en el signo + de Controladoras IDE ATA/ATAPI.
Los canales se ordenan en pares Maestro-esclavo o Primario y Secundario, mi XP está en un disco Maestro y el DVD es su Esclavo, por lo que el SATAII será el Canal IDE secundario. Si damos doble clic y en la ventana que se abre de Propiedades, en la ficha Configuración avanzada podremos ver en el Modo de transferencia actual que el Modo PIO está al mando:

Para restablecer el DMA, tendremos que dar clic derecho en el canal IDE que contenga el Modo PIO y en el menú elijan Desinstalar:

Tendremos que esperar unos momentos hasta que el dispositivos desaparezca de la lista de Mi PC y del árbol del Administrador de Dispositivos.

Hecho esto, sólo tendremos que ir al Menú Acción del Administrador de dispositivos y pulsar en Buscar cambios de Hardware:
Esto cambiará el modo al vuelo de PIO a DMA.

Anexo: Si el afectado es el disco que contiene el sistema Operativo.
Si el afectado es el disco principal, únicamente pongan en las Propiedades del Canal IDE primario
en el Modo de Transferencia, en modo DMA si está disponible: (Sería recomendable desactivar el S.M.A.R.T. desde el BIOS para mayor efectividad en este particular caso)


2.-Recuperar todos los dispositivos ATA e ATAPI IDE (Windows XP, Vista y 7)
El método anterior es el mismo para Windows 7 y Vista, se ha probado con éxito debido a que no se ha modificado esas llaves particulares del registro en los nuevos OS de Microsoft.

Este método es el mejor y más sencillo de aplicar.
Para hacerlo tendremos que ejecutar un archivo VBS, primero descargue el archivo resetear-dma-cgnauta-blog.zip. descomprima y ejecute el archivo resetear-dma.vbs y reinicie su computadora.

Eso es todo.

3.- Recuperar el modo DMA en disco principal
Este es el método recomendado para recuperar los modos DMA desde el editor de registro, pero antes que nada "debe notar que las claves de registro tiene un número terminal por ejemplo \0001 desde el que se ordenan los canales principales (Maestro) y secundarios (Esclavo), pero note que algunos contiene la dirección del controlador no del dispositivo, los que se deben editar tienen en el valor DriverDesc la palabra Canal IDE primario o Canal IDE secundario.

En este ejemplo se resetea los dos primeros dispositivos de un canal controlador IDE/ATA si tiene más dispositivos instalados el dispositivo Primario puede estar en 0002, recuerde verificar en el valor DriverDesc que tenga el parametro Canal IDE Primario:

  1. Haga clic en Inicio, en Ejecutar (Win + R en otros OS), escriba regedit y, a continuación, haga clic en Aceptar.
  2. Busque la siguiente clave del Registro y haga clic en ella: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E96A-E325-11CE-BFC1-08002BE10318}\0001
  3. En el menú Edición, seleccione Nuevo y haga clic en Valor DWORD.
  4. Escriba ResetErrorCountersOnSuccess y, a continuación, presione Entrar.
  5. En el menú Edición, haga clic en Modificar.
  6. Escriba 1 y, a continuación, haga clic en Aceptar.

Siga estos pasos y después salga del Editor del Registro:
  1. Haga clic en Inicio, en Ejecutar, escriba regedit y, a continuación, haga clic en Aceptar.
  2. Busque la siguiente clave del Registro y haga clic en ella: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E96A-E325-11CE-BFC1-08002BE10318}\0002
  3. En el menú Edición, seleccione Nuevo y haga clic en Valor DWORD.
  4. Escriba ResetErrorCountersOnSuccess y, a continuación, presione Entrar.
  5. En el menú Edición, haga clic en Modificar.
  6. Escriba 1 y, a continuación, haga clic en Aceptar. 
El parámetro ResetErrorCountersOnSuccess reiniciará el contador de errores de manera automática
Fácil ¿no?.

Por qué hay problemas entre SATA e IDE
La fuente de poder recomendada para evitar estos problemas de redundancia cíclica es de 400 watts en adelante, de otra forma, la falta de corriente suficiente para mantener a ambos sistemas funcionando, mismos que consumen por separado una cantidad de corriente considerable y las caídas de tensión recurrentes pueden provocar la entrada en modo PIO.

Mi recomendación es que no mezcle discos duros IDE con SATA.

Por lo general se hace evidente este problema cuando los discos duros hacen unos sonidos como el picoteo de un pájaro y luego se escucha la pérdida de velocidad del disco SATA y la entrada en modo PIO de los IDE.

Recuerde además limpiar los conectores cada seis meses con aire a presión si su computadora está demasiado empolvada por dentro, pues esto reducen la conductividad de los pines en los conectores.

Referencia: http://cgnauta.blogspot.mx/2008/11/modo-pio-recuperar-el-estado-dma-en-xp.html