FONCTIONNEMENT DE BASE DU PROCESSEUR |
Un processeur pourrait être comparé à une boîte qui contient une multitude d'interrupteurs (transistors) associés à des condensateurs. On peut avoir 2 interrupteurs qui contrôlent un condensateur: un qui sert à le charger, et l'autre à le décharger. Bien sûr on s'arrange pour qu'ils ne soient jamais fermés au même moment. Ces condensateurs se trouvent dans l'un de deux états possibles: chargé ou déchargé, ce qui correspond à l'ouverture ou la fermeture des interrupteurs, et l'on peut représenter mathématiquement leur état par les valeurs 0 ou 1. Voilà qui correspond à un bit. Les données sont enregistrées sous forme de suites de 0 et de 1, c-à-d divers interrupteurs et condensateurs qui sont dans un état fixe, chargé ou déchargé, ouvert ou fermé. La suite 01001110 pourrait représenter une lettre particulière de l'alphabet, par exemple un N. Il faut effectivement 8 bits pour représenter un caractère. Voilà qui correspond à un octet. Par définition, un octet est égal à 8 bits.
Lorsque vous tapez "N" sur votre clavier, celui-ci a été conçu pour envoyer à travers le cable qui le relie à l'ordinateur la série 01001110, et ces bits vont aller s'inscrire physiquement dans la mémoire en termes de condensateurs chargés (pour les 1) et déchargés (pour les 0). Plus tard, en détectant l'état de ces condensateurs contrôlés par des interrupteurs et qui servent de mémoire, le processeur peut retrouver l'information 01001110 et l'envoyer vers l'écran qui lui a été conçu pour afficher un "N" lorsqu'il reçoit un 01001110. Voilà pour le stockage et la lecture d'informations à ce point. Les concepts de mémoire et de stockage d'informations seront vus plus en détails par la suite.
Qu'en est-il des programmes? Ils sont enregistrés sous forme de bits. Ces bits correspondent à des condensateurs chargés ou déchargés. Maintenant si on relie un côté du condensateur à la 3è broche d'un autre transistor (voir plus haut), selon que le condensateur est chargé ou non, le courant passera ou ne passera pas entre les 2 autres broches de ce transistor. En d'autres termes ce qui est enregistré en mémoire peut déterminer si tel ou tel interrupteur sera ouvert ou fermé. Puis certains "interrupteurs" peuvent en contrôler d'autres. Un transistor ou "robinet électronique" peut en actionner un autre qui lui-même peut en contrôler un autre. Si tel interrupteur s'ouvre, d'autres qui se trouvent dans telle zône se ferment, et d'autres encore qui se trouvent dans telle autre zône s'ouvrent.
Les programmes opèrent des calculs et des transformations sur les informations reçues. Comment tout cela fonctionne-t-il? Il y a une horloge interne qui génère inlassablement une suite 0101010101... a une cadence folle, selon le nombre de "mégaherz" ou "gigaherz" de votre processeur. Un mgaherz veut dire 1 million de fois par seconde. Un gigaherz veut dire 1 milliard de fois par seconde. Si par exemple votre ordinateur était un 800 Mhz, ça voudrait dire que son horloge donne 800 millions d'impulsions par seconde. Ces impulsions sont des alternances de 0 et de 1 qui cadencent l'exécution des programmes. Lorsque vous cliquez sur votre souris à un endroit précis de l'écran pour lancer un programme particulier, la position relative de la souris et le cliquement font qu'une impulsion est envoyée au processeur pour démarrer tel programme qui se trouve à tel endroit de la mémoire. L'horloge fait que les choses sont exécutées pas à pas, les bits inscrits dans le programme sont lus en séquence, et donc des interrupteurs sont ouverts et fermés dans un ordre bien déterminé, ce qui fait que toutes sortes d'opérations sont effectuées avec des bits. Par exemple vous avez décidé de changer le "N" en "b". Vous tapez le b au clavier, puis vous cliquez sur "Enregistrer". Et à ce moment le programme "Enregistrer" qui est lui-même pré-enregistré est lu par le processeur puis celui-ci commence à l'exécuter. Le "b" correspond à un 01100010. Le processeur suit les instructions du programme en ouvrant et fermant des interrupteurs nécessaires pour que le 01100010 aille remplacer le 01001110. C-à-d dans ce cas-ci le premier condensateur restera déchargé, le 2è restera chargé, le 3è sera déchargé (il était à 1 et doit maintenant représenter un 0), et ainsi de suite pour mettre 01001110 à l' endroit de la mémoire où se trouvait 01100010. Même si cela demandait 1000 opérations, avec une horloge tournant à 800 millions par seconde, cela ne prendrait qu'un 800.000 ème de seconde...
Ces bits qui constituent le programme ont été pré-enregistrés par un programmeur. En réalité le programmeur descend rarement au niveau des 0 et des 1s. Il utilise un langage de programmation qui peut être plus ou moins proche de la langue française (ou plutôt anglaise), et qui va aller inscrire les 0 et les 1 aux bons endroits, sans qu'il doive trop s'en soucier.
Au fait, les premiers ordinateurs étaient programmés par le biais de réels interrupteurs physiques que le programmeur devait actionner...
Ordres de grandeur
Il peut sembler encombrant de devoir utiliser 16 interrupteurs et 8 condensateurs rien que pour enregister une lettre de l'alphabet, ce qui fait déjà 24 composants électroniques... Mais rassurez-vous, une barrette de mémoire contient des milliards de ces interrupteurs et condensateurs. Par comparaison, un livre de 100 pages qui contiennent 25 lignes de 125 caractères aurait 100x25x125=312.500 caractères. Il faudrait donc 24x312.500 composants électroniques pour stocker un tel livre en mémoire. Cela ne fait qu'un total de 7.500.000 (7 millions cinq cent mille). Sachant qu'il faut un octet par caractère, on peut enregistrer 400 livres de 100 pages avant d'arriver à 1 milliard de bits... et plus que cela contenu dans une barette de mémoire qui fait 13x2,5cm. Un CD-ROM (11 à 12cm de diamètre) peut contenir plus de 2.000 livres de 100 pages, de quoi remplir une bibliothèque..
Copyright 2003-2004 Jacques Lederer |