¿Por qué los circuitos completamente asíncronos no son más frecuentes? [cerrado]

19

Según tengo entendido, la mayoría de las CPU de consumo modernas se basan en lógica síncrona. Algunas aplicaciones de alta velocidad (procesamiento de señal, etc.) utilizan la lógica ansync para su mayor velocidad.

Sin embargo, en el mercado actual, la velocidad en los productos de consumo es uno de los principales puntos de venta (ver AMD vs Intel). ¿El desarrollo de una litografía más complicada es más rápido que la adopción de una lógica completamente asincrónica? ¿O es la lógica ansync demasiado complicada / poco práctica para las aplicaciones VLSI?

Corsair64
fuente
44
Creo que es muy difícil programarlos de manera procesal.
mehmet.ali.anil
16
Las arquitecturas actuales son híbridas. Los bloques síncronos están interconectados de forma asíncrona. Y sí, la lógica asincrónica es mucho más complicada.
Eugene Sh.
55
Porque todavía no tenemos buenas herramientas para el cierre de sincronización asincrónico.
Oldfart
2
Los sistemas se están volviendo cada vez más asíncronos. En las CPU modernas, cosas como RAM, caché y núcleos de CPU se ejecutan con relojes independientes. Los nuevos procesadores Intel HEDT llevan esto un paso más allá y permiten que cada uno de los muchos núcleos en los chips se ejecuten en relojes independientes entre sí y desde la RAM, caché y buses externos, etc.
J ...
1
Una cosa para recordar, los relojes síncronos introducen un latido del corazón estandarizado para el sistema, mientras que si utiliza un diseño asíncrono puro, de lo contrario, las diferencias de tiempo triviales, como el retraso de propagación, deben adaptarse a través de otros medios. También es relativamente eficiente implementar funciones puras en diseños asíncronos, pero las funciones con estado (u operaciones más difíciles como la raíz cuadrada) pueden complicarse. Las señales de enrutamiento también pueden ser difíciles (no hay autobuses, puede que te quedes atascado conectando todo a todo).
jrh

Respuestas:

45

Pasé algunos años en una startup que comercializa tecnología de diseño asíncrono, así que estoy familiarizado con los motivos:

  • async no es intrínsecamente más rápido. El retraso del camino en el peor de los casos sigue siendo el mismo. Es solo que a veces puedes aprovechar una ejecución de ruta más rápida.

  • async también tiene una detección de sobrecarga de finalización.

  • Herramientas de diseño. Este es el realmente grande: no hay realmente un "flujo" asíncrono completo de herramientas disponibles con la misma calidad que el diseño sincrónico.

  • Formación. Debería volver a capacitar a todos sus diseñadores sobre el nuevo paradigma y las herramientas.

  • Riesgo y conservadurismo. Gran parte de la industria es "producir algo similar al último, pero un poco diferente". Esto tiene una alta probabilidad de trabajar. Las empresas son mucho más reacias a construir algo totalmente diferente, ya que tiene muchas más posibilidades de ser una cancelación total que cuesta decenas de millones de dólares.

pjc50
fuente
Podría ser intrínsecamente más barato pero más lento.
Tony Stewart Sunnyskyguy EE75
3
Recuerdo haber pensado en esto una vez, y también me di cuenta: ¿un chip sincronizado está trivialmente mal sincronizado (para batería / temperatura / etc.), mientras que un chip asincrónico probablemente no lo sea tanto?
Pato mugido
En términos de herramientas / paradigma de diseño, la lógica síncrona es capaz de ignorar totalmente las fallas en la salida de la lógica combinatoria, y solo requiere que las señales del reloj estén libres de fallas. También es más probable que los circuitos asíncronos requieran agregar un retraso adicional para algunas señales, para garantizar que una señal preparada no pueda llegar al siguiente bloque antes de que lleguen los datos, etc. En los circuitos síncronos, rara vez se necesita un retraso artificial. Uno de los pocos casos que debe recordar es satisfacer los requisitos de tiempo de espera, que a menudo pueden satisfacerse con demoras naturales. También algunas situaciones de dominio de reloj cruzado pueden necesitar demora.
Kevin Cathcart
Creo que en muchas situaciones el uso de un reloj de dos fases no superpuesto podría ofrecer muchas ventajas sobre un solo reloj. Cuando se usa un solo reloj, cualquier pulso de ejecución puede hacer que un sistema salte los rieles, pero cuando se usa un reloj de dos fases generado al alimentar una entrada de reloj a través de dos comparadores, los pulsos de ejecución en una fase de reloj serían inofensivos si están precedidos o seguidos por un pulso de reloj de longitud válida sin un pulso intermedio en la fase de reloj opuesta.
supercat
3
@MooingDuck Depende del paradigma lógico. Trabajé en una lógica de convención nula, y funcionaría tan rápido como lo permitieran las condiciones (proceso, voltaje, temperatura). No necesitaría reducir el reloj debido a esas condiciones, lo haría automáticamente .
W5VO
3

Es muy tentador diseñar circuitos integrados asíncronos. Las otras respuestas ya cubren muchas razones para pensar dos veces antes de hacerlo. Aquí hay uno más:

