Introduction aux systèmes informatiques Structure d'un ordinateur - Michel Salomon

 
CONTINUER À LIRE
Introduction aux systèmes informatiques Structure d'un ordinateur - Michel Salomon
Introduction aux systèmes informatiques
       Structure d’un ordinateur

               Michel Salomon

           IUT de Belfort-Montbéliard
           Département d’informatique

           Michel Salomon   Intro. aux sys. info.   1 / 50
Introduction aux systèmes informatiques Structure d'un ordinateur - Michel Salomon
Qu’est-ce qu’un système informatique ?

    Système informatique = ensemble de matériels et de logiciels

  Un système informatique traite des informations
      Traitements contrôlés par un programme via des instructions
                                             Programme

                                                      instructions
                     Donnees                                              Donnees
                     en entree              Traitements                   en sortie

                                               Donnees
                                            intermediaires

      Traitements sur les données
           Calculs arithmétiques et booléens
           Rupture de séquence en fonction d’un résultat
           Mise en forme des données

        Les informations sont représentées sous forme binaire
                           Michel Salomon         Intro. aux sys. info.               2 / 50
Introduction aux systèmes informatiques Structure d'un ordinateur - Michel Salomon
Représentation physique de l’information

  Grande variété de supports physiques de l’information
              Différentes grandeurs physiques / chimiques
        permettent d’encoder l’information sous forme d’un signal
        Alvéole ou pas d’alvéole sur la surface d’un disque optique
        Polarisation d’un matériau magnétique
        Courant électrique présent ou non
        etc.

  Types de signaux
    1   Analogique → peut prendre toutes les valeurs d’une plage fixée
    2   Numérique → ne peut prendre qu’un nombre fini de valeurs
           Transition d’un type à un autre via un convertisseur

                         Michel Salomon   Intro. aux sys. info.          3 / 50
Introduction aux systèmes informatiques Structure d'un ordinateur - Michel Salomon
Architecture des ordinateurs actuels - Transistor

  Un ordinateur est une machine électronique
                Composant élémentaire : le transistor
       Fonctionne comme un “robinet” qui laisse passer du courant
       Fonctionne comme un interrupteur dans un ordinateur

Modules fonctionnels matériels
            Internet                          Composants de complexité croissante
          Reseau local
                                                 Avec des transistors on construit
           Ordinateur
            Cartes
                                                 → des portes logiques
         Circuits integres                         Avec des portes log. on construit
          Portes logiques
                                                   → des circuit intégrés
          Transistors
         Semi−conduct.

                             Michel Salomon     Intro. aux sys. info.             4 / 50
Introduction aux systèmes informatiques Structure d'un ordinateur - Michel Salomon
Architecture des ordinateurs actuels - Complexité

  Composants de complexité croissante
    1   Portes logiques → opérateurs de l’algèbre de Boole
                         AND, OR, NOT, XOR, NAND, NOR
    2   Circuits logiques → combinaison de portes logiques
            Opérateur logique complet (permet de construire tout circuit)
            → NAND ; NOR
            Combinatoires et séquentiels (capacité de mémorisation)
            Montages en série ou en parallèle
            → additionneur n bits à partir d’additionneur(s) 1 bit, etc.
    3   Circuits intégrés → implémentation physique de circuits log.
          Un microprocesseur est construit en un seul circuit intégré

  Gain en performance lié pour partie aux transistors
  Taille des transistors & ⇒ complexité / performance des proc. %

                         Michel Salomon   Intro. aux sys. info.             5 / 50
Introduction aux systèmes informatiques Structure d'un ordinateur - Michel Salomon
Architecture des ordinateurs actuels - Circuits logiques

  Illustration 1 - Synthèse d’un demi-additionneur (half-adder )
      Addition de 2 bits x et y de plus bas poids
                       x         y   x +y =S          retenue = R
                       0         0      0                  0
                       0         1      1                  0
                       1         0      1                  0
                       1         1      0                  1
      Expressions logiques équivalentes pour les sorties
           S = x ⊕ y = x · y + x · y = (x + y ) · (x · y )
           R =x ·y
      Réalisations et représentation schématique
       x                     x
                        S                                                x
       y                     y                                       S                S
                                                                         y
                                                                                 HA

            R                                     R                          R

                            Michel Salomon   Intro. aux sys. info.                        6 / 50
