Architectures RISC et superscalaire. Pipe-Line synchrone



Documents pareils
Compilation (INF 564)

Exécution des instructions machine

Rappels d architecture

CM2 L architecture MIPS32

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

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

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

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

Architecture des Ordinateurs. Partie II:

Initiation au HPC - Généralités

Conception de circuits numériques et architecture des ordinateurs

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

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

ASR1 TD7 : Un microprocesseur RISC 16 bits

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

Fonctionnement et performance des processeurs

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

Jeu d instructions NIOS II

Prentice Hall, 2011 (ISBN )

Tout savoir sur le matériel informatique

Génération de code binaire pour application multimedia : une approche au vol

INF6500 : Structures des ordinateurs. Sylvain Martel - INF6500 1

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

Systèmes et traitement parallèles

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

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

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

Architecture des ordinateurs Introduction à l informatique

Conception de circuits numériques et architecture des ordinateurs

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

PIC : COURS ASSEMBLEUR

WSM la solution complète de provisionnement de bureaux virtuels

Cours 1 : La compilation

Architecture des Ordinateurs Première partie. Licence d Informatique - IUP Miage - FIIFO

IFT1215 Introduction aux systèmes informatiques

Systèmes d exploitation

Parallélisme et Répartition

Atelier C TIA Portal CTIA04 : Programmation des automates S7-300 Opérations numériques

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

Réparer un disque dur passé en RAW

Vulgarisation Java EE Java EE, c est quoi?

Matériel & Logiciels (Hardware & Software)

/ / / Système de distribution audio A44/A88 Logiciel PC

«Le malware en 2005 Unix, Linux et autres plates-formes»

Tests de performance du matériel

Informatique UE 102. Jean-Yves Antoine. Architecture des ordinateurs et Algorithmique de base. UFR Sciences et Techniques Licence S&T 1ère année

Réparer un disque dur passé en RAW

THEME 1 : L ORDINATEUR ET SON ENVIRONNEMENT. Objectifs

Master (filière Réseau) Parcours Recherche: Systèmes Informatiques et Réseaux (RTS)

UFR de Mathématiques et Informatique Année 2009/2010. Réseaux Locaux TP 04 : ICMP, ARP, IP

Systèmes d'exploitation des ordinateurs

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

Le signal GPS. Les horloges atomiques à bord des satellites GPS produisent une fréquence fondamentale f o = Mhz

Microprocesseurs spatiaux Contraintes et perspectives

Les systèmes embarqués Introduction. Richard Grisel Professeur des Universités Université de Rouen Nacer Abouchi Professeur ESCPE Lyon

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

Enregistreur de Température pour PC DALLAS 1820

Architecture des ordinateurs

MICROCONTROLEURS PIC PROGRAMMATION EN C. V. Chollet - cours-pic-13b - 09/12/2012 Page 1 sur 44

Le Registre sous Windows 8 architecture, administration, script, réparation...

Structure d un programme

Les systèmes de gestion de version

IV- Comment fonctionne un ordinateur?

CARTES A PUCE. Pascal Urien - Cours cartes à puce /06/10 Page 1

ELP 304 : Électronique Numérique. Cours 1 Introduction

COMMENT FAIRE? Comment bien se servir de WinHIIP? Expérimenter grâce aux guides imprimés!

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

MANUEL MARKETING ET SURVIE PDF

Gestion répartie de données - 1

Installation de SCCM 2012 (v2)

Concept de machine virtuelle

0 20mV; 0 40mV; 0 80mV; 0 160mV; 0 320mV; 0 640mV; 0 1,28V; 0 2,56V 0 5V; 0 10V

Conventions d écriture et outils de mise au point

Modélisation des interfaces matériel/logiciel

Packet Tracer : configuration des listes de contrôle d'accès étendues, scénario 1

Architecture matérielle des systèmes informatiques

Présentation et installation PCE-LOG V4 1-5

Linux embarqué: une alternative à Windows CE?

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

Installation Serveur DNS Bind9 Ubuntu LTS

Cours 3 : L'ordinateur

