--------------------------------------------------------------------------------
El efecto Crouch-Echlin
Por Doug Owen
Bautizado con el nombre de sus descubridores, Jace Crouch y Mike Echlin, el efecto Crouch-Echlin es un problema que afecta a los relojes de tiempo real de las computadoras (RTCs) y sólo aparecerá, de manera impredecible y esporádicamente, después del 1° de enero del año 2000.
Una de las tareas que realiza el BIOS en el momento de encendido, es tomar la fecha del RTC y almacenarla en un lugar de la memoria donde el sistema operacional pueda encontrarlo. Los BIOS de las PCs manejan las fechas restando el número de años a partir de 1980 (digamos que este es el año "cero" en la era de la computación personal). De manera que al mostrar una fecha, el BIOS siempre resta 80 a los últimos dos dígitos... excepto cuando la fecha es posterior al 2000. Los fabricantes de BIOS se dieron cuenta muy rápido de este problema y lo resolvieron de manera sencilla, agregando una cláusula "if, then" a la rutina de encendido; "if date < 2000, then substract 80, else, go 4_digit_date_routine". O algo así.
Lo que nos trae al problema actual. El RTC se actualiza cada segundo, y mientras se está actualizando, la fecha y la hora están cambiando de manera que se encuentra en un estado indeterminado. En ese momento, el BIOS no puede leer la información del RTC. El RTC le avisa al BIOS y esta se abstiene de leer. El aviso aparece 244 microsegundos antes de que la información cambie para que el BIOS tenga tiempo de decidir si esperar o tomar la información inmediatamente.
Cuando el BIOS tiene que restar 80 años a la fecha que le da el RTC, esta es una operación que dura menos que 244 microsegundos. Sin embargo, cuando tiene que ir a la subrutina de 4 dígitos, el procedimiento gasta algo más que ese tiempo. Normalmente no hay problema. Pero ocasionalmente el BIOS decide chequear la información dentro del margen de 244 microsegundos y si estamos después del 2000, el RTC cambia en medio de la operación. El resultado es que el BIOS lee basura y el sistema operacional arranca con fecha y horas corruptas.
Existen varias curas para este problema. La más básica sería cambiar la manera como el BIOS calcula las fechas. O se podría utilizar un chip RTC con doble buffer para salida. De esta manera no hay peligro que la fecha cambie mientras es leída. Infortunadamente, el efecto Crouch-Echlin fue descubierto recientemente y la mayoría de las motherboards son todavía diseñadas con RTCs sin buffer. Si el mercado pensaba que las recientes Pentium con Windows 98 serían inmunes a los problemas del año 2000, vale la pena una segunda mirada. Otra solución es revisar la fecha cada vez que se enciende la computadora. Se puede cambiar la fecha si es necesario y esta no causará problemas mientras la computadora esté encendida ya que el efecto Crouch-Echlin sólo ocurre con la rutina de inicio. Procedimiento manual, pero efectivo. Sólo es necesario repetirlo todos los días durante los próximos cien años.
El peligro con muchas SOLUCIONES de RTC para los problemas normales del 2000, que no dicen explícitamente que resuelven el efecto Crouch-Echlin, es que de hecho pueden provocarlo.
Visite http://www.itcmex.com/2000.html y vea como se soluciona este problema.
Atte,
Grupo Itcmex s.a
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|