Introduction aux systèmes informatiques Structure d'un ordinateur - Michel Salomon
Architecture des ordinateurs actuels - Circuits logiques
  Illustration 2 - Synthèse d’un additionneur complet (full-adder )
      Addition de 2 mots binaires
           Addition bit à bit en considérant le retenue de rang inférieure
           L’add. complet calcule la somme de 3 bits d’un même rang
                Il comporte 3 entrées x , y et Re et 2 sorties S et Rs
      Expressions logiques équivalentes pour les sorties
           S = x ⊕ y ⊕ Re
           Rs = x · y + Re · (x ⊕ y )
      Réalisations et représentation schématique
                        Re                                    Re                   Re

       x                               S      x
                                                                           S   x
       y                                      y
                                                   HA                 HA                S
                                                                                   FA
                                                                               y

                                                                                   Rs

                 Rs                                           Rs
                             Michel Salomon       Intro. aux sys. info.                     7 / 50
Introduction aux systèmes informatiques Structure d'un ordinateur - Michel Salomon
Architecture des ordinateurs actuels - Performances
  Performances des processeurs
      Mesures → nombre d’op. / instructions exécutées par seconde
      Unités → Millions d’Instructions Par Seconde, etc.
      Sujet à critique → utilisation de benchmark
      Cadencement de l’exécution des opérations / instructions
       Processeur puissant voudrait dire fréquence élevée ? → Oui et non

  Barrières
       Chaleur
         Plus de transistors par unité de surface → plus d’énergie
      Complexité
                     Que faire de tous ces transistors ?
           Difficile d’améliorer un proc. individuel (1 cœur de calcul)
           La complexité consomme trop d’énergie
                         Michel Salomon   Intro. aux sys. info.            8 / 50
Introduction aux systèmes informatiques Structure d'un ordinateur - Michel Salomon
Architecture des ordinateurs actuels - Puissance

  Puissance dynamique absorbée et dissipée en chaleur
       Dépend de plusieurs facteurs
           Fréquence de fonctionnement (F )
           Tension de fonctionnement (V )
           Capacité électrique du processeur (C ) liée aux transistors
                Nombre de transistors par unité de surface (densité)
                Taille du semi-conducteur
                    Pdyn (en Watts) = C × V 2 × F

  Thermal Design Power donnée par le fondeur
      Puissance moyenne qu’un processeur peut dissiper en charge
      Puissance maximale moins une marge de sécurité (20 à 30%)

     Réduire le coût énergétique de l’exécution d’une instruction

                         Michel Salomon   Intro. aux sys. info.          9 / 50
Introduction aux systèmes informatiques Structure d'un ordinateur - Michel Salomon
Architecture des ordinateurs actuels - Évolution
  Comparaison des performances des processeurs
     Processeur Intel 4004 - 1971
           2300 transistors
           Fréquence de 740 kHz
           0.092 MIPS
      Processeur AMD Ryzen Threadripper 3990X - 2020
           ≈39,54 milliards de transistors
           Fréquence de 2,9/4,3 GHz
           64 cœurs et 128 threads
           ≈ 2356230 MIPS (Benchmark Arithmétique - Dhrystone)

  Que constate-t-on ? ⇒ l’impact fort des évolutions architecturales
      Nombre de transistors multiplié par plus de 17 millions
      Fréquence multipliée par plus de 5800
      Puissance en MIPS multipliée par plus de 25,6 millions
                        Michel Salomon   Intro. aux sys. info.         10 / 50
Architecture des ordinateurs actuels - Structure globale
      On distingue plusieurs composants :
        1   l’unité centrale de traitement (ou CPU) ou processeur
            (ou microprocesseur) ;
              1   l’Unité de Contrôle
              2   l’Unité Arithmétique et Logique
              3   Un ensemble de registres
        2   la mémoire centrale ou principale ;
                  Contient programmes et données
        3   les interfaces d’Entrées/Sorties et les périphériques ;
                  Interfacent les périphériques avec le CPU, la mémoire centrale

      Composants reliés par un bus de communication
      Remarques :
            description des ordinateurs monoprocesseur avec un seul cœur ;
            il existe des architectures plus complexes comme les machines
            parallèles, multiprocesseurs.
                           Michel Salomon   Intro. aux sys. info.                  11 / 50
