Elettronica applicata/Cicli di trasferimento base
I protocolli di ciclo servono per garantire il corretto trasferimento dei pacchetti di bit tra una sorgente e una destinazione tenendo conto dei vincoli di temporizzazione e dello skew.
La sincronizzazione delle unità può avvenire in due modi:[1]
- macchina a stati asincrona: i cambiamenti di stato possono avvenire in ogni momento;
- macchina a stati sincrona: i cambiamenti di stato possono avvenire solo sui fronti di clock, e la temporizzazione si basa su multipli interi del periodo di clock.
Ciclo di scrittura
modificaCome destinazione (slave) viene usato un flip-flop di tipo D: l'ingresso D memorizza il pacchetto di bit proveniente dalla sorgente (master) alla transizione LH di un certo segnale di clock.
Ciclo di scrittura sincrono
modificaLe operazioni avvengono in una sequenza di ritardi predefiniti:
- la sorgente invia l'informazione;
- la sorgente attende un tempo minimo per garantire il tempo di setup richiesto dal flip-flop di destinazione;
- la sorgente invia il comando di strobe, usato come clock per il flip-flop;
- la sorgente attende un tempo minimo per garantire il tempo di hold richiesto dal flip-flop;
- la sorgente rimuove i segnali di informazione e di strobe.
- Svantaggi
- la sorgente deve conoscere i tempi di setup e di hold e lo skew della destinazione, perché tutta la temporizzazione è controllata dalla sorgente stessa;
- nelle trasmissioni broadcast (scrittura verso più destinazioni), la sorgente deve limitarsi a trasmettere alla velocità consentita dalla destinazione più lenta, avente cioè tempi di setup e di massimi, perché la temporizzazione è fissa.
Ciclo di scrittura asincrono
modificaLe operazioni avvengono in una sequenza basata sull'interazione tra sorgente e destinazione, detta handshake (strobe/ACK):
- la sorgente invia l'informazione;
- la sorgente attende un tempo minimo per garantire che il comando di strobe arrivi alla destinazione sempre dopo il segnale di informazione;
- la sorgente invia il comando di strobe, che va in ingresso alla logica di controllo P della destinazione;
- trascorso un tempo di trasmissione,[2] la logica di controllo attende il tempo di setup richiesto dal flip-flop;
- la logica di controllo invia il segnale di clock al flip-flop, che memorizza l'informazione;
- la logica di controllo attende il tempo di hold richiesto dal flip-flop;
- la logica di controllo invia un ACK alla sorgente per informarla che può rimuovere i segnali di informazione e di strobe;
- trascorso un tempo di trasmissione,[2] la sorgente rimuove i segnali di informazione e di strobe;
- trascorso un tempo di trasmissione,[2] la logica di controllo rimuove il segnale di ACK;
- trascorso un tempo di trasmissione,[2] il segnale di ACK giunge disattivato al lato sorgente.
Lo skew è l'unico ritardo che la sorgente deve conoscere: i tempi di setup e di hold sono garantiti dalla logica di controllo P della destinazione.
Ciclo di scrittura semisincrono
modificaLe operazioni avvengono in una sequenza di ritardi predefiniti, a meno che la destinazione non attivi una richiesta di wait per bloccare temporaneamente il ciclo in modo da avere più tempo per completare le sue operazioni.
Ciclo di lettura
modificaIn un ciclo di lettura il master è la destinazione (flip-flop), che inizializza il ciclo e aggiunge ai ritardi il tempo necessario per la richiesta allo slave di ricevere i dati.
Ciclo di lettura sincrono
modifica- la destinazione invia un segnale di richiesta alla sorgente;
- dopo un tempo di trasmissione,[2] è necessario un tempo di accesso prima che l'informazione richiesta sia pronta (es. memorie);
- la sorgente invia l'informazione;
- intanto la destinazione, dopo un'attesa pari a due tempi di trasmissione massimi [3] più il tempo di accesso , attende il tempo di setup richiesto dal flip-flop;
- il flip-flop memorizza l'informazione al fronte di salita del clock;
- la destinazione attende il tempo di hold richiesto dal flip-flop;
- la destinazione rimuove il segnale di richiesta;
- dopo un tempo di trasmissione,[2] la sorgente rimuove il segnale di informazione;
- dopo un tempo di trasmissione,[2] la rimozione del segnale di informazione giunge alla destinazione.
Ciclo di lettura asincrono
modificaNel ciclo di lettura asincrono si aggiunge un segnale di ACK che la destinazione deve inviare alla sorgente per comunicare che il segnale di informazione è pronto:
- la destinazione invia un segnale di richiesta alla sorgente;
- dopo un tempo di trasmissione,[2] è necessario un tempo di accesso prima che l'informazione richiesta sia pronta (es. memorie);
- la sorgente invia l'informazione;
- dopo un tempo pari allo skew,[4] la sorgente invia il segnale di ACK alla destinazione;
- dopo un tempo di trasmissione,[2] il flip-flop memorizza l'informazione al fronte di salita del segnale di ACK;[5]
- dopo un tempo pari ai tempi di setup e di hold richiesti dal flip-flop, la destinazione rimuove il segnale di richiesta;
- dopo un tempo di trasmissione,[2] la sorgente rimuove i segnali di informazione e di ACK;
- dopo un tempo di trasmissione,[2] la rimozione dei segnali di informazione e di ACK giunge alla destinazione.
Note
modifica- ↑ La trattazione che segue prenderà in esame esclusivamente la macchina a stati asincrona.
- ↑ 2,00 2,01 2,02 2,03 2,04 2,05 2,06 2,07 2,08 2,09 2,10 Siccome l'operazione è asincrona, non è detto che trascorra il tempo di trasmissione massimo.
- ↑ Siccome l'operazione è sincrona, il master ipotizza sempre tempi di trasmissione massimi, indipendentemente dai tempi di trasmissione che trascorrono effettivamente allo slave.
- ↑ Il ritardo dello skew serve a garantire che il segnale di ACK arrivi quando l'informazione è arrivata in modo stabile alla destinazione anche se il segnale di ACK impiega il tempo di trasmissione minimo e l'informazione impiega il tempo di trasmissione massimo.
- ↑ Si tralasciano i dettagli sulla logica di controllo al lato destinazione.