L’interfaccia utente¶
L’interfaccia grafica EduMIPS64 si ispira a quella di WinMIPS64. Infatti, la finestra principale è identica, eccetto che per qualche menù.
La finestra principale di EduMIPS64 è caratterizzata da sei frame, che mostrano i differenti aspetti della simulazione. è inoltre presente una barra di stato, che ha il duplice scopo di mostrare il contenuto delle celle di memoria e dei registri quando vengono selezionati e di notificare all’utente che il simulatore è in esecuzione quando la simulazione è stata avviata ma la modalità verbose non è stata attivata.
La barra di stato mostra inoltre lo stato in cui si trova la CPU. Può mostrare uno dei quattro seguenti stati:
READY La CPU non ha caricato alcuna istruzione (nessun programma è stato caricato).
RUNNING La CPU sta eseguendo una serie di istruzioni.
STOPPING La CPU ha riscontrato un’istruzione di terminazione, e sta eseguendo le istruzioni già presenti nella pipeline prima di terminare il programma.
HALTED La CPU ha terminato l’esecuzione del programma.
Nota che lo stato della CPU è differente dallo stato del simulatore. Il simulatore può eseguire un numero finito di cicli di CPU e fermarsi, consentendo all’utente di ispezionare memoria e registri: in questo stato intermedio tra cicli di CPU, la CPU rimane comunque in stato RUNNING o STOPPING. Una volta che la CPU raggiunge lo stato HALTED, l’utente non può più eseguire alcun ciclo di CPU senza caricare nuovamente un programma (lo stesso, od uno differente).
Maggiori dettagli sono descritti nelle sezioni a seguire.
Finestre¶
L’interfaccia grafica è composta da sette finestre, sei delle quali sono visibili per default, mentre una (la finestra di I/O) è nascosta.
Cicli¶
La finestra Cicli mostra l’evoluzione del flusso di esecuzione nel tempo, visualizzando in ogni istante quali istruzioni sono nella pipeline, ed in quale stadio si trovano.
Registri¶
La finestra Registri mostra il contenuto di ciascun registro. Mediante un click col tasto sinistro del mouse è possibile vedere il loro valore decimale (con segno) nella barra di stato, mentre con un doppio click verrà aperta una finestra di dialogo che consentirà all’utente di cambiare il valore del registro
Statistics¶
La finestra Statistiche mostra alcune statistiche riguardanti l’esecuzione del programma.
Nota che durante l’ultimo ciclo di esecuzione il contatore dei cicli non viene incrementato, perché l’ultimo ciclo non è un vero ciclo di CPU ma solo uno pseudo-ciclo che ha l’unico compito di rimuovere l’ultima istruzione dalla pipeline ed incrementare il contatore delle istruzioni eseguite.
Pipeline¶
La finestra Pipeline mostra lo stato attuale della pipeline, visualizzando ciascuna istruzione con il suo stadio. I differenti colori evidenziano i vari stadi della pipeline stessa.
Memoria¶
La finestra Memoria mostra il contenuto delle celle di memoria, insieme alle etichette ed i commenti, tratti dal codice sorgente. Il contenuto delle celle di memoria, come per i registri, può essere modificato con un doppio click, e mediante un singolo click del mouse verrà mostrato il loro valore decimale nella barra di stato. La prima colonna mostra l’indirizzo esadecimale della cella di memoria, e la seconda il valore della cella stessa. Le altre colonne mostrano invece informazioni addizionali provenienti dal codice sorgente.
Codice¶
La finestra Codice visualizza le istruzioni caricate in memoria.. La prima colonna mostra l’indirizzo dell’istruzione, mentre la seconda mostra la rappresentazione esadecimale dell’istruzione stessa. Le altre colonne mostrano infine informazioni addizionali provenienti dal codice sorgente.
Input/Output¶
La finestra Input/Output fornisce un’interfaccia all’utente per la visualizzazione dell’output creato dai programmi mediante le SYSCALL 4 e 5. Attualmente non è utilizzata per l’input di dati, ed al suo posto viene utilizzata una finestra di dialogo che viene mostrata quando una SYSCALL 3 tenta di leggere dallo standard input, ma future versioni includeranno una casella di testo per l’input.
Finestre di dialogo¶
Le finestre di dialogo sono utilizzate da EduMIPS64 per interagire con l’utente in vari modi. Ecco un riassunto delle più importanti:
Impostazioni¶
Nella finestra di configurazione possono essere configurati vari aspetti del simulatore. La selezione del tasto «OK» causa il salvataggio delle modifiche apportate alla configurazione, mentre il tasto «Cancel» (o la semplice chiusura della finestra) comporta il mancato salvataggiu delle stesse.
La sezione «Impostazioni generali» consente di configurare il forwarding ed il numero di passi da effettuare nella modalità Cicli multipli.
La sezione «Comportamento» permette di abilitare o disabilitare gli avvisi durante la fase di parsing, l’opzione «sincronizza la GUI con la CPU nell’esecuzione multi step», quando abilitata, sincronizzerà lo stato grafico delle finestre con lo stato interno del simulatore. Ciò implicherà una simulazione più lenta, ma con la possibilità di avere un resoconto grafico esplicito di ciò che sta avvenendo durante la simulazione. L’opzione «intervallo tra i cicli», qualora sia abilitata, influenzerà il numero di millisecondi che il simulatore dovrà attendere prima di cominciare un nuovo ciclo. Tali opzioni hanno effetto solo quando la simulazione è avviata utilizzando le opzioni «Completa» o «Cicli multipli» dal menu Esegui.
Le ultime due opzioni stabiliscono il comportamento del simulatore quando si verifica un’eccezione sincrona. è importante notare che se le eccezioni sincrone sono mascherate, non succederà nulla, anche se l’opzione «Termina se si verifica un’eccezione sincrona» è abilitata. Se le eccezioni non sono mascherate e tale opzione è abilitata, apparirà una finestra di dialogo, e la simulazione sarà fermata non appena tale finestra verrà chiusa.
L’ultima sezione permette di modificare l’aspetto dell’interfaccia utente. Ci sono opzioni per cambiare i colori associati ai diversi stadi della pipeline, un’opzione per scegliere se mostrare i valori delle celle di memoria come long o come double ed un’opzione per impostare la dimensione del font dell’interfaccia.
Nota: lo scaling proporzionale dell’interfaccia rispetto alla dimensione del font non funziona benissimo, ma dovrebbe essere sufficiente a rendere il simulatore utilizzabile su schermi ad alta risoluzione (e.g., 4k).
Dinero Frontend¶
La finestra di dialogo Dinero Frontend consente di avviare un processo DineroIV con il trace file generato internamente mediante l’esecuzione del programma. Nella prima casella di testo c’è il percorso dell’eseguibile DineroIV, e nella seconda devono essere inseriti i parametri opportuni.
La sezione più in basso contiene l’output del processo DineroIV, dal quale è possibile prelevare i dati di cui si necessita.
Aiuto¶
La finestra di Aiuto contiene il manuale del simulatore, che è una copia HTML del presente documento.
Opzioni da riga di comando¶
Sono disponibili quattro opzioni da linea di comando. Esse sono descritte di seguito, con il nome per esteso scritto tra parentesi. Nomi abbreviati e per esteso possono essere utilizzati indifferentemente.
-v (–version) stampa la versione del simulatore ed esce.
-h (–help) mostra un messaggio di aiuto per le opzioni da linea di comando ed esce.
-f (–file) filename apre filename nel simulatore.
-r (–reset) ripristina i valori predefiniti per tutti i parametri di configurazione
-d (–debug) attiva la modalità di debugging.
-hl (–headless) Esegue EduMIPS64 in modalità headless (senza interfaccia grafica)
Nella modalità di debugging è disponibile una nuova finestra, la finestra Debug, che mostra il resoconto delle attività interne di EduMIPS64. Tale finestra non è utile per l’utente finale, è stata infatti ideata per poter essere utilizzata dagli sviluppatori di EduMIPS64.