Ordinateur

Un article de Wikipédia, l'encyclopédie libre.

Un ordinateur personnel IBM PC 5150 des années 1980
Un ordinateur personnel IBM PC 5150 des années 1980
Le superordinateur Columbia de la NASA en 2004
Le superordinateur Columbia de la NASA en 2004

Un ordinateur est une machine informatique. C'est un ensemble de circuits électroniques permettant de manipuler des données sous forme binaire, ou bits. Cette machine permet de traiter des informations selon des séquences d'instructions prédéfinies, appelé aussi programmes.

Elle interagit avec l'environnement grâce à des périphériques comme le moniteur, le clavier, le modem, le lecteur de CD, la carte graphique (liste non-exhaustive). Les ordinateurs peuvent être classés selon plusieurs critères[1] (domaine d'application, taille ou architecture).

Sommaire

[modifier] Historique

Icône de détail Article détaillé : Histoire de l'informatique.

Le mot ordinateur fut introduit par IBM France en 1955. François Girard, alors responsable du service publicité de l'entreprise, eut l'idée de consulter son ancien professeur de lettres à Paris, Jacques Perret, afin de lui demander de proposer un mot caractérisant le mieux possible ce que l'on appelait vulgairement un calculateur (traduction littérale du mot anglais « computer »). Ce dernier proposa « ordinateur », un mot tombé en désuétude désignant anciennement un ordonnateur, voire la notion d'ordre ecclésiastique dans l'église catholique (ordinant)[2],[3]. Le professeur suggéra plus précisément « ordinatrice électronique », le féminin ayant pu permettre, selon lui, de mieux distinguer l'usage religieux de l'usage comptable du mot.[4],[5]

Peu avant la seconde guerre mondiale apparurent les premières calculatrices électromécaniques, construites selon des idées de Babbage. Les machines furent vite supplantées par les premiers calculateurs électroniques, nettement plus performants.

Le premier ordinateur fonctionnant en langage binaire fut le Colossus, conçu lors de la 2e guerre mondiale. À la fin de la guerre, il fut démonté et caché à cause de son importance stratégique. L'ENIAC, son homologue américain créé en 1945, fut donc considéré pendant plusieurs années comme le premier ordinateur, avant que l'existence du vieillissant Colossus fut révélée.

[modifier] Généralités

Les ordinateurs furent d'abord utilisés pour le calcul (en nombres entiers d'abord, puis flottants).

  • On ne peut cependant les assimiler à de simples calculateurs : en effet, le résultat du traitement d'un ordinateur peut être non seulement une série de nombres, mais aussi un nouveau programme (utilisable par cet ordinateur ou par un autre).
  • Dans l'architecture de von Neumann, les données sont banalisées et peuvent être interprétées indifféremment comme des nombres, des instructions, des valeurs logiques ou tout symbole défini arbitrairement (lettre de l’alphabet, par exemple).
  • Le calcul représente une des applications possibles. Dans ce cas, les données sont traitées comme des nombres.
  • L’ordinateur est utilisé aussi pour ses possibilités d'organisation de l’information, entre autres sur des périphériques de stockage magnétique. On a calculé à la fin des années 1980 que sans les ordinateurs il faudrait toute la population française juste pour faire dans ce pays le seul travail des banques.
    • Cette capacité d’organiser les informations a généralisé l’usage du traitement de texte dans le grand public ;
    • la gestion des bases de données relationnelles permet également de retrouver et de consolider des informations réparties vues par l'utilisateur comme plusieurs tables indépendantes.

Cette création d'un néologisme fut à l'origine de traductions multiples des expressions Supercomputer, superordinateur ou supercalculateur, et Quantum computer, calculateur quantique ou ordinateur quantique. Dans ce dernier cas, l'utilisation du mot "ordinateur" est justement surfaite car les possibilités envisageables pour le calcul quantique sont loin de la polyvalence d'un "ordinateur".

