HB9AFO.CH

L'ordinateur ? Mais c'est très simple !

 

Par Michel Vonlanthen

 

Mis à jour le 20 décembre 2024

 

Avant propos

 

Le but de cet article est de faire comprendre comment fonctionne un ordinateur car, à l'époque des smartphones, peu de gens sont conscients qu'ils transportent dans leur poche un micro ordinateur des millions de fois plus puissants et des millions de fois plus petits que ceux qui équipaient l'industrie et les écoles dans les années 60-70. A cette époque, personne ne pouvait avoir un ordinateur sur sa place de travail pour la bonne raison qu'ils n'existaient pas sous cette forme.

 

Le titre de cette série "L'ordinateur ? Mais c'est très simple !" est inspiré d'une des bonnes lectures de mon enfance,  "La radio? Mais c'est très simple!", d'Eugène Aisberg. C'est grâce à cet excellent  homme que je compris les premiers rudiments de ce qu'on n'appelait pas encore l' "électronique" mais la "radio". Je me souviens encore du jeu des questions et réponses de Curiosus et d'Ignotus... On peut encore se procure cet ouvrage en open source ici: https://archive.org/details/la_radio_mais_cest_tres_simple

 

 

La préhistoire

 

Les premiers ordinateurs furent développés pendant la guerre 39-45. Physiquement ils étaient très gros, il leur fallait une pièce entière pour les loger. Et comme de bien entendu, c'est la guerre qui a suscité leur développement. Il fallait décoder les messages échangés par l'armée nazie, cryptés mécaniquement à l'aide des machines Enigma, les plus utilisées, et celles de Lorenz, qui cryptaient les messages de l'Etat major. C'est en Angleterre que cela se passa, au centre de Bletcheley Park, à une huitantaine de kilomètre au nord-ouest de Londres, où il existe actuellement un petit musée.

 

L'histoire a surtout retenu le nom d'Alan Turing, qui a perfectionné et construit le calculateur électromécanique appelé La Bombe, qui était en fait la mise en série de plusieurs machines Enigma, concept venu de la résistance polonaise. C'est grâce à elle que les messages de l'armée allemande purent être décodés. Mais ce n'était pas réellement un ordinateur car elle n'était pas programmable, elle n'avait été conçue que pour une seule fonction mais ô combien importante: décrypter. Il s'est dit qu'elle avait permis de raccourcir la guerre 39-45 d'une année et de sauver des millions de vies.

 

Le premier vrai ordinateur, le Colossus Mark 1 (1500 tubes à vide et 5000 opérations par seconde) fut développé par l'ingénieur anglais Tommy Flowers selon un concept de Max Newman et mis en service en décembre 1943. Il était programmable car il permettait les branchements conditionnels à l'aide de la commande "si". Son principe novateur consistait à utiliser une horloge de fréquence variable, entre 0 et 1kHz, qui permettait de faire du pas-à-pas destiné à débugger le code, ainsi qu'un registre à décalage de 5 étages, le tout faisant appel à une électronique binaire.

 

 


Le Colossus MK2

 

 

Le Colossus pouvait "craquer" les messages allemands mais il fallait le faire en plusieurs passes, qui aboutissaient finalement au message en clair. La Bombe travaillait, elle, sur un autre principe. Elle restreignait les combinaisons possibles en tirant parti des erreurs de manipulation que faisaient les opérateurs allemands. Par exemple, ils terminaient souvent leurs messages par "Heil Hitler", ce qui donnait des codes faciles à distinguer.

 

Par la suite, l'ENIAC (Electronic Numerical Integrator And Computer) fut conçu aux USA et mis en service en 1945. Il fut perfectionné et, en 1948, devint le premier ordinateur qui pouvait exécuter des programmes mis en mémoire. Sa première application a été de calculer les trajectoires balistiques des obus d'artillerie. A noter que cet ordinateur travaillait en digital, mais en base décimale (base 10) au lieu de la base binaire (base 2) comme tous les ordinateurs d'aujourd'hui.

 

 


L'ENIAC (USA) en 1948

 

 

