Architecture des ordinateurs : introduction.

La page est créée Vanessa Berger
 
CONTINUER À LIRE
Architecture des ordinateurs : introduction.
Architecture des ordinateurs : introduction.

1   Organisation de l'ordinateur par niveaux

2   Repères historiques
      La préhistoire. . .
      1945-1955 : les tubes électroniques
      1955-1980 : miniaturisation
      1980 : le VLSI

3   Conclusion

          Nicolas Louvet  Architecture des ordinateurs : introduction.   6 octobre 2016   1 / 20
Architecture des ordinateurs : introduction.
Un ordinateur ne peut exécuter qu'un nombre resteint d'instructions :
    additionner deux nombres,
    tester l'égalité d'un nombre à zéro,
    copier des données d'une zone de la mémoire à une autre, . . .

L'ensemble de ces instructions de base forme un langage appelé langage
machine, qui permet de programmer l'ordinateur : on appelle programme la
séquence d'instructions décrivant la réalisation d'un certain traitement.

Le langage machine est si élémentaire qu'il est fastidieux de programmer ainsi.
Pour faciliter la tâche du programmeur, des niveaux d'abstraction s'empilent
donc au dessus du matériel : on parle d'organisation par niveaux de l'ordinateur.

         Nicolas Louvet  Architecture des ordinateurs : introduction.   6 octobre 2016   2 / 20
Architecture des ordinateurs : introduction.
Niveaux 0 et 1

Niveau 0, porte logiques : ces portes permettent à l'ordinateur d'eectuer des
traitements de données élémentaires.
Chaque porte présente des entrées prenant comme valeur 0 ou 1, et applique à
ces entrées une fonction logique simple : NOT, AND, OR. . . Les ordinateurs
manipulent donc de façon privilégiée des informations codées en binaire.
            Vcc

                                                                         V1
                          Vs                                                          Vs
   V1        V2
                                            Vs = V1 + V2                 V2

Niveau 1, micro-architecture : avec les portes logiques, on peut concevoir des
unités de traitement évoluées. Le niveau micro-architecture comprend tout le
matériel chargé de l'exécution eective des instructions du langage machine.

         Nicolas Louvet  Architecture des ordinateurs : introduction.        6 octobre 2016   3 / 20
Architecture des ordinateurs : introduction.
Ex :   diagramme repésentant la micro-architecture du processeur Intel 8080 :

           Nicolas Louvet  Architecture des ordinateurs : introduction.   6 octobre 2016   4 / 20
Architecture des ordinateurs : introduction.
Niveau 2, architecture

L'architecture décrit le principe général de fonctionnement de l'ordinateur, pour
permettre à un programmeur de l'utiliser au travers du langage machine.

Dénir une architecture, c'est dénir tous les attributs d'un ordinateur qui sont
visibles au programmeur lorsqu'il programme en langage machine.

Citons quatre attributs dénissant une architecture :
     le jeu d'instructions qui compose le langage machine,
     les registres que le programmeur peut utiliser,
     la manière dont la mémoire de l'ordinateur est organisée,
     les types de données élémentaires (entiers, nombres ottants).

On parle aussi d'ISA pour Instruction Set Architecture.

         Nicolas Louvet  Architecture des ordinateurs : introduction.   6 octobre 2016   5 / 20
Architecture des ordinateurs : introduction.
Ex :   jeu d'instructions de l'architecture LC3 :

 instruction            action                                  nzp              codage en langage machine

                                                                        opcode             arguments
                                                                      F E D C B A 9 8 7 6 5 4 3 2 1 0
 NOT DR,SR              DR
Architecture des ordinateurs : introduction.
Niveau 3, système d'exploitation

Le système d'exploitation est un programme qui introduit un niveau
d'abstraction entre le programmeur (ou plus généralement l'utilisateur d'une
machine), et le matériel.

Il fournit au programmeur une interface de gestion du matériel (mémoire,
périphériques, exécution des programmes. . . ) identique sur de nombreuses
architectures diérentes.

Ex :   Linux   a été adapté à de nombreuses architectures : ARM, x86, Power. . .
Si un programmeur écrit un programme qui réalise des accès au disque dur en
utilisant les primitives fournies par Linux, ce programme fonctionnera
correctement sur ARM, x86 ou PowerPC.

           Nicolas Louvet  Architecture des ordinateurs : introduction.   6 octobre 2016   7 / 20
Architecture des ordinateurs : introduction.
Niveaux 4 et 5

Niveau 4, langage d'assemblage : langage intermédiaire permettant au
programmeur de coder plus facilement qu'en langage machine.
Les programmes écrits en langage d'assemblage sont traduits en langages de
niveaux 2 et 3 à l'aide d'un programme appelé assembleur.

