|
Appunti informatica |
|
Visite: 1371 | Gradito: | [ Picolo appunti ] |
Leggi anche appunti:Mini discMini disc Il MiniDisc fu sviluppato con l'idea di rimpiazzare la vecchia cassetta La ricerca delle prestazioniLa ricerca delle prestazioni La contesa per ottenere una sempre maggiore Il dispositivo 1TO4BusInterfaceIl dispositivo 1TO4BusInterface I campi relativi alla configurazione di un bus |
Un qualunque processore in ASIM è descritto mediante le seguenti informazioni codificate:
Name Nome dell'oggetto processore (chiave)
Identif Intero che identifica univocamente l'oggetto CPU in una configurazione
Type Identificatore dell'insieme di appartenenza dello specifico oggetto
Address1 Inizializzazione User Stack Pointer (USP)
Address2 Inizializzazione Supervisor Stack Pointer (SSP)
BUS Identificatore del bus cui è connesso il processore
COM1 n.s.
COM2 n.s.
COM3 n.s.
COM4 n.s.
Tabella 1
Allo stato l'unico processore attualmente supportato in Asim è il processore MC68000 per il quale è fornito un assemblatore assoluto (asm.exe) che produce file oggetto e di listing compatibili con ASIM (non è previsto l'uso di un linker, data la finalità didattica del prodotto). Per quanto riguarda le caratteristiche e l'assembly di questo processore si rimanda ai manuali Motorola e al manuale del linguaggio assembler e dell'ambiente ASIMtool.
L'assemblatore, a partire da un file simbolico *.a68 genera l'assoluto *.h68 in linguaggio macchina nel formato S-File di Motorola e un file listing *.lis necessario al simulatore per effettuare il trace simbolico del programma durante il processo di simulazione.
Quando la finestra corrente è quella associata ad un 68000, tra le varie voci di menù compare anche quella Processore grazie alla quale è possibile accedere a tutti i comandi precedentemente descritti.
Per il 68000 viene rappresentato (a richiesta con Mostra Registri), oltre a tutti i registri interni, anche il numero di clock macchina che sono stati necessari per eseguire tutte le istruzioni dall'inizio fino al punto corrente della simulazione (i valori dei cicli di clock impiegati per eseguire ciascun istruzione sono stati tratti dal manuale del processore. Sebbene questo numero non tenga conto di eventuali cicli di attesa per l'accesso in memoria, moltiplicandolo per il periodo di clock della macchina reale che si sta simulando, si ottiene una buona stima dei tempi di elaborazione 'reali' di un dato programma.
Per inserire in una configurazione un 68000 occorre
selezionare dal menù Configura il
comando Aggiungi CPU e specificare
nella finestra di dialogo (Fig.
11) nel campo nome: M68000. essere indicati in
corrispondenza del parametro 'Indirizzo 1' l'indirizzo del puntatore
allo stack utente; in corrispondenza di 'Indirizzo 2' l'indirizzo del
puntatore allo stack supervisore; in corrispondenza di 'BUS' l'identificatore
del bus o memoria cui è connesso il processore.
Fig. 11 Finestra di configurazione del processore M68000
Gli altri parametri possono essere lasciati al valore zero non avendo alcun significato.
Si osservi che è di fondamentale importanza che all'indirizzo del puntatore allo stack supervisore corrisponda effettivamente una locazione in qualche memoria accessibile da parte del processore; se così non fosse, durante la simulazione, in seguito ad un'operazione che richiede l'accesso a tale indirizzo il bus genera un 'bus error' e a cui il processore reagisce con il tentativo di salvataggio di alcuni registri sullo stack supervisore; si innesca quindi un meccanismo che blocca il sistema e lo pone in una condizione di stallo da cui non è possibile uscire se non con un 'reset'. Eventi anomali come 'bus error', 'istruzione illegale', 'violazione di privilegio' vengono sempre segnalati dal programma.
Per comprendere il significato del parametro 'BUS' occorre tener presente che in ASIM, così come accade per una macchina reale, un processore per poter accedere ad una memoria o ad un qualsiasi dispositivo deve essere connesso ad un bus: specificando il valore di 'BUS' si predispone questo collegamento che sarà realizzato e verificato all'atto dell'accensione logica della macchina.
Il valore dato all'identificatore viene utilizzato nella definizione dei parametri di un device quando questi deve avere una linea di interruzione connessa al processore. Il meccanismo interno usato da ASIM per la Gestione delle interruzioni è presentato successivamente, tuttavia, una descrizione generale è indispensabile per poter definire correttamente alcuni parametri dei device.
Un device può essere connesso ad un dispositivo in grado di gestire un segnale di interruzione, quale può essere un processore o un priority interrup controller; la connessione avviene su una linea di interruzione ed ASIM ne mette a disposizione fino a quindici (da 1 a F esadecimale), ma il 68000 ha solo sette livelli è quindi ad esso non possono essere connesse linee di interruzione oltre la settima. Le richieste di interruzione vengono elaborate in maniera dipendente dal dispositivo; il 68000 dà sempre spazio a quelle di livello superiore al corrente, che è indicato nel registro di stato. Oltre alle linee di interruzione ASIM mette a disposizione il supporto per la gestione delle interruzioni vettorizzate; sono disponibili 256 vettori di interruzione (da 0 a FF esadecimale); si ricordi però che per il 68000 i primi 63 sono riservati e non vanno utilizzati. Per un device che usa le interruzioni vettorizzate vanno specificati quindi linea e vettore; quando il processore accetterà l'interruzione eseguirà l'istruzione corrispondente a tale vettore. Infine il meccanismo più complesso predisposto da ASIM è quello che fa uso, oltre che dei vettori, anche delle priorità su di una stessa linea: può infatti accadere che dispositivi connessi alla stessa linea generino interruzioni contemporaneamente, l'ordine può essere stabilito allora via software dalla routine di gestione delle interruzioni o via hardware (ad esempio con daisy chaining); quello predisposto è equivalente ad un meccanismo hardware con sedici gradi (da 0 a F esad.) di priorità per linea che fa in modo che, a parità di livello, venga servita prima l'interruzione a maggior priorità.
Appunti su: |
|