Une machine programmable

information-icon

Les premières épreuves du bac de français édition 2024 sont pour bientôt ! Consulte les dates du bac de français, notre programme de révision accompagné de toutes nos fiches de révisions pour te préparer au mieux à ton examen 💪

Introduction :

Avançons dans notre histoire de l’informatique, jusque dans les années 1950-1960 : c’est à ce moment qu’apparaissent les premières machines appelées « ordinateurs », qui ressemblent aux machines que nous utilisons aujourd’hui.

Ces machines possèdent deux différences majeures avec celles des années 1930-1940 vues dans le cours précédent :

  • une différence technologique, avec la disparition des pièces mécaniques et leur remplacement par des transistors, puis par des circuits imprimés ;
  • une différence structurelle, avec une amélioration de la manière dont les instructions sont passées à la machine par l’adoption de l’architecture séquentielle.

C’est ce que nous allons voir dans les deux premières parties de ce cours.

Électronique numérique

bannière definition

Définition

Électronique :

L’électronique est une branche de la physique qui s’intéresse à l’utilisation de l’électricité comme support d’information (pour le traitement, le stockage ou le transfert d’information).

  • l’électronique numérique s’intéresse aux grandeurs discrètes ;
  • l’électronique analogique s’intéresse aux grandeurs continues. L’information est codée dans les propriétés du signal électrique.
bannière rappel

Rappel

Alors qu’une grandeur discrète comporte des parties distinctes, une grandeur continue n’en présente pas.

bannière exemple

Exemple

Par exemple, dans les appareils électroniques numériques codant l’information en binaire, la présence de tension code souvent le $1$ et l’absence de tension le $0$.

Signal d’horloge

bannière definition

Définition

Signal d’horloge :

Dans un appareil électronique numérique, le signal d’horloge (clock) est un signal oscillant qui rythme les actions du circuit électronique.

Signal d’horloge

C’est en comparaison avec ce rythme que se détermine, par exemple, combien de $0$ sont signifiés par une longue plage d’absence de tension.

bannière definition

Définition

Cycle d’horloge :

Un cycle d’horloge (tick) correspond à une période du signal d’horloge. À chaque cycle, des calculs sont effectués. C’est l’unité de temps de base dans le fonctionnement d’un appareil électronique numérique.

bannière propriete

Propriété

Plus la fréquence du signal d’horloge est importante, plus l’appareil effectue rapidement ses calculs.

Le signal d’horloge est souvent une part importante de la consommation électrique de l’appareil électronique et donc, de sa production de chaleur. Pour un bricoleur, il est possible d’augmenter le signal d’horloge de son ordinateur (et donc ses performances) : c’est ce qu’on appelle l’overclocking. Cette pratique risque d’endommager l’appareil si l’on ne met pas en place dans le même temps de quoi refroidir plus vite l’ordinateur. Cette pratique est aujourd’hui tombée en désuétude avec l’apparition des processeurs multi-cœurs (voir plus bas).

Portes logiques

bannière definition

Définition

Porte logique :

Une porte logique est un dispositif électronique implémentant une fonction booléenne ($\text{ET}$, $\text{OU}$, $\text{NON}$) : l’information binaire en sortie de la porte dépend de la nature de la porte et des informations en entrée.

Voici les symboles des portes logiques les plus couramment utilisés, dans la norme américaine (ANSI) :

symboles des portes logiques

Inventé en 1948, le transistor remplace rapidement les composants mécaniques des calculateurs dans la composition des portes logiques. En 1958, l’invention du circuit intégré, en réduisant la taille des composants électroniques, fait exploser l’usage de l’informatique.

bannière definition

Définition

Transistor :

Le transistor est un composant électronique qui possède trois électrodes : deux d’entrées et une de sortie, et tel que la tension dans l’électrode de sortie dépend des tensions des électrodes d’entrée.

bannière definition

Définition

Circuit intégré :

Un circuit intégré ou puce électronique est un boîtier contenant plusieurs composants électroniques (comme des transistors) dans un espace réduit.

Circuits intégrés Circuits intégrés, boîtier DIP, domaine public.

Circuit combinatoire

bannière definition

Définition

Circuit combinatoire :

Un circuit combinatoire est l’assemblage de différentes portes logiques permettant de réaliser des fonctions booléennes complexes sur plusieurs entrées.

bannière exemple

Exemple

