Utilisateur:Merrheim/Architecture des ordinateurs/Circuits asynchrones usuels

Un livre de Wikilivres.
Sauter à la navigation Sauter à la recherche

Modèle:Architecture des ordinateurs

Le cours sur les circuits asynchrones[modifier | modifier le wikicode]

De la représentation des données à l'électronique[modifier | modifier le wikicode]

On a vu que toutes les données étaient numériques dans un ordinateur, et finalement représentées par des suites de 0 et de 1. Cela vient en partie du succès de l'électronique numérique, surtout depuis l'invention des transistors. La valeur logique 1 est représentée par un potentiel électrique « haut », par exemple 2 volts, et la valeur logique 0 par un potentiel « bas », par exemple 0 volt. Selon la technologie utilisée, la différence entre les deux potentiels pourra être plus grande ou moins grande.

Assemblage de transistors[modifier | modifier le wikicode]

Un processeur contient un certain nombre de circuits capables de réaliser des calculs en binaire : addition, soustraction, ... ou certaines manipulations sur des données (des décalages par exemple). Nous allons voir dans ce chapitre comment de tels circuits peuvent être réalisés par des assemblages de transistors.

Microélectronique ou informatique[modifier | modifier le wikicode]

Ce chapitre est à la croisée des chemins entre deux matières : la microélectronique et l'informatique, qui étudient toutes deux le fonctionnement du transistor. Nous garderons toutefois le point de vue de l'informaticien qui ne va s'intéresser qu'au comportement logique du transistor. Nous ne nous intéresserons pas à la consommation des transistors, à la réalisation pratique de ces transistors sous forme de masque, à leur effet capacitif, à l'évacuation de la chaleur, ...

Les transistors MOS[modifier | modifier le wikicode]

A la base des processeurs modernes, il y a le transistor MOS : un processeur n'est rien d'autre qu'un assemblage de transistors connectés par des conducteurs ! On peut réunir sur un processeur de moins de un centimètre carré des centaines de millions de transistors. Il existe deux types de transistor MOS : le transistor N et le transistor P qui ont des comportements complémentaires.
Remarque : La technologie MOS peut utiliser des potentiels hauts très variables. Nous choisirons ici une technologie de 2 volts.

  • Transistor N

Le transistor NMOS (type N) est un circuit électronique ayant 3 points importants : la source notée S, le drain noté D et la grille notée G. Le comportement de ce circuit est le suivant : si la grille est reliée à un potentiel de 0 volt, alors la source et le drain seront électriquement isolés, on dit que le transistor est bloqué. Si la grille est reliée à un potentiel haut (2 volts) par exemple) il y aura conduction entre la source et le drain, on dit que le transistor est passant. Schématiquement il s'agit donc d'un interrupteur commandé par un signal électrique. Une contrainte supplémentaire propre à la technologie MOS est que le transistor de type N fait bien passer le 0 (depuis la source vers le drain), mais assez mal le 1.

  • Transistor P

Le transistor PMOS (type P) est un circuit électronique ayant 3 points importants : la source notée S, le drain noté D et la grille notée G. Le comportement de ce circuit est le suivant : si la grille est reliée à un potentiel haut, alors la source et le drain seront électriquement isolés. Si la grille est reliée à un potentiel de 0 volt il y aura conduction entre la source et le drain. Le transistor de type P fait bien passer le 1 (depuis la source vers le drain), mais assez mal le 0.

  • La masse

La masse est reliée en permanence à un potentiel de 0 volt.

  • Le potentiel haut

Le potentiel haut est relié en permanence à un potentiel de 2 volts.

  • Traduction des potentiels hauts et de la masse

Lorsqu'un point du circuit est à un potentiel de 0 volt, on dira qu'il vaut la valeur binaire 0.
Lorsqu'un point du circuit est à un potentiel de 2 volts, on dira qu'il vaut la valeur binaire 1.

Synthèse de portes logiques[modifier | modifier le wikicode]

A partir des transistor N et P, de la masse et du potentiel haut, on peut réaliser des portes logiques. Toutes les portes logiques sont réalisables quelle que soit leur table de vérité. En pratique, la plupart des portes logiques ont un nombre d'entrées et de sorties raisonnables (moins de 5 en général). Nous allons étudier quelques portes logiques usuelles.

L'inverseur[modifier | modifier le wikicode]

