Telechargé par Adil ENAANAI

Architecture des ordinateurs

publicité
[Architecture et fonctionnement des ordinateurs]
Faculté multi disciplinaire de khouribga
Chapitre I : Les systèmes de numération
I- Principe des systèmes de numération :
I-1- Principe d'une base :
La base est le nombre qui sert à définir un système de numération.
La base du système décimal est dix alors que celle du système octal est huit.
Quelque soit la base numérique employée, elle suit la relation suivante :
ou : bi : chiffre de la base de rang i
et : ai : puissance de la base a d'exposant de rang i
Exemple : base 10
1986 = (1 x 103) + (9 x 102) + (8 x 101) + (6 x 100)
I-2- Le système décimal
Le système décimal est celui dans lequel nous avons le plus l'habitude d'écrire.
Chaque chiffre peut avoir 10 valeurs différentes :
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, de ce fait, le système décimal a pour base 10.
Tout nombre écrit dans le système décimal vérifie la relation suivante:
745 = 7 x 100 + 4 x 10 + 5 x 1
745 = 7 x 10 x 10 + 4 x 10 + 5 x 1
745 = 7 x 102 + 4 x 101 + 5 x 100
Chaque chiffre du nombre est à multiplier par une puissance de 10 : c'est ce que l'on nomme le
poids du chiffre.
L'exposant de cette puissance est nul pour le chiffre situé le plus à droite et s'accroît d'une unité
pour chaque passage à un chiffre vers la gauche.
12 435 = 1 x 104 + 2 x 103 + 4 x 102 + 3 x 101 + 5 x 100 .
Cette façon d'écrire les nombres est appelée système de numération de position.
Dans notre système conventionnel, nous utilisons les puissances de 10 pour pondérer la valeur
des chiffres selon leur position, cependant il est possible d'imaginer d'autres systèmes de nombres
ayant comme base un nombre entier différent.
I-3- Le système octal
Le système octal utilise un système de numération ayant comme base 8 (octal => latin octo = huit).
Il faut noter que dans ce système nous n'aurons plus 10 symboles mais 8 seulement :
0, 1, 2, 3, 4, 5, 6, 7
Ainsi, un nombre exprimé en base 8 pourra se présenter de la manière suivante : (745)8
Lorsque l'on écrit un nombre, il faudra bien préciser la base dans laquelle on l'exprime pour
lever les éventuelles indéterminations (745 existe aussi en base 10).
Ainsi le nombre sera mis entre parenthèses (745 dans notre exemple) et indicé d'un nombre
représentant sa base (8 est mis en indice).
Cette base obéira aux même règles que la base 10, vue précédemment, ainsi on peut décomposer
(745)8 de la façon suivante :
(745)8 = 7 x 82 + 4 x 81 + 5 x 80
1
[Architecture et fonctionnement des ordinateurs]
Faculté multi disciplinaire de khouribga
(745)8 = 7 x 64 + 4 x 8 + 5 x 1
(745)8 = 448 + 32 + 5
Nous venons de voir que :
(745)8 = (485)10
I-4- Le système binaire
Dans le système binaire, chaque chiffre peut avoir 2 valeurs différentes : 0, 1.
De ce fait, le système a pour base 2.
Tout nombre écrit dans ce système vérifie la relation suivante :
(10 110)2 = 1 x 24 + 0 x 23 + 1 x 22 + 1 x 21 + 0 x 20
(10 110)2 = 1 x 16 + 0 x 8 + 1 x 4 + 1 x 2 + 0 x 1
donc : (10110)2 = (22)10 .
I-5- Le système hexadécimal
Le système hexadécimal utilise les 16 symboles suivant :
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F.
De ce fait, le système a pour base 16.
Un nombre exprimé en base 16 pourra se présenter de la manière suivante :(5AF)16
La correspondance entre base 2, base 10 et base 16 est indiquée dans le tableau ci-après :
Le nombre (5AF)16 peut se décomposer comme suit :
(5AF)16 = 5 x 162 + A x 161 + F x 160
En remplaçant A et F par leur équivalent en base 10, on obtient :
(5AF)16 = 5 x 162 + 10 x 161 + 15 x 160
(5AF)16 = 5 x 256 + 10 x 16 + 15 x 1
donc = (5AF)16 = (1455)10
2
[Architecture et fonctionnement des ordinateurs]
Faculté multi disciplinaire de khouribga
II- Changement de base :
II-1- Conversion d'un nombre de base quelconque en nombre décimal
En exposant les principes des systèmes de numération de position, nous avons déjà vu comment
convertir les nombres de base 8, base 2 et base 16 en nombres décimaux.
II-2- Conversion d'un nombre décimal en nombre binaire
Pour expliquer ce type de conversion, on peut revenir sur le système décimal.
Si nous divisons le nombre (543)10 par 10, nous obtenons comme quotient 54 et 3 comme reste.
Cela signifie que ce nombre équivaut à : (54 x 10) + 3
Le reste 3 est le chiffre indiquant le nombre d'unités.
En redivisant ce quotient (54) par 10, nous obtenons 5 comme deuxième quotient et 4 comme
reste. Ce reste donne le deuxième chiffre du nombre, donc celui des dizaines.
Enfin, si l'on divise ce deuxième quotient par 10, nous obtenons O et il restera 5 qui
représentera le chiffre des centaines.
Résumer du principe de conversion :
En divisant successivement un nombre par la base (10) et en ne conservant que les restes, on a
réussi à exprimer le nombre par des chiffres inférieurs de 10. Mais attention, il faut lire les restes
de bas en haut.
Conversion binaire :
Maintenant si nous divisons un nombre décimal par 2, le quotient indique le nombre de fois que
2 est contenu dans ce nombre et le reste indique le chiffre des unités dans l'expression du nombre
binaire.
Soit N le nombre, Q1 le quotient et R1 le reste, nous avons :
N = (Q1 x 2) + (R1 x 1)
N = (Q1 x 21) + (R1 x 20)
Exemple :
soit :
N = (22 x 2) + (0 x 1) = 44
Pour obtenir l'expression binaire d'un nombre exprimé en décimal, il suffit de diviser
successivement ce nombre par 2 jusqu'à ce que le quotient obtenu soit égal à O.
Comme pour la conversion dans le système décimal les restes de ces divisions lus de bas en
haut représentent le nombre binaire.
(44)10 = (101100)2
3
[Architecture et fonctionnement des ordinateurs]
Faculté multi disciplinaire de khouribga
II-3- Relation entre les nombres binaires et les nombres octaux
Exprimons (47)10 dans le système octal et le système binaire. Nous obtenons :
Nous pouvons remarquer qu'après 3 divisions en binaire nous avons le même quotient qu'après
une seule en octal. De plus le premier reste en octal obtenu peut être mis en relation directe avec les
trois premiers restes en binaire :
(111)2 = 1 x 22 + 1 x 21 + 1 x 20
(111)2 = 1 x 4 + 1 x 2 + 1 x 1
(111)2 = (7)8
et il en est de même pour le caractère octal suivant :
(101)2 = 1 x 22 + 0 x 21 + 1 x 20
(101)2 = 1 x 4 + 0 x 2 + 1 x 1
(101)2 = (5)8
Cette propriété d'équivalence entre chaque chiffre octal et chaque groupe de 3 chiffres binaires
permet de passer facilement d'un système à base 8 à un système à base 2 et vice versa.
Exemple de conversion binaire octal et octal binaire :
II-4- Relation entre les nombres binaires et les nombres hexadécimaux
La propriété d'équivalence que nous venons de
voir entre le binaire et l'octal existe entre
l'hexadécimal et le binaire.
La seule différence est qu'il faut exprimer
chaque caractère hexadécimal à l'aide de 4
informations binaires.
4
[Architecture et fonctionnement des ordinateurs]
Faculté multi disciplinaire de khouribga
III- Représentation des nombres :
III-1- Représentation d'un entier naturel
Un entier naturel est un entier positif ou nul. Le choix à faire (c'est-à-dire le nombre de bits à
utiliser) dépend de la fourchette des nombres que l'on désire utiliser. Pour coder des nombres entiers
naturels compris entre 0 et 255, il nous suffira de 8 bits (un octet) car 28=256. D'une manière
générale un codage sur n bits pourra permettre de représenter des nombres entiers naturels compris
entre 0 et 2n-1.
Pour représenter un nombre entier naturel après avoir défini le nombre de bits sur lequel on
le code, il suffit de ranger chaque bit dans la cellule binaire correspondant à son poids binaire de la
droite vers la gauche, puis on « remplit » les bits non utilisés par des zéros.
III-2- Représentation d'un entier relatif
Un entier relatif est un entier pouvant être négatif. Il faut donc coder le nombre de telle façon que
l'on puisse savoir s'il s'agit d'un nombre positif ou d'un nombre négatif, et il faut de plus que les
règles d'addition soient conservées. L'astuce consiste à utiliser un codage que l'on appelle
complément à deux.
• un entier relatif positif ou nul sera représenté en binaire (base 2) comme un entier naturel, à la
seule différence que le bit de poids fort (le bit situé à l'extrême gauche) représente le signe. Il faut
donc s'assurer pour un entier positif ou nul qu'il est à zéro (0 correspond à un signe positif, 1 à un
signe négatif). Ainsi si on code un entier naturel sur 4 bits, le nombre le plus grand sera 0111 (c'està-dire 7 en base décimale).
D'une manière générale le plus grand entier relatif positif codé sur n bits sera 2n-1-1.
• un entier relatif négatif grâce au codage en complément à deux.
Principe du complément à deux :
Soit à représenter un nombre négatif.
Prenons son opposé (son équivalent en positif)
On le représente en base 2 sur n-1 bits
On complémente chaque bit (on inverse, c'est-à-dire que l'on remplace les zéros par
des 1 et vice-versa)
On ajoute 1
On remarquera qu'en ajoutant le nombre et son complément à deux on obtient 0...
Voyons maintenant cela sur un exemple :
On désire coder la valeur -5 sur 8 bits. Il suffit :
• d'écrire 5 en binaire : 00000101
• de complémenter à 1 : 11111010
• d'ajouter 1 :
11111011
• la représentation binaire de -5 sur 8
bits est 11111011
Remarques: Le bit de poids fort est 1, on a donc bien un nombre négatif.
Si on ajoute 5 et -5 (00000101 et 11111011) on obtient 0 (avec une retenue de 1...).
III-3- Représentation d'un nombre réel
Il s'agit d'aller représenter un nombre binaire à virgule (par exemple 101,01 qui ne se lit pas cent un
virgule zéro un puisque c'est un nombre binaire mais 5,25 en décimale) sous la forme 1,XXXXX...
* 2n (c'est-à-dire dans notre exemple 1,0101*22). La norme IEEE définit la façon de coder un
nombre réel.
Cette norme se propose de coder le nombre sur 32 bits et définit trois composantes :
• le signe est représenté par un seul bit, le bit de poids fort (celui le plus à gauche)
• l'exposant est codé sur les 8 bits consécutifs au signe
• la mantisse (les bits situés après la virgule) sur les 23 bits restants
5
[Architecture et fonctionnement des ordinateurs]
Faculté multi disciplinaire de khouribga
Ainsi le codage se fait sous la forme suivante :
seeeeeeeemmmmmmmmmmmmmmmmmmmmmmm
•
•
•
le s représente le bit relatif au signe
les e représentent les bits relatifs à l'exposant
les m représentent les bits relatifs à la mantisse
Certaines conditions sont toutefois à respecter pour les exposants :
• l'exposant 00000000 est interdit
• l'exposant 11111111 est interdit. On s'en sert toutefois pour signaler des erreurs, on appelle alors
cette configuration du nombre NaN, ce qui signifie Not a number
• Il faut rajouter 127 (01111111) à l'exposant pour une conversion de décimal vers un nombre réel
binaire. Les exposants peuvent ainsi aller de -254 à 255
La formule d'expression des nombres réels est ainsi la suivante:
(-1)^S * 2^( E - 127 ) * ( 1 + F )
Où:
• S est le bit de signe et l'on comprend alors pourquoi 0 est positif ( -1^0=1 ).
• E est l'exposant auxquel on doit bien ajouter 127 pour obtenier son équivalent codé.
• F est la partie fractionnaire, la seule que l'on exprime et qui est ajoutée à 1 pour effectuer le
calcul.
Voyons ce codage sur un exemple :
Soit à coder la valeur 525,5.
•
•
•
•
•
525,5 est positif donc le 1er bit sera 0.
Sa représentation en base 2 est la suivante : 1000001101,1
En normalisant, on trouve : 1,0000011011*2^9
On ajoute 127 à l'exposant qui vaut 9 ce qui donne 136, soit en base 2 : 10001000
La mantisse est composée de la partie décimale de 525,5 en base 2 normalisée, c'est-à-dire
0000011011.
• Comme la mantisse doit occuper 23 bits, il est nécessaire d'ajouter des zéros pour la compléter :
00000110110000000000000
• La représentation du nombre 525,5 en binaire avec la norme IEEE est donc :
0 1000 1000 00000110110000000000000
0100 0100 0000 0011 0110 0000 0000 0000 (4403600 en hexadécimal)
Voici un autre exemple avec un réel négatif :
Soit à coder la valeur -0,625.
• Le bit s vaut 1 car 0,625 est négatif
• 0,625 s'écrit en base 2 de la façon suivante : 0,101
• On souhaite l'écrire sous la forme 1.01 x 2-1
• Par conséquent l'exposant vaut 1111110 car 127 - 1 = 126 (soit 1111110 en binaire)
• la mantisse est 01000000000000000000000 (seuls les chiffres après la virgule sont représentés,
le nombre entier étant toujours égal à 1)
• La représentation du nombre 0,625 en binaire avec la norme IEEE est :
1 1111 1110 01000000000000000000000
1111 1111 0010 0000 0000 0000 0000 0000 (FF 20 00 00 en hexadécimal)
6
[Architecture et fonctionnement des ordinateurs]
Faculté multi disciplinaire de khouribga
Chapitre II : Portes logiques et algèbre de BOOL
I. Généralités sur les portes logiques
Les portes logiques sont des circuits électroniques qui réalisent une fonction bien définie. Le
résultat dépond bien des signaux numériques en entrée.
Ces portes logiques constituent la base de l’électronique numérique, car on peut les utiliser pour
réaliser n’importe quelle fonction en combinant plusieurs portes. Dans la suite de chapitre, nous
verrons les portes logiques de base ainsi que leur utilisation.
I.1.
Inverseur : porte NON
L'opération NON (NOT) a une seule entrée et une seule sortie. La sortie d'une fonction NON prend
l'état 1 si et seulement si son entrée est dans l'état 0. La négation logique est symbolisée par un petit
cercle dessiné à l'endroit où une ligne en entrée ou en sortie rejoint un symbole logique. La table
suivante donne la table de vérité correspondante.
NON : table de vérité
A
0
1
I.1.
NON : symbole
1
0
Porte OU (inclusif)/ NON OU
L'opération OU (OR), encore appelée addition logique, a au moins deux entrées. La sortie d'une
fonction OU est dans l'état 1 si au moins une de ses entrées est dans l'état 1. La fonction OU, notée
+, est définie par la table de vérité suivante :
OU : table de vérité
A B
0 0
0 1
1 0
1 1
Y = A + B
0
1
1
1
NON OU (NOR) : table de vérité
A
0
0
1
1
B
0
1
0
1
OU : symbole
NON OU (NOR) OU : symbole
1
0
0
0
Il est facile de vérifier les propriétés suivantes de la fonction OU :
(A + B) + C = A + (B + C) = A + B + C Associativité
A+B=B+A
Commutativité
A+A=A
Idempotence
A+0=A
Elément neutre
A+1=1
7
[Architecture et fonctionnement des ordinateurs]
I.2.
Faculté multi disciplinaire de khouribga
Porte ET/ NON ET
L'opération ET (AND), encore dénommée produit logique ou intersection, a au moins deux
entrées. La sortie d'une fonction AND est dans l'état 1 si et seulement si toutes ses entrées sont dans
l'état 1. La fonction ET, notée •, est représentée par le symbole indiqué sur la figure 4 et est définie
par la table de vérité suivante :
ET : table de vérité
A
0
0
1
1
B Y=A•B
0
0
1
0
0
0
1
1
NON ET (NAND) : table de vérité
A
0
0
1
1
ET : symbole
B
0
1
0
1
NON AND (NAND) OU : symbole
1
1
1
0
Il est facile de vérifier les propriétés suivantes de la fonction ET :
(A • B) • C = A • (B • C) = A • B • C Associativité
A•B=B•A
Commutativité
A•A=A
Idempotence
A•1=A
Elément neutre
A•0=0
Elément absorbant
D'autre part, les opérations ET et OU sont distributives l'une par rapport à l'autre :
A • (B + C) = (A • B) + (A • C) Distributivité du ET sur le OU
A + (B • C) = (A + B) • (A + C) Distributivité du OU sur le ET
Mentionnons également les propriétés d’absorption :
A + (A • B) = A
A • (A + B) = A
En effet:
A + (A • B) = (A • 1) + (A • B) = A • (1 + B) = A • 1 = A
A • (A + B) = (A • A) + (A • B) = A + (A • B) = A
A partir des définitions des fonctions NON, OU et ET nous pouvons déduire :
8
[Architecture et fonctionnement des ordinateurs]
I.3.
Faculté multi disciplinaire de khouribga
Théorèmes de De Morgan
De Morgan a exprimé deux théorèmes qui peuvent se résumer sous la forme suivante :
Pour vérifier le premier théorème nous remarquons que si toutes les entrées sont à 1 les deux
membres de l'équation sont nuls. Par contre si une au moins des entrées est à 0 les deux membres de
l'équation sont égaux à 1. Il y a donc égalité quels que soient les états des diverses entrées. Le
second théorème se vérifie de la même manière : si toutes les entrées sont à 0 les deux membres de
l'équation sont à 1, par contre si au moins une des entrées est à 1 les deux expressions sont à 0.
Comme les transistors qui interviennent comme éléments de base des portes sont par essence des
inverseurs, les portes NAND et NOR sont très usitées dans la réalisation des circuits logiques.
Grâce aux lois de De Morgan il est possible de réaliser des systèmes logiques avec uniquement des
portes NAND ou NOR. La figure suivante montre, par exemple, comment les portes NOT, OR et
AND peuvent être obtenues à partir de portes NOR.
I.4.
Porte OU exclusif
La sortie d'une fonction OU exclusif (XOR) à deux entrées est dans l'état 1 si une entrée et
seulement une est dans l'état 1. Sa table de vérité est la suivante :
OU Exclusif(XOR) : table de vérité
A
0
0
1
1
B
0
1
0
1
OU Exclusif(XOR) : symbole
0
1
1
0
Nous pouvons formuler de diverses manières la définition précédente : Y est égal à 1 si et
seulement si A = 1 ou B = 1 mais pas simultanément. Ce que nous pouvons écrire :
Nous pouvons encore dire Y est égal à 1 si A = 1 et B = 0 ou si B = 1 et A = 0. Soit :
Une fonction XOR fournit un comparateur d'inégalité : Y ne vaut 1 que si A et B sont différents. Si
A et B sont égaux à 1 ou si A et B sont égaux à 0 alors Y = 0. Ce qui s'écrit :
Le complément du OU-exclusif correspond à un détecteur d'égalité. Nous avons encore la relation
suivante qui peut être démontrée en utilisant les théorèmes de De Morgan :
9
[Architecture et fonctionnement des ordinateurs]
Faculté multi disciplinaire de khouribga
A ces quatre relations logiques correspondent quatre circuits réalisant la fonction XOR à partir de
portes OR et AND :
II. Simplification de l'écriture des fonctions logiques
II.1. Simplification algébrique
Simplifier une expression booléenne c'est lui trouver une forme plus condensée, faisant intervenir
moins d'opérateurs et conduisant à une réalisation matérielle plus compacte. On peut simplifier une
fonction par manipulation algébrique en utilisant par exemple les relations rassemblées dans la table
9. Considérons la fonction F définie par la table de vérité suivante :
Nous en déduisons sa forme canonique somme de produits :
Nous pouvons écrire :
Cependant cette méthode, qui demande astuce et chance, n'est pas toujours très aisée à mettre en
œuvre. Nous allons maintenant décrire une méthode graphique très utile pour un nombre de
variables inférieur à 6.
II.2. Tableaux de Karnaugh
La méthode de simplification de Karnaugh repose sur l'identité :
10
[Architecture et fonctionnement des ordinateurs]
Faculté multi disciplinaire de khouribga
Elle est basée sur l'inspection visuelle de tableaux disposés de façon telle que les cases adjacentes
en ligne et en colonne ne diffèrent que par l'état d'une variable et une seule.
Si une fonction dépend de n variables il y a 2n produits possibles. Chacun de ces produits est
représenté par une case dans un tableau. Les figures suivantes donnent la structure des tableaux de
Karnaugh pour 2, 3, 4 et 5 variables. Pour 5 variables, deux représentations sont possibles. Le
tableau de Karnaugh peut être traités comme deux tableaux 4x4 superposés ou un seul tableau de
4x8. Observez comment sont numérotées les lignes et les colonnes : d'une case à sa voisine une
seule variable change d'état.
Chaque case d'un tableau correspond au seul minterm prenant la valeur 1 pour la combinaison
identifiée par la ligne et la colonne. Par exemple les trois cases coloriées dans les tableaux de la
figure suivante correspondent respectivement aux produits suivants :
Il faut comprendre chaque ligne et chaque colonne comme une structure cyclique continue : chaque
case a toujours quatre voisins qu'il faut éventuellement chercher à l'autre extrémité de la ligne ou de
la colonne. Les tableaux suivants illustrent ce concept, les croix y matérialisent les voisins des cases
coloriées :
11
[Architecture et fonctionnement des ordinateurs]
Faculté multi disciplinaire de khouribga
Dans le cas de la représentation en deux tableaux superposés chaque case a cinq voisins : les quatre
dans le même plan et une dans l'autre plan.
Le passage de la table de vérité au tableau de Karnaugh consiste à remplir chaque case avec la
valeur de la fonction pour le produit correspondant. Il est possible de n'indiquer que les 1.
La méthode de simplification de Karnaugh consiste à rassembler les cases adjacentes contenant des
1 par groupes de 2, 4 ou 8 termes. Considérons en effet le groupement vertical de deux cases, en
rouge, de la figure suivante. Il correspond à la somme de deux termes :
Il est possible de factoriser le produit x y :
La variable t qui prend les deux valeurs 0 et 1 dans le groupement disparaît. Il ne reste que le
produit des variables x et y, qui gardent ici la valeur 1.
Dans un groupement de deux termes on élimine donc la variable qui change d'état et on conserve le
produit des variables qui ne changent pas. Dans un groupement de quatre on élimine les deux
variables qui changent d'état. Dans un groupement de huit on élimine trois variables, etc…
On cherche à avoir le minimum de groupements, chaque groupement rassemblant le maximum de
termes. Une même case peut intervenir dans plusieurs groupements car C + C = C. C'est le cas de la
case jaune sur la figure suivante.
Pour les cases isolées on ne peut éliminer aucune variable. On conserve donc le produit
caractérisant la case. L'expression logique finale est la réunion des groupements après élimination
des variables qui changent d'état.
Prenons l'exemple d'une fonction F définie par la table de vérité suivante :
x
0
0
0
0
1
1
1
1
y
0
0
1
1
0
0
1
1
z
0
1
0
1
0
1
0
1
F
0
0
0
1
0
1
1
1
La figure suivante donne le tableau de Karnaugh correspondant :
Nous y observons trois groupements de deux termes, nous pouvons écrire pour la fonction :
Considérons une autre fonction F de quatre variables x, y, z et t définie par la table de vérité
suivante :
12
[Architecture et fonctionnement des ordinateurs]
x
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
y
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
z
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
t
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
F
1
0
1
0
0
1
0
0
1
1
1
1
0
1
0
0
Faculté multi disciplinaire de khouribga
La figure suivante donne le tableau de Karnaugh équivalent. Sur cette
figure nous avons également matérialisé les trois groupements
possibles : deux groupements de quatre termes, dont un contenant les
quatre coins, et un groupement de deux termes.
Cette méthode nous permet d'écrire :
13
[Architecture et fonctionnement des ordinateurs]
Faculté multi disciplinaire de khouribga
Chapitre III : La logique combinatoire
I. Addition binaire
I.1. Demi-additionneur
Considérons la cellule symbolisée sur la figure suivante, comptant deux entrées A et B les deux bits
à sommer et deux sorties D le résultat de la somme et C la retenue.
Ce circuit, qui permettrait d'effectuer l'addition des deux bits de plus bas poids est appelé demiadditionneur (Half-Adder). Ecrivons la table de vérité de celui-ci :
Half Adder (HA) : table de vérité
A
0
0
1
1
B
0
1
0
1
C
0
0
0
1
Half Adder (HA) : symbole
D
0
1
1
0
Comme en décimal, nous devons donc tenir compte d'une éventuelle retenue (carry).
Si nous écrivons ces deux fonctions sous leur forme canonique, puis on déduit le schéma
électronique.
I.2.
Additionneur complet
Il faut en fait tenir compte de la retenue des bits de poids inférieurs, un circuit additionneur doit
donc comporter trois entrées et deux sorties, comme représenté sur la figure suivante :
Full Adder (FA) : table de vérité
A
B
R
S
C
0
0
0
0
0
0
0
1
1
0
0
1
0
1
0
0
1
1
0
1
1
0
0
1
0
1
0
1
0
1
1
1
0
0
1
1
1
1
1
1
Full Adder (FA) : symbole
14
[Architecture et fonctionnement des ordinateurs]
Faculté multi disciplinaire de khouribga
Ce serait possible en combinant deux demi-additionneurs comme présenté ci-dessous. En pratique
pour minimiser le nombre de composants, ou de portes dans un circuit intégré, un tel additionneur
est réalisé directement.
Les entrées A et B représentent les bits à additionner et R le report de la retenue de l'addition des
bits de poids inférieurs. La sortie S représente le résultat de la somme et C la retenue. La table de
vérité de ce circuit est la suivante :
Addition en parallèle
L'addition de nombres comptant plusieurs bits peut se faire en série (bit après bit) ou en parallèle
(tous les bits simultanément). La figure suivante montre l'exemple d'un additionneur 4 bits comptant
quatre "Full Adders", montés en parallèle ou en cascade. Chaque additionneur FAi est affecté à
l'addition des bits de poids i. L'entrée correspondant au report de retenue pour FA0 est imposée à 0
(en logique positive). La retenue finale C indique un dépassement de capacité si elle est égale à 1.
Le temps d'établissement du résultat correspondant au temps de propagation des retenues au travers
des diverses cellules. Si δ t est le temps réponse d'une cellule, la sortie S0 et la retenue R0 sont
valables après un retard δ t, la sortie S1 et la retenue R1 ne sont correctes qu'après un retard 2 δ t, et
ainsi de suite.
Addition séquentielle
Dans un additionneur séquentiel chacun des nombres A et B est représenté par un train d'impulsions
synchrones par rapport à un signal d'horloge. L'ordre chronologique d'arrivée des impulsions
correspond à l'ordre croissant des poids : le bit le moins significatif se présentant le premier.
15
[Architecture et fonctionnement des ordinateurs]
Faculté multi disciplinaire de khouribga
Ces impulsions sont injectées sur les deux lignes d'entrée d'un additionneur. A chaque cycle
d'horloge, la retenue provenant des bits de poids inférieurs doit être mémorisée (par exemple, à
l'aide d'une bascule D qui sera étudiée dans le chapitre suivant).
Un additionneur parallèle est plus rapide mais nécessite plus de composants.
II. Le comparateur
On rencontre très souvent la nécessité de comparer deux entiers (A = B, A > B ou A < B). Ecrivons
la table de vérité correspondant à ces trois fonctions de comparaison de 2 bits. La fonction C doit
être égale à 1 si et seulement si A > B, la fonction D si et seulement si A < B et la fonction E si et
seulement si A = B. Ce qui nous donne :
A
0
0
1
1
B
0
1
0
1
C (A > B)
0
0
1
0
D (A < B)
0
1
0
0
E (A = B)
1
0
0
1
Nous en déduisons les expressions logiques de C, D et E :
III. Décodage
Dans un système numérique les instructions, tout comme les nombres, sont transportées sous forme
de mots binaires. Par exemple un mot de 4 bits peut permettre d'identifier 16 instructions différentes
: l'information est codée. Très souvent l'équivalent d'un commutateur à 16 positions permet de
sélectionner l'instruction correspondant à un code. Ce processus est appelé décodage. La fonction de
décodage consiste à faire correspondre à un code présent en entrée sur n lignes une seule sortie
active parmi les N = 2n sorties possibles. A titre d'exemple, nous allons étudier le décodage de la
représentation DCB des nombres.
III.1. Représentation DCB (Décimale Codée Binaire)
Le code DCB (ou en anglais BCD : Binary Coded Decimal)
transforme les nombres décimaux en remplaçant chacun des chiffres
décimaux par 4 chiffres binaires. Cette représentation conserve donc
la structure décimale : unités, dizaines, centaines, milliers, etc…
Chaque chiffre est codé sur 4 bits:
Par exemple le nombre décimal 294 sera codé en DCB : 0010 1001
0100. Ce type de codage permet, par exemple, de faciliter l'affichage
en décimal du contenu d'un compteur. Pour ce faire on peut utiliser
des tubes de Nixie, contenant 10 cathodes ayant chacune la forme
d'un chiffre, ou des afficheurs lumineux à sept segment.
16
Décimal
0
1
2
3
4
5
6
7
8
9
DCB
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
[Architecture et fonctionnement des ordinateurs]
Faculté multi disciplinaire de khouribga
La fonction de chaque décodeur est d'activer une des dix lignes en sortie et une seule en fonction du
code présent sur les quatre entrées. Par exemple, si ce code est égal à 5, la 6ème ligne de sortie est
mise dans l'état 1 et le chiffre 5 est affiché par le tube de Nixie.
La fonction de chacun des transcodeurs est de positionner à 1 les lignes de sortie correspondant aux
segments à allumer selon de code porté par les quatre lignes d'entrée. De manière générale, un
transcodeur fait correspondre à un code A en entrée sur n lignes, un code B en sortie sur m lignes.
III.2.
Décodeur DCB-décimal
Nous allons étudier l'exemple d'un décodeur DCB-décimal. La table de vérité de ce décodeur est
très simple :
D
0
0
0
0
0
0
0
0
1
1
C
0
0
0
0
1
1
1
1
0
0
B
0
0
1
1
0
0
1
1
0
0
A
0
1
0
1
0
1
0
1
0
1
L0
1
L1
L2
L3
L4
L5
L6
L7
L8
L9
1
1
1
1
1
1
1
1
1
17
[Architecture et fonctionnement des ordinateurs]
Faculté multi disciplinaire de khouribga
A chacune des lignes de sortie nous pouvons associer un
produit prenant en compte chacune des quatre entrées ou leur
complément. Ainsi la ligne 5 correspond à :
D'autre part, on souhaite souvent n'activer les lignes de sortie
qu'en présence d'un signal de commande global (strobe ou
enable). Ce signal S est mis en coïncidence sur chacune des
dix portes de sortie. Dans l'exemple suivant, si S est dans
l'état 0 le décodeur est bloqué et tous les sorties sont
également dans l'état 0.
IV. Multiplexage
Le multiplexage est un dispositif qui permet de transmettre sur une seule ligne des informations en
provenance de plusieurs sources ou à destination de plusieurs cibles. La figure suivante en présente
une analogie mécanique avec deux commutateurs à plusieurs positions. Choisir une ligne revient à
définir l'angle du levier ou une adresse.
IV.1. Démultiplexeur
Un démultiplexeur est un circuit comptant une entrée et N sorties et qui met en relation cette entrée
avec une sortie et une seule. Pour pouvoir sélectionner cette sortie il faut également des lignes
d'adressage : le code porté par ces lignes identifie la ligne de sortie à utiliser. Ce circuit est très
proche d'un décodeur. Considérons un démultiplexeur avec quatre lignes de sortie. Il faut deux
lignes d'adresse. Supposons que nous souhaitons également valider les données avec un signal de
contrôle E (pour laisser par exemple le temps aux niveaux d'entrée de se stabiliser). Par convention
nous choisissons de prendre en compte les données pour E = 0.
E
B
A
Y0 Y1 Y2 Y3 Produit
0
0
0
D
0
0
0
0
0
1
0
D
0
0
0
1
0
0
0
D
0
0
1
1
0
0
0
D
1
0
0
0
0
0
0
1
0
1
0
0
0
0
1
1
0
0
0
0
0
1
1
1
0
0
0
0
De cette table nous déduisons le logigramme
suivant :
18
[Architecture et fonctionnement des ordinateurs]
Faculté multi disciplinaire de khouribga
IV.2. Multiplexeur
Un multiplexeur, réalise l'opération inverse. Il sélectionne une entrée parmi N et transmet
l'information portée par cette ligne à un seul canal de sortie. Considérons un multiplexeur à quatre
entrées, donc deux lignes d'adressage, et une ligne de validation. La table de vérité de ce circuit est
donnée par la table suivante :
E
B
A
Y
0
0
0
X0
0
0
1
X1
0
1
0
X2
0
1
1
X3
1
0
0
0
1
0
1
0
1
1
0
0
1
1
1
0
De cette table nous déduisons une expression logique pour la sortie :
Cette expression correspond au schéma suivant :
IV.3. Conversion parallèle-série
Considérons un mot de n bits (par exemple 4) présent en parallèle sur les entrées d'un multiplexeur :
•
•
•
•
X0 ≡ bit correspondant à 20;
X1 ≡ bit correspondant à 21;
X2 ≡ bit correspondant à 22;
X3 ≡ bit correspondant à 23.
Supposons que les lignes d'adresse A et B soient connectées aux sorties d'un compteur de période T,
nous aurons en fonction du temps :
t
[0,T]
[T,2T]
[2T,3T]
[3T,4T]
[4T,5T]
B
0
0
1
1
0
A
0
1
0
1
0
Y
X0
X1
X2
X3
X0
Les bits X0, X1, X2 et X3 se retrouvent en série dans le temps sur la sortie Y du multiplexeur.
V.
Encodage
Nous venons d'étudier le principe du décodage, passons à l'opération inverse ou encodage. Un
encodeur est un système qui comporte N lignes d'entrée et n lignes de sortie. Lorsqu’une des lignes
d'entrée est activée l'encodeur fournit en sortie un mot de n bits correspondant au codage de
l'information identifiée par la ligne activée.
19
[Architecture et fonctionnement des ordinateurs]
Faculté multi disciplinaire de khouribga
Considérons un encodeur transformant un nombre décimal en code DCB. Il comportera donc 10
entrées (0 à 9) et 4 sorties. Nous pouvons par exemple imaginer que chacune des dix lignes d'entrée
peut être reliée à une touche d'un clavier. La table suivante correspond à la table de vérité de cet
encodeur. A partir de cette table nous pouvons écrire les expressions logiques définissant les sorties
à partir des entrées.
W0
1
0
0
0
0
0
0
0
0
0
W1
0
1
0
0
0
0
0
0
0
0
W2
0
0
1
0
0
0
0
0
0
0
W3
0
0
0
1
0
0
0
0
0
0
W4
0
0
0
0
1
0
0
0
0
0
W5
0
0
0
0
0
1
0
0
0
0
W6
0
0
0
0
0
0
1
0
0
0
W7
0
0
0
0
0
0
0
1
0
0
W8
0
0
0
0
0
0
0
0
1
0
W9
0
0
0
0
0
0
0
0
0
1
Y3
0
0
0
0
0
0
0
0
1
1
Y2
0
0
0
0
1
1
1
1
0
0
Y1
0
0
1
1
0
0
1
1
0
0
Y0
0
1
0
1
0
1
0
1
0
1
En effet Y0 est égal à 1 quand la ligne W1 est dans l'état 1, ou la ligne W3, ou la ligne W5, ou la
ligne W7, ou la ligne W9. La ligne Y0 est nulle dans tous les autres cas. Il est possible de réaliser ces
fonctions OU avec des diodes selon le montage de la figure suivante :
20
[Architecture et fonctionnement des ordinateurs]
Faculté multi disciplinaire de khouribga
Chapitre IV : Logique séquentielle
I. Logique séquentielle asynchrone et synchrone
Dans le chapitre précédent portant sur la logique combinatoire nous avons fait abstraction du
temps : les signaux de sortie ne dépendaient que des états des variables d'entrée. Pour les circuits de
logique séquentielle nous devons tenir compte de l'état du système. Ainsi les sorties dépendent des
entrées mais également de l'état du système. Celui-ci dépend aussi des entrées. Si nous notons Q
l'état d'un système séquentiel, X ses entrées et Y ses sorties, nous avons de manière générale :
La logique séquentielle permet de réaliser des circuits dont le comportement est variable avec le
temps. L'état d'un système constitue une mémoire du passé.
Lorsque les changements d'état des divers composants d'un circuit séquentiel se produisent à des
instants qui dépendent des temps de réponse des autres composants et des temps de propagation des
signaux on parle de logique séquentielle asynchrone. Cependant les retards peuvent ne pas être
identiques pour toutes les variables binaires et conduire à certains aléas. Ceux-ci peuvent être évités
en synchronisant la séquence des diverses opérations logiques sur les signaux périodiques provenant
d'une horloge. La logique séquentielle est alors dite synchrone : tous les changements d'état sont
synchronisés sur un signal de contrôle.
Nous commençons notre étude par celle des bascules, éléments de base des circuits séquentiels.
Puis nous étudierons les registres et les compteurs.
II. Les bascules
Une bascule (flip-flop) a pour rôle de mémoriser une information élémentaire. C'est une mémoire à
1 bit. Une bascule possède deux sorties complémentaires, notées :
II.1. Les bascules R-S
Les verrous les plus fréquemment rencontrés sont réalisés avec deux portes NOR ou NAND.
Considérons dans un premier temps le circuit suivant :
S
R
Q
0
0
Q
1
0
1
0
1
1
1
0
0
Sorties inchangées
0
1
0
Set : Remise à Un : RAU
Reset : Remise à Zéro : RAZ
A proscrire
Si on applique S = 1 et R = 0 ou S = 0 et R = 1 on impose l'état de la sortie Q respectivement à 1 ou
à 0, l'autre sortie prenant la valeur complémentaire. Cet état se maintient lorsque les deux entrées
retournent à 0. La configuration S = R = 1 est à proscrire car ici elle impose les deux sorties dans
l'état 0, ce qui est inconsistant logiquement avec notre définition. Mais surtout, lorsque R et S
reviennent à 0, l'état obtenu étant incompatible avec les interconnexions, l'une de ces deux sorties va
reprendre l'état 1, mais il est impossible de prédire laquelle : la configuration S = R = 1 conduit à
21
[Architecture et fonctionnement des ordinateurs]
Faculté multi disciplinaire de khouribga
une indétermination de l'état des sorties et est donc inutilisable. La représentation symbolique d'une
bascule R-S est la suivante :
Il lui correspond la table de vérité suivante :
S
R
0
0
1
1
Q
1
0
1
0
1
1
0
1
0
1
0
0
1
0
1
Q
0
1
1
L'utilisation des deux inverseurs sur les lignes d'entrée nous permet de retrouver une table de vérité
comparable à celle de la bascule R-S précédente.
II.2. Bascule R.S.T ou R.S.Clock
La bascule R.S.T. est une bascule pour laquelle les entrées S et R ne sont prises en compte qu'en
coïncidence avec un signal de commande. Ce signal peut être fourni par une horloge, nous avons
alors une bascule synchrone. Ce circuit peut être réalisé de la façon suivante.
Représentation symbolique
Lorsque le signal de commande, noté ici Clk, est à 1 la bascule fonctionne comme indiqué
précédemment et les sorties suivent les variations des entrées S et R. Par contre, lorsque le signal de
commande est à 0, la bascule est bloquée : Q est indépendant des éventuels changements de S et R.
L'état mémorisé correspond au dernier état avant le passage de la ligne de commande de 1 à 0.
Dans un système synchrone le signal de commande est fourni par une horloge (clock). Celui-ci est
constitué par une succession périodique d'impulsions de largeur tp, supposée petite devant la
période T. L'état de chacune des sorties restera donc bloqué pendant les intervalles séparant deux
impulsions. Nous notons Qn la valeur de la sortie Q pendant le nième intervalle précédant la nième
impulsion et Qn+1 la valeur correspondante dans l'intervalle suivant la nième impulsion :
22
[Architecture et fonctionnement des ordinateurs]
Faculté multi disciplinaire de khouribga
Considérons l'instant t = nT + ε, où Clk = 1. Si S = R = 0, la sortie Q ne change pas donc Qn+1 = Qn.
Si S = 1 et R = 0 alors la sortie Q est forcée à 1. Si R = 1 et S = 0 alors la sortie Q est mise à 0. Si
S = R = 1 alors les deux sorties sont toutes les deux à 1. Cet état est instable et Sn Rn Qn+1
ne persiste pas lorsque le signal de commande revient à 0. L'état final sera
0
0
Qn
indéterminé, dépendant des vitesses relatives des portes. Cette situation ne doit
0
1
pas être autorisée. L'état Q reste ensuite figé jusqu'à (n+1)T. Si nous notons Sn 1
1
0
et Rn les valeurs de S et R juste avant l'instant t = nT nous pouvons écrire la 0
1
1
?
table de vérité :
II.3. Bascules J-K
La bascule J-K permet de lever l'ambiguïté que nous avons observé lorsque R = S = 1. Ceci peut
être obtenu en asservissant les entrées R et S aux sorties selon le schéma logique suivant :
Nous avons alors pour les signaux R et S :
Jn
Kn
Qn
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
1
0
1
0
1
0
1
0
S
R
Qn+1
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
1
0
1
0
0
1
1
1
0
Nous constatons que nous ne rencontrons jamais la combinaison R = S = 1. Cette table peut se
résumer sous la forme suivante :
La figure suivante explicite le diagramme logique d'une bascule J-K. Le rôle des entrées Pr et Cr
sera étudié dans le prochain paragraphe.
Jn
0
0
1
1
Kn
0
1
0
1
Qn+1
Qn
0
1
A partir de la table précédente nous pouvons construire la table de transition de la bascule J-K.
Celle-ci donne les états dans lesquels doivent se trouver les entrées J et K pour obtenir chacune des
quatre transitions possibles de la sortie Q. Une croix indique que l'état de l'entrée considérée est
indifférent : 0 ou 1. Par exemple, pour obtenir la transition 0 → 1 de la sortie Q il faut que l'entrée J
soit dans l'état 1, quelque soit l'état de l'entrée K. En effet, nous pouvons avoir J = K = 1 qui inverse
l'état de la bascule ou J = 1 et K = 0 qui charge 1 dans la bascule.
23
[Architecture et fonctionnement des ordinateurs]
Qn
0
0
1
1
Qn+1
0
1
0
1
Faculté multi disciplinaire de khouribga
Jn
0
1
X
X
Kn
X
X
1
0
Comme les deux entrées ne sont jamais spécifiées simultanément il est possible de choisir pour
simplifier l'égalité des deux entrées : J = K
On utilise parfois l'expression logique donnant Qn+1 en
fonction de Jn, Kn et Qn. Pour cela nous pouvons par exemple
construire le tableau de Karnaugh à partir de la table de vérité
bascule J-K :
de la
D'où nous tirons l'équation caractéristique qui exprime l'état futur en fonction de l'état présent et des
entrées :
II.4. Preset et Clear (Reset)
Les entrées asynchrones (car à utiliser en absence de signal d'horloge) Pr (Preset)
et Cr (Clear) permettent d'assigner l'état initial de la bascule, par exemple à la
mise sous tension pour éviter tout aléa. En fonctionnement normal ces deux
entrées doivent être maintenues à 1. Lorsque le signal d'horloge est à 0 nous avons
la table de vérité suivante :
Pr
1
0
1
Cr
1
1
0
Q
Q
1
0
La figure suivante donne la représentation symbolique d'une bascule J-K avec les entrées Preset et
Clear.
II.5. Bascules D
Bascule D de type maître-esclave
Une bascule D (Delay) est obtenue à partir d'une bascule JK en envoyant simultanément une donnée sur l'entrée J et
son inverse sur l'entrée K :
A partir de la table de vérité d'une bascule J-K nous pouvons écrire :
24
[Architecture et fonctionnement des ordinateurs]
Faculté multi disciplinaire de khouribga
Ce qui peut se résumer par Qn+1 = Dn. Ainsi l'état de la bascule Q
pendant l'intervalle n+1 est égal à la valeur de l'entrée D pendant
l'intervalle n. Une bascule D agit comme une unité à retard pour
laquelle la sortie suit l'entrée avec un cycle de retard. Sa
représentation symbolique est :
Bascule D à commande sur front montant
Dans ce deuxième type de bascule D c'est la valeur de
l'entrée D présente au moment de la transition 0 → 1 du
signal d'horloge qui est chargée dans la bascule. Ensuite,
que H soit égal à 1 ou à 0, la bascule est isolée de
l'extérieur jusqu'au prochain front montant du signal H.
L'entrée doit être stabilisée un peu avant la transition de H
et conserver cette valeur un certain temps après.
Considérons le circuit schématisé sur la figure précédente,
dont la représentation symbolique est :
III. Registres
III.1. Registre de mémorisation
Un registre permet la mémorisation de n bits. Il est donc constitué de n bascules, mémorisant
chacune un bit. L'information est emmagasinée sur un signal de commande et ensuite conservée et
disponible en lecture. La figure suivante donne un exemple de registre 4 bits réalisé avec quatre
bascules D.
25
[Architecture et fonctionnement des ordinateurs]
Faculté multi disciplinaire de khouribga
En synchronisme avec le signal d'écriture W le registre mémorise les états des entrées E0, E1, E2 et
E3. Ils sont conservés jusqu'au prochain signal de commande W. Dans cet exemple les états
mémorisés peuvent être lus sur les sorties Q0, Q1, Q2 et Q3 en coïncidence avec un signal de
validation R.
III.2. Registre à décalage
Dans un registre à décalage les bascules sont interconnectées de façon à ce que l'état logique de la
bascule de rang i puisse être transmis à la bascule de rang i+1 quand un signal d'horloge est
appliqué à l'ensemble des bascules. L'information peut être chargée de deux manières dans ce type
de registre.
Entrée parallèle : comme dans le cas d'un registre de mémorisation. En général une porte
d'inhibition est nécessaire pour éviter tout risque de décalage pendant le chargement parallèle
Entrée série : l'information est présentée séquentiellement bit après bit à l'entrée de la première
bascule. A chaque signal d'horloge un nouveau bit est introduit pendant que ceux déjà mémorisés
sont décalés d'un niveau dans le registre. La figure suivante schématise le chargement d'un registre
4 bits en quatre coups d'horloge.
De même l'information peut être lue en série ou en parallèle. D'autre part, certains registres peuvent
être capables de décaler à gauche et à droite. Un registre à décalage universel serait donc constitué
des entrées, des sorties et des commandes suivantes :
Généralement on utilise des bascules du type maître-esclave D ou R-S.
26
[Architecture et fonctionnement des ordinateurs]
Faculté multi disciplinaire de khouribga
Entrée série - Sortie parallèle
La figure suivante donne un exemple de registre de 4 bits à entrée série et sortie parallèle réalisé
avec des bascules D.
Ce type de registre permet de transformer un codage temporel (succession des bits dans le temps)
en un codage spatial (information stockée en mémoire statique).
La sortie série peut également être utilisée. L'intérêt d'utilisation d'un registre à décalage en
chargement et lecture série réside dans la possibilité d'avoir des fréquences d'horloge différentes au
chargement et à la lecture. Le registre constitue alors un tampon.
Entrée parallèle - sortie série
La figure suivante présente un exemple de registre à décalage à entrée parallèle ou série et sortie
série. Si X = 1 l'entrée parallèle est inhibée et l'entrée série est validée. Si X = 0 l'entrée série est
bloquée par contre le chargement par l'entrée parallèle est autorisé.
Un registre à décalage à entrée parallèle et sortie série transforme un codage spatial en codage
temporel.
Entrée parallèle - Sortie parallèle
La figure suivante présente un exemple de registre à décalage avec entrées série et parallèle et
sorties série et parallèle réalisé avec des bascules de type D.
27
[Architecture et fonctionnement des ordinateurs]
Faculté multi disciplinaire de khouribga
La commande permet de sélectionner le mode de chargement et d'inhiber le signal d'horloge en cas
de chargement parallèle. Si X = 0 nous avons Pr = Cr = 1, ce qui garantit le fonctionnement normal
des bascules. Si X = 1 alors selon l'état de chacune des entrées nous avons :
Registre à décalage à droite et à gauche
La dernière figure présente un exemple de registre à décalage universel de 4 bits. Les diverses
possibilités sont sélectionnées par les lignes commande S0 et S1. Considérons la ligne transportant le
signal d'horloge aux bascules, elle est gouvernée par l'expression logique :
Le signal d'horloge sera donc inhibé si S0 = S1 = 0.
Pour sélectionner le chargement parallèle (entrées A, B, C et D) il faut :
C'est-à-dire S0 = S1 = 1. Le chargement se fera sur un signal d'horloge.
Pour sélectionner le décalage à droite (entrée E1, sortie QD) il nous faut S0 = 1 et S1 = 0 et pour le
décalage à gauche (entrée E0, sortie QA) S0 = 0 et S1 = 1. Ce que nous pouvons résumer dans le
tableau suivant :
S0
0
0
1
1
S1
0
1
0
1
Fonction
Registre bloqué
Décalage à gauche
Décalage à droite
Chargement parallèle
Un registre à décalage à droite et à gauche permet d'effectuer des multiplications et des divisions
entières par des puissances de 2. En effet une multiplication par 2 est équivalente à un décalage vers
la gauche et une division par 2 à un décalage vers la droite. Une multiplication par 2n sera obtenue
par n décalages à gauche et une division par 2n par n décalages à droite.
28
[Architecture et fonctionnement des ordinateurs]
IV.
Faculté multi disciplinaire de khouribga
Compteurs
Un compteur est un ensemble de n bascules interconnectées par des portes logiques. Ils peuvent
donc mémoriser des mots de n bits. Au rythme d'une horloge ils peuvent décrire une séquence
déterminée c'est-à-dire occuper une suite d'états binaires. Il ne peut y avoir au maximum que 2n
combinaisons. Ces états restent stables et accessibles entre les impulsions d'horloge. Le nombre
total N des combinaisons successives est appelé le modulo du compteur. On a N ≤ 2n. Si N < 2n un
certain nombre d'états ne sont jamais utilisés.
Les compteurs binaires peuvent être classés en deux catégories :
• les compteurs asynchrones;
• les compteurs synchrones.
De plus on distingue les compteurs réversibles ou compteurs-décompteurs.
IV.1. Compteurs asynchrones
Un compteur asynchrone est constitué de n bascules J-K fonctionnant. Le signal d'horloge n'est reçu
que par le premier étage. Pour chacune des autres bascules le signal d'horloge est fourni par une
sortie de la bascule de rang immédiatement inférieur.
Considérons par exemple un compteur modulo 8 suivant le code binaire pur constitué de trois
bascules J-K:
Supposons les trois bascules à zéro à l'instant t = 0. Nous avons vu que pour une bascule maîtreesclave la sortie change d'état juste après le passage du signal d'horloge de l'état 1 à l'état 0 (front
descendant). L'évolution temporelle des trois sorties Q0, Q1 et Q2 par rapport aux impulsions
d'horloge est représentée sur la figure suivante. La sortie Q0 bascule sur chaque front descendant du
signal d'horloge. La sortie Q1 change d'état à chaque transition 1 → 0 de la sortie Q0. De même le
basculement de la sortie Q2 est déclenché par une transition 1 → 0 de la sortie Q1.
A partir de ce chronogramme nous pouvons
écrire la liste des états successifs des trois
sorties :
Impulsion
état initial
1
2
3
4
5
6
7
8
29
Q2
0
0
0
0
1
1
1
1
0
Q1
0
0
1
1
0
0
1
1
0
Q0
0
1
0
1
0
1
0
1
0
[Architecture et fonctionnement des ordinateurs]
Faculté multi disciplinaire de khouribga
Nous avons réalisé un compteur s'incrémentant d'une unité à chaque top d'horloge, avec un cycle
de huit valeurs de 0 à 7 (modulo 8).
Nous remarquons que les sorties Q0, Q1 et Q2 fournissent des signaux périodiques dont les
fréquences sont respectivement 2, 4 et 8 fois plus faibles. La division de fréquence constitue une des
applications des compteurs.
Compteur-décompteur asynchrone
Nous obtenons un compteur en déclenchant chaque bascule lorsque celle de rang immédiatement
inférieur passe de l'état 1 à 0. Pour réaliser un décompteur il faut que le changement d'état d'une
bascule intervienne lorsque la bascule de rang immédiatement inférieur passe de l'état 0 à 1. Pour
cela il suffit d'utiliser la sortie complémentaire de chaque bascule pour déclencher la suivante.
On réalise un compteur-décompteur en utilisant un multiplexeur 2 entrées - 1 sortie entre chaque
étage pour sélectionner la sortie à utiliser. Pour l'exemple présenté sur la figure suivante, selon l'état
de la ligne de commande X nous pouvons sélectionner le mode de comptage :
•
•
X = 1 ⇒ compteur;
X = 0 ⇒ décompteur.
Remise à Zéro et chargement d'un compteur
La figure suivante présente un exemple de montage permettant de remettre à zéro un compteur ou
de le charger avec une valeur déterminée. Pour cela on utilise les entrées asynchrones des bascules.
En fonctionnement normal du compteur nous devons avoir : DS = R = 1. Nous avons alors :
J = K = Pr = Cr = 1 sur chaque bascule du compteur.
Pour RAZ : R = 0
⇒ J = K = 0 Interdit tout basculement sur une impulsion du signal Clk;
⇒ (Pr = 1, Cr = 0) ⇒ Q = 0.
Chargement : (DS = 0, R = 1)
⇒ J = K = 0 Interdit tout basculement sur une impulsion du signal Clk;
D = 0 ⇒ (Pr = 1, Cr = 0) ⇒ Q = 0
D = 1 ⇒ (Pr = 0, Cr = 1) ⇒ Q = 1
30
[Architecture et fonctionnement des ordinateurs]
Faculté multi disciplinaire de khouribga
Dans ces deux cas nous obtenons Q = D. Nous sommes donc capables de charger chaque bit du
compteur avec une valeur donnée à présenter sur l'entrée D, donc d'initialiser le compteur.
Compteur à cycle incomplet
On peut souhaiter compter jusqu'à un nombre N qui ne soit pas une puissance de 2, par exemple 10
(système décimal). Pour cela on utilise un compteur de n bascules, tel que 2n > N. On lui ajoute un
asservissement de l'entrée Clear pour remettre le compteur à zéro tous les N coups.
Considérons par exemple un compteur modulo 10. Nous voulons que l'entrée Clear soit à 0 lorsque
le compteur atteint 1010 = 10102. Pour cela nous pouvons écrire l'expression logique :
En fait dans ce cas particulier nous pouvons simplifier cette relation logique en ne tenant compte
que des sorties à 1 dans l'expression binaire de N. En effet il ne peut y avoir ambiguïté : toute
combinaison contenant les mêmes sorties à 1 et au moins une autre à 1 correspond à un nombre plus
grand que N et ne peut être rencontrée dans la séquence décrite par le compteur. Pour un compteur
modulo 10 nous pouvons donc utiliser :
ce qui nous conduit au schéma suivant :
31
[Architecture et fonctionnement des ordinateurs]
Faculté multi disciplinaire de khouribga
Inconvénients des compteurs asynchrones
Comme chaque bascule a un temps de réponse le signal d'horloge ne parvient pas simultanément sur
toutes les bascules. Ceci a pour conséquence de provoquer des états transitoires qui peuvent être
indésirables. Supposons le même temps de réponse tr pour toutes les bascules. Considérons la
chronologie du passage d'un compteur asynchrone 4 bits de 0111 à 1000. Celle-ci est présentée sur
la figure suivante. Nous constatons que le compteur passe par les états transitoires 0110, 0100 et
0000 qui sont faux. Ceci est un inconvénient rédhibitoire chaque fois que le compteur est exploité
par des organes rapides.
IV.2. Compteurs synchrones
Dans un compteur synchrone toutes les bascules reçoivent en parallèle le même signal d'horloge.
Pour faire décrire au compteur une séquence déterminée il faut à chaque impulsion d'horloge définir
les entrées synchrones J et K. Pour cela on utilise la table de transition de la bascule J-K. Nous
avons déjà remarqué que cette table peut se simplifier. En effet, pour chacune des quatre transitions
possibles une seule des entrées J ou K est définie. Rien ne nous interdit donc de les mettre dans le
même état, c'est-à-dire J = K, comme dans une bascule T.
Prenons l'exemple d'un compteur synchrone 3 bits fonctionnant selon le code binaire pur. Nous
pouvons dresser un tableau précisant les valeurs des entrées J et K permettant d'obtenir chaque
transition (passage d'une ligne à la suivante). Pour qu'une bascule change d'état il faut que ses deux
entrées soient à 1.
# top
0
1
2
3
4
5
6
7
8
Q2
0
0
0
0
1
1
1
1
0
Q1
0
0
1
1
0
0
1
1
0
Q0
0
1
0
1
0
1
0
1
0
J2 = K2
0
0
0
1
0
0
0
1
32
J1 = K1
0
1
0
1
0
1
0
1
J0 = K0
1
1
1
1
1
1
1
1
[Architecture et fonctionnement des ordinateurs]
Faculté multi disciplinaire de khouribga
Chaque ligne de cette table correspond à une même tranche de temps. Il est assez facile d'en déduire
les expressions logiques reliant les entrées aux sorties :
De manière générale nous pouvons vérifier que les équations de commutation satisfont les relations
de récurrence suivantes :
ou encore :
Procédons de même pour réaliser un décompteur, nous écrivons la table des transitions
recherchées :
# top
0
1
2
3
4
5
6
7
8
Q2
1
1
1
1
0
0
0
0
0
Q1
1
1
0
0
1
1
0
0
0
Q0
1
0
1
0
1
0
1
0
0
J2 = K2
1
0
0
0
1
0
0
0
J1 = K1
1
0
1
0
1
0
1
0
J0 = K0
1
1
1
1
1
1
1
1
Nous en déduisons l'expression logique des entrées d'un décompteur :
Nous constatons que les équations de commutation sont identiques en utilisant cette fois les sorties
complémentaires.
Aux deux manières d'exprimer les relations de récurrence des équations de commutation
correspondent deux types de circuits. Le premier est dit à report parallèle, le second à report série.
33
[Architecture et fonctionnement des ordinateurs]
Faculté multi disciplinaire de khouribga
Dans le report série on utilise la fonction Ji-1. On évite ainsi des portes à multiples entrées. Par
contre, il faut tenir compte du retard dans l'établissement de Ji-1. Il faut donc que la largeur des
impulsions d'horloge soit assez grande et la vitesse maximum de fonctionnement sera plus faible
que pour le report parallèle.
Les deux schémas présentés correspondent à des compteurs-décompteurs (X = 0 ⇒ compteur,
X = 1 ⇒ décompteur).
34
[Architecture et fonctionnement des ordinateurs]
Faculté multi disciplinaire de khouribga
Chapitre V : Mémoires et Processeur
Nous savons que dans un ordinateur toutes les informations : valeur numérique, instruction,
adresse, symbole (chiffre, lettre,…) etc… sont manipulées sous une forme binaire. Ces informations
doivent en général être conservées pendant un certain temps pour permettre leur exploitation. Ce
rôle est dévolu aux mémoires chargées de conserver programmes, données provenant de l'extérieur,
résultats intermédiaires, données à transférer à l'extérieur, etc. Nous avons déjà rencontré les
registres de mémorisation, mais ceux-ci ne sont pas adaptés aux grandes capacités de stockage.
I. Les mémoires
I.1. Présentation de la mémoire
On appelle « mémoire » tout composant électronique capable de stocker temporairement des
données. On distingue ainsi deux grandes catégories de mémoires :
•
la mémoire centrale (appelée également mémoire interne) permettant de mémoriser
temporairement les données lors de l'exécution des programmes. La mémoire centrale est réalisée
à l'aide de micro-conducteurs, c'est-à-dire des circuits électroniques spécialisés rapides. La
mémoire centrale correspond à ce que l'on appelle la mémoire vive.
•
la mémoire de masse (appelée également mémoire physique ou mémoire externe) permettant
de stocker des informations à long terme, y compris lors de l'arrêt de l'ordinateur. La mémoire de
masse correspond aux dispositifs de stockage magnétiques, tels que le disque dur, aux dispositifs
de stockage optique, correspondant par exemple aux CD-ROM ou aux DVD-ROM, ainsi qu'aux
mémoires mortes.
Extérieurement, et en ne tenant compte que des signaux logiques, un bloc mémoire peut être
représenté comme sur la figure suivante. Pour pouvoir identifier individuellement chaque mot on
utilise k lignes d'adresse. La taille d'un bloc mémoire est donc 2k, le premier mot se situant à
l'adresse 0 et le dernier à l'adresse 2k - 1. Une ligne de commande (R/W) indique si la mémoire est
accédée en écriture (l'information doit être mémorisée) ou en lecture (l'information doit être
restituée). Sur ce schéma on distingue deux canaux de n lignes en entrée et en sortie, mais dans
d'autres cas les accès en entrée et en sortie peuvent être confondus en un seul canal bidirectionnel.
Nous verrons l'intérêt de la ligne de validation ou de sélection du bloc (CS) un peu plus loin.
Parmi les caractéristiques d'une mémoire nous trouvons la capacité et le format. La capacité
représente le nombre total de bits et le format correspond à la longueur des mots. Le nombre de bits
35
[Architecture et fonctionnement des ordinateurs]
Faculté multi disciplinaire de khouribga
d'adresse k définit le nombre total de mots de la mémoire, si n est le nombre de bits par mot, la
capacité de la mémoire est donnée par :
Capacité = 2k mots = 2k x n bits
Cette capacité est exprimée en multiple de 1024 ou kilo. La table suivante résume la valeur des
autres préfixes utilisés pour exprimer les capacités des mémoires :
I.2.
Symbole
Préfixe
Capacité
1k
(kilo)
210
=
1024
1M
(méga)
220
=
1048576
1G
(giga)
230
=
1073741824
1T
(tera)
240
=
1099511627776
Caractéristiques techniques
Les principales caractéristiques d'une mémoire sont les suivantes :
• La capacité, représentant le volume global d'informations (en bits) que la mémoire peut
stocker ;
• Le temps d'accès, correspondant à l'intervalle de temps entre la demande de lecture/écriture
et la disponibilité de la donnée ;
• Le temps de cycle, représentant l'intervalle de temps minimum entre deux accès successifs ;
• Le débit, définissant le volume d'information échangé par unité de temps, exprimé en bits
par seconde ;
• La non volatilité caractérisant l'aptitude d'une mémoire à conserver les données lorsqu'elle
n'est plus alimentée électriquement.
Ainsi, la mémoire idéale possède une grande capacité avec des temps d'accès et temps de cycle très
restreints, un débit élevé et est non volatile.
Néanmoins les mémoires rapides sont également les plus onéreuses. C'est la raison pour laquelle
des mémoires utilisant différentes technologiques sont utilisées dans un ordinateur, interfacées les
unes avec les autres et organisées de façon hiérarchique.
I.3.
Types de mémoires
Mémoire vive
La mémoire vive, généralement appelée RAM (Random Access
Memory, traduisez mémoire à accès direct), est la mémoire
principale du système, c'est-à-dire qu'il s'agit d'un espace
permettant de stocker de manière temporaire des données lors de
l'exécution d'un programme.
En effet, contrairement au stockage de données sur une mémoire
de masse telle que le disque dur, la mémoire vive est volatile,
c'est-à-dire qu'elle permet uniquement de stocker des données
36
[Architecture et fonctionnement des ordinateurs]
Faculté multi disciplinaire de khouribga
tant qu'elle est alimentée électriquement. Ainsi, à chaque fois que l'ordinateur est éteint, toutes les
données présentes en mémoire sont irrémédiablement effacées.
Mémoire morte
La mémoire morte, appelée ROM pour Read Only Memory (traduisez mémoire en lecture seule) est
un type de mémoire permettant de conserver les informations qui y sont contenues même lorsque la
mémoire n'est plus alimentée électriquement. A la base ce type de mémoire ne peut être accédée
qu'en lecture. Toutefois il est désormais possible d'enregistrer des informations dans certaines
mémoires de type ROM.
Les ROM ont petit à petit évolué de mémoires mortes figées à des mémoires programmables, puis
reprogrammables.
ROM : Les premières ROM étaient fabriquées à l'aide d'un procédé inscrivant directement les
données binaires dans une plaque de silicium grâce à un masque. Ce procédé est maintenant
obsolète.
PROM : Les PROM (Programmable Read Only Memory) ont été mises au point à la fin des années
70 par la firme Texas Instruments. Ces mémoires sont des puces constituées de milliers de fusibles
(ou bien de diodes) pouvant être "grillés" grâce à un appareil appelé « programmateur de ROM »,
appliquant une forte tension (12V) aux cases mémoire devant être marquées. Les fusibles ainsi
grillés correspondent à des 0, les autres à des 1.
EPROM : Les EPROM (Erasable Programmable Read Only Memory) sont des PROM pouvant
être effacées. Ces puces possèdent une vitre permettant de laisser passer des rayons ultra-violets.
Lorsque la puce est en présence de rayons ultra-violets d'une certaine longueur d'onde, les fusibles
sont reconstitués, c'est-à-dire que tous les bits de la mémoire sont à nouveau à 1. C'est pour cette
raison que l'on qualifie ce type de PROM d'effaçable.
EEPROM : Les EEPROM (Electrically Erasable Read Only Memory) sont aussi des PROM
effaçables, mais contrairement aux EPROM, celles-ci peuvent être effacées par un simple courant
électrique, c'est-à-dire qu'elles peuvent être effacées même lorsqu'elles sont en position dans
l'ordinateur.
Mémoire flash
La mémoire flash est un compromis entre les mémoires de type RAM et les mémoires mortes. En
effet, la mémoire Flash possède la non-volatilité des mémoires mortes tout en pouvant facilement
être accessible en lecture ou en écriture. En contrepartie les temps d'accès des mémoires flash sont
plus importants que ceux de la mémoire vive.
II. Les bus
Les pus sont des lignes métalliques imprimées sur une carte électronique et qui servent à transporter
les signaux d’information.
Il existe 3 types de bus :
Bus d’adresse : le bus d’adresse est une voie unidirectionnelle qui sert à envoyer un code d’adresse
à la mémoire et aussi à communiquer avec les dispositifs extérieurs. Plus ce bus est large, plus son
espace d’adressage est important, càd qu’il peut adresser plus de mémoire.
Bus de données : il sert à acheminer les données à traiter par le microprocesseur. Dons toute
information entrante ou sortante doit forcément passer par le bus de données. C pour cela ca bus est
bidirectionnel.
37
[Architecture et fonctionnement des ordinateurs]
Faculté multi disciplinaire de khouribga
Bus de commande : il sert à coordonner toutes les échanges d’informations. Comme les signaux de
validation de la mémoire et les signaux de sélection d’opération d’E/S. le bus de commande
comporte des lignes individuelles (chaque ligne a un rôle bien défini). Par exemple, il permet
d’introduire des délais d’attente lorsque les informations sont envoyées à un périphérique qui a une
vitesse de traitement réduite. Le bus de commande évite les conflits lorsque deux périphériques
cherchent à communiquer simultanément.
III. L’adressage mémoire
Les but de l’adressage mémoire est tout simplement la fabrication des différents signaux, par
exemple : les lignes d’adresse nécessaires pour communiquer avec la mémoire, le signal
d’activation de la mémoire (CS) et les commandes d’écriture et de lecture. Le schéma suivant
montre le dialogue entre ma mémoire et le microprocesseur.
Bus de commande
Avant de procéder au câblage de différents composants de ce schéma nous devrons être en mesure
de connaitre le nombre de lignes à utiliser pour les bus d’adresse, commande et données. Pour le
bus d’adresse, ceci implique à connaitre l’espace adressable par le microprocesseur (on l’appelle
espace d’adressage ou champ adressable), il représente l’ensemble des emplacements mémoire que
le microprocesseur peut identifier d’une façon unique. Prenons l’exemple d’un µP qui a 8 bits de
données et 16 bits d’adresse, donc l’espace adressable de ce µP est 216 = 64 Ko.
Première adresse
A15 A14 A13 A12
A11 A10 A9 A8
A7 A6 A5 A4
A3 A2 A1 A0
0 0
0 0 0 0
0 0 0 0
0 0 0 0 = (0000)H
0 0
Champ d’adresse
Dernière adresse
1 1
1 1
1 1 1 1
1 1 1 1
1 1 1 1 = (1111)H
Et pour les différents mémoires, on doit savoir leur capacité (c.à.d. le nombre de lignes d’adresse
qu’elle possède), pour savoir combien de lignes d’ adresse du µP vont être utilisées pour chaque
boitier de mémoire.
38
[Architecture et fonctionnement des ordinateurs]
Faculté multi disciplinaire de khouribga
Exemple :
Soit à réaliser un schéma de liaison d’un µP qui a comme espace adressable de 64 Ko et deux
mémoires M1 et M2 de capacités respectives de 2 Ko. M1 est adressée à partir de l’adresse (0000)
H, la deuxième mémoire est adressée à partir de la dernière adresse de M1 plus 1. L’information
échangée entre le µP et les mémoires est de 8 bits.
On a
2Ko=211 octets
Alors l’espace adressage de la mémoire M1 est de (0000)H à (07FF)H
Et la deuxième mémoire M1 de (0800)H à (0FFF)H
Alors :
A15 A14 A13 A12
A11 A10 A9 A8
A7 A6 A5 A4
A3 A2 A1 A0
0 0
0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0
0 0
0 1 1 1
1 1 1 1
1 1 1 1
0 0
0 0
1 0 0 0
0 0 0 0
0 0 0 0
0 0
0 0
1 1 1 1
1 1 1 1
1 1 1 1
M1
M2
On remarque que les lignes A0 à A10 se changent de la même façon pour les deux mémoires M1 et
M2. Par contre, La ligne A11 reste fixée à 0 pour la mémoire M1 et à 1 pour la mémoire M2. Donc
on peut utiliser cette propriété pour sélectionner la mémoire.
Si la ligne A11 est à 0 alors c’est la mémoire M1 qui va être sélectionnée. Sinon La mémoire M2.
Bien sûr en tenant compte de 4 dernières lignes d’adresse qui doivent être à 0.
IV. Les unités d’E/S
Les unités d’E/S sont des interfaces permettant le dialogue entre le µP et les périphériques. Le
schéma suivant montre clairement comment les unités d’E/S sont aussi adressées par le µP.
MREQ
µP
Mémoire
BD
BA
IOR
U E/S
BD
Périphérique
D’après le schéma, on voit que comment on peut connecter les U E/S au µP et au périphériques. On
remarque aussi l’apparition de deux nouveaux signaux : le MREQ et le IOR.
IOR : c’est la commande de dialogue avec l’unité d’E/S.
MREQ : c’est la commande de dialoguer avec une mémoire.
39
[Architecture et fonctionnement des ordinateurs]
Faculté multi disciplinaire de khouribga
Comme pour le cas d’adressage de mémoires, l’adressage des E/S est définit par le bus d’adresse et
le signale IOR.
Avant de réaliser un schéma de liaison entre le µP, les unités d’E/S et la mémoire, il faut s’assurer
que le µP avec lequel on travaille possède les signaux MREQ et IOR.
Sinon (le µP ne possède pas le signale IOR), dans ce cas là, une adresse utilisée par un port d’E/S
ne pourra pas être utilisée par une mémoire, ce qui conduit à une réduction de l’espace d’adressage
mémoire.
Si oui (le µP possède le signale IOR), à ce moment, on aura deux espaces d’adressage qui sont les
mêmes, c.à.d. une adresse pourra être utilisée par un port d’E/S et par une mémoire. Alors,
seulement les ordres MREQ et IOR qui distinguent avec qui les µP va dialoguer.
V. Schéma interne d’un µP
Dans ce schéma on distingue plusieurs éléments importants qui existent à l’intérieur du
microprocesseur.
Compteur ordinal : il contient en permanence l’adresse de la prochaine instruction à exécuter. Il
envoie à la mémoire les adresses des instructions. Il s’incrémente automatiquement lors du passage
d’une instruction à l’autre.
Registre d’état : Ce registre rassemble des bits d’état ou indicateurs qui sont des informations
spécifiques résultants de l’exécution des instructions (retenu, over flow…).
40
[Architecture et fonctionnement des ordinateurs]
Faculté multi disciplinaire de khouribga
Registre d’instruction : toutes les instructions d’un programme sont en mémoire centrale, le µP
ira donc chercher l’instruction en mémoire pour la stocker dans ce registre.
L’accumulateur : il a un rôle très varié au sein du µP :
Il stocke un opérande de l’opération, puis le résultat de à la fin de l’opération traitée par
l’UAL.
Reçoit en générale les données en provenance de la mémoire et destiné à être dirigées vers
un périphérique.
Peut servir de compteur ou de décompteur, car, il peut être incrémenté ou décrémenté par
des instructions.
Reçoit des données à l’extérieur qui vont ensuite rangées en mémoire.
UAL : Elle s’occupe de toutes les opérations arithmétiques et logiques.
Unité de contrôle : C’est tout les circuits de contrôle qui décodent les instructions et les font
exécuter.
VI. Les procédures d’entrée/sortie
Comme on le sait, un µP ne peut commander directement les périphériques. Donc, il est nécessaire
d’avoir une interface qui facilite le dialogue entre le périphérique et le µP. il existe 3 sortes de
procédures d’E/S possibles.
Procédure d’E/S par programme : Elle est facile et très simple, mais elle exige tout le temps
l’existence du périphérique concerné.
En exécutant un programme, le µP n’a qu’à effectuer les instructions d’E/S. cette méthode pénalise
la vitesse du µP du fait qu’elle l’oblige à attendre le périphérique. Dans ce cas, et avant d’effectuer
les opérations d’E/S, le µP teste si le périphérique est prêt à faire le transfère. Donc, tant que le
périphérique n’est pas prêt, le µP doit faire une boucle d’attente.
Procédure d’E/S par demande d’interruption : dans ce cas le µP ne s’occupe pas de vérifier si le
périphérique est prêt ou non. C’est le périphérique lui-même qui signale au µP lorsqu’il est
disponible.
Exemple : Le périphérique concerné est le clavier:
Si aucune touche n’est enfoncée, le µP effectue sa tâche en cours sans tenir compte au clavier.
Alors l’appuie sur une touche de clavier provoque l’envoi d’un signal interprété par le µP comme
une demande d’interruption.
Le µP se branche alors à l’adresse où est logé le sous-programme de lecture du clavier. Mais une
fois le programme est terminé, le µP revient au programme interrompu. Donc, une demande
d’interruption est provoquée par un signale externe totalement asynchrone du fonctionnement du
µP.
Au cours de l’exécution du programme d’interruption, on masque l’arrivée d’autres interruptions
pour ne pas interrompre son déroulement. Donc cette procédure d’E/S a pour avantage
41
[Architecture et fonctionnement des ordinateurs]
Faculté multi disciplinaire de khouribga
l’organisation des processus en temps réel, et aussi l’optimisation de fonctionnement de ces
échanges.
De nombreux problèmes peuvent se poser :
Le µP ne possède qu’une seule entrée d’interruption.
Le µP doit identifier le périphérique demandeur d’interruption.
Dans le cas de plusieurs demandeurs d’interruption, le µP doit savoir l’ordre d’exécution des ces
interruptions simultanées.
Généralement, il y’a plusieurs méthodes pour résoudre ces problèmes. Mais la méthode la plus
adéquate est comme suite :
On utilise un contrôleur de priorité. Le périphérique envoie un signale d’interruption au µP et au
contrôleur de priorité. Le µP génère sur son bus d’adresse une adresse qui n’est pas celle de
programme, mais qui sert à valider le contrôleur de priorité. Et après, on procède à la fabrication de
l’adresse du sous programme d’interruption.
Procédure d’E/S par DMA (Direct Memory Access)
Ce type d’E/S permet le transfère directe des données d’un périphérique vers une mémoire sans
passer par le µP. il existe trois méthodes possibles d’exécution d’un DMA.
DMA par arrêt du µP : le µP est stoppé tant que toutes les données n’ont pas été
transférées. Il effectue une boucle d’attente.
DMA par vol de cycle : une demande de DMA suspend l’horloge du µP. donc il arrêté
pendant quelques cycles. La durée étant limitée, alors la quantité transférée de l’information
est réduite. La durée est limitée tout simplement pour rafraîchir périodiquement les registres
dynamiques du µP.
DMA par multiplexage dans le temps : Le µP et le contrôleur de DMA partagent
périodiquement le bus. Dans cette technique, les données issues d’un périphérique sont
canalisées directement dans la mémoire.
42
Téléchargement
Explore flashcards