L’expérience a appris à distinguer dans un ordinateur deux aspects, dont le second avait été au départ sous-estimé :

  • l’architecture physique, matérielle (alias hardware ou hard) ;
  • l’architecture logicielle (alias software ou soft) ; un ordinateur très avancé techniquement pour son époque comme le Gamma 60 de la compagnie Bull n’eut pas le succès attendu, pour la simple raison qu’il existait peu de moyens de mettre en œuvre commodément ses possibilités techniques. Le logiciel - et son complément les services (formation, maintenance, etc.) - forme depuis le milieu des années 1980 l’essentiel des coûts d’équipement informatique, le matériel n’y ayant qu’une part minoritaire.

Les ordinateurs pourraient être sensibles aux bombes EMP.

[modifier] Fonctionnement d’un ordinateur

Parmi toutes les machines inventées par l'homme, l'ordinateur est celle qui se rapproche le plus du concept anthropologique suivant :

Organe d'entrée. Organe de traitement de l'information. Organe de sortie

Chez l'homme les organes d'entrée sont les cinq sens, l'organe de traitement est l'esprit (le cerveau) dont les logiciels sont l'apprentissage avec des mises à jour constantes en cours de vie, puis les organes de sortie sont les membres (action physique et/ou la parole, l'écriture, les réflexes, etc. (pour les ordinateurs modernes il va de soi que les organes d'entrée sont divers (tactile, reconnaissance vocale etc.) cela ne change rien à l'anthropomorphisme de ces matériels tant la possibilité de recueil de l'information par l'homme est immense (avec un avantage non négligeable) « l'auto » pensée.

Éclaté d'un ordinateur.
Éclaté d'un ordinateur.

Les techniques utilisées pour fabriquer ces machines ont énormément changé depuis les années 1940 et sont devenues une technologie (c’est-à-dire un ensemble industriel organisé autour de techniques) à part entière depuis les années 1970. Beaucoup utilisent encore les concepts définis par John von Neumann, bien que cette architecture soit en régression : les programmes ne se modifient plus guère eux-mêmes (ce qui serait considéré comme une mauvaise pratique de programmation), et le matériel prend en compte cette nouvelle donne en séparant aujourd'hui nettement le stockage des instructions et des données, y compris dans les caches.

L’architecture de von Neumann décomposait l’ordinateur en quatre parties distinctes :

  1. L’unité arithmétique et logique (UAL) ou unité de traitement : son rôle est d’effectuer les opérations de base, un peu comme le ferait une calculette.
  2. L’unité de contrôle. C’est l’équivalent des doigts qui actionneraient la calculette.
  3. La mémoire qui contient à la fois les données et le programme qui dira à l’unité de contrôle quels calculs faire sur ces données. La mémoire se divise entre mémoire volatile (programmes et données en cours de fonctionnement) et mémoire permanente (programmes et données de base de la machine).
  4. Les entrées-sorties : dispositifs qui permettent de communiquer avec le monde extérieur.

[modifier] UAL et UC

L’unité arithmétique et logique ou UAL est l’élément qui réalise les opérations élémentaires (additions, soustractions, etc.), les opérateurs logiques (ET, OU, NI, etc.) et les opérations de comparaison (par exemple la comparaison d’égalité entre deux zones de mémoire). C’est l’UAL qui effectue les calculs de l’ordinateur.

L’unité de contrôle prend ses instructions dans la mémoire. Celles-ci lui indiquent ce qu’elle doit ordonner à l’UAL et, comment elle devra éventuellement agir selon les résultats que celle-ci lui fournira. Une fois l’opération terminée, l’unité de contrôle passe soit à l’instruction suivante, soit à une autre instruction à laquelle le programme lui ordonne de se brancher.

L'unité de contrôle facilite la communication entre l'unité arithmétique et logique, la mémoire ainsi que les périphériques. Il gère la plupart de l'exécution des instructions dans l'ordinateur.

[modifier] Mémoire

Au sein du système, la mémoire peut être décrite comme une suite de cellules numérotées contenant chacune une petite quantité d’informations. Cette information peut servir à indiquer à l’ordinateur ce qu’il doit faire (instructions) ou contenir des données à traiter. Dans la plupart des architectures, c'est la même mémoire qui est utilisée pour les deux fonctions. Dans les calculateurs massivement parallèles, on admet même que des instructions de programmes soient substituées à d’autres en cours d’opération lorsque cela se traduit par une plus grande efficacité. Cette pratique était jadis courante, mais les impératifs de lisibilité du génie logiciel l'ont fait régresser, hormis dans ce cas particulier, depuis plusieurs décennies.

Cette mémoire peut être récrite autant de fois que nécessaire. La taille de chacun des blocs de mémoire ainsi que la technologie utilisée ont varié selon les coûts et les besoins : 8 bits pour les télécommunications, 12 bits pour l’instrumentation (DEC) et 60 bits pour de gros calculateurs scientifiques (Control Data). Un consensus a fini par se réaliser autour de l’octet comme unité adressable et d’instructions sur format de 4 ou 8 octets.

Dans tous les cas de figure, l'octet reste adressable, ce qui simplifie l'écriture des programmes.

Les techniques utilisées pour la réalisation des mémoires ont compris des relais électromécaniques, des tubes au mercure au sein desquels étaient générées des ondes acoustiques, des transistors individuels, des tores de ferrite et enfin des circuits intégrés incluant des millions de transistors.

[modifier] Entrées-Sorties

Les dispositifs d’entrée/sortie permettent à l’ordinateur de communiquer avec l’extérieur. Le nombre de ces dispositifs est très important, du clavier à l’écran.

Le point commun entre tous les périphériques d’entrée est qu’ils convertissent l’information qu’ils récupèrent de l’extérieur en données compréhensibles par l’ordinateur. À l’inverse, les périphériques de sortie décodent l’information fournie par l’ordinateur afin de la rendre utilisable par l’utilisateur.

[modifier] Bus

Ces différentes parties sont reliées par trois bus, le bus d'adresse, le bus de données et le bus de commande. Un bus est un groupement d'un certain nombre de fils électriques réalisant une liaison pour transporter des informations binaires codées sur plusieurs bits.

  • Le bus d'adresse transporte les adresses générées par l'U.C.T. (Unité Centrale de Traitement) pour sélectionner une case mémoire ou un registre interne de l'un des blocs. Le nombre de bits véhiculés par ce bus dépend de la quantité de mémoire qui doit être adressée.
  • Le bus de données transporte les données échangées entre les différents éléments du système.
  • Le bus de contrôle transporte les différents signaux de synchronisation nécessaires au fonctionnement du système : signal de lecture (RD), signal d'écriture (WR), signal de sélection (CS : Chip Select).

[modifier] Architecture

La miniaturisation permet d’intégrer l’UAL et l’unité de contrôle au sein d’un même circuit intégré connu sous le nom de microprocesseur.

  • Typiquement, la mémoire est située sur des circuits intégrés proches du processeur, une partie de cette mémoire, la mémoire cache, pouvant être située sur le même circuit intégré que l’UAL.
  • L’ensemble reste sur la plupart des architectures complété d’une horloge qui cadence le processeur. Bien sûr, on souhaite qu'elle soit le plus rapide possible, mais on ne peut pas augmenter sans limites sa vitesse pour deux raisons :
    • plus l’horloge est rapide et plus il chauffe toutes choses égales par ailleurs, comme le carré de sa fréquence. Une trop grande température peut le détériorer ;
    • il existe une cadence où le processeur devient instable; son comportement devient erratique ce qui amène le plus souvent à des plantages.
  • La tendance a été à partir de 2004 de regrouper plusieurs UAL dans le même processeur, voire plusieurs processeurs dans la même puce. En effet, la miniaturisation progressive (voir Loi de Moore) le permet sans grand changement de coût. Une autre tendance, depuis 2006 chez ARM, est aux microprocesseurs sans horloge : la moitié de la dissipation thermique est en effet due aux signaux d'horloge quand le microprocesseur fonctionne ; de plus, un microprocesseur sans horloge a une consommation presque nulle quand il ne fonctionne pas : le seul signal d'horloge nécessaire est alors celui destiné au rafraîchissement des mémoires. Cet atout est important pour les modèles portables.
  • Le principal écart fonctionnel aujourd’hui par rapport au modèle de Von Neumann est la présence sur certaines architectures de deux antémémoires différentes : une pour les instructions et une pour les données (alors que le modèle de Von Neumann spécifiait une mémoire commune pour les deux). La raison de cet écart est que la modification par un programme de ses propres instructions est aujourd’hui considérée (sauf sur les machines hautement parallèles) comme une pratique à proscrire. Dès lors, si le contenu du cache de données doit être récrit en mémoire principale quand il est modifié, on sait que celui du cache d’instructions n’aura jamais à l’être, d’où simplification des circuits et gain de performance.

[modifier] Instructions

Les instructions que l’ordinateur peut comprendre ne sont pas celles du langage humain. Le matériel sait juste exécuter un nombre limité d’instructions bien définies. Des instructions typiques comprises par un ordinateur sont « copier le contenu de la cellule 123 et le placer dans la cellule 456 », « ajouter le contenu de la cellule 321 à celui de la cellule 654 et placer le résultat dans la cellule 777 » et « si le contenu de la cellule 999 vaut 0, exécuter l’instruction à la cellule 345 ». Mais la plupart des instructions se composent de deux zones : l’une indiquant quoi faire, qu’on nomme le code opération, et l’autre indiquant où le faire, qu’on nomme opérande.

Au sein de l’ordinateur, les instructions correspondent à des codes - le code pour une copie étant par exemple 001. L’ensemble d’instructions qu’un ordinateur supporte se nomme son langage machine, langage qui est une succession de chiffres binaires, car les instructions et données qui sont comprises par le CPU sont constituées uniquement de 0 (zéro) et de 1 (un). 0 = Le courant électrique ne passe pas. 1 = Le courant électrique passe.

En général, les programmeurs n’utilisent plus ce type de langage, mais passent par ce que l’on appelle un langage de haut niveau qui est ensuite transformé en langage binaire par un programme dédié (interpréteur ou compilateur selon les besoins). Les programmes ainsi obtenus sont des programmes compilés compréhensibles par l'ordinateur dans son langage natif.

Certains langages de programmation, comme l’assembleur sont dits langages de bas niveau car les instructions qu’ils utilisent sont très proches de celles de l’ordinateur. Les programmes écrits dans ces langages sont ainsi très dépendants de la plate-forme pour laquelle ils ont été développés. Le langage C, beaucoup plus facile à relire que l’assembleur, permet donc aux programmeurs d’être plus productifs. Pour cette raison, on l’a vu de plus en plus utilisé à mesure que les coûts du matériel diminuaient et que les salaires horaires des programmeurs augmentaient.

[modifier] Logiciels

Icône de détail Article détaillé : Logiciel.

Les logiciels informatiques sont de larges listes d’instructions données à un ordinateur. De nombreux programmes contiennent des millions d’instructions, effectuées pour certaines de manière répétitive. Un ordinateur personnel de 2006 exécute plusieurs milliards d’instructions par seconde.

Depuis le milieu des années 1960, des ordinateurs et des systèmes conçus à cette fin permettaient d’exécuter plusieurs programmes simultanément. Cette possibilité est appelée multitâche. C’est le cas de tous les ordinateurs et systèmes aujourd’hui.

En réalité, le processeur n’exécute qu’un programme à la fois, passant de l’un à l’autre chaque fois que nécessaire. Si la rapidité du processeur est suffisamment grande par rapport au nombre de tâches à exécuter, l’utilisateur aura l’impression d’une exécution simultanée des programmes. Les priorités associées aux différents programmes sont, en général, gérées par le système d'exploitation.

[modifier] Système d’exploitation

Icône de détail Article détaillé : Système d'exploitation.

Le système d’exploitation est le programme central qui contient les programmes de base nécessaires au bon fonctionnement des applications de l’ordinateur.

Le système d’exploitation alloue les ressources physiques de l’ordinateur (temps processeur, mémoire, etc.) aux différents programmes en cours d’exécution. Il fournit aussi des outils aux logiciels (comme les pilotes) afin de leur faciliter l’utilisation des différents périphériques sans avoir à en connaître les détails physiques.

[modifier] Types d’ordinateurs

[modifier] Par domaine d'application

[modifier] Par taille

[modifier] Par architecture

[modifier] Domaines d'application

[modifier] Références

[modifier] Voir aussi

Pages sur ce thème sur les projets Wikimedia :

Autres langues