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.