
En el diseño de circuitos integrados , la lógica dinámica (o a veces lógica síncrona ) es una metodología de diseño en circuitos lógicos combinacionales , particularmente aquellos implementados en tecnología de metal-óxido-semiconductor (MOS). Se distingue de la llamada lógica estática al explotar el almacenamiento temporal de información en capacitancias parásitas y de puerta . [ 1 ] Fue popular en la década de 1970 y ha experimentado un resurgimiento reciente en el diseño de electrónica digital de alta velocidad , particularmente en unidades centrales de procesamiento (CPU). Los circuitos de lógica dinámica suelen ser más rápidos que sus contrapartes estáticas y requieren menos área de superficie, pero son más difíciles de diseñar. La lógica dinámica tiene una tasa promedio de transiciones de voltaje más alta que la lógica estática, [ 2 ] pero las cargas capacitivas que transitan son más pequeñas [ 3 ] por lo que el consumo de energía total de la lógica dinámica puede ser mayor o menor dependiendo de varias compensaciones. Al referirse a una familia lógica particular , el adjetivo dinámico suele ser suficiente para distinguir la metodología de diseño, por ejemplo, CMOS dinámico [ 4 ] o diseño SOI dinámico . [ 2 ]
Además de su uso de almacenamiento de estado dinámico mediante voltajes en capacitancias, la lógica dinámica se distingue de la llamada lógica estática en que la lógica dinámica utiliza una señal de reloj en su implementación de lógica combinacional. El uso habitual de una señal de reloj es sincronizar transiciones en circuitos lógicos secuenciales . Para la mayoría de las implementaciones de lógica combinacional, ni siquiera se necesita una señal de reloj. La terminología estática/dinámica utilizada para referirse a los circuitos combinacionales está relacionada con el uso de los mismos adjetivos que se utilizan para distinguir los dispositivos de memoria, por ejemplo, RAM estática de RAM dinámica , ya que la RAM dinámica almacena el estado dinámicamente como voltajes en capacitancias, que deben actualizarse periódicamente. Pero también existen diferencias en el uso; el reloj puede detenerse en la fase apropiada en un sistema con lógica dinámica y almacenamiento estático. [ 5 ]
Lógica estática versus lógica dinámica
La principal diferencia entre la lógica estática y la dinámica radica en que, en la lógica dinámica, se utiliza una señal de reloj para evaluar la lógica combinacional . En la mayoría de los diseños lógicos, denominados lógica estática , siempre existe algún mecanismo para controlar la salida, ya sea a nivel alto o bajo. En muchos de los estilos lógicos más populares, como TTL y CMOS tradicional , este principio se puede reformular como la existencia de una ruta de CC de baja impedancia entre la salida y la tensión de alimentación o la tierra . Cabe mencionar que existe una excepción a esta definición en el caso de salidas de alta impedancia , como un búfer triestado ; sin embargo, incluso en estos casos, el circuito está diseñado para usarse dentro de un sistema más grande donde algún mecanismo controlará la salida, y no se consideran distintos de la lógica estática.
En cambio, en la lógica dinámica , no siempre existe un mecanismo que controle la salida (nivel alto o bajo). En la versión más común de este concepto, la salida se controla mediante un nivel alto o bajo durante distintas partes del ciclo de reloj. Durante los intervalos en que la salida no se controla activamente, la capacitancia parásita hace que mantenga un nivel dentro de un cierto rango de tolerancia respecto al nivel controlado.
La lógica dinámica requiere una frecuencia de reloj mínima lo suficientemente rápida como para que el estado de salida de cada puerta dinámica se utilice o se actualice antes de que la carga en la capacitancia de salida se disipe lo suficiente como para provocar un cambio en el estado digital de la salida, durante la parte del ciclo de reloj en la que la salida no está siendo controlada activamente.
La lógica estática no tiene una frecuencia de reloj mínima ; el reloj puede pausarse indefinidamente. Si bien puede parecer que no hacer nada durante largos períodos de tiempo no es particularmente útil, conlleva tres ventajas:
- Poder pausar un sistema en cualquier momento facilita enormemente la depuración y las pruebas, permitiendo técnicas como la ejecución paso a paso .
- La capacidad de operar un sistema a frecuencias de reloj extremadamente bajas permite que los componentes electrónicos de bajo consumo funcionen durante más tiempo con una batería determinada.
- Un sistema completamente estático puede reanudarse instantáneamente exactamente donde se quedó; una persona no tiene que esperar a que el sistema arranque o se reanude. [ 6 ]
La capacidad de pausar un sistema en cualquier momento y durante cualquier duración también puede utilizarse para sincronizar la CPU con un evento asíncrono. Si bien existen otros mecanismos para lograrlo, como interrupciones, bucles de sondeo, pines de entrada de inactividad del procesador (por ejemplo, RDY en el 6502 ) o mecanismos de extensión del ciclo del bus del procesador, como las entradas WAIT, el uso de hardware para controlar el reloj de una CPU de núcleo estático es más sencillo, ofrece mayor precisión temporal, no utiliza memoria de código de programa y prácticamente no consume energía en la CPU mientras espera. En un diseño básico, para iniciar la espera, la CPU escribiría en un registro para establecer un bit de enclavamiento binario que se combinaría mediante una operación AND u OR con el reloj del procesador, deteniéndolo. Una señal de un dispositivo periférico restablecería este enclavamiento, reanudando el funcionamiento de la CPU. La lógica de hardware debe controlar las entradas de enclavamiento según sea necesario para garantizar que una transición en la salida del enclavamiento no provoque un cambio instantáneo en el nivel de la señal de reloj y genere un pulso de reloj, ya sea alto o bajo, más corto de lo normal.
En particular, aunque muchas CPU populares utilizan lógica dinámica, solo los núcleos estáticos —CPU diseñadas con tecnología totalmente estática— son utilizables en satélites espaciales debido a su mayor resistencia a la radiación . [ 7 ]
Cuando se diseña correctamente, la lógica dinámica puede ser más del doble de rápida que la lógica estática. Utiliza solo transistores NMOS más rápidos , lo que mejora las optimizaciones de tamaño de los transistores. La lógica estática es más lenta porque tiene el doble de carga capacitiva , umbrales más altos y utiliza transistores PMOS lentos para la lógica. La lógica dinámica puede ser más difícil de manejar, pero puede ser la única opción cuando se necesita una mayor velocidad de procesamiento. La mayoría de los dispositivos electrónicos que funcionan a más de 2 GHz en la actualidad requieren lógica dinámica, aunque algunos fabricantes como Intel han diseñado chips que utilizan lógica completamente estática para reducir el consumo de energía. [ 8 ] Cabe señalar que reducir el consumo de energía no solo extiende el tiempo de funcionamiento con fuentes de energía limitadas como baterías o paneles solares (como en las naves espaciales), sino que también reduce los requisitos de diseño térmico, reduciendo el tamaño de los disipadores de calor, ventiladores, etc. necesarios, lo que a su vez reduce el peso y el costo del sistema.
En general, la lógica dinámica aumenta considerablemente el número de transistores que conmutan en un momento dado, lo que incrementa el consumo de energía en comparación con la tecnología CMOS estática. [ 8 ] Existen diversas técnicas de ahorro de energía que pueden implementarse en un sistema basado en lógica dinámica. Además, cada línea de transmisión puede manejar un número arbitrario de bits y no se producen fluctuaciones de energía. Las técnicas de control de reloj y asíncronas para el ahorro de energía resultan mucho más naturales en la lógica dinámica.
Ejemplo de lógica estática
Como ejemplo, consideremos la implementación lógica estática de una puerta NAND CMOS:

Este circuito implementa la función lógica
Si A y B están ambos en nivel alto, la salida se pondrá en nivel bajo. Si A o B están en nivel bajo, la salida se pondrá en nivel alto. En todo momento, la salida estará en nivel bajo o alto.
Ejemplo de lógica dinámica
Consideremos ahora una implementación de lógica dinámica de la misma función lógica:

El circuito lógico dinámico requiere dos fases. La primera fase, cuando Clock está en nivel bajo, se denomina fase de configuración o fase de precarga , y la segunda fase, cuando Clock está en nivel alto, se denomina fase de evaluación . En la fase de configuración, la salida se pone en nivel alto de forma incondicional (independientemente de los valores de las entradas A y B ). El condensador , que representa la capacitancia de carga de esta puerta lógica, se carga. Dado que el transistor inferior está apagado, es imposible que la salida se ponga en nivel bajo durante esta fase.
Durante la fase de evaluación , Clock está en nivel alto. Si A y B también están en nivel alto, la salida se pondrá en nivel bajo. De lo contrario, la salida permanece en nivel alto (debido a la capacitancia de carga).
La lógica dinámica presenta algunos problemas potenciales que la lógica estática no tiene. Por ejemplo, si la velocidad del reloj es demasiado lenta, la señal de salida se desvanecerá demasiado rápido para ser útil. Además, la señal de salida solo es válida durante una parte de cada ciclo de reloj, por lo que el dispositivo conectado debe muestrearla de forma síncrona cuando sea válida.
Además, cuando tanto A como B están en nivel alto, de modo que la salida es baja, el circuito bombea una carga de condensador desde Vdd a tierra en cada ciclo de reloj, primero cargando y luego descargando el condensador en cada ciclo. Esto hace que el circuito (con su salida conectada a una alta impedancia) sea menos eficiente que la versión estática (que teóricamente no debería permitir el flujo de corriente excepto a través de la salida), y cuando las entradas A y B son constantes y ambas en nivel alto, la puerta NAND dinámica consume energía en proporción a la frecuencia de reloj , siempre que funcione correctamente. La disipación de potencia se puede minimizar manteniendo la capacitancia de carga baja. Esto, a su vez, reduce el tiempo máximo de ciclo, lo que requiere una frecuencia de reloj mínima más alta; la frecuencia más alta aumenta el consumo de energía según la relación mencionada. Por lo tanto, es imposible reducir el consumo de energía en reposo (cuando ambas entradas están en nivel alto) por debajo de un cierto límite derivado de un equilibrio entre la velocidad de reloj y la capacitancia de carga.
Una implementación popular es la lógica del dominó .
Véase también
Referencias
- ↑ Lars Wanhammar (1999). Circuitos integrados DSP . Academic Press. pág. 37. ISBN 978-0-12-734530-7.
- 1 2 Andrew Marshall; Sreedhar Natarajan (2002). Diseño SOI: técnicas analógicas, de memoria y digitales . Springer. pág. 125. ISBN 978-0-7923-7640-8.
- ↑ A. Albert Raj, T. Latha (21 de octubre de 2008). Diseño VLSI . PHI Learning Pvt. Ltd. pág. 167. ISBN 978-81-203-3431-1.
- ↑ Bruce Jacob; Spencer Ng; David Wang (2007). Sistemas de memoria: caché, DRAM, disco . Morgan Kaufmann. pág. 270. ISBN 978-0-12-379751-3.
- ↑ David Harris (2001). Diseño de circuitos tolerantes a la asimetría . Morgan Kaufmann. pág. 38. ISBN 978-1-55860-636-4.
- ↑ Richard Murray. "Hardware PocketBook II" .
- ↑ Gülzow, Peter. "¡Sin RISC, no hay diversión!" . AMSAT-DL . Traducido por Moe, Don. Archivado del original el 13 de abril de 2013. Recuperado el 15 de septiembre de 2021 .
- 1 2 "El Caballero Oscuro: Intel Core i7" . Archivado del original el 30 de enero de 2009.
Referencias generales
- Sung-Mo Kang; Yusuf Leblebici (2003). Circuitos integrados digitales CMOS: análisis y diseño (3.ª ed.). McGraw-Hill. ISBN 978-0-07-246053-7.Capítulo 9, "Circuitos lógicos dinámicos" (capítulo 7 en la 2.ª edición)
- R. Jacob Baker (2010). CMOS: Diseño, disposición y simulación de circuitos (3.ª ed.). Wiley-IEEE. ISBN 978-0-470-88132-3.Capítulo 14, "Puertas lógicas dinámicas"
- Andrew Marshall; Sreedhar Natarajan (2002). Diseño SOI: técnicas analógicas, de memoria y digitales . Springer. ISBN 978-0-7923-7640-8.Capítulo 7, "Diseño dinámico de SOI"
Enlaces externos
- Introducción al diseño VLSI CMOS – Lección 9: Familias de circuitos – Apuntes de clase de David Harris sobre el tema.
- Familias lógicas