Vous êtes sur la page 1sur 2

ARBITRAGGIO NEI BUS: Fino ad ora abbiamo supposto che ci fosse un solo master

del bus: la CPU. In realt i chip di I/O devono diventare master del bus per leggere e scrivere nella memoria ed anche per provocare degli interrupt. Anche i coprocessori possono aver bisogno di diventare master del bus. Cosa succede se due o pi dispositivi vogliono diventare master del bus contemporaneamente? E necessario stabilire un meccanismo di selezione, detto appunto arbitraggio, per decidere quale delle richieste concorrenti debba essere soddisfatta prima. Alcuni processori hanno larbitro inserito nel chip della CPU, mentre in altri un dispositivo separato. DAISY-CHAIN: Questo metodo prevede l'utilizzo di 3 segnali di controllo, detti BUS REQUEST, BUS GRANT, BUS BUSY. Tutti i device sono connessi ad una linea comune (BUS REQUEST) che, quando attiva, serve per indicare che una o pi unit hanno richiesto l'uso del bus. Tale linea pu essere asserita da uno o pi dispositivi in qualunque momento. Non c modo per larbitro di distinguere quanti dispositivi hanno fatto richiesta del bus. L'unit di controllo del bus risponde ad un BUS REQUEST se il segnale di BUS BUSY inattivo. Questa risposta non altro che un segnale posto sulla linea BUS GRANT. Una volta ricevuto un BUS GRANT , l'unit pu abilitare le sue connessioni al bus e attivare il BUS BUSY per la durata della trasmissione (la linea Bus Busy quindi asserita dallattuale master del bus). POLLING: Nel caso in cui si utilizzi la tecnica di polling la linea BUS GRANT viene sostituita da un insieme di linee, dette linee di "poll count", che sono connesse direttamente con tutte le unit del bus. In risposta ad un BUS REQUEST, il controllore del bus genera una sequenza di numeri sulle linee di poll count. Tali numeri (pensateli come gli indirizzi delle unit) vengono confrontati da ogni unit con il proprio indirizzo. Se una unit Ui che ha richiesto il bus si vede interrogata attiva il BUS BUSY. Il controllore del bus termina il processo di polling e Ui si connette al bus. RICHIESTE INDIPENDENTI: Questa tecnica di arbitraggio utilizza due linee separate BUS REQUEST e BUS GRANT per ogni unit che condivide il bus. In questo modo l'unit di controllo del bus ha un riscontro immediato di tutte le unit che hanno richiesto l'uso del bus ed quindi in grado di rispondere rapidamente alle richieste. La priorit determinata dall'unit di controllo e pu essere programmabile. Lo svantaggio il fatto che sono necessarie 2n linee, connesse all'unit di controllo, per controllare n unit. Il daisy-chaining ne richiedeva due, mentre il polling circa log2 n.

DMA: Il DMA (Direct Memory Access (accesso diretto alla memoria) un meccanismo che permette ad alcuni sottosistemi hardware di un computer (periferiche) di accedere direttamente alla memoria di sistema per scambiarsi dati, oppure leggere o scrivere, senza chiamare in causa la CPU per ogni byte trasferito tramite il meccanismo usuale dell'interrupt e la successiva richiesta di operazione desiderata, ma generando un singolo interrupt per blocco trasferito. Il DMA, tramite il rispettivo elemento hardware(DMAC), ha quindi il compito di gestire i dati passanti nel BUS permettendo a periferiche che lavorano a velocit diverse di comunicare senza assoggettare la CPU a un enorme carico di interrupt che ne interromperebbero continuamente il rispettivo ciclo di elaborazione.