ARCHITECTURE

Document Sample
ARCHITECTURE Powered By Docstoc
					ARCHITECTURE

         IUT-A
1ère année Informatique
 Généralités
Périphériques,             Modèle de
                         programmation      Rôle et
Connectique,
                                            construction d ’un OS
Normes, standards
                     Algorithmique
 Technologie                                   Système

                      Architecture


         Electronique               Mathématiques

    Traintements eléctroniques           Fonctions logiques
    Communication                        Codage
                     A.S.R. 2
Structure d’un ordinateur (6h)
       CPU
                                     Environnement
       Mémoire                       d’exécution (système)
       Entrées-sorties
Structure d’un Micro-ordinateur PC (2h)
       Composants
       Bus
       Connectique
Langage C (8h)
           Couches d'abstraction
Utilisateur progiciel    Développeur        Utilisateur système

       Logiciel
                        Langage de prog.

                                                 Interface



        Langage machine                Système d'exploitation


           Modèle de programmation & Entrées-sorties

                           Matériel
      Exemple de modèle ISA
68000:
Registres            Move.l #5,D0
Jeu d'instruction
Modes d'adressage


00001000 7005        12       move.l #5,D0
00001002 C0FC 0008   13       mulu #8,D0
00001006 21C0 0800   14       move.l D0,I
      Structure d’un ordinateur
Communication entre les
   composants
1.   Point à point                   C2
Pb: pour installer un nouveau
    composant il faut autant    C1        C3
    de nouvelles connexions
    que de composants déjà
    installés
    Complexité croissante:          C1
     impraticable
   Structure d’un ordinateur
Structure en Bus: chaque composant est relié
individuellement à un seul média.
A tout moment il y a un seul émetteur (plusieurs
composants peuvent écouter)
Besoin de protocole




    C1         C2      …       Cx     …     Cn



                         BUS
        Structure d’un ordinateur
        C1          C2       …        Cx     …      Cn



                                BUS

Les caractéristiques d’un bus
• Définition des signaux et de leur signification
•La fréquence de fonctionnement (défini l’unité de temps)
•La largeur (quantité d’information transmise en une unité de
temps)
Les performances d’un bus sont directement déterminées
par les deux derniers points.
   Structure d’un ordinateur
Le bus système

                                Bus de contrôle

  Regroupe tous les signaux de commande et de
  synchronisation
                                 Bus d’adresse

  Permet de désigner un composant parmi n (par exemple
  une case mémoire)
                               Bus de données

  Permet l’échange de données
Structure d’un ordinateur


  CPU      Mémoire     E/S




           BUS
         Structure d’un ordinateur
           la vision d’un programmeur en assembleur
                                                   APPEL SYSTEME
                                données

         registres                      code
                                                          E/S




                                 BUS
Le programmeur utilise les registres et la mémoire pour
stocker code et données.
Les Entrées-sorties sont complètement masquées par l’OS
        Structure d’un CPU
Son rôle (modèle de Von Neuman):
• Rechercher le code en mémoire
• Exécution une instruction
    Utilisation d’un ou plusieurs registres
    Opérations mémoire
    Réalisation d’opérations arithmétiques/logiques
•Recommencer
                              Exemple d’instructions:
                              nop
                              Move.l #4,D0
                              Move.l i,D1
                              Add.l #10,D1
     Structure d’un CPU

   registres

                                    UC
   Compteur
   ordinal (PC)




Registre d’       Registre de    Registre d’
adresse (RA)      données (RD)   instruction (RI)
     Structure d’un CPU
               Exécution d’un nop


   registres

                                      UC
   Compteur
   ordinal (PC)




Registre d’         Registre de    Registre d’
adresse (RA)        données (RD)   instruction (RI)
     Structure d’un CPU
               Exécution d’un nop


   registres

                                      UC
   Compteur
   ordinal (PC)




Registre d’         Registre de    Registre d’
adresse (RA)        données (RD)   instruction (RI)
     Structure d’un CPU
               Exécution d’un nop


   registres

                                      UC
   Compteur
   ordinal (PC)

                      Code.op
                       du nop


Registre d’         Registre de    Registre d’
adresse (RA)        données (RD)   instruction (RI)
     Structure d’un CPU
               Exécution d’un nop


   registres

                                      UC
   Compteur
   ordinal (PC)
                     pc=pc+1




Registre d’         Registre de    Registre d’
adresse (RA)        données (RD)   instruction (RI)
          Structure d’un CPU
                  Exécution d’un nop
