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?
digital-logic
vlsi
synchronous
Corsair64
fuente
fuente
Respuestas:
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.
fuente
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.
fuente
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.
fuente
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!
fuente