Niveau 5, langage de programmation : langages tel le C, le C++ ou le Caml, qui
fournissent un haut niveau d'abstraction, pour réaliser des logiciels complexes.
Les programmes codés dans ces langages sont traduits en langage d'assemblage
par des compilateurs (par exemple GCC, ICC ou CLANG pour le C/C++).

Ex :   compiler/assembler un petit programme C avec gcc                    -O0 -Wa,-alh

           Nicolas Louvet  Architecture des ordinateurs : introduction.        6 octobre 2016   8 / 20
Architecture des ordinateurs : introduction.
niveau 5        langages de haut niveau
                                                              compilateur
                             niveau 4          langage d’assemblage
                                                              assembleur
                             niveau 3          systeme d’exploitation
                                                              primitives
                             niveau 2                 architecture

                             niveau 1            micro−architecture

                             niveau 0              circuits logiques

             La compréhension de chacun de ces niveaux permet de
                   maîtriser la complexité de l'ordinateur :D

On partira des  circuits logiques  pour remonter jusqu'au  langage
d'assemblage  en enjambant allégrement le  système d'exploitation. 

         Nicolas Louvet  Architecture des ordinateurs : introduction.      6 octobre 2016   9 / 20
Plan

1   Organisation de l'ordinateur par niveaux

2   Repères historiques
      La préhistoire. . .
      1945-1955 : les tubes électroniques
      1955-1980 : miniaturisation
      1980 : le VLSI

3   Conclusion

          Nicolas Louvet  Architecture des ordinateurs : introduction.   6 octobre 2016   10 / 20
La préhistoire. . .
 Premiers moyens de calcul purement manuels : systèmes de numération.
 Moyen de calcul mécaniques :
     La machine de Pascal (1623-1662) : additions et soustractions en décimal.
     La machine de Liebniz (1646-1716) : multiplications et divisions en décimal.

     La machine analytique de Babbage
     (1792-1871) : première machine capable de
     lire des instructions sur des cartes
     perforées, et disposant d'une mémoire.
     Considérée comme le premier ordinateur.
 Le développement de calculateurs mécaniques se poursuivra jusqu'au XXe siècle.
          Nicolas Louvet  Architecture des ordinateurs : introduction.   6 octobre 2016   11 / 20
Au début du XXe siècle, se développent des calculateurs basés sur l'utilisation
de relais électromécaniques.

Citons par exemple :
     Les machines construites en Allemagne par Konrad Zuse entre 1930 et
     1944 : apparition du calcul binaire.
     Le Mark I, utilisé à Harvard à partir de 1944, possédait 72 mots de 23
     chires décimaux, et le temps d'exécution d'une instruction était de 6 s.

         Nicolas Louvet  Architecture des ordinateurs : introduction.   6 octobre 2016   12 / 20
1945-1955 : les tubes électroniques
 Principe du tube triode : l'intensité du courant circulant entre l'anode et la
 cathode dépend de la tension de la grille.
                                                                       lampe triode
                                                                        vide

                                                                                        e−

                                                                            cathode −

                                                                                                  anode +
                                                                                         grille
 Citons les machines suivantes :
      Le COLOSSUS, développé par les Britanniques, et opérationnel dès 1943.
      L'ENIAC, à Philadelphie, achevé en 1946 :
        I   utilisait 18000 tubes à vides, 1500 relais,
        I   pesait 30 T, et consommait 140 kW,
        I   comportait 20 registres de 10 chires décimaux.
 L'ENIAC restait un gros calculateur électronique : le programme était entré
 manuellement en utilisant 6000 commutateurs multipositions. . .
            Nicolas Louvet  Architecture des ordinateurs : introduction.                                   6 octobre 2016   13 / 20
En 1936, Alan Turing propose un modèle de machine abstraite universelle, an
de préciser le concept d'algorithme.
En 1945, John von Neumann propose le premier modèle d'ordinateur au sens
moderne du terme :
     une mémoire, qui contient à la fois les données et les programmes,
     un processeur, qui comporte
      I   l'unité arithmétique et logique qui eectue les opérations en binaire,
      I   l'unité de contrôle qui interprète les instructions des programmes, et
          provoque leur exécution.
    les entrées/sorties pour l'interaction avec l'environnement extérieur.
                                             Mémoire centrale

                         Unité de contrôle                      Unité Arithmétique        Unité
                                                                    et Logique       d’Entrées/Sorties

                                    Unité centrale de traitement

          Nicolas Louvet  Architecture des ordinateurs : introduction.                                  6 octobre 2016   14 / 20
Parmi les première implantations du modèle de von Neumann, on trouve :
•   Le Manchester Mark I, opérationnel en 1949 :
Mémoire composée de mots de 40 bits,
chacun codant soit deux instructions de
20 bits, soit un entier signé de 40 bits.
Chaque instruction compte 10 bits indi-
quant son type, et 10 bits d'adresse.
• l'IAS computer       à Princeton, opérationnel en 1952.

                                                           Mémoire de 4096 mots de 40 bits. Une
                                                           instruction comporte 8 bits pour son
                                                           type, et 12 bits spéciant une adresse.

           Nicolas Louvet  Architecture des ordinateurs : introduction.          6 octobre 2016   15 / 20