Du côté des Japonais, la firme Fujitsu avait développé en 1958 un ordinateur à relais électro-mécaniques. En 2024, un exemplaire du Facom 128B est toujours en démonstration dans un musée au Japon.

 

Nous reviendrons sur l'histoire des premiers gros ordinateurs et des mini ordinateurs dans le courant des explications de leur fonctionnement. Ce qu'on peut déjà constater, au vu des photos ci-dessus, c'est qu'un smartphone, hormis son principe, n'a rien à voir avec un Colossus ou un ENIAC, cela se voit !...

 

Commençons donc le explications du fonctionnement de ces "bêtes", avec une première question:

 

 

Ordinateur analogique ou numérique ?

 

La question qui se pose est: comment représenter des nombres afin qu'une machine puisse les comprendre et les travailler?

 

Une telle machine électronique fonctionne à base de courant électrique, qui a deux paramètres mesurables: la tension électrique, dont l'unité est le Volt, et le courant, unité Ampère. On mesure ces valeurs à l'aide du voltmètre et de l'ampèremètre. Le principe qui relie ces deux valeurs s'appelle la loi d'Ohm qui s'exprime par la formule

 

U = R * I

Où U est la tension en Volts, I, le courant en Ampères et R, la résistance en Ohms

Avec ses dérivés: I = U / R  et  R = U / I

 

Ce qui signifie qu'en mettant une certaine valeur de tension électrique aux bornes d'une résistance, on y détermine un courant inversement proportionnel  à la valeur de la résistance. Ainsi, une tension de 1 Volt mis aux bornes d'une résistance de 1 Ohm, fera passer un courant de 1 Ampère à l'intérieur de celle-ci.

 

 

Comment représenter un nombre avec des valeurs électriques?

 

1) En analogique

 

On pourrait imaginer représenter un nombre décimal par une tension électrique mesurable à l'aide d'un voltmètre. Par exemple "1" correspondait un 1 Volt, "2" à 2 V, "3" à 3 V, ... "999" à 999 V.

 

Cela poserait plusieurs problèmes, dont celui de traiter des hautes tensions qui pourraient provoquer des chocs électriques aux utilisateurs. Lorsqu'on touche les deux extrémités d'une résistance alimentée par 100V, on perçoit déjà une certaine "secousse" . Avec 230V, la tension du réseau électrique domestique, là c'est carrément une sacrée "dégelée" qu'on prend lorsqu'on met les doigts dans la prise...

 

Car le principe est simple: lorsqu'on expose le corps humain à une différence de potentiel (tension électrique exprimée en Volts), cette dernière fait passer un courant dans ce corps, qui se comporte fait alors comme une  résistance. Plus cette résistance sera faible et plus le courant sera élevé (I=U/R). Or, pour le corps humain, celle-ci dépend des paramètres physiologiques du corps: son taux d'humidité , de salinité, d'acidité, etc.

 

On peut imaginer que ce n'est pas bon que son corps soit parcouru par un courant électrique car rappelez-vous l'expérience du savant Luigi Galvani en 1701, qui connectait une tension électrique aux pattes d'une grenouille (morte, heureusement pour elle) et qui voyait celle-ci contracter ses pattes comme si elle était vivante !

 

Et puis il faudrait que l'ordinateur puisse garder en mémoire une tension électrique d'une valeur quelconque pendant le temps du calcul. On pourrait imaginer la conserver dans un condensateur mais cela poserait pas mal de problèmes, d'autant plus que cette tension serait susceptible d'atteindre des milliers de Volts, voire des millions. Comme par exemple si l'on devait multiplier 2024 Volts par 100. On obtiendrait alors 202'400 Volts. Quel condensateur il faudrait !

 

Et comment visualiser le résultat? Avec un voltmètre?

 

Non, c'est clair qu'on ne peut pas travailler de la sorte. Un ordinateur analogique est impossible à concevoir. Et c'est à partir de cette constatation que le numérique (le digital en anglais) fut imaginé.

 

2) En numérique

 

