Projet C - FAQ Simulateur MIPS : Différence entre versions

De Ensiwiki
Aller à : navigation, rechercher
Ligne 1 : Ligne 1 :
 
 
Cette page tente de rassembler les questions les plus fréquentes pour le sujet « Simulateur MIPS ». Vous pouvez ajouter vos questions en bas de la page, et éventuellement répondre aux questions de vos collègues, tant que vous le faites en respectant les règles du jeu : ne donnez pas de solutions explicites au sujet, n'échangez pas de code, et en cas de doutes, demandez à vos enseignants !
 
Cette page tente de rassembler les questions les plus fréquentes pour le sujet « Simulateur MIPS ». Vous pouvez ajouter vos questions en bas de la page, et éventuellement répondre aux questions de vos collègues, tant que vous le faites en respectant les règles du jeu : ne donnez pas de solutions explicites au sujet, n'échangez pas de code, et en cas de doutes, demandez à vos enseignants !
  
 
= Encadrants =
 
= Encadrants =
Voici la liste des encadrants pour le sujet MIPS, auxquels vous pourrez poser vos questions pendant les séances encadrées (au premier étage) :  
+
Voici la liste des encadrants pour le sujet MIPS, auxquels vous pourrez poser vos questions pendant les séances encadrées (permanence E101) :  
{|
+
|-
+
| [[Fichier:Elisei_Frederic.jpg|100px]]
+
| [[Fichier:Frederic_Wagner.jpg|100px]]
+
| [[Fichier:Luc_Michel.jpg|100px]]
+
| [[Fichier:Ludovic_Jacquin.jpg|100px]]
+
| [[Fichier:Petit_Loic.jpg|100px]]
+
|-
+
| Frédéric Elisei
+
| Frédéric Wagner
+
| Luc Michel
+
| Ludovic Jacquin
+
| Loïc Petit
+
|}
+
  
= Soutenances =
+
*Florent Bouchez-Tichadou
 
+
*Matthieu Chabanas
Les créneaux de soutenances sont désormais accessibles sur TEIDE.
+
*Thomas Dias Alves
Les soutenances auront lieu dans les salles E106, E108 et E101.
+
*Julie Dumas
Deux groupes seront en général évalués simultanément :
+
*Nicolas Kox
chaque soutenance se décompose en trois parties :
+
*Duco Van-Amstel
 
+
* présentation du travail réalisé, points forts, points faibles, organisation du travail, organisation du code... : 15 minutes : ne pas re-présenter le projet MIPS en lui même.
+
* modification à réaliser : 25 minutes : on vous demande de rajouter qqch dans les simulateur
+
* tests : présentation des modifications réalisées + tests sur la validité du simulateur. Attendez-vous à avoir un certain nombre de tests automatiques (genre "./simips < ./commandes_tests")).
+
 
+
Un groupe présente donc pendant que le groupe précédent réalise ses modifications.
+
 
+
== Planning des soutenances ==
+
 
+
E101:
+
        14-06-2012 : 14:00:00 à 15:00:00 : Bouhafa Anis, Mellouli Aymen, Stieglitz Robin
+
        14-06-2012 : 14:20:00 à 15:20:00 : Errochdi Zakariae, Mehri Cyrine, Soubeyrand Yann
+
        14-06-2012 : 15:30:00 à 16:30:00 : Fleury Julien, Laine Nicolas, Thiebaut Quentin
+
        14-06-2012 : 15:50:00 à 16:50:00 : Josserand Robin, Matte Celestin
+
 
+
E106:
+
        14-06-2012 : 14:00:00 à 15:00:00 : Bayane Alexandre, Darnis Emmanuel, Valougeorgis Phivos
+
        14-06-2012 : 14:20:00 à 15:20:00 : Aholou Damien, Brun Gauthier, Carre Nicolas
+
        14-06-2012 : 15:30:00 à 16:30:00 : Kuntz David, Lestel Matthieu, Poulet Gael
+
        14-06-2012 : 15:50:00 à 16:50:00 : Darraz Othman, Karmane Fouad, Sidrac Arnaud
