stringtranslate.com

Puerta de reloj

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]

Detalles

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.

Ejemplo de compuerta de reloj

La lógica de compuerta de reloj se puede agregar a un diseño de diversas maneras:

  1. Codificado en el código de nivel de transferencia de registro (RTL) como condiciones de habilitación que se pueden traducir automáticamente en lógica de compuerta de reloj mediante herramientas de síntesis (compuerta de reloj de grano fino).
  2. Los diseñadores de RTL los insertan en el diseño manualmente (normalmente como compuerta de reloj a nivel de módulo) creando instancias de celdas de compuerta de reloj integradas (ICG) específicas de la biblioteca para compuertar los relojes de módulos o registros específicos.
  3. Se insertan de forma semiautomática en el RTL mediante herramientas de control de reloj automático. Estas herramientas insertan celdas ICG en el RTL o agregan condiciones de habilitación en el código RTL. Por lo general, también ofrecen optimizaciones de control de reloj secuencial.

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.

Véase también

Referencias

  1. ^ Panda, Preeti Ranjan; Shrivastava, Aviral; en Silpa, B.; Gummidipudi, Krishnaiah (17 de septiembre de 2010). Diseño de sistemas energéticamente eficientes (1 ed.). Saltador . págs.25, 73. ISBN 978-1-4419-6387-1.
  2. ^ Hübner, Michael; Becker, Jürgen (3 de diciembre de 2010). Sistema multiprocesador en chip: diseño de hardware e integración de herramientas (1.ª ed.). Springer . p. 176. ISBN 978-1-4419-6459-5.
  3. ^ Ratto, Francesco; Fanni, Tiziana; Raffo, Luigi; Sau, Carlo (5 de enero de 2021). "Impacto mutuo entre la activación del reloj y la síntesis de alto nivel en aceleradores de hardware reconfigurables". Electrónica . 73 : 73. doi : 10.3390/electronics10010073 . hdl : 11584/345408 .

Lectura adicional