Le pipeline. Eduardo Sanchez Laboratoire de Systèmes Logiques. Ecole Polytechnique Fédérale de Lausanne

Documents pareils
Exécution des instructions machine

Fonctionnement et performance des processeurs

Rappels d architecture

1 Architecture du cœur ARM Cortex M3. Le cœur ARM Cortex M3 sera présenté en classe à partir des éléments suivants :

ASR1 TD7 : Un microprocesseur RISC 16 bits

Tout savoir sur le matériel informatique

Compilation (INF 564)

DU BINAIRE AU MICROPROCESSEUR - D ANGELIS CIRCUITS CONFIGURABLES NOTION DE PROGRAMMATION

CM2 L architecture MIPS32

Conception de circuits numériques et architecture des ordinateurs

Contexte et motivations Les techniques envisagées Evolution des processus Conclusion

IV- Comment fonctionne un ordinateur?

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

Assembleur. Faculté I&C, André Maurer, Claude Petitpierre

Représentation des Nombres

Licence Sciences et Technologies Examen janvier 2010

Architecture des calculateurs

Informatique Industrielle Année Architecture des ordinateurs Note de cours T.Dumartin

Architecture des ordinateurs

Initiation au HPC - Généralités

Introduction à l architecture des ordinateurs. Adrien Lebre Décembre 2007

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

IFT1215 Introduction aux systèmes informatiques

Architecture matérielle des systèmes informatiques

Prentice Hall, 2011 (ISBN )

Architecture des ordinateurs

PIC : COURS ASSEMBLEUR

MICROINFORMATIQUE NOTE D APPLICATION 1 (REV. 2011) ARITHMETIQUE EN ASSEMBLEUR ET EN C

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

Cours 1 : La compilation

Compression Compression par dictionnaires

FONCTION COMPTAGE BINAIRE ET DIVISION DE FRÉQUENCE

Architecture des Ordinateurs. Partie II:

GPA770 Microélectronique appliquée Exercices série A

Hiérarchie matériel dans le monde informatique. Architecture d ordinateur : introduction. Hiérarchie matériel dans le monde informatique

QUESTION 1 {2 points}

Projet gestion d'objets dupliqués

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Cours Informatique 1. Monsieur SADOUNI Salheddine

SGM. Master S.T.S. mention informatique, première année. Isabelle Puaut. Septembre Université de Rennes I - IRISA

Conception de circuits numériques et architecture des ordinateurs

Microprocesseur + Logiciel

La mémoire. Un ordinateur. L'octet. Le bit

Mesure de performances. [Architecture des ordinateurs, Hennessy & Patterson, 1996]

Solution A La Gestion Des Objets Java Pour Des Systèmes Embarqués

Une méthode de conception de systèmes sur puce

Organisation des Ordinateurs

Chap 4: Analyse syntaxique. Prof. M.D. RAHMANI Compilation SMI- S5 2013/14 1

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

Architecture ordinateur. Organisation mémoire et Entrées/Sorties

Tests de performance du matériel

La JVM. La machine virtuelle Java. La JVM. La JVM

Traduction binaire dynamique de l extension SIMD Néon de l ARMv7 dans Qemu

Cours 3 : L'ordinateur

6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr

Matériel & Logiciels (Hardware & Software)

ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview.

Jeu d instructions NIOS II

Argument-fetching dataflow machine de G.R. Gao et J.B. Dennis (McGill, 1988) = machine dataflow sans flux de données


Traduction des Langages : Le Compilateur Micro Java

Chapitre 4 : Les mémoires

Partie 1. Professeur : Haouati Abdelali. CPGE Lycée Omar Ibn Lkhattab - Meknès haouaticpge@gmail.com

Partie 7 : Gestion de la mémoire

Programmation en langage C

Architecture : Circuits numériques et éléments d architecture

Programmation en langage C d un µcontrôleur PIC à l aide du compilateur C-CCS Sommaire

TD Architecture des ordinateurs. Jean-Luc Dekeyser

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

GCOS 7 sur microprocesseur standard Diane Daniel POIRSON 14 octobre 2004 Matériels 64 / DPS 7 / DPS 7000 Architecture & Evolution - Daniel POIRSON 1

Exécutif temps réel Pierre-Yves Duval (cppm)

Conception Systèmes numériques VHDL et synthèse automatique des circuits

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Informatique Générale

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Conversion d un entier. Méthode par soustraction

Programmation C. Apprendre à développer des programmes simples dans le langage C

Qualité du logiciel: Méthodes de test

GESTION DE LA MEMOIRE

Parallélisme et Répartition

REALISATION d'un. ORDONNANCEUR à ECHEANCES

Programmation assembleur : aperçu

Optimisations des SGBDR. Étude de cas : MySQL

Architecture des ordinateurs : Programmation des processeurs avec l'environnement «y86» (INF155)

Présentation du cours

Configurer le Serveur avec une adresse IP Statique (INTERFACE :FastEthernet) : et un masque

On distingue deux grandes catégories de mémoires : mémoire centrale (appelée également mémoire interne)