Architecture des ordinateurs actuels - Structure globale

  Chemin de données, instructions, micro-instructions
                                         Micro−instructions

           CPU                              Mémoire RAM                                      E/S
         Unité Arith.                                                           Périphérique n°1
                                          donnée     instruct. 1
         et Logique                       donnée     instruct. 2               Entrée              Sortie
                                          donnée     instruct. 3
        Unité de                                                                             d/i
        Controle
                                          donnée   instruct. n                         Interface
             Registres                    Données Programme

                                                        données                 données
                                                            /                       /
                                                      instructions            instructions
                           donnée
             instruction

                                      Bus de communication

                                    Michel Salomon    Intro. aux sys. info.                                 12 / 50
Architecture des ordinateurs actuels - Structure globale

      La RAM de la mémoire centrale occupe une place essentielle
             Tout transite par elle (données et instructions)
      Chaque instruction est décodée par l’unité de contrôle
          L’unité de contrôle interprète l’instruction ;
          elle contrôle l’activation des autres composants ;
          via des micro-instructions contrôlant les circuits (définissent
          sous forme de séquence binaire les signaux de contrôle)
      Une instruction peut consister en :
          une opération d’entrée ou de sortie ;
          un déplacement de données en mémoire ;
          des opérations arithmétiques et logiques ;
          etc.
      Un processeur peut exécuter un certain nombre d’instructions
          Le jeu d’instructions constitue le langage machine
          Le langage machine est propre à une architecture de processeur
          L’assembleur est le langage le plus proche du langage machine
                        Michel Salomon   Intro. aux sys. info.              13 / 50
Langages, programmes et exécution

  Différents niveaux de programmation
       Un processeur ne comprend que du langage machine
           Difficile à maîtriser par un être humain
           Instructions élémentaires ; programmation longue
           Plus bas niveau de programmation
      Création de langages de plus haut niveau
           Plus facile de programmer, avec moins d’erreurs
           Programmes indépendants du processeur

  Nécessité de passer d’un haut niveau à un bas niveau
  Exécuter un programme → passer d’un langage de haut niveau LH
  à du langage bas niveau LB plus compréhensible par un processeur
      Interprétation
      Traduction
                        Michel Salomon   Intro. aux sys. info.       14 / 50
Langages, programmes et exécution

  Interprétation ⇒ Exécution par une machine plus ou moins virtuelle
       Prog. écrit en LB prenant en entrée des instructions de LH
      Pour chaque instruction de LH une séquence équivalente en
      LB est exécutée
      Les instructions de LB sont ensuite décodées et exécutées

  Traduction ⇒ Compilation
      Instructions de LH remplacées par des instructions de LB
      Transforme un prog. écrit avec LH en un équivalent en LB
      Exécution du programme LB

                        Michel Salomon   Intro. aux sys. info.         15 / 50
Architecture des ordinateurs actuels -                     Machine multi-couches

      Au début il n’y avait que la couche matérielle de plus bas niveau
          Réalisation de calculs élémentaires
          Exécution directe des instructions du langage machine

      Apparition de jeux d’instructions complexes
      → économiser la mémoire
          Interprétation par une couche micro-codée

      Puis du besoin de partager l’utilisation de machines
      → multi-utilisateurs ; multitâches
          Nouvelle gestion de la mémoire et des ressources
      Retour vers des jeux d’instructions réduits
      → plus efficace
          Disparition de la couche micro-codée
          Importance du travail des compilateurs
                        Michel Salomon   Intro. aux sys. info.                     16 / 50
Architecture des ordinateurs actuels -                                             Machine multi-couches

Machines actuelles                                            Rôle des différentes couches
    Langage de haut niveau
                                                                   Langage de haut niveau
                  Traduction (compilateur)
                                                                   → Utilisé par les développeurs
    Langage d’assemblage                                            Langage d’assemblage
                  Traduction (assembleur)                           → Interaction avec les couches inf.
    Systeme d’exploitation                                          Système d’exploitation
                  Interpretation partielle                          → Mémoire, exécution concurrente
       Jeu d’instructions                                           Jeu d’instructions disponible
                  Interpretation / Execution                        → Exéc. directe ou micro-prog.
      Micro−architecture
                                                                    Micro-architecture
                  Materiel
                                                                    → Registres, UAL, etc.
      Circuits logiques
                                                                    → Caractéristiques phys. du proc.

        Une opération logicielle peut être réalisée par du matériel
        Une opération matérielle peut être émulée par du logiciel
                                             Michel Salomon      Intro. aux sys. info.                     17 / 50