Sanity Check. bgcolor mgcolor fgcolor

Transmissions série et parallèle

Le système de gestion de version Git et GitHub

M2-Images. Rendu Temps Réel - OpenGL 4 et compute shaders. J.C. Iehl. December 18, 2013

Tout d abord les pré-requis : Au menu un certain nombre de KB

YANN ROUDAUT - Professeur de l Ecole Française de Poker - roudaut@ecolefrancaisedepoker.fr

Projet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte

Fiche technique CPU 315SN/PN (315-4PN33)

NanoSense. Protocole Modbus de la sonde Particules P4000. (Version 01F)

RACCORDS ET TUYAUTERIES

Licence Sciences et Technologies Examen janvier 2010

ECOLE POLYTECHNIQUE DSI. Utilisation des serveurs mandataires («proxy») avec les protocoles d usage courant

ROYAUME DU MAROC RESUME THEORIQUE & GUIDE DE TRAVAUX PRATIQUES : TERTIAIRE ET NTIC : SYSTÈME ET RÉSEAUX INFORMATIQUES

Architecture des ordinateurs

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

CHAPITRE V SYSTEMES DIFFERENTIELS LINEAIRES A COEFFICIENTS CONSTANTS DU PREMIER ORDRE. EQUATIONS DIFFERENTIELLES.

Propagation sur réseau statique et dynamique

Pour obtenir le grade de. Arrêté ministériel : 7 août Sylvain Genevès

Plan du cours. Historique du langage Nouveautés de Java 7

Transcription:

Architectures RISC et superscalaire Pipe-Line synchrone version 1.0

Introduction Les processeurs RISC (Reduced Instruction Set Computer) sont apparus au début des années 80, grâce au développement des capacités d intégration VLSI et au développement des technologies de compilation. Les pionniers sont : - Université de Berkeley (Prof. D.Patterson) SPARC 1981 - Université de Stanford (Prof. J.Hennessy) MIPS 1982 L objectif est d améliorer les performances des processeurs, en déplaçant la frontière entre matériel et logiciel, et en utilisant la technique du pipeline synchrone. Les processeurs à architecture RISC sont très utilisés dans les systèmes multi-processeurs intégrés sur puce (MPSoC), car ils ont un excellent rapport puissance de calcul / mm2 de silicium. 2

Introduction (suite) On présente dans ce cours une réalisation «pipe-linée» du processeur P32 présenté en cours. Cette architecture exécute le même jeu d instruction que l architecture micro-programmée, (elle peut exécuter le même code binaire), mais elle est 4 ou 5 fois plus rapide. 3

Evaluation des performances La principale métrique est le chronomètre On cherche à minimiser le temps d exécution du programme, en diminuant la valeur du CPI sans augmenter TC : Texec = N * CPI * TC N : nombre total d instructions exécutées CPI : nombre moyen de cycles par instruction TC : temps de cycle CPI = k CPI k * k, où les { ak } sont les fréquences mesurées pour les différents types d instruction du programme. 4

MIX instructions Tous les types d instructions n ont pas la même fréquence d utilisation. Les valeurs { ak } sont dépendantes de chaque programme particulier, mais on peut définir des valeurs typiques, par classes d instructions : add lw sw bne Instructions de calcul entre registres Instructions de lecture en mémoire Instructions d écriture en mémoire Instructions de branchement (conditionnel ou non) 45% 20% 10% 25% 5

Principe du pipe-line synchrone Exécution séquencielle : instruction i instruction i+1 instruction i+2 temps Exécution parallèle pipeline : instruction i instruction i+1 instruction i+2 On n attend pas que l instruction i ait fini de s exécuter pour démarrer l instruction i+1 6

Pipeline à 5 étages lw Ai, imd(aj) (lecture mémoire) I FETCH DECODE IR <= M[PC] PC<= PC+1 OP1<= A(R) OP2<= A(S) EXECUTE RES<= OP1+IR MEMORY WRITE DT<= M[RES] A(T) <= DT instruction : COP R S T IMD 7