En numérique c'est plus simple car, en mathématique, on peut représenter un nombre qui peut prendre un nombre d'états différents selon sa base de calcul. L'être humain calcule en décimal, c'est à dire en nombres de base 10.

 

Ainsi, en décimal, on a 10 possibilités par chiffre (= digit): 0, 1,2,3,4,5,6,7,8,9.

Lorsqu'on dépasse le 9, on retourne au 0 mais avec une retenue de 1.

A chaque fois qu'on dépasse le 9 lorsqu'on incrémente le chiffre, on ajoute 1 à la retenue.

 

Mais on peut aussi calculer avec d'autres bases, par exemple en octal (8 états possibles), en hexadécimal (16 états possibles) mais surtout en binaire (2 états possibles). Dans ce cas, chaque chiffre (digit) ne peut prendre que 2 états, soit un "0" ou un "1".

 

Il devient alors facile de convertir un nombre analogique et binaire puisque ce dernier n'a que 2 états possibles. Sur le papier c'est "1" et "0", un et  zéro. Mais en électronique c'est "tension" ou "absence de tension":

 

Par exemple: un "1" logique pourrait être 5 Volt et un "0" logique 0 Volts. Il devient alors facile de représenter n'importe quel nombre de n'importe quelle longueur à l'aide d'un calculateur alimenté par du 5 Volts..

 

Cela pose cependant une question: puisque chaque chiffre ne peut être que 0V ou 5V sur une borne, comment représenter un nombre binaire de 2 chiffres? La réponse est simple: sur 2 bornes. Ou plus couramment sur 2 fils.

 

On parle alors de bus, soit une nombre de fils parallèles qui représentent chacun un chiffre et le nombre de fils du bus un nombre.

 

Par exemple, sur un bus de 8 fils, on peut représenter au maximum un nombre décimal de 255.

 

00000000 en binaire donnera     0  en décimal

11111111 en binaire donnera 255 en décimal

 

A voir avec le convertisseur de bases:

https://www.rapidtables.org/fr/convert/number/base-converter.html

 

On peut également utiliser la calculette "programmeur" de Windows pour effectuer des conversions de bases.

Taper "calculette" dans le champ de recherche en bas à gauche de l'écran.

 

Exercices:

  1. Quel est le plus grand  nombre que peut représenter un bus de 8 fils ?
    Nombre: 11111111
    de la base:  2   binaire
    à la base:   10 décimale
    Convertir! Réponse: 255
     

  2. Convertir 100 de décimal à binaire
    Nombre: 100
    de la base:  10 décimal
    à la base:     2 binaire
    Convertir! Réponse:  1100100

On a là la parfaite démonstration de l'avantage de travailler en binaire pour un ordinateur. Ce n'est d'ailleurs pas qu'un avantage mais une obligation puisqu'un ordinateur analogique n'existe pas.

 

Pour résumer, dans un ordinateur:

  • Chaque chiffre (= 1 digit) ne peut avoir que deux états, soit 0 Volt, soit 5 Volts (pour une logique à 5V).
    En conséquence, un seul fil ne pourra transporter qu'un seul chiffre
     

  • Il faudra plusieurs fils pour transporter un nombre de x chiffres, autant de fils que de chiffres (= digits)  de ce nombre. Les nombres seront donc transmis par l'intermédiaire de ce qu'on appelle  bus.
     

  • Toutes les opérations (+-*/) qu'on peut effectuer en décimal peuvent l'être en binaire (ou avec toute autre base).
     

  • Un bus transmet un nombre binaire d'un seul coup, en parallèle. Mais on peut aussi transmettre un nombre en série sur un seul fil. Il faut alors le faire au moyen d'un protocole de transmission qui permet au récepteur de comprendre ce que lui envoie l'émetteur.

On avance.

On sait maintenant qu'un ordinateur travaille en binaire.

 

