archi 1 eii 1 complet

220
Daniel Chillet, CAIRN-IRISA-ENSSAT-Université de Rennes 1 1 Support de cours EII 1 D.Chillet [email protected] http://cairn.enssat.fr Architectures des machines

Upload: de-zuyngan

Post on 18-Dec-2015

39 views

Category:

Documents


9 download

DESCRIPTION

about modern computer architecture

TRANSCRIPT

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 1

    Support de cours EII 1

    D.Chillet [email protected]

    http://cairn.enssat.fr

    Architectures des machines

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 2

    Architecture des machines

    Plan Introduction objectif du cours historique des systmes informatiques machines algorithmiques : classification

    Machines ddies ou programmables ? automate tats finis modle, matrialisation, implantation dalgorithmes hirarchisation notion de langage associ un niveau de la hirarchie

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 3

    Architecture des machines

    Plan (suite) Modle Von Neumann la machine et le cycle Von Neumann excution d'instruction

    Le concept RISC historique, observations concepts volution des processeurs processeurs CISC -- RISC

    Hirarchie mmoire Mmoire cache

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 4

    Architecture des machines

    Plan (suite)

    Fonctionnement pipeline Principe Objectifs Problmes

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 5

    Architecture des machines

    Plan Introduction

    Machines ddies ou programmables ?

    Modle Von Neumann

    Le concept RISC

    Hirarchie mmoire

    Fonctionnement pipeline

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 6

    INTRODUCTION

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 7

    Introduction

    Computer Science

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 8

    Introduction Historique : les bases

    le calcul a pour anctre : mains : doigts et articulations

    digit binary digit = bit calculer = grouper des cailloux

    la manipulation de cailloux : calculus abaque :

    romain : compos d'une plaque mtallique et de 9 rainures dans lesquelles on vient placer des jetons

    les cordelettes nuds le boulier occidentales (environ 500 av J.C) :

    trs proche de l'abaque pratique, "rapide", mais ne reporte pas la retenue

    rgle calculer exemple : 2*4

    tables : trs grand nombre de tables produites la main (logarithme, multiplication, etc) trs nombreuses erreurs

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 9

    Introduction

    la cryptographie et le codage ont pour anctres : remplacement des lettres par leurs numros

    utilis par la cours d'Angleterre : (1561-1626) les lettres sont cods de la faon suivante :

    A = aaaaa B = aaaab C = aaaba D = aaabb E = aabaa F = aabab G = aabba H = aabbb

    exemple : Honni soit qui mal y pense : codage de chaque lettre : Honni = aabbb abbab abbaa abbaa abaaa

    on prend un texte quelconque, dans lequel on crit en gras les lettres qui correspondent aux lettres b et en normal les lettres qui correspondent aux a :

    Il deviendra un serpent noir

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 10

    Introduction Morse invente le tlgraphe et

    le codage associ : les lettres sont transmises par

    des sries de points et de traits reprsentation binaire de

    symboles : la notation est simple les rgles opratoires sont simples les lettres les plus frquentes ont un

    codage le plus petit possible

    A .- B -... C -.-. D -.. E . F ..-. G --. H . I .. J .--- K -.- L .-.. M --

    N -. O --- P .--. Q --.- R .-. S ... T - U ..- V - W .-- X -..- Y -.-- Z --..

    0 ----- 1 .---- 2 ..--- 3 -- 4 .- 5 .. 6 -. 7 --... 8 ---.. 9 ----. . .-.-.- , --..-- ? ..--..

    Erreur .. Debut -.-.- Fin .-.-.

    Frquence d'apparition des lettres de l'alphabet dans les textes anglais

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 11

    Introduction notion de programme :

    enregistrement pralable d'une suite d'oprations :

    orgue barbarie, pianos mcaniques, boites musique

    portage vers les activits industrielles : commande de mtier tisser, utilisation de bandes

    perfores (fin 18 ime sicle) le motif tisser est "cod" sur la bande qui tourne en continue. On change le motif en changeant la bande

    Jacquard est le premier utiliser la notion de programme

    mot "ordinateur" : proposition de Jacques Perret IBM

    France en 1956 mot informatique :

    cr par Philippe Dreyfus en 1964 partir des mots :

    information automatique

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 12

    Introduction notion de logiciel :

    naissance partir de l'apparition des ordinateurs programmables

    machines construites : mcanique :

    Konrad Zuse : machine Z1 (1936), machine entirement mcanique, utilisation d'un systme binaire pour la reprsentation des nombres, nombres codes en virgule flottante, la machine recevait le programme sur un film 35 mm avec des trous fait la main

    lectromcanique : Konrad Zuse : machine Z2, Z3 et Z4 le Z3, 1941 (lectromcanique) est considr comme le premier ordinateur avec

    programme fournit par bande perfore, traitement des nombres en virgule flottante avec 14 bits pour la mantisse et 7 bits pour l'exposant. Machine ralisant 3 ou 4 additions par secondes, 1 multiplication en 4 secondes. La machine ne pouvait pas raliser de branchements conditionnels (frquence de processeur 5,33 Hertz, 20 Flops)

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 13

    Introduction Stibitz (1904 - 1995) : ralisa un additionneur binaire lectromcanique l'aide

    de relais de tlphone,

    Les Bell Labs utilisrent cette ide pour construire une calculatrice de nombres complexes (oprations : addition, soustraction, multiplication, division). Le code binaire tait redondant si bien que les machines (peu fiable) taient capable de dtecter des erreurs de calculs

    MARK 1 : machine de Babbage lectromcanique, cycle de 6 secondes,

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 14

    Introduction lectronique :

    Stibitz : le Z22 : machine entirement lectronique Atanasoff (1903 1995) : machine ABC (Atanasoff Berry Computer), machine utilisant le

    code binaire, oprations d'addition et de soustraction, frquence d'excution de 60 hertz (60 cycles d'excution par seconde). Cette machine servit de modle pour la construction de l'ENIAC.

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 15

    Introduction ENIAC :

    1943 1944, vitesse de travail 200 000 Hz ou tapes par secondes, la machine travaillait avec la base 10 et non la base 2, il tait compos d'un multiplieur, d'un diviseur, d'une table de fonction , sa programmation consistait connecter les diffrentes units entres elles, la notion de programmation consistait alors en la ralisation d'un cblage long et non modifiable par la machine elle mme. L'ENIAC tait sujet une panne tous les 3 jours environ. Il calcul 5000 additions ou 350 multiplications par seconde. Cette machine fut utilise pour calculer les 70 premires dcimale de PI en 70 heures de calcul. La machine fonctionna 10 ans.

    7,4 * 5,3 mm 174 569 transistors Ralis pour le 50ime anniversaire

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 16

    Introduction Quelques grands noms

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 17

    Introduction Historique, quelques grands noms : Blaise Pascal : 1623 - 1662 :

    machine Pascaline : mise au point l'ge de 19 ans utilise des roues dentes qui permettent de raliser des

    additions et soustractions les roues comportent 10 positions (de 0 9) chaque fois qu'une roue passe de 9 0 elle entrane la

    roue immdiatement gauche la soustraction est ralise grce la mthode des

    complments arithmtiques : s = a - b s = a + ! b

    Mac

    hine

    arit

    hmt

    ique

    de

    Pas

    cal

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 18

    Introduction

    Babbage : 1792 - 1871 prof de mathmatique Cambridge ide de dpart :

    consistait mcaniser les calculs des tables utilises notamment la navigation

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 19

    Introduction 1820 : machine diffrences n1 : objectifs : produire des tables

    mathmatiques exactes observation : les longs calculs sont souvent des rptitions d'oprations

    similaires (traitement d'une srie d'oprations en squence) ide de dpart : concept dvelopp par Jacquart programme inscrits sur cartes perfores calcul de fonctions polynomiales de degr 6 avec une prcision 16 chiffres cette machine ne fut jamais acheve elle donna toutefois naissance premier calculateur automatique (plus simple) qui

    mcanisait une rgle mathmatique ensuite Babbage labora les plans dune machine plus perfectionne : machine

    diffrences n2 fonctions polynomiales de degr 7 avec une prcision de 31 chiffres

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 20

    Introduction 1833 : machine analytique :

    objectif : trouver la valeur de toute expression mathmatique pouvant sexprimer sous forme algorithmique (droulement des oprations de faon conditionnelle)

    4 oprations de base : addition, soustraction, multiplication, division itrations et branchements conditionnels permettaient la programmation deux lments principaux :

    le moulin ====> le processeur le magasin ===> la mmoire

    cette machine ne fut jamais construite il fut nanmoins encourag par Ada Augusta King (1816 1852) qui se passionna

    pour cette machine et crivit des programmes partir des plans fournis par Babbage. Elle est considre comme la premire programmeuse et le langage Ada fut baptise de son premier prnom.

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 21

    Introduction A partir des plans originaux, la machine diffrences n2 fut

    construite, elle fonctionne parfaitement : elle est expose dans un muse Londres

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 22

    Introduction Boole : 1815 - 1864

    mathmaticien Il conoit l'algbre qui porte son nom :

    algbre base sur 2 signes : Oui = 1 ; Non = 0

    et sur 3 oprateurs : ET ; OU ; PAS

    algbre capable d'assurer la totalit des calculs envisageables (toutes fonctions calculables)

    La logique devient une discipline mathmatique

    A 0 0 1 1

    B 0 1 0 1

    ET 0 0 0 1

    OU 0 1 1 1

    PAS B 1 0 1 0

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 23

    Introduction Turing : 1912 - 1954

    il formule le concept de calculabilit : tout processus logique peut tre dcompos en une suite

    doprations lmentaires qui peuvent tre excutes par une machine

    il dfinit une machine pouvant travailler de faon automatique :

    notion de programmation par table d'instructions : automate partir du moment ou la configuration est dfinie par une table dinstructions

    (machine universelle) la machine excute son travail 1 calcul particulier ===> une table dinstructions particulire

    travaillera au dchiffrage des messages allemand, systme Enigma

    il sintresse ensuite la mcanisation des processus de la pense

    rflexions propos dune machine capable de jouer aux checs aprs la guerre, il travaille sur un projet de machine

    universelle : ACE (Automatic Computing Engine)

    en 1950 il publie un article dans une revue philosophique :

    "Lordinateur et lintelligence", prmisse de lintelligence artificielle

    Statue du mmorial Alan Turing Whitworth Gardens

    (Manchester, Angleterre)

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 24

    Introduction Machine de Turing :

    vue interne Ruban de taille infinie

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 25

    Introduction Machine de Turing :

    vue externe

    fonctionnement la machine est dans un tat

    lecture du ruban criture sur le ruban dplacement gauche ou droite changement d'tat

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 26

    Introduction Exemple de machine:

    incrmentation d'une valeur

    Etat courant

    START Addition

    Retenue

    Pas de retenue

    Dpassement Retour

    Contenu cellule

    courante

    * 0 1 * 0 1 * 0 1 * ? 0 1 *

    Contenu

    crire

    * 1 0 * 1 0 1 0 1 * * 0 1 *

    Dplacement tte de lecture

    gauche gauche gauche droite

    gauche gauche gauche gauche gauche droite droite droite droite rien

    Nouvel tat

    Addition Pas de retenue

    Retenue Retour

    Pas de retenue Retenue

    Dpassement Pas de retenue Pas de retenue

    Retour Retour Retour Retour STOP

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 27

    Introduction

    Tte de lecture

    Etat : START Lecture : * Ecriture : * Dpla : gauche Etat suiv : Add

    * 1 0 1 *

    Tte de lecture

    Etat : Add Lecture : 1 Ecriture : 0 Dpla : gauche Etat suiv : Retenue

    * 1 0 1 *

    Tte de lecture

    Etat : Retenue Lecture : 0 Ecriture : 1 Dpla : gauche Etat suiv : Pas retenue

    * 1 0 0 *

    Tte de lecture

    Etat : Pas retenue Lecture : 1 Ecriture : 1 Dpla : gauche Etat suiv : Pas retenue

    * 1 1 0 *

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 28

    Introduction

    Tte de lecture

    Etat : Pas retenue Lecture : * Ecriture : * Dpla : droite Etat suiv : Retour

    * 1 1 0 *

    Tte de lecture

    Etat : Retour Lecture : 1 Ecriture : 1 Dpla : droite Etat suiv : Retour

    * 1 1 0 *

    Tte de lecture

    Etat : Retour Lecture : 1 Ecriture : 1 Dpla : droite Etat suiv : Retour

    * 1 1 0 *

    Tte de lecture

    Etat : Retour Lecture : 0 Ecriture : 0 Dpla : droite Etat suiv : Retour

    * 1 1 0 *

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 29

    Introduction Von Neumann : 1903- 1957

    mathmaticien Hongrois brillant : il changea de nationalit en 1937 pour devenir amricain il sest intress aux disciplines suivantes :

    mathmatiques purs, thories des ensembles, logique, thorie de la mesure, physique, thorie des oprateurs, statistique, analyse numrique, hydrodynamique, balistique, etc etc

    il participe au dveloppement de la bombe atomique (Los Alamos) : pour raliser les calculs de dtonation et dimplosion, il imagine une nouvelle machine compose

    dune unit de calcul, dune mmoire et dun programme.

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 30

    Introduction en 1944 il rejoint Eckert et Mauchly qui sont en train de mettre au point un calculateur

    lectronique : ENIAC : Electronic Numerical Integrator and Computer : sa premire tche consista dcoder les messages cods des

    Nazis machine pouvant prendre des dcisions en fonction d'un rsultat de calcul prcdent (rsultat positif ou ngatif)

    nouveau projet EDVAC : Electronic Discrete Variable Automatic Computer : les instructions sont enregistres dans une mmoire et le programme peut sauto modifier, la machine passe du stade

    de calculateur celui dordinateur il publie un rsum du projet, le rapport (un pr rapport suite aux nombreuses discussions sur les limitations de l'ENIAC

    avec Eckert et Mauchly) est attribu (maladroitement) Von Neumann, tous les honneurs lui reviennent (Eckert et Mauchly se sentent exclus du succs auquel ils ont largement particip).

    Mauchly

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 31

    Introduction Von Neumann montre qu'en enregistrant le programme dans la mmoire en

    mme temps que les donnes traiter, alors on obtient un automate qui a les proprits de la machine de Turing :

    machine algorithmique universelle

    en 1947 un rapport est diffus par Von Neumann, Burks et Goldstine, il donne les prescriptions pour la ralisation d'un ordinateur :

    le programme et les donnes sont enregistrs le programme et les donnes sont dans une mme mmoire dcoups en cellules cette mmoire est unique et banalise les contenus de la mmoire sont accessibles pour la lecture et l'criture par localisation de leur

    contenant (c'est ce que l'on appellera plus tard les adresses). la commande de la machine est squentielle (excution des oprations instruction aprs instruction)

    dans l'ordre des cellules mmoire (sauf en cas de branchements qui peuvent tre impratif ou conditionn par des rsultats de calcul prcdent)

    l'excution de chaque instruction est acheve avant que la suivante ne commence l'unit de traitement ralise un jeu d'oprations entre les registres

    Un grand nombre de ralisation furent bases sur ce schma que l'on appelle de "Von Neumann"

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 32

    Introduction

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 33

    Introduction

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 34

    Introduction Les premires machines : dfauts des premiers ordinateurs :

    fiabilit incertaine : 1 panne tous les 3 jours pour l'Eniac

    besoin de refroidissement : 5 chevaux pour la Mark 1 (3700 Watt !!)

    encombrement certain : 160 m2 pour la Mark 1

    dfauts des langages associs : la taille de la mmoire tant trs limite, le code est compact au

    maximum : grande poque du GOTO et de la rutilisation de morceaux de programmes pas de notion de structuration de programme, d'interface utilisateur et de

    convivialit

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 35

    Introduction Les diffrentes gnrations

    5 1978- Trs forte intgration Very Large scale integration (VLSI)

    100 000 000

    4 1972-1977 Forte intgration Large scale integration (LSI)

    10 000 000

    1

    2

    3

    1946-1957

    1958-1964

    1965-1971

    Tubes vide 40 000

    Transistors 200 000

    Petite et moyenne intgration Small and medium scale integration

    1 000 000

    1956 0'' Electronique 0' Electromcanique 0 1642 Mcanique quelques op/s

    Gnrations Dates Technologies Vitesses (op/s)

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 36

    Introduction Qu'est qu'un "ordinateur" ? systme compos de :

    processeur(s) : unit centrale mmoire(s) : stockage dispositif(s) d'entres sorties : lien avec l'extrieur

    Imprimante

    Units d'entres sorties

    Bus

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 37

    Introduction L'unit centrale :

    machine qui excute des ordres lmentaires de faon squentielle sur des donnes : on parle de machine algorithmique

    c'est donc une machine qui manipule des donnes, oprations sur les donnes : addition, multiplication consommation des donnes traiter, et production de donnes traites

    notion d'unit de traitement et d'unit de commande la diffrence d'une simple calculatrice, l'ordinateur comporte une unit de commande capable de

    traiter un programme (interne ou externe)

    Unit de traitement

    Donnes traiter

    Donnes traites

    Ordres

    Compte rendus

    Unit de commande

    Programmes

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 38

    Introduction Unit de traitement :

    elle effectue, sur les donnes qu'elle reoit, les traitements commands par l'unit de commande

    au cours des traitements, les donnes temporaires sont stockes dans des mmoires locales internes, REGISTRES

    Unit de commande : elle squence les oprations sur l'unit de traitement

    elle rcupre les instructions depuis l'extrieur elle dcode les instructions elle demande l'excution de l'opration l'unit de traitement elle rcupre les comptes rendus d'excution

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 39

    Introduction La mmoire :

    stockage : des donnes des programmes

    l'unit de stockage est le bit : valeurs 0 ou 1

    les donnes sont stockes dans des cellules mmoires par exemple des cellules de 8 bits

    chaque cellule possde un numro : adresse le processeur manipule les donnes via leurs adresses

    a7 a6 a5 a4 a3 a2 a1 a0

    Poi

    ds fo

    rt

    Poi

    ds fa

    ible

    A

    Bus d'adresses 001011 Bus de donnes

    Sens de l'accs

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 40

    Introduction Les entres sorties :

    change d'informations entre l'environnement (utilisateur, capteur, appareils de mesure, etc) et la machine

    2 modes d'organisation : pour les petits systmes :

    beaucoup plus simple 1 seul bus raccordant le microprocesseur, la mmoire et les entres/sorties les priphriques sont constitus de 2 parties : le contrleur et le priphrique proprement parl le rle du contrleur consiste piloter le priphrique et grer les accs au bus un mcanisme d'arbitrage permet de rgler les conflits lorsque le processeur et un contrleur veulent utiliser

    simultanment le bus

    Unit centrale

    Mmoire principale

    Contrleur d'cran

    Contrleur de clavier

    Contrleur disquette

    Contrleur disquette

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 41

    Introduction pour les grands systmes :

    mise en place de processeurs d'entres sorties les priphriques sont connects sur des canaux grs par ces processeurs les entres sorties sont sous traites aux processeurs spcialiss, soulage l'unit centrale, travail en

    parallle bus d'entres sortie permet au processeur de dialoguer avec les processeurs spcialiss bus mmoire permet aux processeurs d'E/S des accs directe la mmoire sans passer par le

    processeur

    Mmoire

    Unit centrale

    Processeur d'E/S

    Processeur d'E/S

    Priphriques

    Bus d'entres / sorties

    Bus mmoire

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 42

    Introduction Qu'est ce qu'un systme informatique ? systme regroupant plusieurs machines :

    chaque machine est compose de nuds: homognes htrognes

    les nuds sont soient : des lments simples (processeurs simples, petites mmoires) des lments complets (ordinateurs complets, processeurs, mmoire, disques,

    entres sorties,etc)

    les machines dialoguent : (changent des informations, coopration pour la ralisation d'un travail complexe) :

    au moyen de bus communs d'envoi de messages

    notions: de paralllisme de partage de ressources tolrances aux fautes etc

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 43

    Introduction

    Le premier programme !!!

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 44

    Machines algorithmiques

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 45

    Qu'appelle-t-on "machine algorithmique " ?

    machine capable : d'excuter une suite d'instructions de manire automatique de prendre des dcisions quant la suite des traitements raliser

    en fonction du droulement des oprations prcdentes

    on distingue deux classes de machines : les machines programmables les machines ddies

    Machines algorithmiques

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 46

    Machines algorithmiques Les machines programmables :

    modle :

    notion de flexibilit : existence d'un programme "droulant" l'application :

    si lapplication change, il suffit de modifier le programme

    machine d'usage gnrale : utilisation non optimale du processeur lapplication est pose sur le modle du processeur

    68000

    Mem Capteurs

    Donnes traiter

    vnements

    Donnes traites

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 47

    Machines algorithmiques Les machines ddies :

    modle :

    pas de flexibilit : btit le processeur partir des besoins de lalgorithme mise en place du bon nombre dunits de calcul chaque unit est taille en fonction des besoins :

    vitesse (temps de calcul) surface (cot silicium) consommation (puissance)

    machine d'usage spcifique : utilisation optimale de la machine

    Capteurs

    Donnes traiter

    vnements

    Donnes traites

    UC UC

    Ucontrle

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 48

    Machines algorithmiques

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 49

    Machines algorithmiques

    Flexibilit programmabilit

    Performances ASIC

    ASIP

    Processeurs gnraux

    DSP

    Pour une application donne

    Machines ddies

    Machines programmables

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 50

    Machines algorithmiques Modlisation d'une machine algorithmique

    AEF de traitement

    commandes compte rendu

    AEF de commande

    Evnements

    Donnes Donnes

    Evnements +

    Instructions

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 51

    Machines algorithmiques

    St = g ( Xt , Et ) Xt+1 = f ( Xt , Et )

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 52

    Machines algorithmiques

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 53

    Machines algorithmiques Lautomate de commande :

    ragit aux vnements extrieur cre des vnements pour lenvironnement gnre le flot de commandes traduit lalgorithme excuter

    Lautomate de traitement : il est pilot par lAEF de commande ragit aux commandes de celui-ci gnre des donnes pour lenvironnement excute les oprations sur les donnes reues produit des comptes rendus de traitement (de calcul)

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 54

    Machines algorithmiques

    AEF de traitement : Et : les variables dentre :

    commande provenant de lautomate de commande donnes provenant de lenvironnement (extrieure)

    St : les variables de sortie : compte rendu de calcul action sur lenvironnement

    Xt : le vecteur dtat de lautomate : mmorisation intermdiaire de calcul

    g : la fonction qui dfinit ltat des sorties : dfinit les actions dfinit les comptes rendus

    f : la fonction qui dfinit lvolution de lautomate : dfinit les calculs en fonction des commandes

    St = g ( Xt , Et ) Xt+1 = f ( Xt , Et )

    AEF Donnes

    Cmd Cpt

    Donnes

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 55

    Machines algorithmiques AEF de traitement (suite) : 2 primitives :

    calcul : fonctions combinatoires mmorisation : registres, file de registres, mmoire

    2 modles : chemins partags chemins point point

    (ou encore registres ddis) (ou encore registres gnraux)

    R1 R2 R3 O1 O2 Bus 1

    Bus 3

    R1 R2 R3 O1 O2

    Bus 2

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 56

    Machines algorithmiques Avantages et inconvnients :

    bus point point : paralllisme maximum implantation efficace des algorithmes :

    extraction du paralllisme de lapplication ordonnancement des oprations sur les units de calculs

    coteux : trs nombreux bus nombreuses connections

    intressant pour les machines fort taux de calcul : flot de donnes

    bus partags : les bus sont un goulot dtranglement moins coteux ncessit de squencer les oprations indpendantes modle de tous les processeurs existants

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 57

    Machines algorithmiques Quest ce qui distingue les AEF de traitement ? largeur des bus :

    dabord en 4 bits, puis 8, ... 64 bits, voir mme 128 bits complexit des units de calcul :`

    dabord entire puis flottante en 4, puis 8, ... puis 64 bits, (128 bits dans certains cas)

    nombre de ressources de calcul : 1 UAL : addition, soustraction, oprations logiques (ou, et, not, etc) ajout dune unit flottante, doublement des units de calcul

    nombre de registres : une dizaine dans les premiers processeurs quelques dizaines

    dans les processeurs RISC le rle des registres :

    de calcul dadresses et de donnes ou gnraux

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 58

    Machines algorithmiques la taille de la mmoire adressable :

    quelques kilo octets quelques giga octets la prsence dune organisation mmoire complexe :

    mise en place de mmoire(s) cache(s) recherche dun compromis entre taille et temps daccs registres trs rapide mais cote cher taille mmoire et temps daccs voluent dans des directions opposes

    mmoires externes aux processeurs lente, passage par des buffers et par les pads du circuit

    lvolution de la densit a permit dimplanter des mmoires dans le circuit bnficie dun temps daccs trs rapide

    1 / temps daccs

    taille

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 59

    Machines algorithmiques

    Alpha 21064

    Mips R4000 Pentium

    Power PC 601 80486 68040

    200 Mhz

    64 bits

    2 * 8 ko

    4

    2 * 32

    30 w

    2,2

    150 Mhz

    64 bits

    2 * 16 ko

    ??

    2 * 32

    15 w

    4,7

    66 Mhz

    32 bits

    2 * 8 ko

    3

    2 * 8

    16 w

    3,8

    80 Mhz

    32 bits

    32 Ko

    3

    2 * 32

    9 w

    2,4

    50 Mhz

    32 bits

    2 * 4 ko

    1

    16 + 8

    6 w

    1

    25 Mhz

    32 bits

    8 ko

    1

    2 * 8

    5 w

    1,8

    Frquence

    Largeur bus

    Cache

    Units indp

    Registres

    Consom

    Prix

    Caractristiques de quelques processeurs (1994 - 1995)

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 60

    Machines algorithmiques Alpha 21164

    Mips R10000

    Pentium II

    Power PC 604e

    600 Mhz

    64 bits

    16 et 8 ko

    4

    2 * 32

    40 w

    275 Mhz

    64 bits

    2 * 32 ko

    5

    2 * 32

    30 w

    300 Mhz

    32 bits

    2 * 16 ko

    7

    ? w

    350 Mhz

    32 bits

    2 * 32 Ko

    6

    12 w

    Frquence

    Largeur bus

    Cache

    Units indp

    Registres

    Consom

    Prix

    Caractristiques de quelques processeurs

    Pentium 4

    2400

    12 K trace L1 = 8K

    L2 = 256 K

    7

    32 entiers, 80 flottants,

    64 MMX

    55

    1200

    64

    L1 = 2*64K L2 = 1,75 M

    6

    2 * 80 int reg 72 float reg

    155

    G4

    1250

    L1 = 2 * 32K L2 = 256K

    L3 = 2Mb off

    32 reg de 128 bits

    30

    ~ $300

    Frquence

    Largeur bus

    Cache

    Units indp

    Registres

    Consom

    Prix

    Alpha 21364

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 61

    Machines algorithmiques Caractristiques de quelques processeurs

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 62

    Machines algorithmiques AEF de commande :

    Et : les variables dentre : compte rendu provenant de lautomate de traitement vnements provenant de lenvironnement (extrieure)

    St : les variables de sortie : vnements destination de lenvironnement commandes pour le traitement

    Xt : le vecteur dtat de lautomate : tat courant de lautomate

    g : la fonction qui dfinit : dfinit les commandes pour lAEF de traitement dfinit les vnements pour lenvironnement

    f : la fonction qui dfinit lvolution de lautomate : dfinit ltat suivant en fonction de ltat courant et des entres

    St = g ( Xt , Et ) Xt+1 = f ( Xt , Et )

    AEF Evt Cmd Cpt

    Evt

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 63

    Machines algorithmiques AEF de commande : Modles utiliss : rseaux de Ptri

    machine dtats (synchrone ou asynchrone) t1 t2

    t3

    t4 t5

    e1 s1 = 1; s2 = 0;

    e2

    e3

    e4

    s1 = 0; s2 = 0;

    s1 = 1; s2 = 1;

    s1 = 0; s2 = 1;

    transition 1

    transition 2

    transition 3 Notion de synchronisation par rapport une horloge :

    - explicite : exprime dans la transition - implicite : napparat pas dans la transition

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 64

    Machines algorithmiques

    Logique combinatoire

    Logique combinatoire

    Registre dtats Et

    St

    Xt+1 Xt

    Horloge

    St = g ( Xt , Et ) Xt+1 = f ( Xt , Et )

    e1 s1 = E0 & E1; s2 = E1 + E2;

    e2

    e3

    s1 = E3 + E4 & E1; s2 = 0;

    s1 = E2 & E1 ; s2 = 1;

    transition 1

    transition 2

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 65

    Machines algorithmiques

    Logique combinatoire

    Logique combinatoire

    Registre dtats Et

    St

    Xt+1 Xt

    Horloge

    St = g ( Xt ) Xt+1 = f ( Xt , Et )

    e1 s1 = 1; s2 = 0;

    e2

    e3

    s1 = 0; s2 = 0;

    s1 = 1; s2 = 1;

    transition 2

    transition 1

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 66

    Machines algorithmiques stockage dans une mmoire programme :

    Algorithme

    Droutement ou passage en squence

    Dcodage dadresses

    Varia

    bles

    test

    er

    Commandes ou vnements vers unit de traitement

    Adresses

    Contient le codage de l'application

    Mmoire ROM ou RAM

    Matrialis par un registre (PC : compteur de programme)

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 67

    Machines algorithmiques les champs de la mmoire programme :

    Fonction tester

    Action raliser (vers UT)

    Adresse de branchement

    Fi ( x ) si Ni

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 68

    Implantation dun algorithme : tout programme peut tre implant dans ce type de machine

    Le modle gnral est le suivant : on peut faire un test, une action et un branchement

    Machines algorithmiques

    Nt f ( x ) s0 N0 f ( x ) s1 N1

    Adresses suivantes Actions Fonctions tester Adresses courantes

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 69

    Machines algorithmiques modle simplifi, on peut faire soit :

    action : on ne teste rien, on effectue laction et on poursuit sur ladresse de programme suivante (Nt+1)

    test : on neffectue aucune action, on ralise le test et en fonction du rsultat de lvaluation de la condition

    on effectue un branchement ou non dun point de vue AEF de traitement, aucune action nest ralise dun point de vue AEF de commande, il sagit dune action de chargement dune nouvelle valeur

    dans le PC de la machine

    Nt 0 Nt f ( x ) N0

    Action

    Test et saut

    : ne rien faire

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 70

    Machines algorithmiques Instructions de calcul ou de transfert :

    r1 := r1 + r2 ;

    Instructions de saut inconditionnel : BRA Ni ;

    Instructions de saut conditionnel : BCC Ni ;

    Nt Add r1,r2

    Nt true Ni

    Nt condition Ni

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 71

    Machines algorithmiques Instructions de test

    if condition then r1 := r1 + r2 ;

    else r1 := r1 - r2 ;

    Nt condition Nt+3 Nt+1 Add r1,r1, r2 Nt+2 true Nt+4 Nt+3 Sub r1, r1, r2 Nt+4 .............................................

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 72

    Machines algorithmiques Instruction de test :

    if condition then bloc instructions 1 ; else bloc instructions 2 ;

    N21 I 2,1 N22 I 2,2 .....

    N2n2 true Nt+2

    Bloc dinstructions 2 N11 I 1,1 N12 I 1,2 .....

    N1n1 true Nt+2

    Bloc dinstructions 1

    Nt condition N11

    Nt+1 true N21

    Nt+2 ................................

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 73

    Machines algorithmiques Instruction de boucles

    pour i de 1 N faire bloc dinstructions ;

    fait ;

    N0 i := 1 N1 i > N Ni+2 N2 I 1 N3 ... ... ...... ... .... .... ......

    Ni i := i+1 Ni+1 true N1 Ni+2 ..... ..... .....

    Initialisation

    Test darrt

    Coeur de la boucle bloc dinstructions

    Incrmentation de i

    Branchement

    Demande de test lAEF de traitement (i-N et test si zro)

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 74

    Machines algorithmiques Instruction de boucles

    faire bloc dinstructions ;

    tant que condition ;

    . ..... ..... .....

    N0 I 1 N1 ... I 2 ... .... .... ...... ... .... .... ......

    Ni condition N0 Ni+1 ..... ..... .....

    Test darrt

    Coeur de la boucle bloc dinstructions

    Branchement

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 75

    Machines algorithmiques Le droutement et lappel de sous programme : aide la structuration de programmes :

    appels de procdures ou fonctions

    main(){ y = factorielle(x); z = factorielle(s); a = factorielle(b); }

    ncessite la mmorisation de l'adresse de retour

    void factorielle (x) { ... return valeur;

    }

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 76

    Machines algorithmiques structure pour assurer le droutement avec sauvegarde de

    contexte

    Registre dadresses X +1 PIL

    E

    Adresses de droutement

    Stockage des adresses de retour

    Squencement des instructions

    Call ou Return

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 77

    Machines algorithmiques instruction call factoriel

    PC = @1000 X +1 PIL

    E

    Adresses de droutement

    Call

    PC+1

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 78

    Machines algorithmiques instruction call factoriel suite

    Adresse de saut X +1 PIL

    E

    Adresses de droutement

    Call

    1001

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 79

    Machines algorithmiques instruction return

    1001 X +1 PIL

    E

    Adresses de droutement

    Return

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 80

    Machines algorithmiques Principe de la hirarchisation Une machine M0 :

    dispose dun langage L0 A laide de ce langage, on construit des programmes qui forment le

    langage L1

    La machine M1 : est alors une machine virtuelle dans laquelle on pourra implanter

    des algorithmes laide des instructions de L1

    Unit de commande de niveau 1

    Unit de traitement de niveau 1

    Unit de commande de niveau 0

    UT 0

    *

    *

    com

    man

    des

    comptes rendus

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 81

    Machines algorithmiques Il existe plusieurs niveaux de squencement :

    il faut les synchroniser Le squenceur de la machine M0 est simple:

    il est ralis de faon travailler le plus rapidement possible il ne sait pas grer les mcanismes dappel de sous programme

    (stockage de ladresse de retour, passage de paramtres, etc)

    Le squenceur de la machine M1 est plus complexe : offre des modes de squencement complexes, des instructions

    complexes permet de bien structurer le programme

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 82

    Machines algorithmiques Lenvironnement fournit les commandes (instructions) raliser Le composant mmoire contient lensemble des micro programmes permettant lexcution

    des instruction du niveau suprieur Un micro programme est constitu de micro instructions Une micro instruction contient les micro commandes destines lUT0

    Unit de traitement de niveau 1

    Unit de commande de niveau 0

    UT 0

    *

    commandes

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 83

    Machines algorithmiques Extension du principe de hirarchisation

    reprsentation dun ordinateur sous la forme dune machine 4 niveaux hirarchique 1 langage pour chaque niveau de la hirarchie instructions simples pour le niveau 0 instructions de plus en plus complexes pour les niveaux 1, 2 et 3 machine Mi, compose dAEF de commande UCi, dun AEF de traitement

    UTi, et dfinissant un langage Li

    Niveau 0, micro instructions

    Niveau 1, langage machine

    Niveau 2, systme dexploitaton

    Niveau 3, applications

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 84

    Machines algorithmiques Pour rsumer : les machines ddies :

    conues par une approche descendante construction de la partie oprative du systme rpondent strictement aux besoins de lapplication performantes et efficaces

    figes donc pas volutives

    permettent la conception hirarchique pas intressant pour la ralisation dun prototype mais conviennent bien aux

    grandes sries : cot (surface, consommation, etc) protection du systme

    conception dASIC temps de conception assez long

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 85

    Machines algorithmiques Pour rsumer :

    les machines algorithmiques programmables : conues par une approche ascendante :

    programmation flexibilit volutives utilisation non optimale des possibilits de la machine

    on utilise pas toutes les instructions disponibles on doit programmer les instructions qui nexistent pas

    dans les premiers processeurs, pas de multiplication on sarrange pour atteindre la prcision souhaite

    exemple : addition 16 bits (A+B) sur processeur 8 bits

    AL + BL = SL + Retenue AH + BH + Retenue = SH

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 86

    Machine Von Neumann

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 87

    Machine Von Neumann Les processeurs Von Neumann : Architecture :

    Base sur un accumulateur

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 88

    Machine Von Neumann LAEF de commande de niveau 1 : 1 ) recherche le code instruction 2 ) dcode linstruction raliser 3 ) excute linstruction sur lAEF de traitement de niveau 0

    lAEF de commande de niveau 0 : reoit le code de linstruction excute le micro programme de linstruction

    4 ) stocke les rsultats des calculs

    CYCLE VON NEUMANN

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 89

    Machine Von Neumann Recherche du code de linstruction : le processeur accde la mmoire et charge linstruction dans un

    registre dinstructions ladresse accde est ladresse courante du programme et est stocke

    dans un registre de compteur de programme PC ce registre dadresses volue de 1 en 1 sauf dans le cas de

    branchement, o il est charg avec une autre valeur

    Dcodage de linstruction : il sagit de savoir quelle instruction doit tre ralise : une instruction se dcompose en :

    un code opration des oprandes code opratoire

    oprande 1 oprande 2

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 90

    Machine Von Neumann Excution de linstruction : dcomposition de linstruction en micro instructions par la

    machine de commande de niveau 0

    move 2(A7), A0

    envoie des bons signaux de contrle vers lUT

    Stockage des rsultats de calculs : adressage de la mmoire transferts des donnes vers la mmoire mise jour de l'tat du processeur :

    mmorisation des drapeaux

    A7 A0

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 91

    Machine Von Neumann Excution dune instruction plus dtaille :

    1) chargement de la prochaine instruction depuis la mmoire vers le registre dinstruction

    2) modification du compteur ordinal (PC) pour quil pointe sur linstruction suivante PC = PC + 1

    3) dcodage de linstruction 4) localisation des ventuelles donnes ncessaires pour linstruction 5) chargement des donnes dans les registres internes de lunit

    centrale 6) excution de linstruction 7) stockage des rsultats dans leurs cases mmoire respectives 8) passage linstruction suivante, retour en 1

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 92

    Machine Von Neumann Les diffrentes units

    UAL Squencement

    Registre dinstructions

    Mm

    oire

    E / S

    Unit de traitement

    Unit de contrle

    Unit de stockage

    Bus de donnes

    SP RA

    PC

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 93

    Machine Von Neumann Unit de stockage :

    contient les informations relatives : au programme, donc lapplication aux donnes traiter

    Unit de traitement : constitue dUAL et de registres de travail les registres contiennent les informations en cours de traitement :

    registres contenant des donnes registres contenant ltat de la machine

    Unit de contrle : coeur de la machine ralise le squencement, droulement du programme :

    dcode linstruction situe dans le registre RI adresse la mmoire par le compteur de programme le registre dadresses permet daccder aux donnes

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 94

    Machine Von Neumann Autre reprsentation de la machine Von Neumann

    REGISTER FILE A

    LU

    PC

    AD

    DR

    ESS

    REG

    ISTE

    R

    MEM

    . DAT

    A R

    EGIS

    TER

    MUX

    MEMORY DATA BUS

    MEMORY ADDRESS BUS

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 95

    Machine Von Neumann Lexcution des instructions :

    on distingue 3 types dinstructions :

    instruction de contrle : branchement, appel de procdure

    instruction de traitement : arithmtique, logique

    instruction de transfert : entre registres entre registres et case mmoire

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 96

    Machine Von Neumann Instruction de contrle : modification du droulement du programme en fonction

    dvnements : INTERNES au processeur : rsultats de calcul, tat de la machine EXTERNES au processeur : broches dentres / sorties

    modification du registre de compteur de programme PC

    3 types de branchement : conditionnel ou inconditionnel explicite ou implicite avec ou sans restitution du contexte

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 97

    Machine Von Neumann Branchement conditionnel ou inconditionnel :

    conditionnel : rsulte dun test, par exemple de la valeur dun drapeaux qui indique ltat

    de la machine inconditionnel :

    saut quelque soit l'tat du processeur

    Branchement explicite ou implicite : explicite :

    cas dun jump, branchement conditionnel implicite :

    cas des interruptions signal extrieur cas des exceptions par exemple division par 0

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 98

    Machine Von Neumann Branchement avec sauvegarde de contexte :

    lors de lappel dune interruption, il faut conserver ladresse de retour pour assurer le bon droulement du programme

    le contexte minimum est constitu de : ladresse de linstruction en cours dexcution lors de lappel de la

    procdure charge lutilisateur de sauvegarder plus dinformations si cela est

    ncessaire

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 99

    Machine Von Neumann

    PC ( A )

    SP

    registres

    1 ) Avant linterruption 2 ) Interruption

    PC

    SP

    registres

    A

    Programme dinterruption

    Programme principal A A

    PC

    SP

    registres

    A

    A

    PC (A+1)

    SP

    registres A

    3 ) Fin de linteruption 4 ) Retour au programme principal

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 100

    Machine Von Neumann

    PC

    SP

    registres

    2 ) Interruption

    PC

    SP

    registres

    A

    Programme dinterruption

    Programme principal A A

    PC

    SP

    registres

    A

    A

    3 ) Fin de linteruption

    A

    Sauvegarde de contexte plus gnral

    PC

    SP

    registres

    A

    A

    restitution de contexte plus gnral

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 101

    Machine Von Neumann Linstruction de branchement

    Registre dinstructions

    Mm

    oire

    E / S

    Squencement

    Registre dinstructions

    Mm

    oire

    E / S

    SP

    a) recherche dune instruction

    b) dcodage de linstruction

    UAL

    UAL PC RA

    Squencement

    PC

    RA SP

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 102

    Machine Von Neumann

    Squencement

    Registre dinstructions

    Mm

    oire

    E / S

    SP

    c) sauvegarde du contexte UAL PC

    RA

    Squencement

    Registre dinstructions

    Mm

    oire

    E / S

    SP

    d) Modification du pointeur de pile

    UAL PC RA

    -1

    Linstruction de branchement suite

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 103

    Machine Von Neumann

    Registre dinstructions

    Mm

    oire

    E / S

    SP

    e) recherche ladresse de dbranchement

    UAL Squencement

    PC RA

    Linstruction de branchement suite

    adresse de saut code Mot 1

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 104

    Machine Von Neumann Instructions de traitement : traitement des donnes :

    oprations de calculs : arithmtique logique

    positionnement des drapeaux en fonction des rsultats de calcul : nul ngatif dbordement de calcul, problme de retenue

    A, B sur 8 bits et opration A+B, thoriquement A+B est un rsultat sur 9 bits, si la machine est une machine 8 bits, lopration A+B va provoquer un dbordement, un bit de dbordement rcupre cette information et il est possible de tester la valeur de ce bit

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 105

    Machine Von Neumann Linstruction de traitement

    Registre dinstructions

    Mm

    oire

    E / S

    a) recherche dune instruction UAL

    Squencement

    PC

    RA SP

    Squencement

    Registre dinstructions

    Mm

    oire

    E / S

    SP

    b) dcodage de linstruction UAL PC

    RA

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 106

    Machine Von Neumann

    Squencement

    Registre dinstructions

    Mm

    oire

    E / S

    SP

    c) excution de linstruction UAL PC RA

    Registre dinstructions

    Mm

    oire

    E / S

    SP

    d) Stockage du rsultat UAL

    Squencement PC

    RA

    Linstruction de traitement suite

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 107

    Machine Von Neumann

    Registre dinstructions

    Mm

    oire

    E / S

    SP

    e) passage ladresse suivante

    UAL Squencement

    PC RA

    +1 Linstruction de traitement suite

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 108

    Machine Von Neumann Instructions de transferts :

    Il existe au moins 3 types de transferts : entre registres entre mmoire et registre entre deux cases mmoire

    Ladressage dune donne peut se faire de manire : adressage immdiat : adressage direct adressage indirect adressage index etc

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 109

    Machine Von Neumann

    A) recherche dune instruction Registre dinstructions

    Mm

    oire

    UAL Squencement

    PC

    RA SP

    Squencement

    Registre dinstructions

    Mm

    oire

    SP

    B) dcodage de linstruction UAL PC

    RA

    Linstruction de transfert

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 110

    Machine Von Neumann

    C) recherche de la donne Registre dinstructions

    Mm

    oire

    UAL Squencement

    PC

    RA SP

    Squencement

    Registre dinstructions

    Mm

    oire

    SP

    D) transfert effectif UAL PC

    RA

    Linstruction de transfert suite

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 111

    Machine Von Neumann Transfert registre registre : adressage registre

    codage

    Instructions : add R1, R2, R3 ; R1 = R2 + R3 move R1, R2 ; R1 = R2

    tape de linstruction : A B D

    temps dexcution : 3 units de temps

    registre destination code Mot 1 registre source

    Squencement

    Registre dinstructions

    Mm

    oire

    SP

    UAL PC RA

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 112

    Machine Von Neumann Adressage immdiat : Codage

    Instructions : Add R1, R2, #3 ; R1 = R2 + 3 Load R1, #20 ; R1 = 20

    type de donnes manipules : constante tape de linstruction :

    A B D

    temps dexcution : 5 units de temps

    registre destination donne

    code Mot 1 Mot 2

    2 fois, une fois pour chaque mot de linstruction

    Squencement

    Registre dinstructions

    Mm

    oire

    SP

    UAL PC RA

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 113

    Machine Von Neumann Adressage direct : codage :

    Instructions : Add R1, R2, (1000) ; R1 = R2 + Mmoire[1000] Li R4, (2000) ; R4 = Mmoire[2000]

    type de donnes manipules : variable, constante tape de linstruction :

    A B C D

    temps dexcution : 8 units de temps

    registre destination Adresse partie 1

    code Mot 1 Mot 2 Mot 3 Adresse partie 2

    3 fois, une fois pour chaque mot de linstruction

    Squencement

    Registre dinstructions

    Mm

    oire

    SP

    UAL PC RA

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 114

    Machine Von Neumann Adressage indirect :

    codage : indirect registre

    autre codage : indirect mmoire

    Instructions : Add R1, R2, @(R3) ; R1 = R2 + Mmoire[Mmoire[R3]] Li R4, @(R5) ; R4 = Mmoire[Mmoire[R5]]

    type de donnes manipules : variable, tableau, pointeur, constante

    tape des instructions : A, B, C, D indirect registre 4 UT (A, B) * 3, (C, D) * 3 indirect mmoire 12 UT

    registre destination Adresse partie 1

    code Mot 1 Mot 2 Mot 3 Adresse partie 2

    registre (adr) code Mot 1 registre destination

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 115

    Machine Von Neumann Adressage indirect post incrment : codage : indirect registre

    autre codage : indirect mmoire

    type de donnes manipules : tableau, pointeur, variable, constante

    tape des instructions : indirect registre : A, B, C, D, incrmentation du registre dadresses

    5 UT indirect mmoire : (A, B) * 3, (C, D) * 3, incrmentation de ladresse,

    stockage de la nouvelle adresse en mmoire 17 UT

    registre destination Adresse partie 1

    code Mot 1 Mot 2 Mot 3 Adresse partie 2

    registre (adr) code Mot 1 registre destination

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 116

    Machine Von Neumann Adressage index:

    codage : index immdiat

    autre codage : index par rapport un registre dindex

    Instructions : Add R1, R2, R3(R4) ; R1 = R2 + Mmoire[R3+R4]

    type de donnes manipules : variable, structure de donnes tape des instructions :

    index immdiat: (A, B) * 2, C, D, addition de base et index 7 UT

    index par un registre: A, B, C, D, addition de base et index 5 UT

    registre base code Mot 1 Mot 2

    registre destination index

    reg base code Mot 1 reg index registre dest

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 117

    Machine Von Neumann Pour rsumer les adressages : Immdiat

    Direct

    Indirect mmoire

    Op code Oprande

    Op code Adresse

    Mmoire

    Oprande

    Adresse Oprande

    Adresse

    Reg dest

    Reg dest

    Op code Reg dest

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 118

    Machine Von Neumann Indirect registre

    Dplacement (index)

    Pile : accs mmoire implicite

    Op code Registre

    Adresse

    Mmoire

    Oprande

    Op code Oprande

    Oprande

    Registre

    Registre Registre

    +

    de la pile Sommet

    Reg dest

    Op code Reg dest

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 119

    Machine Von Neumann

    Utilisation des modes dadressages

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 120

    Machine Von Neumann Caractristiques du jeu dinstructions :

    taille du jeu dinstructions :

    pour les processeurs CISC : le nombre de mots pour coder une instruction est variable

    pour les RISC on tente de coder les instructions sur une longueur de mot fixe

    contrleur plus simple

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 121

    Machine Von Neumann

    Caractristiques du jeu dinstructions (suite) : orientation mmoire, accumulateur, registres, pile :

    mmoire : pas de registres visibles par lutilisateur, toutes les oprations semblent se faire en mmoire

    accumulateur : toutes les oprations sont ralises avec un registre particulier (le registre accumulateur)

    registre : toutes les oprations se font sur des registres de lunit de calcul pile : les oprations se font sur des donnes ranges dans la pile que lon a

    pralablement charge

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 122

    Machine Von Neumann

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 123

    Machine Von Neumann Caractristiques du jeu dinstructions (suite) : jeu dinstructions orthogonal :

    indpendance entre les codes oprations et les modes dadressages toutes les instructions bnficient de tous les modes dadressages en gnral, ces processeurs ont un nombre dinstructions plus petit processeurs plus simples programmer dveloppement dun compilateur plus ais

    nombre doprandes manipules : en gnral, les instructions sont :

    0 oprande (NOP) 1 oprande 2 oprandes (jeu d'instructions destructif) 3 oprandes (c'est la tendance des processeurs rcents)

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 124

    Machines RISC

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 125

    Machines RISC Evolution des machines programmables : premiers processeurs :

    instructions simples oprations sur les registres oprations sur les entiers

    augmentation du nombre dinstructions instructions plus complexes oprations sur les flottants instructions qui se rapprochent dun langage haut niveau

    machines trs complexes contrleur trs volumineux

    nb de cycles faible

    nb de cycles important

    Processeur CISC Complex Instruction Set Computer

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 126

    Machines RISC La famille des processeurs Intel

    1970 1975 1980 1985 1990 1995 2000 2005

    Nb

    de tr

    ansi

    stor

    s pa

    r puc

    e

    104

    103

    105

    106

    107

    108

    4004

    8086

    80386

    80286

    80486

    Pentium

    Pentium Pro

    Pentium IV

    8080

    Pro

    cess

    eurs

    4 b

    its

    Pro

    cess

    eurs

    8 b

    its

    Pro

    cess

    eurs

    16

    bits

    Pro

    cess

    eurs

    32

    bits

    Pro

    cess

    eurs

    64

    bits

    Itanium ?

    Loi de Moore

    Pentium II

    2010

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 127

    Machines RISC

    1970 1975 1980 1985 1990 1995 2000 2005

    Frq

    uenc

    e d'

    horlo

    ge

    106

    105

    107

    108

    109

    1010

    4004

    8086

    80386

    80286

    80486

    Pentium

    Pentium Pro Pentium II

    8080

    Pro

    cess

    eurs

    4 b

    its

    Pro

    cess

    eurs

    8 b

    its

    Pro

    cess

    eurs

    16

    bits

    Pro

    cess

    eurs

    32

    bits

    Pro

    cess

    eurs

    64

    bits

    Itanium ?

    Pentium iv

    2010

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 128

    Machines RISC Observations : les instructions les moins couramment utilises sont celles

    qui engendrent le plus de contrle : adressages complexes (pr-post incrment, bas, index, ...) tous les calculs peuvent sexcuter avec des oprandes en mmoire

    (via tous les adressages) latences des instructions trs variables difficult pipeliner lexcution jeux dinstructions non orthogonales jeux dinstructions mal utiliss par les compilateurs

    volutions technologiques : Annes 70 : cot mmoire important, il faut rduire la taille du code,

    code dense, code complexe Annes 80 : volution des compilateurs, architecture chargement/

    rangement

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 129

    Machines RISC

    occurrence des instructions

    load store add sub or and xor sl sr mult div sqrt

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 130

    Machines RISC

    Exemple d'occurrences des instructions pour un 80x86

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 131

    Machines RISC Rgle des 90 - 10 :

    par une analyse des excutions des programmes, on remarque que seules

    10 % des instructions sont utilises 90 % du temps. les 90 % dinstructions inutilises cotent cher en temps et en

    surface silicium Ide : on limite le nombre dinstructions celles qui sont le plus

    utilises On ralisera les instructions complexes par programmation

    instructions ralisables en 1 cycle horloge rapide

    Processeur RISC Reduce Instruction Set Computer

    Plusieurs instructions en 1 cycle

    Instruction complexe en n cycles

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 132

    Machines RISC RISC : instructions simples instructions rapides

    Que faire de la surface disponible ?

    augmenter le nombre de registres augmenter le nombre dUAL paralllisme placer des units spcifiques mettre de la mmoire cache dans le processeur

    temps daccs trs court profiter des rutilisations des donnes

    Contrleur simple

    Gain en surface important

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 133

    Machines RISC Historique

    Cahier des charges du premier RISC toutes instructions en 1 cycle accs mmoire par instructions load store oprations addition comparaison entre registres nombre de mode dadressage rduit mme format pour toutes les instructions squenceur cbl trs grand soin apport la ralisation du compilateur

    Consquences le cblage du squencement redevient possible puisque instructions simples squenceur rapide et peu coteux surface silicium libre, utilisation pour dautres fonctionnalits gestion matrielle du pipeline plus simple puisque de nombreux problmes sont reportes sur le

    logiciel

    Projet RISC I et II de Berkeley RISC I : 1982, 39 codes oprations, abandonne pour cause derreur de conception RISC II : 55 codes oprations, 12 MHz, 41 000 transistors, UAL 32 bits

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 134

    Machines RISC

    Caractristiques des premiers processeurs RISC

    IBM 801 RISC 1 RISC2 Processeurs

    Annes

    Nb instructions

    Taille instructions

    1980 1982 1983

    120 39 55

    32

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 135

    Machines RISC Comparaison CISC - RISC

    Nom

    Annes

    Nb instructions

    Taille instructions

    Nb de mode d'adressage

    Nb registres

    Mmoire de contrle

    Taille cache

    IBM 370/168

    1973

    208

    2-6

    4

    16

    420

    64

    VAX 11/780

    1978

    303

    2-57

    22

    16

    480

    64

    Intel 80486

    1989

    235

    1-11

    11

    8

    246

    8

    SPARC

    1987

    69

    4

    1

    40-520

    -

    32

    MIPS R4000

    1991

    94

    4

    1

    32

    -

    128

    CISC RISC

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 136

    Machines RISC

    Exemple : taille des instructions variables / fixes

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 137

    Machines RISC

    Instructions simples ne prenant quun cycle

    Seules les instructions LOAd et STORE font des accs la mmoire

    Traitement pipeline

    Instructions excutes par le matriel

    Instructions au format fixe

    Peu dinstructions et de modes dadressage

    Toute la complexit est dans le compilateur

    Instructions complexes prenant plusieurs cycles

    Toutes les instructions peuvent faire des accs la mmoire

    Instrucitons interprtes par un micro programme

    Instructions en format variable

    Beaucoup dinstructions et de modes dadressage

    Toute la complexit est dans le micro programe

    Peu ou pas de traitement pipeline

    Plusieurs jeux de registres Un seul jeu de registres

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 138

    Machines RISC Les tendances des processeurs RISC et CISC pipelines profonds :

    jusqu 20 tages pour le Pentium IV superscalaire :

    units fonctionnelles indpendantes unit de disptaching (jusqu 6 instructions lances par cycle pour le R10000)

    frquence dhorloge leve : 4 Ghz

    architectures 32 ou 64 bits hirarchie mmoire complexe :

    bus de donnes entre cache et buffer large premier et second niveau de cache intgrs (on chip)

    jeux dinstructions tendus au multi mdia multi processeurs on chip

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 139

    ORGANISATION MEMOIRE

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 140

    Organisation mmoire

    Rappel les mmoires

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 141

    Organisation mmoire Pourquoi une organisation mmoire ? Motivations et principe :

    augmentation de complexit des applications augmentation du volume de donnes mmoriser augmentation des tailles des mmoires

    volution : en 1980, les ordinateurs navaient que quelques kilo octets de mmoires actuellement, il faut au minimum quelques centaines mga octets

    les mmoires doivent rpondre 2 contraintes : taille importante temps daccs trs court

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 142

    Organisation mmoire Evolution des performances des processeurs et des mmoires

    Gap

    trs

    impo

    rtan

    t

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 143

    Organisation mmoire Illustration des diffrents temps d'accs

    Technologie Tps accs Echelle humaine Capacits Indication de prix $ / Mo

    Registre 1 2 ns 1 s 64 * 64 bits Fait partie du processeur

    Cache intgr 3 ns 3 s 32 ko Fait partie du processeur

    Cache externe 25 ns 25 s 4 Mo 40

    Mmoire principale 200 ns 3 min 1 Go 2,5

    Disque 12 ms 139 jours 10 Go 0,010

    Bande 10 20 s 315 ans et plus 50 Go < 0,05

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 144

    Organisation mmoire Reprsentation des niveaux de mmoire

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 145

    Organisation mmoire

    Ct applications Notion de localit dans les accs mmoire :

    localit spatiale :

    si le processeur excute linstruction de ladresse @i, il y a de forte chance quil excute trs prochainement linstruction de ladresse @i+1

    localit temporelle :

    si le processeur traite la donne d linstant t, il y a de forte chance quil traite nouveau cette donne dans une temps trs proche

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 146

    Organisation mmoire

    Exemples de localits sur les donnes

    y[i] : localits spatiale et temporelle a[i][j] : localit spatiale x[j] : localits temporelle et spatiale

    dans les programmes

    dans la boucle, rutilisation intensive des instructions

    for (i = 0 ; i < N ; i++) { for (j = 0 j < N ; j++) {

    y[i] =y[i] + a[i][j] * x[j] ; }}

    Boucle LD R0, R1

    ADD R2, R3, R4

    MULT R5, R2, R7

    SUB R10, R10, #1

    BRnz R10, Boucle

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 147

    Organisation mmoire

    Temps

    Adr

    esse

    s Localit temporelle

    Loca

    lit

    spat

    iale

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 148

    Organisation mmoire Ides de base :

    mise en place d'une hirarchie mmoire : mmoire de petite taille, rapide, proche du processeur mmoire de grande taille, lente, loigne du processeur

    Mem

    Pro

    cess

    eur

    (reg

    istre

    s)

    Mmoire Mmoire Mmoire

    Taille

    Cot

    Placer dans cette mmoire les donnes utilises par le processeur dans un intervalle de temps

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 149

    Organisation mmoire

    Efficacit dune hirarchie mmoire :

    Eff =

    Acclration apporte par la hirarchisation :

    Acc =

    Tps de traitement mmoire rapide

    Tps de traitement mmoire hirarchise

    Tps de traitement mmoire lente

    Tps de traitement mmoire hirarchise

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 150

    Organisation mmoire

    Soit N : la taille du bloc P : le nombre de donnes lues et/ou crites dans un bloc TpsL : le temps daccs la mmoire lente TpsR : le temps daccs la mmoire rapide

    Processeur

    Adresses

    Don

    nes

    Mm

    oire

    lent

    e

    Mm

    oire

    rapi

    de

    Fonctionnement

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 151

    Organisation mmoire Lefficacit et lacclration sexpriment :

    Condition respecter pour que la hirarchie soit utile

    P * TpsR 2 * N * TpsL + P * TpsR

    Eff =

    P * TpsL Acc = 2 * N * TpsL + P * TpsR

    2 * N * TpsL + P * TpsR < P * TpsL

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 152

    Organisation mmoire Intrt dune hirarchie mmoire

    plus la diffrence entre les temps daccs est faible, plus les donnes de la page doivent tre rutilises

    si P est faible, alors la hirarchie est peu intressante Exemple :

    Soit N = 256 et TpsL = 2 * TpsR

    2 * N * TpsL TpsL - TpsR P >

    2 * 256 * 2 * TpsR 2 * TpsR - TpsR P >

    P > 2 * 256 * 2

    P > 4 * 256 En moyenne, chaque donne doit tre utilise 4 fois

  • Daniel Chillet, CAIRN-IRISA-ENSSAT-Universit de Rennes 1 153

    Organisati