Pipeline à 5 étages I FETCH DECODE lw Ai, imd(aj) (lecture mémoire) IR <= M[PC] PC<= PC+1 OP1<= A(R) OP2<= A(S) add Ak, Aj, Aj (addition registres) IR <= M[PC] PC<= PC+1 OP1<= A(R) OP2<= A(S) EXECUTE RES<= OP1+IR RES<= OP1+OP2 MEMORY WRITE DT<= M[RES] A(T) <= DT DT<= RES A(T) <= DT instruction : COP R S T IMD 8

Pipeline à 5 étages lw Ai, imd(aj) add Ak, Aj, Aj bne Ai, imd (lecture mémoire) (addition registres) (branchement) I FETCH IR <= M[PC] IR <= M[PC] IR <= M[PC] PC<= PC+1 PC<= PC+1 PC<= PC+1 DECODE OP1<= A(R) OP1<= A(R) OP1<= A(R) OP2<= A(S) OP2<= A(S) OP2<= A(S) PC<= PC+imd PC<= PC+imd PC<= PC+imd si (A(R)!=0) & bne si (A(R)!=0) & bne si (A(R)!=0) & bne EXECUTE RES<= OP1+IR RES<= OP1+OP2 NOP MEMORY DT<= M[RES] DT<= RES NOP WRITE A(T) <= DT A(T) <= DT NOP instruction : COP R S T IMD 9

Exécution parallèle des instructions Dans un pipe-line à 5 étages, on a 5 instructions en cours d exécution : instruction i instruction i+1 instruction i+2 instruction i+3 instruction i+4 I0 D0 E0 M0 W0 I1 D1 E1 M1 W1 I2 D2 E2 M2 W2 I3 DD E3 M3 W3 I4 D4 E4 M4 W4 temps 10

Les difficultés à résoudre 1/ Conflits de ressource Que se passe-t-il si deux étages du pipe-line ont desoin d utiliser une même ressource matérielle? 2/ dépendances de données Que se passe-t-il lorsque l instruction I+1 utilise un résultat calculé par l instruction I+1? 3/ dépendances de contrôle Que se passe-t-il pour l instruction I+1 si l instruction i est un branchement pris? 11

Conflits de ressource (1) Deux accès à la mémoire au même cycle! - lecture instruction : I4 - lecture de données : M1 i i+1 i+2 i+3 i+4 I0 D0 E0 M0 W0 I1 D1 E1 M1 W1 I2 D2 E2 M2 W2 I3 DD E3 M3 W3 I4 D4 E4 M4 W4 12

Conflits de ressource (2) Règle générale : Chaque étage du pipe-line doit disposer de ses propres ressources matérielles! exemple 1 : Le processeur doit posséder deux ports indépendant pour lire les instructions et pour lire(ou écrire) les données Instruction 32 32 Donnée Adresse Instruction 32 Processeur 32 Adresse Donnée exemple 2 : l étage IFETCH doit disposer de son propre additionneur pour effectuer l incrémentation PC<= PC+1, et ne peut utiliser l Unité Arithmétique et Logique de l étage EXEC 13

Dépendances de données (1) Dépendance de type producteur / consommateur : L instruction (i) produit un résultat utilisé par une des instructions (i+1), (i+2) ou (i+3) t0 t1 t2 t3 t4 t5 t6 t7 i i+1 i+2 i+3 i+4 I0 D0 E0 M0 W0 I1 D1 E1 M1 W1 I2 D2 E2 M2 W2 I3 DD E3 M3 W3 I4 D4 E4 M4 W4 L instruction (i) écrit le résultat dans le registre destination en fin de cycle t4, et l instruction i le lit en début de cycle t2 14

Dépendances de données (2) t0 t1 t2 t3 t4 t5 t6 t7 add Ak,Ai,Aj i+1 i+2 i+3 i+4 I0 D0 E0 M0 W0 I1 D1 E1 M1 W1 I2 D2 E2 M2 W2 I3 D3 E3 M3 W3 I4 D4 E4 M4 W4 Si l instruction productrice est une instruction de calcul, on peut résoudre le problème par un mécanisme de «bypass» La dépendance est masquée : Tout se passe «comme si» l instruction (i) avait terminé son exécution lorsque l instruction (I+1) démarre, et la sémantique d exécution séquentielle des instructions est préservée. 15

