ACSO - struttura e funzionamento del bus.ppthome.deib.polimi.it/silvano/FilePDF/ACSO/ACSO -...

23
1 Pag. 1 ACSO ACSO Architettura dei Calcolatori e Sistemi Operativi Architettura dei Calcolatori e Sistemi Operativi ACSO ACSO Architettura dei Calcolatori e Sistemi Operativi Architettura dei Calcolatori e Sistemi Operativi Struttura e funzionamento del bus Struttura e funzionamento del bus Corso ACSO Corso ACSO – prof. Cristina SILVANO prof. Cristina SILVANO Politecnico di Milano Politecnico di Milano Il BUS del calcolatore Il BUS del calcolatore Il calcolatore è composto da unità funzionali: l’unità centrale d’elaborazione (CPU), o processore; le unità funzionali di memoria, o banchi di memoria; le unità funzionali d’interfacciamento alle periferiche. Le unità sono interconnesse tramite un organo di collegamento: il BUS. Lo scopo del BUS è quello d’effettuare tutti i trasferimenti d’informazioni tra le unità funzionali del calcolatore: -2- le informazioni da trasferire sono costituite da istruzioni e dati; ogni trasferimento costituisce un’operazione sul bus.

Transcript of ACSO - struttura e funzionamento del bus.ppthome.deib.polimi.it/silvano/FilePDF/ACSO/ACSO -...

Page 1: ACSO - struttura e funzionamento del bus.ppthome.deib.polimi.it/silvano/FilePDF/ACSO/ACSO - struttura e... · in modo autonomo. Le operazioni sul ... Tempo massimo a disposizione

1

Pag. 1

ACSO ACSO –– Architettura dei Calcolatori e Sistemi OperativiArchitettura dei Calcolatori e Sistemi OperativiACSO ACSO Architettura dei Calcolatori e Sistemi OperativiArchitettura dei Calcolatori e Sistemi Operativi

Struttura e funzionamento del busStruttura e funzionamento del bus

Corso ACSO Corso ACSO –– prof. Cristina SILVANOprof. Cristina SILVANOPolitecnico di MilanoPolitecnico di Milano

Il BUS del calcolatoreIl BUS del calcolatore

Il calcolatore è composto da unità funzionali:– l’unità centrale d’elaborazione (CPU), o processore;– le unità funzionali di memoria, o banchi di memoria;– le unità funzionali d’interfacciamento alle periferiche.

Le unità sono interconnesse tramite un organodi collegamento: il BUS.

Lo scopo del BUS è quello d’effettuare tutti i trasferimenti d’informazioni tra le unità funzionali del calcolatore:

-- 22 --

– le informazioni da trasferire sono costituite da istruzioni e dati;

– ogni trasferimento costituisce un’operazione sul bus.

Page 2: ACSO - struttura e funzionamento del bus.ppthome.deib.polimi.it/silvano/FilePDF/ACSO/ACSO - struttura e... · in modo autonomo. Le operazioni sul ... Tempo massimo a disposizione

2

Pag. 2

BUSBUS interni ed esterniinterni ed esterni

I BUS del calcolatore si distinguono in:– BUS interni, confinati all’interno d’una singola unità funzionale,

i quali collegano i blocchi funzionali contenuti nell’unità;i quali collegano i blocchi funzionali contenuti nell’unità;– BUS esterni, che s’estendono all’esterno dell’unità funzionale,

i quali la collegano alle altre unità funzionali; sono solitamente standardizzati.

La maggior parte dei calcolatori odierni è dotata di due BUS esterni:– BUS di memoria, per collegare la CPU e le unità funzionali

di i (b hi di i )

-- 33 --

di memoria (banchi di memoria);– BUS di I/O, per collegare la CPU e le unità funzionali di I/O.

Sistema con diversi BUSSistema con diversi BUS

BUSesterno

BUS di memoriaCPU

-- 44 --

BUS internoBUS di I/O

(o di periferia)

Page 3: ACSO - struttura e funzionamento del bus.ppthome.deib.polimi.it/silvano/FilePDF/ACSO/ACSO - struttura e... · in modo autonomo. Le operazioni sul ... Tempo massimo a disposizione

3

Pag. 3

Dettaglio del BUS di I/ODettaglio del BUS di I/O

BUS diI/O

Disk 1controller

Drive# 1

SCSIadapter