Conclusion : même pour une instruction qui ne fait rien, il
faut:
•Chercher le code-op à l’adresse PC (à ranger dans RI)
•Incrémenter PC

 C’est la phase Instruction fetch
         Structure d’un CPU
              Exécution de add.l i,D0
                                       D0
0120   0004      i                          1263
0122
                                                     +0004

                                       D0
                                            1267

2000   0306      Add.l …,D0
2002   0120       …i
2004                          Fetch        0306     0120
2006
                              Lire la valeur de i   0004
                              L’additionner à ax
     Structure d’un CPU
          Exécution de add.l i,D0


   registres

                                         UC
   Compteur
   ordinal (PC)
                       pc=pc+1
      2000



Registre d’            Registre de    Registre d’
adresse (RA)           données (RD)   instruction (RI)



               FETCH
     Structure d’un CPU
          Exécution de add.l i,D0


   registres

                                         UC
   Compteur
   ordinal (PC)
                       pc=pc+1
      2000


   2000                  0306           0306
Registre d’            Registre de    Registre d’
adresse (RA)           données (RD)   instruction (RI)



               FETCH
     Structure d’un CPU
          Exécution de add.l i,D0


   registres

                                         UC
   Compteur
   ordinal (PC)
      2001


   2001                  0120
Registre d’            Registre de    Registre d’
adresse (RA)           données (RD)   instruction (RI)



               FETCH
     Structure d’un CPU
          Exécution de add.l i,D0


   registres

                                    UC
   Compteur
   ordinal (PC)
      2001


   0120             0120
                    0004
Registre d’       Registre de    Registre d’
adresse (RA)      données (RD)   instruction (RI)
      Structure d’un CPU
        Exécution d’un add.l i,D0


 D0
      1263
      1267
                                  UC




                   0004
Registre d’     Registre de    Registre d’
adresse (RA)    données (RD)   instruction (RI)
             Structure d’un CPU
                  Construction
                  Bus
     registres
                  interne


                                        Unité de
                                        contrôle

                        UAL


SP
                                   RI
PC


      RA                      RD
                   Références
BASIQUE:
Ediscience N. P. Carter (SCHAUM)
 ARCHITECTURE DE L'ORDINATEUR
AVANCE:
Pearson W. Stallings
 ORGANISATION ET ARCHITECTURE DE L'ORDINATEUR
DUNOD A. Tannenbaum
ARCHITECTURE DE L'ORDINATEUR
         Structure d’un CPU
          Structure d’un processeur


               PC
                                      UAL

     A    B         T1   T2




RA        RD             RI            Unité de
                                       contrôle
               Structure d’un CPU
                   Structure d’un processeur
           Exemple de micro-programme: A  A + B


T1  A
T2  B
                                        PC
A  T1+T2
                                                                UAL
                           A        B         T1    T2
RA  PC
T1  PC
PC  T1+1
Lecture mémoire                                    RI
RI  RD                                                           U.C.
                               RA        RD




L’Unité de contrôle décode le code-opération en suite de micro instructions.
(réalisation par automate (câblée) ou par micro-programmation)
            Structure d’un CPU
              Structure d’un processeur
        Exemple de micro-programme: A  A + B


T1  A
T2  B                 +1
                                PC
A  T1+T2
                                                UAL
                   A        B
RA  PC
T1  PC
PC  T1+1
Lecture mémoire
RI  RD
              Structure d’un CPU
                  Structure d’un processeur
         L’architecture du processeur détermine:
•   Les registres utilisables
•   Les opérations réalisables par l’U.A.L.
•   Comment le code-opération est transformée en micro-
    opérations.

           Comment améliorer les performances:
•   Réduire le nombre de micro-instructions nécessaires pour
    une instruction
•   Paralléliser les micro-instructions
•   Augmenter la fréquence de fonctionnement
           Structure d’un CPU
             Optimisations (Modèle ISA)
Pour la définition d’une couche ISA: 2 tendances


            CISC – instructions puissantes mais complexes:
            • Traitement de chaînes de caractères
            • Vérification de bornes
            • Adressage basé, Indexé


            RISC – Peu de sortes d’instructions mais très
            rapides:
            • Beaucoup de registres
            • Peu d’instruction mémoires
            • Parallélisme
                 Structure d’un CPU
                   Optimisations (Pileline)
i1          i2       i3      i4
                                                          fetch


décodage


