Fonctionnement de l'Ordinateur

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 le cerveau dont les logiciels sont l'apprentissage avec des mises à jour constantes en cours de vie, puis les organes de sortie sont les muscles. Pour les ordinateurs modernes les organes d'entrée sont le clavier et la souris et les organes de sortie, l'écran, l'imprimante, le graveur de DVD etc.

É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.

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.

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 être trouvé 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.

Entrées-Sorties 

Les dispositifs d’entrée/sortie permettent à l’ordinateur de communiquer avec l’extérieur. Ces dispositifs sont très importants, 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 compréhensible par l’utilisateur.

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).

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.

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.

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.

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.

Créer un site gratuit avec e-monsite - Signaler un contenu illicite sur ce site