|
Appunti informatica |
|
Visite: 1442 | Gradito: | [ Picolo appunti ] |
Leggi anche appunti:Il dispositivo di collegamento tra nodi: ELABNODEIl dispositivo di collegamento tra nodi: ELABNODE Con i dispositivi MMU/BUS SchedulingScheduling Con Scheduler o Schedulatore si intende generalmente il La gestione della memoriaLa gestione della memoria Quando un processo diventa Running, è necessario |
Con i dispositivi MMU/BUS e 1to4BUSINT, si è mostrato come in ASIM sia possibile costruire macchine con più processori; questi processori possono interagire tra loro scambiandosi informazioni e dati utilizzando aree di memoria comune, cioè rispettando il cosiddetto 'modello a memoria comune'. Esistono tipi di architetture per macchine MIMD che fanno invece riferimento ad un 'modello a scambio di messaggi' e sono realizzate utilizzando nodi di elaborazione; questi sono costituiti tipicamente da processore e memoria e sono connessi attraverso un certo numero di link; ogni comunicazione tra i vari processori avviene attraverso la rete costituta da questi link; le tipologie più comuni sono, ad esempio, quelle ad ipercubo e mesh. Il dispositivo in esame è stato introdotto per simulare con ASIM anche questo tipo di architetture.
ELABNODE è un dispositivo che presenta quattro link in ingresso(I1, I2, I3, I4) e quattro in uscita (O1, O2, O3, O4); ad ogni link è associato un registro a trentadue bit che è indicato con lo stesso nome del link. Un'operazione di trasferimento dati consiste nell'inviare o ricevere il contenuto di uno di questi registri. La sincronizzazione nel trasferimento di un dato avviene sfruttando un registro di controllo/stato (CN) ad otto bit. I quattro bit meno significativi sono associati ai link in ingresso e, se alti, assumono il significato di dato pronto; i quattro bit più significativi sono associati ai link in uscita e, se alti, assumono il significato di link occupato.
ELABNODE può essere connesso ad un bus, occupando gli indirizzi da FFFFFFEF a FFFFFFFF; al primo indirizzo si può accedere solo con un'operazione di scrittura o lettura sul byte e corrisponde al registro CN; Inoltre è possibile accedere, solo con un'operazione di scrittura o lettura su doppia parola, agli indirizzi: FFFFFFF0, FFFFFFF4, FFFFFFF8, FFFFFFFC; a questi corrispondono, in lettura, i registri I1, I2, I3, I4 ed, in scrittura, i registri O1, O2, O3, O4.
ELABNODE può essere connesso anche ad un dispositivo per la gestione delle interruzioni; ad ogni link di ingresso corrisponde una differente linea di interruzione. Quando, ad esempio, sul link I1 arriva un dato, il bit 0 (corrispondente ad I1) del registro CN va ad 1 e viene inviata l'interruzione prevista; quando il processore legge il dato da I1, ELABNODE segnala al mittente l' avvenuta ricezione e quindi la disponibilità a ricevere un nuovo dato. Inoltre, riporta a 0 il bit 0 di CN.
Per inviare un dato, ad esempio sul link O1, il processore deve innanzitutto controllare che il link non sia occupato da un precedente trasferimento, cioè deve verificare che il bit 4 (corrispondente ad O1) di CN non sia 1; poi può scrivere il dato che ELABNODE provvede ad inviare dopo aver posto ad 1 il bit 4 di CN; tale bit torna a 0 a trasferimento completato segnalando così la disponibilità ad inviare un nuovo dato.
Vi sono due possibili modalità nell'invio dei dati: la prima tiene conto della tempificazione e prevede l'invio del dato durante il primo colpo di clock successivo alla scrittura (questo tipo di collegamento sarà detto, nel seguito, 'tempificato'); la seconda non tiene conto della tempificazione e prevede l' invio del dato immediatamente dopo l'operazione di scrittura. Nel primo caso è possibile, variando la velocità con il comando Velocità del menù Schedulatore, simulare link con diverso tempo di trasferimento.
La finestra associata ad ELABNODE (Fig. 1) mostra il contenuto di tutti i registri; questi possono essere direttamente modificati con il comando Modifica Valore del menù Nodo. All'accensione della macchina da simulare, tutti i registri sono al valore zero.
Fig. 1
Per costruire un nodo di elaborazione occorre definire almeno tre componenti: una CPU, un MMU/BUS ed un ELABNODE; si è detto almeno tre, perché nulla vieta di connettere al bus un numero qualsiasi di dispositivi anche se, tipicamente, il nodo di elaborazione è costituito da processore, memoria e link di connessione. Poiché gli indirizzi associati ai registri di ELABNODE sono fissi, non è possibile connettere ad un bus più di un dispositivo del tipo in esame. Si è già visto come definire CPU e MMU/BUS; per quanto riguarda ELABNODE occorre specificare i parametri che compaiono in una finestra di dialogo del tipo di quella mostrata in figura 3 cui si accede selezionando il comando Aggiungi Nodo del menù Configura.
Il 'Nome Elemento' è ovviamente ELABNODE. 'Indirizzo 1' e 'Indirizzo 2' definiscono le interruzioni connesse ai link in questo modo:
quattro cifre meno significative di 'Indirizzo 1' -> interruzione associata ad I1;
quattro cifre più significative di 'Indirizzo 1' -> interruzione associata ad I2;
quattro cifre meno significative di 'Indirizzo 2' -> interruzione associata ad I3;
quattro cifre più significative di 'Indirizzo 2' -> interruzione associata ad I4.
Il significato delle quattro cifre è quello più volte presentato.
'BUS' consente di definire il bus (due cifre meno significative) e il gestore delle interruzioni (due cifre più significative) cui ELABNODE è collegato.
'Com1', 'Com2', 'Com3', 'Com4' consentono di definire i dispositivi cui sono collegati i quattro link di uscita. Ad esempio, le due cifre meno significative di 'Com1' sono destinate all'Identificatore del dispositivo da collegare ad O1; la terza cifra di 'Com1' indica a quale link di ingresso del dispositivo a valle è connesso O1; i valori ammessi sono:
O1 è connesso al link I1 del dispositivo a valle;
O1 è connesso al link I2 del dispositivo a valle;
O1 è connesso al link I3 del dispositivo a valle;
O1 è connesso al link I4 del dispositivo a valle.
Infine la cifra più significativa di 'Com1' consente di specificare se il collegamento è tempificato (cifra = 1) o non tempificato (cifra = 0).
Per 'Com2', 'Com3' e 'Com4' vale quanto detto per 'Com1' con riferimento, anziché ad O1, ad O2, O3 ed O4 rispettivamente.
Nell'attuale versione di ASIM i dispositivi collegabili ad un link sono ELABNODE e ARTMNODE.
Appunti su: |
|