En la arquitectura informática , la compuerta de reloj es una técnica popular de gestión de energía utilizada en muchos circuitos síncronos para reducir la disipación de energía dinámica , al eliminar la señal de reloj cuando el circuito, o una subparte de él, no está en uso o ignora la señal de reloj. La compuerta de reloj ahorra energía al podar el árbol de reloj , a costa de agregar más lógica a un circuito. Podar el reloj deshabilita partes del circuito para que los flip-flops en ellos no cambien de estado, ya que cambiar el estado consume energía. Cuando no se conmuta, el consumo de energía de conmutación se reduce a cero y solo se generan corrientes de fuga . [1]
Aunque los circuitos asincrónicos por definición no tienen un "reloj" global, el término " control perfecto del reloj " se utiliza para ilustrar cómo las diversas técnicas de control del reloj son simplemente aproximaciones del comportamiento dependiente de los datos que exhiben los circuitos asincrónicos. A medida que la granularidad con la que se controla el reloj de un circuito sincrónico se acerca a cero, el consumo de energía de ese circuito se acerca al de un circuito asincrónico: el circuito solo genera transiciones lógicas cuando está computando activamente. [2]
Una solución alternativa a la compuerta de reloj es utilizar la lógica de habilitación de reloj (CE) en la ruta de datos sincrónica empleando el multiplexor de entrada, por ejemplo, para flip-flops tipo D: utilizando la notación del lenguaje C / Verilog: Dff = CE? D: Q; donde: Dff es la entrada D del flip-flop tipo D, D es la entrada de información del módulo (sin entrada CE), Q es la salida del flip-flop tipo D. Este tipo de compuerta de reloj no tiene condiciones de carrera y es el preferido para los diseños de FPGA. Para los FPGA, cada flip-flop tipo D tiene una señal de entrada CE adicional.
El control de reloj funciona tomando las condiciones de habilitación asociadas a los registros y utilizándolas para controlar los relojes. Un diseño debe contener estas condiciones de habilitación para poder utilizar y beneficiarse del control de reloj. Este proceso de control de reloj también puede ahorrar una cantidad significativa de área de chip y energía, ya que elimina una gran cantidad de multiplexores y los reemplaza con lógica de control de reloj. Esta lógica de control de reloj generalmente tiene la forma de celdas de "control de reloj integrado" (ICG). Sin embargo, la lógica de control de reloj cambiará la estructura del árbol de reloj, ya que la lógica de control de reloj se ubicará en el árbol de reloj.
La lógica de compuerta de reloj se puede agregar a un diseño de diversas maneras:
En general, la regulación del reloj aplicada con una granularidad más gruesa conduce a una menor sobrecarga de recursos y a un mayor ahorro de energía. [3]
Cualquier modificación de RTL para mejorar la compuerta de reloj resultará en cambios funcionales en el diseño (ya que los registros ahora contendrán valores diferentes) que deben verificarse.
La compuerta de reloj secuencial es el proceso de extraer/propagar las condiciones de habilitación a los elementos secuenciales ascendentes/descendentes, de modo que se puedan compuertas de reloj a registros adicionales.
Los chips diseñados para funcionar con baterías o con muy poca energía, como los que se usan en los teléfonos móviles, los dispositivos portátiles, etc., implementarían varias formas de control de reloj juntas. En un extremo está el control manual de relojes por software, donde un controlador habilita o deshabilita los diversos relojes utilizados por un controlador inactivo determinado. En el otro extremo está el control automático de reloj, donde se le puede indicar al hardware que detecte si hay algún trabajo que hacer y apague un reloj determinado si no es necesario. Estas formas interactúan entre sí y pueden ser parte del mismo árbol de habilitación. Por ejemplo, un puente o bus interno podría usar control automático para que esté desactivado hasta que la CPU o un motor DMA necesite usarlo, mientras que varios de los periféricos en ese bus podrían estar desactivados permanentemente si no se usan en esa placa.