03/04/2007. Tâche 1 Tâche 2 Tâche 3. Système Unix. Time sharing

Conception Systèmes numériques VHDL et synthèse automatique des circuits

THEME 1 : L ORDINATEUR ET SON ENVIRONNEMENT. Objectifs

Exigences système Commercial & Digital Printing

Gestion mémoire et Représentation intermédiaire

Conventions d écriture et outils de mise au point

Cours Informatique Master STEP

INTRODUCTION AUX SYSTEMES D EXPLOITATION. TD2 Exclusion mutuelle / Sémaphores

ISFA INSTITUT DE SCIENCE FINANCIÈRE ET D ASSURANCES GRANDE ÉCOLE D ACTUARIAT ET DE GESTION DES RISQUES

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

Cours de Programmation en Langage Synchrone SIGNAL. Bernard HOUSSAIS IRISA. Équipe ESPRESSO

Bases de programmation. Cours 5. Structurer les données

Les transactions 1/46. I même en cas de panne logicielle ou matérielle. I Concept de transaction. I Gestion de la concurrence : les solutions

Transcription:

Le pipeline Laboratoire de Systèmes Logiques

Le pipelining Technique utilisée pour optimiser le temps d exécution d un processus répétitif. Si le temps d exécution d un processus est T p, l exécution séquentielle de m processus prend un temps T t : T t = mt p Si le processus est décomposé en n étapes, chacune d une durée Ts, alors: T t = mnt s Page 2

Solution en pipeline: à chaque étape du processus est affectée une ressource indépendante, de façon à pouvoir exécuter plusieurs processus en parallèle, chacun à une étape différente T s T t = T p + (m-1)t s = n T s + (m-1) T s = (m+n-1) T s T p si m >> n alors T t» m T s Page 3

entrée clock registre étape 1 Flowthrough time: temps pour produire le premier résultat registre étape n registre Clock cycle time: temps entre deux résultats (période d une étape plus le retard du registre) Déterminé par l étape la plus longue sortie Page 4

Logiquement, un meilleur résultat est obtenu en augmentant le nombre d étapes: elles seront plus simples et la fréquence d horloge pourra ainsi être plus élevée. Cette approche présente toutefois plusieurs problèmes: la décomposition fine est très difficile chaque nouvelle étape ajoute un nouveau retard de registre, augmentant ainsi le flowthrough time l indépendance entre les étapes est plus difficile à obtenir la vitesse de lecture des entrées et d écriture des résultats augmente en conséquence Page 5

Exemple de pipeline arithmétique A 4 B 0 0 1 0 0 1 0 4 0 + 3 1 0 4 0 + 1 0 4 + 5 Page 6 AxB

4 4 3 1 0 0 4 + registre registre registre CK 4 4 4 Page 7

Pipeline des instructions d un processeur i t t+1 t+2 t+3 t+4 t+5 t+6 t+7 t+8 i+1 i+2 i+3 i+4 Page 8

Utilisé depuis le CDC 6600 Un pipeline parfait conduit à exécuter une instruction par cycle Pour une technologie donnée, la fréquence est plus élevée si le nombre de niveaux (pas, phases, étapes) du pipeline augmente Il est tout à fait naturelle d avoir un pipeline à trois phases: fetch, decode, execute Page 9

Aléas d un pipeline Aléas de structure: l implémentation empêche une certaine combinaison d opérations Aléas de données: le résultat d une opération dépend de celui, pas encore produit, d une instruction précédente Aléas de contrôle: l exécution d un saut est réalisée avec un certain retard Si un aléa est détecté, la solution la plus simple est d arrêter le pipeline (stall): les instructions qui précédent celle qui produit l aléa peuvent continuer, mais toutes les autres sont arrêtées jusqu à la disparition de l aléa Page 10

Exemple: le processeur MIPS Phase IF: recherche de l instruction (fetch) Phase ID: décodage de l instruction et lecture des registres opérandes Phase EX: exécution de l opération ou calcul de l adresse de mémoire Phase MEM: accès de la mémoire ou écriture dans le PC de l adresse de saut (la condition a besoin du résultat de l opération) Phase WB: écriture dans un registre du résultat de l opération (write back). Ne suit pas la phase EX pour prévoir le cas d un LOAD Page 11

Certaines phases sont inutiles pour certaines instructions, mais toutes les instructions ont une durée de 5 cycles Le PC doit pouvoir être incrémenté à chaque cycle On doit lire une instruction à chaque cycle On doit pouvoir lire une donnée à chaque cycle On doit disposer de deux MAR (memory address register), un pour les données et un autre pour les instructions (avantage pour une architecture de Harvard) Le format unique d instruction est avantageux Page 12

PC Mémoire ALU IMAR PC IR M[IMAR] PC PC + 4 A RS1 B RS2 load ou store: DMAR A + (partie du IR) MDR B opération: ALUout A op (B ou (partie du IR)) saut conditionnel: ALUout PC + (B ou (partie du IR)) cond RS1 op 0 if (cond) load: PC ALUout MDR M[DMAR] store: M[DMAR] MDR opération: Rd ALUout load: Rd MDR Page 13