InterfacciaCentronics

Centronics

InterfacciaserialeUSART

Interfacciatastiera

RS232

SCSI

-- 55 --

Disk 2controller

Drive# 2

StampanteModemTastieraSCSI

Controllo del BUSControllo del BUS

In ogni istante una sola unità funzionale possiede il controllodel BUS, cioè decide quali operazioni di trasferimento eseguire.Generalmente la CPU possiede il controllo del BUS ma può anche Generalmente la CPU possiede il controllo del BUS, ma può anche cedere temporaneamente questo ruolo ad altre unità funzionali (es. DMA Controller).

L’unità funzionale che detiene il controllo del BUS si chiama MASTER (o unità principale):

– decide quale operazione vada eseguita, lettura oppure scrittura,e in quale istante di tempo;

-- 66 --

e in quale istante di tempo;– decide quale sia l’unità funzionale da cui leggere oppure su cui scrivere.

Le altre unità funzionali, che non detengono il controllo del BUS, si chiamano SLAVE (o unità secondarie).

Page 4: ACSO - struttura e funzionamento del bus.ppthome.deib.polimi.it/silvano/FilePDF/ACSO/ACSO - struttura e... · in modo autonomo. Le operazioni sul ... Tempo massimo a disposizione

4

Pag. 4

Ruoli e modalità di collegamento al BUSRuoli e modalità di collegamento al BUS

Master Slave EsempioCPU Memoria Prelievo istruzioni e lettura/scrittura datiCPU Unità di I/O Ricezione/invio dati da/a un’unità di I/OCPU Coprocessore La CPU dà istruzioni al coprocessoreI/O Memoria Accesso diretto alla memoria (DMA)∗

Coprocessore CPU Il coprocessore legge operandi dalla CPU

Per potersi collegare al BUS, le unità MASTER e SLAVE sono dotated’un componente (o blocco funzionale) d’interfaccia, chiamato BUSDRIVER (o dispositivo di controllo del BUS)

-- 77 --

DRIVER (o dispositivo di controllo del BUS)Il BUS driver è in grado di svolgere le operazioni seguenti:

– collegarsi e scollegarsi elettricamente al o dal BUS (p. es. tramite la tecnica d’alta impedenza, o anche tramite altre tecniche);

– amplificare opportunamente i segnali da trasmettere/ricevere sul/dal BUS.

Problematiche del BUSProblematiche del BUS

Il progetto di BUS esterni per calcolatori comprende quattro aspetti principali:

I. struttura e dimensione, cioè il numero di collegamenti presenti nel BUS;

II. funzionamento base, le operazioni e cicli di BUS;III. gestione della temporizzazione del BUS;IV. arbitraggio del controllo del BUS.

-- 88 --

Page 5: ACSO - struttura e funzionamento del bus.ppthome.deib.polimi.it/silvano/FilePDF/ACSO/ACSO - struttura e... · in modo autonomo. Le operazioni sul ... Tempo massimo a disposizione

5

Pag. 5

I I -- Struttura Struttura del BUSdel BUS

Un generico BUS esterno ha una struttura simile ai pin (piedini o morsetti) della CPU, cui va collegato.

U BUS ddi i i t tiUn BUS suddiviso in tre parti:– BUS indirizzi (Address BUS)– BUS dati(Data BUS)– BUS di controllo (Control BUS)

-- 99 --

Dimensione del BUSDimensione del BUS

Dimensione (o larghezza) del BUS indirizzi: con m ≥ 1 linee s’ottengono 2m indirizzi, numerati da 0 a 2m − 1.Dimensione (o larghezza) del BUS dati: con n ≥ 1 linee si possono scambiare (leggere o scrivere) parole da n bit.

Si possono riunire le funzioni del BUS indirizzi e del BUS datiin un unico gruppo di linee: il BUS multiplato (o multiplexato).Quando il processore deve leggere un dato (memoria o periferica):

– nel primo ciclo invia l’indirizzo sul BUS multiplato;nel secondo ciclo riceve il dato sempre sul BUS multiplato;

-- 1010 --

– nel secondo ciclo riceve il dato, sempre sul BUS multiplato;– la scrittura funziona in modo simile.

Ci sono meno collegamenti, ma la velocità è inferiore.

