Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
Hadda CHERROUN
Dépt. d’informatique, université Ammar Telidji Laghouat
hadda_cherroun@mail.lagh-univ.dz
28 Septembre 2020
Microprogrammées
Machine-langage: CISCs
RISCs
VLIWs
Plan
1 Évolution des Modèles d’exécution
Vue schématique
2 Microprogrammées
Principe
Exemple de Machine Microprogrammée
4 Machines RISCs
Principe
Apports CISC
5 Machines VLIWs
Principe
Apports
Objectifs
Fonctionnement ⇐⇒
Architecture Machine-Langage
la MC est organisée physiquement en mots de 16, 24, 32 ou 40 bits, mais logiquement, elle est vue comme
une suite variable de Bytes de taille arbitraire, aussi bien pour les données (objets auto-définis contenant
des descripteurs au format variable) que pour les programmes (macrocode de structures diverses). Elle est
souvent adressée au bit (les bytes sont des multiples de bits) ou à l’octet (les bytes sont des multiples
d’octets).
l’UT est organisée autour d’une UAL. Elle traite les informations selon un format qui est physiquement fixe
(souvent le même que le format physique de la mémoire). On lui adjoint une mémoire locale qui contient les
données et dans le cas de certaines machines à pile, une pile d’exécution câblée.
L’UC est microprogrammée. Elle doit effectuer des traitements souvent complexes pour décoder et émuler
le macrocode, surtout dans le cas de formes fortement structurées. C’est pourquoi, sa structure est plus
complexe qu’une unité de contrôle de machine classique.
Le Manipulateur de Profil Binaires est un opérateur nouveau qui est placé entre la mémoire principale et les
Unités de Traitement et de Contrôle afin d’effectuer les divers changements de formats qui sont
nécessaires.
Les contraintes imposées par le traducteur et l’interprète sont les mêmes : syntaxe simple, sémantique riche. Les
familles de macrocodes ont connu une évolution constante avant de pouvoir prétendre satisfaire cette double
contrainte.
Les critères de classement des familles de macrocodes portent sur :
Sémantique du contrôle : il s’agit au départ d’une sémantique proche de celle des langages-machines qui
utilise des sauts explicites (Goto). Elle a été très vite remplacée par les machines à pile capables de
comprendre des formes pré ou post-fixées.
Structure support : elle ne doit pas être confondue avec la syntaxe du macrocode qui concerne plutôt
l’ordre dans lequel sont placés les éléments composant les instructions. Là encore, on est parti d’une
structure linéaire simple proche du langage-machine (où la relation de succession st exprimée par la
contiguïté physique) pour aboutir à une structure utilisant des pointeurs pour exprimer des relations
logiques plus souples et plus complexes.
Famille du Sémantique du contrôle Structure support Caractéristiques apportées
macrocode
N-uplets Séquentielle Linéaire Forme fixe de base
Forme polonaise Machine à pile Linéaire Contrôle à pile
Forme structurée Machine à pile Linéaire Sémantique évoluée
Forme arborescente Machine à pile Arborescente Représentation discontinue
Architecture Machine-Langage
Exemple de Machine
Principe
la solution dite de REGISTRE à REGISTRE n’utilise que des instructions simples : où le compilateur est chargé
d’allouer les variables évoluées A, B, C dans les registres R1, R2, R3. On obtient alors la puissance de la solution
en un seul cycle ALU (pas d’accès mémoire !).
Apports et techniques
Dans le modèle VLIW, on exploiter le parallélisme de contrôle (une source de parallélisme). On essaye d’extraire le
parallélisme microscopique qui réside dans la possibilité d’exécuter des instructions machines de manière
indépendante sur des unités de calcul répliquées. L’extraction est faite par le compilateur en 3 en étapes :
1 Création du graphe de contrôle du programme source (a) : Le programme est découpé en blocs
d’instructions machines; un bloc est une suite d’instructions sans branchement à l’intérieur.
2 Analyse des dépendances de données dans les blocs de code (b)
3 Production du programme VLIW (c) : le programme VLIW est le résultat de la concaténation des analyses
de blocs ; pour un bloc, les instructions qui sont indépendantes sont placées sur une même ligne VLIW pour
être exécutées en parallèle par les ALUs ; le nombre d’instructions placées en parallèle est limité
doublement
par le nombre d’ALUs disponibles (si on a plus d’instructions en parallèle que d’ALUs on reporte le
surplus à la ligne suivante)
et surtout par les dépendances entre les instructions qui empêchent généralement de placer toutes
les instructions d’un bloc sur une même ligne.
Références