Unité centrale de traitement (CPU) - Unité de contrôle
  Constituée de 3 éléments
    1 d’un séquenceur ;

             Synchronise l’exécution des instructions sur l’horloge ;
             gère les signaux qui contrôlent les autres composants
    2   d’un compteur ordinal (CO) ;
             Adresse mémoire de la prochaine instruction à exécuter ;
             correspond au registre IP (Instruction Pointer ) en x86
    3   registre d’instruction (RI)
             Contient l’instruction à exécuter, composée de deux champs :
             1 − le code de l’opération ;
             2 − les opérandes de l’opération (repérées par leur adresse -
             d’aucune à plusieurs)

  Cadencement de l’exécution des opérations / instructions
        Décodage code op. → micro-instructions cadencées sur l’horloge
        Horloge rapide → une instruction est rapidement réalisée
                           Michel Salomon   Intro. aux sys. info.            18 / 50
Unité centrale de traitement (CPU) - Unité de contrôle
          Exécuter un programme revient à répéter un même cycle
        d’opérations (étapes 3 et 5 en cas d’opérande en mémoire) :
    1    chercher instruction (Instruction Fetch) ;
    2    décoder (Instruction Decode) ;
    3    chercher opérande(s) (Operand(s) Fetch ) ;
    4    exécuter (EXecute)
    5    écrire en mémoire (Write Back)

  Cycle d’exécution d’instructions
   loop
      chercher l’instruction à l’adresse dans CO, la mettre dans RI
      modification du registre CO
      décoder l’instruction dans RI
      chercher les opérandes éventuelles
      exécuter l’opération associée au code opération
      écrire le résultat
   end loop

                             Michel Salomon   Intro. aux sys. info.   19 / 50
Unité centrale de traitement (CPU) - Unité de contrôle
  Rôle du séquenceur ⇒ engendrer les micro-instructions
       Séquenceur câblé → réalisé par un circuit
       Séquenceur micro-prog. → décrit par des micro-instructions
               Micro-programme exécuté par une micro-machine
               comportant un micro-compteur et une mémoire

  Type de séquenceur ⇒ dépend du type de jeu d’instructions
      Jeu étendu → famille Complex Instruction Set Computer
      Grand nombre d’instructions de tailles variables ⇒ micro-programmé
      Jeu réduit → famille Reduced Instruction Set Computer
        Petit nombre d’instructions de taille fixe ⇒ câblé (plus efficace)
      Remarques :
           intérêt de l’architecture CISC → réduire les accès mémoire ;
           intérêt de l’architecture RISC → constat dans les années 70/80
             80% des prog. ne comportaient que 20% des instr. machines
                         Michel Salomon   Intro. aux sys. info.              20 / 50
Unité centrale de traitement (CPU) - UAL

     L’Unité Arithmétique et Logique est en charge de l’exécution
         des calculs arithmétiques → addition, etc. ;
         des calculs logiques → comparaison de mots binaires, etc.
                       Arithmetic and Logic Unit
     Des informations sur le déroulement d’un calcul sont données
     par les différents bits du registre FLAG(S) (ou registre d’état,
     ou encore registre des drapeaux) :
         indicateur OF (Overflow ) → armé (mis à 1) en cas de
         débordement en arithmétique signée ;
         indicateur CF (Carry ) → armé (mis à 1) en cas de
         débordement en arithmétique non signée ;
         indicateur ZF (Zero) → armé si le résultat d’une instruction
         arithmétique est 0
         etc.

                       Michel Salomon   Intro. aux sys. info.           21 / 50
Unité centrale de traitement (CPU) - UAL
  Exécution - Principe
    Une instruction arithmétique nécessiterait 3 adresses mémoire
        l’Adresse des 2 opérandes du calcul ;
        l’Adresse où ranger le résultat
        → nécessite beaucoup de bits pour coder l’instruction

  Exécution - Pratique
             Pour simplifier, un registre accumulateur (ACC)
               était utilisé pour faire le calcul en 3 étapes
    1   Transférer l’opérande 1 dans le registre ACC ;
    2   Effectuer le calcul entre ACC et l’opérande 2, puis mettre le
        résultat dans le registre ACC ;
    3   Transférer le résultat de ACC à l’adresse mémoire adéquate
        → à la place d’1 instruction complexe on en a 3 plus simples
                          Michel Salomon   Intro. aux sys. info.        22 / 50
