Circuito asincrónico ( circuito sin reloj o circuito autotemporizado ) [1] : Lección 12 [nota 1] [2] : 157–186 es un circuito lógico digital secuencial que no utiliza un circuito de reloj global o generador de señales para sincronizar sus componentes. [1] [3] : 3–5 En cambio, los componentes son controlados por un circuito de protocolo de enlace que indica la finalización de un conjunto de instrucciones. El protocolo de enlace funciona mediante protocolos de transferencia de datos simples . [3] : 115 Muchos circuitos síncronos se desarrollaron a principios de la década de 1950 como parte de sistemas asincrónicos más grandes (por ejemplo, ORDVAC ). Los circuitos asincrónicos y la teoría que los rodea son parte de varios pasos en el diseño de circuitos integrados , un campo de la ingeniería electrónica digital .
Los circuitos asincrónicos se contrastan con los circuitos sincrónicos , en los que los cambios en los valores de la señal en el circuito se activan mediante pulsos repetitivos llamados señal de reloj . La mayoría de los dispositivos digitales actuales utilizan circuitos sincrónicos. Sin embargo, los circuitos asincrónicos tienen el potencial de ser mucho más rápidos, tienen un nivel menor de consumo de energía, interferencia electromagnética y mejor modularidad en sistemas grandes. Los circuitos asincrónicos son un área activa de investigación en el diseño de lógica digital . [4] [5]
No fue hasta la década de 1990 cuando se demostró la viabilidad de los circuitos asincrónicos con productos comerciales de la vida real. [3] : 4
Descripción general
Todos los circuitos lógicos digitales se pueden dividir en lógica combinacional , en la que las señales de salida dependen solo de las señales de entrada actuales, y lógica secuencial , en la que la salida depende tanto de la entrada actual como de las entradas pasadas. En otras palabras, la lógica secuencial es lógica combinacional con memoria . Prácticamente todos los dispositivos digitales prácticos requieren lógica secuencial. La lógica secuencial se puede dividir en dos tipos, lógica sincrónica y lógica asincrónica.
Circuitos sincrónicos
En los circuitos lógicos síncronos , un oscilador electrónico genera una serie repetitiva de pulsos igualmente espaciados llamada señal de reloj . La señal de reloj se suministra a todos los componentes del CI. Los flip-flops solo se activan cuando se activan por el borde del pulso de reloj, por lo que los cambios en las señales lógicas en todo el circuito comienzan al mismo tiempo y a intervalos regulares. La salida de todos los elementos de memoria en un circuito se llama estado del circuito. El estado de un circuito síncrono cambia solo en el pulso de reloj. Los cambios en la señal requieren una cierta cantidad de tiempo para propagarse a través de las puertas lógicas combinacionales del circuito. Este tiempo se llama retardo de propagación .
A partir de 2021 [actualizar], la sincronización de los circuitos integrados síncronos modernos requiere importantes esfuerzos de ingeniería y sofisticadas herramientas de automatización del diseño . [6] Los diseñadores deben asegurarse de que la llegada del reloj no sea defectuosa. Con el tamaño y la complejidad cada vez mayores de los circuitos integrados (por ejemplo, los ASIC ), es una tarea desafiante. [6] En circuitos enormes, las señales enviadas a través de la red de distribución de reloj a menudo terminan en diferentes momentos en diferentes partes. [6] Este problema se conoce ampliamente como " desfase de reloj ". [6] [7] : xiv
La velocidad máxima de reloj posible está limitada por la ruta lógica con el mayor retraso de propagación, llamada ruta crítica. Debido a eso, las rutas que pueden operar rápidamente están inactivas la mayor parte del tiempo. Una red de reloj ampliamente distribuida disipa mucha energía útil y debe funcionar independientemente de si el circuito recibe entradas o no. [6] Debido a este nivel de complejidad, las pruebas y la depuración ocupan más de la mitad del tiempo de desarrollo en todas las dimensiones para circuitos síncronos. [6]
Circuitos asincrónicos
Los circuitos asincrónicos no necesitan un reloj global y el estado del circuito cambia tan pronto como cambian las entradas. Los bloques funcionales locales pueden seguir utilizándose, pero el problema del desfase del reloj aún puede tolerarse. [7] : xiv [3] : 4
Como los circuitos asincrónicos no tienen que esperar un pulso de reloj para comenzar a procesar las entradas, pueden funcionar más rápido. Su velocidad está limitada teóricamente sólo por los retrasos de propagación de las puertas lógicas y otros elementos. [7] : xiv
Sin embargo, los circuitos asincrónicos son más difíciles de diseñar y están sujetos a problemas que no se encuentran en los circuitos sincrónicos. Esto se debe a que el estado resultante de un circuito asincrónico puede ser sensible a los tiempos de llegada relativos de las entradas a las compuertas. Si las transiciones en dos entradas llegan casi al mismo tiempo, el circuito puede entrar en el estado incorrecto dependiendo de pequeñas diferencias en los retrasos de propagación de las compuertas.
Esto se denomina condición de carrera . En los circuitos sincrónicos, este problema es menos grave porque las condiciones de carrera solo pueden producirse debido a entradas externas al sistema sincrónico, llamadas entradas asincrónicas .
Aunque se han construido algunos sistemas digitales totalmente asincrónicos (ver más abajo), hoy en día los circuitos asincrónicos se utilizan normalmente en unas pocas partes críticas de sistemas sincrónicos donde la velocidad es un factor importante, como los circuitos de procesamiento de señales.
Fundamentación teórica
La teoría original de los circuitos asincrónicos fue creada por David E. Muller a mediados de la década de 1950. [8] Esta teoría fue presentada más tarde en el conocido libro "Switching Theory" de Raymond Miller. [9]
El término "lógica asincrónica" se utiliza para describir una variedad de estilos de diseño, que utilizan diferentes suposiciones sobre las propiedades del circuito. [10] Estos varían desde el modelo de retardo agrupado, que utiliza elementos de procesamiento de datos "convencionales" con finalización indicada por un modelo de retardo generado localmente, hasta el diseño insensible al retardo , en el que se pueden acomodar retardos arbitrarios a través de los elementos del circuito. El último estilo tiende a producir circuitos que son más grandes que las implementaciones de datos agrupados, pero que son insensibles a las variaciones de diseño y paramétricas y, por lo tanto, son "correctos por diseño".
Lógica asincrónica
La lógica asincrónica es la lógica necesaria para el diseño de sistemas digitales asincrónicos. Estos funcionan sin una señal de reloj y, por lo tanto, no se puede confiar en que los elementos lógicos individuales tengan un estado discreto verdadero/falso en un momento dado. La lógica booleana (de dos valores) es inadecuada para esto y, por lo tanto, se requieren extensiones.
Desde 1984, Vadim O. Vasyukevich desarrolló un enfoque basado en nuevas operaciones lógicas que llamó venjunction (con el operador asíncrono " x ∠ y " que significa "cambiar x en el fondo y " o "si x cuando y entonces") y secuencia (con signos de prioridad " x i ≻ x j " y " x i ≺ x j "). Esto tiene en cuenta no solo el valor actual de un elemento, sino también su historial . [11] [12] [13] [14] [15]
Karl M. Fant desarrolló un tratamiento teórico diferente de la lógica asincrónica en su trabajo Diseño determinado lógicamente en 2005, que utilizó lógica de cuatro valores , siendo nulo e intermedio los valores adicionales. Esta arquitectura es importante porque es casi insensible a los retardos . [16] [17] Scott C. Smith y Jia Di desarrollaron una variación de consumo ultrabajo de la lógica de convención nula de Fant que incorpora CMOS multiumbral . [18] Esta variación se denomina lógica de convención nula multiumbral (MTNCL), o alternativamente lógica de convención del sueño (SCL). [19]
Redes de Petri
Las redes de Petri son un modelo atractivo y poderoso para razonar sobre circuitos asincrónicos (ver Modelos subsiguientes de concurrencia ). Un tipo particularmente útil de redes de Petri interpretadas, llamadas Gráficos de transición de señal (STG), fue propuesto independientemente en 1985 por Leonid Rosenblum y Alex Yakovlev [20] y Tam-Anh Chu. [21] Desde entonces, los STG han sido estudiados extensamente en teoría y práctica, [22] [23] lo que ha llevado al desarrollo de herramientas de software populares para el análisis y síntesis de circuitos de control asincrónicos, como Petrify [24] y Workcraft. [25]
Posteriormente a las redes de Petri se han desarrollado otros modelos de concurrencia que pueden modelar circuitos asincrónicos, incluido el modelo de actor y los cálculos de procesos .
Beneficios
Los circuitos asincrónicos han demostrado tener diversas ventajas. Tanto los circuitos cuasi insensibles al retardo (QDI) (generalmente aceptados como la forma más "pura" de lógica asincrónica que conserva la universalidad computacional) [ cita requerida ] como las formas menos puras de circuitos asincrónicos que utilizan restricciones de tiempo para un mayor rendimiento y un área y consumo de energía más bajos presentan varias ventajas.
Rendimiento de caso promedio: un tiempo (retardo) de operación de caso promedio no está limitado al tiempo de finalización del peor caso del componente (puerta, cable, bloque, etc.) como en los circuitos sincrónicos. [7] : xiv [3] : 3 Esto da como resultado un mejor rendimiento de latencia y rendimiento. [26] : 9 [3] : 3 Los ejemplos incluyen la finalización especulativa [27] [28] que se ha aplicado para diseñar sumadores de prefijo paralelos más rápidos que los sincrónicos, y un sumador de punto flotante de doble precisión de alto rendimiento [29] que supera a los principales diseños sincrónicos.
Finalización anticipada : la salida puede generarse con anticipación, cuando el resultado del procesamiento de entrada es predecible o irrelevante.
Elasticidad inherente: puede aparecer una cantidad variable de elementos de datos en las entradas de la canalización en cualquier momento (canalización significa una cascada de bloques funcionales vinculados). Esto contribuye a un alto rendimiento mientras se manejan con elegancia las tasas de entrada y salida variables debido a los retrasos en las etapas de la canalización (bloques funcionales) no sincronizadas (sin embargo, aún pueden ser posibles las congestiones y también se debe tener en cuenta el retraso de las puertas de entrada y salida [30] : 194 ). [26]
Tampoco es necesario que haya una coincidencia temporal entre bloques funcionales. Aunque, dados los distintos modelos de retardo (predicciones de los tiempos de retardo de la compuerta o del cable), esto depende del enfoque real de la implementación del circuito asincrónico. [30] : 194
Libertad de las dificultades cada vez mayores de distribuir una señal de reloj sensible al tiempo y de alto abanico de salida .
La velocidad del circuito se adapta a las condiciones cambiantes de temperatura y voltaje en lugar de bloquearse en la velocidad exigida por las suposiciones del peor de los casos. [ cita requerida ] [ vago ] [3] : 3
Menor consumo de energía bajo demanda; [7] : xiv [26] : 9 [3] : 3 consumo de energía en espera cero. [3] : 3 En 2005, Epson informó un consumo de energía un 70% menor en comparación con el diseño sincrónico. [31] Además, los controladores de reloj se pueden eliminar, lo que puede reducir significativamente el consumo de energía. Sin embargo, al usar ciertas codificaciones, los circuitos asincrónicos pueden requerir más área, agregando una sobrecarga de energía similar si el proceso subyacente tiene malas propiedades de fuga (por ejemplo, procesos submicrométricos profundos utilizados antes de la introducción de dieléctricos de alto κ ).
No es necesario que haya una correspondencia de potencia entre los dominios funcionales asíncronos locales de los circuitos. Los circuitos síncronos tienden a consumir una gran cantidad de corriente justo en el borde del reloj y poco después. La cantidad de nodos que conmutan (y, por lo tanto, la cantidad de corriente consumida) disminuye rápidamente después del borde del reloj y llega a cero justo antes del siguiente borde del reloj. En un circuito asíncrono, los tiempos de conmutación de los nodos no están correlacionados de esta manera, por lo que el consumo de corriente tiende a ser más uniforme y menos irregular.
Robustez frente a la variabilidad de transistor a transistor en el proceso de transferencia de fabricación (que es uno de los problemas más graves que enfrenta la industria de semiconductores a medida que las matrices se encogen), variaciones de suministro de voltaje, temperatura y parámetros del proceso de fabricación. [3] : 3
Interferencia electromagnética (EMI) menos severa . [3] : 3 Los circuitos sincrónicos crean una gran cantidad de EMI en la banda de frecuencia en (o muy cerca de) su frecuencia de reloj y sus armónicos; los circuitos asincrónicos generan patrones de EMI que se distribuyen de manera mucho más uniforme a lo largo del espectro. [3] : 3
Modularidad del diseño (reutilización), inmunidad al ruido mejorada y compatibilidad electromagnética. Los circuitos asíncronos son más tolerantes a las variaciones de proceso y las fluctuaciones de voltaje externas. [3] : 4
Desventajas
Sobrecarga de área causada por lógica adicional que implementa el protocolo de enlace. [3] : 4 En algunos casos, un diseño asincrónico puede requerir hasta el doble de recursos (área, velocidad del circuito, consumo de energía) de un diseño sincrónico, debido a la adición de detección de finalización y circuitos de diseño para prueba. [32] [3] : 4
En comparación con un diseño sincrónico, a partir de la década de 1990 y principios de la década de 2000 no había muchas personas capacitadas o con experiencia en el diseño de circuitos asincrónicos. [32]
Los diseños sincrónicos son inherentemente más fáciles de probar y depurar que los diseños asincrónicos. [33] Sin embargo, Fant cuestiona esta posición y afirma que la aparente simplicidad de la lógica sincrónica es un artefacto de los modelos matemáticos utilizados por los enfoques de diseño comunes. [17]
La activación del reloj en diseños sincrónicos más convencionales es una aproximación del ideal asincrónico y, en algunos casos, su simplicidad puede superar las ventajas de un diseño completamente asincrónico.
El rendimiento (velocidad) de los circuitos asincrónicos puede reducirse en arquitecturas que requieren completitud de entrada (ruta de datos más compleja). [34]
Falta de herramientas comerciales de EDA dedicadas y asincrónicas centradas en el diseño . [34] Sin embargo, a partir de 2006 la situación estaba mejorando lentamente. [3] : x
Comunicación
Existen varias formas de crear canales de comunicación asincrónicos que pueden clasificarse por su protocolo y codificación de datos.
Protocolos
Hay dos familias de protocolos ampliamente utilizadas que difieren en la forma en que se codifican las comunicaciones:
protocolo de enlace de dos fases (también conocido como protocolo de dos fases, codificación sin retorno a cero (NRZ) o señalización de transición): las comunicaciones se representan mediante cualquier transición de cable; las transiciones de 0 a 1 y de 1 a 0 cuentan como comunicaciones.
Protocolo de enlace de cuatro fases (también conocido como protocolo de cuatro fases o codificación de retorno a cero (RZ)): las comunicaciones se representan mediante una transición de cable seguida de un reinicio; una secuencia de transición de 0 a 1 y de regreso a 0 cuenta como una comunicación única.
A pesar de implicar más transiciones por comunicación, los circuitos que implementan protocolos de cuatro fases suelen ser más rápidos y sencillos que los protocolos de dos fases porque las líneas de señal vuelven a su estado original al final de cada comunicación. En los protocolos de dos fases, las implementaciones de circuitos tendrían que almacenar el estado de la línea de señal internamente.
Tenga en cuenta que estas distinciones básicas no tienen en cuenta la amplia variedad de protocolos. Estos protocolos pueden codificar solo solicitudes y reconocimientos o también codificar los datos, lo que conduce a la popular codificación de datos de múltiples cables. Se han propuesto muchos otros protocolos menos comunes, incluido el uso de un solo cable para la solicitud y el reconocimiento, el uso de varios voltajes significativos, el uso solo de pulsos o el equilibrio de tiempos para eliminar los bloqueos.
Codificación de datos
Hay dos codificaciones de datos ampliamente utilizadas en circuitos asincrónicos: codificación de datos agrupados y codificación multicarril.
Otra forma habitual de codificar los datos es utilizar varios cables para codificar un solo dígito: el valor se determina según el cable en el que se produce el evento. Esto evita algunos de los supuestos de demora necesarios con la codificación de datos agrupados, ya que la solicitud y los datos ya no están separados.
Codificación de datos agrupados
La codificación de datos agrupados utiliza un cable por bit de datos con una señal de solicitud y una señal de confirmación; es la misma codificación que se utiliza en circuitos sincrónicos sin la restricción de que las transiciones se producen en un flanco del reloj. La solicitud y la confirmación se envían en cables separados con uno de los protocolos anteriores. Estos circuitos suelen suponer un modelo de retardo limitado con las señales de finalización retrasadas lo suficiente para que se realicen los cálculos.
En el funcionamiento, el emisor indica la disponibilidad y validez de los datos con una solicitud. A continuación, el receptor indica que ha finalizado la operación con un acuse de recibo, lo que indica que está en condiciones de procesar nuevas solicitudes. Es decir, la solicitud se incluye con los datos, de ahí el nombre de "datos incluidos".
Los circuitos de datos agrupados a menudo se denominan microcanalizaciones, independientemente de que utilicen un protocolo de dos o cuatro fases, incluso si el término se introdujo inicialmente para datos agrupados de dos fases.
Codificación multicarril
La codificación multi-rail utiliza varios cables sin una relación uno a uno entre bits y cables y una señal de reconocimiento independiente. La disponibilidad de los datos se indica mediante las transiciones mismas en uno o más de los cables de datos (según el tipo de codificación multi-rail) en lugar de con una señal de solicitud como en la codificación de datos agrupados. Esto proporciona la ventaja de que la comunicación de datos no es sensible a los retrasos. Dos codificaciones multi-rail comunes son one-hot y dual rail. La codificación one-hot (también conocida como 1-of-n) representa un número en base n con una comunicación en uno de los n cables. La codificación dual-rail utiliza pares de cables para representar cada bit de los datos, de ahí el nombre "dual-rail"; un cable del par representa el valor de bit de 0 y el otro representa el valor de bit de 1. Por ejemplo, un número de dos bits codificado en dual-rail se representará con dos pares de cables para cuatro cables en total. Durante una comunicación de datos, las comunicaciones se producen en uno de cada par de cables para indicar los bits de los datos. En el caso general, una codificación m n representa los datos como m palabras de base n.
Codificación de doble carril
La codificación de doble carril con un protocolo de cuatro fases es la más común y también se denomina codificación de tres estados , ya que tiene dos estados válidos (10 y 01, después de una transición) y un estado de reinicio (00). Otra codificación común, que conduce a una implementación más sencilla que la de doble carril de dos fases y one-hot, es la codificación de cuatro estados , o doble carril codificado por niveles, y utiliza un bit de datos y un bit de paridad para lograr un protocolo de dos fases.
A diferencia de un procesador convencional, un procesador sin reloj (CPU asíncrona) no tiene un reloj central para coordinar el progreso de los datos a través del pipeline. En cambio, las etapas de la CPU se coordinan mediante dispositivos lógicos llamados "controladores de pipeline" o "secuenciadores FIFO". Básicamente, el controlador de pipeline sincroniza la siguiente etapa de lógica cuando se completa la etapa existente. De esta manera, no es necesario un reloj central. En realidad, puede ser incluso más fácil implementar dispositivos de alto rendimiento en lógica asíncrona, en lugar de lógica sincronizada:
Los componentes pueden funcionar a diferentes velocidades en una CPU asincrónica; todos los componentes principales de una CPU sincronizada deben permanecer sincronizados con el reloj central;
Una CPU tradicional no puede "ir más rápido" que el rendimiento esperado en el peor de los casos de la etapa/instrucción/componente más lento. Cuando una CPU asincrónica completa una operación más rápido de lo previsto, la siguiente etapa puede comenzar a procesar los resultados de inmediato, en lugar de esperar la sincronización con un reloj central. Una operación puede terminar más rápido de lo normal debido a los atributos de los datos que se están procesando (por ejemplo, la multiplicación puede ser muy rápida cuando se multiplica por 0 o 1, incluso cuando se ejecuta código producido por un compilador ingenuo), o debido a la presencia de un voltaje o una velocidad de bus más altos, o una temperatura ambiente más baja que lo "normal" o esperado.
Los defensores de la lógica asincrónica creen que estas capacidades tendrían los siguientes beneficios:
menor disipación de potencia para un nivel de rendimiento determinado, y
velocidades de ejecución más altas posibles.
La mayor desventaja de la CPU sin reloj es que la mayoría de las herramientas de diseño de CPU asumen una CPU con reloj (es decir, un circuito sincrónico ). Muchas herramientas "imponen prácticas de diseño sincrónico". [35] Hacer una CPU sin reloj (diseñar un circuito asincrónico) implica modificar las herramientas de diseño para manejar la lógica sin reloj y hacer pruebas adicionales para garantizar que el diseño evite problemas metaestables . El grupo que diseñó el AMULET , por ejemplo, desarrolló una herramienta llamada LARD [36] para hacer frente al complejo diseño de AMULET3.
Ejemplos
A pesar de todas las dificultades, se han construido numerosas CPU asincrónicas.
El ORDVAC de 1951 fue el sucesor del ENIAC y la primera computadora asincrónica jamás construida. [37] [38]
El ILLIAC II fue el primer diseño de procesador completamente asincrónico e independiente de la velocidad jamás construido; era la computadora más potente en ese momento. [37]
Los módulos de transferencia de registros DEC PDP-16 (aproximadamente en 1973) permitieron al experimentador construir elementos de procesamiento asincrónicos de 16 bits. Los retrasos de cada módulo eran fijos y se basaban en la sincronización del módulo en el peor de los casos.
Caltech
Desde mediados de la década de 1980, Caltech ha diseñado cuatro CPU no comerciales en un intento de evaluar el rendimiento y la eficiencia energética de los circuitos asincrónicos. [39] [40]
Durante las demostraciones, los investigadores cargaron un programa simple que se ejecutaba en un bucle cerrado, pulsando una de las líneas de salida después de cada instrucción. Esta línea de salida estaba conectada a un osciloscopio. Cuando se colocaba una taza de café caliente sobre el chip, la frecuencia de pulso (la "frecuencia de reloj" efectiva) se ralentizaba naturalmente para adaptarse al empeoramiento del rendimiento de los transistores calentados. Cuando se vertía nitrógeno líquido sobre el chip, la frecuencia de instrucción se disparaba sin intervención adicional. Además, a temperaturas más bajas, el voltaje suministrado al chip podía aumentarse de forma segura, lo que también mejoraba la frecuencia de instrucción, nuevamente, sin configuración adicional. [ cita requerida ]
Cuando se implementa en arseniuro de galio ( HGaAs 3) se afirmó que se alcanzaron 100 MIPS. [39] : 5 En general, el artículo de investigación interpretó el rendimiento resultante de CAM como superior en comparación con las alternativas comerciales disponibles en ese momento. [39] : 5
MiniMIPS
En 1998 se fabricó el MiniMIPS, un microcontrolador experimental asíncrono basado en MIPS I. Aunque su rendimiento previsto por SPICE era de alrededor de 280 MIPS a 3,3 V, la implementación adolecía de varios errores de diseño (error humano) y los resultados resultaron ser un 40% inferiores (véase la tabla). [39] : 5
El lutonio 8051
Fabricado en 2003, era un microcontrolador asincrónico casi insensible al retardo diseñado para la eficiencia energética. [40] [39] : 9 La implementación del microcontrolador siguió la arquitectura de Harvard . [40]
Epson
En 2004, Epson fabricó el primer microprocesador flexible del mundo llamado ACT11, un chip asíncrono de 8 bits. [42] [43] [44] [45] [46] Los procesadores flexibles síncronos son más lentos, ya que doblar el material en el que se fabrica un chip provoca variaciones salvajes e impredecibles en los retrasos de varios transistores, para los cuales se deben asumir los peores escenarios en todas partes y todo debe cronometrarse a la peor velocidad posible. El procesador está destinado a su uso en tarjetas inteligentes , cuyos chips están actualmente limitados en tamaño a aquellos lo suficientemente pequeños como para que puedan permanecer perfectamente rígidos.
IBM
En 2014, IBM anunció un chip desarrollado por SyNAPSE que funciona de manera asincrónica, con una de las mayores cantidades de transistores de cualquier chip jamás producido. El chip de IBM consume órdenes de magnitud menos energía que los sistemas informáticos tradicionales en los puntos de referencia de reconocimiento de patrones. [47]
Computadoras mainframe ICL 1906A y 1906S, parte de la serie 1900 y vendidas desde 1964 durante más de una década por ICL [50]
Ordenadores polacos KAR-65 y K-202 (1965 y 1970 respectivamente)
CPU Honeywell 6180 (1972) [51] y Serie 60 Nivel 68 (1981) [52] [53] en las que Multics se ejecutaba de forma asincrónica
Módulos de microprocesadores de segmento de bit soviéticos (finales de la década de 1970) [54] [55] producidos como К587, [56] К588 [57] y К1883 (U83x en Alemania del Este) [58]
Microprocesador asíncrono de Caltech, el primer microprocesador asíncrono del mundo (1988) [39] [41]
Implementación asincrónica de MIPS R3000, denominada MiniMIPS (1998)
Varias versiones del procesador XAP experimentaron con diferentes estilos de diseño asincrónico: un XAP de datos agrupados, un XAP 1 de 4 y un XAP 1 de 2 (doble riel) (2003?) [59]
Procesador compatible con ARM (¿2003?) diseñado por ZC Yu, SB Furber y LA Plana; "diseñado específicamente para explorar los beneficios del diseño asincrónico para aplicaciones sensibles a la seguridad" [59]
SAMIPS (2003), una implementación asincrónica sintetizable del procesador MIPS R3000 [60] [61]
Procesador de "Arquitectura asíncrona basada en red" (2005) que ejecuta un subconjunto del conjunto de instrucciones de la arquitectura MIPS [59]
Procesador ARM996HS (2006) de Handshake Solutions
Procesador HT80C51 (2007?) de Handshake Solutions. [62]
Vortex, una CPU de propósito general superescalar con una arquitectura de carga/almacenamiento de Intel (2007); [63] fue desarrollado como Fulcrum Microsystem test Chip 2 y no fue comercializado, excepto algunos de sus componentes; el chip incluía DDR SDRAM y una interfaz Ethernet de 10 Gb vinculada a través de la red de sistema en chip Nexus a la CPU [63] [64]
TAM16: núcleo IP de microcontrolador asíncrono de 16 bits (Tiempo) [67]
Núcleo DLX asíncrono Aspida ; [68] el procesador DLX asíncrono de código abierto (ASPIDA) se ha implementado con éxito tanto en versiones ASIC como FPGA [69]
^ ab Horowitz, Mark (2007). "Conferencia sobre diseño avanzado de circuitos VLSI". Universidad de Stanford, Laboratorio de sistemas informáticos. Archivado desde el original el 21 de abril de 2016.
^ Staunstrup, Jørgen (1994). Un enfoque formal para el diseño de hardware. Boston, Massachusetts, Estados Unidos: Springer Estados Unidos. ISBN978-1-4615-2764-0.OCLC 852790160 .
^ abcdefghijklmnop Sparsø, Jens (abril de 2006). "Diseño de circuitos asincrónicos: un tutorial" (PDF) . Universidad Técnica de Dinamarca.
^ Nowick, SM; Singh, M. (mayo-junio de 2015). "Diseño asincrónico: parte 1: descripción general y avances recientes" (PDF) . IEEE Design and Test . 32 (3): 5–18. doi :10.1109/MDAT.2015.2413759. S2CID 14644656. Archivado desde el original (PDF) el 21 de diciembre de 2018 . Consultado el 27 de agosto de 2019 .
^ Nowick, SM; Singh, M. (mayo-junio de 2015). «Diseño asincrónico: Parte 2: sistemas y metodologías» (PDF) . IEEE Design and Test . 32 (3): 19–28. doi :10.1109/MDAT.2015.2413757. S2CID 16732793. Archivado desde el original (PDF) el 21 de diciembre de 2018 . Consultado el 27 de agosto de 2019 .
^ abcdef "¿Por qué el diseño asincrónico?". Galois, Inc. 15 de julio de 2021. Consultado el 4 de diciembre de 2021 .
^ abcde Myers, Chris J. (2001). Diseño de circuitos asincrónicos. Nueva York: J. Wiley & Sons. ISBN0-471-46412-0.OCLC 53227301 .
^ Muller, DE (1955). Teoría de circuitos asincrónicos, Informe n.º 66. Laboratorio de Computación Digital, Universidad de Illinois en Urbana-Champaign.
^ Miller, Raymond E. (1965). Teoría de la conmutación, vol. II . Wiley.
^ van Berkel, CH; Josephs, MB; Nowick, SM (febrero de 1999). "Aplicaciones de circuitos asincrónicos" (PDF) . Actas del IEEE . 87 (2): 234–242. doi :10.1109/5.740016. Archivado desde el original (PDF) el 2018-04-03 . Consultado el 2019-08-27 .
^ Vasyukevich, Vadim O. (1984). "La unión cuántica como operación lógica/dinámica. Definición, implementación y aplicaciones". Control automático y ciencias de la computación . 18 (6): 68–74.(NB. En esta publicación la función todavía se llamaba whenjunction en lugar de venjunction ).
^ Vasyukevich, Vadim O. (1998). "Secuencias monótonas de conjuntos de datos binarios y su identificación mediante funciones venjuntivas". Control Automático y Ciencias de la Computación . 32 (5): 49–56.
^ Vasyukevich, Vadim O. (abril de 2007). "Decodificación de secuencias asincrónicas". Control automático y ciencias de la computación . 41 (2). Allerton Press: 93–99. doi :10.3103/S0146411607020058. ISSN 1558-108X. S2CID 21204394.
^ Vasyukevich, Vadim O. (2009). "Elementos de lógica asincrónica. Venjunción y secuenciación" (PDF) . Archivado (PDF) desde el original el 22 de julio de 2011.(118 páginas)
^ Vasyukevich, Vadim O. (2011). Escrito en Riga, Letonia. Operadores asincrónicos de lógica secuencial: Venjunction y Sequention — Análisis y diseño de circuitos digitales . Apuntes de clase en ingeniería eléctrica. Vol. 101 (1.ª ed.). Berlín/Heidelberg, Alemania: Springer-Verlag . doi :10.1007/978-3-642-21611-4. ISBN .978-3-642-21610-7. ISSN 1876-1100. LCCN 2011929655.(xiii+1+123+7 páginas) (NB: La contraportada de este libro indica erróneamente el volumen 4, cuando en realidad es el volumen 101.)
^ Fant, Karl M. (febrero de 2005). Diseño determinado lógicamente: diseño de sistemas sin reloj con lógica de convención NULL (NCL) (1.ª ed.). Hoboken, Nueva Jersey, EE. UU.: Wiley-Interscience / John Wiley and Sons, Inc. ISBN978-0-471-68478-7. Número de serie LCCN 2004050923.(xvi+292 páginas)
^ ab Fant, Karl M. (agosto de 2007). Computer Science Reconsidered: The Invocation Model of Process Expression (1.ª ed.). Hoboken, Nueva Jersey, EE. UU.: Wiley-Interscience / John Wiley and Sons, Inc. ISBN978-0-471-79814-9. LCCN 2006052821 . Consultado el 23 de julio de 2023 .(xix+1+269 páginas)
^ Smith, Scott C.; Di, Jia (2009). Diseño de circuitos asincrónicos mediante lógica convencional nula (NCL) (PDF) . Lecciones de síntesis sobre circuitos y sistemas digitales. Morgan & Claypool Publishers [d] . págs. 61–73. eISSN 1932-3174. ISBN978-1-59829-981-6. ISSN 1932-3166. Conferencia n .° 23. Consultado el 10 de septiembre de 2023.; Smith, Scott C.; Di, Jia (2022) [2009-07-23]. Diseño de circuitos asincrónicos utilizando lógica convencional nula (NCL). Synthesis Lectures on Digital Circuits & Systems. Universidad de Arkansas , Arkansas, EE. UU.: Springer Nature Switzerland AG . doi :10.1007/978-3-031-79800-9. eISSN 1932-3174. ISBN 978-3-031-79799-6. ISSN 1932-3166. Conferencia n.° 23. Consultado el 10 de septiembre de 2023 .(x+86+6 páginas)
^ Smith, Scott C.; Di, Jia. "US 7,977,972 Diseño de circuito asincrónico multiumbral de potencia ultrabaja" . Consultado el 12 de diciembre de 2011 .
^ Rosenblum, L. Ya.; Yakovlev, AV (julio de 1985). "Gráficos de señales: de los autocronometrados a los cronometrados. Actas del taller internacional sobre redes de Petri cronometradas" (PDF) . Turín, Italia: IEEE CS Press. pp. 199–207. Archivado (PDF) desde el original el 23 de octubre de 2003.
^ Chu, T.-A. (1986-06-01). "Sobre los modelos para el diseño de sistemas digitales asíncronos VLSI". Integración . 4 (2): 99–113. doi :10.1016/S0167-9260(86)80002-5. ISSN 0167-9260.
^ Yakovlev, Alexandre; Lavagno, Luciano; Sangiovanni-Vincentelli, Alberto (1996-11-01). "Un modelo de gráfico de transición de señal unificado para la síntesis de circuitos de control asíncrono". Métodos formales en el diseño de sistemas . 9 (3): 139–188. doi :10.1007/BF00122081. ISSN 1572-8102. S2CID 26970846.
^ Cortadella, J.; Kishinevsky, M.; Kondratyev, A.; Lavagno, L.; Yakovlev, A. (2002). Síntesis lógica para controladores e interfaces asíncronos. Springer Series in Advanced Microelectronics. Vol. 8. Berlín/Heidelberg, Alemania: Springer Berlin Heidelberg. doi :10.1007/978-3-642-55989-1. ISBN978-3-642-62776-7.
^ "Petrify: Publicaciones relacionadas". www.cs.upc.edu . Consultado el 28 de julio de 2021 .
^ "Inicio - Workcraft". workcraft.org . Consultado el 28 de julio de 2021 .
^ abc Nowick, SM; Singh, M. (septiembre-octubre de 2011). "High-Performance Asynchronous Pipelines: an Overview" (PDF) . IEEE Design & Test of Computers . 28 (5): 8–22. doi :10.1109/mdt.2011.71. S2CID 6515750. Archivado desde el original (PDF) el 21 de abril de 2021 . Consultado el 27 de agosto de 2019 .
^ Nowick, SM; Yun, KY; Beerel, PA; Dooply, AE (marzo de 1997). "Completar especulativamente el diseño de sumadores dinámicos asíncronos de alto rendimiento" (PDF) . Actas del Tercer Simposio Internacional sobre Investigación Avanzada en Circuitos y Sistemas Asíncronos . págs. 210–223. doi :10.1109/ASYNC.1997.587176. ISBN .0-8186-7922-0. S2CID 1098994. Archivado desde el original (PDF) el 21 de abril de 2021. Consultado el 27 de agosto de 2019 .
^ Nowick, SM (septiembre de 1996). "Diseño de un sumador asincrónico de baja latencia mediante compleción especulativa" (PDF) . Actas del IEE - Computadoras y técnicas digitales . 143 (5): 301–307. doi :10.1049/ip-cdt:19960704. Archivado desde el original (PDF) el 22 de abril de 2021 . Consultado el 27 de agosto de 2019 .
^ Sheikh, B.; Manohar, R. (mayo de 2010). "Un sumador de punto flotante de doble precisión IEEE 754 asíncrono optimizado para operandos" (PDF) . Actas del Simposio internacional IEEE sobre circuitos y sistemas asíncronos ('Async') : 151–162. Archivado desde el original (PDF) el 21 de abril de 2021 . Consultado el 27 de agosto de 2019 .
^ ab Sasao, Tsutomu (1993). Síntesis lógica y optimización. Boston, Massachusetts, EE. UU.: Springer USA. ISBN978-1-4615-3154-8.OCLC 852788081 .
^ "Epson desarrolla el primer microprocesador asincrónico flexible de 8 bits del mundo" [ enlace muerto permanente ] 2005
^ ab Furber, Steve. "Principios del diseño de circuitos asincrónicos" (PDF) . Pág. 232. Archivado desde el original (PDF) el 26 de abril de 2012. Consultado el 13 de diciembre de 2011 .
^
"Manténgalo estrictamente sincrónico: despídase de esos problemas de lógica asincrónica". Personal Engineering and Instrumentation News, noviembre de 1997, páginas 53-55. http://www.fpga-site.com/kiss.html
^ ab van Leeuwen, TM (2010). Implementación y generación automática de gráficos de flujo de datos programados asíncronos. Delft.
^ Kruger, Robert (15 de marzo de 2005). "Reality TV para ingenieros de diseño de FPGA". eetimes.com . Consultado el 11 de noviembre de 2020 .
^ abcd "En los años 1950 y 1960, el diseño asincrónico se utilizó en muchas de las primeras computadoras mainframe, incluidas ILLIAC I e ILLIAC II..." Breve historia del diseño de circuitos asincrónicos
^ ab "El Illiac es un ordenador asincrónico binario paralelo en el que los números negativos se representan como complementos de dos". – resumen final de "Técnicas de diseño de Illiac" 1955.
^ abcdefghij Martin, AJ; Nystrom, M.; Wong, CG (noviembre de 2003). "Tres generaciones de microprocesadores asincrónicos". IEEE Design & Test of Computers . 20 (6): 9–17. doi :10.1109/MDT.2003.1246159. ISSN 0740-7475. S2CID 15164301.
^ abc Martin, AJ; Nystrom, M.; Papadantonakis, K.; Penzes, PI; Prakash, P.; Wong, CG; Chang, J.; Ko, KS; Lee, B.; Ou, E.; Pugh, J. (2003). "El lutonio: un microcontrolador 8051 asíncrono de subnanojulios". Noveno Simposio Internacional sobre Circuitos y Sistemas Asíncronos, 2003. Actas (PDF) . Vancouver, BC, Canadá: IEEE Comput. Soc. pp. 14–23. doi :10.1109/ASYNC.2003.1199162. ISBN978-0-7695-1898-5. Número de identificación del sujeto 13866418.
^ ab Martin, Alain J. (6 de febrero de 2014). "Hace 25 años: el primer microprocesador asincrónico". Informes técnicos de informática. Instituto Tecnológico de California. doi :10.7907/Z9QR4V3H.{{cite journal}}: Requiere citar revista |journal=( ayuda )
^ "Seiko Epson presenta un procesador flexible a través de la tecnología TFT" Archivado el 1 de febrero de 2010 en Wayback Machine por Mark LaPedus 2005
^ "Un microprocesador asincrónico 8b flexible basado en tecnología TFT de polisilicio de baja temperatura" por Karaki et al. 2005. Resumen: "Un microprocesador asincrónico 8b flexible ACTII... El nivel de potencia es el 30% del homólogo sincrónico".
^ "Introducción de las actividades de I+D de TFT en Seiko Epson Corporation" de Tatsuya Shimoda (2005?) tiene una imagen de "Un microprocesador asincrónico flexible de 8 bits, ACT11"
^ "Epson desarrolla el primer microprocesador asincrónico flexible de 8 bits del mundo"
^ "Seiko Epson detalla un microprocesador flexible: hojas A4 de papel electrónico en proceso de fabricación" por Paul Kallender 2005
^ "El programa SyNAPSE desarrolla un chip avanzado inspirado en el cerebro" Archivado el 10 de agosto de 2014 en Wayback Machine . 7 de agosto de 2014.
^ Historia de Johnniac escrita en 1968
^ VM Glushkov y EL Yushchenko. Descripción matemática del ordenador "Kiev". URSS, 1962 (en ruso)
^ "Resurrección informática número 18".
^ "Completamente asincrónico, sus cien y pico de placas enviaban solicitudes, marcaban los resultados para alguien más, robaban las señales o datos de alguien más y se atacaban por la espalda de todo tipo de formas divertidas que ocasionalmente fallaban (el temporizador de "operación no completada" se activaba y causaba un fallo). ... [No] había ningún indicio de una estrategia de sincronización organizada: varios pulsos de "está listo ahora", "ok, adelante", "toma un ciclo" simplemente surgían a través del vasto panel posterior combinados con el estado apropiado y hacían avanzar al siguiente tipo. No sin sus encantos, esta tecnología aparentemente ad hoc facilitaba un grado sustancial de superposición... así como la [segmentación y paginación] del mecanismo de dirección Multics a la arquitectura 6000 existente de una manera ingeniosa, modular y sorprendente... Sin embargo, la modificación y depuración del procesador no eran divertidas". "Glosario de Multics: ... 6180"
^ "10/81... DPS 8/70M CPUs" Cronología de Multics
^ "La Serie 60, Nivel 68 fue simplemente una nueva versión del 6180". Características del hardware de Multics: Serie 60, Nivel 68
^ AA Vasenkov, VL Dshkhunian, PR Mashevich, PV Nesterov, VV Telenkov, Ju. E. Chicherin, DI Juditsky, "Sistema informático con microprocesador", patente US4124890, 7 de noviembre de 1978
^ Capítulo 4.5.3 de la biografía de DI Juditsky (en ruso)
^ "Series 587 - Colección de chips de la ex URSS". Archivado desde el original el 17 de julio de 2015. Consultado el 16 de julio de 2015 .
^ "Series 588 - Colección de chips de la ex URSS". Archivado desde el original el 17 de julio de 2015. Consultado el 16 de julio de 2015 .
^ "Series 1883/U830 - Colección de chips ex-URSS". Archivado desde el original el 22 de julio de 2015. Consultado el 19 de julio de 2015 .
^ abc "Una arquitectura asincrónica basada en red para dispositivos criptográficos" por Ljiljana Spadavecchia 2005 en la sección "4.10.2 Análisis de canal lateral de arquitecturas asincrónicas de doble carril" y la sección "5.5.5.1 Conjunto de instrucciones"
^ Zhang, Qianyi; Theodoropoulos, Georgios (2024). "SAMIPS: un procesador asincrónico sintetizado". ArXiv, Arquitectura de hardware (cs.AR) . doi :10.48550/ARXIV.2409.20388.
^ Zhang, Qianyi; Theodoropoulos, Georgios (2003). "Hacia un procesador MIPS asincrónico". En Omondi, Amos; Sedukhin, Stanislav (eds.). Avances en la arquitectura de sistemas informáticos . Apuntes de clase en informática. Berlín, Heidelberg: Springer. págs. 137–150. doi :10.1007/978-3-540-39864-6_12. ISBN978-3-540-39864-6.
^ "Handshake Solutions HT80C51" "Handshake Solutions HT80C51 es una implementación 80C51 asíncrona y de bajo consumo que utiliza tecnología de protocolo de enlace, compatible con el conjunto de instrucciones estándar 8051".
^ ab Lines, Andrew (marzo de 2007). "El vórtice: un procesador asincrónico superescalar". 13.º Simposio internacional IEEE sobre circuitos y sistemas asincrónicos (ASYNC'07) . pp. 39–48. doi :10.1109/ASYNC.2007.28. ISBN978-0-7695-2771-0. Número de identificación del sujeto 33189213.
^ Lines, A. (2003). "Nexus: una interconexión de barras cruzadas asincrónica para diseños de sistemas en chip sincrónicos". 11.º Simposio sobre interconexiones de alto rendimiento, 2003. Actas . Stanford, CA, EE. UU.: IEEE Comput. Soc. pp. 2–9. doi :10.1109/CONECT.2003.1231470. ISBN.978-0-7695-2012-4.S2CID 1799204 .
^ Descripción general de SEAforth Archivado el 2 de febrero de 2008 en Wayback Machine "... diseño de circuito asincrónico en todo el chip. No hay un reloj central con miles de millones de nodos tontos que disipan energía inútil... los núcleos del procesador son internamente asincrónicos".
^ "GreenArrayChips" "Chips multicomputadoras de consumo ultrabajo con periféricos integrados".
^ Tiempo: IP del núcleo TAM16 asíncrono
^ "ASPIDA sync/async DLX Core". OpenCores.org . Consultado el 5 de septiembre de 2014 .
^ "Procesador DLX asíncrono de código abierto (ASPIDA)".
Lectura adicional
TiDE de Handshake Solutions en los Países Bajos, herramienta de diseño de circuitos asincrónicos comerciales. Se encuentran disponibles circuitos asincrónicos comerciales ARM (ARM996HS) y 8051 (HT80C51).
Introducción al diseño de circuitos asincrónicos Archivado el 23 de junio de 2010 en Wayback Machine por Davis y Nowick
Lógica de convención nula, un estilo de diseño iniciado por Theseus Logic, que ha fabricado más de 20 ASIC basados en sus núcleos de microcontroladores NCL08 y NCL8501 [1]
El estado del diseño asincrónico en el programa de tecnologías de la sociedad de la información industrial (IST), IST-1999-29119, DA Edwards WB Toms, junio de 2004, a través de www.scism.lsbu.ac.uk
Red Star es una versión del MIPS R3000 implementada en lógica asincrónica
Los microprocesadores Amulet eran ARM asíncronos, construidos en la década de 1990 en la Universidad de Manchester , Inglaterra.
El procesador asíncrono sintetizado MIPS R3000 de SAMIPS.
El Protocolo N desarrollado por Navarre AsyncArt, la primera metodología comercial de diseño asíncrono para FPGAs convencionales
PGPSALM una implementación asincrónica del microprocesador 6502
Página de inicio del grupo asincrónico de Caltech
Tiempo: empresa francesa que ofrece herramientas de diseño e IP asíncronas
Nota de prensa sobre la CPU flexible Epson ACT11
Página del grupo asincrónico de Newcastle upon Tyne
Enlaces externos
Medios relacionados con Circuitos asincrónicos en Wikimedia Commons