El desarrollo de IC no está terminado con el diseño. La verificación y la prueba son igualmente importantes. No solo las herramientas de diseño son muy avanzadas para circuitos síncronos, sino que es lo mismo con las herramientas de simulación y los equipos de prueba.

Verificación

No es suficiente que los circuitos funcionen en condiciones de laboratorio. Deben ser robustos con respecto al rango de voltaje de funcionamiento (V), el rango de temperatura de funcionamiento (T) y la variación debida al proceso de fabricación (P). Para la lógica síncrona, esto puede garantizarse con la ayuda del análisis de temporización estática. El circuito se divide en todas las rutas de temporización, desde flip-flop a flip-flop. Los tiempos de configuración y retención se verifican para cada ruta de temporización y para diferentes combinaciones de P, T y V. Estas combinaciones de PTV son las llamadas esquinas de simulación.

Se podría hacer una verificación similar para los circuitos asincrónicos, pero es mucho más difícil y mucho menos compatible con las herramientas de diseño. También restringe al diseñador a construcciones asincrónicas que realmente se pueden verificar. No existe una verificación confiable para los circuitos asincrónicos arbitrarios.

Prueba

Dificultades similares existen cuando se trata de probar el hardware. La prueba de lógica síncrona es totalmente compatible con los estándares y equipos de prueba. Probar circuitos asincrónicos no solo es más complicado, sino que debido a la falta de abstracción de temporización, ni siquiera es suficiente para demostrar que el circuito funcionará para todas las esquinas de PTV. El circuito podría fallar debido a las condiciones de carrera en alguna combinación de PTV, que no está cubierta por las esquinas.

Resumen

Los diseñadores de IC no han renunciado al paradigma asincrónico, pero la lógica asincrónica presenta grandes desventajas durante la verificación y validación. En un contexto industrial, el diseño de circuitos integrados asíncronos debe restringirse a construcciones que puedan probarse que funcionan en todo el espacio de parámetros de variación del proceso, así como en los rangos operativos de temperatura y voltaje.

El llamado diseño "Localmente síncrono globalmente asíncrono" es una forma de obtener más beneficios y menos desventajas de ambos paradigmas de temporización.

bogl
fuente
0

Los contadores binarios asíncronos son más simples porque solo usan 1 celda de memoria o T flip flop por división entre dos. Por lo tanto, el viejo CD y 74HC4020 y 4040 ofrecen muchas etapas binarias a bajo precio. El retraso de apoyo en cada etapa significa que no se puede usar sin condiciones de carrera o problemas técnicos con la decodificación de la puerta de las direcciones binarias a menos que el retraso de apoyo sea inferior a 1/2 ciclo de reloj de entrada utilizando el borde posterior para bloquear el resultado. La latencia de salida se multiplica por N etapas.

Los contadores binarios síncronos usan una celda de memoria adicional para D FF para retrasar, pero minimizan el retraso a 1 valor para cualquier longitud de contadores, por lo que consume más área.

Por lo tanto, todas las CPU usan relojes complementarios para optimizar la latencia esperada en las lecturas / escrituras de direcciones y memorias para maximizar la interrupción pero no exceder el tiempo de espera, configuración y tiempo de espera.

La memoria ahora usa muchas fases, como DDR, 3DR, 4DR, 5DR, especialmente para la memoria de gráficos, pero los relojes de la CPU funcionan mucho más rápido que la tasa de RAM de ciclo único, por lo que los retrasos de las direcciones de lectura y escritura pueden cronometrarse por conteos simples o múltiples o la mitad de superclock (p. ej., 100MHz xN) designado por T fraccional o números enteros para cada parámetro. Estas demoras aumentan con la temperatura. Para CMOS y reduzca con un voltaje Vram más alto que, si se enfría adecuadamente, podría reducir la latencia u otro aumento de Pd y el aumento de temperatura y empeorarlo (más lento). Por lo tanto, el enfriamiento, V, f, T son críticos para una latencia óptima, ya sea que se use para operaciones Async o Sync.

Tony Stewart Sunnyskyguy EE75
fuente
-1

Los primeros diseños lógicos fueron asincrónicos. Muchas veces también se mezclaron con circuitos analógicos. Sin embargo, a medida que pasaba el tiempo, los diseños se volvieron más complicados, lo que exigió que más ingenieros trabajen en un solo diseño. Los diagramas de tiempo de asíncrono. La lógica puede ser engorrosa cuando hay muchos estados. Ahora agregue un equipo de ingenieros que intente interconectar diferentes bloques de lógica, pero los tiempos entre ellos no están muy bien alineados. Los diseños se vuelven frágiles a los cambios de manera imprevista.

Ingrese el diseño lógico síncrono. Ahora todos los flujos de estado están alineados con una señal de reloj que permite que las interfaces estén muy bien definidas y sean más robustas frente a los cambios de diseño. Sí, podría usar más compuertas, pero es (generalmente) estable por diseño; a diferencia de estable siempre y cuando nadie lo toque!

Aaron
fuente
1
También existen metodologías de diseño asincrónicas que garantizan "correcto por diseño" e "interfaces bien definidas". Estos son simplemente diferentes de los supuestos simplificadores hechos para diseños sincrónicos.
Edgar Brown