Unité centrale de traitement (CPU) - UAL

  Processeurs actuels
      Disposent de registres généraux (ou de travail)
               Architecture 32 bits → 8 registres (EAX,EBX,ECX,EDX, etc.)
               Architecture 64 bits → 16 registres (RAX,RBX,RCX,RDX, etc.)
                                                                                   AX
                                                                              AH         AL
      63                                     32 31                    16 15        8 7        0
                                                                      EAX
                                             RAX

      Utilisent uniquement des registres → 1 calcul en 3 étapes :
           1   Transférer l’opérande 1 dans le registre Rα ;
           2   Transférer l’opérande 2 dans le registre Rβ ;
           3   Effectuer le calcul entre Rα et Rβ
           4   Transférer le résultat de Rα à l’adresse mémoire adéquate

      Registres adressés par des bits : 2 bits → 4 registres, etc.
                            Michel Salomon    Intro. aux sys. info.                               23 / 50
Unité centrale de traitement (CPU) - UAL

  Illustration du fonctionnement
                                                  Registre CO
                                                  1 FETCH instruction
               instruction 1                                                         Registre RI
   Programme   instruction 2                      3 FETCH operand
               instruction 3
                                                    Registres de travail
               Mémoire

               opérande 1
     Données
               opérande 2
                                    ou écriture

         5                     Reg. FLAG                        UAL
     WRITE BACK                                                                  2 DECODE

                                                                       4 EXECUTE

                                  Michel Salomon         Intro. aux sys. info.                     24 / 50
Unité centrale de traitement (CPU) - Techniques diverses
  Unité de calcul en virgule flottante (coprocesseur mathématique)
      Floating Point Unit extérieure avant proc. 486 DX
      Initialement émulée via un micro-code en utilisant l’UAL
      Jeu d’instructions x87 inclu dans le jeu global x86
  Architecture 16 bits, 32 bits, 64 bits
      Registres plus grands et plus nombreux
      Jeu d’instructions étendu / spécialisées (MMX, SSEx , etc.)
      Exemple : x64 Architecture (ou x86-64 ; x86_64 ; AMD64)
            16 registres généraux de 64 bits
            8 registres FPU(x87) / MMX(“parallélisme” SIMD) de 80 bits
            16 registres SSE de 128 bits (extension de MMX)
            16 / 32 registres AVX2 de 256 bits / AVX512 de 512 bits

      Architecture → abstraction définie par un jeu d’instructions
      Micro-architecture → caractéristiques physiques du processeur

                            Michel Salomon   Intro. aux sys. info.       25 / 50
Unité centrale de traitement (CPU) - Techniques diverses
  Registres du jeu d’instructions x86-64

      16 registres généraux de 64 bits (General Purpose Registers)
           Registres x86 “originaux” → rax, rbx, rcx, rdx,
             → rbp (start of stack)
             → rsp (current location in stack, growing downwards)
             → rsi et rdi (data source / destination copies)
           Registres pour le mode 64-bit (adresses virtuelles) → r8 à r15
                         Michel Salomon   Intro. aux sys. info.             26 / 50
Unité centrale de traitement (CPU) - Techniques diverses
  Mémoire cache ⇒ réduire les accès à la RAM
     Intégration dans le processeur depuis le proc. 486
      Différents niveaux : L1, L2 et L3 (du moins au plus rapide)
      Un niveau peut être
           Dédié à un cœur
           Partagé entre plusieurs cœurs

  Pipeline, puis superpipeline ⇒ “travail à la chaîne”
       Découpage de l’exécution d’une instruction en étages, à
       chaque instant un étage peut ainsi exécuter une instruction
      Superpipeline → augmentation du nombre d’étages             (profondeur)
           Exemple : Pentium 4 / Core ix → pipeline à 20 / 14 étages
           Problématique pour certaines instructions
                Instructions ayant des dépendances entre elles
                Branchements conditionnels

                         Michel Salomon   Intro. aux sys. info.                  27 / 50
