Objectifs Identifier l’interface entre le logiciel de plus bas niveau et le matériel Comprendre la problématique de l’architecture du jeu d’instruction Définir deux grandes familles de jeu d’instruction
Quand Monsieur DUPONT exécute un programme ! ?
Quand Monsieur DUPONT exécute un programme ! ?
Application “Le software” ? Hiérarchie de traduction
Application “Le software” ? Programme en Pascal, C, C++ C++++++ !!!!... Hiérarchie de traduction
Application “Le software” ? Programme en Pascal, C, C++ C++++++ !!!!... Compilateur Programme en Langage assembleur Hiérarchie de traduction
Application “Le software” ? Programme en Pascal, C, C++ C++++++ !!!!... Compilateur Programme en Langage assembleur Hiérarchie de traduction Assembleur Programme en Langage machine
Application “Le software” ? Programme en Pascal, C, C++ C++++++ !!!!... Compilateur Programme en Langage assembleur Hiérarchie de traduction Assembleur Programme en Langage machine Chargeur en Mémoire
Hiérarchie de traduction Vite un exemple ? Change (int v[], int k[]); { int temp; temp=v[k]; v[k]=v[k+1]; v[k+1]=temp; } Change : muli $2,$5,4 add $2,$4,$2 lw $15,0($2) lw $16,4($2) sw $16,0($2) sw $15,4($2) jr $31 0000011010000100010000110 1000100000000000000000000 0001100110100101010000100 0001100000001110000000000 0010000111001010101010000 0010000000000001000000000 1001001010100000010101011 ? Compilateur Hiérarchie de traduction Assembleur Chargeur en Mémoire
Conception ?
Conception ? Conception du Logiciel Conception du Matériel
Conception Principe de l’abstraction Machines virtuelles ? Conception du Logiciel Machines virtuelles Principe de l’abstraction Conception du Matériel
L’interface entre logiciel et matériel ? Conception du Logiciel Architecture du Jeu d’instructions ISA Conception du Matériel
L’architecture de jeu d’instructions ? Conception du Logiciel Le nombre d’instructions Nombre de cycles par instruction Architecture du Jeu d’instructions Temps de cycle Nombre de cycles par instruction Conception du Matériel
Performances Les performances des machines sont définies par trois facteurs clés : le nombre d’instructions le temps de cycles d’horloge le nombre de cycles d’horloge par instruction. Le compilateur et l’architecture de jeu d’instructions déterminent le nombre d’instructions requises pour un programme donné La mise en oeuvre définis le temps de cycle d’horloge, ainsi que le nombre de cycles d’horloge par instruction.
Problématique du jeu d’instructions ? Conception du Logiciel Le jeu d’instruction doit être le résultat de nombreux compromis entre : efficacité du compilateur, flexibilité, vitesse, complexité du matériel. Conception du Matériel
Problématique du jeu d’instructions ? Conception du Logiciel CO-DESIGN Conception du Matériel
Problématique du jeu d’instructions ? Conception du Logiciel CISC Conception du Matériel interprété Complex Instruction Set Computer
Problématique du jeu d’instructions ? Conception du Logiciel Rôle important du compilateur RISC Conception du Matériel Directement exécutée Reduced Instruction Set Computer
Objectif général du cours Comprendre les principes d’une conception RISC