Estratto del documento

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

Anteprima
Vedrai una selezione di 16 pagine su 73
Ambiente per la SImulazione dei sistemi a Microprocessore Pag. 1 Ambiente per la SImulazione dei sistemi a Microprocessore Pag. 2
Anteprima di 16 pagg. su 73.
Scarica il documento per vederlo tutto.
Ambiente per la SImulazione dei sistemi a Microprocessore Pag. 6
Anteprima di 16 pagg. su 73.
Scarica il documento per vederlo tutto.
Ambiente per la SImulazione dei sistemi a Microprocessore Pag. 11
Anteprima di 16 pagg. su 73.
Scarica il documento per vederlo tutto.
Ambiente per la SImulazione dei sistemi a Microprocessore Pag. 16
Anteprima di 16 pagg. su 73.
Scarica il documento per vederlo tutto.
Ambiente per la SImulazione dei sistemi a Microprocessore Pag. 21
Anteprima di 16 pagg. su 73.
Scarica il documento per vederlo tutto.
Ambiente per la SImulazione dei sistemi a Microprocessore Pag. 26
Anteprima di 16 pagg. su 73.
Scarica il documento per vederlo tutto.
Ambiente per la SImulazione dei sistemi a Microprocessore Pag. 31
Anteprima di 16 pagg. su 73.
Scarica il documento per vederlo tutto.
Ambiente per la SImulazione dei sistemi a Microprocessore Pag. 36
Anteprima di 16 pagg. su 73.
Scarica il documento per vederlo tutto.
Ambiente per la SImulazione dei sistemi a Microprocessore Pag. 41
Anteprima di 16 pagg. su 73.
Scarica il documento per vederlo tutto.
Ambiente per la SImulazione dei sistemi a Microprocessore Pag. 46
Anteprima di 16 pagg. su 73.
Scarica il documento per vederlo tutto.
Ambiente per la SImulazione dei sistemi a Microprocessore Pag. 51
Anteprima di 16 pagg. su 73.
Scarica il documento per vederlo tutto.
Ambiente per la SImulazione dei sistemi a Microprocessore Pag. 56
Anteprima di 16 pagg. su 73.
Scarica il documento per vederlo tutto.
Ambiente per la SImulazione dei sistemi a Microprocessore Pag. 61
Anteprima di 16 pagg. su 73.
Scarica il documento per vederlo tutto.
Ambiente per la SImulazione dei sistemi a Microprocessore Pag. 66
Anteprima di 16 pagg. su 73.
Scarica il documento per vederlo tutto.
Ambiente per la SImulazione dei sistemi a Microprocessore Pag. 71
1 su 73
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Ingegneria industriale e dell'informazione ING-IND/22 Scienza e tecnologia dei materiali

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher flaviael di informazioni apprese con la frequenza delle lezioni di Calcolatori Elettronici II e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli studi di Napoli Federico II o del prof Mazzeo Antonino.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community