Unité centrale de traitement (CPU) - Techniques diverses
  Pipeline, puis superpipeline → “travail à la chaîne”
       Exécution sans pipeline → 25 cycles pour exécuter 5 instructions
                            0           T         2T         3T         4T         5T         6T         7T             8T         9T
                                                                                                                                        temps
           Inst. Fetch            IF1                                                   IF2
           Inst. Decode                     ID1                                                    ID2
           Op. Fetch                                   OF1                                                    OF2
           EXecute                                            EX1                                                        EX2
           Write Back                                                    WB1

                         étages                                          inst. 1                                         inst. 2

       Exécution avec un pipeline à 5 étages →                                                     9 cycles pour exécuter
                            0           T         2T         3T         4T         5T         6T         7T             8T         9T
                                                                                                                                        temps
           Inst. Fetch            IF1       IF2        IF3        IF4        IF5
           Inst. Decode                     ID1        ID2        ID3        ID4        ID5
           Op. Fetch                                   OF1 OF2           OF3        OF4        OF5
           EXecute                                            EX1        EX2        EX3        EX4            EX5
           Write Back                                                    WB1 WB2 WB3 WB4 WB5

                         étages                                          inst. 1    inst. 2    inst. 3        inst. 4    inst. 5

                                            Michel Salomon               Intro. aux sys. info.                                                  28 / 50
Unité centrale de traitement (CPU) - Techniques diverses
  Problèmes lors de l’exécution d’instructions par le pipeline
                      Il y a 3 types d’aléas possible
    1   Aléas de structure
         → Plusieurs étages veulent utiliser simultanément de même
           parties du CPU ⇒ EX et IF veulent accéder à la mémoire
         → Solutions : attendre ; dupliquer ; découper le cache L1 en deux
    2   Aléas de données
         → L’instruction en cours d’exécution dépend d’une valeur non
           encore calculée ⇒ R1=R2+10 suivi de R3=R1*20
         → Solutions : suspension ; court-circuit ; réordonnancement
    3   Aléas de contrôle
         → L’instruction suivante dépend du résultat d’une instruction
           ⇒ saut conditionnel (WB écrit l’adresse de la prochaine inst.)
           Solution : prédiction du branchement conditionnel
           (indispensable pour l’efficacité du pipeline)

                            Michel Salomon   Intro. aux sys. info.           29 / 50
Unité centrale de traitement (CPU) - Techniques diverses
  Architecture superscalaire
      Exécution simultanée de plusieurs instructions
                Plusieurs pipelines → unités de calcul / d’exécution multiples
                Pas de dépendance entre instructions exécutées en parallèle
                Degré = nb de pipelines / unités de calcul multiples

                  Processeurs Core ix → 6-way superscalar = degré 6

      1 cycle     2 cycles     3 cycles                    5 cycles                  2 cycles   1 cycle 1 cycle 1 cycle
        A           B            C                           D                         E          F       G         H

                                                                 UC
        A               C             E          F     G          0

                                                                 UC
            B                    D                     H          1
                                                                                                                        temps

  0                                  5T                               10T                                     15T

                    Exécution d’instructions nécessitant différents nombres de cycles

                                          Michel Salomon     Intro. aux sys. info.                                          30 / 50
Unité centrale de traitement (CPU) - Techniques diverses

  Multicœur et hyper-threading (ou multi-threading)
      Multicœur
           Plusieurs cœurs de calcul travaillant en parallèle
           Programmes dont l’exécution est parallélisable
           Problème → échange des infos entre les cœurs

      Hyper-Threading (concept du Simultaneous Multi-Threading)
           Objectif : utiliser les unités de calcul d’un cœur en permanence
           Comment ?
                Création de deux processeurs logiques pour un cœur physique
                Registres de données, de contrôle dupliqués
                Partage des unités d’exécution du cœur, cache et du bus
       Processeurs Core ix → 2-way simultaneous multi-threading

                         Michel Salomon   Intro. aux sys. info.               31 / 50