Page 6: ACSO - struttura e funzionamento del bus.ppthome.deib.polimi.it/silvano/FilePDF/ACSO/ACSO - struttura e... · in modo autonomo. Le operazioni sul ... Tempo massimo a disposizione

6

Pag. 6

II II -- Funzionamento del BUSFunzionamento del BUS

Le attività del calcolatore si sviluppano per cicli di BUS: in ogni ciclo avviene un’operazione.Le operazioni sono governate dal MASTER che detiene il controlloLe operazioni sono governate dal MASTER che detiene il controllodel BUS. Gli SLAVE non possono dare inizio a un’operazionein modo autonomo.Le operazioni sul BUS sono trasferimenti di informazioni tra MASTERe SLAVE, ed è necessario specificare se il trasferimentosia relativo a memoria o a interfaccia di I/O:

operazione di lettura: un dato viene trasferito da uno SLAVE

-- 1111 --

– operazione di lettura: un dato viene trasferito da uno SLAVEal MASTER; lo SLAVE è la sorgente dell’informazione;

– operazione di scrittura: un dato viene trasferito dal MASTERa uno SLAVE; il MASTER è la sorgente dell’informazione;

– il verso del trasferimento (lettura o scrittura) è relativo al MASTERche detiene (in quel momento) il controllo del BUS.

Unità funzionali e collegamenti al BUSUnità funzionali e collegamenti al BUS

Poiché è il MASTER a dare inizio a un’operazione di letturao scrittura, solo il MASTER può immettere un indirizzo sul BUSindirizzi:indirizzi:

– gli SLAVE non possono generare indirizzi e corrispondono ai diversi indirizzi generati dal MASTER, secondo la mappa di indirizzamento del calcolatore.

I collegamenti delle unità funzionali al BUS dati variano, a seconda che l’unità funzionale (MASTER o SLAVE) sia in lettura e scrittura, sola lettura o sola scrittura.

-- 1212 --

I collegamenti delle unità funzionali al BUS di controllo sono quelli meno regolari e classificabili, e dipendono dalle funzioni dell’unità considerata.

Page 7: ACSO - struttura e funzionamento del bus.ppthome.deib.polimi.it/silvano/FilePDF/ACSO/ACSO - struttura e... · in modo autonomo. Le operazioni sul ... Tempo massimo a disposizione

7

Pag. 7

Schemi di collegamento al BUSSchemi di collegamento al BUS

indirizziMASTER

LETTURAindirizzi

SLAVE

LETTURAdati

controllo

LETTURAe

SCRITTURAdati

controllo

LETTURAe

SCRITTURA

indirizzi

d ti

SLAVE

SOLAindirizzi

d ti

SLAVE

SOLA

CPU RAM, dischi, ...

-- 1313 --

dati

controllo

LETTURA dati

controllo

SCRITTURA

ROM, tastiera stampante (semplice)

Cicli di BUSCicli di BUS

In generale, ogni operazione sul bus corrisponde a un ciclodi BUS (multiplo del ciclo di clock). I cicli di bus sono classificabili come segue:

– lettura d’una parola di memoria;– scrittura d’una parola di memoria;– lettura d’un registro di I/O;– scrittura d’un registro di I/O;– Riposo (idle): il BUS non viene usato.

-- 1414 --

Page 8: ACSO - struttura e funzionamento del bus.ppthome.deib.polimi.it/silvano/FilePDF/ACSO/ACSO - struttura e... · in modo autonomo. Le operazioni sul ... Tempo massimo a disposizione

8

Pag. 8

Esempio di Esempio di sequenza di cicli sequenza di cicli di BUSdi BUS

Il MASTER Il MASTER Il MASTER Il MASTER Riposo: il

tempo1° ciclo 2° ciclo 3° ciclo 4° ciclo

legge unaparola dalla

cella dimemoria diindirizzo 0

scrive unaparola nella

cella dimemoria diindirizzo 1

riceve un datodall’unità di

I/O diindirizzo64 K − 2

invia un datoall’unità di I/O

di indirizzo64 K − 1

5° ciclo

BUS nonviene usato;il MASTER

lavorainternamente

sui propriregistri

-- 1515 --

Diagramma temporale dei cicli di BUS.

Fasi di un ciclo di BUSFasi di un ciclo di BUS

Un ciclo di bus si può generalmente scomporre nelle seguenti fasi:

