¿Cómo saben los módulos en un circuito asíncrono cuándo señalar que su salida está lista?

Recientemente me fascinaron las CPU asíncronas , que no tienen un reloj central y cada módulo envía una señal cuando sus datos han sido procesados. Sin embargo, me he estado preguntando cómo esos módulos realmente saben cuándo su salida está lista y estable.

En el siguiente ejemplo de un circuito secuencial asíncrono, algunos módulos se comunican mediante un protocolo de negociación simple de la siguiente manera:

  1. Un módulo se activa con una señal de LISTO de un módulo anterior.
  2. Luego, el módulo comienza a manipular los datos de entrada.
  3. La señal RECIBIDA se envía al módulo anterior, cuando la entrada ha sido leída y puede ser modificada por el módulo anterior.
  4. Cuando la salida se actualiza y se estabiliza, se envía una señal de LISTO al siguiente módulo.
  5. Cuando se envía la señal RECIBIDO como respuesta, el proceso comienza de nuevo.

esquemático

simular este circuito : esquema creado con CircuitLab

  • ¿Es posible enviar una señal LISTO cuando la salida de un módulo es estable, sin sincronizar específicamente el retardo de propagación del circuito del módulo?
    • Si no, ¿cuál sería la forma más sencilla de retrasar una señal READY en función del retraso de propagación del peor caso de un circuito?

Respuestas (2)

¿Es posible enviar una señal LISTO cuando la salida de un módulo es estable, sin sincronizar específicamente el retardo de propagación del circuito del módulo?

No.

Si no, ¿cuál sería la forma más sencilla de retrasar una señal READY en función del retraso de propagación del peor caso de un circuito?

Para cada módulo, tiene una línea de retardo combinada compuesta por una serie de puertas AND configuradas como búferes.

Vea las imágenes a continuación:

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

Sin reloj central no significa que no haya reloj en absoluto. M1 y M2 no necesitan saber a qué velocidad corre cada uno; deben saber lo que están haciendo los demás y tener un protocolo definido entre ellos . Lo que ambos deben hacer es asegurarse de que se transmiten los datos correctamente, y debe ocurrir de manera sincronizada para una transferencia de datos consistente.

En su diagrama, describió un sistema de transferencia de solicitud / reconocimiento de muy alto nivel; en la implementación real, puede ser más complejo que eso y puede incluir relojes entre los dispositivos.