Il Simulatore
Il simulatore esegue segmanti di codice scritti in Micro-Assembly Language (Mic-1 mal).
In esso è possibile eseguire le microistruzioni e visualizzare l'intero ciclo del Data - Path.
Come avviare il simulator
Funzioni del simulatore
Menù File
Gestione dei file
Area ditesto Microprogram
Area nella quale può essere scritto o caricato il microprogramma
Area di testo Standard Output
Area nella quale è possibile notare le funzioni del simulatore, avviso di errori nel microprogramma,avvenuta compilazione,ecc.
Tasto Compile & Load
Ha la funzione di controllare la correttezza del microprogramma e inserire le microistruzioni nel Controll Store
Tasto Microstep
Esegue una microistruzione compiendo un intero ciclo del Data-Path.
Tasto Sub Cycle
Mostra tramite una animazione i quattro sottocicli del Data-Path.
Tasto Refresh
Pulisce il Frame principale dopo aver terminato l'esecuzione dei
sottocicli di un ciclo di clock tramite
Sub Cycle. N.B.: Non esegue alcun passo computazionale.
Tasto Start Again
Ha la funzione di rinizializare il simulatore lasciando inalterato il testo del microprogramma ed il Control Store.
Tasto Reset
Dispone il simulatore per l'esecuzione di un'altro microprogramma. Prima di premere il tasto è consigliato salvare il microprogramma.
Tasto Write Memory
Consente di scrivere dati nella memoria principale.
Tasto BitMicInstr
Mostra una finestra che contiene la microistruzione nel registro
MIR scritta complatamente in binario
Utilizzo del simulatore
Il simulatore possiede un area di testo nella quale e possibile scrivere il proprio programma in Mic-1 mal, oppure se si vuole , è possibile caricare (tramite il menu' File) un programma Mic-1 mal già precedentemente scritto.
A questo punto premere il tasto Compile & Load, che controlla la sintassi del microprogramma te traduce in Mic-1 binario e inserisce le micro instruzioni all'interno del Control Store (nel control store tali istruzioni sono ancora visualizzate in Mic-1 mal, ma concettualmente sono in binario).
Per eseguire la microistruzione puntata dal MicroProgramCounter (MPC) è possibile premere il tasto Micro Step, che esegue un ciclo completo del Data-Path, oppure premere il tasto Sub-Cycle , che ha la funzione di eseguire una microistruzione , mostrando, tramite un animazione, i quattro sottocicli del Data-Path .Una volta eseguito l'ultimo sottociclo è necessario premere il tasto Refresh per poter eseguire la microistruzione seguente, con Micro Step o Sub Cycle.
L'esecuzione del programma termina quando sono state eseguite tutte la microistruzioni.
Alcune regole di sintassi
Alcuni esempi di programmi possono chiarire le idee....
- la label corrispondente al ramo TRUE deve essere definita all'indirizzo else_label ORbit 0x100 ad esempio se la ELSE_LABEL e' definita all'indirizzo di memoria 0x30 allora la LABEL del ramo TRUE deve essere definita all'indirizzo 0x130.In sostanza cio` che fa il simulatore e' saltare all'indirizzo 0x130 se la condizione e' verificata.
// Definizioni preliminari
//Definizione label di default
.default goto def
// codice del programma che incrementa indefinitamente il valore
di PC
PC=1
ini PC=PC+1;goto ini
fine nop;
Adesso un esempio con salto condizionato..(Questo programma incrementa LV volte il registro PC)
.label ini 0x01
.label fine 0x101
.label def 0x100
.default goto def
PC=0;
ini PC=PC+1;
LV=LV-1;
Z=LV; if (Z) goto fine;else goto ini;
fine nop;
Questo simulatore è stato realizzato da
Moschetto Salvatore Dipartimento di Matematica e Informatica Università degli Studi di Catania , per il corso di Tecniche Speciali di Elaborazione dell' Informazione.
Il file Mic1.zip contiene una cartella , Sorg , nella quale è contenuto il codice sorgente del simulatore