Architecture des ordinateurs : introduction.
←
→
Transcription du contenu de la page
Si votre navigateur ne rend pas la page correctement, lisez s'il vous plaît le contenu de la page ci-dessous
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
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
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
Ex : diagramme repésentant la micro-architecture du processeur Intel 8080 : Nicolas Louvet Architecture des ordinateurs : introduction. 6 octobre 2016 4 / 20
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
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
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
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
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