¿Cómo controlan los procesadores su velocidad de reloj?

12

Hace poco me encontré con un procesador STM con 2 osciladores en el circuito: uno para funcionamiento a alta velocidad y otro para bajo consumo.

Para algo como un procesador de escritorio donde la velocidad del reloj se puede cambiar a cualquier frecuencia deseada (dentro de lo razonable). ¿Cómo hace esto físicamente ?

    
pregunta alex.forencich

3 respuestas

21

Esto se hace usando un dispositivo llamado bucle de bloqueo de fase , o PLL. Aquí hay un diagrama de bloques de un PLL básico:

simular este circuito : esquema creado usando CircuitLab

El oscilador de la placa base no se ejecuta a la frecuencia de reloj de la CPU, sino que se ejecuta a una frecuencia del orden de 100 MHz. Este oscilador sirve solo como una frecuencia de referencia conocida y estable. Dentro de la CPU, la frecuencia de reloj real será generada por un oscilador controlado por voltaje , o VCO. El VCO se puede sintonizar para generar frecuencias en un rango relativamente amplio, pero por sí solo no es particularmente estable ni preciso; para una tensión de control dada, la frecuencia variará de una parte a otra y con la tensión y la temperatura de suministro. Un bucle de bloqueo de fase sirve para bloquear la frecuencia de salida VCO en una relación específica con la frecuencia de referencia.

Las salidas del oscilador de referencia y el VCO se dividen por divisores programables (con un factor de D para la referencia y M para la salida de VCO) y luego se comparan con un detector de fase y frecuencia (PFD). La salida del PFD se filtra y se usa para controlar el VCO. Esto forma un bucle de control conocido como un bucle de bloqueo de fase, porque sirve para impulsar la fase del VCO dividido para igualar la fase de la referencia dividida. En la entrada del PFD, la frecuencia será \ $ f_ {PFD} = f_ {ref} / D = f_ {out} / M \ $. El resultado es una frecuencia de salida con una relación matemática específica con la frecuencia de referencia, \ $ f_ {out} = f_ {ref} * M / D \ $. Como puede verse en esta ecuación, el divisor de frecuencia en la salida del VCO tiene el efecto de multiplicar la frecuencia de referencia por su factor de división. Así es como un PLL puede generar efectivamente frecuencias mucho más altas que la frecuencia de referencia.

Por ejemplo, suponga que la frecuencia de referencia es de 100 MHz, la referencia se divide por 1 (D) y el VCO se divide por 30 (M). Esto daría como resultado una frecuencia de salida de 100 MHz * 30/1 = 3 GHz. Esta relación se puede cambiar simplemente cambiando la configuración del divisor, que se puede hacer en el software a través de los registros de control. Tenga en cuenta que cambiar la frecuencia sobre la marcha puede no ser tan simple como cambiar los valores del divisor, la frecuencia debe cambiarse de tal manera que se asegure de que la CPU no vea ningún 'fallo' o pulsos de reloj que sean demasiado cortos. Puede ser necesario usar 2 PLL y cambiar entre ellos, o detener temporalmente el reloj o cambiar a otra fuente de reloj hasta que el PLL se estabilice en la nueva frecuencia.

Los PLL se utilizan en todo el lugar para generar frecuencias precisas y fácilmente sintonizables a partir de referencias fijas y estables. Su tarjeta de Wi-Fi y su enrutador de Wi-Fi los utilizan para seleccionar el canal apropiado generando lo que se llama la frecuencia del oscilador local, una señal que se usa internamente en la radio para convertir de forma ascendente y descendente los datos modulados. Lo más probable es que su radio FM use uno para habilitar el control del software sobre la frecuencia de recepción, lo que permite recuperar fácilmente diferentes estaciones. Los PLL también se utilizan para generar las señales de reloj de alta frecuencia utilizadas para controlar los serializadores y deserializadores para Ethernet, PCI Express, ATA serie, Firewire, USB, DVI, HDMI, DisplayPort y muchos otros protocolos serie modernos.

    
respondido por el alex.forencich
7

Además de las respuestas anteriores ...

Su micro STM es casi seguro que tiene el segundo oscilador para el reloj en tiempo real. Esto permite que el reloj siga funcionando (consumiendo energía mínima), mientras que el resto del chip y el resto del circuito están apagados. Luego, el dispositivo puede mantener funcionando su reloj y calendario, y normalmente también puede reiniciar el procesador principal en un temporizador, todo lo que es útil para dispositivos integrados.

    
respondido por el Graham
0

con mucho cuidado!

LasCPUtienenvaloresbásicosdeprogramabinarioyunPLLconVCOparacontrolarelcontadordemodoquemultipliqueelrelojFSBdelladofrontal(porejemplo,100MHz).
EstemododinámicodeahorrodeenergíaseseleccionaautomáticamentecuandoelusodelaCPUesbajoconloscontroladoresdelaCPU,CPU,SOyBIOScorrectos.

Mii7(8cpu)vade3101MHza800MHzypasainstantáneamentea1100,1300,1500...etc

SielBioseligex31comoenmicaso,entonceslaCPUfuncionaa100MHzx3100MHzyconuncontadorbinarioenlaCPU,elijade8a15parareducirlapotenciadelaCPUalmismotiempoqueregulaelvoltajedelchipdelaCPU.Laregión0.9Vtodoparaconservarenergía.

PuedomostrarmicursorenlaesquinasuperiorderechadeWin8.1juntoconCPU%ymemory%

    
respondido por el Tony EE rocketscientist

Lea otras preguntas en las etiquetas