¿Es la frecuencia de una CPU un valor medio de aproximadamente cuántos tics de reloj hay en un segundo o tiene una estabilidad física más fuerte?
En mi opinión, no debe ser estable ni inestable. Entonces, ¿hay alguna información disponible sobre la variación de una CPU?
¿La duración del ciclo de una CPU está estrictamente sincronizada con la vibración del cristal? ¿O la CPU solo tiene que asegurarse de lograr un ciclo antes del próximo tic?
Respuestas:
Como cualquier cosa complicada, puede describir la forma en que funciona una CPU en varios niveles.
En el nivel más fundamental, una CPU es impulsada por un reloj preciso. La frecuencia del reloj puede cambiar; Piense en el SpeedStep de Intel. Pero en todo momento la CPU está 100% bloqueada a la señal del reloj.
Las instrucciones de la CPU operan a un nivel mucho más alto. Una sola instrucción es algo complejo y puede tomar desde menos de un ciclo hasta miles de ciclos para completarse como se explica aquí en Wikipedia .
Entonces, básicamente, una instrucción consumirá cierto número de ciclos de reloj . En las CPU modernas, debido a tecnologías como núcleos múltiples, HyperThreading, canalización, almacenamiento en caché, fuera de orden y ejecución especulativa, el número exacto de ciclos de reloj para una sola instrucción no está garantizado, y variará cada vez que emita dicha instrucción. !
EDITAR
Si y no. El 99,99% de los usuarios finales están interesados en el rendimiento general , que puede cuantificarse ejecutando varios puntos de referencia.
Lo que está pidiendo es información altamente técnica. Intel no publica información completa o precisa sobre la latencia / rendimiento de las instrucciones de la CPU .
Hay investigadores que se han encargado de resolver esto. Aquí hay dos archivos PDF que pueden ser de interés:
Lamentablemente, es difícil obtener datos de variación . Citando del primer PDF:
Interesante lectura sin embargo!
fuente
But at all times the CPU is absolutely 100% locked to the clock signal
solo se aplica a las CPU síncronas. Es una tontería hablar de ticks en una CPU asíncrona (sin reloj), pero me pareció una omisión :)Por supuesto no. Incluso los mejores relojes no son estrictamente periódicos. Las leyes de la termodinámica dicen lo contrario:
Los desarrolladores de los mejores relojes intentan superar las leyes de la termodinámica. No pueden ganar, pero están muy, muy cerca de alcanzar el punto de equilibrio. ¿El reloj de tu CPU? Es basura en comparación con esos mejores relojes atómicos. Es por eso que existe el Protocolo de tiempo de red .
Predicción: Una vez más veremos un poco de caos cuando los mejores relojes atómicos del mundo pasen de 2015 30 de junio a las 23:59:59 UTC a 2015 30 de junio a las 23:59:60 UTC a 2015 1 de julio de 2015 00:00:00 UTC. Demasiados sistemas no reconocen los segundos bisiestos y tienen su nivel de seguridad establecido en dos (lo que impide un cambio de tiempo de más de un segundo). La fluctuación del reloj en esos sistemas significa que se rechazará el segundo salto de protocolo de tiempo de red. Varias computadoras se arruinarán, como lo hicieron en 2012.
fuente
Alrededor de 2000, cuando las velocidades de reloj de las CPU comenzaron a entrar en el rango donde también operaban los teléfonos móviles, se hizo común agregar una variación a la velocidad real del reloj. La razón es simple: si el reloj de la CPU es exactamente 900 Mhz, toda la interferencia electrónica se genera a esa frecuencia. Varíe un poco la frecuencia del reloj entre 895 y 905 Mhz, y la interferencia también se distribuye en ese rango.
Esto fue posible porque las CPU modernas están limitadas por el calor. No tienen problemas para correr un poco más rápido durante un corto período de tiempo, ya que pueden enfriarse cuando el reloj se ralentiza más tarde.
fuente
Diseñador de lógica digital aquí. El tiempo real que tarda una red lógica en cambiar en respuesta a una señal de entrada es el retraso de propagación . Piense en el sistema como:
registers A,B,C... ---> logic cloud ---> registers A',B',C'
El "reloj de lanzamiento" es el borde del reloj en el que cambia el primer conjunto de registros. El "reloj de captura" es el siguiente borde del reloj un período después. Para que el sistema funcione, la salida de la nube lógica debe ser estable antes de que llegue el reloj de captura.
El proceso para asegurarse de que esto funcione es el análisis de tiempos. Utilizando una simulación del sistema basada en la física, calcule el peor momento de llegada de cualquier entrada a cualquier salida. El mayor de estos números en todo el sistema establece el período de reloj mínimo.
Tenga en cuenta el peor de los casos . El tiempo de propagación real será más corto, pero depende de la variación del proceso de fabricación, la temperatura actual y el voltaje del chip ( PVT ). Esto significa que, en términos prácticos, puede aplicar un reloj más rápido (overclocking) y puede funcionar. También puede comenzar a producir errores, como decidir
0x1fffffff + 1 = 0x1f000000
si el bit de transporte no llega a tiempo.Los chips también pueden tener más de un reloj a bordo (por lo general, el FSB es más lento que el núcleo), y el reloj real puede aumentar o disminuir para fines de control térmico o variado (la respuesta de MSalter sobre el uso del espectro extendido para pasar las pruebas EMC).
fuente
Ninguno. La duración de la instrucción será un número de tics de reloj, pero ese número puede variar según los requisitos de la instrucción. Por ejemplo, si una instrucción no puede avanzar hasta que una ubicación de memoria particular esté en el caché L1, entonces la instrucción no se completará antes del siguiente tictac del reloj. No se avanzará en esa instrucción hasta que eso ocurra.
Pero cuando la CPU decide hacer algo, el método básico por el cual lo hace es configurar sus interruptores internos para que una determinada información vaya a una parte particular de la CPU. Espera a que la entrada llegue a esa porción y la salida llegue a la siguiente porción. Esta porción de espera es el propósito del reloj.
Imagine un circuito físico que toma dos entradas binarias y las suma, generando la suma en algún tercer conjunto de cables. Para hacer una adición, la CPU debe organizar los dos números que se agregarán para llegar a este sumador y las salidas para ir, por ejemplo, a un pestillo de registro de la CPU. La CPU no puede decirle al pestillo que almacene la salida hasta que las entradas lleguen al sumador, el sumador produce la salida y la salida alcanza el pestillo. Este es el propósito del reloj: establecer el tiempo de espera entre organizar la entrada para ir a algún lado y esperar que la salida esté lista para usar.
fuente