Unité centrale de traitement (CPU) - Techniques diverses

  Hyper-Threading (ou multi-threading)
                                                                     idle

                                                                            Execution Units
                                                Registers
                                  L1D
                                  cache
                   L2
                  cache
                                   L1I
                                  cache
    Memory                                       Control

                                                                            Execution Units
                                  L1D             Registers
                                  cache
                   L2
                  cache
                                   L1I
                                  cache           Control
    Memory

             2-way simultaneous multi-threading = 2 processeurs logiques

                            Michel Salomon   Intro. aux sys. info.                            32 / 50
Unité centrale de traitement (CPU) - Techniques diverses

  Out-of-order execution ⇒ exécution dans le désordre
      In-order execution
        1   Instruction fetch
        2   Operands availables ? (yes → dispatch ; no → fetch)
        3   Execution by the appropriate functional unit
        4   Write Back results to the register file

      Out-of-order execution
        1   Instruction fetch
        2   Instruction dispatch to queue (reservation stations)
        3   Instruction waits in queue for operands
        4   Execution by the appropriate functional unit
        5   Results wait in queue until older instructions are processed
        6   Write Back results to the register file

                          Michel Salomon   Intro. aux sys. info.           33 / 50
Unité centrale de traitement (CPU) - Techniques diverses
  Instruction and data flow in Nehalem cores

           Un cache Translation Lookaside Buffer stocke
    des translations adresses virtuelles / physiques pour la MMU
                       Michel Salomon   Intro. aux sys. info.      34 / 50
Unité centrale de traitement (CPU) - Techniques diverses

  Instruction and data flow in processors

              Les Translation Lookaside Buffer stockent
    des translations adresses virtuelles / physiques pour la MMU

                        Michel Salomon   Intro. aux sys. info.     35 / 50
Unité centrale de traitement (CPU) - Techniques diverses
  Nehalem Core : Front-End Pipeline

                       Michel Salomon   Intro. aux sys. info.   36 / 50
Unité centrale de traitement (CPU) - Techniques diverses
  Nehalem Core : Out-of-order Execution Engine

                       Michel Salomon   Intro. aux sys. info.   37 / 50