1. selezione: in questa fase il MASTER seleziona l’elemento SLAVE coinvolto dal trasferimento, precisandone l’indirizzo, il tipo d’elemento(memoria o I/O) e il verso (lettura o scrittura);

2. eventuale attesa: questa fase viene eseguita solo se l’elemento SLAVE coinvolto è relativamente lento e quindi richiede, per il corretto trasferimento, che venga concesso un tempo d’accesso maggiore rispetto ai normali cicli di BUS (tramite l’inserimento di “cicli” di wait);

-- 1616 --

3. trasferimento dei dati: in questa fase, l’unità destinazionedel trasferimento “cattura” (cioè memorizza localmente) l’informazione emessa dalla sorgente;

4. conclusione: in questa fase tutti i segnali sono ordinatamente riportati nello stato di riposo.

Page 9: ACSO - struttura e funzionamento del bus.ppthome.deib.polimi.it/silvano/FilePDF/ACSO/ACSO - struttura e... · in modo autonomo. Le operazioni sul ... Tempo massimo a disposizione

9

Pag. 9

III III -- Temporizzazione del BUSTemporizzazione del BUS

Per realizzare la scansione dei cicli di BUS esistonodue metodi fondamentali:

– BUS sincrono;– BUS asincrono.

I due metodi si distinguono per la presenza o menod’un segnale di clock (segnale di temporizzazione).

-- 1717 --

BUS sincronoBUS sincrono

Il BUS di controllo contiene una linea per il segnale di clock, con frequenza prestabilita.Il clock viene distribuito a tutte le unità funzionali collegate al BUSIl clock viene distribuito a tutte le unità funzionali collegate al BUS.Il segnale di clock scandisce le varie transizioni dei segnali e il passaggio da un ciclo di BUS al ciclo successivo.

-- 1818 --

Page 10: ACSO - struttura e funzionamento del bus.ppthome.deib.polimi.it/silvano/FilePDF/ACSO/ACSO - struttura e... · in modo autonomo. Le operazioni sul ... Tempo massimo a disposizione

10

Pag. 10

Esempio Esempio

Lettura d’una parola dalla memoria.BUS sincrono, periodo di clock = 25 ns.Frequenza = 1 / 25 ns = 40 MHzFrequenza = 1 / 25 ns = 40 MHz.La CPU campiona sul fronte di discesa del clock (le operazioni inizianosul fronte di salita del clock).Tempo massimo a disposizione per il trasferimento in 2 cicli di clock = 37,5 ns (risultante da 25 ns + 12,5 ns). Possibile solo se la memoria presentaun ritardo trascurabile rispetto al periodo di clock.La memoria presenta un ritardo di lettura pari a 40 ns, cioè le occorrono40 ns per presentare il dato richiesto alle uscite collegate al BUS dati.

-- 1919 --

Occorrono 3 cicli di clock (T1, T2 e T3) per portare a termine la lettura. Tempo massimo a disposizione per il trasferimento in 3 ciclidi clock = 62,5 ns (risultante da 50 ns + 12,5 ns).

Bus sincrono: Segnali di controlloBus sincrono: Segnali di controllo

MREQ (Memory Request): il MASTER richiede un accesso alla memoria; è attivo basso.RD (Read): il MASTER richiede una lettura;è attivo basso.WAIT: lo SLAVE richiede al MASTER una proroga dell’operazione (cioè un ciclo aggiuntivo, o stato di attesa), perché ha bisogno di tempo per completare l’accesso ai dati richiesti; è attivo basso.

-- 2020 --

Page 11: ACSO - struttura e funzionamento del bus.ppthome.deib.polimi.it/silvano/FilePDF/ACSO/ACSO - struttura e... · in modo autonomo. Le operazioni sul ... Tempo massimo a disposizione

11

Pag. 11

BUS sincrono: diagramma temporale per lettura da memoriaBUS sincrono: diagramma temporale per lettura da memoria

Selezione Trasferimento datiConclusione

S

La CPU campiona e legge il dato

Lo SLAVE attiva il segnale WAIT quando rileva una richiesta

Il MASTER “sente” WAIT per disabilitare MREQ

-- 2121 --

Attesa (dato non prontoper trasferimento)

d’accesso

Bus Sincrono:Bus Sincrono:Fasi dell’operazione di lettura da memoriaFasi dell’operazione di lettura da memoria