exécution



                            À cet instant:
                            fetch i3, décodage i2, exécution i3



                                  temps
                  La Fonction Mémoire
                       La Fonction


     Ecriture          Lecture               Caractéristiques

                                        Nombre de mots
                                        (Largeur du bus d’adresse)

                                        Taille d’un mot
Adresse           Adresse               (Largeur du bus de données)


            MEM              MEM        Temps d’accès

Donnée             Donnée
                                        Coût (€ / Bit)
                          La Fonction Mémoire
                            Les Technologies



Mémoire Centrale (Electronique)   Mémoire de masse (Périphériques)


                                  Disques magnétiques
                                  CD / DVD
Mémoires mortes
                                  Cartes mémoires (Electroniques)
Mémoires Flash

Mémoire statique
Mémoire dynamique
                        La Fonction Mémoire
       Mémoire Vive - RAM – Mémoire à accès direct (Structure)




Adr.
                           La Fonction Mémoire
                    Mémoire Vive (Point mémoire)



Statique                  Ligne de mot
                                                               6 transistors




Dynamique
           Ligne de mot                      Rafraîchissement nécessaire
                                             2 transistors
                                             Adresse fournie en deux fois
                                                        (RAS, CAS)



 DRAM, SDRAM, DDR-RAM, RD-RAM…
       La Fonction Mémoire
              Caches




        0000     23
        0001     45
        0002     84
          …       …
        1499     78
1500                         92
        1500     92
        1501     13
          …       …
        FFFD     00
        FFFE     18
        FFFF     98               10 ns
       La Fonction Mémoire
             Caches




            1500      92




             0000     23
1500                           92
               …       …
                             5 ns
             1499     78
             1500     92
             1501     13
               …       …
             FFFF     98
       La Fonction Mémoire
             Caches




            1500      92
            1499      78




             0000     23
1499                           78
               …       …
                             10 ns
             1499     78
             1500     92
             1501     13
               …       …
             FFFF     98
       La Fonction Mémoire
             Caches




           1500       92
           1499       78




            0000      23
1499                           78
              …        …
                             5 ns
            1499      78
            1500      92
            1501      13
              …        …
            FFFF      98
                         La Fonction Mémoire
                   Caches (Calcul de temps d’accès)




                       100 accès



         5 miss                       95 hits
       accès RAM                    accès cache

      5 * 10 = 50 ns      +        95 * 5 = 495 ns    =    545 ns

                Temps d’accès moyen                        5,45 ns

Éléments d’évaluation:
    •  Temps d’accès en mémoire cache
    •  Temps d’accès en RAM
    •  Taux de miss/hit (fonction de la taille du cache)
            La Fonction Mémoire
                  Caches




1500   92           Non: Miss                 Oui: Hit
                                   Donnée
1499   78                         en cache?

 -     45
1322   34
0095   02              Mem                       Cache
 -     14



                                  Résultat
                 La Fonction Mémoire
       Caches (Réalisation – mémoire associative)




                     1500     92     ?


                     1499     78     ?


                       -      45     ?
Adr.                                         Data

                     1322     34     ?


                     0095     02     ?
                      La Fonction Mémoire
               Caches (Réalisation – accès direct)



100 éléments
                                                1500  92
(00 à 99)
               00    15       92
                                                1600  nop
               01    -         -
                          …                     1710  nop
               22    13       34
                          …
               28     -       -
  Adr.                    …                  Data
               95    00       02
                          …
               98     -       -             On ne peut pas ranger
               99    14       78            simultanément deux
                                            adresses ayant même
                                            terminaison
              La Fonction Mémoire
       Caches (Réalisation – accès direct)




                                              On peut ranger
       00    15       92                      simultanément
       01    -         -                      deux adresses
                  …                           ayant même
                                              terminaison
       22    13       34
                  …
       28     -       -                Data
Adr.              …
       95    00       02
                  …
       98     -       -
       99    14       78
                         La Fonction Mémoire
                     Caches (Longueur de ligne)



              00    15      92.15.46.84

              96    14      14.21.52.78

              16    -       12.13.21.45                 Data
Adr.
              20    13      84.99.34.10

              92    00      77.74.74.02

                                                       1322
       Décomposition de l’adresse                13     20         2

              Détermine si Hit/Miss
                         Sélection de la ligne
                              Sélection de l’octet dans la ligne
                            La Fonction Mémoire
                    Caches (Politique de remplacement)


                                   Si cache plein
       Hit/Miss?                    Trouver un élément qui sera remplacé
                                     par la nouvelle valeur
                                   1500       92
 Mem               Cache
                                   1499       78
                                   1322       34
       Résultat                    0095       02                  ?
                                          &
                                   1508       56
