|
Appunti informatica |
|
Visite: 1502 | Gradito: | [ Picolo appunti ] |
Leggi anche appunti:SchedulingScheduling Con Scheduler o Schedulatore si intende generalmente il La ricerca delle prestazioniLa ricerca delle prestazioni La contesa per ottenere una sempre maggiore Dispositivo TappoDispositivo Tappo La funzione di questo dispositivo e di rispedire in modo opportuno, |
I campi relativi alla configurazione di un bus sono così codificati:
Name Nome del bus a cui l'oggetto è connesso (opzionale);
Type Identificatore assoluto nella configurazione;
Address1 Valore iniziale dello spazio indirizzi gestito dall'oggetto;
Address2 Valore finale dello spazio indirizzi gestito Indirizzo 1' + 13;
BUS Identificatore di bus esterno connesso all'ingresso;
COM1 Identificatore dei dispositivi in grado di gestire le interruzioni, se 0 la linea è n.c.;
COM2 Identificatore dei dispositivi in grado di gestire le interruzioni, se 0 la linea è n.c.;
COM3 Identificatore dei dispositivi in grado di gestire le interruzioni, se 0 la linea è n.c.;
COM4 Identificatore dei dispositivi in grado di gestire le interruzioni, se 0 la linea è n.c.;
Tabella 4
Il dispositivo mette a disposizione dell'utente un generatore di interruzioni programmabile e quattro timer (può essere anche utilizzato per realizzare una macchina che preveda il multitasking, come supporto hardware per generare interruzioni ad intervalli di tempo prefissati, e per definire un meccanismo di 'interprocessors interrupts' ovvero un meccanismo che consente ad un processore di inviare un segnale di interruzione ad un altro).
Fig. 16-insieme di registri e finestra associata a 1to4INTGEN
Il dispositivo 1to4INTGEN ha dieci registri a sedici bit. I primi due sono dedicati al generatore di interruzioni, i rimanenti otto sono dedicati, a due a due, ai 4 timer. La Fig. 16 mostra l'insieme dei registri e la loro funzione e la finestra associata al dispositivo e gli indirizzi corrispondenti a ciascun registro (gli indirizzi sono dati come valore relativo all'indirizzo base).
Il 1to4INTGEN può essere connesso fino a quattro dispositivi in grado di gestire interruzioni (processori o priority interrupt controller). Un processore che vuole inviare un'interruzione ad un altro (o anche a se stesso) deve specificare il tipo di interruzione assegnando al registro I (indirizzo relativo 00) l'opportuno valore. Si ricordi che per un'interruzione va specificata la linea ed è possibile dare anche una priorità ed un vector number. Come mostrato in figura 16, le due cifre esadecimali del byte meno significativo specificano linea e priorità; le due cifre esadecimali del byte più significativo specificano il vector number. Una volta definita l'interruzione, per inviarla, occorre scrivere un opportuno valore nel registro C (indirizzo relativo 02); di questo registro, rappresentato in binario in figura 17, sono utilizzati solo i quattro bit meno significativi. Per inviare un'interruzione allo n-esimo dispositivo (n da 0 a 3) il bit n-esimo di C deve essere 1; è possibile inviare contemporaneamente la stessa interruzione anche a tutti e quattro i dispositivi connessi, ponendo ad 1 i quattro bit meno significativi di C.
Se ad una delle linee di uscita non è connesso alcun gestore delle interruzioni, l'interruzione non viene inviata; se più di una linea è connessa allo stesso dispositivo e vengono posti ad 1 i corrispondenti bit di C, vengono inviate tante interruzioni dello stesso tipo al gestore, quante sono le linee ad esso connesse (attivate con bit 1 in C).
Si osservi che per linea di uscita si vuole intendere un collegamento che può trasferire una generica interruzione verso un dispositivo in grado di gestirla.
I quattro timer svolgono tutti la stessa funzione, ma sono collegati a linee di uscita differenti: TR1 è connesso alla linea 1, TR2 alla linea 2 e così via. Ad ogni timer sono associate due word: la meno significativa consente di specificare l'interruzione (vale ancora quanto detto a proposito del registro I) e la più significativa definisce il valore iniziale del contatore; se V è la velocità del dispositivo (di default V = 1, ma può essere modificata come detto in 3.2.4), ogni V clock il valore del contatore si decrementa di 1; quando arriva a zero, viene inviata l'interruzione specificata al gestore di interruzioni connesso ed il contatore cessa di decrementarsi.
Poiché i dispositivi connessi alle linee di uscita del 1to4INTGEN non devono necessariamente essere diversi, è possibile associare allo stesso dispositivo anche tutti e quattro i timer.
I vari registri possono essere modificati, oltre che da programma, utilizzando il comando Modifica Valore del menù Device.
Per connettere un 1to4INTGEN ad una macchina da simulare occorre specificare i parametri nella finestra di dialogo (Fig. 16), cui si accede dal menù Configura con il comando Aggiungi Device. Il 'Nome elemento' è 1TO4INTGEN. 'Indirizzo 1' deve essere pari e rappresenta l'indirizzo del registro I (indirizzo relativo 00); tutti gli altri registri hanno indirizzo dato da 'Indirizzo 1' + indirizzo relativo (i valori dell'indirizzo relativo sono quelli di figura 10.b). 'Indirizzo 2' deve essere uguale ad 'Indirizzo 1' + 13 (numero esadecimale). In 'BUS' va l'Identificatore del bus cui il dispositivo è connesso. I parametri 'Com1', 'Com2', 'Com3' e 'Com4' (corrispondenti, rispettivamente, alle linee 1, 2, 3 e 4) consentono di specificare le connessioni verso i dispositivi in grado di gestire le interruzioni. Ad esempio 'Com2' è associato alla linea di uscita 2 e, assegnando ad esso il valore dell'Identificatore di un dispositivo, si connette questo dispositivo (che deve essere un gestore di interruzioni) alla linea 2 del 1to4INTGEN. Se non si vuole connettere una linea ad alcun dispositivo si deve porre zero nel corrispondente parametro; come già detto più linee possono essere connesse allo stesso dispositivo.
Appunti su: |
|