CAS 1 - Free

publicité
Plan
„
„
„
„
„
„
„
„
„
„
Copyright © F. Muller
2004
Ch1 - Introduction
Ch2 - Structure de l’ordinateur
Ch3 - Modèle de Programmation
Ch4 - Conception des Processeurs
Ch5 - Pipeline
Ch6 - Parallélisme d’instructions
Ch7 - Systèmes Mémoire
Ch8 - Mémoires Caches
Ch9 - Mémoire Virtuelle
Ch10 - Systèmes Multiprocesseurs
Architecture de l’ordinateur - Conception des Processeurs
Ch4 - 1 -
Conception des Processeurs
Introduction
„ Architecture de jeu d’instruction
„ Microarchitecture des processeurs
„
Copyright © F. Muller
2004
Ch4 - 2 -
Introduction
„
Objectifs
„
„
„
„
Différencier l’architecture du jeu d’instruction et la
microarchitecture
Différencier les jeux RISC et CISC
Modes d’adressage
Conception des Processeurs : 2 parties
„
Architecture du jeu d’instruction
„
„
„
„
„
„
Microarchitecture
„
„
„
„
Copyright © F. Muller
2004
ISA : Instruction Set Architecture
Conception du jeu d’instruction
Choix du modèle de programmation
Nombre de registres
Méthodes d’accès aux données
Manière dont les instructions sont implémentées
Durée d’exécution des instructions
Le nombre d’instructions exécutables en une fois
Conception du fichier de registres
Architecture de l’ordinateur - Conception des Processeurs
Ch4 - 3 -
Architecture du jeu d’instructions (ISA)
Histoire …
„
Au départ des ordinateurs
„
„
„
„
La programmation se faisait essentiellement en assembleur
L’architecture des jeux d’instructions était la plus importante
composante de l’architecture
Les performances étaient très dépendantes de l’architecture
du jeu d’instruction
Au fil des années
„
L’architecture du jeux d’instruction est moins importante
„
„
„
Copyright © F. Muller
2004
Utilisation des langages de haut niveau (indépendant de
l’assembleur)
Compatibilité du jeu d’instruction entre les générations de
processeurs (ajout de quelques instructions)
Performance = amélioration de la microarchitecture
Architecture de l’ordinateur - Conception des Processeurs
Ch4 - 4 -
Architecture du jeu d’instructions (ISA)
RISC et CISC (1/2)
„
Dans les années 1980, essayer de rapprocher l’assembleur,
des langages de haut niveau
„
„
„
„
„
1980-90 : L’architecture CISC est-elle la meilleure ?
„
„
„
Construire une jeu d’instructions très complexes
CISC : Complex Instruction Set Computers
Programme réduit
Traduction facilité pour les compilateurs
Existence du jeu RISC (Reduced Instruction Set Computers)
Exécution à fréquence plus élevée
Convergence entre les architectures RISC et CISC
„
RISC
„
„
„
CISC
„
„
Copyright © F. Muller
2004
Architecture du type Store/Load
Ajout d’instructions complexes très utilisées
L’instruction add (r1), (r2), (r3) => 3 accès mémoire
Abandon d’instructions trop complexes
Architecture de l’ordinateur - Conception des Processeurs
Ch4 - 5 -
Architecture du jeu d’instructions (ISA)
RISC et CISC (2/2)
„
Exemple
„
„
„
Instruction CISC : add (r1),(r2),(r3)
(r1) <- (r2) + (r3)
Quelle est la traduction dans un jeu RISC ?
CISC
ADD (r1),(r2),(r3)
- Attendre que tous les registres soient chargés
Copyright © F. Muller
2004
RISC
LD
LD
ADD
ST
r4,(r2)
r5,(r3)
r6,r4,r5
(r1),r6
- Ordonnancement des instructions plus facile
Architecture de l’ordinateur - Conception des Processeurs
Ch4 - 6 -
Architecture du jeu d’instructions (ISA)
Modes d’adressage (1/3)
„
L’adressage de registres « (rx) »
„
„
„
Chargement / Stockage / instruction CISC
Suffisant en théorie pour adresser la mémoire
L’adressage par étiquette
„
„
„
branchement
Spécifie l’adresse destination
Plus couramment, spécifie un déplacement positif ou négatif
qui fait référence au CO
„
„
„
Vocabulaire
„
Copyright © F. Muller
2004
Réduit le nombre de bits pour le codage de l’instruction
Programme portable (exemple: bibliothèque dynamique)
Architectures orthogonales : les instructions peuvent utiliser
n’importe quels modes d’adressage
Architecture de l’ordinateur - Conception des Processeurs
Ch4 - 7 -
Architecture du jeu d’instructions (ISA)
Modes d’adressage (2/3)
„
Exemple 1
„
Codez « BR label1 » en considérant que
„
„
„
„
le décalage de l’instruction est 0x437 octets
CAS 1 : L’instruction est chargée en 0x4000
CAS 2 : L’instruction est chargée en 0x4400
Quel est l’adresse cible du branchement dans les 2 cas ?
CAS 1 : 0x4000 + 0x437 = 0x4437
„
CAS 2 : 0x4400 + 0x437 = 0x4837
Exemple 2
„
Si la valeur de r4 est 0x13000, quelle adresse est référencée par
l’instruction LD -0x80(r4) ?
0x13000 - 0x80 = 0x12F80
Copyright © F. Muller
2004
Architecture de l’ordinateur - Conception des Processeurs
Ch4 - 8 -
Architecture du jeu d’instructions (ISA)
Modes d’adressage (3/3)
„
L’adressage basé « imm(rx) »
„
„
„
Additionne la valeur du registre avec la valeur immédiate
(constante) sans modifier le registre
Accès à des éléments d’une structure
L’adressage postincrémentiels « imm[rx] »
„
2 étapes
„
„
„
„
Parcours/Copie de tableaux, …
Exemple
„
Convertissez la séquence en utilisant le mode d’adressage basé
LD
LD
ST
Copyright © F. Muller
2004
Accès à la mémoire à l’adresse pointée par le registre
Rx = Rx + imm
r4,8(r1)
r5,12(r1)
16(r1),r8
MOV
ADD
LD
LD
ST
r1,#0
r1,r1,#8
r4,4[r1]
r5,4[r1]
16(r1),r8
Architecture de l’ordinateur - Conception des Processeurs
Ch4 - 9 -
Architecture du jeu d’instructions (ISA)
Instructions vectorielles multimédia (1/3)
„
Objectifs
„
„
„
Exemple
„
„
extension MMX de l’ISA x86
Principe
„
„
„
Copyright © F. Muller
2004
Améliorer la performance des applications multimédia
Lecture / Compression vidéo
Réalise la même séquence d’opérations sur un grand
nombre d’objets de donnée indépendants (blocs de 8x8
pixels compressés)
Paralléliser le traitement de donnée
Évite le gaspillage sur le traitement d’une UAL de 32 ou 64
bits car le donnée sont généralement sur 8 bits (RVB)
Architecture de l’ordinateur - Conception des Processeurs
Ch4 - 10 -
Architecture du jeu d’instructions (ISA)
Instructions vectorielles multimédia (2/3)
„
Principe (suite)
„
„
Le registre de 32 bits est traité comme un ensemble
d’éléments de 4 octets ou 2 mots
Le registre peut être sur 64 bits ,128 bits voire plus et
permet de paralléliser encore plus
Mot de donnée 32 bits
Traité comme
8 bits
8 bits
16 bits
Copyright © F. Muller
2004
8 bits
8 bits
16 bits
Architecture de l’ordinateur - Conception des Processeurs
Ch4 - 11 -
Architecture du jeu d’instructions (ISA)
Instructions vectorielles multimédia (3/3)
„
Arithmétique saturée
„
„
„
Pourquoi ?
„
„
Les calculs qui dépassent le nombre de bits de leur représentation
retournent la valeur maximale autorisée
Les calculs en dépassement négatif retournent 0
Par exemple, l’augmentation d’une pixel rouge doit donné une
pixel extrêmement rouge et non pas retomber à une petite valeur
Exemple
0xa0
0xd3
0x90
0x18
0x17
0x1e
0x92
0x37
0x7b
0xf1
0x22
0x4f
Pas de propagation de retenue entre les mots de 8 bits
Copyright © F. Muller
2004
Architecture de l’ordinateur - Conception des Processeurs
Ch4 - 12 -
Architecture du jeu d’instructions (ISA)
Instruction MAC (Multiply and ACcumulate)
„
„
Objectif : Exécuter l’opération A = (B x C) + D
Cas du processeur 68000
„
„
„
„
10 cycles d’horloge pour effectuer une addition
70 cycles d’horloge pour effectuer une multiplication
TOTAL : 80 cycles !!
Cas des DSP (Digital Signal Processor)
„
„
„
1 cycle
un DSP de gamme moyenne effectue une opération MAC sur des
données de 16 bits en moins de 25 ns
soit 40 000 000 opérations par seconde.
Signal Original
Filtre passe-bas
Signal Traité
Mémoire
Conversion
Analogique/Numérique
DSP
Conversion
Numérique/Analogique
Filtre passe-bas
E/S
Copyright © F. Muller
2004
Architecture de l’ordinateur - Conception des Processeurs
Ch4 - 13 -
Architecture du jeu d’instructions (ISA)
Codages d’instructions
„
Recherche du codage du jeu d’instruction
„
„
„
„
Jeu d’instruction à longueur fixe
„
„
„
„
Utilise le même nombre de bits pour coder chaque instruction
Avantages : Simple à décoder, prédire l’emplacement de la
prochaine instruction, facilite l’utilisation du pipeline
Jeu couramment utilisé aujourd’hui
Jeu d’instruction à longueur variable
„
„
„
„
Copyright © F. Muller
2004
Codage compact
Facile à décoder
Faire un compromis
Le nombre de bits varie en fonction de l’instruction
Avantage : optimise l’espace mémoire
Inconvénient : complexifie la logique de décodage, prédiction de
l’emplacement de la prochaine instruction possible à la fin du
décodage de l’instruction courante
Adapter aux architectures à pile
Architecture de l’ordinateur - Conception des Processeurs
Ch4 - 14 -
Microarchitecture des processeurs
„
L’architecture du jeu d’instruction spécifie la manière dont le
processeur est programmé TANDIS QUE la microarchitecture
spécifie sa manière d’être construit.
Données
vers la mémoire
Données
de la mémoire
Données
vers la mémoire
Logique
de contrôle
Banc de Registres
Unités Entiers
Copyright © F. Muller
2004
Instruction
de la mémoire
Unités Virgules
flottante
Processeur
Architecture de l’ordinateur - Conception des Processeurs
Ch4 - 15 -
Microarchitecture des processeurs
Unité d’exécution
Recherche instruction
Prise en charge
de l’instruction
Système mémoire
Instruction
Instruction
Décodage
de l’instruction
Instruction décodée
ID des registres
d’entrée de l’instruction
Lecture du registre
Instruction décodée
et valeurs des registres d’entrée
Exécution
Valeurs des
registres
d’entrée
Fichier de registres
Résultat de l’instruction
Écriture
Copyright © F. Muller
2004
Résultats de l’instruction
Architecture de l’ordinateur - Conception des Processeurs
Ch4 - 16 -
Microarchitecture des processeurs
Microprogrammation
„
Processeur micro programmé
„
„
„
„
N’exécute pas directement les instructions de l’ISA
Effectue des micro opérations très simples
En pratique, l’instruction est convertie en un court programme de
micro instruction
Exemple : ADD r1,r2,r3
„
„
„
„
„
3) addition
5) incrémenter C0
Les processeurs micro programmés contiennent de petites
mémoires intégrant les séquences de micro instructions
Cette microarchitecture n’est plus utilisée aujourd’hui
„
„
Copyright © F. Muller
2004
1) lire r2
2) lire r3
4) écrire résultat dans r1
6) instruction suivante
Implémentation de l’ISA en matériel devenue plus facile grâce à l’avancée
technologique
Moins bonnes performances dû à l’extraction de chaque micro-instruction
Architecture de l’ordinateur - Conception des Processeurs
Ch4 - 17 -
Microarchitecture des processeurs
Fichier de registres
„
„
Séparation du fichier de registres pour les valeurs
entières (rx) et flottantes (fx)
Pourquoi ?
„
„
„
Rapproche physiquement les fichiers de registres des unités
d’exécution qui en ont besoin
Diminution de la longueur des fils, donc augmentation des
performances
Les fichiers distincts prennent moins de place sur les
processeurs qui exécutent plusieurs instructions par cycle
„
„
„
Copyright © F. Muller
2004
La taille d’un fichier de registre augmente proportionnellement au
carré du nombre de lectures et d’écritures simultanées
Pour exécuter une instruction/cycle, il faut 2R/1W. Donc, chaque
instruction supplémentaire exécutée dans un cycle augmente de 3 le
nombre de R/W simultanées.
Conclusion: en séparant le fichier de registres en valeurs entières et
flottantes, on diminue la taille globale des fichiers
Architecture de l’ordinateur - Conception des Processeurs
Ch4 - 18 -
Synthèse
„
RISC / CISC
„
„
Modes d’adressage
„
„
„
Codage généralement fixe
Fonctionnement d’une Microarchitecture
„
„
„
Copyright © F. Muller
2004
(rx), label, déplacement par rapport au CO
Imm(rx), Imm[rx]
Codage des instructions
„
„
Convergence entre les architectures RISC et CISC
Unité d’exécution
Microprogrammation
Fichier de registres
Architecture de l’ordinateur - Conception des Processeurs
Ch4 - 19 -
Téléchargement