Ciclo T1 (selezione): il MASTER (CPU) manda l’indirizzo sul BUS indirizzi e attiva MREQ e RD (dopo avere stabilizzato l’indirizzo) sul fronte di discesa del clock.Ciclo T2 (attesa): lo SLAVE (memoria) attiva WAIT sul fronte di salita e richiede una proroga di un ciclo di BUS, per avere tempo sufficiente per accedere e fornire il dato (parola di memoria).Ciclo T3 (trasferimento dati): lo SLAVE ha pronta la parola, perciò disattiva WAIT sul fronte di salita e fornisce la parola di memoria sul BUS dati; il MASTER legge la parola dal BUS dati sul fronte di discesa, toglie l’indirizzo e disattiva MREQ e RD (conclusione)

-- 2222 --

Page 12: ACSO - struttura e funzionamento del bus.ppthome.deib.polimi.it/silvano/FilePDF/ACSO/ACSO - struttura e... · in modo autonomo. Le operazioni sul ... Tempo massimo a disposizione

12

Pag. 12

Tabella riassuntiva dei ritardiTabella riassuntiva dei ritardi

-- 2323 --

Con riferimento all’esempio, il tempo effettivamente disponibileal trasferimento nel caso peggiore è pari a:

62,5 - 11 - 5 = 46,5 ns compatibile con un ritardo di lettura di 40 ns.

BUS asincronoBUS asincrono

Non esiste alcun segnale di clock comune alle unità funzionali collegate al BUS del calcolatore.L t i i i di g l i ggi d i l di BUS l i l Le transizioni di segnale e i passaggi da un ciclo di BUS al ciclo successivo non sono sincronizzati.

Le unità funzionali osservano il BUS di controllo: quando avviene una transizione di segnale significa che si verifica un avanzamento dell’operazione:

– il bus è dotato di opportuni segnali di controllo (di cui vengono

-- 2424 --

osservate le transizioni) che realizzano un protocollodi sincronizzazione a segnale (per es. “full-handshake”).

Page 13: ACSO - struttura e funzionamento del bus.ppthome.deib.polimi.it/silvano/FilePDF/ACSO/ACSO - struttura e... · in modo autonomo. Le operazioni sul ... Tempo massimo a disposizione

13

Pag. 13

Bus asincrono: Segnali di controlloBus asincrono: Segnali di controllo

Oltre ai segnali di controllo già visti per il BUS sincrono (tranne il clock, che qui manca), sono presenti:

MSYN (Master Synchronisation): il MASTER segnala di avere impostato indirizzo e MREQ, RD; è attivo basso.SSYN (Slave Synchronisation): lo SLAVE segnala di avere completato l’operazione; è attivo basso.

-- 2525 --

Esempio: lettura da memoriaEsempio: lettura da memoria

BUS asincrono.La memoria presenta un ritardo di lettura pari a 40 ns, cioè le occorrono 40 ns per presentare il dato richiesto alle uscite collegate occorrono 40 ns per presentare il dato richiesto alle uscite collegate al BUS dati.L’intera operazione avviene come un tutt’unico, contenente varie transizioni.

-- 2626 --

Page 14: ACSO - struttura e funzionamento del bus.ppthome.deib.polimi.it/silvano/FilePDF/ACSO/ACSO - struttura e... · in modo autonomo. Le operazioni sul ... Tempo massimo a disposizione

14

Pag. 14

BUS asincrono: diagramma temporale per lettura da memoriaBUS asincrono: diagramma temporale per lettura da memoria

causa-effetto

causa-effetto

causa-effetto

-- 2727 --

Selezionee richiesta d’accesso

Attesa (dato non pronto per il trasferimento)

Trasferimentoe conclusione

Bus asincrono: Bus asincrono: Fasi dell’operazione di lettura da memoriaFasi dell’operazione di lettura da memoria

Il MASTER (CPU) manda l’indirizzo sul BUS indirizzi, attiva MREQe RD e, dopo averli stabilizzati, attiva MSYN.

Lo SLAVE (memoria) esegue l’operazione, nel minor tempo possibile, e fornisce la parola sul BUS dati; poi attiva SSYN.

Il MASTER legge la parola dal BUS dati, toglie l’indirizzo e disattiva MREQ e RD; poi disattiva anche MSYN.

Infine, lo SLAVE disattiva SSYN

-- 2828 --

