Utilisation de la machine virtuelle Mic1
Introduction
Le simulateur de micro-architecture Mic1 est un programme, écrit en java, qui offre une
interface graphique permettant d'observer l'interprétation d'un programme contenant des
instructions du set d'architecture par un programme du niveau micro-architecture. En clair on
peut voir comment les commandes que l'on a crées sont réalisées par la machine au niveau des
micro-instructions.
Installation
Après avoir téléchargé la version adéquate depuis l'internet (PC, Sun; à l'heure actuelle les
guides d'installation ne prennent pas en compte les Mac) et décompressé les fichiers, il suffit
de suivre les indications du document HTML "user_guide" afin d'effectuer l'installation selon
le schéma propre au système d'exploitation sur lequel vous travaillez.
Conseil: pour les utilisateurs de Windows, faites afficher les extensions des fichiers, ceci vous
facilitera le travail lorsque vous aurez à modifier le fichier d'environnement ainsi que lors des
tests du programme.
En suivant scrupuleusement les instructions d'installations aucun problème ne devrait
survenir.
Note: L'utilisation de Mic1 suppose l'installation de JDK (Java Development Kit) qui se
télécharge gratuitement depuis le site de Sun pour n'importe quelle plate-forme.
Utilisation
Une fois l'installation achevée, exécutez les tests de contrôle prévus dans le point 4 du
document HTML "user_guide". Vous avez le choix soit de le laissez tournez à vitesse
normale, soit pas à pas, micro-instructions par micro-instruction.
Principes des programmes
Fonctionnant en Java, la programmation avec Mic1 est fondamentalement différente de ce qui
est fait avec Scheme notamment, en ce sens qu'au lieu d'écrire un programme et de l'exécuter,
il faut passer par une phase intermédiaire dite de compilation et ensuite d'exécution.
C'est quoi la compilation?
Lorsque vous écrivez un programme en Scheme, vous le sélectionnez et vous l'exécutez. Si
une erreur survient à cause d'une faute de parenthèses l'exécution s'arrête et un message vous
indique la cause et l'endroit de l'erreur. Ce n'est qu'une fois cette erreur résolue que vous
pouvez exécuter sans incident votre programme.
Toutefois dans la plupart des autres langages on passe par une phase intermédiaire: la
compilation. Le principe est le suivant, on écrit son programme dans le langage désiré (C,
Java ou autre), une fois le programme achevé on le compile, c'est à dire qu'on va le soumettre
à un compilateur qui va se charger de contrôler que le programme est correcte tant du point de
vu de la syntaxe que de la grammaire utilisée et qui va tenter de détecter d'éventuels conflits.
Si il y a une erreur, la compilation s'arrête et le compilateur nous indique l'erreur à corriger.
Seulement une fois que le programme et correcte (conforme) au langage, la compilation
pourra se dérouler sans accroc. Typiquement, le programme compilé ayant été "traduit" dans
la langue de la machine, vous ne pouvez pas le lire avec un éditeur de texte, vous n'obtenez
qu'une suite de symbole sans aucun sens. La compilation produit un fichier dit "compilé" que
l'on peut exécuter au moyen d'une commande. Quant à savoir si le programme fait exactement
ce qui est prévu, ça c'est une autre histoire. En effet, on peut très bien écrire un programme
parfaitement correct qui ne fait pas du tout ce qui était prévu, mais c'est là une des joies
principales de l'informatique que de découvrir pourquoi.
Exemple
Prenons le cas de Java pour citer un langage assez populaire.
Un programme Java est caractérisé par l'extension ".java" (mon_programme.java). A la
compilation, on utilise le compilateur du langage Java, c'est à dire javac (pour Java Compiler)
dans une commande de la forme " javac mon_programme.java ". Cette commande produit un
fichier de même nom que le fichier Java mais avec l'extension ".class"
(mon_programme.class) et c'est finalement ce fichier ".class" qui est exécuté à l'aide de la
commande "java" propre au langage Java (java mon_programme / lorsque le fichier ".class" a
été créé on n'a plus besoin de rajouter l'extension en appelant "java mon_programme.class"
mais bon ce n'est pas là le propos.)
Qu'en est-il pour Mic1?
Avec ce programme, vous avez la possibilité soit d'influencer le programme d'instructions que
vous créez, soit d'influencer l'interprétation du programme que vous avez créé.
Pour simplifier vous pouvez soit créez un programme (appelé macro-programme), le
compiler et voir ce que donne son interprétation avec les micro-instructions (appelés micro-
programme), soit créer vous même vos propres micro-instructions et voir comment elles
interprètent un macro-programme.
On a donc logiquement deux compilateurs différents, un pour compiler les macro-
programmes et un autre pour compiler les micro-programmes.
ce sont les compilateurs suivants (qui se trouvent ainsi que toutes les sources dans le
téléchargement du programme Mic1):
ijvmasm qui assemble (une certaine sorte de compilation) un programme " .jas " en un
programme " .ijvm "
Note: dans ce programme il faut donner explicitement l'extension que l'on veut voir figurer au
fichier compilé car contrairement à Java par exemple il ne le fait pas automatiquement, Voir
document HTML "user_guide" point 5 et 6 ainsi que le point 2 sur la signification des
extensions.
mic1asm qui assemble un "micro-programme" " .mal " en un programme " .mic1 ". Voir
document HTML "user_guide" point 7.
L'interprétation quant à elle se fait au moyen de l'interface graphique mic1sim.
Pour résumer on peut faire le schéma suivant:
ijvmasm
Interprète
mic1asm
Les modifications pouvant intervenir à l'un des deux niveaux, soit aux deux.
.ijvm.jas
.mic1.mal
1 / 3 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !