Conception et Exploitation des Processeurs ia32

De Ensiwiki
Aller à : navigation, rechercher

Laptop.png  Première Année  CDROM.png  Informatique 

Convocation à l'examen de TP

Vous devez respecter l'heure et la salle notées dans le planning.

Introduction

Bienvenue sur la page du cours de Conception et Exploitation des Processeurs.

Le but de ce cours est de donner une vision duale et complémentaire du fonctionnement des processeurs modernes :

  • du point de vue matériel, en construisant un mini-processeur réaliste, basé sur un processeur existant (le MIPS) dans le cadre du Projet de Conception des Processeurs ;
  • du point de vue logiciel, en apprenant à programmer en assembleur pour le processeur Pentium, que l'on trouve dans tous les PC du monde aujourd'hui, dans le cadre des CTD d'Exploitation des Processeurs.

Organisation

Les séances de Projet de Conception des Processeurs alternent avec les CTD d'Exploitation des Processeurs : consulter ADE pour trouver la bonne salle.

Obligation de présence

La présence à toutes les séances est obligatoire, l'appel sera fait et les élèves absents sans justification seront pénalisés :

  • de 2 points de moins sur la note finale de CEP pour une absence non-justifiée ;
  • de 4 points de moins sur la note finale de CEP pour deux absences non-justifiées ;
  • d'un 0/20 d'office sur la note finale de CEP à partir de trois absences non-justifiées.

En cas d'absence justifiée, vous devez :

  • déposer votre justificatif (certificat médical, etc.) auprès de Pierre Berthollet à la scolarité ;
  • prévenir par mail votre enseignant de CEP.

Evaluation

La note de CEP est constituée de deux parties :

  • une note obtenue par un examen de TP ayant lieu le XXXX : cet examen portera principalement sur la partie Exploitation des Processeurs mais des questions pourront être posées également concernant la partie Projet de Conception ;
  • la note du projet, obtenue à partir du contrôle continu en séances encadrées et de la validation des étapes par les enseignants.

Chaque partie compte pour la moitié de la note finale.

Attention : la note de CEP ne se rattrape pas à la session 2 et un 0/20 est une note potentiellement éliminatoire.

Format du rendu

Pour la partie Exploitation des Processeurs, il n'y a rien à rendre : vous serez évalué via un examen de TP qui aura lieu le XXXX.

Pour la partie Projet de Conception de Processeur, vous devez rendre votre réalisation dans votre dépôt Git. En pratique, on doit y trouver :

  • à la racine du dépôt, les fichiers MMIPS_CPU.vhd, MMIPS_CPU_PC.vhd et MMIPS_CPU_PO.vhd qui compilent correctement et implantent une réalisation validant le plus grand nombre de points verts sur l'application de validation ;
  • dans un sous-répertoire Extensions, toutes les sources nécessaires pour tester les extensions que vous avez réalisé : vous devez déposer un projet complet, que les enseignants pourront simuler et/ou implanter sur la carte FPGA tel-quel ;
  • dans un sous-répertoire Tests, tous les tests intermédiaires que vous avez écrit pendant le projet pour tester votre réalisation : vous devez donner des noms à vos fichiers de tests qui précisent bien quelle instruction est testée et la séance où vous l'avez testé (e.g. test_S2_lui.s), si vous avez écrit des testbench en plus de celui fourni, vous devez aussi les mettre dans ce sous-répertoire ;
  • un fichier README.TXT à la racine du dépôt dans lequel vous décrirez :
    • tout ce que vous avez implanté (étapes validées, extensions réalisées, etc.) ;
    • dans quels fichiers sont réalisées vos extensions ;
    • toutes les informations que vous jugerez pertinentes pour aider le correcteur à évaluer votre travail.

Attention : l'équipe de CEP a l'habitude d'utiliser des logiciels de détection de la fraude pour vérifier qu'il n'y a pas de recopie de code entre différentes équipes. Les sanctions prévues en cas de fraude sont détaillées dans la Charte des projets. Notre politique est de sanctionner par un 0/20 non-rattrapable à la session 2 tous les acteurs de la fraude, aussi bien ceux qui ont copié que ceux qui ont fourni le code.

Equipe enseignante

Sujets et documents

Cours magistraux

Cours 1 : le langage VHDL

Cours 2 : Introduction au projet

Cours 3 : Introduction à l'assembleur

Cours 4 : Appels de fonctions en assembleur

Partie Projet de Conception des Processeurs

Séance 1 : TP d'introduction au Projet

Séance 2 : prise en main du projet et implantation des premières instructions

A partir de la troisième séance de projet, nous ne détaillons plus le travail à réaliser : vous devez vous même gérer votre développement en suivant le cahier des charges du projet.

Outils utilisés

Mis à part pour la programmation des cartes FPGA qui nécessite obligatoirement l'utilisation des outils Xilinx, tout le développement du projet peut être réalisé grâce à des outils open-source disponibles gratuitement sur la plupart des systèmes :

  • GHDL est un compilateur VHDL écrit en Ada ;
  • GTKWave est l'outil de simulation utilisé pendant le projet ;
  • les outils binaires GNU sont nécessaires pour utiliser le script asm2mem fourni et ces outils doivent de plus être compilés pour gérer du code MIPS (alors que votre PC contient vraisemblablement un processeur Intel). Pour les compiler, suivez la démarche suivante :
    • récupérer la bonne version et extraire l'archive avec la commande tar xvf binutils-2.22.tar.bz2 puis aller dans le répertoire binutils-2.22 qui vient d'être créé ;
    • éditer le fichier binutils/objdump.c et remplacer la ligne #define DEFAULT_SKIP_ZEROES 8 par #define DEFAULT_SKIP_ZEROES 32
    • créer sur votre machine un répertoire /usr/local/mips-elf-linux et vous y donner les droits d'écriture (consulter les pages man des commandes sudo, mkdir et chown si vous ne savez pas faire)
    • exécuter la commande ./configure --prefix=/usr/local/mips-elf-linux --target=mips-elf-linux --disable-werror ;
    • si tout se passe bien, exécuter la commande make all install ;
    • ajouter le répertoire /usr/local/mips-elf-linux/bin dans votre PATH ;
    • vous pouvez effacer l'archive et le répertoire binutils-2.22.

Si à l'exécution du script asm2mem, vous obtenez une erreur vous parlant de la commande strtonum, votre version de awk est trop ancienne : installez donc gawk avec votre gestionnaire de packages habituels.

Partie Exploitation des Processeurs

Séance 1 : introduction à l'architecture Pentium

Séance 2 : modes d'adressage

Séance 3 : appels de fonctions et gestion d'une pile d'exécution

Séance 4 : manipulation de pointeurs

Documents complémentaires

Documentations du processus Pentium

Note : ces documents font plusieurs centaines de pages chacun et contiennent une masse d'information qui dépasse très largement le cadre de ce cours. Vous n'avez absolument pas besoin d'imprimer ces documents : toutes les informations nécessaires vous serons fournies pour les TP et examens.

Pour information, voici l'ABI (Application Binary Interface) des processeurs Intel 32 bits :

Documentation du processeur MIPS

Même remarque : inutile de l'imprimer, on donnera tous les éléments nécessaires dans les énoncés

Vous trouverez ici également l'ABI du R3000, telle que définie pour Ultrix par DEC (Digital Equipment Corporation) dans les années 80. Les conventions d'usage des registres et d'appel de fonctions qui y sont précisées sont celles qui ont été présentées en cours (page 23 et suivantes du document).

Archives des examens

Ce cours a débuté en 2011-2012, mais on donne à titre indicatif les sujets des examens de TP de Logiciel de Base 2010-2011 :