Idéalement
            Trouver l’élément qui ne sera plus utilisé par la suite
MAIS         on ne sais pas prédire l’avenir

LRU          La ligne qui a été inutilisée depuis le plus longtemps

Aléatoire Tirer une ligne au hasard !

NMRU         Aléatoire sauf Ligne(s) plus récemment référencées
                     La Fonction Mémoire
             Caches (Mise à jour des modifications)




                              1500  92                0095   02
                              1499  78
                              1310 34 76
                                               ?
                                                      1310   34
                              0095  02

                                                      1499   78
                                                      1500   92
Modification de la donnée

Quand reporter la modification en RAM ?
Write-through  dés que possible
Write-Back  lors du remplacement
                La Fonction Mémoire
      Caches Multiniveau / Architecture Harvard




           Data L. 1
CPU                            Cache L.2          RAM
           Code L. 1
                         La Fonction Mémoire
                      Mémoire virtuelle (Principe)



Utilisation de techniques similaires au mémoire cache pour :
1. Utiliser les mémoires magnétiques comme ‘extension’ de la
   mémoire RAM.
2. Ajouter à la mémoire les notions d’accès restreint (écriture seule,
   exécution seule, accès interdit)
3. Fournir au système d’exploitation le moyen d’assurer son rôle
   (commutation de contexte)
Caractéristiques spécifiques:
1. Le processeur ne peut pas lire directement les données depuis le
   disque (passage obligé en RAM). Opérations par bloc plutôt que
   par mot.
2. Il y a transformation des adresses
3. L’espace d’adressage est propre à chaque processus.
                       La Fonction Mémoire
                  Mémoire virtuelle (Principe)




                Espace d’adressage virtuel

Traduction d’adresse    (table de pages)


                                                 Défaut de pages




                  Stockage magnétique
       La Fonction Mémoire
    Mémoire virtuelle (Principe)



             Adresse virtuelle

a           NPV                    déplacement




                traduction




                     NPP           déplacement

                              Adresse
                              physique

                          mémoire
              La Fonction Mémoire
           Mémoire virtuelle (Principe)


                    Adresse virtuelle

a                  NPV                    déplacement



                       traduction
    Mem.
    Aux.


                            NPP           déplacement

                                     Adresse
                                     physique

                                 mémoire
       La Fonction Mémoire
Mémoire virtuelle (Table de page)



       No page virtuelle             Déplacement




modifié?
                  No Page Physique   Déplacement
   M

     V       Valide?
                   La Fonction Mémoire
             Mémoire virtuelle (Table de page)




Pagination à la demande:
La page n’est chargée en mémoire physique que quand
elle est requise.

Permutation (Swap):
Toutes les pages d’un processus sont chargée lors de
l’activation du processus.
                    La Fonction Mémoire
              Mémoire virtuelle (Table de page)



Problème: Taille de la table des pages

Exemple:
• Adresse virtuelle de 48 bits                         48
• Adresse physique de 32 bits
• Pages de 4 Ko
                 236 pages virtuelles

                                                  36        12


       64 G      192 Go                           20        12



                                                       32
                    20
                     La Fonction Mémoire
               Mémoire virtuelle (Table de page)



Solution: Table à plusieurs niveaux (3246)

   I(3)                II(2)               III(4)         D(6)


     3    12


                                12

                        2      33




                                             4      115


                                            33

                                                    115   6
            La Fonction Mémoire
       Mémoire virtuelle (segmentation)




                                          Taille
code                                      variable

data
pile

                                          •Adresse de départ
code                                      •Taille
                                          •Droits
pile


        protection
                            La Fonction Mémoire
                       Mémoire virtuelle (segmentation)



                             traduction
        A                                                 x1   x4
                   1
movl (2,10),%eax
incl (2,45)
                                                          t1
                   2    A.1 x1     t1 r
call (3,200)
                        A.2 x2     t2 rw                       t4
…                  3
                        A.3 x3     t3 x
                        B.1 x4     t4 rwx
        B
                   1    B.2 x5     t5 r
movl (1,10),%ax
decl (1,10)
                   2
                                   La Fonction Mémoire
                           Mémoire virtuelle (segmentation)


       A
                                   traduction
                                                              x1
…
movl (2,10),%eax             A.2 x2        t2 rw
                                                              t1
