Sartomiki.net

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

Sistemi Multi-Slave

E-mail Stampa PDF
Valutazione attuale: / 0
ScarsoOttimo 
Sistemi Multi-Slave
Nel caso di sistemi Multi-Slave il master può scambiare informazioni simultaneamente con diversi slave connessi sul canale di comunicazione. E' necessario un sistema di "indirizzamento", che permetta al master di scegliere a chi inviare le informazioni. Il sistema più semplice, ma anche il più oneroso e meno modulare, è costruito collegando una serie di linee dedicate al master, in modo che esso selezioni ciascun ricevitore tramite ognuna di esse. Nel caso in cui si supponga di non dover mai comunicare contemporaneamente con slave diversi si può cablare il sistema codificando le linee di indirizzamento: con questo metodo sono necessari M collegamenti master-slave per indirizzare 2^M slave. In questo caso è necessario introdurre anche un segnale di validazione (ADDVAL), che permetta di far capire agli slave quando sulle linee è presente un indirizzo da prendere in considerazione. Il segnale di validazione può essere composto o da un fronte di salita, o da un fronte di discesa o anche per mezzo di un impulso.
Utilizzando questo metodo ogni slave deve avere al proprio interno una logica di decodificazione, che gli permetta di capire quando esso è selezionato e che produca un segnale SELECT, che indichi al master quando esso è pronto. Molto spesso si utilizzano sistemi misti, in cui quindi è presente sia una parte codificata e una parte non codificata.
Le soluzioni circuitali che permetto di realizzare una decodifica corretta sono composti da una semplice porta AND con gli ingressi negati per gli 0 logici. Questo sistema risulta però molto poco modulare e si usa quindi normalmente un comparatore di uguaglianza impostabile dall'esterno, con l'unica limitazione di non poter essere implementato in sistemi ad indirizzamento misto. Esiste quindi una terza via, cioè quella di utilizzare un vero e proprio decoder.
Nel caso in cui siano presenti più linee non gestibili direttamente da un solo decoder si possono utilizzare decoder connessi a cascata (Ripple decoder) oppure da una porta AND collegata a più decoder (Look-ahead decoder). Un ultimo sistema di soluzione circuitabile è mediante una memoria non volatile, programmata opportunamente (PROM, EPROM...).
Nei casi reali (come ad esempio nelle memorie) è probabile che ci siano più schede con all'interno un numero diverso di celle, in questo caso è quindi comodo pensare che ci siano almeno due livelli di selezione dell'indirizzo, uno per selezionare la scheda (decodifica di scheda) e un altro che stabilisca a quale cella si riferisca (selezione multipla).

Protocolli indirizzi-dati
Come detto nei sistemi Multi-Slave si ha la necessità di distinguere due tipi di informazioni, in quanto sulle linee viaggiano sia DATI che INDIRIZZI. E' quindi necessario distinguere due fasi distinte nel trasferimento, la prima di selezione (fase indirizzi), la seconda di trasmissione vera e propria (fase dati). Per entrambe le fasi si possono utilizzare i protocolli sincroni e asincroni descritti prima, anche se nei casi reali non sono necessari i protocolli asincroni per la fase indirizzi. Si semplifica quindi molto il protocollo:
-validazione indirizzi (ADDSTB ON)
-validazione dati (DATASTB ON)
-accettazione dati (ACK ON)
-fine trasmissione dati (DATASTB OFF)
-fine trasmissione indirizzi (ADDSTB OFF)
-predisposizione a nuova ricezione (ACK OFF)
Normalmente il protocollo di trasmissione dati è di tipo semisincrono, in quanto è presente un segnale di clock, che aiuta MASTER e SLAVE a sincronizzare le richieste e le notifiche. Un altro problema è il dove trasmettere gli indirizzi. Se si usano linee separate per indirizzi e dati, si ha un numero di linee non indifferenti, ma è possibile ridurre il numero di linee facendo passare dati e indirizzi sulle stesse linee, in quanto le informazioni risultano utili in momenti distinti. Questa tecnica viene chiamata TDM e può essere messa in pratica utilizzando la coppia STB-ACK per identificare il tipo di trasferimento.
Il sistema per quantificare le prestazioni è il throughput, che indica il numero di informazioni dati scambiate nell'unità di tempo. throughput = dimensione del canale (W) * numero di trasferimenti al secondo (B). Per incrementare il throughput si può quindi aumentare il parallelismo, oppure utilizzare un sistema a pipeline, nel senso che si possono trattare in maniera differente i trasferimenti relativi a blocchi contigui di celle (non si ritrasmette l'indirizzo), oppure effettuando contemporaneamente la trasmissione dei dati e la selezione della cella successiva. Un altro metodo utilizzato per aumentare il throughput (utile per applicazioni speciali) è quello di read-modify-write, che consiste nel leggere un dato da una cella e riscriverlo (magari modificandolo).


blog comments powered by Disqus
 

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

Follow me

Amici

Chi è online

 9 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'