sistema reloj que procesador microprocesador interno función funcion desempeña datos cuál computadora caracteristicas datetime clock time-precision

datetime - que - ¿Qué tan preciso es el reloj interno de una PC moderna?



reloj interno de la computadora (2)

Literalmente, leí una publicación de blog en MSDN sobre esto hoy, la leí aquí , cubre el tema bastante bien. Tiene un énfasis en el DateTime de C # pero es universalmente aplicable.

Sé que hace 10 años, la precisión típica del reloj equivalía a una marca del sistema, que estaba en el rango de 10-30 ms. En los últimos años, la precisión se incrementó en varios pasos. Hoy en día, hay formas de medir los intervalos de tiempo en nanosegundos reales. Sin embargo, los marcos habituales siguen devolviendo el tiempo con una precisión de solo 15 ms.

Mi pregunta es: ¿qué pasos aumentaron la precisión, cómo es posible medir en nanosegundos y por qué seguimos obteniendo con frecuencia una precisión inferior a los microsegundos (por ejemplo, en .NET)?

(Descargo de responsabilidad: Me parece extraño que esto no haya sido preguntado antes, así que supongo que me perdí esta pregunta cuando realicé la búsqueda. Por favor, cierre y señáleme la pregunta en ese caso, gracias. Creo que esto pertenece a SO y no a ninguna otro sitio de SOFU. Entiendo la diferencia entre precisión y exactitud.)


Realmente es una característica de la historia de la PC. El IBM-PC original usó un chip llamado Real Time Clock, el cual estaba respaldado por una batería (¿Recuerda que tuvo que cambiar las baterías de estos?) Funcionaron cuando la máquina estaba apagada y se mantuvo a la misma hora. La frecuencia de estos fue de 32.768 kHz (2 ^ 15 ciclos / segundo), lo que facilitó el cálculo del tiempo en un sistema de 16 bits. Este reloj de tiempo real se escribió en el CMOS, que estaba disponible a través de un sistema de interrupción en sistemas operativos más antiguos.

Un nuevo estándar está fuera de Microsoft e Intel, llamado High Precision Event Timer, que especifica una velocidad de reloj de 10MHz http://www.intel.com/hardwaredesign/hpetspec_1.pdf Incluso las arquitecturas de PC más nuevas lo toman y lo colocan en el controlador Northbridge y El HPET puede sintonizar a 100MHz o incluso más. A 10Mhz deberíamos poder obtener una resolución de 100 nano-segundos y a 100MHZ deberíamos poder obtener una resolución de 10 nano-segundos.

Se sabe que los siguientes sistemas operativos no pueden usar HPET: Windows XP, Windows Server 2003 y versiones anteriores de Windows, versiones anteriores de Linux

Se sabe que los siguientes sistemas operativos pueden usar HPET: Windows Vista, Windows 2008, Windows 7, versiones basadas en x86 de Mac OS X, sistemas operativos Linux que utilizan el kernel 2.6 y FreeBSD.

Con un kernel de Linux, necesita el controlador de dispositivo de reloj de hardware "rtc-cmos" más nuevo en lugar del controlador "rtc" original

Todo lo dicho, ¿cómo accedemos a esta resolución extra? Podría cortar y pegar artículos anteriores de , pero no. Solo busque HPET y encontrará las respuestas sobre cómo hacer que funcionen los temporizadores más finos.