Schéma :
Notation :
Un inverseur est un circuit avec une entrée A et une sortie B. Il est constitué de 2 transistors comme sur le schéma.

  • Lorsque A sera à un potentiel de 0 volt, la grille du transistor P du haut sera reliée à un potentiel de 0 volt. Il y aura donc conduction entre la source et le drain de ce transistor. le point B sera donc relié au potentiel haut. Le transistor N du bas aura lui sa grille au potentiel 0 volt. Il n'y aura donc pas conduction entre la masse (source) et le point B (drain). B sera donc au potentiel haut.
  • Lorsque A sera à un potentiel haut, la grille du transistor P du haut sera reliée à un potentiel de 2 volts. La source et le drain de ce transistor seront donc électriquement isolés. Il n'y aura donc pas de conduction entre le point B et le potentiel haut. Le transistor N du bas aura lui sa grille au potentiel haut. Il y aura donc conduction entre la masse et le point B. B sera donc au potentiel de 0 volt.
  • Table de vérité

La table de vérité donne la valeur des sorties pour toutes les valeurs possibles des entrées.
Table de vérité :

A B
0 1
1 0

La porte NAND ou NON-ET[modifier | modifier le wikicode]

La sortie est l'inverse de celle d'une porte ET, donc elle n'est à zéro que si les deux entrées sont à 1.

Schéma :
Notation :

Table de vérité :

A B S
0 0 1
0 1 1
1 0 1
1 1 0

La porte AND ou ET[modifier | modifier le wikicode]

Pour obtenir une porte ET (ou AND) on ajoute un inverseur à la sortie de la porte NAND.
Schéma :
Relay and.svg
Notation :
And.svg

A B S
0 0 0
0 1 0
1 0 0
1 1 1

La sortie est à 1 uniquement si A ET B sont à 1.

La porte NOR ou NON-OU[modifier | modifier le wikicode]

Inverse de la porte OU : la sortie n'est à 1 que si les deux entrées sont à 0.

Schéma :
Notation:
Table de vérité :

A B S
0 0 1
0 1 0
1 0 0
1 1 0

La porte OR ou OU[modifier | modifier le wikicode]

Pour obtenir une porte OU (ou OR) on ajoute un inverseur à la sortie de la porte NOR. Ainsi la sortie est à 1 si A ou B est à 1 (ou les deux, on parle de OU inclusif)
Schéma :
Notation :

A B S
0 0 0
0 1 1
1 0 1
1 1 1

La porte XOR[modifier | modifier le wikicode]

C'est le OU exclusif : la sortie est à 1 si une seule des deux entrées est à 1.

Schéma :
La sortie est vraie si A OU B est vrai et A ET B est faux. On peut donc construire une porte XOR avec une porte OR, deux porte AND et deux porte NOT.
Overzicht XOR.jpg
Notation :
Xor-gate-en.svg
Table de vérité :

A B S
0 0 0
0 1 1
1 0 1
1 1 0

La porte XNOR[modifier | modifier le wikicode]

C'est le OU exclusif inversé.

Schéma :
C'est une porte OU exclusif avec un inverseur à sa sortie.
Notation :
Xnor-gate-en.svg
Table de vérité :

A B S
0 0 1
0 1 0
1 0 0
1 1 1

Le multiplexeur (MUX 1 bit)[modifier | modifier le wikicode]

Si C vaut 1, la sortie vaut A, sinon la sortie vaut B.

Schéma :
Table de vérité :

C A B S
0 0 0 0
0 0 1 1
0 1 0 0
0 1 1 1
1 0 0 0
1 0 1 0
1 1 0 1
1 1 1 1

Notation :

Additionneur 1 bit[modifier | modifier le wikicode]

Le schéma ci dessous est une porte logique à 3 entrées A,B et C et 2 sorties X et Y. Il est dû à H.T.Bui, Y.Wang et Y.Jiang. Le but est d'additionner les bits A, B et C.
Table de vérité :

Cin A B Cout S
0 0 0 0 0
0 0 1 0 1
0 1 0 0 1
0 1 1 1 0
1 0 0 0 1
1 0 1 1 0
1 1 0 1 0
1 1 1 1 1

On a la relation A+B+C=2R+S, R (Cout) est donc la retenue sortante. On peut dessiner un circuit un peu plus complexe à partir des portes vues plus haut :

  • R vaut 1 dès que deux entrées sont à 1 : (A AND B) OR (A AND C) OR (B AND C)
  • S vaut 1 si un nombre impair d'entrées est à 1 : (A XOR B) XOR C

Notation : (FA="Full Adder")

Assemblage de portes logiques de base[modifier | modifier le wikicode]

Une fois les différentes portes logiques synthétisées par des assemblages de transistors, il suffit d'assembler ces différentes portes logiques pour réaliser des circuits beaucoup plus complexes réalisant par exemple des opérations arithmétiques.

Additionneur base 2 sur 8 bits[modifier | modifier le wikicode]