+
        15-06-2012 : 08:45:00 à 09:45:00 : Dumas Julie, Tran Philippe, Yvetot Johann
+
        15-06-2012 : 09:05:00 à 10:05:00 : Khalil Youness, M'Nouny Saad, Tbez Othmane
+
        15-06-2012 : 10:15:00 à 11:15:00 : Harrand Nicolas, Martaud Sebastien, Ordonneau Thomas
+
        15-06-2012 : 10:35:00 à 11:35:00 : Ait M'Bark Reda, Chaabouni Kais, Houmadi Toibibou
+
 
+
E108:
+
        14-06-2012 : 14:00:00 à 15:00:00 : Boumard Vincent, Perret Olivier, Verger Arthur
+
        14-06-2012 : 14:20:00 à 15:20:00 : Bissey Audren, Jodin Romaric, Premaz Romain
+
        14-06-2012 : 15:30:00 à 16:30:00 : Bache Edouard, Guergachi Yahia, Legoux Gilles
+
        14-06-2012 : 15:50:00 à 16:50:00 : Hamou Yacov, Norsa Rudy, Perard-Gayot Arsene
+
        15-06-2012 : 08:45:00 à 09:45:00 : Bentroudi Galaad, Cuny Franz, Jacob Alexis
+
        15-06-2012 : 09:05:00 à 10:05:00 : Dias Alves Thomas, Lutrat Thomas, Menezo-Schlosser Celine
+
        15-06-2012 : 10:15:00 à 11:15:00 : Ballot Luc, Georges Guillaume, Van-Lede Theo
+
        15-06-2012 : 10:35:00 à 11:35:00 : Brugel Camille, Dufour Aurelien, Viller Jean-Baptiste
+
        15-06-2012 : 11:45:00 à 12:45:00 : Boukioud Mustapha, Naim Amine
+
  
 +
Les séances encadrées auront lieu le vendredi 27 mai matin et du lundi 30 mai matin au mercredi 8 juin matin .
  
 +
= Soutenances =
 +
Les soutenances auront lieu le jeudi 9 et le vendredi 10 juin.
  
 +
= Ressources =
 
== Fichiers Fournis ==
 
== Fichiers Fournis ==
  
Vous pouvez trouver dès à présent le squelette fourni pour le simulateur : [[media:Squelette_mips.tgz]]
+
<!--Vous pouvez trouver dès à présent le squelette fourni pour le simulateur : [[media:Squelette_mips.tgz]]-->
  
== Errata Sujet ==
 
 
=== Problèmes de relocation ===
 
 
Certains étudiants ont fait part de problèmes lors de la relocation à l'aide des fonctions de relocation.o : la fonction relogeSymboles semble ne rien modifier.
 
 
Ces problèmes sont liés à une version particulière de mips-as. Ce dernier a été mis-à-jour, ce qui devrait régler les problèmes. Il est néanmoins nécessaire de recompiler les fichiers .s en .o avec le nouvel assembleur.
 
 
Il est possible de vérifier que l'assembleur utilisé est correct : les noms des sections .text, .data et .bss doivent alors apparaitre dans la table des chaines.
 
 
=== Note 5 en bas de page 47 ===
 
 
Il manque un "-" au paramètre address-radix de la commande qui affiche la contenu d'un fichier en hexadécimal.
 
 
La bonne command est
 
od -t xC --address-radix=x <votre fichier>
 
 
=== Exemple d'entrée/sortie page 15 ===
 
 
Le bon code assembleur pour afficher "Hello World!" est
 
LI $v0, 4
 
LA $a0, chaine
 
SYSCALL
 
  
 
== Documents ==  
 
== Documents ==  
  
Introduction au projet, slides de la présentation : [[media:Intro_mips_2012.pdf]]
+
<!--Introduction au projet, slides de la présentation : [[media:Intro_mips_2012.pdf]]-->
  
 
Liens sur quelques documents de référence (cités dans la bibliographie du projet).
 
Liens sur quelques documents de référence (cités dans la bibliographie du projet).
Ligne 102 : Ligne 33 :
 