Aléas de données Deux instructions contigües, i et j, peuvent présenter trois types d aléa de données: RAW (read after write): j essaie de lire une source avant que i ne l ait modifiée WAR (write after read): j essaie de modifier une destination avant que i ne l ait utilisée comme source (cas impossible dans MIPS) WAW (write after write): j essaie d écrire dans une destination avant que i ne l ait fait: l ordre normal d écriture est modifié (cas impossible dans MIPS) Page 14

Exemple: ADD R1, R2, R3 SUB R4, R1, R5 ADD R1 R2 + R3 R4 R1 - R5 t t+1 t+2 t+3 t+4 t+5 IF ID EX MEM WB SUB IF ID EX MEM WB on a besoin ici de R1, dont la valeur est disponible seulement deux coups d horloge plus tard R1 R2 + R3 Page 15

Solution: forwarding ou bypassing On cherche les opérandes à la sortie de l ALU, sans attendre leur écriture dans les registres On doit empiler n résultats à la sortie de l ALU, où n est le nombre de cycles où l aléa peut être présent (3 dans l exemple précédent) Le nombre de cycles peut être réduit de 1 si l écriture dans les registres a lieu pendant la première moitié de WB et la lecture des opérandes pendant la seconde moitié de ID Page 16

registres trajectoires de bypass Page 17

Exemple: LW R1, 32(R6) R1 M[R6 + 32] ADD R4, R1, R7 R4 R1 + R7 SUB R5, R1, R8 AND R6, R1, R7 LW t t+1 t+2 t+3 t+4 t+5 IF ID EX MEM WB ADD IF ID EX MEM WB M[R6 + 32] R1 est cherché ici pour le ADD Page 18

Le registre d un LOAD ne peut pas être utilisé comme source d une opération postérieure, et cela pendant un certain nombre de cycles: c est un delayed LOAD Le nombre de cycles où le registre ne peut pas être utilisé est la pénalité du LOAD (load delay ou load slot) Le forwarding n apporte pas de solution à ce cas. La solution la plus simple est ici le stall ou interlock: le pipeline est arrêté jusqu à ce que l aléa disparaisse (un cycle dans notre exemple) Le compilateur peut empêcher que ces cas arrivent, ajoutant des NOPs après le LOAD, dans le pire des cas Page 19

Aléas de contrôle Le pipeline doit chercher une nouvelle instruction avant que la présente soit exécutée. Si l instruction présente est un branchement conditionnel, avant que l adresse de saut soit calculée d autres instructions ont été cherchées. Pour notre exemple, la pénalité de branchement est de 3 cycles. Elle augmente avec la profondeur du pipeline. Si le processeur est superscalaire à n voies, la pénalité de branchement peut être multipliée par n. En moyenne, on trouve un branchement chaque 4-6 instructions... Page 20

Le blocage du pipeline est possible seulement après le décodage de l instruction de saut, quand l instruction suivante a déjà été cherchée. Pour notre exemple: t t+1 t+2 t+3 t+4 t+5 t+6 t+7 t+8 t+9 BRANCH IF ID EX MEM WB i + 1 IF IF ID EX MEM WB i + 2 IF ID EX MEM WB Une autre solution est celle de laisser régler le problème au compilateur, comme dans le cas des LOADs Bien entendu, le traitement des interruptions complique encore les choses... Page 21

Prédiction statique: Prédiction des sauts 486: par défaut le branchement n est pas pris MicroSparc et HP-PA: les branchement en arrière sont pris MIPS et PowerPC: le compilateur peut choisir le sens Prédiction dynamique: la prédiction pour un même branchement peut changer en cours d exécution, d après l histoire du comportement du branchement solution simple: prendre le même comportement que la dernière fois. Solution adoptée par l Alpha et le K5. le Pentium utilise une Branch History Table (BHT) pour garder trace du nombre de fois où le branchement a été pris le Pentium Pro est le premier processeur à employer une prédiction dynamique à deux niveaux. Une mauvaise prédiction a une pénalité de 15 cycles au minimum Page 22

95% Pentium Pro Branch prediction accuracy on SPECint92 90% 85% 80% 75% 70% 65% 60% 40% 486 SuperSparc MicroSparc-2 PPC601 21064 R8000 21064A 21164 PPC620 UltraSparc Pentium Always Not Taken Always Taken BTFN Compiler Directed 1-bit History 2-bit History Two Level Branch prediction algorithm Page 23

Le BHT possède une ligne par branchement. Et chaque ligne est un compteur-décompteur à deux bits: si le branchement est pris, on incrémente (avec arrêt à 3), on décrémente autrement (avec arrêt à 0). Un branchement est pris si le bit de poids fort de son compteur correspondant est égal à 1. Page 24

Dans la prédiction dynamique à deux niveaux il y a un BHT par branchement. Et le compteur de chaque ligne est une indication du nombre de fois qu une certaine séquence pris-non pris du branchement a eu lieu: le pointeur de ligne est un registre à décalage qui reçoit un 1 si le branchement est pris et un 0 dans le cas contraire. 111010 11 10 00 10 111010 01 11 Page 25