De nos jours, toutes les interactions avec lui s'effectuent par l'intermédiaire d'un clavier et d'un écran. Mais à ses tous débuts, dans les années 70, il était encore possible de lui faire exécuter de petits programmes en les entrants au moyens des interrupteurs de son panneau avant. Et on en voyait le résultat sur des LED qui reflétaient l'état du bus mémoire et de données. C'est ce que j'ai fait moi-même avec le premier ordinateur que j'aie conçu, appelé  en toute immodestie (ah ces jeunes!): le Vonputer.

 

Mon premier ordinateur (1977): le Vonputer
 

En 1976, je travaillais dans la firme Bobst-Graphic, filiale du fabricant de machines d'impression du carton Bobst. J'y étais responsable de l'atelier du contrôle électronique dont la tâche était d'effectuer le contrôle final des photocomposeuses, d'aller les installer chez les clients, d'aller ensuite (le cas échéant) les y dépanner et de dépanner les mofules et composants qui nous étaient renvoyés par les représentants nationaux de l'entreprise. Il y avait du travail. Mais il y avait un problème.

 

L'entreprise Bobst-Graphic (Mex), spécialisée dans les photocomposeuses électroniques, avait été fondée par sa maison mère Bobst (Prilly), dont la grande spécialité était la mécanique. Prilly avait détaché un certain nombre de ses responsables pour créer la nouvelle entité de Mex (petit village près de Lausanne). Le problème était que certains d'entre eux raisonnaient en mécaniciens, pas en électroniciens.

 

Je me souviens d'une discussion avec le directeur d'alors, Monsieur Gély, qui était venu dans l'atelier me demander pourquoi les réparations duraient si longtemps (c'était notre éternel problème). Il me dit "Vous avez une pièce cassée, c'est simple, vous l'échangez! Ou est le problème?". Je me souviens lui avoir répondu: "Monsieur Gély,  le problème c'est qu'un circuit-intégré ne change pas de couleur lorsqu'il est en panne. Il nous faut chercher quel est le composant défectueux parmi des centaines sur un circuit-imprimé et pour ce faire nous utilisons essentiellement un  oscilloscope, un multimètre et les schémas. Cela prend du temps". Je lui en ai fait la démonstration, ce qui m'a valu son respect, et d'être considéré comme franc, honnête et fiable par la suite.

 

Cette liaison directe avec la Direction m'a valu pas mal d'ennuis par la suite avec certains "petits chefs", dont malheureusement celui du chef du département, un ingénieur hélas arrivé à son poste par les hasards de la vie, sans a voir jamais rien développé et où il ne faisait que de l'administration. Il m'en a voulu d'être en connexion directe avec le big boss et m'a pourri la vie jusqu'à ce que parte, poussé au bord du burn-out. Je présume qu'il pensait que je conspirait pour prendre sa place, ce que je me fichais comme d'une guigne. Il a même été jusqu'à se payer une nouvelle voiture parce que qu'il m'avait vu parquer avec une grosse BMW. Ce qu'il ne savait pas, c'est que c'était mon  beau-frère dentiste qui me l'avait prêtée pendant ses vacances... Quelques semaines plus tard j'avais repris mon vieux Velosolex, mais il s'est vengé en m'obligeant à le parquer de l'autre coté de l'usine car j'étais le seul employé à venir travailler en vélo et il n'y avait pas de parking dédié près de l'entrée...

 

Mais revenons à nos moutons!

 

Je tentai à plusieurs reprise de demander une formation technique sur l'ordinateur que nous étions censé dépanner, un mini ordinateur Nova 1200 de Data General, mais sans succès. Le "nuisible" ne voulait pas que nous devenions trop intelligents (sic) et freinait des quatre fers.

 

Le mini ordinateur Nova 1200 de Data General

La parenté avec mon Vonputer est évidente

 

Nous nous contentions alors d'échanger ses cartes lorsque la panne était évidente, mais hélas c'était rarement le cas. Avec ce genre d'équipement, les pannes surviennent souvent sur les câbles, les fiches, les prises, les interfaces, les alimentations, les capteurs, etc. Et prendre l'ordinateur entier à dépanner à l'atelier fait perdre beaucoup de temps car il faut alors re-créer l'environnement électrique de la machine pour pouvoir le tester. Malheureusement, si la panne provient d'un câble ou d'un élément resté chez le client, nous passons à côté. Je demandai donc avec insistance de pouvoir aller suivre des cours pour apprendre le fonctionnement intime de ces mini ordinateurs afin de pouvoir les dépanner le plus vite possible sur place. Ou à défaut de nous former afin que nous soyons au moins capables d'écrire des petites routines de test en langage machine et de les charger par les switches du Nova. Cela ne nous fut jamais accordé.

 