1955-1980 : miniaturisation

Le transistor a été inventé en 1948 dans les labora-
toires Bell par Bardeen, Brattain et Shockley (prix
Nobel en 1956).

Par exemple, IBM lance en 1964 le 7094, comportant environ 50000 transistors :
il possédait 32536 mots de 36 bits, et exécutait ses instructions en 2 µs.
Programmation en FORTRAN ou COBOL.

                         En 1958, Jack Kilby propose un procédé permettant de graver
                         de nombreux transistors sur un même plaque de silicium, et
                         crée le premier circuit intégré (prix Nobel en 2000).

En 1971, le 4004 d'Intel est le premier microprocesseur commercialisé :
processeur 4 bits, cycle de 10.6 µs, 2300 transistors sur 10 mm2 .
         Nicolas Louvet  Architecture des ordinateurs : introduction.   6 octobre 2016   16 / 20
1980 : Very Large Scale Integration (VLSI)
 En 1965, Gordon Moore observait que le nombre de transistors que l'on pouvait
 intégrer sur puce avec une technologie économiquement viable doublait environ
 tous les 18 mois : loi de Moore.
                            nombre de transistors par puce
                      11
                     10

                                                                                                                               x2 tous les 18 mois
                      10
                     10

                      9                                                                                                              progression effective
                     10
                                                                                                             Itanium 2
                                                                                                       Itanium 2
                      8
                     10                                                                                                   Pentium 4 HT
                                                                                                                   Pentium 4
                                                                                              Pentium 3            Itanium
                      7
                     10
                                                                                                    Pentium 2
                                                                                             Pentium Pro
                      6                                                                 Pentium
                     10
                                                                                80486

                                                                        80386
                      5
                     10
                                                               80286
                                                        8080
                      4
                     10

                                 4004
                      3
                     10
                          1970          1975            1980           1985     1990        1995          2000            2005              2010

 A partir de 1980, la technologie dite CMOS (Complementary Metal Oxyde
 Semiconductor) se généralise : il devient possible d'intégrer des centaines de
 milliers de transistors par puce. On parle de Very Large Scale Integration.
          Nicolas Louvet  Architecture des ordinateurs : introduction.                                                                                      6 octobre 2016   17 / 20
Quelques mots sur l'amélioration des performances

On se place dans un modèle très simple :
    programme séquentiel de N instructions,
    f la fréquence du processeur,
    IPC nombre d'instructions exécutées par cycle.
Temps d'éxécution du programme :
                                                          N
                                             T=                   .
                                                     IPC × f

Augmenter IPC : améliorations architecturales, comme l'exécution superscalaire.
,→ augmentation du nombre de transistors.

Augmenter f : nécessite des transistors plus rapides.
,→ diminution de la nesse de gravure.

         Nicolas Louvet  Architecture des ordinateurs : introduction.   6 octobre 2016   18 / 20
Par contre,
     en augmentant la fréquence, on augmente la puissance totale à dissiper,
     en diminuant la nesse, on augmente la puissance par unité de surface.

                                             On se situe déjà depuis le début des an-
                                             nées 2000 aux environs de 100 W/cm2 .
                                             ,→  les contructeurs ne pouvaient pas
                                             continuer à améliorer les performances
                                             dans ce modèle très séquentiel. . .
                                             ,→   généralisation des multic÷urs.

Egalement : le calcul n'est plus ce qui est coûteux. Par exemple, en 45 nm :
    0,05 pJ pour faire une addition 32 bits,
    8 pJ pour transmettre une donnée de 32 bits d'1 mm sur la puce,
    320 pJ pour sortir le même mot de la puce.
         Nicolas Louvet  Architecture des ordinateurs : introduction.        6 octobre 2016   19 / 20
Conclusion
Les ordinateurs permettent de couvrir un très large spectre d'applications, et
certains orent une puissance de calcul considérable.
Des interfaces ont été développées pour faciliter l'utilisation des ordinateurs.
D'autre part, le modèle  par niveaux  permet au programmeur d'eectuer son
travail sans se préoccuper des détails architecturaux de sa machine. . .

              Pourquoi donc étudier l'architecture des ordinateurs ?

Au delà de l'augmentation du nombre de transistors intégrés par processeur, et
celle de leur fréquence, de nombreuses innovations continent à être developpées
an d'améliorer la performance des machines.

Le programmeur doit être capable de comprendre les caractéristiques de sa
machine an de concevoir des programmes plus performants.
         Nicolas Louvet  Architecture des ordinateurs : introduction.   6 octobre 2016   20 / 20
Vous pouvez aussi lire