– Nota: poiché non esiste un segnale di clock che marchi gli istanti di tempo in cui i vari segnali di controllo si possono attivare o disattivare, nel diagramma temporale vanno indicati i rapporti causa-effetto esistenti tra i vari segnali di controllo: in pratica i segnali di controllo transitano di valore in reazione a transizioni precedenti.

Page 15: ACSO - struttura e funzionamento del bus.ppthome.deib.polimi.it/silvano/FilePDF/ACSO/ACSO - struttura e... · in modo autonomo. Le operazioni sul ... Tempo massimo a disposizione

15

Pag. 15

Procedura “Procedura “fullfull--handshakehandshake” (o a doppio ” (o a doppio consenso)consenso)

Lo schema asincrono appena visto è incentratosulla procedura seguente:

– MSYN viene attivato;– SSYN viene attivato in risposta a MSYN (quando sono pronti i

dati da leggere);– MSYN viene disattivato in risposta a SSYN;– SSYN viene disattivato in risposta a MSYN.

La procedura asincrona si chiama“full-handshake”: è indipendente dal clock ed è indipendente dalla presenza

-- 2929 --

indipendente dal clock ed è indipendente dalla presenza di SLAVE lenti.

Confronto Bus Sincrono / Bus AsincronoConfronto Bus Sincrono / Bus Asincrono

Il BUS sincrono:vantaggi: semplicità di progetto e di controllo;svantaggio: “sprechi” di tempo (ogni operazione si deve svolgerein un numero intero di cicli di clock):

– quando un’operazione si potrebbe completare in meno d’un ciclo di clock;– quando un’operazione richiede un numero frazionario di cicli di clock.

Il BUS asincrono:vantaggi: maggior efficienza nell’uso dei cicli (l’operazione

-- 3030 --

si completa esattamente nel tempo necessario);svantaggi: complessità di progetto e di controllo.

I BUS dei calcolatore sono nella maggior parte dei casi di tipo sincrono.

Page 16: ACSO - struttura e funzionamento del bus.ppthome.deib.polimi.it/silvano/FilePDF/ACSO/ACSO - struttura e... · in modo autonomo. Le operazioni sul ... Tempo massimo a disposizione

16

Pag. 16

IVIV-- Arbitraggio del bus: cambio di MASTERArbitraggio del bus: cambio di MASTER

Normalmente la CPU ha il ruolo di MASTER tra le unità funzionali.Tuttavia in determinate circostanze anche altre unità funzionali possono assumere temporaneamente il ruolodi MASTER, per scopi particolari:

– Unità di I/O: possono diventare MASTER per trasferire dati direttamente con la memoria, senza bisogno della CPU (DMA);

– Co-processore: può diventare MASTER per prelevare operandi dalla memoria.

-- 3131 --

Arbitraggio del BUSArbitraggio del BUS

Il BUS del calcolatore può avere, in ogni istante,un solo MASTER.In caso di cessione del ruolo di MASTER da un’unità funzionale a In caso di cessione del ruolo di MASTER da un’unità funzionale a un’altra, occorre dunque un meccanismodi ARBITRAGGIO DEL BUS, che ne regoli l’utilizzoda parte delle unità funzionali.Esistono due meccanismi principali d’arbitraggio:

– Arbitraggio centralizzato;– Arbitraggio distribuito.

-- 3232 --

Page 17: ACSO - struttura e funzionamento del bus.ppthome.deib.polimi.it/silvano/FilePDF/ACSO/ACSO - struttura e... · in modo autonomo. Le operazioni sul ... Tempo massimo a disposizione

17

Pag. 17

Arbitraggio centralizzatoArbitraggio centralizzato

Il meccanismo di arbitraggio centralizzato prevede:– un’unità funzionale apposita, che svolge la funzione

di bit d l BUSdi arbitro del BUS;– alcune linee (appartenenti al BUS di controllo) che collegano

l’arbitro alle unità funzionali potenziali richiedenti il controllo del BUS:

• Bus Request (richiesta di cessione del controllo);• Bus Grant (conferma di cessione del controllo).

L’arbitro realizza il meccanismo di cessione del controllo

-- 3333 --

del BUS, vale a dire del ruolo di MASTER.

Arbitraggio centralizzatoArbitraggio centralizzato

max priorità min priorità

Quando l’unità di arbitraggio riceve una richiesta di BUS (BUS Request),

-- 3434 --

