Ce videoclip produit par l’Ecole Polytechnique Fédérale de Lausanne fait partie de son cours d’introduction à l’information, à la communication, et au calcul. Il s’inscrit dans le 3e module de ce cours qui porte sur le fonctionnement et la sécurité des systèmes informatiques.
Des algorithmes aux ordinateurs: Etape 4 Comme annoncé dans le videoclip d’introduction de cette leçon, la 4e étape nécessaire pour comprendre comment un ordinateur peut exécuter un algorithme consiste à voir comment un ordinateur conforme à l’architecture vue dans l’avant dernier clip est capable d’exécuter un programme codé en binaire vu dans le clip précédent. C’est le but du présent clip qui va expliquer ce que sont les transistors et comment les exploiter pour exécuter un programme binaire. Logiciel Matériel
Technologies d’implémentation Notre machine est parfaitement abstraite et totalement indépendante d’un choix d’implémentation Même l’encodage binaire n’est nullement une nécessité Toute technologie est possible : Electromécanique (p.ex., relais) Electronique (p.ex., tubes …. ou transistors) Optique En fait à ce stade, l’architecture de notre ordinateur est parfaitement abstraite et totalement indépendante d’une technologie d’implémentation. 1 De la même façon l’idée d’encoder un programme en binaire n’est absolument pas indispensable. Elle se prête simplement particulièrement bien à l’exécution par certaines technologies. 2 Parmi ces technologies prédestinées pour une programmation binaire on peut citer p.ex. Des relais électromécaniques, certes relativement «lents» mais incontestablement «binaires». Des dispositifs électroniques tels que tubes ou aujourd’hui transistors. Voire même des «transistors» optiques auxquels on est incontestablement en train d’arriver.
Une pile, deux niveaux de tension Très bien adaptés à représenter l’information de manière binaire ‘1’ 1.5V 0V Pour l’hors nous allons nous focaliser sur la technologie informatique actuelle: les transistors. Pour comprendre leur fonctionnement, il faut commencer par disposer d’une alimentation. Cette alimentation, représentée ici par une batterie, est typiquement de quelques volts. Pour comprendre la suite on convient de définir un voltage nul comme un 0 binaire et un voltage non-nul (ici positif) comme valant pour représentant un 1 binaire. ‘0’
Ne propage rien s’il est ouvert Propage son entrée s’il est fermé Un interrupteur Ne propage rien s’il est ouvert Propage son entrée s’il est fermé Dans le monde des circuits électriques, un interrupteur est un dispositif qui peut prendre deux positions: ouvert ou fermé. En position ouvert un interrupteur ne propage rien: il ne connecte pas ses deux pôles entre eux. 1 En position fermé, il connecte ses deux pôles et propage donc le voltage de l’un sur l’autre. ‘0’ indéfini ‘1’ indéfini ‘0’ ‘0’ ‘1’ ‘1’
Les transistors = des interrupteurs contrôlés Les tubes = … Les relais = … Etc. Des relais électromécaniques, des tubes électroniques, ou des transistors ne sont en réalité rien d’autres que des interrupteurs contrôlables électriquement. Quand on applique un certain voltage de contrôle ils sont ouverts et ne connectent pas leurs deux pôles. Quand on applique un autre voltage de contrôle ils sont fermés et connectent leurs deux pôles. ‘1’ indéfini ‘0’ indéfini ‘0’ ‘0’ ‘1’ ‘1’
Les transistors = des interrupteurs contrôlés => Ils ne coûtent presque rien : un transistor pour faire un processeur moderne coûte entre 10-5 et 10-4 centimes (CHF, USD, EUR…) ‘0’ ‘1’ p-mos n-mos Plus spécifiquement il existe des transistors de deux espèces: n-mos (qui est une abréviation signifiant metal oxyde semiconductor de type N), et p-mos (qui est une abréviation signifiant metal oxyde semiconductor de type P) que l’on distingue graphiquement par un petit cercle au bout de l’entrée de contrôle d’un transistor p-mos Un transistor n-mos est tel que quand on applique un voltage non-nul à son entrée de contrôle, il se ferme et connecte ainsi ses deux pôles entre eux. Inversement quand on n’applique pas de voltage (0V) à son entrée de contrôle, il s’ouvre et déconnecte ainsi ses deux pôles l’un de l’autre. Un transistor p-mos fonctionne exactement de façon inverse. Quand on applique un voltage non-nul à son entrée de contrôle, il s’ouvre et déconnecte ainsi ses deux pôles l’un de l’autre, alors que quand on n’applique pas de voltage (0V) à son entrée de contrôle, 1 De tels transistors ne coûtent aujourd’hui pratiquement rien, quelques 10 voire 100 millièmes de centimes dans n’importe quelle monnaie forte.
Un inverseur (en CMOS) ‘1’ ‘0’ A X 1.5V 0V En connectant deux transistors n-mos et p-mos comme représentés ici à une batterie, 1 … on peut réaliser un circuit dit «inverseur» parce qu’il inverse son entrée à sa sortie. Voyons en effet ce qui se passe si on connecte le pôle «chaud» (1 binaire) au-dessus du transistor p-mos et le pôle «terre» (0 binaire) au-dessous du transistor n-mos. Si on applique alors un voltage (1 binaire) aux deux transistors à l’entrée A, le p-mos va s’ouvrir alors que le n-mos va se fermer, mettant ainsi la sortie X à la terre (0 binaire). Inversement, si on applique un voltage nul (0 binaire) aux deux transistors à l’entrée A, le n-mos va s’ouvrir alors que le p-mos va se fermer, connectant ainsi la sortie X au pôle chaud de la batterie (1 binaire). X est donc bien l’inverse logique (binaire) de A. 0V
= Un inverseur (en CMOS) ‘1’ ‘0’ A X Table de vérité A X Symbole logique A X 1 Ce fonctionnement est encore représenté en bas de cette figure de façon plus explicite dans le cas où A=1 … 1 … et dans le cas A=0 2 A tout circuit logique de ce type correspond toujours ce qu’on appelle une table de vérité. La table de vérité d’un inverseur, représentée ici en haut à gauche, indique que pour toute valeur de A, X prend la valeur logique (binaire) inverse). 3 Les inverseurs sont des circuits qui reviennent très souvent dans la conception des ordinateurs. Pour éviter de devoir les redessiner chaque fois entièrement on convient de représenter un inverseur par un symbole graphique représenté ici en haut à droite. ‘1’ ‘0’ ‘1’ ‘0’
Un circuit « NOT AND » (« ET » à sortie inversée) ‘0’ ‘1’ A B A B A et B inversé 1 La seule façon d’obtenir un‘0’est de mettre deux‘1’aux entrées A NAND B: la sortie est à‘0’si et seulement si (ssi) A ET B sont à‘1’ Un autre circuit très fréquemment utilisé dans les ordinateurs est le circuit NAND signifiant en anglais NOT AND, c.à.d. un circuit logique ET inversé. Un circuit ET normal est un circuit à deux entrées A et B et une seule sortie qui vaut 1 ssi les entrées valent toutes les deux 1 et 0 dans tous les autres cas. La sortie d’un NAND vaut donc 0 ssi les entrées valent toutes les deux 1. On voit ici l’assemblage de transistors nécessaire à la réalisation d’un NAND, sa table de vérité, et son symbole graphique. NAND
D’autres circuits fréquents A NOR B = inverse de (A OU B) A XOR B = (exclusivement A) OU (exclusivement B) Il existe ainsi un tas d’autres circuits logiques fréquents en informatique: - Ci-dessus un NOR = NOT OR en anglais, qui est donc l’inversion d’un OU logique. Un OU normal comporte aussi deux entrées A et B et une sortie qui vaut 1 dès que l’une OU l’autre (ou les deux) entrées valent 1. - Ci-dessous un XOR – eXclusive OR en anglais, OU exclusif en français. Un OU exclusif comporte aussi deux entrées et une sortie qui vaut 1 ssi une des deux entrées (mais pas les deux) vaut 1. Les tables de vérité et les symboles graphiques correspondant sont aussi donnés ici.
La table de vérité d’un circuit Résume la fonction d’un circuit Par exemple, pour un circuit avec 2 entrées et 1 sortie 2² = 4 sorties (états) possibles La table de vérité d’un circuit résume donc la fonction logique de ce circuit. Un circuit à N entrées peut occuper 2N états possibles. Sa table de vérité aura donc nécessairement 2N lignes. Chacune de ces lignes définit la valeur de la ou des sorties du circuit s’il en a plusieurs. entrée 1 entrée 2 sortie ? 1
On peut réaliser n’importe quelle fonction ! Y X A B C XY 00 1 01 10 11 Reste à nous convaincre que de tels circuits logiques peuvent être utilisés pour réaliser n’importe quelle fonction arithmétique. Il est impossible de prouver cela dans le cadre de ce cours. Mais qu’il suffise de donner un exemple déjà relativement compliqué. On voit ici un circuit assez complexe et sa table de vérité à 3 entrées A, B, C et deux sorties X et Y. 1 Si on y regarde de plus près ce circuit calcule en fait la somme de 3 bits A, B, C et fournit la réponse via ses sorties XY, X étant le bit d’ordre supérieur (le report) et Y étant le bit d’ordre inférieur. Les sorties XY sont la somme (en représentation binaire) des trois bits A, B et C à l’entrée Addition !