Soit A et B deux entiers positifs en base 2 notés respectivement (A7 A6 A5 A4 A3 A2 A1 A0) et (B7 B6 B5 B4 B3 B2 B1 B0). On veut calculer la somme S=A+B.
S est sur 8 bits et est noté (S7 S6 S5 S4 S3 S2 S1 S0). Le bit C indique la validité du résultat : C=0 indique que le résultat est valide. C=1 indique que A+B n'est pas représentable en base 2 sur 8 bits car A+B>255.
Ce circuit comporte donc 16 bits en entrée en 9 bits en sortie.
L'intérêt de la représentation des entiers relatifs en complément à 2 est que le circuit est exactement le même pour leur addition, sans se soucier de leur signe. La seule différence est que C indique que le résultat calculé est négatif, et qu'il est un peu plus complexe de vérifier que le résultat est correct (qu'il n'y a pas eu de débordement).

Additionneur/soustracteur base 2 sur 4 bits[modifier | modifier le wikicode]

Soit A et B deux entiers positifs en base 2 notés respectivement (A3 A2 A1 A0) et (B3 B2 B1 B0).
Le résultat S est sur 4 bits et est noté (S3 S2 S1 S0).
Si T=0 alors S=A+B et si T=1 alors S=A-B.
Le bit C indique la validité du résultat : C=0 indique que le résultat est valide. C=1 indique que le resultat n'est pas représentable.
Ce circuit comporte donc 9 bits en entrée et 5 bits en sortie.

Multiplexeur à 2 entrées sur 8 bits[modifier | modifier le wikicode]

Soit A et B deux données sur 8 bits notées respectivement (A7 A6 A5 A4 A3 A2 A1 A0) et (B7 B6 B5 B4 B3 B2 B1 B0). Le bit en entrée C indique qu'on veut récupérer sur la sortie soit A soit B.
Le résultat S est sur 8 bits et est noté (S7 S6 S5 S4 S3 S2 S1 S0).
Si C=0 alors S=A et si C=1 alors S=B.

Ce circuit comporte donc 17 bits en entrée et 8 bits en sortie.

Multiplexeur à 4 entrées sur 8 bits[modifier | modifier le wikicode]

On peut le construire avec 3 multiplexeurs 2 entrées. Si les entrées sont A, B, C, D, le premier multiplexeur sélectionne soit A soit B, le deuxième soit C soit D, le troisième soit la sortie du premier, soit celle du deuxième.

Décaleur de 0 ou 1 bit sur 8 bits[modifier | modifier le wikicode]

Soit A une données sur 8 bits notée (A7 A6 A5 A4 A3 A2 A1 A0) et C une entrée sur un bit. Le bit en entrée C indique s'il faut décaler A d'un bit vers la gauche ou non..
Le résultat S est sur 8 bits et est noté (S7 S6 S5 S4 S3 S2 S1 S0).
Si C=0 alors S=A et si C=1 alors S est obtenu en décalant tous les bits de A d'un bit vers la gauche.

Ce circuit comporte donc 9 bits en entrée et 8 bits en sortie.

Décaleur 4 bits - de 0 à 3 positions[modifier | modifier le wikicode]

Soit A une données sur 4 bits notée (A3 A2 A1 A0) et C une entrée sur deux bits nots (C1C0). Le résultat S est sur 7 bits et est noté (S6 S5 S4 S3 S2 S1 S0).
S doit être égal à A décalé de C bits vers la gauche.

Ce circuit comporte donc 6 bits en entrée et 7 bits en sortie.

Additionneur à 3 entrées[modifier | modifier le wikicode]

Multiplieur à 2 entrées sur 4 bits[modifier | modifier le wikicode]

Toutes les fonctions booléennes peuvent être réalisées sous forme de circuit[modifier | modifier le wikicode]

Les circuits précédents (additionneur, multiplexeur, ...) sont appelés circuits combinatoires, ou circuits fonctionnels. Ils réalisent une fonction (au sens mathématique) : la sortie est complètement déterminée par les valeurs des entrées, le circuit n'a pas de « mémoire », la sortie ne dépend pas du passé. En fait on peut réaliser comme cela n'importe quelle fonction booléenne. Étant donnée une table de vérité, on peut par exemple observer pour quelles valeurs des entrées la sortie vaut 1. Un réseau de portes ET (et des inverseurs) peut vérifier que les entrées correspondent à une ligne donnée de la table de vérité. On peut construire un tel réseau pour chaque ligne dont la sortie vaut 1. Il ne reste plus qu'à assembler ces réseaux avec des portes OU. Bien sûr, ce n'est pas très économique. On peut ensuite utiliser des simplifications. Cette démarche correspond à la forme normale disjonctive de la fonction booléenne.

De façon duale, on peut utiliser la forme normale conjonctive, on peut aussi observer seulement les lignes dont la sortie est 0. Pour en savoir plus sur la conception d'un circuit à partir de sa table de vérité, voir le wikilivre Électronique numérique : logique.

Voir aussi[modifier | modifier le wikicode]

Liens internes[modifier | modifier le wikicode]

Sur Wikipédia[modifier | modifier le wikicode]

Liens externes[modifier | modifier le wikicode]

Circuits