AMBRIC AM2045
• Ogni registro ha un ingresso (data_in) e un uscita (data_out) per i dati.
• Ogni registro è pilotato da 4 segnali di controllo: un ingresso e un uscita “valid”, e un ingresso e un
uscita “accept”
Il protocollo di comunicazione tra due registri è molto semplice:
• Quando un registro può accettare un input, mette alta l’uscita “accept”
• Quando un registro ha un dato pronto in uscita, mette alta l’uscita “valid”
• Senza bisogno di trattare o di inviare Acknowledgment, quando i due registri vicino vedono i due
segnali di controllo che li lega entrambi alti, sanno che la comunicazione è avvenuta.
Questo tipo di sincronizzazione effettuata a livello locale consente di ottenere alte performance senza una
complessa sincronizzazione globale.
Figura 6
La figura 6 mostra la comunicazione tra due registri vicini X e Y. Il Messaggio viene scambiato solo quando X
è pronto per inviare il messaggio (Xp alto) e Y è pronto per riceverlo (Yc alto).
La figura 7 mostra come i vari blocchi logici e i processori utilizzino i segnali “valid” e “accept” per ricevere
input o per inviare dati su un canale, ed è proprio grazie a questi eventi di trasferimento che i vari blocchi
vengono sincronizzati internamente e con il mondo esterno.
Figura 7
10