Dépendances de données (3) t0 t1 t2 t3 t4 t5 t6 t7 lw Ai, imd(ak) i+1 i+2 i+3 i+4 I0 D0 E0 M0 W0 I1 D1 E1 M1 W1 I2 D2 E2 M2 W2 I3 D3 E3 M3 W3 I4 D4 E4 M4 W4 Si l instruction productrice est une instruction de lecture en mémoire, la dépendance de donnée entre (i) et (i+1) ne peut pas être masquée, car la donnée n entre dans le processeur qu à la fin du cycle t3. En revanche, les dépendances entre (i) et (i+2) ou (i+3) peuvent être masquées par les bypass. 16

Dépendances de données (4) t0 t1 t2 t3 t4 t5 t6 t7 mul Ai, Aj, Ak i+1 i+2 i+3 i+4 I0 D0 E0 E0 E0 W0 I1 D1 E1 M1 W1 I2 D2 E2 M2 W2 I3 D3 E3 M3 W3 I4 D4 E4 M4 W4 Si l instruction productrice est une instruction complexe (une multiplication prend 3 cycles), la dépendance de donnée ne peut pas être masquée, car le résultat n est disponible qu à la fin du cycle t4. Ce résultat peut être utilisé, au plus tôt, par l instruction (i+3). 17

Dépendances de données (5) Deux approches pour résoudre le problème des dépendances de données dans le cas des instructions «lw» ou «mul» : 1/ solution «matérielle» On «gèle» partiellement le processeur en cas de dépendance, pour attendre la disponibilité de la donnée attendue. => Inconvénient : la durée visible (CPI) de l instruction passe à 2 cycles pour «lw» et 3 cycles pour «mul» 2/ solution «logicielle» On modifie la sémantique d exécution séquencielle du programme, et on informe le compilateur que les instructions lw et mul ont un «effet retardé»: le résultat ne peut pas être utilisé immédiatement. => Inconvénient : Le compilateur doit anticiper les lectures en mémoire et les multiplications, ou mettre des instructions «nop» 18

Dépendances de contrôle (1) t0 t1 t2 t3 t4 t5 t6 t7 bne i+1 i+2 i+3 i+4 I0 D0 E0 M0 W0 I1 D1 E1 M1 W1 I2 D2 E2 M2 W2 I3 D3 E3 M3 W3 I4 D4 E4 M4 W4 Si l instruction (i) est un branchement, l instruction cible ne peut être lue qu au cycle t2 (étage I2), puisque l adresse de saut n est calculée qu au cycle t1 (étage D0). => l instruction (i+1) est entrée à tort dans le pipe-line. 19

Dépendances de contrôle (2) Deux approches pour résoudre le problème des instructions de branchement : 1/ solution «matérielle» On n exécute pas l instruction (i+1) qui est entrée à tort dans le pipe-line: pas d écriture dans les registres ou en mémoire. => Inconvénient : la durée visible (CPI) des instructions de branchement passe à deux cycles. 2/ solution «logicielle» On modifie la sémantique d exécution séquencielle du programme : les instructions de branchement ont un effet retardé : l instruction qui suit immédiatement un branchement est toujours exécutée. => Inconvénient : Le compilateur doit anticiper les instructions de branchement, en modifiant l ordre des instructions. 20

Conclusions La technique de pipe-line synchrone permet de gagner un facteur 4 en performance, pour une augmentation de surface (nombre de transistors) d un facteur 2 environ. Il a fallu pour cela «régulariser» le jeu d instruction : Toutes les instructions s exécutent en 5 cycles Toutes les instructions ont le même format (32 bits) Un seul mode d adressage. Une grosse partie du travail est déporté vers le compilateur : Anticipation des lectures mémoire Anticipation des branchements Décomposition des opérations complexes. RISC = Reject Important Stuff into Compiler 21