Le circuit combinatoire suivant correspond à la fonction booléenne : $$(\text{A}\lor\text{B})\land\text{C}$$

bannière definition

Définition

Circuit imprimé :

Un circuit imprimé est un circuit conducteur gravé sur une plaque rigide, qui réunit plusieurs composants et circuits intégrés.

Les circuits imprimés permettent d’implémenter les circuits combinatoires.

Architecture séquentielle

L’ordinateur moderne

bannière definition

Définition

Architecture séquentielle :

L’architecture séquentielle, aussi appelée architecture de Von Neumann, est un modèle d’architecture qui sert encore aujourd’hui de base à la quasi-totalité des ordinateurs.

Ce modèle est formalisé par l’ingénieur américain d’origine hongroise John von Neumann pour la conception de l’EDVAC, le successeur de l’ENIAC. Ce modèle emprunte beaucoup aux travaux d’Alan Turing, et on en trouve des intuitions dans les écrits d’Ada Lovelace – c’est l’aboutissement de l’idée de calculateur programmable.

Ce sont les machines électroniques correspondant au modèle de von Neumann, ou aux modèles dérivés de celui-ci, que l’on appellera ordinateur.

Ce modèle correspond au schéma suivant :

modèle de von Neumann

La particularité de ce modèle est de traiter les données et les instructions de la même manière, comme des informations passées à l’ordinateur en entrée, stockées dans la mémoire de l’ordinateur et utilisés pour produire les résultats qui seront envoyés en sortie.

Le processeur

bannière definition

Définition

Processeur :

Le processeur ou unité centrale de traitement est le cœur de l’ordinateur, la partie qui réalise les calculs en fonction des instructions données. Il est lui-même composé de deux sous-parties :

  • l’unité de contrôle (UC) reçoit les instructions sous forme de code binaire et fait réaliser les calculs correspondant par l’autre unité ;
  • l’unité arithmétique et logique (UAL), qui est conçue pour réaliser les opérations de base (additions, comparaisons, etc.).
bannière astuce

Astuce

En anglais, « unité centrale de traitement » se traduit par central processing unit ou CPU.

Les processeurs sont aujourd’hui bien plus complexes que ceux du modèle de von Neumann. Ils intègrent des éléments comme :

  • les registres, qui sont des petites mémoires internes très rapides, d’une taille de quelques octets, qui permettent de stocker des données en cours de traitement directement dans le processeur (plutôt que de devoir accèder à la mémoire) ;
  • des unités de calcul en virgule flottante (floating-point unit ou FLU), qui sont des UAL optimisées pour ce type de calculs.
bannière propriete

Propriété

Les processeurs se distinguent entre eux, notamment :

  • par la fréquence de leur cycle d’horloge,
  • par l’ensemble d’instructions de base qu’ils sont capables d’effectuer,
  • et par la taille de leurs registres ($8$/$16$/$32$/$64$ bits), qui influe sur la taille des données.

Les ordinateurs utilisent aujourd’hui souvent plusieurs processeurs, même si l’un reste le processeur principal.

Certains processeurs sont spécialisés dans des types de calculs particuliers : leur architecture et leur jeu d’instructions est prévu pour être d’une utilisé optimale pour certains usages. Par exemple, on retrouve dans les cartes graphiques ou les cartes son des processeurs spécialisés dans la réalisation de calculs nécessaires aux traitements numériques de l’image ou du son.

De plus en plus de puissance

Depuis les années 50, les avancées technologiques n’ont cessé de permettre la production de processeurs de plus en plus petits mais de plus en plus puissants.

bannière definition

Définition

Microprocesseur :

Un microprocesseur est un processeur si petit qu’il tient sur un seul circuit imprimé.

bannière propriete

Propriété

Depuis 1971, date de sortie du premier microprocesseur, le nombre de transistors présents sur un seul microprocesseur grand public a environ doublé tous les deux ans. Cette règle empirique de croissance exponentielle est appelée loi de Moore.

Voici un tableau avec quelques microprocesseurs grand public :

Nom du processeur Date de sortie Nombre de transistors
4004 1971 $2300$
80 386 1985 $275\,000$
Pentium Pro 1995 $5,5$ millions
Ahtlon 64 Winchester 2004 $77$ millions
Core i7 Gulftown 2010 $1,17$ milliards
Threadripper 2990WX 2019 $19,2$ milliards

