Chapitre 1 Éléments d'architecture des ordinateurs Machines take me by surprise with great frequency. Alan Turing 1.1 Le Hardware Avant d'attaquer la programmation, il est bon d'avoir quelques connaissances sur l'architecture d'un ordinateur. On appelle hardware le matériel informatique en général c'est-à-dire la partie physique de l'ordinateur. Le disque dur, le processeur,. . . représentent une partie du hardware de l'ordinateur. Il existe diérents types d'ordinateurs : xe, portable, netbook, ultrabook, serveur,. . . Ils se distinguent par les performances de leurs composants, c'est ce qui limite leurs domaines d'utilisation. Nous allons prendre comme exemple un PC de bureau classique. Généralement, l'unité centrale est représentée par un boitier et abrite les composants de l'ordinateur comme l'alimentation, la carte mère, les cartes d'extension, les disques durs, les lecteurs de médias (CD/DVD/Blu-Ray). 5 6 CHAPITRE 1. ÉLÉMENTS D'ARCHITECTURE DES ORDINATEURS Les équipements, qui sont raccordés à l'unité centrale via des bus, sont appelés périphériques. Ils existent de deux types de périphériques : les périphériques d'entrée : micro, clavier, souris, manette, tablette graphique,. . . les périphériques de sortie : haut-parleurs, écran, imprimante,. . . 1.1.1 L'alimentation L'alimentation fournit la puissance nécessaire au bon fonctionnement des diérents composants de l'ordinateur. Selon le format de la carte mère (ATX, mini-ITX,. . .), les tensions à fournir peuvent varier (±12 Volts, 5 Volts, 3,3 Volts,. . .). Suivant la puissance à fournir, le bloc alimentation peut être refroidi par un ventilateur. 1.1.2 Le refroidissement Les diérents composants d'un ordinateur dissipent de la chaleur (par eet Joule) qu'il faut évacuer par un système de refroidissement. Il existe trois méthodes : les radiateurs à ailettes, les ventilateurs (allant de 8 cm à 12 cm de diamètre), les systèmes de refroidissement liquides. 1.1. LE HARDWARE 1.1.3 7 La carte mère La carte mère est la partie centrale de l'ordinateur, c'est sur cet élément que sont soudés les composants essentiels : le processeur/chipset et son horloge associée, des connecteurs permettant de raccorder les composants internes au boîtier : les disques durs, la mémoire RAM, les cartes d'extensions (carte graphique, carte son), les connecteurs pour les bus et les périphériques externes : USB, FireWire, PS/2, Ethernet,. . . Il existe de nombreuses tailles de carte mère ; les formats obéissent à des standards de design qui dénissent les dimensions et l'agencement des composants. La carte mère est pilotée par un logiciel interne qui gère le bon fonctionnement de celle-ci, c'est le BIOS (Basic Input/Output System). Le BIOS s'exécute lors de la mise sous tension de la carte mère, indépendamment de la présence d'un système d'exploitation (ou OS pour Operating System). À la mise sous tension, le BIOS eectue le POST (power-on self test) : il vérie l'intégrité des diérents composants avant le démarrage (boot) d'un système d'exploitation. en cas d'anomalie, il informe l'utilisateur ; une fois le POST eectué, le système va chercher un processus de démarrage sur les périphériques de stockage indiqué dans le BIOS pour pouvoir démarrer sur un système d'exploitation. 1.1.4 Le processeur Le processeur est le c÷ur des ordinateurs. C'est un circuit intégré complexe qui intègre sur une puce de silicium : des fonctions logiques combinatoires (logiques et/ou arithmétique), des fonctions séquentielles (registres, compteurs,. . .), de la mémoire. 8 CHAPITRE 1. ÉLÉMENTS D'ARCHITECTURE DES ORDINATEURS Son domaine d'utilisation est illimité dans le sens où on le rencontre partout dans notre environnement. Au delà de l'informatique visible, on le retrouve dans l'électroménager, l'automobile, la médecine, mais également la grande distribution pour ne citer que quelques exemples. Son rôle est d'interpréter les instructions et de traiter les données d'un programme ou d'un système d'exploitation. il est composé : d'une unité de contrôle : chef d'orchestre, d'une Unité Arithmétique et Logique (UAL) : calculs élémentaires, de registres mémoires : petites mémoires rapides utilisées par l'UAL, d'une unité d'entrée-sortie : communication avec la mémoire de l'ordinateur et les périphériques. On peut caractériser un processeur grâce aux éléments suivants : le modèle, la fréquence d'horloge (vitesse maximale de traitement), le nombre de c÷urs (multi-core) qui travaillent en parallèle, l'architecture interne : nombre d'UAL, contrôleur mémoire interne ou non,. . . la quantité de mémoire cache (mémoire accessible très rapidement ce qui permet d'accroître les performances), la consommation électrique, le mode de connexion à la carte mère (socket),. . . 1.1.5 La RAM La mémoire vive, ou mémoire système, ou encore RAM en anglais, est constituée par des barrettes placées directement sur la carte mère. Elles permettent de stocker le ux de données que le processeur doit traiter ; elles se caractérisent par une très grande rapidité d'accès. Néanmoins, ce stockage est volatile : toutes les données de cette mémoire sont perdues dès que l'ordinateur cesse d'être alimenté en électricité. Un ralentissement général de l'ordinateur est couramment dû à une mémoire vive pleine, car le système d'exploitation placera les nouvelles données sur le disque dur, avec une vitesse d'accès moindre. 1.2. 9 LE SOFTWARE 1.1.6 Le Disque Dur Le disque dur est appelé mémoire de masse car il sert à stocker de grandes quantités d'informations de façon permanente, même si l'ordinateur est arrêté (à la diérence de la mémoire vive). Les données sont stockées sur des disques magnétiques en rotation. Des têtes de lecture survolent la surface de ces disques à quelques microns d'altitude (sans la toucher). Pour écrire, la tête magnétise la surface. Pour lire, elle mesure les variations de champ magnétique du disque. Malgré la vitesse de rotation élevée (7500 tr/min), l'accès aux données est relativement lent. De nouvelles technologies de disque dur (SSD) permettent des vitesses d'accès très largement supérieures mais restent, pour l'heure, assez chères. 1.2 Le Software Le terme software représente à la fois les logiciels et les systèmes d'exploitation. Nous avons vu précédemment que, lorsque l'ordinateur démarre, c'est le BIOS qui démarre en premier et qui va eectuer le POST, puis chercher un système d'exploitation pour démarrer. Un système d'exploitation est un ensemble de programmes qui dirige l'utilisation des capacités d'un ordinateur par des logiciels. Il reçoit, de la part des logiciels, des demandes d'utilisation des capacités de l'ordinateur : capacité de stockage des mémoires et des disques durs, capacité de calcul du processeur,. . . Le système d'exploitation accepte ou refuse de telles demandes, puis réserve les ressources en question pour éviter que leurs utilisations n'interfèrent avec d'autres demandes provenant d'autres logiciels. Il existe une multitude de systèmes d'exploitation ; le plus connu est Windows R , avec ses diérentes versions (Windows 8 est la version la plus récente). Mais il existe également d'autres systèmes comme Linux ou encore OSX R . Un logiciel, lui, est un programme destiné à réaliser des actions précises. Par exemple, le bloc- R notes de Windows est un petit logiciel qui permet d'éditer du texte. Il a été codé (c'est-à-dire conçu) spéciquement pour ce système d'exploitation dans le but de réaliser cette tâche. 1.2.1 Le langage machine et les autres langages de programmation Nous l'avons dit précédemment, c'est le processeur qui réalise les opérations de calcul ; mais il ne réalise pas les calculs (ou toutes autres opérations d'ailleurs) de la même manière que nous. Il ne peut lire et comprendre que le langage machine qui est composé de bits (c'est-à-dire de 0 et de 1). Une photo, une musique, un texte, tout est lu et interprété par le processeur suivant une succession de 0 et de 1 ! 10 CHAPITRE 1. ÉLÉMENTS D'ARCHITECTURE DES ORDINATEURS Ne vous inquiétez pas, vous n'allez pas coder à ce niveau-là ! Quasiment personne ne le fait pour des raisons de complexité et de commodité. Vous allez apprendre à programmer avec des langages de programmation. Les langages de programmation possèdent une rigueur, une syntaxe, un alphabet tout comme le français. Il existe deux types de langages : les langages interprétés et les langages compilés. 1.2.2 Les langages interprétés Les langages interprétés sont traduits en langage machine, à la volée, par un programme ; ils ne sont donc pas exécutés directement par la machine. L'avantage des langages interprétés est qu'il n'est pas nécessaire de compiler son code pour chaque système d'exploitation ; il sut d'installer le programme interpréteur sur votre machine et votre code marchera ! En revanche, un langage interprété est beaucoup plus lent qu'un langage compilé. Perl ou encore 1.2.3 Python sont des langages interprétés. PHP JavaScript Ruby , , , Les langages compilés Les langages compilés sont directement exécutés par la machine. Le code source (le chier où vous avez écrit votre code) va être compilé par un programme spécial, nommé le compilateur, qui va générer un exécutable, qui pourra fonctionner tout seul. Ici pas d'intermédiaire entre la machine et le programme, le code s'exécute plus rapidement. Par contre, il est bien plus compliqué à diuser car la compilation dépend de l'architecture du processeur, du système d'exploitation,. . . C C++ Cobol Fortran , , , sont des langages compilés.