Elettronica applicata e misure/Cicli di trasferimento base
Il titolo di questa pagina non è corretto per via delle caratteristiche del software MediaWiki. Il titolo corretto è C4. Cicli di trasferimento base. |
C3. Pilotaggio di linee | Elettronica applicata e misure (C. Bus e interconnessioni) | C5. Protocolli di bus |
---|
5-9-33 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.
25 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[modifica | modifica sorgente]
7 Come 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[modifica | modifica sorgente]
12 Le operazioni avvengono in una sequenza di ritardi predefiniti:
- <math>{t_{WR}}_{\text{min}} = 2 t_K + t_{SU} + t_H</math>
- la sorgente invia l'informazione;
- la sorgente attende un tempo minimo <math>t_{SU} + t_K</math> per garantire il tempo di setup <math>t_{SU}</math> 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 <math>t_H + t_K</math> per garantire il tempo di hold <math>t_H</math> richiesto dal flip-flop;
- la sorgente rimuove i segnali di informazione e di strobe.
- 14 Svantaggi
- la sorgente deve conoscere i tempi di setup <math>t_{SU}</math> e di hold <math>t_H</math> e lo skew <math>t_K</math> 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 <math>t_{SU}</math> e di <math>t_H</math> massimi, perché la temporizzazione è fissa.
Ciclo di scrittura asincrono[modifica | modifica sorgente]
16-18-19 Le operazioni avvengono in una sequenza basata sull'interazione tra sorgente e destinazione, detta handshake (strobe/ACK):
- <math>{t_{WR}}_{\text{min}} = t_K + t_{SU} + t_H + 4 t_{TX}</math>
- la sorgente invia l'informazione;
- la sorgente attende un tempo minimo <math>t_K</math> 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 <math>t_{SU}</math> 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 <math>t_H</math> 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 <math>t_K</math> è l'unico ritardo che la sorgente deve conoscere: i tempi di setup <math>t_{SU}</math> e di hold <math>t_H</math> sono garantiti dalla logica di controllo P della destinazione.
Ciclo di scrittura semisincrono[modifica | modifica sorgente]
23 Le 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[modifica | modifica sorgente]
27 In 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 | modifica sorgente]
- <math>{t_{RD}}_{\text{min}} = t_A + t_{SU} + t_H + 2 {t_{TX}}_{\text{max}} + 2 t_{TX}</math>
- la destinazione invia un segnale di richiesta alla sorgente;
- dopo un tempo di trasmissione,[2] è necessario un tempo di accesso <math>t_A</math> 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 <math>{t_{TX}}_{\text{max}}</math>[3] più il tempo di accesso <math>t_A</math>, attende il tempo di setup <math>t_{SU}</math> richiesto dal flip-flop;
- il flip-flop memorizza l'informazione al fronte di salita del clock;
- la destinazione attende il tempo di hold <math>t_H</math> 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[modifica | modifica sorgente]
Nel 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:
- <math>{t_{RD}}_{\text{min}} = t_K + t_A + t_{SU} + t_H + 4 t_{TX}</math>
- la destinazione invia un segnale di richiesta alla sorgente;
- dopo un tempo di trasmissione,[2] è necessario un tempo di accesso <math>t_A</math> 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 | modifica sorgente]
- ↑ 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.
Il titolo di questa pagina non è corretto per via delle caratteristiche del software MediaWiki. Il titolo corretto è C4. Cicli di trasferimento base. |
C3. Pilotaggio di linee | Elettronica applicata e misure (C. Bus e interconnessioni) | C5. Protocolli di bus |
---|