/Avertissement : Le but de ce topic est dans son titre !/
Le style de ce tutorial semblera un peu ampoulé, mais on verra que ce n’est pas incompatible avec son contenu éclectique... je veux dire électrique(!)
Bon ça commence
Cages mémoires
Paradigme : La mémoire est un oiseau qu'il faut mettre en cage
La mémoire de l’ordinateur moyen est un empilement de cases numérotées de 1 jusqu'à : un nombre égal à : le nombre total de cases.
Ainsi pour 13 cases, la numérotation se fera de 1 à 13.
Notre mission sera de construire une telle mémoire. Toute la suite n'a aucun caractère scientifique, on raisonnera en ingénieurs. Plus précisément, étant donné des outils et du matériel d'un type précis, nos efforts se consacreront à la fabrication de notre produit. Ce sont donc des compétences d'ingénierie technique qui sont mises en jeu, le pourquoi du comment sera mis à l'écart. Il n'est cependant pas exclu que les questions intéressantes soient ajoutées plus tard, ou dans le fil de la discussion.
Alors quels seront notre matériel et nos outils? Le matériel et les outils du jardin nous permettront de commencer. Pour fabriquer notre première cage mémoire, il suffit d’une boîte en carton et d’une étiquette en papier. On accroche l’étiquette au carton et on écrit le nombre 1.
Mais... le résultat n’est pas encore satisfaisant…
Pourquoi ?
- -> C'est évident qu’il nous manque du contenu à mémoriser !
Réfléchissons. On pourrait mettre un tas de choses dans notre boîte mais on veut faire de l’informatique. Ceci implique au moins les 2 choses suivantes :
- 1 - Tout ce qu’on veut stocker c’est : de l’information.
- 2 - On doit utiliser du matériel électrique.
La seconde remarque nous fait donc passer du jardin au garage.
(...dit-il le carton à la main...)
En fouillant un peu on pourra certainement dénicher une ampoule. Il restera à l'installer dans notre boîte.
Allumé, éteint, éteint, allumé…
Pouvoir énumérer 2 états, voilà ce qu’on appelle 1 bit d’information. Il y a une seule information consistant en 2 possibilités complémentaire : ou l’ampoule est allumée ou bien elle est éteinte, mais pas les 2. Ces 2 deux possibilités constituent 1 bit dans le sens où un bit est le minimum syndical permettant de signaler ces 2 états.
Notons bien que quand il n’y a qu’un seul choix il n’y a aucune information. Par exemple si tous les lapins du monde étaient blancs, ça n’apporterait rien de dire : « un lapin blanc ». On apprend qu'on a un lapin plutôt qu'autre chose, mais ensuite d'ajouter qu'il est blanc est superflu. Ce serait différent si les lapins pouvaient être ou blanc ou noir et rien d'autre. Dans ce cas il nous faudrait 1 bit d’information supplémentaire quand on parle d’un lapin pour préciser la question. Notre cage mémoire peut donc mémoriser une information minimale et neutre mais utile car elle distingue 2 états.
Citation :
Le génie des probabilistes comme Blaise Pascal a été de concevoir clairement l'idée que de connaître le nombre d'états possible d'un objet était une information non négligeable sur l'objet. Pascal a aussi compris que quand on a un nombre élevé de lapin, savoir dans quelle proportion un état se présente par rapport à un autre est une information précieuse. Les australiens en savent quelque chose. Par exemple pour estimer sur leur territoire le nombre total de spécimen du terrible lapin blanc (voisin du nombre d'Avogadro si on en croit la rumeur) il leur suffira d'1 seul bit. Enfin 1 bit multiplié par un nombre de lapin échantillonné - mais certainement pas les 6x10^23 bits qu'exigerait un comptage exhaustif. On trouvera des détails sur les aventures australiennes de Pascal dans tout bon manuel de jardinage. Bon c'était une note d'humour, je tenais surtout à citer Pascal comme étant l'inventeur de la première machine de Babbage.
|
Citation :
Revenons à nos moutons. On commente souvent la citation d’Einstein, « Dieu ne joue pas au dé ». C’est une affirmation logique car utiliser un dé pour fixer des possibilités est une marque de la connaissance humaine et de son type de raisonnement face à des connaissances incomplètes. Quand les connaissances sont complètes, il semble inutile de recourir aux probabilités qui ne sont jamais que la forme générale d’une information finie, c'est-à-dire un comptage de bits.
|
Citation :
Je ne peux pas m'empêcher de citer Paycheck que je viens de revoir récemment. L’acteur principal dit à peu près ça, à un moment donné : « si tu dis son avenir à quelqu’un, il n’a plus d’avenir ». C'est vrai du fait qu'on aurait beau demander à cette personne de faire des choix, le fait qu’elle connaisse déjà le déroulement des événements rend caduque la notion de choix. Paycheck est intéressant parce qu'il souligne aussi l'effet psychologique produit par l'écrasante pensée de connaître son avenir avec certitude. On peut rapprocher ça des effets produits sur les classes défavorisés par le sentiment d'appartenance à une société doté d'une élite bourgeoise répressive.
|
Citation :
Ce dernier exemple nous conduit à l'actualité en France. Je pense qu'on peut dire qu'il n’y a plus de démocratie quand un groupe parlementaire dont on rejette une proposition de loi peut se permettre sans choquer personne, de remettre cette loi à l’ordre du jour, et ce jusqu’à qu’elle finisse par passer. Or c'est une pratique devenue courante à l’ump. Hadopi ou la taxe carbone en sont des exemple édifiants... d'autant plus que tout cela se passe au pays de Pascal!
|
Restons sur l'exemple de départ, on a parlé de 13 cages. Il nous reste donc 12 autres cages à monter. On obtiendra alors une mémoire capable de stocker 13bits. C'est une mémoire qu'on peut facilement effacer et réécrire. Mais on peut aussi la conserver longtemps en l'état à condition de ne pas couper l'alimentation et de penser à changer les ampoules grillées.
En conclusion : Que peut mémoriser composée de 13 cages à lampe ?
Réponse : Dans le cas le plus simple, 1 nombre binaire de 13 bits. C’est-à-dire un nombre compris entre 1 et le nombre de configurations possibles d’ampoules allumées ou éteintes. Autant le dire tout de suite, il y a 2^13=8192 cas possibles.
Mais pourquoi utiliser des nombres binaires ?
Réponse : A chaque configuration d’ampoules allumées/éteinte on pourrait associer un nombre ou autre chose de manière absolument quelconque. Mais ça ne nous aiderait pas à compter. Et en informatique, même rudimentaire, il est important de savoir compter. Il faut donc que notre technologie de cage équipée d’une ampoule soit en parfaite adéquation avec le comptage. Le choix des nombres binaires s'imposent de lui-même. Ce sera plus évident quand on aura approfondi la question. C'est l'objet de la partie suivante.
Compter en binaire (partie 1)
Pour apprendre à compter en binaire on va utiliser nos cages mémoires pour remplacer les étiquettes papier qui servaient à les numéroter. Ces étiquettes étaient utiles pour nous, afin d'identifier et classer nos cages. Tel quel elles ne sont guère utilisables par l'ordinateur. En y substituant des cages à ampoule ce problème sera réglé.
On a donc 13 étiquettes numérotées de 1 à 13, voyons comment avoir une numérotation équivalente en binaire comme l'impose le choix technologique de cages à ampoule.
Pour commencer à compter, il nous faut définir:
- une unité et
- l’opération d’ajouter une unité à une cage.
Notre unité sera l’ampoule allumée.
Ci-dessous, on liste les conventions qu’on adoptera pour faire du binaire. Pour l’instant on ne s’occupera pas des limitations techniques, le fait qu’on travaille avec des groupes limités de cages en quantité déterminée par exemple.
Règles pour l’arithmétique binaire :
R1_* Ajouter à une cage dont l’ampoule est éteinte à une ampoule allumée (dans sa cage) revient à allumer cette première cage.
R2_* Une ampoule allumée ajoutée à une ampoule allumée oblige à utiliser une cage allumée supplémentaire qu’on positionne à gauche (si le sens d’écriture est de gauche à droite). Il reste enfin à éteindre la cage de droite.
A ce point là de notre progression en technique numératoire, il faut faire quelques remarques pour aller plus loin sans avoir l'impression de sauter des étapes.
L’addition de deux cages isolées peut nécessiter de créer des cages doubles. Ces cages doubles sont bien distinctes des cages isolées, par exemple il y a un sens de lecture et il est primordial de le respecter. Si on ne sait pas fabriquer des cages doubles, ou si on ne veut pas, on pourra tomber sur un dépassement de capacité lorsqu’on additionnera 2 cages simples. D’un autre côté, si on a l’intention d’utiliser des cages doubles, on a tout intérêt (mais c’est aussi une question de moyens) à convertir toutes les cages simples en cages doubles équivalentes. Voyons des conventions utiles dans ce sens :
Convention :
C1_* Rappelons que le sens de lecture est de gauche à droite et donc que les dépassements de capacité de l’addition sont résolus par adjonction de cages à droite (et non à gauche).
La convention C1 est alors la suivante : quand on a une cage double dont :
- la cage de droite est une ampoule allumée ou éteinte et
- la cage de gauche une cage éteinte,
la valeur binaire de la cage double est la même que celle d’une cage simple dont l'ampoule est dans le même état que l'ampoule de la cage de droite.
(l'égalité fonctionne évidemment dans les 2 sens)
La convention précédente se généralise. Ce n'était qu'une introduction à la convention suivante :
C2_* Commençons par prendre une suite de cages éteintes contigües, associées à l'intérieur de la représentation d’un nombre binaire. La suite de cages éteintes peut être n'importe où dans une suite de cages dont on sait que la fonction est de représenter un nombre binaire à l'aide d'ampoules allumées ou éteintes. La suite de cage totale respecte donc les règles rigides dont on a parlé jusqu'à présent, notamment les cases se suivent dans un ordre défini de manière stricte. Bon.
Si la cage la plus à gauche de la suite de cages éteintes est aussi la plus à gauche de la suite complète des cages du nombres binaires représenté,
alors la valeur du nombre n’est pas influencée par cette chaîne et elle peut être ignorée pour la détermination de la valeur.
Ce principe (simple en fait) est illustré par le gif suivant.
Spoiler :
Note : Il est important pour nous, ingénieurs jardiniers en informatique, de toujours distinguer une valeur numérique théorique et la construction réelle de cette valeur par des moyens concrets à l'aide de cages à lampe par exemple. On doit alors se dire que l'addition binaire qui nécessite en théorie de pouvoir ajouter des cases au fur et à mesure rencontrera dans la réalité quelques limites. On sera sans doute confronté à un dépassement de capacité, les cages ne tombant pas du ciel!
On a aussi vu qu’un sous-groupement de cages éteintes contigües qui débutent à droite d’un groupement de cages représentant un nombre binaire, pouvait être ignoré. Pourtant il faut bien comprendre qu’on ne va pas utiliser des groupements à tailles variables associées à volonté en fonction des besoins. J'ai essayé de trouver un mécanisme chargé de gérer de telles associations et je pense que c'est une chose compliquée à intégrer dans un système de cages électrifiées. Ce n’est peut-être plus vrai avec des ordinateurs analogiques, basées par exemple sur le comportement réflexe de cellules biologiques… mais on n’en est pas là. En bref, malgré une théorie souple, notre technologie de numération sera assez rigide. Ainsi on définira par avance une taille unique pour les groupements de cages. Au moins dans ce cadre l'addition se fera sans dépassements de capacité. Il est vrai par ailleurs que certaines cages ne seront pas significatives pour certains nombres (les cages éteintes à gauche) ce qui un gaspillage que des écologistes forcenés voudront sans doute dénoncer. Et c’est leur droit. Mais pour bien faire ils devront d’abord évaluer l’énergie nécessaire à une utilisation souple de ressources réduites et la comparer à la masse de ressources à monopoliser lors d’une utilisation rigide. L’introduction raisonnée de la dimension écologique doit à mon avis en passer par là. |
Il nous reste à voir une convention, incontournable elle aussi.
C3_* Un cas spécial, la valeur nulle.
On aurait pu fixer a priori, dès le départ, la valeur zéro comme étant représentée par une cage éteinte. Mais il aurait fallu vérifier après coup que cela n’entraîne pas d’incohérences. Je pense qu'il vaut mieux déduire naturellement la valeur nulle de la représentation des nombres découlant des conventions précédentes. En effet cette valeur s'impose par elle-même quand on tombe sur un cas spécial de simplification d'écriture où toutes les cases d'un nombre binaire sont éteintes. Le gif suivant en donne l'illustration :
Un assemblage constitué uniquement d’ampoules éteintes équivaut à n’importe quel assemblage d’ampoules éteintes (la valeur est la même). Notamment : l’assemblage particulier constitué d’une seule ampoule éteinte ou même d’aucune ampoule revient au même. Cette dernière remarque est intéressante car elle justifie la nécessité d’attribuer la valeur nulle à un nombre constitué exclusivement d’ampoules éteintes. On comprend aussi qu'on peut prendre une seule cage éteinte à titre de notation pour zéro.
En conclusion, arrivé à ce point on a :
- la valeur d’une unité est matérialisée par l’ampoule allumée, et
- la valeur nulle avec son représentant particulier : l’ampoule éteinte.
Et on sait réaliser un début d’addition.
C'est bien. Ça nous encourage à aller un peu plus loin en terra informatica.
Bon la suite un peu plus tard
Message édité par cappa le 08-01-2010 à 18:11:11
---------------
Tester le 1er multisondage HFR ---> MULTISONDAGE.