Q gg ( q ),attiva la linea di conferma (BUS Grant).La conferma viene passata in cascata alle unità potenziali richiedenti:

– se un’unità non ha una richiesta pendente, passa la conferma all’unità successiva;– altrimenti, trattiene per sé la conferma, senza passarla all’unità successiva,

e prende il controllo del BUS comportandosi come MASTER.

Page 18: ACSO - struttura e funzionamento del bus.ppthome.deib.polimi.it/silvano/FilePDF/ACSO/ACSO - struttura e... · in modo autonomo. Le operazioni sul ... Tempo massimo a disposizione

18

Pag. 18

Richiesta con prioritàRichiesta con priorità

Il meccanismo di arbitraggio centralizzato viene chiamato collegamento Daisy Chaining.

È d bl ( i è h d ) i i àÈ un modo cablato (cioè hardware) per assegnare una prioritàprefissata alle unità:

– l’unità più vicina all’arbitro è quella a priorità max, mentre quella all’estremo opposto è quella a priorità min, e ogni unitàpossiede un livello di priorità diverso.

Per introdurre una certa flessibilità nel meccanismo di arbitraggio,si possono adottare i provvedimenti seguenti:

– dotare il BUS di più linee di richiesta / conferma;

-- 3535 --

dotare il BUS di più linee di richiesta / conferma;– stabilire una scala di priorità tra le linee ;– e collegare ogni unità a una sola delle linee.

L’unità usa la linea cui è collegata, e dunque opera al livellodi priorità relativo.

Arbitraggio con priorità: arbitro Arbitraggio con priorità: arbitro daisydaisy--chainingchainingsu più lineesu più linee

linea a max prioritàlinea a min priorità

unità a max priorità unità a min priorità

-- 3636 --

• contiene più linee di richiesta / conferma con livelli di priorità differenti;

• ogni unità usa la linea cui è collegata ( e la relativa priorità della linea);

• in caso di richieste simultanee su due o più linee, l’arbitro invia il segnaledi “grant” a quello con livello di priorità di linea più elevato.

Page 19: ACSO - struttura e funzionamento del bus.ppthome.deib.polimi.it/silvano/FilePDF/ACSO/ACSO - struttura e... · in modo autonomo. Le operazioni sul ... Tempo massimo a disposizione

19

Pag. 19

Meccanismo d’accettazioneMeccanismo d’accettazione

Nei meccanismi di arbitraggio descritti, le unità non sono in grado di sapere quando un’unità che abbia chiestoe ottenuto il controllo del BUS lo rilasci, rendendolo disponibile per altre unità.

Si migliora l’efficienza dell’arbitraggio aggiungendouna terza linea di controllo: il segnale d’accettazione (BUS acknowledge).

à

-- 3737 --

La linea d’accettazione viene attivata delle unità,non dall’arbitro.

Diagramma temporaleDiagramma temporale

generatad ll’ ità

confermaità 1

confermaunità 2

accettazioneità 1

accettazioneità 2

unità 1 detiene BUS unità 2 detiene BUS

richiesta

conferma

accettazione

generatadall’arbitro

dall’unità unità 1 unità 2unità 1 unità 2

unità 1rilascia BUS

ACK

GRANT

REQ

-- 3838 --

tempogeneratadall’unità

Arbitraggio centralizzato con accettazione: tutti i segnali sono attivi bassi.

richiestaunità 1

richiestaunità 2

richiesta unità 2pendente

Page 20: ACSO - struttura e funzionamento del bus.ppthome.deib.polimi.it/silvano/FilePDF/ACSO/ACSO - struttura e... · in modo autonomo. Le operazioni sul ... Tempo massimo a disposizione

20

Pag. 20

Meccanismo d’accettazione: funzionamentoMeccanismo d’accettazione: funzionamento

Un’unità richiede e ottiene dall’arbitro il controllo del BUS.Non appena l’arbitro le avrà inviato la conferma, l’unità che

àprende il controllo del BUS attiverà la linea d’accettazionee disattiverà la linea di richiesta.Non appena l’arbitro avrà visto attivarsi la linea d’accettazione, disattiverà la linea di conferma.Così, subito dopo che l’unità ha preso il controllo del BUS,le linee di richiesta e di conferma sono già libere.Un’altra unità potrà dunque inviare subito una nuova richiesta

-- 3939 --