Petite digression (une de plus):

 

De mon point de vue, cette absence de formation a été une des causes de la fermeture de Bobst-Graphic quelques années après mon départ. Le nuisible avait réussi à persuader la Direction d'acquérir un système américain de test des circuits-imprimés qui valait le lard du chat. Mais pour en tirer bénéfice, il fallait que les cartes soient développées selon des critères spécifiques afin que la machine puisse les contrôler automatiquement. Cela a coûté des millions à Bobst... Mais cela ne résolvait pas la question des sous-ensembles achetés tout faits, comme les OCR, les lecteurs et perforateurs de bandes perforées, les alimentations et... les mini ordinateurs.

 

Bref le "nuisible" a contribué à précipiter ce fleuron de l'électronique vaudoise dans les pertes. Je n'irai pas jusqu'à dire que la boîte avait coulé parce qu'elle n'avait pas supporté mon départ, non, je n'irai pas jusque là ! Mais lui s'est fait finalement licencié parce qu'il avait été pris en flagrant délit de triche sur ses notes de frais. C'était petit!

 

C'était bien dommage qu'une telle entreprise comme Bobst-Graphic ait disparu car, au départ, les dés étaient alignés pour une success story. Il y avait de l'argent, une solide expérience mécanique, des dirigeants à poigne, et de jeunes employés qui étaient la crème des électroniciens du canton. Lorsqu'on en discute, 50 ans plus tard, on constate qu'une grande proportion de ceux qui ont travaillé dans l'électronique vaudoise, ont fait un passage par Bobst Graphic. Notamment ceux qui ont créé Logitech, j'ai eu l'occasion d'en discuter avec son fondateur Daniel Borel. 

 

Mais revenons à un autre centre de compétences qui a aussi vu passer la crème des électroniciens romands: le LAboratroire de Micro Informatique (LAMI) de mon vieux copain le Pr Jean-Daniel Nicoud. "Passer" dans ses locaux, mais pas forcément par le cursus de l'EPFL (Ecole Polytechnique Fédérale de Lausanne), puisque c'est là que Jean-Daniel et quelques-uns d'entre nous a fondé le Club Crocus en 1976, qui devint quelques mois plus tard le Microclub.

 

48 ans après, le club existe toujours, avec des séances un vendredi sur deux dans un local prêté par l'EPFL. Elles débutent à 19h00 et se terminent généralement vers 20h30-21h00. On va ensuite manger une pizza et refaire le monde dans un resto du coin.

 

Le but du club était de nous former à l'expérimentation des microprocesseurs, dont le tout premier modèle, le 4004 d'Intel, venait d'être commercialisé. Je me souviens encore de la fierté de Jean-Daniel, tenant à bout de bras celui qu'il avait acquis pour 800 Francs de l'époque. On lui doit une fière chandelle car, grâce à lui, beaucoup d'électroniciens romands sont sortis de l'obscurantisme et appris à travailler avec les microprocesseurs, soit en passant dans ses classes du Lami soit en fréquentant le club. C'était très nouveau à l'époque et y on passait son temps à concevoir et fabriquer des microordinateurs expérimentaux (hardware) et à les programmer ensuite (software).

 

On passait beaucoup plus de temps sur le hardware que maintenant car en ces temps il n'y avait pas grand chose à acheter dans le commerce. L'Apple II et l'IBM PC n'ont été commercialisé que quelques années plus tard et puis ils étaient encore chers. On était tous abonnés à des revues américaines comme, par exemple, "PC Electronics", dans laquelle Steve Ciarcia nous faisait rêver avec ses articles.

 