* Specifications du format ELF: site [http://refspecs.freestandards.org Linux Foundation Referenced Specifications]  
 
* Specifications du format ELF: site [http://refspecs.freestandards.org Linux Foundation Referenced Specifications]  
  
== FAQ ==  
+
= FAQ =
 +
 
 +
== Utilisation des programmes mips-elf* ==
 +
Nous utilisons les mêmes binutils pour mips que le cours de CEP.
 +
Penser à vérifier que vous avez bien ajouté <code>export PATH=$PATH:/opt/mips-tools-cep/bin</code> dans votre <code>~/.bashrc</code>.
  
=== Cas de l'instruction <code>DIV</code> ===
+
== Cas de l'instruction <code>DIV</code> ==
<code>mips-as</code> définit en fait une macro qui vérifie que le dénominateur est non nul avant de diviser et génère du coup cette instruction en une dizaine d'instructions!  
+
<code>mips-elf-as</code> définit en fait une macro qui vérifie que le dénominateur est non nul avant de diviser et génère du coup cette instruction en une dizaine d'instructions!  
  
 
Exemple:  
 
Exemple:  
Ligne 130 : Ligne 65 :
 
</pre>
 
</pre>
  
* Pour éviter que mips-as ne génère cette macro, vous pouvez utiliser une syntaxe alternative: <code>DIV $0, $4, $4</code>. L'instruction <code>DIV</code> est alors simplement codée, conformément à la doc.
+
* Pour éviter que mips-elf-as ne génère cette macro, vous pouvez utiliser une syntaxe alternative: <code>DIV $0, $4, $4</code>. L'instruction <code>DIV</code> est alors simplement codée, conformément à la doc.

Version du 25 mai 2016 à 12:59

Cette page tente de rassembler les questions les plus fréquentes pour le sujet « Simulateur MIPS ». Vous pouvez ajouter vos questions en bas de la page, et éventuellement répondre aux questions de vos collègues, tant que vous le faites en respectant les règles du jeu : ne donnez pas de solutions explicites au sujet, n'échangez pas de code, et en cas de doutes, demandez à vos enseignants !

Encadrants

Voici la liste des encadrants pour le sujet MIPS, auxquels vous pourrez poser vos questions pendant les séances encadrées (permanence E101) :

  • Florent Bouchez-Tichadou
  • Matthieu Chabanas
  • Thomas Dias Alves
  • Julie Dumas
  • Nicolas Kox
  • Duco Van-Amstel

Les séances encadrées auront lieu le vendredi 27 mai matin et du lundi 30 mai matin au mercredi 8 juin matin .

Soutenances

Les soutenances auront lieu le jeudi 9 et le vendredi 10 juin.

Ressources

Fichiers Fournis

Documents

Liens sur quelques documents de référence (cités dans la bibliographie du projet).

FAQ

Utilisation des programmes mips-elf*

Nous utilisons les mêmes binutils pour mips que le cours de CEP. Penser à vérifier que vous avez bien ajouté export PATH=$PATH:/opt/mips-tools-cep/bin dans votre ~/.bashrc.

Cas de l'instruction DIV

mips-elf-as définit en fait une macro qui vérifie que le dénominateur est non nul avant de diviser et génère du coup cette instruction en une dizaine d'instructions!

Exemple:

avant_div:
DIV $4, $4
apres_div:

est assemblé comme:

Disassembly of section .text:

00000000 <avant_div>:
   0:   14800002        bnez    a0,c <avant_div+0xc>
   4:   0084001a        div     zero,a0,a0
   8:   0007000d        break   0x7
   c:   2401ffff        li      at,-1
  10:   14810004        bne     a0,at,24 <avant_div+0x24>
  14:   3c018000        lui     at,0x8000
  18:   14810002        bne     a0,at,24 <avant_div+0x24>
  1c:   00000000        nop
  20:   0006000d        break   0x6
  24:   00002012        mflo    a0
  • Pour éviter que mips-elf-as ne génère cette macro, vous pouvez utiliser une syntaxe alternative: DIV $0, $4, $4. L'instruction DIV est alors simplement codée, conformément à la doc.