Sartomiki.net

  • Aumenta dimensione caratteri
  • Dimensione caratteri predefinita
  • Diminuisci dimensione caratteri

Sistemi Multi-Master

E-mail Stampa PDF
Valutazione attuale: / 0
ScarsoOttimo 

Sistemi Multi-Master
Nella realtà esistono sistemi complessi nei quali il trasferimento può essere iniziato da più entità. In questo caso il canale è di tipo shared, in quanto tutti i master devono aver la possibilità di effettuare trasferimenti. Per evitare sovrapposizioni è necessario che sia presente una politica di arbitraggio, secondo la quale viene scelto un master, nel caso in cui due o più master provino a trasmettere contemporaneamente. L'arbitro può essere un'entità a sè oppure essere distribuito su tutta la rete. Il protocollo base prevede che ad ogni richiesta (REQUEST) proveniente dai vari master, l'arbitro manda un segnale di autorizzazione (GRANT) ad uno di essi. Esistono diverse tecniche di allocazione del canale tra le quali il token passing, il collision detection e l'arbitraggio.

Allocazione Token Passing
Con questa tecnica il diritto di occupare il canale viene dato ciclicamente a tutti i master, anche senza che essi abbiano fatto una richiesta. Il passaggio viene fatto per mezzo di un testimone (token) virtuale, che viaggia da un master all'altro, secondo un percorso standard definito. La gestione del token è messa in atto da un'entità distribuita o centralizzata; il secondo sistema abbisogna anche di un meccanismo di indirizzamento. Il problema di questo metodo è un grande spreco di tempo, in quanto si generano molti cicli di interrogazione con risposta negativa.

Allocazione Collision Detection
Questa tecnica prevede che ogni master provi sempre a trasmettere le proprie informazioni, a patto che la linea sia libera. Nel caso in cui si generino delle collisioni i master si bloccano e riprovano a trasmettere dopo un tempo casuale. In questo modo si ha un sistema abbastanza efficiente, nel caso in cui non si sovraccarichi. Si ha in più il problema che non si sa quanto sarà il tempo massimo di trasmissione dell'informazione, in quanto potrebbe essere virtualmente infinito. Molto spesso si utilizzano meccanismi di accodamento in modo tale che i master occupino il canale il più possibile, senza portare quindi a problemi di sovraccarico di richieste di trasferimento.

Allocazione ad Arbitraggio
In questo caso è presente un arbitro, che gestisce una coda di richieste. Il metodo più semplice per gestirla è quella di una coda FIFO (First in - First out), nel senso che il primo a fare richiesta, sarà anche il primo ad avere l'autorizzazione a trasmettere. E' anche possibile avere un arbitro a priorità (priority arbiter), che gestisce una coda, in cui i pesi delle richieste variano a seconda della priorità acquisita dal master. Per evitare il fenomeno dell'attesa prolungata (starvation) è possibile attribuire priorità variabili a seconda del tempo di attesa (arbitraggio fair). Per fare in modo che non ci siano sovrapposizioni, si ha la necessità di abilitare un nuovo master solo dopo che il canale sia stato liberato. A tale scopo si usa un segnale di BUSBUSY, messo ad ON, nei momenti in cui non si può trasmettere.
I trasferimenti gestiti mediante arbitraggio centralizzato vengono logicamente divisi in tre parti:
-arbitraggio, nel quale si stabilisce chi dovrà iniziare il trasferimento
-indirizzamento, nel quale il MASTER prescelto acquisirà il diritto di trasmettere
-invio dati e successivo rilascio del canale
Per aumentare la velocità del protocollo è possibile condensare in pipeline due o tre di queste parti, in modo che esse vengano eseguite in parallelo, con immediato vantaggio in termini di tempo. L'unico svantaggio è che sono necessarie numerose linee per avere risultati accettabili.

Sincronizzazione e metastabilità
Un problema dell'arbitro è la sincronizzazione dei segnali asincroni. Infatti i segnali provenienti dall'esterno devono comunque essere gestiti da macchine che hanno variazioni dei fronti d'onda solo in corrispondenza dei colpi di clock. Nel caso in cui in un circuito non si ha la possibilità di definire in quale stato sarà il sistema, si dice che esso è in stato metastabile. Un metodo per ovviare a tale problema è quello di abilitare le uscite dei circuiti non in corrispondenza della richiesta esterna, ma leggermente in ritardo, cioè in corrispondenza del colpo di clock.


blog comments powered by Disqus
 

http://sartomiki.net/modules/mod_fuofb/assets/it/find-us-on-facebook-1.png

Follow me

Amici

Chi è online

 18 visitatori online

Siti amici

Banner

Notizie flash

Sono online un po' di appunti! A partire da calcolatori elettronici, proseguendo per introduzione alle reti telematiche e passando infine per sistemi operativi. Scrivetemi se trovate qualche errore... A breve saranno aggiunti nuovi appunti e completati quelli attuali!

PUBBLICITA'