…



                                UGM/MMU
                               t x d
              2
           segment


             10
           offset
                               >
                                            et
             r
           accès
                    trap
    CPU                     Unité de gestion
                            mémoire
                            Memory Management
                     La Fonction Mémoire
                Mémoire virtuelle (segmentation)


Lors du chargement d’un programme, l’O.S.:
• Cherche une place libre en mémoire pour stocker les
  différents segments du programme.
• Initialise les registres de segment conformément aux choix
  effectués et aux privilèges supposés du programme.
• Donne la main au programme.

Lors de l’exécution d’un programme, le matériel:
• Vérifie la légalité de chaque accès mémoire
• Emet un trap si une erreur est détectée
• Tranforme les adresses segmentées en adresses physiques

Un trap redonne la main au système qui peut décider de
  l’action à entreprendre
                   Les entrées sorties
                    Communication




                      données
       CPU            adresse            E/S


      E/S projetées en mémoire (même
      adresse que RAM) ou espace
      d’adressage différent.


      …                                   …
mov %eax, voyant                   out %eax, voyant
      …                                   …
                Les entrées sorties
                 Synchronisation




             données
CPU          adresse            E/S




…
Boucle:
inl     touche,%eax     Problème:
outl    %eax,light      Le processeur ne fait rien
Je      boucle          d’autre
…
                      Les entrées sorties
                         Interruption




                   données
     CPU           adresse              E/S



On suppose que le matériel peut signaler un
événement  appel de sous-programme.

…                                 IT:         pushl   %eax
movl    $5,%eax                               inl     touche,%eax
                                              outl    %eax,light
movl    %eax,%eab                             popl    %eax
…                                             ret
                       Les entrées sorties
                 Polling et Vecteur d’interruption


Que se passe t-il quand il y a plusieurs sources possible?

                données
 CPU            adresse             E/S



 IT:     si touche1 alors
         sinon si touche2 alors
         sinon si touche3 alors
         etc…
         ret


                        Temps de réaction ?
                        Priorités entre interruptions?
                         Les entrées sorties
                 Polling et Vecteur d’interruption


Que se passe t-il quand il y a plusieurs sources possible?

                données
 CPU            adresse              E/S


 Table des vecteurs d’interruption
 en mémoire
 Initialisée par l’O.S.
                                        IT1:     traitement touche1
                                                 ret
                   it1                  IT2:     traitement touche2
                                                 ret
                   it2                  …
                   it3
                   …
           Structure d’un CPU
                Conception d’un processeur
Modèle I.S.A.                       Micro-architecture

                         Sous-
 Liste des registres   ensemble     Registres internes


 Jeu d’instruction     implémente   Unité de contrôle


 Modes d’adressage                  U.A.L.
          Structure d’un CPU
              Structure d’un processeur
2 registres A et B
MOVE #xxx,A
MOVE #xxx,B
MOVE A,B
ADD A,B
MOVE mmm,A
MOVE (B), A
Etc…
             Historique des CPU
        Les premiers processeurs
4004 (historique – premier micro-processeur)

  1972: 8008, 8080 puis 8085 cœur du premier micro-ordinateur
  Et ses concurrents, 6800, 6502 et Z80
  • Processeurs 8 bits,
  • pas de multiplication câblée,
  • 64 Ko adressable,
  • registres 8 bits
  • fréquence de 1 a 4 MHz

         Apple II, C64, TRS80, …
             Historique des CPU
          Les processeurs 16 bits
1978: processeurs 68000, Z8000, 8088/8086

  • Extension du jeu d’instruction: Multiplication câblée
  • Instructions privilégiées
  • Segmentation mémoire

Inclusion d’une unité de gestion mémoire:
1982: 68020, 80286 (compatibles avec leurs
prédécesseurs (16 Mo adressables)

         MacIntosh, IBM PC
              Historique des CPU
             Les évolutions du x86
80386

 •   Bus et registres 32 bits (eax, ..)
 •   Mode réel, mode protégé
 •   4 Go de Ram adressable
 •   Pipeline
80486

 • FPU intégré
 • Mémoire cache intégrée
 • Fréquence de 66 ou 100 MHz
             Historique des CPU
            Les évolutions du x86
1993: Pentium

  • Parallélisme interne
  • Bus de 64 bits

1995: Pentium Pro

  • Architecture Risc (les instructions complexes sont
  interprétées par le RISC)
  • Mémoire cache de second niveau
1997: Pentium MMX

  • Instruction multimedia
Pentium II, III, IV (HyperThreading),…, Celeron, …

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:26
posted:11/17/2011
language:French
pages:72