Unité centrale de traitement (CPU) - Techniques diverses
  Branch Prediction Unit ⇒ prédiction de branchement conditionnel
      Vider le pipeline lors d’un branchement est très coûteux
      Solution réduisant ce problème : un mécanisme de prédiction
          Prédire le comportement le plus probable lors d’un
          branchement (instructions conditionnelles et boucles)
          Taux de prédiction fiable à 90-95%
                                             mov AX,0
       a=0;                                  mov CX,1
       c=1;                               while:
       while (c
Mémoires - Hiérarchie
  Plusieurs types de mémoire cohabitent
        Mémoire cache (L1, etc.) ;
        Mémoire centrale (RAM) ;
        Mémoire de masse (disque dur, CD, DVD, etc.) ;
        → chaque type présente des caractéristiques différentes
  Principes guidant l’organisation de ces mémoires
    1   Principe de localité
        → 90% du temps d’exéc. est passé dans 10% du code
             Localité temporelle ⇒ une donnée (ou instruction) sera
             probablement réutilisée plus tard ;
             Localité spatiale ⇒ une donnée (ou instruction) localisée
             près d’une donnée (ou instruction) utilisée récemment le sera
             sans doute prochainement ;
    2   Plus une mémoire est rapide, plus elle est petite
        → coût d’encombrement proportionnel à la rapidité
                           Michel Salomon   Intro. aux sys. info.            39 / 50
Mémoires - Hiérarchie

  Pyramide des mémoires

                     Michel Salomon   Intro. aux sys. info.   40 / 50
Mémoires - Hiérarchie
  Nehalem : cache memory organization

                      Michel Salomon   Intro. aux sys. info.   41 / 50
Mémoires - Caractéristiques

      Capacité (ou taille)
           Nombre d’octets qui peuvent être stockés
      Cycle mémoire
           Temps minimum entre deux accès consécutifs
      Débit
           Nombre d’octets lus / écrits par seconde
      Temps d’accès
           Temps s’écoulant entre une demande d’accès
           (lecture ou écriture) et son accomplissement
      Type d’accès
           direct → accès via une adresse ;
           par le contenu → mémoire associative ;
           séquentiel
      Volatilité
           Perte éventuelle de l’information
                         Michel Salomon   Intro. aux sys. info.   42 / 50
Mémoires - Technologies de réalisation
  Mémoire de type Static Random Access Memory (Wikipedia)
      Principe : 1 bit mémorisé via une bascule à base de transistors
      Très rapide et “coûteuse”
      Utilisée pour les registres et la mémoire cache dans les proc.

                        Michel Salomon   Intro. aux sys. info.          43 / 50
Mémoires - Technologies de réalisation

  Mémoire de type Static Random Access Memory
     Principe : 1 bit mémorisé via une bascule à base de transistors
      Très rapide et “coûteuse”
      Utilisée pour les registres et la mémoire cache dans les proc.

  Mémoire de type Dynamic Random Access Memory
     Principe : 1 bit mémorisé via un transistor couplé à un
     condensateur
      Moins rapide (rafraîchissement), facile à fabriquer et
      d’un coût réduit
      Utilisée pour la mémoire centrale (SDRAM, DDRAM, etc.)

                        Michel Salomon   Intro. aux sys. info.         44 / 50
Mémoire cache - Objectif et types
  Concept utilisé à différents niveaux
      On trouve une mémoire cache ou antémémoire dans différents
      composants matériels ou logiciels tels que :
            disque dur ;
            serveur de pages dynamiques ;
            etc. ;
            microprocesseur (CPU, GPU)

  Objectif dans le cas d’un processeur
      Ne pas avoir à rechercher en mémoire centrale des
      informations (données, instructions) déjà utilisées ;
        pour cela on les mémorise près du processeur
  Types de mémoire cache
    1   séparé → données et instructions dans des caches différents
    2   unifié → données et instructions dans le même cache
                         Michel Salomon   Intro. aux sys. info.       45 / 50
Mémoire cache - Niveaux de cache d’un CPU
  Dans un processeur on peut avoir jusqu’à 3 niveaux de cache
      Cache de niveau 1 ou L1 → propre à chaque cœur ;
           Habituellement cache séparé → opérations simultanées
      Cache de niveau 2 ou L2 → capacité plus importante
      Cache de niveau 3 ou L3 → partagé
                    Mot                     Ligne                           Bloc
          CPU                 L1                            L2                     L3

  Illustration avec deux processeurs Nehalem quadcore

                           Michel Salomon           Intro. aux sys. info.               46 / 50
Mémoire cache - Fonctionnement et mapping
  Fonctionnement
    1 Le processeur demande une information ;

    2 le contrôleur de cache regarde sa disponibilité dans le cache

              Oui → succès de cache
              Non → défaut de cache
    3   en cas de défaut de cache le contrôleur demande à la mémoire
        centrale de lui fournir l’information ;
    4   l’information en provenance de la mémoire centrale est
        stockée dans le cache pour une utilisation ultérieure
  Mapping de 3 types
     Méthode indiquant à quelle adresse écrire dans le cache
          1   Cache direct → écrire à un endroit précis
          2   Cache associatif → écrire n’importe où en suivant une politique
          3   Cache associatif par n-ensembles → combine les précédentes
              (n-way set associative = n nb d’endroits)
                            Michel Salomon   Intro. aux sys. info.              47 / 50
Mémoire cache - Fonctionnement et mapping
  Illustration des mappings (Wikipedia)
    1   Cache direct-mapped

    2   Cache fully associative

                          Michel Salomon   Intro. aux sys. info.   48 / 50
Mémoire cache - Fonctionnement et mapping
  Illustration des mappings (Wikipedia)
    3   Cache n-way associative

                        Michel Salomon   Intro. aux sys. info.   49 / 50
Mémoire cache - Remplacement et interaction
  Politique d’écriture / de remplacement pour les caches associatifs
      Random → info. choisie aléatoirement
      First-In-First-Out → info. la plus ancienne
      Least-Recently-Used → info. la moins récemment utilisée
      Least-Frequently-Used → info. la moins fréquemment utilisée
      Most-Frequently-Used → info. la plus fréquemment utilisée

  Politique de lecture dans la mémoire centrale si défaut de cache
       Read Through → lecture directe RAM ⇒ CPU
      No Read Through → lecture RAM ⇒ cache ⇒ CPU

  Politique d’écriture dans la mémoire centrale
       Write Through → dans le cache et la RAM
      Write Back → dans le cache, puis la RAM à l’effacement
                        Michel Salomon   Intro. aux sys. info.         50 / 50
Vous pouvez aussi lire