Arbitraggio del bus

L'arbitro del bus entra in gioco nel momento in cui più dispositivi richiedono contemporaneamente l'utilizzo del bus.

L'arbitraggio del bus può essere:

  • centralizzato
  • decentralizzato
    entrambi fanno uso del meccanismo di grant (concessione).

Arbitro centralizzato
...

Quando l'arbitro, "vede" una richiesta attiva la linea di grant del bus.

Pasted image 20230618102127.png
Un dispositivo di I/O invia una richiesta per accedere al bus. Il bus riceve tale richiesta e concede (grant) il bus a tale dispositivo. Si noti che prima di quel dispositivo, ci possono essere altri dispositivi, il che vuol dire, per esempio, che se il modulo 3 richiede l'accesso, e l'arbitro concede il bus, i dispositivi 1 e 2 ignorano il bus (poiché non l'hanno richiesto), mentre il 3 lo accetta.
Può succedere che il 2 e il 3 richiedano il bus, allora in tal caso, il bus più vicino occupa il bus e il 3 si mette attesa che il 2 abbia completato le operazioni da fare sul bus. Chi è più lontano nella catena ha una priorità più bassa.

Questo tipo di bus è detto bus a catena, o Daisy chaining (catena di Daisy).

La catena può avere più livelli di priorità:
Pasted image 20230618102842.png
L'assegnamento segue lo stesso principio della Daisy chaining, ma dispositivi con priorità più alta hanno precedenza nell'assegnamento del grant da parte dell'arbitro. Si notino come sono collegati i dispositivi, ci sono moduli collegati al livello più alto e altri al livello più basso.

Arbitro decentralizzato
...

Ci sono tante linee quanti sono i dispositivi, ognuno osserva le linee prima di effettuare la richiesta (soluzione poco flessibile, ma si risparmia il costo dell'arbitro).
Pasted image 20230618103454.png
Quella che si vede sopra è una soluzione con tre linee: bus request, busy e linea di arbitraggio.
La linea di busy serve ai dispositivi per indicare che stanno usando il bus. Quando un dispositivo deve trasmettere sul bus controlla tale linea, se la linea comunica che il bus non è occupato allora comincia a trasferire, impostando la linea del bus a busy (occupata).

Più economico e più veloce del Daisy chaining centralizzato.

Prossimo argomento: dispositivi di input-output.