Respuesta corta: los gerentes desean una PRUEBA de función simple y comprobable antes de comprometer a millones (o más) dólares en un diseño. Las herramientas actuales, simplemente no dan a los diseños asíncronos esas respuestas.
Los microcomputadores y microcontroladores suelen utilizar un esquema de temporización para asegurar el control de tiempo. Todas las esquinas del proceso tienen que mantener la temporización en todos los efectos de voltaje, temperatura, proceso, etc. en las velocidades de propagación de la señal. Hay no las puertas lógicas actuales cambian instantáneamente: cada compuerta cambia según el voltaje que se suministra, la unidad que recibe, la carga que conduce y el tamaño de los dispositivos que se utilizan para crearla. (y, por supuesto, el nodo del proceso (tamaño del dispositivo) en el que está hecho, y qué tan rápido se está ejecutando ESTE proceso --- ESTO pasa a través de la fábrica). Para llegar al cambio "instantáneo", tendría que usar la lógica cuántica, y eso supone que los dispositivos cuánticos pueden cambiar al instante; (No estoy seguro).
La lógica sincronizada hace que PRUEBA que la sincronización en todo el procesador funcione en las variables de voltaje, temperatura y procesamiento esperadas. Hay muchas herramientas de software disponibles que ayudan a medir este tiempo, y el proceso de red se denomina "cierre de tiempo". El cronometraje puede (y, según mi experiencia, sí ) toma entre 1/3 y 1/2 de la potencia utilizada en un microprocesador.
Entonces, ¿por qué no un diseño asíncrono? Hay pocas, si las hay, herramientas de cierre de tiempo para soportar este estilo de diseño. Hay pocas, si las hay, herramientas de ruta y lugar automatizadas que puedan manejar y administrar un gran diseño asíncrono. En todo caso, los administradores NO aprueban nada que no tenga una PRUEBA de funcionalidad sencilla y generada por computadora.
El comentario de que el diseño asíncrono requiere "una tonelada de" señales de sincronización, que requirieron "muchos más transistores", ignora los costos de enrutamiento y sincronización de un reloj global, y el costo de todos los flip-flops de ese sistema de reloj requiere Los diseños asíncronos son, (o deberían ser), más pequeños y más rápidos que sus contrapartes cronometradas. (Uno simplemente toma la ruta de señal más lenta de UNO y la usa para enviar una señal de "listo" a la lógica anterior).
La lógica asíncrona es más rápida, ya que nunca tiene que esperar un reloj que deba extenderse a otro bloque en otro lugar. Esto es especialmente cierto en las funciones de registro a lógica a registro. La lógica asíncrona no tiene múltiples problemas de "configuración" y "retención", ya que solo las estructuras de sumidero finales (registros) tienen esos problemas, a diferencia de un conjunto de lógica canalizada con flip-flops intercalados para espaciar los retrasos de propagación lógica hasta la sincronización fronteras
¿Se puede hacer? Ciertamente, incluso en un billón de diseño de transistores. ¿Es más difícil? Sí, pero solo porque demostrar que funciona en un chip completo (o incluso en un sistema) es mucho más complicado. Obtener el tiempo en papel es razonablemente directo para cualquier bloque o subsistema. Conseguir que la sincronización se controle en un sistema automatizado de ubicación y ruta, es mucho más difícil, ya que las herramientas NO están configuradas para manejar el conjunto potencial mucho mayor de restricciones de sincronización.
Los microcontroladores también tienen un conjunto potencialmente grande de otros bloques que se interconectan con señales externas (relativamente) lentas, agregadas a toda la complejidad de un microprocesador. Eso hace que el tiempo sea un poco más complicado, pero no mucho.
Lograr un mecanismo de señal de "bloqueo" de "primero en llegar" es un problema de diseño del circuito, y existen formas conocidas de lidiar con eso. Las condiciones de carrera son un signo de 1). mala práctica de diseño; o 2). Señales externas que entran en el procesador. La sincronización realmente introduce una condición de carrera de señal contra reloj que está relacionada con las violaciones de "configuración" y "espera".
Yo, personalmente, no entiendo cómo un diseño asíncrono podría entrar en una condición de carrera detenida, o cualquier otra . Esa podría ser la limitación de mi , pero a menos que ocurra al ingresar datos en el procesador, NUNCA debería ser posible en un sistema lógico bien diseñado, e incluso entonces, ya que puede sucede a medida que las señales ingresan, usted diseña tratar con eso.
(Espero que esto ayude).
Todo lo dicho, si tienes el dinero ...