Opérations arithmétiques en binaire
Opérations arithmétiques en binaire
CHAPITRE
5
Opérations arithmétiques
1. Addition binaire :
0+0=0
0+1=1
Exemple1 :
51 + 23 = 74
51 = (00110011)
23 = (00010111)
La somme est :
1
00 1100 11
+
00 0101 11
Retenue de 1
= 01 0010 10
27 26 25 24 23 22 2120
(01001010) = 26 + 23 + 21 = 74
Exemple2 :
2. Multiplication binaire :
0*0=0
0*1=0
1*1=0
Exemple1 :
15 * 6 = 90
15 = (00001111) 1111
6 = (00000110) *
110
0000
+ 1111
1 1111
Exemple2 :
3. Division binaire :
Exemple :
92 / 5 = 18 avec un reste =2
92 = (1011100)
5 = (101)
101 1 10 0 101
101 Le quotient =10010 = (18)10
000 1 10 10010 Le reste = 10 = (2)10
1 01
0 01 0
4. Soustraction binaire :
Soit X et Y deux entiers, l’opération X-Y est équivalente à X +(-Y) . Il suffit de trouver
donc le complément de Y.
Interpréter le résultat
Exemple :
9 = 01001
6 = 00110
C1 (6)= 11001
Retenue à ignorer
Un nombre hexadécimal signé exprimé sur un nombre n de bits est jugé positif, si le chiffre de
plus fort poids est inférieure ou égale à 7. Il sera négatif si ce chiffre est supérieur à 8.
Exemple :
L’addition de deux nombres hexadécimales se ramène à une simple addition par niveau, en
convertissant chaque chiffre en son équivalent décimale et en effectuant l’addition, si le
résultat obtenu par niveau est inférieure ou égale à 15, alors on le convertit en hexadécimal,
sinon on retranche la valeur de 16 du résultat puis on fait la conversion du reste en hexa, en
passant une retenue au niveau suivant.
Exemple :
82 10000010
(82)16 = (10000010)2 + +
98 10011000
(98)16 = (10011000)2 = 11 A = 1 00011010
Définition du complément à 16 :
n2 = complément à 15 de n1 + 1
Le complément à 15 d’un nombre n est le nombre n' vérifiant : n + n' = FF….F avec la taille
du résultat = sup(n,n').
Exemple :
10 = (0A)16
19 = (13)16
FF
Le complément à 16 de (13)16 est EC +1 = ED
D’où :
10 -19 = (0A)16 + (ED) 16 = (F7) 16
On remarque que F7 est un nombre négatif. Pour trouver sa valeur, il faut récupérer sa valeur
absolue en lui appliquant le complément à 16.
On a: F7
+ C15 (F7) = (08) C16 (F7) = (09)
08
= FF
CHAPITRE
6
Les mémoires
I- Introduction
II- Définition
III- Caractéristiques des mémoires
IV- Organisation de la mémoire
V- Accès mémoire
1. Accès séquentiel
2. Accès direct
3. Accès semi-séquentiel
VI- Opérations sur la mémoire centrale
VII- Les bus mémoire
VIII- Connexion de la mémoire avec le processeur
IX- Les différents types de mémoires
X- Récapitulatif sur les différentes mémoires
I- Introduction :
II- Définition :
Une mémoire est tout dispositif capable de stocker et de restituer des informations, de sorte
que le composant qui les utilise, puisse accéder à l'information dont il a besoin ultérieurement.
Une mémoire se caractérise par plusieurs aspects pouvant mettre en avant ses performances
telles que sa capacité, son temps d’accès, son cycle mémoire, son débit et sa volatilité.
La capacité :
la taille d'une mémoire est le nombre total d’informations qu'elle peut contenir. Elle s'exprime
en nombre de bits, d'octets (bytes) ou de mots (words). Les capacités des mémoires sont
généralement exprimées en puissances de deux ou en multiples de 210. Les ordres de
grandeurs les plus utilisés sont :
1K (Kilo) =210,
1M (Méga)=220,
1G (Giga)=230).
Exemple :
Une mémoire peut occuper 128Mmots de 32 bits = 512 M octet = (512 * 220) octet.
Le temps d’accès :
Est le temps séparant le lancement d’une opération d’accès et son accomplissement. Cette
opération peut être une lecture d’information existante dans la mémoire ou une écriture d’une
nouvelle information (enregistrement).
Le débit :
Le cycle mémoire :
Représente l'intervalle minimum qui doit séparer deux accès successifs à la mémoire. Le
temps de cycle est égal ou supérieur au temps d'accès.
La volatilité :
Caractérise la permanence des informations dans la mémoire. Une mémoire est dite volatile si
sa durée de mémorisation dépend de la présence d'alimentation électrique.
La mémoire centrale est la mémoire principale servant au stockage des programmes et des
données à traiter. L’organisation de cette mémoire est importante vu son influence sur les
performances de l’ordinateur.
En effet, La mémoire est vue comme une bibliothèque de rangement formée par un ensemble
de casiers destinés à stocker les informations. Pour la mémoire, ces casiers sont l’ensemble
des cases mémoires (appelées encore cellules ou mots mémoire).
Chacune de ces cases pouvant retenir un nombre binaire. L'élément atomique dans
l'organisation de la mémoire d'un ordinateur est l'octet. Les cellules mémoire sont toutes de
même taille et peuvent contenir un ensemble d'octets (1, 2, 4 ou 8 octets).
Ces cellules peuvent être accessibles à tout moment et sont repérées à l’aide d’une
numérotation séquentielle de 0, 1 ... N-1, où N est le nombre total des cellules. Ces numéros
de cases sont appelés adresses mémoire. Pour stocker (écrire) ou lire les données d'une case
mémoire, le processeur a besoin de connaître l'adresse de la case correspondante.
L'adresse d'une cellule mémoire peut être constituée de plusieurs bits. Une adresse est le plus
souvent écrite en hexadécimal.
On appelle espace adressable l'ensemble des cellules qui peuvent être référencées à l'aide
d'une adresse physique.
Exemple:
Sur le schéma de mémoire ci-dessous, l’adresse est écrite sur 16 bits et la donnée d’une
cellule mémoire est écrite sur un octet. La case mémoire à l'adresse numéro 0 contient un
octet qui est le code du nombre 7; l'adresse numéro 3 contient le code du caractère A…
… …
Puisque chaque bit peut prendre 2 valeurs possibles (la valeur 0 ou la valeur 1) alors une
adresse de N bits permet de repérer 2N cases.
Dans l’exemple précédent, nous avons 16 bits pour l’écriture d’une adresse donc on peut avoir
jusqu’à 216 adresses possibles, c'est-à-dire 65536 adresses.
Application :
Soit une mémoire de taille 32 Kø, combien il nous faut de bits pour représenter l’adresse
d’une case de cette mémoire sachant qu’elle est adressable par octet ?
32 kø = 32 * 1024 ø
= 25 *210 ø
= 215 ø
Remarque :
Pour que chaque combinaison de bits d’adresse puisse avoir son adresse correspondante en
mémoire, il est important que la taille de la mémoire soit une puissance de 2.
V- Accès mémoire :
Pour accéder à une information contenue en mémoire, différents types d’accès mémoire sont
possibles selon le type de la mémoire utilisée:
1. Accès séquentiel :
C’est l’accès le plus lent. Pour accéder à une information particulière, on est obligé de
parcourir toutes celles qui précèdent.
2. Accès direct :
Est l’accès le plus rapide. Les informations ont une adresse propre. On y accède directement.
3. Accès semi-séquentiel :
Exemple : Pour un disque magnétique par exemple l'accès à la piste est direct, puis l'accès au
secteur est séquentiel.
Avant son exécution tout programme doit être d’abord chargé en mémoire centrale par le
système d’exploitation. Ensuite l’exécution par l’unité centrale (UCT) de traitement nécessite
une communication avec la mémoire qui se résume principalement dans les deux étapes
suivantes :
4. Opération de lecture :
Cette opération consiste en la recherche d’une donnée ou d’une instruction stockée dans la
mémoire pour en transférer une copie vers l’UCT afin de l’utiliser dans un traitement. Pour
pouvoir effectuer cette opération, l’UCT doit informer la mémoire de l’emplacement auquel
il veut accéder.
5. Opération d’écriture :
Cette opération consiste à attribuer une valeur à une case mémoire. Dans ce cas l’UCT doit
fournir l’adresse de la case où il veut stocker cette information.
Exemple :
(1)
Soit un programme où l’on a déclaré deux variables entières : X et Y .
X=5;
Y=X+2 ;
Pour effectuer ces opérations de lecture et d’écriture, il est nécessaire d’avoir un moyen de
connexion entre la mémoire et le microprocesseur. Ce moyen est les bus.
Un bus est un moyen de communication entre les différents éléments constituants une
machine. Il s'agit en général d'un ensemble de n fils électriques utilisés pour transporter n
signaux binaires.
Les bus qui relient la mémoire au microprocesseurs sont de trois types : le bus de données, le
bus d'adresse et le bus de commande.
6. Le bus d’adresse:
7. Le bus de données:
Il sert comme support d’acheminement des données du microprocesseur vers la mémoire lors
d’une opération d’écriture ou de la mémoire vers le microprocesseur lors d’une opération de
lecture. Il est donc un bus bidirectionnel. Le nombre de fils de ce bus varie suivant les
microprocesseurs.
8. Le bus de commande:
1
La déclaration d’une variable consiste à lui donner un nom, lui associer un type de donnée et lui allouer un
emplacement mémoire.
Le bus de commande est celui responsable de l’acheminement des signaux de commande tels
que les ordres de lecture et écriture entre le processeur et la mémoire.
MC MC
Ordre Lecture Ordre Ecriture
Adresse Adresse
processeur processeur
Donnée Donnée
: bus de commandes
: bus d’adresses
: bus de données
9. La mémoire centrale :
[En anglais : main memory] sert à stocker le ou les programmes en cours d'exécution et les
données en cours de traitement. C’est une mémoire à accès direct et à temps d'accès faible.
Elle est subdivisée en deux parties :
C’est une mémoire vive àaccès direct à l'opposition de la mémoire à accès séquentiel comme
les bandes magnétique ou les cassettes par exemple. Cette partie de la mémoire centrale est à
la disposition du programmeur, qui dans laquelle peut déposer des données élémentaires.
Cette mémoire est volatile, c'est-à-dire, elle est effacée dès la coupure du courant. On peut y
mémoriser (écrire) des nombres binaires pour les relire plus tard mais tant que le courant n’a
pas été coupé. La taille d’une mémoire RAM est de l’ordre de 64, 128 ou 512 Mo
Il existe deux types de RAM : les mémoires statiques et les mémoires dynamiques.
- Les mémoires statiques (SRAM) : Les bits de ces mémoires sont à base de transistors.
Elles mémorisent les nombres aussi longtemps qu'elles sont alimentées. Elles sont simples
d’utilisation mais occupent beaucoup de place dans le circuit intégré.Le coût de ces mémoire
est assez élevé par rapport à celui des DRAM.
- Les mémoires dynamiques (DRAM) : Les bits de ces mémoires sont à base de
condensateurs (capacités). Un bit à 1 est représenté par un condensateur chargé et un bit à 0
est représenté par un condensateur déchargé. Les mémoires DRAM nécessitent un
rafraîchissement périodique de l’information qui consiste à générer des ordres de lecture et de
réécriture du signal toutes les deux milliseconde afin que les bit à 1 ne soient pas
déchargé[Link] mémoires sont plus rapides et leurs capacités sont supérieures.
C’est une mémoire morte permanente (non volatile). Son contenu ne peut pas être effacé et
réécrit ordinairement par programme. Elle est en général de faible capacité, mais de très
grande fiabilité. Cette mémoire contient dès la mise au point de l'ordinateur le savoir
Ce type de composant est fabriqué de manière à donner toujours les mêmes valeurs même
après coupure d'alimentation.
La ROM est généralement moins rapide que la RAM, alors souvent une technique particulière
est appelée shadow ou mirror est utilisée avec la ROM et consiste à copier son contenu dans
la RAM afin de l'utiliser par la suite uniquement à partir de la RAM. Cette technique
provoque un gaspillage de RAM, mais elle permet de gagner en vitesse d’accès.
-Les ROM programmables (PROM) qui peuvent être écrites, seulement une fois, hors de
l'ordinateur. La fabrication des ROM est faite dans des usines de fabrication de puces à l'aide
d'un appareil spécial (programmateur de PROM). Elles servent pour la réalisation de
programmes identiques en faibles exemplaires.
- Les ROM effaçables (EPROM, Erasable PROM) qui peuvent être réinitialisées pour pouvoir
être réécrites (a peu près 10 fois). Elles sont utilisées pour la mise au point de programmes
nécessitant des modifications intenses. Les EPROM coûtent plus chères que les PROM,
cependant il est possible de réutiliser une EPROM un certain nombre de fois. La différence
entre la RAM et le EPROM se manifeste lors de l’écriture, le PROM nécessite un cycle 1000
fois plus long que celui d’une RAM.
- La RAM non volatile NOVRAM est une solution entre SRAM et EEPROM elle contient des
informations pouvant être stockées dans une SRAM mais sans perte de données après avoir
éteindre l’ordinateur. En effet, ils sont stockés sur une EEPROM (Electrically Erasable
Programmable ROM : Les EEPROM ont une durée de vie limitée. La possibilité de les
modifier ne dépasse pas quelques milliers (ou millions) de fois, ce qui vaut une durée de vie
de quelques secondes si elles étaient utilisées comme les RAM, quelques millions de
modifications. De plus les EEPROM nécessitent plus de temps à effacer que les RAM. Les
EEPROM sont excellentes pour conserver des paramètres et des préférences ou du code qui
ne changera qu'une à deux fois par jour (ou semaine), mais pas pour des données qui
requièrent des modifications plus fréquentes. Plusieurs modems possèdent des EEPROM (ou
des dispositifs semblables) permettant ainsi de sauvegarder des paramètres propres au
propriétaire de manière permanente.
- FLASHROM permettent d’effacer une ROM très rapidement (en une éclaire d'où le terme
anglais flash). C'est une sorte de EEPROM mais de conception différente. L'éffacement est
réalisé par banques de mémoire plutôt que caractère par caractère comme dans les EEPROM,
cela aide à diminuer leurs coûts de production. Ces mémoires se retrouvent en particulier sur
la carte mère (BIOS), sur la carte graphique (firmware) et sur le modem (firmware).
D'une façon générale, on définit le cache comme un dispositif matériel ou logiciel qui stocke
dans une zone d'accès rapide une copie de données en petite quantité. Ces données sont
choisies parmi les données qui sont stockées dans une zone d'accès plus lent.
On utilise pour les caches des mémoires statiques très rapides. Lorsque le processeur accède
plusieurs fois à la même location, tout se passe avec la mémoire cache sans avoir la nécessité
d’accéder à la mémoire centrale afin de réaliser un gain en terme de temps d’accès.
Le premier niveau de cache (L1) pour dire (level 1) est intégré au processeur et dispose d'un
temps d'accès équivalent au cycle de fonctionnement de celui-ci.
Le second niveau (L2) est de plus grande taille mais plus lent.
- Ces données sont recherchées au préalable dans la mémoire cache de premier niveau I
(L1).
- Sinon, les données sont lues dans la mémoire centrale et mémorisées dans les
mémoires caches pour une éventuelle future utilisation.
MC
processeur Mémoire
cache II
Mémoire
cache I
Elles permettent de stocker des informations (depuis la mémoire centrale), et de les récupérer
plus tard. Elles sont permanentes (les données y persistent voir même après coupure du
courant).
Exemple de mémoires périphériques : les disques durs, les disquettes, CD, DVD ...
Les avantages de ces mémoires résident dans leurs grandes capacités de stockage et leurs
coûts réduits mais leur inconvénient est qu’ils sont moins rapides que les autres mémoires.
Disque : 4 Go - 120 Go
Disquette : 1,4 Mo
CD : 700 Mo
DVD : 4,7 Go
mémoires Capacité de
Périphériques
auxiliaires Magnétique stockage
(internes ou externes lentes Stockage
ou Optique à l’unité centrale) permanent variable selon le
périphérique
mémoire de masse
Capacité
CHAPITRE
7
Le Processeur
I- Introduction
V- Exemples de microprocesseurs
I- Introduction:
Un processeur est un circuit électronique qui peut compter des millions de transistors.
L'unité centrale de traitement (UCT ou CPU : Central Processing Unit), encore dénommée
processeur ou microprocesseur, est l'élément de l'ordinateur qui interprète et exécute les
instructions d'un programme.
Les instructions à exécuter par le microprocesseur doivent être tout d’abord transférées de la
mémoire centrale pour être logées dans l’UCT.
Le format d’une instruction est sa spécification pour un microprocesseur donné sous forme
de:
Action Opérandes
Exemple :
Aff opérande
L’ensemble des actions que peut exécuter le microprocesseur avec leurs formats spécifiques
est appelé jeu d’instruction de l’UCT. Le jeu d’instruction diffère d’un microprocesseur à un
autre : On peut trouver des actions exécutées par un microprocesseur et pas par un autre ou
possédant un format différent.
Le microprocesseur doit connaître l’action demandée par l’instruction afin de préparer tout le
nécessaire pour qu’elle soit bien exécutée.
- L’ unité de commande
- Les registres
L'unité de commande dirige le fonctionnement de tous les autres éléments de l'unité centrale
en leur envoyant des signaux de commande.
Elle gère le séquencement des étapes de l’exécution d’une instruction et elle active les lignes
de l’opération à exécuter.
Pour que l’instruction soit interprétable par le microprocesseur elle doit être codée. On appelle
codage d’une instruction la transformation d’une instruction d’un programme du format
texte vers un format binaire qui respecte le format d’une instruction machine (action +
opérandes). Cette opération est effectuée par le compilateur1.
Ensuite, L'unité de commande doit décoder l’instruction, c’est à dire connaître de quelle
opération s’agit il.
Exemple : S’il s’agit d’une opération d’addition, l’unité arithmétique et logique sera chargée
par les opérande de l’opération et l’unité de commande va activer les lignes responsables de
l’exécution de l’action d’addition.
1
Le compilateur transforme un fichier écrit en un langage de programmation évolué en en un fichier exécutable
en langage machine. Sous DOS, les fichiers exécutables portent l’extension .EXE
Le travail de l'unité de commande est réalisé à l’aide de plusieurs composants tels que le
décodeur, le séquenceur, l’horloge et différents registres tels que le compteur ordinal et le
registre d’instruction que nous détaillerons ultérieurement dans ce chapitre au dans les
sections circuits de l’UCT et registres de l’UCT.
A l'origine, cette unité est chargée de l'exécution des opérations booléennes et des opérations
arithmétiques (addition, soustraction, multiplication, division, comparaison, etc.) pour des
entiers. En parallèle à cette unité, on peut trouver une unité de calcul sur les réels ainsi qu'une
unité de traitement dédiée aux opérations multimédia (traitement des images et du son).
L’UAL est alimentées par les registres généraux et le registre d’état. Le résultat d’une
opération est transmis au registre accumulateur.
Registre de sortie
3. Les registres:
Les registres sont des mémoires locales très rapides qui permettent de stocker des résultats
temporaires ou des informations de commande.
L'unité centrale comprend un certain nombre de registres pour stocker des données à traiter,
des résultats intermédiaires ou des informations de commande. Les registres ont une taille
réduite qui peut être de l’ordre de 1,2,4 ou 8 octets.
Chaque registre est dédié à un traitement particulier. Parmi ceux-ci on distingue les registres
suivants :
Il contient l'adresse de la prochaine instruction à exécuter. Il est souvent noté par le symbôle
CØ.
Il contient des informations sur l'état du système (retenue, dépassement, etc.). Une partie des
bits de ce registre, aussi appelé registre condition, constitue des drapeaux (flags) qui indiquent
certains états particuliers.
Par exemple à la fin de chaque opération on peut y trouver le signe du résultat (Négatif, Zéro
ou Positif), ainsi qu'une éventuelle retenue (Carry) ou un dépassement de capacité (Overflow).
Ces bits indicateurs peuvent être testés pour déterminer la suite du déroulement du
programme lors des branchements conditionnels. Ces bits sont accessibles au programmeur.
2
Le branchement conditionnel consiste à exécuter, si une certaine condition est vérifiée, une portion du
programme qui n’est située forcément à la suite de l’instruction courante.
3
L’appel à une routine ou traitement itératif est un traitement qui se répète et par la suite une fois le bloc
d’instruction est exécuté une fois, on retourne à l’instruction du début du bloc.
CF BF PF ZF SF OF IF
Carry Flag Borrow Flag Parity Flag Zero Flag Sign Overflow Interrupt
Flag flag Flag
Exprime Exprime un Exprime la Vérification Exprime Indique le Autorisation
une retenue emprunt lors parité de le signe dépassement ou non des
de la l’annulation si négatif de capacité interruptions
soustraction du résultat ou
d’une positif
opération.
- L’accumulateur (ACC) :
Le registre ACC, appelé aussi registre AX pour les microprocesseur de type INTEL, est
accessible au programmeur et très sollicité. Certaines machines possèdent plusieurs
accumulateurs.
Ils permettent de limiter les accès à la mémoire, ce qui accélère l'exécution d'un programme.
Ils peuvent conserver des informations utilisées fréquemment, des résultats intermédiaires,
etc. Ils sont accessibles au programmeur.
On peut citer par exemple pour les microprocesseur de type INTEL les registre de travail
suivants :
Exemple :
Add AX, BX
Ce registre sert à stocker les compteurs dans une boucle, le nombre de positions lors d’une
opération de décalage…Il est accessible par le programmeur.
Exemple :
Algorithme Code
AX 2 mov AX,2 ;affectation de la valeur 2 à AX
Pour de 1 à 5 faire mov CX,5 ;affectation de la valeur 5 à CX
AX AX+1 boucle : ;etiquette de la boucle
Fin pour ADD AX,1 ;ajout de la valeur 1 à AX
Loop boucle ;Décrémentation de CX et retour au
niveau de l’étiquette de la boucle si
CX est non nul.
Ce registre est souvent utilisé pour manipuler les chaînes de caractères et pour l’affichage des
données.
Ils peuvent être utilisés comme des registres généraux mais ils ont une fonction spéciale
utilisée pour l'adressage indexé. Dans ce cas l'adresse effective d'un opérande est obtenue en
ajoutant le contenu du registre d'index à l'adresse contenue dans l'instruction. Ce type
d'adressage et de registre est très utile pour manipuler des tableaux. Le programmeur dispose
alors d'instructions permettant l'incrémentation ou la décrémentation du registre d'index. En
particulier les registres d'index peuvent être incrémentés ou décrémentés automatiquement
après chaque utilisation.
Une pile est une zone mémoire dans laquelle les informations sont rangées de façon contiguë.
Le pointeur de pile (Stack Pointer : SP) indique le sommet de la pile : la position de la
dernière information enregistrée. Dans certaines machines le pointeur de pile indique la
position où sera mémorisée la prochaine donnée. Le fonctionnement d'une pile est du type
Dernier Entré Premier Sorti (LIFO : Last In First Out). Les deux principales opérations liées à
la pile concernent l'ajout d'un élément dans la pile ou le retrait, souvent nommées
respectivement PUSH et PULL. Lorsqu'une donnée est enregistrée dans la pile elle est placée
à l'adresse qui suit celle du dernier mot stocké. Après l'opération le pointeur de pile est
incrémenté. Lorsque un mot est retiré de la pile il correspond à la dernière information qui y a
été entrée. Après l'opération le pointeur est décrémenté. Une pile est réservée à l'usage de
l'unité centrale, en particulier pour sauvegarder les registres et l'adresse de retour en cas
d'interruption ou lors de l'appel d'une procédure. Le pointeur de pile est accessible au
programmeur, ce qui peut engendrer souvent des erreurs faute de mauvaise manipulation.
Le décodeur :
il détermine quelle est l'opération à effectuer afin d’activer les circuits des microprogrammes
correspondants à l’action voulue et quels sont les opérandes nécessaire à son exécution.
Exemple :
C’est un circuit qui émet des impulsions permettant la synchronisation de tous les éléments de
l'unité centrale.
L’horloge est souvent construite à base de quartz, substance qui émet naturellement des
signaux périodiques. Ces impulsions périodiques constituent le cycle de base ou cycle
machine. L’intervalle de temps entre deux impulsions représente le cycle ou la période de
l’horloge.
Horloge
temps
Le séquenceur :
Exemple :
Après 2 top d’horloge, le séquenceur comprend que l’instruction d’addition est exécutée et
envoie un signe au compteur ordinal pour passer à l’instruction suivante.
BA BD
RA Mémoire RM
RA :Registre d’Adresse
CO RI
RM : Registre de Mot
RI : Registre d’instruction Décodeur Unité de
commande
CO : compteur Ordinal
BA :Bus d’Adresses Séquenceur
- émettre un ordre de lecture du mot mémoire dont l’adresse se trouve dans le compteur
ordinal ;
- émettre un ordre de lecture de la donnée située en MC et dont l’adresse est fournie par
l’étape2;
- placer cette donnée dans un registre interne du CPU ou bien dans l’accumulateur selon le
travail demandé par l’instruction
Application :
- Une case mémoire est sur 4 octets et une adresse mémoire est sur 12 bits.
Citer les étapes d’exécution de ce programme en précisant le contenu du CO, RI, AX, BX et
la variable C en mémoire.
Solution :
Adresse de A = 64(hexa)
Adresse de B = 78(hexa)
Adresse de C = 79(hexa)
MC
14 C6 064 078
15 B3 079 000
64 00 00 00 02
78 00 00 00 04
79
… …
Première étape :
CO 014
cette adresse sera transportée par le bus d’adresse pour lire une case mémoire et transmettre
son contenu au registre d’instruction.
RI C6 064 078
CO 015
Deuxième étape :
troisième étape :
- placer cette donnée dans un autre registre tel que BX vu que l’accumulateur est occupée.
AX 00 00 00 02
BX 00 00 00 04
AX 00 00 00 08
Première étape :
CO 015
Cette adresse sera transportée par le bus d’adresse pour lire une case mémoire et transmettre
son contenu au registre d’instruction.
RI B3 079 000
CO 016
Deuxième étape :
Troisième étape :
AX 00 00 00 08
MC
078 00 00 00 08
Un cycle d'instruction est la période de temps nécessaire pour effectuer les trois étapes de
recherche, de décodage et d’exécution. Ce cycle peut se décomposer en un cycle de recherche
(instruction et opérandes), un cycle décodage et un cycle d'exécution .
Exemple :
Soit l’instruction suivante : ADD AX, 5 qui ajoute au contenu de l’accumulateur la valeur 5.
Supposons que cette instruction nécessite 3 tops d’horloges pour l’étape de recherche, 1 top
d’horloge pour le décodage et 2 tops pour l’exécution. Le chronogramme d’exécution de cette
instruction peut se présenter comme suit :
Horloge
Cycle d’instruction
3. La technique de pipeline :
Le microprocesseur est chargé d’exécuter les diverses instructions d’une programme le plus
rapidement possible. Face à un ensemble d’instructions le microprocesseur peut fonctionner
de deux manières possibles : séquentielle ou selon la technique de pipeline.
- Fonctionnement séquentiel :
Lors d’une exécution séquentielle, un microprocesseur exécute une seule instruction à la fois :
Il doit achever toutes les étapes relatives à l’exécution d’une instruction (Recherche, décodage
et exécution) pour pouvoir passer à l’instruction suivante.
Exemple :
R D E
I1
R D E
I2 R D E
I3
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
Remarque :
Le processeur ne peut pas exécuter la même étape (exemple le décodage) pour deux
instruction en même temps.
Exemple :
R D E
I1
I2 R D E
I3 R D E
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
1. La fréquence d’horloge :
La durée d’exécution d’une instruction est mesurée en tops d’horloge. Donc plus la période de
cette horloge est réduite plus le temps d’exécution de l’instruction en secondes est court.
La fréquence de l’horloge est l’inverse de la période et elle est calculée en hertz (Hz).
Ce qui nous ramène à conclure que l’augmentation de la fréquence (C’est à dire la diminution
de la période) influence le nombre d’instructions exécutées par secondes devenant plus élevé
et ainsi rendre le microprocesseur plus performant.
Exemple :
Soit une instruction dont l’étape d’exécution nécessite 3 tops horloge, l’étape de décodage 1
top
Remarque :
La durée d’exécution est inférieure pour une fréquence plus élevée.
Le temps le plus pénalisant au cours de l’exécution d’une instruction est le temps de recherche
de d’une instruction ou d’une données dans la mémoire centrale.
La taille du bus de données agit sur le nombre des accès mémoires effectués au cours d’une
instruction et par la suite il constitue l’un des critères de performance du microprocesseur les
plus importants
Pour cette raison, On distingue souvent les microprocesseurs par la taille de leurs bus de
données. Par exemple, on dit la famille des microprocesseurs INTEL 8 bits, la famille 16 bits
ou la famille 32 bits.
3. La mémoire cache :
On rappelle que la mémoire cache est une mémoire de petite taille (quelques kilos octets)
servant à stocker une portion du programme en exécution. Son rôle est minimiser les accès du
microprocesseur à la mémoire centrale en les remplaçant par l’accès à la mémoire cache dont
le temps d’accès est plus réduit. Plus la taille de la mémoire cache est grande moins on a
d’accès à la mémoire centrale et plus le gain en temps d’accès est important. Ce qui fait de la
taille de la mémoire cache un autre critère de performance du microprocesseur.
Les microprocesseurs ont connu une évolution au cours du temps. Aujourd’hui les deux
grandes marques les plus commercialisés sur le marché sont : les processeur INTEL et AMD.
Figure
CHAPITRE
8
Les modes d’adressage
I- Introduction :
I- Introduction :
Une instruction est formée d’une actions et des opérandes nécessaire à son exécution.
Cependant le programmeur doit indiquer au microprocesseur comment accéder aux données
des opérandes. La façon dont le microprocesseur doit suivre pour trouver la donnée en
mémoire s’appelle mode d’adressage.
MC
RI Code Opération Adresse
Transformation
Donnée
Adresse effective
Les opérandes sont des données, devant être stockées en mémoire. Les manières d'accéder à
ces données sont multiples.
1. Adressage immédiat:
Exemple : BX
RI MOV BX 10 10
Avantage : c’est le mode d’adressage le plus rapide vue qu’il ne nécessite pas un accès à la
mémoire.
2. Adressage direct:
On place dans l’instruction l'adresse d'une case de la mémoire principale qu'on va aller
chercher ensuite ;
Exemple : BX
MC
00
RI MOV BX 100 .
.
(1) .
.
BX (2) 99
10 100
10
Avantage : c’est la façon l plus simple de spécifier une opérande en écrivant son adresse.
On place la donnée dans un registre et on place l'adresse du registre dans l'instruction. Cet
adressage requiert un temps plus court car les registres étant plus petits et leur accès est plus
rapide;
3. Adressage indirect:
On place l'adresse d'un registre ou d’une case mémoire qui contient l’adresse effective de
l’opérande en mémoire principale ;
Exemple :
00
RI MOV BX 100 .
18 10
(1) .
.
100
Hedhli & Gafsi . Page 3
.
200
Architecture des systèmes informatiques
MC
BX 200
(2)
10 (3)
10
(2): lire le contenu de la case d’adresse 100 et se déplacer suivant son contenue vers
l’adresse 200.
=> [100] est l’adresse effective => 200 est l’adresse effective.
Remarque :
On a : [[100]] est l’adresse effective => [200] est l’adresse effective => 10 est l’adresse
effective.
BX
=> 18
Avantage : Cette méthode permet de garder la séquentialité des instructions pour que le
compteur ordinal garde son ordre.
4. adressage indexé:
On définit des plages d'adressage et on se contente de donner l'index de la donnée dans cette
plage (plus courte) ; Ce mode utilise un ou plusieurs registres spéciaux appelés registres
d’indexes.
Le déplacement fourni dans la zone adresse de l’instruction est ajouté au contenu du registre
d’index spécifié.
Exemple :
MC
00
RI MOV AX RX 100 .
10
(1) .
.
RX AX 100
. (2)
2 10 .
(3) 10 102
(2): Se déplacer suivant le contenue du registre d’index de 2 cases vers l’adresse 102.
100 + [RX] est l’adresse effective => 102 est l’adresse effective.
5. Adressage basé:
Exemple : BX
MC
00
RI MOV AX RB 2 .
10
(1) .
.
RB AX 100
. (2)
100 10 .
(3) 10 102
Exemple :
Ce mode d’adressage est utile pour rechercher les adresses des portions d’un programme.
6. Adressage relatif:
L’adresse effective est obtenue à partir de la somme du compteur ordinal avec une
consante qui se trouve dans l’instruction.
Exemple :
Instruction de branchement : RI JMP @
7. Adressage implicite:
On peut trouver des action qui n’indiquent pas explicitement une opérande ou une donnée
car ils se réfèrent implicitement à l’un des registre de L’unité centrale de traitement.
Ainsi une même action peut être codée différemment selon le mode d’adressage employé dans
l’instruction.
Exemple :
Opération d’addition :
La première instruction est une addition immédiate avec une variable de la mémoire et la
deuxième instruction présente une addition immédiate avec un registre.
Il est clair que la première opération d’addition sera plus coûteuse en terme de temps vu
qu’elle nécessite un accès à la mémoire centrale.
D’où le mode d’adressage utilisé lors d’une opération influe le temps d’exécution de cette
instruction.
CHAPITRE
9
Les Périphériques
I- Introduction :
I- Introduction :
Dans les ordinateurs de type PC, on trouve les périphériques d’E/S standard suivants :
Le clavier: Périphérique d’entrée ayant pour rôle d’entrer les données vers l’UCT
moyennant son unité d’entrée standard.
L’imprimante : Périphérique de sortie ayant pour rôle d’afficher les données sur papier
venant de l’UCT moyennant son unité d’entrée sortie standard.
L’écran : Périphérique de sortie ayant pour rôle d’afficher les données, sur le
moniteur, venant de l’UCT moyennant son unité de sortie standard (carte VGA).
Les connecteurs qui connectent le périphérique avec ses unités d’E/S portent des noms
standards. A titre d’exemple les connecteurs nommés LPT1 et LPT2 pour l’imprimante et les
connecteurs COM1 et COM2 pour la souris.
Les périphériques de stockage servent à supporter des données, des textes pour les enregistrer
pendant un temps préétabli. A ces périphériques, on attribue souvent le nom mémoires de
masse vue la grande quantité d’informations qu’ils contiennent.
L’unité centrale communique avec les unités périphériques par l’intermédiaire du sous-
système d’entrée/sortie. Il existe une grande variété d’architectures. En effet, une opération
d’entrée sortie nécessite l’exécution d’une instruction d’E/S dans le CPU qui décide de
l’instant et de la nature de l’échange en établissant une liaison directe avec le périphérique ou
en choisissant un organe autonome pour la gestion de l’échange à savoir le canal
d’entrée/sortie ou l’accès direct à la mémoire (DMA : Direct Mémory Access).
Dans le cas de la liaison directe entre CPU et périphérique, le processeur se trouve bloqué
pendant toute la durée de l’échange : ce qui mène à un gaspillage du temps. Une technique
résolvant ce problème se base sur la suspension du programme d’exécution le temps d’un
cycle mémoire, ce qui permet aux unités périphériques de voler de temps en temps au CPU
cette durée considérée d’effet négligeable sur le temps d’exécution. Cette technique (vol-de-
cycle) est réalisée avec les DMA et les canaux.
Le DMA est utilisé dans les mini-ordinateurs, il peut être connecté entre un contrôleur de
périphérique et le bus mémoire ,permettant au périphérique d’accéder à la mémoire sans
passer par le CPU .Le DMA passe en priorité par apport au CPU en cas de demande
simultanée d’accès à la mémoire.
erreurs qui peuvent avoir lieu. Dans la technique du vol-de-cycle, le DMA intervient dans les
cycles mémoires pendant le transfert.
Contrôle
CPU DMA
Interruption
Bus I/O
Les canaux sont plus performants que les DMA. Ils sont programmables et ont un accès
prioritaire à la mémoire par la technique du vol-de-cycle. En plus ils s’occupent de vérifier
l’intégrité des informations échangées. Il existe trois types de canal :
Le canal sélecteur :
Adapté aux échanges avec des unités rapides, telles les unités de disques.
Le canal multiplexé :
Adapté pour les unités périphériques à faible débit, se basant sur le partage des canaux
multiplexés en sous-canaux rattachés aux différentes unités travaillant par tranche de temps.
On distingue :
Chaque sous-canal est activé à tour de rôle pour le transfert d’un octet.
Les tranches de temps sont utilisées pour échanger des blocs d’octets.
Dans un échange en mode canal, plusieurs organes de l’ordinateur entrent en jeu notamment
le CPU, la mémoire centrale, le canal, le contrôleur et son périphérique. En présence de
plusieurs canaux fonctionnant en parallèles, un énorme trafic de données apparaît entre la
mémoire et les unités périphériques, pendant que le CPU s’occupe du traitement des
informations.
3. Contrôleur de périphérique:
Chaque unité périphérique doit être reliée à un bus ou à un canal par l’intermédiaire d’une
électronique appropriée. Le rôle de cette unité appelée contrôleur est d’adapter la diversité des
périphériques (débit, temps de réponse, format des données) à une interface commune,
obéissant aux normes adoptées par le constructeur.
Cette unité assume un certain nombre important de taches, visant à décharger le canal ou tout
autre dispositif d’échange. Elle s’occupe de façon autonome des commandes détaillées de
chaque périphérique, de gestion des incidents et de la détection des erreurs.
Les cartes d’extensions et les bus d’interface possèdent un contrôleur intégré à la carte. On
cite à titre d’exemple :
L’évolution du bus parallèle SCSI mène à SCSI-3 un bus série, pouvant utiliser la fibre
optique et une vitesse de transfert qui balance entre 51Mbits/s et 1 Gbits/s. A la différence à
une interface parallèle, l’interface série ne permet de transférer qu’un seul bit à la fois.
Série d’exercices
Exercice1 :
Soit une mémoire centrale de 16 Méga mots de 32 bits chacun, réalisée avec des puces de 64
kilo bits.
1/ Quelle est la taille de bus de donnée ?
2/Quelle est la taille en MO (mégaOctet) de la mémoire centrale ?
3/Quelle est la taille de bus d’adresse ?
4/Chercher l’adresse début et l’adresse fin de l’espace mémoire en octale.
5/Combien de puces mémoires nécessaires pour réaliser cette mémoire ?
Exercice2 :
Terminer l’annotation du schéma suivant en remplissant les espaces pointillés et expliquer les
étapes numérotées :
RA Mémoire 2
1 B2
RI
B1
3 …………..
CO Décodeur
4
5 Séquenceur
RA:Registre d’Adresse
RI: Registre d’Instruction
CO:Compteur Ordinal
B1 :………………….
B2 :..…………………
Exercice3 :
Etant donné le programme en assembleur suivant :
Assume cs :code
Code segment
Main :
Mov ah,1
Int 21h
Mov dl,al
Hedhli & Gafsi
Architecture des systèmes informatiques
Mov ah,2
Int 21h
Mov ah,4ch
Int 21h
Code ends
End main
Exercice4 :
Soit le chronogramme suivant :
Horloge
Exercice5 :
(3F51)16 + (563)8 = ( ) 8
0,125 * 105 + 0,953 *104 = le résultat doit être normalisé
(33. 24)10 + (28. 40)10 = ( ) 10 = ( ) 2 avec une précision de 4
Transformer ce résultat sous la forme de mantisse, exposant.
Exercice6 :
Indiquer la valeur décimale codée par le nombre suivant 01110101 si le nombre représente
un nombre en complément à 2.
Exercice7 :
Exercice8 :
1. Donnez la taille en KO d’une image numérisée haute résolution (800*640) sachant que les
couleurs sont codées avec 16 bits ?
2. Donner la taille en MO d’un DVD vidéo (1024 pistes concentriques, 512 octets par
secteur, tête laser pouvant lire sur 8 couches différentes, 1024 secteurs par pistes) ?
3. Déterminer le nombre d’images que peut contenir un film compressé à 16 % sur le DVD
de la question 2.
Bibliographie