On peut retrouver quelques revues françaises ici: https://www.retronik.fr/DOCUMENTS/?dir=revues

J'ai moi-même publié beaucoup d'articles, notamment dans Elemicro, la revue du club et dans la revue française Megahretz.

 

C'est donc dans les locaux du LAMI que je pus enfin me former aux microprocesseurs. Mais là non plus je ne suivis un cursus standard. La plupart des membres du club s'attelaient à programmer sur un microordinateur développé en 1977 par Jean-Daniel et appelé Dauphin. On le trouve actuellement sous la forme d'un simulateur gratuit sous Windows:

 

https://frederic-junier.org/ISN/Cours/CoursArchitectureDauphin2015V1.pdf

 

 

 

Pour ma part, je désirais vraiment comprendre le fonctionnement d'un ordinateur, Pour cela je voulais en développer un de A à Z, mais également étudier le fonctionnement du processeur Intel 8080 qui était utilisé chez B-G. Je construisis donc mon Vonputer et c'est avec lui que je fis mes premiers pas en programmation en langage machine.

 

Au  départ, le Vonputer était constitué d'un microprocesseur Intel 8080, d'une mémoire vive (RAM, Random Access Memory) de 1kB. L'entrée des données se faisait au moyen des switches du panneau avant et la sortie visuelle par des LED.

 

 

La mémoire

 

La mémoire vive, autrement appelée RAM, Random Access Memory, mémoire à accès aléatoire, est destinée à contenir le programme lui-même, ainsi que les données à stocker momentanément ou définitivement. A l'époque, ce genre de mémoire était dynamique, en ce sens qu'elles rafraîchissaient constamment leur contenu afin qu'il reste mémorisé. C'était un mécanisme autonome, interne à chaque chip, qui lisait et re-écrivait le contenu de chaque bit de la mémoire. C'était indispensable car chaque bit de la mémoire était mémorisé dans un condensateur qui se déchargeait. Il fallait donc le rafraîchir constamment, mais ce cycle était transparent, il n'y avait pas besoin de s'en  soucier. Le seul point important était qu'il ne fallait jamais couper l'alimentation d'un circuit-intégré de mémoire faute de quoi il perdait son contenu.

 

Cette mésaventure m'est arrivée un seule fois. Chaque jour, j'entrais le programme au moyen des switches et ensuite je laissais l'ordinateur sans arrêt sous tension afin de ne pas devoir tout re-écrire le logiciel après chaque mise en route. Un soir, en rentrant du travail, j'ai eu la surprise de voir Vonputer éteint. Répondant à ma question, mon épouse Simone me dit qu'elle avait dû utiliser la prise 230V murale sur laquelle était branché l'ordinateur pour y brancher son aspirateur. "Mais où est le problème me dit-elle? Tu n'as qu'à le rebrancher"... Je lui ai alors expliqué, la mine déconfite, qu'en "éteignant" l'ordinateur, celui-ci perdait le programme que je lui avais entré et que ça faisait une semaine de travail de perdu... Conclusion: elle n'a débranché Vonputer qu'une fois dans sa vie. Non, je ne l'ai pas battue, mais elle m'aimait...

 

Nous en sommes donc au tout début de la vie de Vonputer et il n'a, à ce moment-là, que 1kB de mémoire vive, soit 1024 cases de 8 bits chacune, dont chaque bit peut être à 0V ou à +5V. A cette époque on travaillait en logique 5V. Par la suite, cette tension d'alimentation baissa afin de moins faire chauffer les circuits.

 

A noter que lorsqu'on écrit 1 kB avec un "B" majuscule, on veut dire 1 k Bytes, "Byte" signifiant un mot de 8 bits. Si on écrit 1kb, avec un "b" minuscule, cela signifie qu'il s'agit de bits. 1 Byte est constitué de 8 bits en parallèle.

 

L'électronique tenait entièrement dans un boîtier Elma et ne contenait aucun circuit-imprimé tout était câblé en wire-wrap (fils enroulés) sur des cartes au format "Europe".

 

 

 

L'architecture de la mémoire

 

Le principe en est très simple