Parte I - descrizione funzionale e modalità d'uso di ASIM
ASIM un Ambiente per la SImulazione dei sistemi a Microprocessore
Corso di Calcolatori Elettronici II
Prof. Antonino Mazzeo 1
Parte I - descrizione funzionale e modalità d'uso di ASIM
Parte I-descrizione funzionale e modalità d'uso di ASIM 2
Parte I - descrizione funzionale e modalità d'uso di ASIM
1 Generalità sul simulatore ASIM
ASIM (Ambiente SImulazione Microprocessori) è un ambiente didattico per la simulazione di sistemi a
microprocessore.
L'ambiente è stato sviluppato e si è evoluto a partire dal 1984, in seno al corso di Calcolatori elettronici II, con
la collaborazione degli studenti del corso e con il lavoro prezioso di numerosi tesisti di cui voglio ricordare
soltanto l'ing. L. Impagliazzo che ha dato un notevole contributo nel portare, ridisegnandolo strutturalmente, il
simulatore nell'ambiente Windows.
I sistemi da simulare sono caratterizzati da configurazioni di architetture hardware composte
dall'interconnessione di oggetti (CPU, memorie, bus, device e nodi) supportati in ASIM e su cui poter eseguire
uno o più programmi.
ASIM è un ambiente di simulazione che consente all’utente sia di definire proprie configurazioni sia di
aggiungere all'insieme originario di oggetti presenti nuovi componenti.
Poiché ASIM consente di specificare architetture di vario tipo (mono, multi processore, data flow, shared
memory, message passing, etc.) è possibile utilizzare l’ambiente oltre che come un laboratorio per lo studio di
sistemi a microprocessore, con l’impiego di programmazione in assembler, anche come un laboratorio per lo
studio dei livelli architetturali superiori di sistemi (S.O., multiprogrammazione di basso livello, ecc.). Ad esempio i
processori possono essere connessi con bus locali, globali e crossbar, oppure possono formare, insieme ad una
memoria, dei nodi di elaborazione; questi possono poi essere connessi tra loro con link per formare strutture ad
ipercubo o mesh.
Il limite alla complessità dei sistemi simulabili, in termini di componenti impiegati in una configurazione, è
imposto non dal programma, ma dalle capacità di memoria e velocità dell'elaboratore in uso.
Gli elementi non devono essere necessariamente processori, memorie o device, ma possono essere
dispositivi comunque complessi. Ad esempio, è possibile definire un elemento che simuli il comportamento di un
robot e presenti, per la parte che deve essere connessa al bus, dei registri in ingresso ed in uscita; se questi
registri rappresentano gli ingressi dei convertitori D/A verso gli attuatori e le uscite dei convertitori A/D dai sensori,
è possibile realizzare un controllo a microprocessore per il robot . I metodi per "costruire" una macchina o, più
propriamente, definire una configurazione, saranno presentati via via in questo capitolo quando saranno note le
funzioni e le caratteristiche degli elementi attualmente disponibili; l'aggiunta di nuovi elementi all'ambiente sarà
oggetto del successivo capitolo, richiedendo la conoscenza della struttura interna.
Il simulatore ASIM è scitto in C++, opera in ambiente Microsoft Windows di cui riflette l'organizzazione a
finestre e utilizza pienamente le classi offerte da MFC (Microsoft Foundation Classes) per l'interazione con
Windows stesso. Esso è organizzato come applicazione di tipo MDI (Multiple Document Interface) cioè
un'applicazione con documenti e viste multiple. L'applicazione MFC è caratterizzata da quattro classi principali:
• CasimApp CwinApp
• CasimDoc Cdocument
• CasimFrame CMDIChildWnd
• CasimView Cview
A destra della freccia sono indicate le classi di MFC da cui sono ereditate le quattro classi di ASIM. Per i
dettagli sull'architettura di ASIM di consulti il documento "ASIM Internal Design". 3
Parte I - descrizione funzionale e modalità d'uso di ASIM
La finestra principale (Fig. 1) delimita l'area di lavoro e presenta il menù da cui è possibile accedere a tutti i
comandi; la barra di fondo (barra di stato) indica il numero di eventi (clock) schedulati nella simulazione e il punto
di "break", relativamente al numero di clock da eseguire, cioè l'evento che determina l'arresto momentaneo della
simulazione. In ASIM, infatti, la simulazione viene scandita dai segnali di "clock" o "passi" inviati dallo
schedulatore a tutti gli elementi; l'intervallo minimo di simulazione è, quindi, il clock; il numero di azioni che ogni
dispositivo compie in un colpo di clock dipende dalle caratteristiche del dispositivo stesso.
Fig. 1-La finestra principale di ASIM
Ad ogni oggetto componente una configurazione da simulare è associata una finestra in cui vengono
presentati i dati caratteristici che lo caratterizzano, coincidenti in linea di massima con il modello di
programmazione del componente generico (ad es. il contenuto dei vari byte per una memoria o dei registri per
un processore). Una sola finestra alla volta è attiva, quella in evidenza, ed il menù sulla barra di controllo ad essa
associato viene specializzato per le specifiche funzioni dell'oggetto associato. La finestra corrente può essere
ridimensionata, spostata in ogni punto dell'area di lavoro e ridotta a icona. Quest'ultima possibilità va sempre
sfruttata, nel corso di una simulazione, quando non si è interessati alla visualizzazione dei dati di un particolare
elemento; ciò non solo perché si libera l'area di lavoro da finestre non utili, ma soprattutto perché si aumenta la
velocità della simulazione.
In ASIM tutti i numeri sono rappresentati in notazione esadecimale, uniche eccezioni sono le rappresentazioni
in binario per quei registri in cui i singoli bit assumono un particolare significato (si pensi al registro di stato di un
processore).
Le versioni 3.0 o superiori del programma ASIM offrono:
• la gestione di configurazioni multiple;
• l'accesso rapido alle configurazioni usate più di recente; 4
Parte I - descrizione funzionale e modalità d'uso di ASIM
• il lancio del programma con la configurazione desiderata già aperta chiamando il relativo file *.cfg dal
"FileManager" di Windows;
• la creazione di una configurazione mediante il meccanismo di "taglia e incolla" tipico di Windows;
• la visualizzazione completa dei dati relativi a ciascuna configurazione;
• la stampa di detti dati con font di caratteri, intestazione e piè di pagina selezionabili; numerazione
automatica delle pagine;
• l'anteprima di stampa delle pagine da inviare alla stampante;
• l'esecuzione veloce di una simulazione;
• la simulazione contemporanea di due configurazioni;
• la simulazione in background mentre si lavora su un'altra configurazione;
• l'accesso rapido ai comandi mediante ToolBar;
• l'help in linea su barra di stato;
• l'help da indice o dipendente dal contesto;
• l'accesso alla "Guida alla Guida" in Windows;
• la protezione da errori d'uso mediante il meccanismo di mascheramento dei comandi.
2 Il meccanismo di simulazione e l'architettura ad oggetti di ASIM
2.1 Il meccanismo di simulazione
Una simulazione in ASIM è caratterizzata dal disegno di una specifica configurazione di sistema a
microprocessori, in cui possono essere utilizzati gli oggetti messi a disposizione dall'ambiente. Tutti gli oggetti
inclusi in una configurazione entrano a far parte di una lista che il simulatore consulta per sviluppare i singoli
passi di simulazione o per effettuare controlli di consistenza delle interfacce dei vari oggetti, specialmente per
quel che concerne la loro interconnessione. Definita la configurazione della macchina da simulare (mediante
l'ausilio dell'editor di configurazione) si provvede a "costruirla" premendo il bottone di "costruzione" indicato in Fig.
2 e ad attivarla premendo il bottone di "accensione" (o l'equivalente voce ON/Reset del Menù Simulazione) della
macchina realizzata.
All'attivazione di una configurazione, ASIM esegue una serie di controlli sulle connessioni predisposte tra i
dispositivi. In particolare, la finestra principale invia un messaggio Windows (WM_RESET) a ciascun dispositivo
interessato e i cui dati caratterizzanti sono raccolti in un oggetto della lista e aspetta (messaggio bloccante) che
questo esegua i necessari controlli. Se il dispositivo trova qualche errore di configurazione, mostra una finestra di
dialogo per segnalarlo all'utente e restituisce un codice di errore alla finestra principale che blocca i controlli e
sospende la simulazione. Solo se non è stato restituito il codice di errore, la finestra principale invia lo stesso
messaggio ad un altro dispositivo e, solo se tutti i controlli per ogni componente danno esito positivo, abilita i
comandi per la simulazione (si vedano per i dettagli CMainWindow e CBaseWnd) nel sorgente. 5
Parte I - descrizione funzionale e modalità d'uso di ASIM
Bottone di Bottone di
Bottone di
Costruzio chiamata di
Restart Asimtool
Simulazion
Bottone di
Accensio Bottone di
Bottone di
Bottone di Fast
Run
Single Step Simulation
Simulation
Simulation
Fig. 2-La barra di controllo di ASIM
Analogo è anche il meccanismo di esecuzione di un passo di simulazione, ma con un'importante differenza: i
messaggi sono inviati in rapida successione e senza attendere risposta.
Per controllare l'esecuzione di un passo di simulazione la finestra principale utilizza due parametri: ClockHigh
è booleano ed è TRUE se un passo di simulazione è in corso, ChildBusy che indica in ogni istante il numero di
dispositivi che stanno eseguendo un passo di simulazione.
Alla richiesta di un passo di simulazione ClockHigh è posto a TRUE e la finestra principale invia a tutti i
dispositivi il messaggio WM_CLOCK senza attendere risposta (messaggio non bloccante); ChildBusy assume
un valore pari al numero di componenti che formano la configurazione, ad indicare il fatto che tutti i dispositivi
stanno IN PARALLELO eseguendo le operazioni previste dal passo di simulazione (operazioni che comportano
in generale un'interazione tra i vari dispositivi).
Quando un dispositivo ha completato l'esecuzione del passo di simulazione lo segnala alla finestra principale
inviando il messaggio WM_COMPL; la finestra principale decrementa ChildBusy. Quando tutti i dispositivi hanno
completato (ChildBusy è tornato a zero), ClockHigh è riportato a FALSE ed un nuovo passo di simulazione può
essere richiesto (in appendice CMainWnd::TraceProg riporta il codice richiesto per il lancio di un passo di
simulazione).
Ogni passo di simulazione prevede le operazioni appena descritte; ASIM consente oltre all'esecuzione di
passi singoli di simulazione (Single Step Simulation), uno ad ogni richiesta da parte dell'utente, anche
l'esecuzione in sequenza (Run Simulation) con cui è possibile eseguire il "trace" di una simulazione come
sequenza di passi e l'esecuzione in sequenza veloce (Fast Simulation) con cui la simulazione è eseguita senza
la visualizzazione del "trace" in sottofondo.
2.2 Classi di oggetti attualmente presenti in ASIM
Un sistema calcolatore è costituito da un insieme di componenti (processori, memorie, porti paralleli) fra loro
interconnessi. In Asim, ricorrendo alle proprietà delle classi C++, sono stati implementati modelli di oggetti
componenti da cui poter derivare, secondo il meccanismo di ereditarietà, specifici componenti. Questi, a
seconda dell'attività funzionale svolta e delle modalità di interfacciamento con altri dispositivi, sono stati
raggruppati in quattro classi. L'appartenenza di un dispositivo ad una delle classi predisposte è subordinata alla
verifica di almeno una proprietà che caratterizza la classe (nel ricavare le proprietà si è fatto un confronto tra il
modello proposto e le reali architetture dei sistemi esistenti). Sono descritte, di seguito, le classi allo stato
supportate dal simulatore. 6
Parte I - descrizione funzionale e modalità d'uso di ASIM
2.3 Dispositivi Processore e la classe CPU
Processore: un qualsiasi dispositivo che ha lo stato interno rappresentato dal contenuto dei suoi registri, più
un insieme di informazioni riguardanti il/i bus cui è connesso e le eventuali richieste di interruzioni pervenute;
• P1) può eseguire un programma contenuto in una memoria (interna o esterna al dispositivo stesso);
• P2) può accedere attraverso il/i bus cui è connesso ad una memoria (esterna) o ai registri di altri
dispositivi per eseguire operazioni di lettura o scrittura;
• P3) può servire e/o gestire interruzioni provenienti da altri dispositivi, eventualmente assegnando ad esse
un livello di priorità.
Oltre alle CPU, che sicuramente sono classificabili come processore in quanto godono di tutte le proprietà
suddette, rientrano in tale insieme anche i processori video e di IO ed i coprocessori matematici (godono delle
proprietà P1 e P2), i DMA (godono della proprietà P2), i "priority interrupt controller" (godono della proprietà P3)
ed infine strutture "hardware" per la gestione prioritaria delle interruzioni come il "daisy chaining" (godono della
proprietà P3).
Gli oggetti appartenenti a questo insieme sono i processori supportati in ASIM.
2.4 I dispositivi Nodo
Nodo: è un dispositivo il cui stato interno raccoglie informazioni relative alle connessioni con altri nodi ed ai
messaggi in transito da/verso questi;
N1) può consentire la connessione tra dispositivi dello stesso tipo;
N2) può gestire, come nodo intermedio, la connessione tra dispositivi dello stesso tipo, instradando la
comunicazione;
N3) può avere capacità autonome di elaborazione e trasformare (secondo una logica qualsiasi) i messaggi o
dati ricevuti.
N4) può essere connesso ad un bus/memoria.
2.5 Il dispositivo Bus/Memoria
Bus/memoria: un dispositivo il cui stato interno è caratterizzato dai valori assunti da un insieme molto ampio
di registri e/o da informazioni riguardanti i dispositivi che esso connette;
M1) può consentire a dispositivi di tipo processore di leggere o scrivere i suoi registri interni (la selezione
avviene in base all'indirizzo);
M2) può consentire a dispositivi di tipo processore di leggere o scrivere i registri dei dispositivi di tipo
device (la selezione avviene in base all'indirizzo);
M3) regola l'accesso di più dispositivi di tipo processore ai suoi registri ed ai device (in ogni istante al più un
accesso è in corso, gli altri processori devono attendere);
M4) gestisce la memoria fisica effettuando il “mapping” degli indirizzi virtuali negli indirizzi fisici. M5) può
consentire l'esecuzione di cicli non interrompibili di lettura-modifica; 7
Parte I - descrizione funzionale e modalità d'uso di ASIM
M6) può connettersi ad altri dispositivi dello stesso tipo sia per costruire accessi da un altro bus sia verso
un altro bus;
2.6 I dispositivi device
Device: tutti i dispositivi che non rientrano nelle tre precedenti classi.
D1) può essere connesso ad un bus/memoria in modo che un processore possa accedere ad esso;
D2) può essere in grado di generare delle interruzioni da inviare ad un processore; nel qual caso deve
essere connesso in qualche modo al processore;
D3) può essere connesso e comunicare con un altro device della stessa macchina o di un'altra macchina;
D4) può connettere dispositivi di tipo processore e bus/memoria a dispositivi del tipo bus/memoria.
8
Parte I - descrizione funzionale e modalità d'uso di ASIM
3 Uso di ASIM
3.1 I Menù della barra di Controllo di ASIM
3.1.1 Il menù "File". Fig. 3-Il Menù File
Dal menù File (Fig. 3) è possibile accedere alle tradizionali funzioni di apertura (nuovo o già esistente) di una
configurazione, alla stampa della stessa e all'abbandono di ASIM.
New consente di creare una nuova configurazione aprendo una finestra ed attivando per essa il menù Edit
(paragrafo 1.2); da questo menù sarà possibile selezionare tutti i comandi necessari a definire i
componenti della nuova configurazione. Poiché in ASIM 2.0 è possibile avere più configurazioni aperte
contemporaneamente, il comando New non chiude alcuna precedente configurazione.
Open apre un file di configurazione precedentemente salvato; non chiude alcuna precedente
configurazione.
Close chiude la configurazione corrente; se vi sono state modifiche chiede se il file deve essere
aggiornato.
Save, Save As salva il file di configurazione corrente; Save As consente di specificare un nuovo nome per
il file che diventa anche il nome della configurazione corrente.
Print attivo solo se la finestra corrente è una di quelle che mostra i dati della configurazione; il comando
consente di stampare questi dati con un set di caratteri selezionabile. Se è necessario utilizzare più di
una pagina per stampare i dati, la paginazione è automatica.
Page Setup consente di impostare l'intestazione ed il piè di pagina; tipicamente questi riportano
rispettivamente il nome del file di configurazione ed il numero di pagina.
Print Preview questo comando fornisce un'anteprima di stampa ovvero consente di vedere l'effetto della
stampa della configurazione corrente sulla stampante e con le impostazioni selezionate.
Print Setup imposta la stampante. 9
Parte I - descrizione funzionale e modalità d'uso di ASIM
1 .. 4 (Most Recent Used) nome dei file di configurazione usati più di recente; consente di aprire le
relative configurazioni immediatamente, senza passare per il comando Open.
Exit, esce da ASIM; per tutte le configurazioni modificate viene richiesto se s
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
-
Interazione macchine ambiente
-
Riassunto esame Sistemi per l'energia e l'ambiente, prof. Borello, libro consigliato Sistemi per l' ambiente,Caputo
-
Alpicoltura e coltivazioni erbacee in ambiente montano - Prati e pascoli
-
Ambiente della pedogenesi