Polycopie
Polycopie
Polycopie
Filière d’Informatique
Cours et Exercices
Introduction générale 8
2 Systèmes de numération 17
2.1 Bases de numération . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.1.1 Base décimale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.1.2 Base binaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.1.3 Base octale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.1.4 Base hexadécimale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.2 Conversion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.2.1 De la base décimale vers la base binaire . . . . . . . . . . . . . . . . . . 20
2.2.2 De la base binaire vers la base décimale . . . . . . . . . . . . . . . . . . 20
2.2.3 De la base décimale vers la base hexadécimale . . . . . . . . . . . . . . . 20
2.2.4 De la base décimale vers la base octale . . . . . . . . . . . . . . . . . . . 21
2.2.5 De la base octale / hexadécimale vers la base décimale . . . . . . . . . . 21
2.2.6 De la base octale / hexadécimale vers la base binaire . . . . . . . . . . . 22
2.3 Opérations arithmétiques sur la base binaire . . . . . . . . . . . . . . . . . . . . 22
2.3.1 Addition en binaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.3.2 Multiplication en binaire . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2
TABLE DES MATIÈRES 3
Bibliographie 81
Table des figures
5
6 TABLE DES FIGURES
7
Introduction générale
Objectif du cours
8
9
Organisation du polycopié
Le présent polycopié réalisé conformément au canevas destiné aux étudiants de la première
année PES Informatique, est réparti en cinq chapitres :
— Le premier chapitre présente le principe et l’architecture de la machine de Von Neu-
mann ainsi que son organisation logique.
— Le deuxième chapitre comporte les systèmes de numération. Il aborde les bases de
numération ainsi que les conversions possibles des bases et les opérations arithmétiques
sur la base binaire.
— Le troisième chapitre est consacré à la représentation et codage des informations.
— Le quatrième chapitre illustre les bases fondamentales sur la logique combinatoire et
séquentielle.
— Le cinquième chapitre est réservé pour exposer et faciliter la compréhension de fonc-
tionnement des éléments de l’ordinateur ainsi que les modes d’adressages utilisés.
— Quelques références bibliographiques sont données à la fin de ce manuscrit, grâce aux-
quelles nous avons pu élaborer le présent support.
Remerciements
Il est possible que ce support comporte quelques imperfections, je serais reconnaissante à
tous ceux qui me ferait part de leurs remarques et suggestions.
Finalement, je tiens à exprimer mes remerciements aux professeurs qui ont bien voulu le
juger et m’aider à l’améliorer.
Chapitre 1
ARCHITECTURE DE VON NEUMANN
e chapitre se concentre sur l’architecture de Von Neumann qui représente une architec-
C ture de base pour tous les ordinateurs d’aujourd’hui qui sont de plus en plus puissants et
rapides. Il est important de noter que la structure des machines récentes reste en règle générale
conforme à celle de la machine de Von Neumann. Le principe ainsi que l’organisation logique
d’une telle architecture sont présentés dans ce chapitre.
Plan
1.1 Principe et Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.2 Notions de programmes, instructions, données . . . . . . . . . . . . . . . . . . . 11
1.3 Organisation logique d’une machine de Von Neumann . . . . . . . . . . . . . . 12
1.3.1 Unité Centrale de Traitement . . . . . . . . . . . . . . . . . . . . . . . . 12
1.3.2 Mémoire Centrale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.3.3 Sous-système des Entrées / Sorties . . . . . . . . . . . . . . . . . . . . . 14
1.3.4 Bus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.5 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
10
1.1. PRINCIPE ET ARCHITECTURE 11
L’UC est composée d’une Unité Arithmétique et Logique (UAL) et d’une Unité de Contrôle
et de Commande (UCC).
— L’unité arithmétique et logique (UAL) réalise les opérations élémentaires (addition,
soustraction, multiplication, . . .). Elle regroupe l’ensemble des composants requis pour
l’exécution des diverses instructions élémentaires et les liens entre ces composants.
— L’unité de contrôle et commande (UCC) gère les opérations sur la mémoire (lec-
ture/écriture) et les opérations à réaliser par l’UAL selon l’instruction en cours d’exécution.
Elle est responsable du séquençage des opérations à exécuter par l’UAL selon des
entrées externes et les résultats des opérations. L’UCC dirige le fonctionnement de
toutes les autres unités de l’ordinateur (UAL, MC, E/S)
Aussi, le processeur possède ses propres unités de stockage d’information, plus rapides
que la mémoire, mais avec une capacité de stockage limitée. C’est un bloc de registres pour
conserver les données à traiter et des résultats précédents de façon à pouvoir combiner toutes
ces valeurs dans de nouveaux calculs par la suite. On trouve :
— Un registre Accumulateur.
— Un registre d’index.
— Un registre de base.
— Des registres généraux pour les calculs intermédiaires (R1, R2, R3, ...).
— Des registres de contrôle ou d’état gérés par la partie contrôle (comme le Registre
d’Instruction RI, le Compteur Ordinal CO, le Stack Pointer SP , le Program Status
Word PSW, . . . ).
Un registre est un emplacement de mémorisation interne à un processeur. Les registres se
situent au sommet de la hiérarchie mémoire : il s’agit de la mémoire la plus rapide d’un ordi-
nateur, mais dont le coût de fabrication est le plus élevé car la place dans un microprocesseur
est limitée.
La mesure de performance des processeurs n’est pas simple. Car la performance d’une
machine peut s’exprimer de différentes manières.
Pour l’utilisateur final, le temps d’exécution d’un programme, de son début à sa fin,
comprend le temps UC, les accès mémoires, les E/S et le temps utilisé pour les besoins
du système d’exploitation. Par conséquent, cela dépend des performances de l’ensemble des
composantes matérielles et logicielles du système.
Le temps d’exécution d’un programme sur une unité centrale exprimé en M ips (Millions
d’instructions par seconde) est donné comme suit :
TE = NI . CPI . Tc
avec
TE : Temps d’exécution.
14 CHAPITRE 1. ARCHITECTURE DE VON NEUMANN
Ce sont les accessoires qui sont reliés à la machine pour faire entrer et recevoir les infor-
mations à traiter et diffuser les résultats une fois le traitement est terminé.
Principalement, on cite les unités d’entrée comme le clavier, la souris, le scanner et les
unités de sortie comme l’écran et l’imprimante.
On trouve aussi des unités qui sont dites d’entrée et de sortie en même temps comme les
périphériques de stockage par exemple.
1.3.4 Bus
Les bus représentent les composants qui permettent de véhiculer les informations (données,
adresses, commandes) entre les différents éléments de l’ordinateur. Certaines architectures
représentent un bus unique pour les trois types d’information, mais dans d’autres machines,
on trouve des bus pour chacune des d’informations citées précédemment.
Bus de données
Il permet la circulation des données, y compris les instructions d’un programme entre un
processeur et la mémoire.
1.4. CONCLUSION 15
Bus d’adresses
Il permet de véhiculer l’adresse qui désigne à chaque instant une information (opérande
ou instruction) dans un espace mémoire.
Bus de commande
1.4 Conclusion
L’architecture proposée par Von Neumann est un modèle pour un ordinateur de base qui
utilise une unité de sauvegarde pour conserver les instructions et les données requises ou
produites par l’unité de calcul.
Ce chapitre a permis de présenter l’architecture d’une machine dite de Von Neumann, ainsi
que les notions de programmes, instructions, et données. L’organisation de cette machine a
été aussi détaillée dans le présent chapitre.
Pour une meilleure compréhension du principe de l’architecture de la machine de Von
Neumann, une série d’exercices est proposée à la fin de ce chapitre.
Le chapitre suivant est consacré à la description des systèmes de numération.
1.5 Exercices
Exercice 01
Exercice 02
Soit une architecture de Von Neumann munie d’un processeur 24 bits (adresse) cadencé à
une fréquence de 2.4 GHz.
1. Dessinez cette architecture en précisant l’emplacement des différents bus et des consti-
tuants de l’unité centrale.
2.Calculez le temps d’un cycle de ce processeur. La lecture d’un bloc 3 octets de la mémoire
vers le processeur se fait en 4 cycles, le traitement des 3 octets par le processeur prend 9 cycles.
16 CHAPITRE 1. ARCHITECTURE DE VON NEUMANN
3. Soit un autre processeur cadencé à 1.3 GHz qui lit 4 octets en 2 cycles et il les traite
en 5 cycles. Combien de temps lui faut-il pour traiter la même quantité de données que le
processeur précédent ? Quel est le processeur le plus rapide ?
Exercice 03
Soit une architecture munie d’un processeur cadencé à 2 GHz, une mémoire centrale de
1 Go ayant un temps d’accès de 20 ns, un temps de cycle mémoire de 25 ns et un format de
données de 32 bits.
Le processeur exécute un programme dans lequel il lit 8 octets en 6 cycles d’horloge et
traite ces 8 octets en 10 cycles d’horloge.
NB : les 6 cycles de lecture représentent un temps supplémentaire pour organiser la donnée
au niveau du processeur.
1. Combien de temps faudra-t-il au processeur pour traiter 1 Go de données ?
2. Combien est le temps d’attente (temps pendant lequel le processeur attend l’arrivée des
données) ?
3. Quel est le taux d’attente par rapport au temps total du traitement ?
4. Que conclure de ce résultat ?
Chapitre 2
Systèmes de numération
17
18 CHAPITRE 2. SYSTÈMES DE NUMÉRATION
2.2 Conversion
La conversion consiste le passage d’une base vers une autre en respectant des règles pour
garder et maintenir la cohérence des informations codées.
20 CHAPITRE 2. SYSTÈMES DE NUMÉRATION
On passe d’un nombre en base 10 à son équivalent en base 8 par des divisions successives
(sur 8). On note les restes des divisions successives puis on lit ces restes en remontant, et on
écrit le résultat de gauche vers la droite, Figure (2.5).
Exemple : convertir le nombre (728)10 en base 8.
Cette conversion consiste à remplacer chaque chiffre octal (ou hexadécimal) par son
équivalent binaire sur 3 (ou 4) bits respectivement.
Exemple 1 : convertir le nombre (17)8 en base 2.
(17)8 = (001111)2 parce que (1)8 = (001)2 et (7)8 = (111)2
Exemple 2 : convertir (2A)16 en base 2.
(2A)16 = (00101010)2 parce que (2)16 = (0010)2 et (A)16 = (1010)2
On multiplie les nombres binaires de la même façon qu’on multiplie les nombres décimaux,
voir Figure (2.7).
1x1=1
1x0=0
0x1=0
0x0=0
La soustraction d’un nombre binaire (le diminuteur) d’un autre nombre (le diminuande)
est semblable à la soustraction décimale.
On emprunte le 1 dans le cas où un bit du diminuteur est supérieur à celui de même rang
du diminuande. Cet emprunt sera ajouté au bit du rang suivant du diminuteur, voir Figure
(2.8).
0-0 = 0
1-0 = 1
1-1 = 0
0-1 = 1 avec un emprunt de 1
La division d’un nombre binaire (le dividende) par un autre (le diviseur) est identique à
la division de deux nombres décimaux, voir Figure (2.9)
En réalité, la division en binaire est plus simple puisque pour déterminer combien de fois
le diviseur entre dans le dividende, il n’y a que 2 possibilités 0 ou 1.
2.4 Conclusion
Les informations manipulées par un ordinateur peuvent être de différentes natures (texte,
nombres, etc.), mais elles sont toujours représentées dans l’ordinateur sous forme d’un système
numérique binaire.
Chaque information sera traitée comme une suite de 0 et de 1. L’unité indivisible d’infor-
mation est le chiffre binaire (0 ou 1), que l’on appelle bit (binary digit).
Ce chapitre a été l’occasion de présenter le système de numération utilisé dans un or-
dinateur. Une série d’exercices est donnée à fin de ce chapitre pour mieux comprendre le
cours.
Le codage des informations à l’intérieur de la machine est présenté dans le chapitre suivant.
2.5 Exercices
Exercice 01
Exercice 02
Exercice 03
Effectuez les opérations suivantes
1. 10110 * 101 =
2. 10111 + 10010 =
3. 1101 - 110 =
4. 1011 + 110 =
5. 11001 - 0111 =
6. 1011 * 11 =
7. 101100 / 100 =
8. 100100 / 11 =
Exercice 04
Convertissez les nombres suivants vers la base octale
a) 12716 .
b) 30710 .
c) ABC16 .
d) 010100002 .
Chapitre 3
Représentation et codage des informations
26
3.1. REPRÉSENTATION DES NOMBRES ENTIERS NATURELS 27
Un entier naturel est un nombre positif ou nul. Pour représenter un tel nombre, il faut
déterminer le nombre des bits à utiliser pour le coder qui dépend de ce nombre que l’on désire
codifier.
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.
Exemples :
910 = (00001001)2
12810 = (10000000)2
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 que pour un entier positif ou nul, le bit du poids fort est à zéro (0
correspond à un signe positif, 1 correspond à un signe négatif).
Sur 8 bits (1 octet), l’intervalle de codage est [-127, 127].
Sur 16 bits (2 octets), l’intervalle de codage est [-32767, 32767].
Sur 32 bits (4 octets), l’intervalle de codage est [-2147483647 ; 2147483647].
D’une manière générale le plus grand entier relatif positif codé sur N bits sera 2n−1 − 1.
Exemple :
si on code un entier relatif positif sur 4 bits, le nombre le plus grand sera 0111 (c’est-à-dire
7 en base décimale).
28 CHAPITRE 3. REPRÉSENTATION ET CODAGE DES INFORMATIONS
Le principe est de considérer que le bit du poids fort soit réservé pour coder le signe avec :
— 0 → entier positif.
— 1 → entier négatif.
Le Bit du poids fort est le plus à gauche, les autres bits codent le nombre en valeur absolue.
Il est nécessaire de savoir sur combien de bits on code le nombre pour déterminer quel bit
code quoi
Exemple : un codage sur 4 bits :
(0111)2 = 7 car le bit du poids fort est à 0.
(1111)2 = -7 car le bit du poids fort est à 1.
Une représentation d’un nombre en virgule fixe correspondant à une représentation possédant
un nombre fixe de chiffres après la virgule.
3.3. REPRÉSENTATION DES NOMBRES RÉELS 29
La représentation des nombres réels en virgule fixe est utile pour représenter les parties
fractionnaires dans un format utilisant le complément à deux quand le processeur de l’ordi-
nateur ne dispose d’aucune unité de calcul en virgule flottante ou bien quand une virgule fixe
permet d’augmenter la vitesse d’exécution ou d’améliorer l’exactitude des calculs.
Dans ce codage, la partie entière du nombre peut être traduite par des puissances positives
de 2, et la partie fractionnaire va se traduire par des puissances négatives de 2.
Exemple :
25 = 1 * 2 4 +1 *2 3 +0*2 2 +0 *2 1 + 1 * 2 0.
0,375 = 0 * 2 −1 +1*2 −2 +1*2 −3
Par conséquent le nombre 25.375 est traduit par 11001,011 en virgule fixe.
N = +/ − M ∗ B e où
— N = nombre codé
— +/- = codage du signe (positif ou négatif)
— M = mantisse ( un nombre de X chiffres de la base B)
— e = exposant (nombre de Y chiffres de la base B)
Il faut arriver à une présentation sous une forme normalisée 1, M antisse∗B e pour déterminer
la mantisse et l’exposant
Pas de chiffre avant la virgule 0, XXXXX ∗ B e , avec un bit caché (non représenté sur la
machine)
30 CHAPITRE 3. REPRÉSENTATION ET CODAGE DES INFORMATIONS
Selon la norme standard IEEE 754 : le codage binaire d’un nombre réel en virgule flottante
en simple précision (sur 32 bits) est comme suit, Figure (3.1) :
1 bit pour le signe, 8 bits pour l’exposant, et 23 bits pour la mantisse.
Exemple 1 :
(1011, 101101)2 = (1011, 101101)2 ∗ 20
= (101, 1101101)2 ∗ 21
= (10, 11101101)2 ∗ 22
= (1, 011101101)2 ∗ 23
Exemple 2 :
(0, 00101)2 = (0, 00101)2 ∗ 20
= (0, 0101)2 ∗ 2−1
= (0, 101)2 ∗ 2−2
= (1, 01)2 ∗ 2−3
Remarque :
Il faut pouvoir stocker indifféremment les exposants positifs ou négatifs. Pour cela, plutôt
que d’utiliser un codage en complément à deux pour l’exposant, on applique un décalage
d’exposant et on stocke la valeur décalée (exposant trouvé + décalage).
La valeur du décalage dépend du nombre n de bits utilisés pour stocker l’exposant :
décalage = 2n−1 − 1
Exemple 1 :
pour un exposant stocké sur 5 bits :
(1011, 101101)2 = (1, 011101101)2 23
alors l’exposant stocké (décalé) = 3 + 15 = 18.
Exemple 2 :
pour un exposant stocké sur 5 bits :
3.3. REPRÉSENTATION DES NOMBRES RÉELS 31
C’est une conversion d’une manière approchée. Il faudra donc donner la précision voulue.
• Pour la partie entière, on fait comme pour les entiers.
• Pour la partie décimale, on procède comme suit :
— On multiplie la partie décimale par la base B ;
— On note la partie entière obtenue ;
— On recommence avec la partie décimale restante ;
— On s’arrête quand la partie décimale est nulle ou quand la précision souhaitée est
atteinte.
La partie décimale est la concaténation des parties entières obtenues dans l’ordre de leur
calcul.
Exemple : conversion de 28,8625 en binaire
– Conversion de 28 : (11100)2
– Conversion de 0,8625 comme suit :
0,8625 * 2 = 1,725 = 1 + 0,725
0,725 * 2 = 1,45 = 1 + 0,45
0,45 * 2 = 0,9 = 0 + 0,9
0,9 * 2 = 1,8 = 1 + 0,8 ←
0,8 * 2 = 1,6 = 1 + 0,6
0,6 * 2 = 1,2 = 1 + 0,2
0,2 * 2 = 0,4 = 0 + 0,4
0,4 * 2 = 0,8 = 0 + 0,8 ←
...
28,8625 peut être représenté par (11100, 11011100...)2
Exemple :
110, 1012 = 1 ∗ 22 + 1 ∗ 21 + 0 ∗ 20 + 1 ∗ 2−1 + 0 ∗ 2−2 + 1 ∗ 2−3
= 4 + 2 + 0,5 + 0,125
= 6, 62510
Synthèse
Dans un ordinateur, les données sont toujours représentées sous forme binaire (une suite
de 0 et de 1).
Cependant, l’être humain ne parle généralement pas couramment le langage binaire. Il
doit donc tout ”traduire” pour que la machine puisse exécuter les instructions relatives aux
programmes installés.
Comment sont codés les textes ?
Un texte est une suite de caractères, nous allons donc plutôt nous poser la question,
comment sont stockés les caractères à l’intérieur de la machine ?
La réponse est simple, à chaque caractère on associe un code binaire.
Historiquement, une des premières méthodes de codage des caractères est appelée ASCII
(American Standard Code for Information Interchange).
Dans le système de codage ASCII, chaque caractère est codé sur un octet. En réalité sur
les 8 bits seuls 7 sont utilisés pour coder les caractères (le 8ieme bit, appelé bit de parité, est
utilisé pour détecter les erreurs). 27 = 128 caractères peuvent être codés en ASCII.
Par exemple le caractère ’A’ est représenté par le code binaire 1000001, le caractère ’4’ est
représenté par le code binaire 0110100.
3.4. CODAGE DES CARACTÈRES 33
Au début de l’histoire de l’informatique cela ne posait pas trop de problèmes, mais avec
l’arrivée des outils de bureautiques (traitement de texte,. . . ), cela est devenu problématique :
par exemple, pour le français, les caractères accentués (’é’, ’à’, ’@’, ... ) ne sont pas codés dans
le système ASCII.
Pour pallier à cette difficulté, le code ASCII a été étendu à un code 8 bits, Figure (3.3).
Afin d’assurer une compatibilité avec l’ASCII, les caractères codés en ASCII ont exacte-
ment le même code en UTF-8.
Pour dépasser la limite des 128 caractères de l’ASCII, en UTF-8, certains caractères sont
codés sur plus d’un octet.
La norme ASCII établit une correspondance entre une représentation binaire des caractères
de l’alphabet latin et les symboles, les signes, qui constituent cet ensemble.
Exemple :
le caractère ’a’ est codé en 1100001 (code ASCII = 97).
le caractère ’A’ est codé en 1000001 (code ASCII = 65).
La norme ASCII permet ainsi a toutes sortes de machines de stocker, analyser et commu-
niquer de l’information textuelle.
34 CHAPITRE 3. REPRÉSENTATION ET CODAGE DES INFORMATIONS
3.5 Conclusion
Le codage d’une information consiste à établir une correspondance entre la représentation
externe (habituelle) de l’information, et sa représentation interne dans la machine, sous forme
d’une suite de bits (0 et 1).
Dans ce chapitre, nous avons abordé la représentation des différents types d’informations,
à savoir les entiers naturels, entiers relatifs, réels, caractères.
Pour mieux comprendre le principe de la codification des informations, quelques exercices
sont proposés à la fin de chapitre.
Le chapitre qui suit, sera consacré à la présentation générale de l’ordinateur.
3.6 Exercices
Exercice 01
1. Indiquez la valeur codée par la suite 1101100101110101 qui représente un entier signé
en complément à 2 sur 16 bits.
2. Même question avec la suite 1001000011101101.
Exercice 02
Codez sur 4 bits les entiers 7, 2, -2, -7 , et -5 avec les représentations suivantes :
1. Signe et valeur absolue ;
2. Complément à 2.
Exercice 03
Exercice 04
Exercice 05
Indiquez la valeur de cette mémoire (base 10) dans les cas où cette suite est constituée
de :
— deux nombres entiers naturels codés chacun sur 8 bits.
— deux nombres entiers relatifs en représentation signe et valeur absolue sur 8 bits.
— deux nombres entiers relatifs représentés sur 8 bits en complément à 2.
Exercice 06
1. Codez sur 8 bits les parties fractionnaires suivantes : (0.578125)10 et (0.85)10
2. Décodez les nombres suivants : (0.10110000)2 et (0.11011001)2
3. Qu’est-ce-que vous remarquez ?
Exercice 07
Coder les réels suivants (représentés en base 10) selon la norme IEEE 754 simple précision :
- 0.078125, - 13.625, - 87.375.
Exercice 08
Décoder les réels suivants (donnés en simple précision) : (41F E8000)16 , (3EA80000)16 ,
(C5E00000)16 .
Exercice 09
Voici les codes ASCII, sur un octet chacun, de quelques caractères alphabétiques :
’A’ : 01000001 ; ’B’ : 01000010 ; ’C’ : 01000011
’a’ : 01100001 ; ’b’ : 01100010 ; ’c’ : 01100011
1. Écrivez les valeurs en base 10 correspondant à ces informations binaires.
2. Donnez les codes ASCII de ’D’ et de ’d’ ? De ’Z’ et de ’z’ ?
Chapitre 4
Présentation générale de l’ordinateur
ans le présent chapitre, nous commençons par introduire les principaux organes qui
D constituent un ordinateur. Ensuite, nous nous attachons à la présentation d’une ins-
truction et les machines à une, deux, et trois adresses. Les modes d’adressage sont aussi
présentés dans ce chapitre, pour pouvoir passer au déroulement d’exécution d’une instruction.
Plan
4.1 Les différents organes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.1.1 Unité Centrale de Traitement . . . . . . . . . . . . . . . . . . . . . . . . 37
4.1.2 Unité de mémoire (Mémoire Centrale) . . . . . . . . . . . . . . . . . . . 39
4.1.3 Unités de stockage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.1.4 Unités d’ Entrée / Sortie . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.2 Codage d’une instruction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.3 La machine à 3 adresses, à 2 adresses, et à 1 adresse . . . . . . . . . . . . . . . 41
4.3.1 Machine à 3 adresses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
4.3.2 Machine à 2 adresses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
4.3.3 Machine à 1 adresse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
4.4 Les modes d’adressage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
4.4.1 Adressage Immédiat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
4.4.2 Adressage Direct . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
4.4.3 Adressage Indirect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
4.4.4 Adressage Indexé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
4.4.5 Adressage Relatif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.4.6 Adressage Basé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.5 Déroulement d’exécution d’une instruction . . . . . . . . . . . . . . . . . . . . . 45
4.6 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
4.7 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
36
4.1. LES DIFFÉRENTS ORGANES 37
Les ordinateurs sont des machines programmables capables d’effectuer un nombre impor-
tant d’opérations avec précision en un temps très court.
La structure de base d’un ordinateur comprend les éléments fondamentaux qui sont
représentés sur la Figure (4.1).
— Une unité centrale de traitement.
— Une unité de mémoire, appelée mémoire centrale.
— Des unités de stockage.
— Des unités d’entrée/sortie.
— Un système de bus permettant de véhiculer l’information entre l’unité centrale et les
autres unités.
L’unité centrale de traitement ou CPU (Central Processing Unit) est le centre de calcul
et de contrôle d’un ordinateur. Elle constitue le cerveau de l’ordinateur.
L’unité centrale réalise toutes les opérations demandées, elle est matérialisée physiquement
par un circuit électronique appelé microprocesseur , qui est caractérisé par :
— Sa marque (exemple : Intel ).
— Sa fréquence d’horloge : le nombre d’opérations que le microprocesseur peut effectuer
en seconde. Exemple : 1 GHz = 230 Hz.
L’unité centrale comporte les éléments suivants :
— Unité de contrôle et de commande.
— Unité arithmétique et logique.
38 CHAPITRE 4. PRÉSENTATION GÉNÉRALE DE L’ORDINATEUR
L’UAL est l’organe qui permet d’effectuer des opérations arithmétiques (addition, sous-
traction, multiplication, division), des opérations logiques (par exemple des comparaisons).
La Figure (4.2) permet de représenter l’UAL.
En plus des unités fonctionnelles qui effectuent les traitements, l’UAL comporte :
— Un registre accumulateur (ACC) : c’est un registre de travail qui sert a stocker une
opérande (données ) au début d’une opération et le résultat à la fin.
— Un registre d’état : Ce registre nous indique l’état du déroulement de l’opération . Ce
registre est composé d’un ensemble de bits. Ces bits s’appellent indicateurs (drapeaux
ou flags), qui sont mis à jours (modifiés) après la fin de l’exécution d’une opération
dans l’UAL.
Les principaux indicateurs sont :
— Retenue : ce bit est mis à 1 si l’opération génère une retenue.
— Signe :ce bit est mis à 1 si l’opération génère un résultat négative.
— Débordement :ce bit est mis à 1 s’il y a un débordement.
— Zéro : ce bit est mis à 1 si le résultat de l’opération est nul.
Cette unité gère le déroulement des instructions, décode et donne l’ordre à l’UAL pour
exécuter les instructions demandées. Elle comporte :
— Un registre instruction (RI) : qui contient l’instruction en cours d’exécution. Chaque
instruction est décodée selon son code opération grâce à un décodeur.
— Un décodeur : pour déterminer quelle opération doit être effectuée.
— Un registre compteur ordinal (CO) ou le compteur de programme (CP) : contient
l’adresse de la prochaine instruction à exécuter. Initialement, il contient l’adresse de le
première instruction du programme à exécuter.
4.1. LES DIFFÉRENTS ORGANES 39
La mémoire centrale peut être vu comme un large vecteur (tableau) de mots ou octets.
Un mot mémoire stocke une information sur n bits. Chaque mot possède sa propre
adresse. Cette mémoire peut contenir des programmes et les données utilisées par les
programmes en cours d’exécution.
— La mémoire morte (ROM : Read Only Memory) : est destinée uniquement à être
lue. Son contenu n’est pas altéré par une coupure de courant. La mémoire morte,
40 CHAPITRE 4. PRÉSENTATION GÉNÉRALE DE L’ORDINATEUR
programmée par le constructeur, est essentiellement utilisée pour contenir les logiciels
de base servant au démarrage de l’ordinateur.
Remarque :
Le format d’une instruction peut ne pas être le même pour toutes les instructions.
Le champ opérande peut être découpé à sont tours en plusieurs champs.
Dans de type de machine pour chaque instruction il faut préciser uniquement l’adresse
de la deuxième opérande. La première opérande existe dans le registre accumulateur (ACC)
de l’UAL. Le résultat est mis dans le registre accumulateur. Ce type de machine est le plus
utilisé.
Exemple :
Exemple :
ADD 150
Supposant que initialement l’accumulateur contient la valeur 20. Pour exécuter l’instruc-
tion précédente, il faut :
— Récupérer l’adresse de l’opérande à partir de l’adresse 150 (la valeur 200).
— Récupérer la valeur de l’opérande (la donnée) à partir de l’adresse 200 (la valeur 40).
— Additionner la valeur 40 avec le contenu de l’accumulateur (20) et nous allons avoir la
valeur 60, voir Figure (4.5).
L’adresse effectif de l’opérande est relatif à une zone mémoire. L’adresse de cette zone se
trouve dans un registre spécial appelé registre d’index, voir Figure (4.6).
Adresse opérande = champs opérande + (registre d’index)
Exemple :
ADD150indexeparX
Exemple :
Déroulement de l’instruction d’addition en mode immédiat ACC ← (ACC) + Valeur
Phase 1 : Rechercher l’instruction à traiter.
— Mettre le contenu du CO dans le Registre d’Adresse Mémoire : RAM ← (CO).
— Lire l’instruction à partir de la mémoire.
— Transférer l’instruction à partir de la MC vers le Registre d’Instruction RI : RI ← (MC
RAM).
— Analyser et décoder l’instruction.
Phase 2 : Traitement
— Transférer l ’opérande à partir du RI vers l’UAL : UAL ← (RI).ADR
— Exécuter l’opération suivant le code opération de l’instruction.
Phase 3 : Passer à l’instruction suivante
— Incrémenter le CO : CO ← CO + 1
Remarque :
Le CO (Compteur Ordinal) contient l’adresse de la prochaine instruction à exécuter.
4.6 Conclusion
Le présent chapitre a abordé la présentation générale des organes de l’ordinateur à savoir
les unités de traitement, de stockage et mémorisation, ainsi que les unités des Entrées / Sorties.
Par la suite, le codage d’instruction, les machines à 1 adresse, 2 adresses, et 3 adresses ont
été présentés, suivie par les modes d’adressage et le déroulement d’exécution d’une instruction.
Quelques exercices sont proposés à la fin de ce chapitre pour une bonne maitrise des
notions présentées dans ce cours.
Le prochain chapitre fera l’objectif de la logique combinatoire et séquentielle.
4.7 Exercices
Exercice 01
Exercice 02
Supposons qu’un ordinateur ayant un format d’instruction à une adresse, Figure (4.8).
Donnez le déroulement des instructions suivantes :
— Chargement du contenu de l’@ 45.
— Addition du contenu de l’@46.
— Rangement dans la cellule d’@ 60.
Exercice 03
On dispose d’un ordinateur ayant un format d’instruction à 1 adresse.
Déroulez l’instruction de chargement (LOAD 100) selon le contenu de la mémoire centrale
illustrée sur la Figure (4.9), en utilisant un :
— L’adressage direct.
— L’adressage indirect.
— L’adressage immédiat.
— L’adressage relatif avec (registre de base) = 150.
— L’adressage indexé avec (registre indexe) = 50.
Exercice 04
Soit le programme suivant :
ADD 45, 46
ADD 46,47
MOUVE 47, 60
49
50 CHAPITRE 5. LA LOGIQUE COMBINATOIRE ET SÉQUENTIELLE
Arrêt / Marche
Ouvert / Fermé
Avant / Arrière
Vrai / Faux
Chaque circuit fournit une fonction logique bien déterminée (addition, comparaison, .... ).
Pour concevoir et réaliser ce circuit, on doit avoir un modèle mathématique de la fonction
réalisée par ce circuit.
Ce modèle doit prendre en considération le système binaire.
Le modèle mathématique utilisé est celui de Boole.
5.1.1 Définition
L’algèbre de Boole est applicable au raisonnement logique qui traite des fonctions à va-
riables binaires (deux valeurs), et produit un résultat booléen, c’est-à-dire vrai ou faux. Elle
ne s’applique pas aux systèmes à plus de deux états d’équilibre, et permet d’étudier les circuits
logiques (un système logique sert à modifier des signaux).
L’algèbre de Boole permet de manipuler des valeurs logiques, sachant qu’une valeur logique
n’a que deux états possibles : Vrai(1) ou Faux(0).
Elle possède trois opérateurs (fonctions de base) booléens :
NOT (NON),
AND (ET),
OR (OU).
La variable logique est une grandeur qui peut prendre 2 valeurs qui sont repérées habi-
tuellement 0 ou 1, voir Figure (5.1).
La variable 0 sera associée à un niveau bas (une tension nulle).
La variable 1 sera associée à un niveau haut (une tension positive).
Une variable logique se note par une lettre comme en algèbre x, y, z, . . . .
Une fonction logique F des n variables logiques (x1 , x2 , ...xn ), notée par exemple F x1 , x2 , ...xn ),
associe une valeur 0 ou 1 aux différentes combinaisons possibles des n variables logiques
(x1 , x2 , ...xn ).
5.1. ALGÈBRE DE BOOLE 51
Cette fonction est également appelée complément, notée : F = x̄, voir Table (5.1).
x F (x) = x̄
0 1
1 0
Relation caractéristique :
¯ = x∀x
x̄
Fonction OU (OR)
C’est une fonction de deux variables également appelée somme logique, notée : F = x + y,
voir Table (5.2).
x y F (x, y) = x + y
0 0 0
0 1 1
1 0 1
1 1 1
x+0=x
x+1=1
x+x=x
Fonction ET (AND)
C’est une fonction de deux variables également appelée produit logique, notée : F = x ∗ y,
voir Table (5.3). La fonction Et ne vaut 1 que si toutes les variables valent 1.
Relations caractéristiques :
x ∗ 1 = x.
x ∗ 0 = 0.
x ∗ x = x.
x ∗ x̄ = 0.
5.1. ALGÈBRE DE BOOLE 53
x y F (x, y) = x ∗ y
0 0 0
0 1 0
1 0 0
1 1 1
x+y =y+x
x∗y =y∗x
x ∗ (y + z) = (x ∗ y) + (x ∗ z)
x + (y ∗ z) = (x + y) ∗ (x + z)
3. Ordre de priorité
Dans les expressions logiques (formules ne faisant intervenir que des variables logiques et
les trois lois ci-dessus) il existe un ordre de priorité qui est le suivant en décroissant : NON,
ET, OU.
Ces règles de priorité dispensent d’un certain nombre de parenthèses. Par exemple :
x + (y + z) = (x + y) + z = x + y + z
x ∗ (y ∗ z) = (x ∗ y) ∗ z = x ∗ y ∗ z
x + (y ∗ z) = x + y ∗ z 6= (x + y) ∗ z
4. Théorème de De Morgan
C’est l’une des propriétés les plus importantes des fonctions logiques.
x ∗ y = x̄ + ȳ
x + y = x̄ ∗ ȳ
x y x+y (x + y) x̄ ȳ x̄ ∗ ȳ (x ∗ y) x̄ + ȳ
0 0 0 1 1 1 1 1 1
0 1 1 0 1 0 0 1 1
1 0 1 0 0 1 0 1 1
1 1 1 0 0 0 0 0 0
Méthode algébrique
Pour obtenir une expression plus simple de la fonction par cette méthode, il faut utiliser :
— Les théorèmes et les propriétés de l’algèbre de Boole.
— La multiplication par un : (X + X̄).
— L’addition d’un terme nul : (X ∗ X̄).
Exemple : Simplification de la fonction F(x,y)
F (x, y) = x + x ∗ y
= x ∗ (1 + y)
=x∗1
=x
Remarque :
Les règles et propriétés de l’algèbre de Boole permettent de simplifier les fonctions mais
reste une méthode relativement lourde. La méthode algébrique ne permet jamais de savoir si
on aboutit ou pas à une expression minimale de la fonction. Nous pourrons alors utiliser la
méthode du tableau de KARNAUGH (méthode graphique)
Méthode graphique
Avant de tirer la fonction à partir du tableau de KARNAUGH, il faut respecter les règles
suivantes :
— Grouper tous les uns.
— Grouper le maximum des uns dans un seul groupement.
— Il est interdit de faire des groupements en diagonale, donc il n’y a que des groupements
carrés et rectangles ;
— Le nombre des uns dans un groupement est une puissance de 2 (est égal à 2k ).
— Un 1 peut figurer dans plus qu’un groupement.
— Il faut imaginer le tableau comme une sphère, c’est à dire que un ”1” étant placé tout
en haut à droite pourra se regrouper avec un ”1” placé tout en haut à gauche ou bien
avec un ”1” placé tout en bas à droite.
— Ne prenez que l’état des variables qui ne changent pas.
— Ne prenez que l’état des variables qui ne changent pas.
— Il faut séparer les groupements par un ”ou” (le symbole ”+”).
Exemples :
La Figure (5.3) illustre la simplification de quelques fonctions logiques en utilisant le
tableau de Karnaugh :
F 1 = AB̄ C̄ + AB̄C
F 2 = ĀB C̄ D̄ + ĀB C̄D + ĀBCD + ĀBC D̄ + AB C̄ D̄ + AB C̄D
F 3 = ĀB̄ C̄ D̄ + AB̄ C̄ D̄ + AB C̄D + AB̄ C̄D
F 4 = ĀB̄ C̄ D̄ + ĀB̄C D̄ + ĀB C̄ D̄ + ABCD + AB̄ C̄ D̄ + AB̄C D̄
Les fonctions de sortie s’expriment selon des expressions logiques des seules variables
d’entrée.
Un circuit combinatoire est défini par une ou plusieurs fonctions logiques. C’est un circuit
numérique dont les sorties dépendent uniquement des entrées.
Les circuits combinatoires sont souvent vus comme des boı̂tes noires régies par un fonc-
tionnement déterministe avec un ensemble d’entrées/sorties, voir Figure (5.4).
Sur les schémas de circuits électroniques, les fonctions logiques sont représentées par des
symboles que l’on appelle généralement ’ portes logiques ’.
Les fonctions NON, ET et OU sont associées aux symboles représentés comme suit :
Porte OU logique
Porte Et logique
Porte Non Et
— Elle est constituée par un inverseur à la sortie d’une porte ET, voir Figure (5.8).
Porte Non OU
— Une négation à la sortie d’une porte OU constitue une fonction NON OU (NOR : NOT
OR), voir Figure (5.9).
— Deux entrées
— La sortie d’une fonction XOR est dans l’état 1 si les deux entrées sont différentes, voir
Figure (5.10).
5.2. CIRCUITS COMBINATOIRES 59
Toute fonction logique peut être réalisée à l’aide des portes logiques. Pour cela, il faut :
En combinant entre les différentes portes logiques, on peut à priori réaliser n’importe
quelle fonction logique.
On appelle ’ logigramme ’ la réalisation d’une fonction à laide des portes logiques de base,
voir Figure (5.11).
Décodeur
Comparateur
C’est un circuit combinatoire qui permet de comparer entre deux nombres binaire A et B.
La Figure (5.14), illustre un exemple de comparateur de deux bits.
En théorie des circuits électroniques, la logique séquentielle est un type de logique dont
les résultats ne dépendent pas seulement des données actuellement traitées mais aussi des
données traitées précédemment.
Elle s’oppose à la logique combinatoire, dont les résultats sont fonction et seulement fonc-
tion des données actuellement traitées.
En d’autres termes, la logique séquentielle utilise la notion de mémoire de stockage (Bas-
cules, registres, etc.) alors que la logique combinatoire n’en a pas.
5.3. CIRCUITS SÉQUENTIELS 63
De manière générale, les circuits séquentiels font apparaı̂tre des retours qui permettent de
mémoriser des informations relatives aux états antérieurs appliqués sur le circuit.
La sortie d’un circuit séquentiel est ainsi fonction de variables internes également appelées
variables d’état.
L’élément de base de la logique séquentielle est la bascule.
5.3.1 Bascule
Un bascule est un circuit logique capable, dans certaines circonstances, de maintenir les
valeurs de ses sorties malgré les changements de valeurs d’entrées (mémoire). Elle permet le
passage de la logique combinatoire à la logique séquentielle.
Les bascules sont les circuits séquentiels élémentaires permettant de mémoriser une infor-
mation binaire (bit) sur leur sortie. Elles constituent le point mémoire élémentaire.
On distingue deux catégories principales de bascules :
— Les bascules asynchrones (verrous latch).
— Les bascules synchrones (bascules flip-flop).
Bascule RS
La bascule RS est la plus simple des bascules. Elle est réalisée à partir de deux portes
NOR ou de deux portes NAND. Le schéma de la bascule RS avec des portes NOR est illustré
sur la Figure (5.17). La bascule possède deux entrées notées R et S ainsi que deux sorties
conventionnellement notées Q et Q̄.
Cas 1 : Quand S = R = 0
• On suppose que Qt = 0 alors on aura le schéma illustré sur la Figure (5.18 (a)).
On remarque que Qt = 0 on a Q̄t = S + Qt = 0 + 0 = 1
Du moment où Q̄t = 1 , la variable de sortie Q à l’instant t+1 :
Qt+1 = Q̄t + R = 1 + 0 = 0
On aura donc Qt = Qt+1 L’état de la bascule est stable.
• On suppose que Qt = 1 alors on aura le schéma représenté sur la Figure (5.18 (b)).
On remarque que Qt = 1 on a Q̄t = S + Qt = 1 + 0 = 0
Du moment où Q̄t = 0 , la variable de sortie Q à l’instant t+1 :
Qt+1 = Q̄t + R = 0 + 0 = 1
On aura donc Qt = Qt+1 L’état de la bascule est stable
Cas 2 : Quand S = 1 et R = 0
• On suppose que Qt = 0 alors on aura le schéma illustré sur la Figure (5.19 (a)).
On remarque que Qt = 0 on a barQt = S + Qt = 1 + 0 = 0
Du moment où Qt = 0 , la variable de sortie Q à l’instant t+1 :
Qt+1 = Q̄t + R = 0 + 0 = 1
On aura donc Qt = 0 et Qt+1 = 1
Qt+1 = Q̄t + R = 0 + 1 = 0
Après l’étude des quatre cas précédents , nous constatons que le problème se pose lorsque
l’une des deux entrées passe à 1.
En pratique les deux entrées ne peuvent pas changer rigoureusement au même instant,
l’une substitue nécessairement avant l’autre.
A ce moment, la bascule prend l’un des état (0 ou 1) selon que ce soit S ou R qui change
d’état en premier. On dit que l’état de la bascule est indéterminé, il peut être à 1, comme il
peut être à 0, voir Figure (5.22).
Bascule D
Une autre manière de résoudre le problème d’ambiguité rencontré avec la bascule RS,
lorsque R = S = 1, est de faire en sorte que ce cas ne se présente jamais à l’entrée de la
bascule. Pour cela, on utilise qu’une seule variable d’entrée externe D, et on parle alors de la
bascule D, voir Figure (5.23).
Qt+1 = D
Bascule JK
La situation JK diffère de la bascule RS du fait que, quand les deux variables d’entrée
passent simultanément à 1, l’état de la bascule n’est pas indéterminé mais la bascule passe à
l’état opposé, voir Figure (5.24).
Bascule T
1. Bascule synchrone Latch : Réagisse sur un niveau d’horloge. Elle est déclenchée
quand H = 1 ou quand H =0
2. Bascule synchrone Flip-flop : Change d’état non pas quand H = 1 ou H =0 mais
pendant la transition du signal d’horloge de l’état 0 à 1 (front montant) ou de l’état
0 à 1 (front descendant).
Synchronisation de la bascule RS
L’utilisation d’une horloge (H) permet de synchroniser les changements d’état de la bas-
cule. En effet, il est souvent utile de ne faire changer l’état à une bascule qu’à des instants
bien précis, d’où l’intérêt de l’horloge.
5.3. CIRCUITS SÉQUENTIELS 69
Les systèmes séquentiels peuvent être différenciés en fonction de leur mode de fonctionne-
ment qui peut être synchrone ou asynchrone, voir Figure (5.27).
Dans le mode synchrone, les éléments de mémorisation sont des bascules. Les modifications
d’état du système ne peuvent donc intervenir qu’à des instants très précis, déterminés par des
signaux d’horloge.
Par contre, dans le mode asynchrone, la fonction de mémorisation est réalisée par de
simples boucles de rétroaction. L’évolution des états ne dépend donc que des modifications
intervenant sur les entrées Ei de la machine.
Système asynchrone
On appelle circuits séquentiels asynchrones des circuits séquentiels sans signaux d’horloge.
Ce type de système change d’état à tout moment, chaque fois qu’une ou plusieurs entrées
changent.
Système synchrone
On appelle circuits séquentiels synchrones des circuits séquentiels qui possèdent une hor-
loge, et dont l’état interne se modifie précisément après chaque front (montant ou descendant)
de l’horloge. Ce type de système ne se déclenche et ne se change d’état que lorsqu’un signal
le commande (signal d’horloge), suivant des impulsions périodique, voir Figure (5.28).
Chronogramme
Pour représenter une fonction logique, nous avons vu les équations logiques, les tables
de vérité et les tableaux de Karnaugh. Ces représentations sont suffisantes en logique com-
binatoire mais n’intègrent pas la notion de temps et ne permettent donc pas de visualiser
facilement des systèmes où le temps intervient de façon essentielle. D’où l’intérêt du chrono-
5.3. CIRCUITS SÉQUENTIELS 71
gramme, qui consiste à dessiner un graphique sur lequel le temps sera représenté en abscisse
et le niveau logique (0 ou 1) en ordonnée, voir Figure (5.29).
5.3.5 Compteurs
— Compteur synchrone : un compteur est dit synchrone si les impulsions à compter sont
appliquées simultanément sur l’horloge H de toutes les bascules.
72 CHAPITRE 5. LA LOGIQUE COMBINATOIRE ET SÉQUENTIELLE
Le compteur binaire est un circuit séquentiel composé d’une succession de bascules, ca-
pables de sauvegarder le nombre d’impulsions délivrées par une horloge ou autre signal, en
transformant un nombre binaire pour un usage ou affichage ultérieur.
Exemple :
Pour mesurer la fréquence d’un signal, le nombre d’impulsions de ce signal est compté
pendant une durée égale à une seconde.
Compteur progressif
Le compteur binaire est dit progressif si son contenu passe d’une valeur binaire m à une
valeur binaire m + 1 (sens croissant) après l’application d’une impulsion d’horloge.
Exemple :
Un compteur binaire formé de trois bascules, et en comptant de 0 jusqu’à 7. La table de
vérité des transitions d’un tel compteur après chaque impulsion d’horloge est illustrée sur la
Table (5.5).
5.3. CIRCUITS SÉQUENTIELS 73
Compteur régressif
Le compteur binaire est dit régressif si son contenu passe d’une valeur binaire m à une
valeur binaire m-1 (sens décroissant) après l’application d’une impulsion d’horloge.
Exemple :
Un compteur binaire formé de trois bascules, et en décomptant de 7 jusqu’à 0. La table
de vérité des transitions d’un tel compteur après chaque impulsion d’horloge est illustre par
la Table (5.6) :
Compteur modulo N
Un compteur binaire constitué de n bascules est dit modulo N (tel que N ≤ 2n ), s’il peut
compter de 0 jusqu’à n − 1. La N ieme impulsion le remet, obligatoirement à 0.
Les n étages constituant un tel compteur permettent de présenter tous les états possibles.
Si un certain nombre d’états ne seront jamais utilisés, en fonctionnement normal (N = 2n ),
on parle d’un compteur incomplet.
Si N = 2n alors n est le nombre de bascules nécessaires.
Exemple 1 : Compteur modulo 16 : (compter de 0 jusqu’à 15)
74 CHAPITRE 5. LA LOGIQUE COMBINATOIRE ET SÉQUENTIELLE
16 = 24 =⇒ 4 bascules nécessaires
Exemple 2 : Compteur modulo 6 : ( compter de 0 jusqu’à 5)
4 = 22 < 6 =⇒ 2 bascules de suffisent pas
8 = 23 > 6 =⇒ 3 bascules nécessaires (compteur incomplet), voire Table (5.7).
bascule 2)
D’où : Ck2 = Q1 et J2 = K2 = 1
• A chaque front descendant de Q2 , on a : Q3+ = Q̄3
D’après la table caractéristique de la bascule JK : Q3+ = Q̄3 ⇒ J3 = K3 = 1
Sachant que la bascule 3 commute au front descendant, on peut écrire : Q2 = Ck3 (Ck3
est l’horloge de la bascule 3)
D’où : Ck3 = Q2 et J3 = K3 = 1
Le schéma de ce compteur est visualisé sur la Figure (5.31). .
5.4 Conclusion
Dans ce chapitre nous avons présenté les principes et les règles de calcul de l’algèbre
de Boole, puis la manipulation des fonctions logiques. Les circuits logiques combinatoires et
séquentiels ont aussi été présentés par la la suite.
Ce cours est suivi par une série d’exercices, donnée à la fin de ce chapitre pour un meilleur
entrainement sur le fonctionnement de ces systèmes.
5.5 Exercices
Exercice 1
Démontrez les relations suivantes en utilisant les règles de calculs de l’algèbre de Boole
X + XY = X
X + X̄Y = X + Y
X(X + Y ) = X
X(X̄ + Y ) = XY
XA + X̄B + AB = XA + X̄B
76 CHAPITRE 5. LA LOGIQUE COMBINATOIRE ET SÉQUENTIELLE
Exercice 2
Trouvez les expressions logiques simplifiées des fonctions F et G définies par les tables de
vérités illustrées sur la Figure (5.32) :
Exercice 3
Simplifiez algébriquement les expressions logiques suivantes :
X̄Y + XY
(X + Y )(X + X̄)
X + X̄Y + X̄ Ȳ
Exercice 4
Simplifiez les fonctions logiques suivantes en utilisant la méthode graphique :
F1 = a ∗ b + a ∗ b ∗ d + a ∗ b ∗ c ∗ d
F 2 = a ∗ b ∗ c̄ + ā ∗ c̄ ∗ d + ā ∗ b̄ ∗ d¯ + a ∗ c + b ∗ c ∗ d¯
F 3 = a ∗ b ∗ c̄ + c̄ ∗ d ∗ a + a ∗ b̄ ∗ c ∗ d
Exercice 5
On considère le montage suivant :
1. Quelle est la fonction logique F réalisée par ce montage ?
2. Simplifiez la fonction F( utiliser le théorème de De Morgan).
3. Proposez un montage plus simple permettant de réaliser la fonction F.
5.5. EXERCICES 77
Exercice 6
En binaire, un chiffre décimal (compris entre 0 et 9) est codé sur 4 bits a b c d dans l’ordre
des poids décroissants. Ce chiffre est visualisé sur un afficheur 7 segments représenté sur la
Figure (5.34).
Chaque segment est représenté par une lettre allant de A à G. Lors de l’affichage du chiffre
6 (respectivement 9) le segment (respectivement D) est Allumé.
1. Donner les expressions logiques, en fonction de a b c d , des fonctions logiques fA et fD
valant 1 lorsque les segments A et D de l’afficheur sont allumés.
2. Simplifier les fonctions précédentes en utilisant des tables de Karnaugh.
3. Donner le schéma de la fonction fA avec un minimum de portes logiques.
Remarque : Le symbole Ø peut prendre indifféremment la valeur 0 ou 1 : on remplace donc
par 1 uniquement ceux qui permettent d’augmenter le nombre des cases d’un regroupement
78 CHAPITRE 5. LA LOGIQUE COMBINATOIRE ET SÉQUENTIELLE
Exercice 7
Exercice 8
Construire un circuit logique capable de comparer deux nombre de 3 bits chacun (A0 A1 A2 )
et (B0 B1 B2 ) En sortie, on voudrai avoir :
— 1 si A0 A1 A2 = B0 B1 B2 .
— 0 sinon.
Exercice 9
On considère le schéma de la Figure (5.35) réalisé avec des bascules RS asynchrones à base
de portes NOR.
1. Donner les expressions logiques des entrées R1, S1, R2 et S2 des deux bascules.
2. Rappeler la table de vérité et le fonctionnement d’une bascule RS asynchrone à base
de portes NOR.
3. Que peut-on dire des bascules 1 et 2 lorsque E = 0 ? Même question lorsque E = 1.
Exercice 10
Le montage de la Figure (5.36) représente une bascule réalisée à partir de portes NAND.
2. Le circuit est dans un état définit par R = 1, S = 0, Q = 0, Q̄ =1. Quelle est l’évolution
des sorties lorsque l’entrée S commute vers le niveau haut (R = 1, S :0 → 1) ?
3. Le circuit est dans un état définit par R = 0, S = 1, Q = 1, Q̄ = 0 . Quelle est l’évolution
des sorties lorsque l’entrée R commute vers le niveau haut (S = 1, R :0 → 1) ?
Exercice 11
Soit le circuit de la Figure (5.37), composé de bascules type JK à front montant :
Exercice 12
On considère une bascule JK’ qui n’est autre que la bascule JK avec un inverseur entre
l’entrée interne K et l’entrée K’, voir le schéma de la Figure (5.38).
2. Exprimer l’état futur de la bascule Qt+1 en fonction des variables d’entrée (J et K’)
et de la variable de sortie Qt
3. Montrer qu’en joignant les deux entrées J et K’, on obtient une bascule D.
Exercice 13
Faire la synthèse d’un compteur synchrone progressif modulo 5, formé de trois bascules
types D à front montant.
Bibliographie
[1] S. Ait Aoudia. Architecture des systèmes informatiques. Office des Publications Universi-
Elsevier, 2011.
[5] K. Hwang and A. Faye. Computer architecture and parallel processing. Pearson Education,
1984.
[6] M. Koudil and helifatiS. L. K. Structure des ordinateurs, Autour du processeur. Office des
[8] Y. Ligier and P. Zanella. Architecture et technologie des ordinateurs. Dunod, 1995.
81