Au tournant des années 2000 apparaissent les processeurs multi-cœurs.

bannière definition

Définition

Processeur multi-cœurs :

Un processeur multi-cœurs est un processeur possédant plusieurs cœurs capables chacun d’avoir une activité de calcul distincte, même s’ils partagent certaines ressources en commun.

Il existe plusieurs architectures multi-cœurs, selon la manière dont les différents cœurs sont agencés les uns par rapport aux autres. Les propriétés de chacune ne sont pas abordées au lycée.

Parler avec un ordinateur

Langage machine

Le passage d’instructions au processeur se fait donc, dans ces machines, via la même interface que les données.

Comme nous avons vu, chaque processeur connaît un jeu d’instructions différents. Ces instructions, du point de vue du processeur, sont attendues en binaire.

bannière definition

Définition

Langage machine :

Le langage machine est le code d’instructions et de données que comprend un processeur. Sur les processeurs modernes, c’est un langage binaire.

bannière exemple

Exemple

Pour un processeur de type $\times86$, l’instruction « $10110000\,01100001$ » signifie :
mettre dans le registre AL, qui est l’un des registres de ces processeurs (c’est le sens de $10110000$), la valeur $87$ ($01100001$).

Initialement, ces instructions et ces données devaient être exprimées manuellement en binaire, ce qui était fort fastidieux. Les informaticiens ont pris l’habitude :

  • d’exprimer les données binaires en hexadécimal ;
  • de se doter d’un code plus explicite pour les instructions.
bannière definition

Définition

Langage d’assemblage :

Le langage d’assemblage, ou langage assembleur, est le langage qui représente le langage machine sous une forme lisible par un humain.

bannière exemple

Exemple

L’instruction précédente, dans le langage assembleur du $\times86$, est codée :
$$movb\ \text{\textdollar}0\times61,\%al$$

Assemblage et désassemblage

bannière definition

Définition

Assemblage :

L’assemblage est la transformation du langage assembleur (utilisé par les humains) en langage machine (pour donner l’instruction au compilateur). Le désassemblage est l’opération inverse.

L’assemblage est une procédure longue, fastidieuse, et où les erreurs sont fréquentes. Heureusement, on peut faire faire cela par l’ordinateur.

En 1954, l’ingénieur Nathaniel Rochester écrit le premier programme assembleur.

bannière definition

Définition

Programme assembleur :

Un programme assembleur est un programme qui permet à un ordinateur de transformer automatiquement des instructions écrites en langage assembleur en suite d’instructions en langage machine.

L’assembleur devient le premier langage de programmation.

bannière attention

Attention

On parle souvent de langage assembleur ou de programmer en assembleur au singulier, mais en réalité chaque processeur a un langage machine différent, et donc un langage assembleur différent.

Niveaux de langage

On dit du langage assembleur que c’est un langage de bas niveau : il est très proche du fonctionnement du processeur. Après le langage assembleur apparaissent de nombreux autres langages fonctionnant sur le même principe, mais à des niveaux supérieurs, c’est-à-dire plus proches d’un langage humain.

bannière definition

Définition

Langage de programmation :

Un langage de programmation est un langage compréhensible par l’humain et dont les instructions peuvent être traduites dans un langage assembleur, donc dans un langage machine.

bannière definition

Définition

Compilation :

On appelle compilation l’opération de traduire un programme écrit dans un langage de programmation en langage machine. Un compilateur est un programme qui compile des programmes écrit dans un certain langage de programmation en un programme écrit dans un certain langage machine.

Plus la syntaxe du langage est éloignée de la syntaxe du langage assembleur de la machine, plus on parle de langage de haut niveau.

Conclusion :

Avec l’apparition des premiers ordinateurs débute donc l’ère moderne de la programmation informatique, portée par les avancées technologiques dans la construction électronique. C’est la fin de notre première partie, consacrée au fonctionnement bas niveau de l’ordinateur.

Mais la miniaturisation des processeurs n’est pas suffisante, seule, pour démocratiser l’informatique. Même si dans les années 1960, des entreprises, comme IBM, vendent des ordinateurs à un prix abordable pour des particuliers, leur fonctionnement est encore trop complexe pour que tout un chacun puisse envisager de s’en servir.

Dans la prochaine partie, consacrée à l’ordinateur de bureau, nous allons voir comment l’ordinateur s’est démocratisé d’un point de vue ergonomique.