Un’altra unità potrà dunque inviare subito una nuova richiesta, che resterà pendente; questa seconda unità riceveràla conferma non appena la prima unità avrà rilasciatoil controllo del BUS disattivando la linea d’accettazione.

Arbitraggio distribuitoArbitraggio distribuito

Il meccanismo d’arbitraggio distribuito a n linee prevede le risorse e le funzionalità seguenti:

– una linea di richiesta BUS per ogni unità (non esiste arbitro);

– le unità hanno priorità diverse e fissate;

– le unità osservano tutte le linee di richiesta BUS;

– ogni unità può attivare solo la propria linea di richiesta BUS.

-- 4040 --

Page 21: ACSO - struttura e funzionamento del bus.ppthome.deib.polimi.it/silvano/FilePDF/ACSO/ACSO - struttura e... · in modo autonomo. Le operazioni sul ... Tempo massimo a disposizione

21

Pag. 21

Arbitraggio distribuitoArbitraggio distribuitoB U S reques t 5B U S reques t 4B U S reques t 3B U S reques t 2B U S reques t 1

2 3 4 51

m ax p rio rità m in p rio rità

inv ia

osse rva

n = 5

-- 4141 --

Se l’unità vuole diventare MASTER, s’accerta che nessun’altra unità a livello di priorità superiore abbia attivato la propria linea di richiesta BUS.Se così è, l’unità attiva la sua linea di richiesta BUS e ottiene il controllo del BUSper il ciclo successivo, diventando MASTER.Si risparmia il costo dell’arbitro, ma il numero di linee di controllo cresce con quellodelle unità.

MiglioramentoMiglioramento

Si può migliorare l’arbitraggio distribuito a n linee usando solo 3 linee di controllo:

– richiesta BUS (BUS Request): l’unità attiva questa lineaper richiedere il BUS;

– impegno BUS (BUS Busy): questa linea viene mantenuta attiva dall’unità che detiene correntemente il controllo del BUS;

– conferma BUS (BUS Grant): è la linea di conferma, collegataa festone;

È simile al meccanismo d’accettazione.

-- 4242 --

È simile al meccanismo d accettazione.

Page 22: ACSO - struttura e funzionamento del bus.ppthome.deib.polimi.it/silvano/FilePDF/ACSO/ACSO - struttura e... · in modo autonomo. Le operazioni sul ... Tempo massimo a disposizione

22

Pag. 22

Arbitraggio distribuitoArbitraggio distribuitosempreinattivo

BUS RequestBUS Busy

BUS Grant

max prioritàmin priorità

-- 4343 --

Arbitraggio distribuito con schema di collegamentoa 3 sole linee di controllo

(tutti i segnali sono attivi bassi).

min priorità

Funzionamento dell’arbitraggio (I)Funzionamento dell’arbitraggio (I)

Un’unità che desideri diventare MASTER verifica che nessun’altra unità a priorità superiore sia correntemente master del bus. Quindi attende sempre di vedere:attende sempre di vedere:

– il segnale BUS Busy inattivo;– il proprio ingresso IN inattivo (linea di conferma in ingresso inattiva);

prima d’avanzare la propria richiesta di controllo del BUS.

Se un’unità vede che un’altra unità a priorità superiore detieneil controllo del BUS, passa quest’informazione a tutte le unità

li ll di i ità i f i l i Q i di i i ità

-- 4444 --

con livello di priorità inferiore al proprio. Quindi in ogni unità:– se l’ingresso IN è attivo, anche l’uscita OUT va tenuta attiva,

indipendentemente dal resto.

Page 23: ACSO - struttura e funzionamento del bus.ppthome.deib.polimi.it/silvano/FilePDF/ACSO/ACSO - struttura e... · in modo autonomo. Le operazioni sul ... Tempo massimo a disposizione

23

Pag. 23

Funzionamento dell’arbitraggio (II)Funzionamento dell’arbitraggio (II)

Quando si verificano le condizioni che consentono d’avanzareuna richiesta di controllo del BUS:

à– l’unità attiva la linea di BUS Request;– l’unità attiva la linea BUS Busy;– l’unità attiva la propria uscita OUT.

Così l’unità ottiene il controllo del BUS, diventando MASTER,e notifica il fatto a tutte le unità con livello di priorità inferioreal proprio (poi disattivando la BUS request).

-- 4545 --