Cours d`archi ig2

publicité
BTS INFORMATIQUE DE GESTION
COURS D’ARCHITECTURE
2è ANNEE
BTS IG2 -Cours d’Architecture
Page 1 sur 55
Chapitre 1
La Numération
3
Chapitre 2
Le Codage
5
Chapitre 3
Le codage des nombres flottants
8
Chapitre 4
Algèbre de BOOLE
10
Chapitre 5
La Logique Combinatoire
15
Chapitre 6
La Logique Programmée
20
Chapitre 7
Les Mémoires
24
Chapitre 8
La Gestion des E/S
31
Chapitre 9
La Transmission des données
36
Chapitre 10
Les puces RISC
47
Chapitre 11
Les ordinateurs multiprocesseurs
49
Chapitre 12
Le Microprocesseur
52
BTS IG2 -Cours d’Architecture
Page 2 sur 55
Chapitre 1 - La Numération
1 Les systèmes de numération
La numération est la façon d'énoncer ou d'écrire des nombres (Numérations arabe et romaine). C'est aussi un
système qui organise la suite des nombres en séries hiérarchisées. Il existe une multitude de systèmes de
numération (appelé aussi base), en fait, autant qu'il y a de nombres. Nous allons nous intéresser à quatre d'entre
eux, ceux utilisés par les logiciels.
A Le système décimal
C'est le système le plus utilisé et j'espère qu'il n'a plus de secrets pour vous !!!
Il va nous servir d'exemple pour expliquer les 3 autres. Il est basé sur le nombre 10, 10 étant la base du système
décimal. Les chiffres 0, 1, .....,8, 9, soit 10 caractères au total sont utilisés pour la représentation des nombres.
Un nombre est subdivisé en puissances de 10, que l'on énonce en allant de la plus élevée à la plus faible.
Exemple :
On note en indice la base du système de numération dans lequel le nombre est représenté. Pour le nombre
décimal 159, chaque chiffre à ce qu'on appel un rang. Le chiffre 1 a le rang des centaines, on dit que son "poids "
est de cent. Pour le nombre 1995, le chiffre 1 est appelé le chiffre de poids fort MSB et le 5 le chiffre de poids
faible LSB.
B Le système binaire
C'est le système que l'on devrait tout le temps utilisé, mais il est peu pratique dans la vie courante. Par contre en
informatique il est le plus utilisé. En effet un ordinateur n'a que 2 possibilités OUI ou NON, VRAI ou FAUX
(l'homme ayant la 3ème possibilité " je ne sais pas "). Ces 2 possibilités sont représentées par les chiffres 0 et 1,
soit 2 caractères au total, utilisés pour la représentation des nombres. Le système binaire est donc basé sur le
chiffre 2. Comme en décimal, un nombre est subdivisé en puissances de 2, que l'on énonce en allant de la plus
élevée à la plus faible.
Exemple :
En base 2, on ne parle plus de chiffres mais de bits (en anglais Binary Digit), et on dit bit de poids le plus fort
(MSB Most Significant Bit) et bit de poids le plus faible (LSB Less Significant Bit)
Le comptage en binaire ne diffère pas, sur le principe, du comptage en décimal. Lorsque la capacité numérique
d'une position est dépassée, on obtient une retenue se reportant sur la position suivante ; ceci arrive lorsque l'on
dépasse le chiffre 1 dans une position du système binaire et le chiffre 9 dans une position du système décimal.
C Le système octal
C'est un système qui découle du système binaire. Il est constitué de 8 caractères, 0, 1, à 7. Il est surtout utilisé
dans les systèmes d'exploitations tels que Unix pour les droits sur les fichers, répertoires etc... (voir cours SE).
D Le système hexadécimal
On a vu lors de l'étude du système binaire que les nombres devenaient vite très longs. Ce système binaire est
surtout utilisé en électronique, automatique, mécanique, les informaticiens utilisent plus facilement le système
hexadécimal.
Les chiffres 0, 1, .....,8, 9, A, B, C, D, E et F soit 16 caractères au total sont utilisés pour la représentation des
nombres.
A  10, B  11, C  12, D  13, E  14 et F  15
Un nombre est subdivisé en puissances de 16, que l'on énonce en allant de la plus élevée à la plus faible.
BTS IG2 -Cours d’Architecture
Page 3 sur 55
Exemple :
La base 16 est surtout utilisée dans les plans mémoire.
2. La conversion
Cela consiste à passer d'une base à une autre.
Base 10  Base 2 : Il est intéressant de savoir passer d'une base 2 à une base 10 et vice versa. Il existe
différentes méthodes, la plus simple est d'utiliser tout bêtement votre chère calculatrice.
Base 16  Base 2 : Pour ce qui est de la conversion de base 2 en base 16 et vice versa, il suffit : de 2 vers 16, de
regrouper les bits 4 par 4 (en commençant par les LSB !) et de convertir.
exemple : 01 1100 1001 0011(2)  1C93(h)
de 16 vers 2, d'éclater les chiffres et de former des paquets de 4 bits et de convertir.
exemple : 1B34D(h)  0001 1011 0011 0100 1101(2)
Voilà l'avantage de la base 16 sur la base 10 en informatique.
3. Les nombres négatifs (signés)
Dans une case mémoire, on ne peut entrer que 1 ou 0, c'est la seule chose que comprend un ordinateur. Pour
représenter les nombres négatifs, il a fallu trouver une solution. La solution la plus immédiate consiste à réserver
un digit binaire (bit) pour le signe, les autres bits représentant la valeur absolue du nombre.
La convention qui prévaut consiste à mettre le MSB à 0 pour représenter un nombre positif et à 1 pour un
nombre négatif. On parle de données ou nombres signés quand on utilise cette convention.
Exemple : sur 8 bits en nombres non signés on va de 0 à 255(10) alors qu'en nombres signés on va de -128 
1000 000 à +127  1111 1111
Nous allons voir comment obtenir ces conversions et leurs explications.
Le complément à 1 (restreint) :
Le complément restreint d'un nombre binaire s'obtient par simple inversion des valeurs des bits constituant ce
nombre.
Ainsi en considérant le nombre signé 10010 représentant le nombre -2(10)
il aura pour complément restreint 01101 soit 13 (10) ce qui ne représente pas grand chose.
Le complément à 2 (vrai) :
Le complément vrai d'un nombre binaire s'obtient, en inversant les valeurs des bits formant le nombre et en
rajoutant 1.
exemple : 0110 devient 1010 et 0000 devient bien 0000 (essayez).
Admettons que nous ayons des nombres sur 4 bits.
0100 représente
et son complément à 2 :
soit 4 ,
1100 représente
soit -4.
Le codage sur 8 bits ne permet plus d'obtenir des nombres compris entre 0 et 255 mais entre -128 et +127.
4. Les opérations arithmétiques en système binaire :
L'addition : Il suffit de savoir additionner et de se rappeler que 1+1, ne fait pas 2 mais 10 (2) !
La soustraction en complément à 2 : Pour faire des soustractions en binaire, il faut convertir le nombre à
soustraire en complément à 2 et faire une addition.
exemple sur 8 bits: 21 - 63 = -42
63 00111111 donc -63 11000000+1=11000001
donc 21 - 63  0001 0101 + 1100 0001 = 1101 0110  (-128+64+16+4+2) = -42
La multiplication : aucune difficulté, ce ne sont que des additions voir le TD
La division : aucune difficulté, ce ne sont que des soustractions voir le TD
Les nouveaux multiples : Dans le système décimal, on parle de kilo, méga...,ces multiples existent aussi en
bases 2 et 16 mais non pas les mêmes valeurs
1 kilo 210 = 1 024 unités
1 méga 220 = 1024 * 1024 = 1 048 576 unités
1 giga 230 = 1024 * 1024 * 1024 = 1 073 741 824 unités
1 téra 240 = 1024 * 1024 * 1024 * 1024 = 1 099 511 627 776 unités
BTS IG2 -Cours d’Architecture
Page 4 sur 55
Chapitre 2 - Le Codage
1. La représentation des nombres :
A Le code Gray ou code binaire réfléchi
Pour l'instant on a vu le code binaire naturel.
Le code gray est surtout utilisé pour la visualisation d'informations, ou pour la conversion de grandeurs
analogiques (par exemple la position angulaire d'un arbre en rotation).
exemple : on veut repérer la position d'une pièce mobile en utilisant des capteurs de réflexion.
Il y a un risque d'erreur dans le code binaire naturel. les marques sombres correspondent à une faible lumière
réfléchie ou à un 1 logique. Lors des transissions 1 à 2,3 à 4,4 à 5....il y a un risque de voir apparaître à la sortie
du dispositif, des combinaisons fausses. Par exemple, pour passer de la position 1 à la position 2, on peut obtenir
les combinaisons parasites 0 ou 3.
20
21
22
23
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
On est donc conduit à utiliser un code différent où seul un bit change quand on passe d'une position à une autre,
c'est le code Gray ou code binaire réfléchi. Ce code à la particularité de n'avoir qu'un bit qui change à la fois. Il
est utilisé dans les roues codeuses
20
21
22
23
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
B Le code BCD
Abréviation de Binary Coded Decimal en anglais et DCB Décimal Codé Binaire. Ce code cherche à concilier les
avantages du système décimal et du code binaire. Il est surtout utilisé pour l'affichage de données décimales
(calculatrices).
A chaque chiffre du système décimal, on fait correspondre un mot binaire de quatre bits.
Pour coder un nombre décimal en BCD, on va coder séparément chaque chiffre du nombre de base dix en
Binaire.
Exemple : 1985 Û 0001 1001 1000 0101 (BCD)
Attention :
- le nombre codé en BCD ne correspond pas au nombre décimal converti en binaire naturel.
- le codage décimal BCD est simple, mais il impossible de faire des opérations mathématiques avec !
2. La représentation des caractères
Le code EBCDIC : Extended Binary Coded Decimal Interchange, ce code est utilisé
principalement par IBM. Il peut être parfois assimilé à un code 9 bits quand il est fait usage
d'une clé d'imparité, (bit supplémentaire destiné à contrôler la validité de l'octet associé).
Le code ANSI : Certains logiciels utilisent la norme ANSI (American National Standard
Institute) qui reprend en grande partie le code ASCII. Ce code propose des extensions
BTS IG2 -Cours d’Architecture
Page 5 sur 55
différentes selon le " code de page ". Le code de page 850 est un jeu de caractères "
multilingue " alors que le code de page 864 définit le jeu de caractères arabes, le code de page
437 définit le jeu de caractères français...
La table des codes ASCII
Remarque : La table des codes ASCII ci-dessus, affiche les caractères imprimables et non les codes de
contrôle. En effet les caractères dont les codes sont 10, 13 et 27 en décimal, représentent respectivement
Line Feed (Aller à la ligne), Carriage Return (Retour Chariot) et Scape (Escape), le tableau ci-dessous en
donne quelques exemples.
code
00
01
02
03
04
carac
NULL
SOH
STX
ETX
EOT
code
15
16
17
18
19
20
carac
SI
DLE
DC1
DC2
DC3
DC4
05
06
07
08
09
10
11
12
13
BELL
BS
HT
LF
VT
NP
CR SO
21
22
23
24
25
26
27
28
NAK
SYN
ETB
CAN
ENQ ACK
EM SUB ESC
14
29
FS GS
Les nouveaux codes : Avec l’augmentation croissante du nombre d’utilisateurs de l’informatique et surtout la
quantité de caractères différents se trouvant dans les différentes langues, les organismes de normalisation ISO
travaillent depuis le début des années 90, à la création d’un code universel , l’ « UNIversal CODE » UNICODE.
Dans ces nouvelles tables de code, on y trouve les caractères latin (les nôtres), Tamoul (Inde), Cyrillique
(Grèce et Russie…) ou les idéogrammes Japonais et Chinois.
Ils existe donc deux nouveaux codes :
ISO/IEC 10646 : sur 32 bits donc 4294967296 caractères différents possibles.
UNICODE 1.1 : sur 16 bits et contenant 65536 caractères différents possibles. C’est ce derneir qui est
actuellement utilisé dans les différents SE modernes.
3. Les codes détecteurs d'erreurs
A l'intérieur de l'ordinateur les informations sont constamment " véhiculées ". Il est donc nécessaire de s'assurer
de la transmission convenable de ces informations. Pour cela on utilise divers moyens allant du simple contrôle
de parité jusqu'à l'élaboration de codes sophistiqués.
A Le contrôle de la parité : Aux n bits que comporte le code à l'origine, on ajoute 1 bit
supplémentaire. Ce bit est positionné de telle sorte que le nombre total de bits à 1 soit :
- pair, code dit à parité pair ;
- impair, code dit à parité impair.
Cette méthode n'est efficace que si l'erreur est sur un nombre impair de bits.
B Les codes autovérificateurs ou autocorrecteurs
La méthode précédente étant limitée, on a été amené à concevoir des codes vérifiant et corrigeant des erreurs
supérieures au simple bit.
Ces techniques ont été développé par l'américain R W Hamming et l'on parle souvent de codes de Hamming.
BTS IG2 -Cours d’Architecture
Page 6 sur 55
Il existe en fait deux techniques d'élaboration de ces codes.
VRC
P
A
G
LRC
0
0
0
0
1
1
1
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
1
0
0
1
1
0
1
1
0
 parité
croisée
C Les codes de blocs
Le principe consiste à construire une information en sectionnant l'information utile en blocs de longueur fixe et
en y ajoutant un certain nombre de bits de contrôle (bits de redondance).
Le mot de n bits reçu est un mot de code et le bloc de départ peut être reconstitué
Le mot de n bits reçu n'est pas un mot de code et le récepteur peut alors :
- Retrouver le bloc original (cas des codes autocorrecteurs) ;
ou - Redemander le bloc original (cas des codes vérificateurs).
L'efficacité d'un tel code sera d'autant meilleur que les mots qui le constituent seront distincts les uns des autres.
On définit ainsi la distance de Hamming, correspondant au nombre de bits qui varient entre deux mots successifs
de code. Plus elle est grande et plus le code est efficace (pour le code Gray la distance est de 1).
Parmi ces codes on trouve ::
- Le contrôle de parité verticale : VRC (Vertical Redundancy Checking)
- Le contrôle de parité horizontale : LRC (Longitudinal Redundancy Checking)
En utilisant ces codes de blocs et le contrôle de parité, il est possible d'assurer une vérification dite par parités
croisées ou LRC/VRC qui, en augmentant la distance de hamming, assure une meilleure détection et correction
des erreurs.
exemple : on souhaite transmettre les caractères PAG en code ASCII.
les valeurs hexadécimales des caractères transmis seraient donc dans cet exemple 50 41 47 56 et non pas
simplement 50 41 47 comme le code ASCII le donnerait.
D Les codes cycliques
Appelés CRC (Cyclic Redundancy Codes) ou codes polynomiaux, sont très utilisés car très facile à mettre en
oeuvre. Le principe consiste à considérer que toute information de n bits peut être transcrite sous une forme
polynomiale :
10111 correspond à :
A partir d'une information de départ I(x) de i bits on va construire une information redondante R(x) de r bits et
l'émettre à la suite de I(x), de telle sorte que le polynôme résultant N(x) soit divisible par le polynôme générateur
G(x). A la réception on divise le polynôme N(x) reçu par le même polynôme G(x) et le reste de cette division
doit être nul si la transmission est correcte.
Le choix d'un bon polynôme générateur est important si l'on veut détecter un maximum d'erreurs. Un des
polynômes les plus utilisés, normalisé par le CCITT est :
et permet de détecter
- 100% des erreurs simples et doubles
- 100% des erreurs sur un nombre impair de bits
- 100% des paquets d'erreurs d'une longueur <= 16 bits
- 99,99% des paquets d'erreurs d'une longueur 18 bits
BTS IG2 -Cours d’Architecture
Page 7 sur 55
Chapitre 3 - Le codage des nombres flottants
1. Introduction :
Le but de ce cours est de vous montrer le codage, au sein de l'ordinateur, de n'importe quel nombre, entier ou non et signé :
3,144592 2,718 -1E218 etc..
Comme vous l'avez déjà vu, un microprocesseur n'est pas conçu pour travailler en base 10 mais en base 2.
Rappel : pour passer d'un nombre entier de base 10 en base 2, il suffit de faire des divisions successives par 2 jusqu'à obtenir
un reste égal à 1 ou 0.
2. Conversion :
Par analogie, on en déduit que pour convertir une fraction décimale en base 2, il suffit de réaliser des multiplications
successives par 2, jusqu'à obtenir une partie fractionnaire nulle.
Exemple : soit à convertir 32,125 en base 2 : on sait que 32 est équivalent à 100000 et
0,125 * 2 = 0,25
partie entière = 0 et partie fractionnaire = 0,25
0,25 * 2 = 0,5
partie entière = 0 et partie fractionnaire = 0,5
0,5 * 2 = 1
partie entière = 1 et partie fractionnaire = 0
Ce qui donne : 32,125 = 32 + 0,125 100000 + 0, 001 = 100000,001 en base 2
Normalisation
Le problème qui se pose maintenant est le stockage en mémoire ou dans un registre d'une quantité écrite en base 2.
Dans un premier temps, tout nombre sera traduit sous forme d'un produit entre une fraction (une fraction est un nombre avec
une partie entière nulle, c'est à dire inférieur à 1 en valeur absolue ou encore commençant par un point décimal) et une
puissance de 2.
Exemple : 32,125 s'écrit aussi 100000,001 ou encore 0,100000001*2 6
Pour mémoriser un nombre, il suffit donc de coder sa puissance de 2 et sa fraction. L'intérêt de cette méthode est que l'on sait
toujours ou se trouve le point décimal et qu'il n'y a plus de partie entière, on obtient donc un mode de représentation figé.
Il est clair qu'il faut aussi un bit pour mémoriser le signe (0 = + et 1 =  ), un bit pour chaque chiffre de la fraction en base 2
et quelques chiffres pour représenter la puissance (positive ou négative) traduite en base 2.
Remarque : si la fraction est trop grande, il n'est pas question de prendre en compte tous les chiffres.
3. Virgule flottante
En clair, tout nombre sera désormais écrit sous la forme d'un produit entre une puissance de 2 et une fraction dont les chiffres
sont les chiffres significatifs du nombre. La seule exception étant le 0 qui n'a pas vraiment de chiffres significatifs.
Tout nombre non nul peut être mis sous ce format, appelé virgule flottante normalisée. Nous le représenterons par : SM*2e
où S est le signe, M la mantisse et e l'exposant.
La réalité
pour stocker un nombre décimal dans une mémoire binaire, il suffit de le convertir en binaire, puis de mettre le résultat au
format virgule flottante normalisée : SM*2e avec 1/2 M<1
Remarque : (1/2 M permet d'éliminer les 0 à droite de la virgule de façon à obtenir plus de chiffres significatifs,
précision).
Un nombre p de bits sera utilisé pour la fraction m. Le premier bit de celle-ci étant nécessairement 1.
Un nombre p' de bits sera utilisé pour l'exposant e. Pour coder les exposants négatifs, il a fallu imposer un codage (autre que
le complément à 2). Une constante, k, est ajoutée à l'exposant de telle manière que l'ensemble devienne positif. K+e s'appelle
la caractéristique du nombre.
BTS IG2 -Cours d’Architecture
Page 8 sur 55
Nous allons voir les deux formats les plus utilisés dans un micro-ordinateur. Tous les deux comptent 32 bits avec p = 23 et p'
=8
Norme IBM sur 32 bits
31 à 24
23
e+128
Signe
22 à 0
23 premiers chiffres de la Mantisse
Norme IEEE sur 32 et 80 bits
31
30 à 23
22 à 0
Signe
e +126
23 premiers chiffres de la Mantisse
79
78 à 64
63 à 0
Signe
Exposant : e+16383
Mantisse
Pour le 80387, cela permet d'obtenir des nombres allant de 3,4*10e-4932 à 1,2*10e+4932 (ce qui est supérieur au nombre
d'atomes composants la terre !)
BTS IG2 -Cours d’Architecture
Page 9 sur 55
Chapitre 4 - Algèbre de BOOLE
1. Définition
C'est une algèbre binaire mise en ?uvre par le mathématicien George BOOLE (1815-1864) pour étudier la
logique. Les variables, dites booléennes, ne peuvent prendre que deux valeurs : VRAI ou FAUX ou bien encore
1 ou 0. On peut alors définir des opérateurs sur ces variables et consigner le résultat dans une TABLE DE
VERITE. Ces opérateurs peuvent être réalisés par des circuits électroniques : ils sont alors appelés PORTES
LOGIQUES.
2. Portes logiques de base
Elles sont au nombre de 6
A Opération suiveuse : OUI (YES)
Soit x une variable booléenne, on note x l'opération OUI.
Table de
Symbole
vérité
X
S
0
0
1
1
B Opération inversion : NON (NOT)
Soit x une variable booléenne, on note /x l'opération NON.
Table de
vérité
X
S
0
1
1
0
Symbole
N.B.: Le petit trait est utilisé dans tous les schémas pour représenter le NON.
C Opération produit : ET (AND)
Table de vérité
X
Y
S
0
0
0
0
1
0
1
0
0
1
1
1
Symbole
D Opération somme : OU (OR)
BTS IG2 -Cours d’Architecture
Page 10 sur 55
Table de vérité
X
Y
S
0
0
0
0
1
1
1
0
1
1
1
1
Symbole
E Opération NON ET (NAND)
Table de vérité
X
Y
S
0
0
1
0
1
1
1
0
1
1
1
0
Symbole
F Opération NON OU (NOR)
Table de vérité
X
Y
S
0
0
1
0
1
0
1
0
0
1
1
0
Symbole
G Opération OU EXCLUSIF (XOR)
Table de vérité
Symbole
X
Y
X Y
0
0
0
0
1
1
1
0
1
1
1
0
3. Quelques propriétés :
On remarquera que la plupart des règles de l'algèbre classique s'appliquent ou que d'autres se comprennent d'une
façon assez intuitive.
Voici les principales lois de l'algèbre de BOOLE sur les opérateurs ET et OU :
Loi
Identité
Opérateur ET
Opérateur OU
1.A=A
0+A=A
BTS IG2 -Cours d’Architecture
Page 11 sur 55
Nullité
Associativité
0.A=0
1+A=1
(A.B).C=A.(B.C)
(A+B)+C=A+(B+C)
A.B=B.A
A+B=B+A
Commutativité
Distributivité
A.(B+C)=A.B+A.C
Idempotence
A.A=A
A+A=A
Inversion
A./A=0
A+/A=1
Absorption
A.(A+B)=A
A+A.B=A
Loi de De
Morgan
/(A.B)=/A+/B
/(A.B=/A./B
4. Fonction logique :
Pour résoudre des problèmes de logique, on aura souvent besoin de plusieurs variables et on notera le résultat :
f(A,B,C...)
exemple : fonction majorité où f(A,B,C)=1 si on a une majorité de 1, 0 sinon. On peut alors décrire la fonction à
l'aide des opérateurs de base.
A
B
C
f(A,B,C)
0
0
0
0
0
0
1
0
0
1
0
0
0
1
1
1
1
0
0
0
1
0
1
1
1
1
0
1
1
1
1
1
c'est à dire, f(A,B,C)=1 si
A=0 ET B=1 ET C=1
OU
A=1 ET B=0 ET C=1
OU
etc..
Remarques:
- Cette façon d'écrire f(A,B,C) n'est pas unique.
- On peut remarquer aussi que f(A,B,C) = A.B+A.C+B.C.
Cette expression est plus simple et donc préférable lors de la réalisation des circuits électronique, car plus
économique puisqu'elle utilise moins de portes logiques. Il existe des méthodes comme les tableaux de
KARNAUGH pour simplifier les expressions.
BTS IG2 -Cours d’Architecture
Page 12 sur 55
5. Tableau de KARNAUGH :
Présentation : Considérons une fonction f de n variables. La table de vérité de f possède alors 2 exposant n cases
(2 exposant n combinaisons). Les valeurs que peut prendre f sont regroupées en un tableau de 2 exposant n cases
en utilisant, pour le codage du tableau, le code GRAY.
Ce codage du tableau permet de dégager certaines propriétés d'adjacence. Lorsque deux cases sont côte à côte,
une seule variable change de valeur, les autres sont invariantes. On peut trouver aussi des groupements plus
importants possédants de moins en moins de variables invariantes (cf. TD). Ces regroupements conduisent à une
réduction de la table, donc à une simplification de l'expression de f. En regroupant par 2, 4 ou 8... cases, on
élimine 1, 2 ou 3... variables.
BC \ A
00
01
11
10
0
F(/A,/B,/C)
F(/A,/B,C)
F(/A,B,C)
F(/A,B,/C)
1
F(A,/B,/C)
F(A,/B,C)
F(A,B,C)
F(A,B,/C)
Exemple : fonction majoritaire :
Trois regroupements:
1 : C est variant,
2 : A est variant,
3 : B est variant.
Equivalence entre circuits :
/(X.X)=/X et /(X+X)=/X, ainsi les deux opérateurs NAND et NOR peuvent servir d'inverseur
BTS IG2 -Cours d’Architecture
Page 13 sur 55
On obtient des résultats similaires en utilisant des opérateurs Non OU (cf. TD). On dit que les opérateurs Non ET
et Non OU sont "complets" puisqu'on peut avec un seul de ces opérateurs, utilisé autant de fois que nécessaire,
réaliser n'importe quelle fonction booléenne. Ces deux portes étant faciles à fabriquer, elles sont à la base des
circuits électroniques programmables tels les PALs et les GALs que nous ne verrons pas dans ce cours.
BTS IG2 -Cours d’Architecture
Page 14 sur 55
Chapitre 5 - La Logique Combinatoire
1. Définition :
Un circuit combinatoire est un circuit dont les sorties ne dépendent que des entrées. On l'oppose au circuit
séquentiel dont les sorties dépendent non seulement des entrées mais aussi de l'état précédent dans lequel étaient
les sorties.
La synthèse des circuits combinatoires sort du cadre de ce cours. On fera néanmoins une analyse en TD des
circuits fondamentaux présentés ci-après.
2. Le comparateur
C'est un circuit fort utile puisqu'il permet de comparer 2 mots binaires. La sortie vaut 1 si les 2 mots sont
identiques, 0 sinon.
schéma : Voici un exemple de comparateur sur les mots de 2 bits (A1, A0) et (B1, B0).
3. L'additionneur
Avant de pouvoir faire des calculs complexes, le microprocesseur doit être capable de faire des additions. Pour
cela, il nous faut être capable de construire le demi-additionneur, élément de base, pour additionner 2 bits.
A Le demi-additionneur
Intéressons-nous à la table de vérité de l'opération "somme" de 2 bits.
X
Y
Somme
Retenue
0
0
0
0
0
1
1
0
1
0
1
0
1
1
0
1
On s'aperçoit que la table de vérité de "somme" est celle de l'opérateur OU exclusif et que la retenue correspond
à l'opérateur ET.
BTS IG2 -Cours d’Architecture
Page 15 sur 55
B L'additionneur complet
Lors d'une addition sur plusieurs bits, il faut tenir compte d'une retenue éventuelle, résultant d'un calcul
précédent. On décompose l'addition en 2 demi additions. On additionne d'abord X à Y, puis ce résultat à la
retenue initiale. X + Y + R = (X + Y) + R
Les sorties du premier additionneur ou du deuxième peuvent générer une retenue intermédiaire (RI1 et RI2).
Voyons à partir de la table de vérité, comment obtenir la retenue finale (RF).
X
Y
R
RI1
S1
RI2
S2
SF
RF
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
1
0
0
1
0
1
1
0
0
1
1
0
1
1
0
0
1
1
0
0
0
1
0
1
1
0
1
0
1
0
1
1
0
0
1
1
1
0
1
0
0
0
0
1
1
1
1
1
0
0
1
1
1
on a en entrée
on obtient
on veut
Comme on pouvait s'y attendre SF=S2. On s'aperçoit aussi que RF=RI1+RI2. Ces constatations permettent de
construire le schéma suivant :
On peut alors générer l'addition sur n bits. La retenue de l'addition sur le bit n° (i-1) venant sur l'addition du bit
n° i.
Soit l'addition sur deux bits de deux nombres notés (A1,A0) et (B1,B0), le résultat s'écrit : (S2,S1,S0) sur trois
bits.
3. Le multiplexeur
C’est un circuit qui permet de sélectionner une ligne d'entrée parmi 2 puissance n lignes et de la relier
directement à la sortie : C'est un "aiguillage". Pour ceci, il faut être capable de désigner l'entrée. Ceci se fait
grâce à une commande codée sur n bits.
Schéma : Si on prend 2 bits de sélection (b1,b0), on peut alors sélectionner 1 ligne d'entrée parmi 2²=4.
BTS IG2 -Cours d’Architecture
Page 16 sur 55
Réalisation :
Applications : Réalisation d'une fonction :
On veut implanter la fonction suivante :
f = 1 si (b2,b1,b0) = 1, 3 ou 7
f = 0 sinon
Conversion parallèle/série :
Du côté parallèle les huit bits arrivent en même temps. On veut les ranger sur la ligne série à la queue leu leu.
C'est ce qui arrive quand on veut transmettre des octets sur une ligne téléphonique qui ne possède qu'un seul fil
de données. Il suffit alors de prendre un multiplexeur qui aurait en entrée les huit fils de la liaison parallèle et en
sortie la liaison série. Un compteur capable de compter de 000 à 111 pourrait alors cadencer les données sur la
liaison série.
4. Le démultiplexeur
BTS IG2 -Cours d’Architecture
Page 17 sur 55
C'est un circuit qui réalise la fonction inverse du précédent. Une entrée peut être reliée de façon unique à 2n
sorties par une commande codée sur n bits.
Schéma : Si on prend 2 bits de sélection (b1,b0), on peut alors sélectionner 1 sortie parmi 2²=4.
5. Le décodeur
C'est un circuit permettant de mettre à 1 une sortie parmi 2n, dont le numéro correspond au code binaire (sur n
bits) présent à l'entrée. Les autres sorties sont à 0.
Schéma :
Réalisation : décodeur 3 vers 8.
Application : L'une des plus typiques, est celle du décodage d'adresse. Supposons que l'on veuille une mémoire
de 8 Ko adressable de 0000 à 1FFF. Supposons aussi que nous ayons à notre disposition seulement des boîtiers
mémoire de 2 Ko. Comment organiser ces boîtiers de façon à ce que le microprocesseur ait l'impression de
dialoguer avec un boîtier unique de 8 ko ?
Solution: décomposons les adresses des boîtiers:
BTS IG2 -Cours d’Architecture
Page 18 sur 55
0000
h
0000 0000 0000 0000
0800
h
0000 1000 0000 0000
boîtier
n°1: 07ffh 0000 0111 1111 1111
boîtier
n°2: 0fffh
0000 1111 1111 1111
1000
h
0001 0000 0000 0000
1800
h
0001 1000 0000 0000
boîtier
n°3: 17ffh 0001 0111 1111 1111
boîtier
n°4: 1fffh
0001 1111 1111 1111
Les 2 bits permettent de sélectionner un boîtier selon l'adresse à l'aide d'un décodeur "2 vers 4". Dans la pratique,
ces boîtiers possèdent une broche de sélection de boîtier appelée Chip Select (CS).
6. L'Unité Arithmétique et Logique (U.A.L.)
Au cœur du microprocesseur, elle lui permet de réaliser des opérations sur des mots binaires. Dans sa plus
simple expression, elle permet de faire les opérations suivantes: A ET B, A OU B, et A+B.
BTS IG2 -Cours d’Architecture
Page 19 sur 55
Chapitre 6 - La logique programmée
1. Structure d'un système à microprocesseur :
Logiques câblée et programmée
Objectif : Automatiser un processus
Définition d'un processus : c'est une suite d'actions et de tests organisés dans le temps et aboutissant à une
tâche.
La logique câblée : On dispose de circuits intégrés tels que les opérateurs logiques, les opérateurs arithmétiques,
les multiplexeurs et démultiplexeurs, les sélecteurs, les compteurs, les registres, etc...
Travail du concepteur :
Phase 1 : Etablir l'organigramme imposé par le processus (cahier des charges),
Phase 2 : Organiser les circuits logiques de manière à réaliser le processus. Inconvénients : pas de méthode
rigoureuse, et le système est figé.
La logique programmée : on dispose d'un circuit intégré complexe : le microprocesseur (petit et processus).
Ce µP est capable d'effectuer, les unes après les autres, toutes les fonctions citées en logique câblée.
Conséquence : signaler au µP la fonction à réaliser (programmation).
Méthode : on envoie au µP un mot binaire codé.
Travail du concepteur :
Phase 1 : Etablir l'organigramme imposé par le processus (cahier des charges),
Phase 2 : Traduire l'organigramme en une suite d'instructions appelées programme,
Phase 3 : Organiser le système à µP  choix du µP et des circuits auxiliaires.
Intérêts du système à µP :
Pour un processus simple on se sert de la logique câblée,
Pour un processus plus complexe, on se sert de la logique programmée.
Souplesse : tout système quel qu'il soit, doit un jour ou l'autre être retouché, en raison des problèmes pas vus à la
conception, de l'évolution du cahier des charges etc..
Facilité de mise au point :
Logique câblée, pas de méthode rigoureuse
Logique programmée, programmes de mise à niveau.
Consommation plus faible
Durée de l'étude : dépend de la complexité du processus et de la " puissance " du µP
Description d'un système à µP : structure d'un système à µP, mais il faut savoir qu'elle peut évoluer en fonction
du cahier des charges.
BTS IG2 -Cours d’Architecture
Page 20 sur 55
Pour gérer ce processus, le système à µP doit avoir les éléments suivants :
La liste des instructions à effectuer, elles sont mises en mémoire,
un élément capable d'effectuer ces instructions, le microprocesseur µP,
des circuits spécialisés pour les Entrées/Sorties, les interfaces
les liaisons électriques entre ces trois éléments, les bus et
un élément cadençant le tout, l'horloge (quartz).
D'où le synoptique d'un système à µP :
Le système minimum :
Le µP effectue les instructions par étape :
1ère étape :
Chercher l'instruction en mémoire
2ème étape :
Identifier le type d'instruction
3ème étape :
Exécuter l'instruction
4ème étape :
Stocker le résultat en mémoire.
D'où la constitution interne du µP :
Les étapes 1 et 4 sont effectuées sous le contrôle d'un organe interne du µP appelée : Unité de commande.
Les étapes 2 et 3 sont effectuées sous le contrôle d'un organe interne du µP appelée : Unité arithmétique et
Logique (U.A.L).
Donc entre les mémoires et le µP, il y a circulation de deux types d'informations :
Les instructions.
Les données.
Conséquence de ces deux types d'informations, il faut deux types de mémoires.
Les mémoires de données dans lesquelles on va chercher les données et stocker les résultats, ce sont les
mémoires à lecture et écriture. Elles sont appelées R.A.M. Random Acces Memory : Mémoire à accès aléatoire.
Les mémoires de programmes dans lesquelles on va chercher les instructions à exécuter, ce sont les mémoires à
lecture seule. Elles sont appelées R.O.M. Read Only Memory : Mémoire à lecture seule.
BTS IG2 -Cours d’Architecture
Page 21 sur 55
De plus il faut que le système à µP puisse dialoguer avec le " monde " extérieur. C'est le rôle des interfaces, il en
existe deux types :
Les interfaces parallèles : P.I.A ou P.I.O (interface adaptateur pour périphérique parallèle).
Les interfaces séries : A.C.I.A (interface adaptateur pour périphérique asynchrone).
Chaque élément, est commandé par le µP, est adressé par le µP, envoie ou reçoit des informations, des données
ou des résultats du ou au µP, il existe donc trois types de bus.
Bus d'adresses : ensemble de lignes unidirectionnelles qui véhiculent le code d'adresse du µP vers les mémoires
et les interfaces.
Bus de données : ensemble de lignes bidirectionnelles qui véhiculent les données entre le µP et les mémoires ou
les interfaces.
Bus de commandes : ensemble de lignes bidirectionnelles utilisées pour synchroniser les actions du µP et "
isoler " les différents éléments du système à µP.
D'où le système minimum :
2. Programmation d'un système à µP (Software).
Nécessité d'un programme
Le µP doit recevoir des instructions pour pouvoir " travailler ".
La suite ordonnée de ces instructions à la résolution d'un problème s'appelle le programme
Le répertoire d'instructions d'un µP définit les opérations individuelles que celui-ci peut effectuer et se nomme le
jeu d'instructions
Ces séquences sont dans un premier temps traduites par un organigramme.
Généralités
Organigramme : c'est la représentation par un schéma séquentiel d'un processus.
Symboles :
Traduction de l'organigramme en un programme :
un organigramme est traduit en un programme écrit dans un langage appelé langage de programmation.
L'objectif est d'éliminer les erreurs de syntaxe, en ne laissant au programmeur que la responsabilité des erreurs
spécifiques à l'application.
Le travail du programmeur est d'autant plus simple que le langage est facile à lire.
A Langage assembleur
il est plus proche du langage humain, chaque instruction est remplacée par un code mnémonique (aide mémoire).
Un programme de conversion, l'assembleur traduit le programme obtenu en un programme directement
compréhensible par le µP (langage machine).
Chaque µP possède ses propres codes instruction.
BTS IG2 -Cours d’Architecture
Page 22 sur 55
B Langage évolué
il est indépendant du type de µP utilisé et est très proche du langage humain. Des programmes de traduction
(compilateurs et interpréteurs) traduisent les programmes écrits en langages évolués, en programmes utilisant le
langage machine.
exemples : Basic, Pascal, C et Cobol
En règle générale, dans l'écriture d'un programme, on distingue :
Le programme source écrit par le programmeur,
le programme objet qui est la version traduite et directement exécutable par le µP !
Le programme source : chaque ligne est divisée en quatre parties appelées champs.
Champ Label ou Etiquette : contient un code personnel suggestif permettant un repérage aisé de la position
d'une instruction.
Champ Code Opération : contient un code mnémonique de l'instruction à effectuer (op code).
Champ Opérande : contient l'élément alphanumérique sur lequel porte l'instruction
Champ Commentaire : contient les informations facilitant la compréhension de l'instruction et/ou du
programme, mais n'ayant aucune incidence sur le programme objet généré par la suite.
Exemple de programme source :
Label
Code Opération
Opérande
Commentaires
MOV AX,
@DATA
Initialise le segment de données
MOV DS,
AX
DEC
AX
AX=AX-1
JNE
TEST
AX=0?
.CODE
TEST
etc.
Le programme objet : chaque ligne est divisée en deux parties appelées champs.
Champ Adresse : contient l'adresse mémoire du début de la ligne d'instruction, attribuée par l'assembleur à partir
du programme source.
Champ Code Objet : contient le code machine, exprimé en hexadécimal, de l'instruction après conversion par
l'assembleur (Op Code) et Code opérande.
Adresse
Code Objet
$8000
86 0F
$8002
4A
$8003
26 12 83
$8006
7E 02
$8008
3F
BTS IG2 -Cours d’Architecture
Page 23 sur 55
Chapitre 7 - Les Mémoires
Les mémoires sont des structures qui permettent de stocker une information sous forme numérique ou
analogique, puis de la restituer à la demande. Il existe une grande variété de mémoires, depuis la bascule R-S
jusqu'aux mémoires de masse : disques durs et bandes magnétiques etc.
Dans ce cours, nous allons nous intéresser aux mémoires intégrées à semi-conducteurs, capable de stocker et de
restituer une information sous forme numérique !
Une mémoire est constituée de cases, dont chacune enregistre un bit (0 ou 1). Si ces cases sont directement
adressables, on dit à accès aléatoire (disque), sinon on parle de mémoires sérielles (bande).
Le diagramme ci-dessous donne un aperçu des différents types de mémoires au silicium.
1 Les Mémoires à Lecture seule
Les informations sont permanentes et l'utilisateur ne peut que les lires.
On trouve dans cette catégorie :
R.O.M. : Read Only Memory (mémoire à lecture seule) appelée également mémoire morte (figée), elle est
programmée une fois pour toutes par le fabricant.
P.R.O.M. : Programmable Read Only Memory, mémoire programmable une fois par l'utilisateur
E.P.R.O.M. : Programmable Read Only Memory (ou REPROM : Reprogrammable Read Only Memory)
mémoire à lecture seule reprogrammable plusieurs fois par l'utilisateur après effacement sous un rayonnement
ultra violet.
E.A.R.O.M. : Electrically Alterable Read Only Memory (ou EEPROM : Electrically Erasable PROM) mémoire
à lecture seule reprogrammable plusieurs fois par l'utilisateur mais effaçable électriquement
Ces mémoires conservent les informations stockées même après coupure de l'alimentation. On trouve également
dans cette catégorie, les réseaux logiques programmables qui permettent de réaliser des combinaisons logiques à
partir de variables d'entrée : PAL, GAL, FPLA etc...
2 Les mémoires à Lecture-Ecriture
Elles ne peuvent conserver l'information que temporairement, si elles sont alimentées en énergie électrique, dés
la coupure de l'alimentation, les informations sont perdues !
R.A.M : Random Acces Memory (mémoire à accès aléatoire), elles sont aussi appelées mémoires vives. Selon la
technologie de fabrication utilisée, on distingue 2 grandes familles :
RAM Statique : l'information est maintenue tant que l'alimentation est présente.
BTS IG2 -Cours d’Architecture
Page 24 sur 55
RAM Dynamique : elle nécessite une opération supplémentaire de " rafraîchissement " pour maintenir
l'information présente.
M.B.M : Magnétique Buble Memory (mémoire à bulle magnétique), c'est une mémoire de masse non volatile
qui utilise les propriétés des champs magnétiques (pratiquement plus utilisées).
RAM gérées séquentiellement :
F.I.F.O. :First In First Out (premier entré premier sorti), c'est une mémoire qui fonctionne en accès séquentiel, la
première information entrée est aussi la première sortie. Elle est utilisée pour les piles.
L.I.F.O. :Last In First Out (dernier entré premier sorti), la dernière information entrée est aussi la dernière sortie.
Elle est utilisée dans les calculateurs (HP).
Les types de mémoires DRAM :
La mémoire FPM Fast Page Mode : c'est la plus ancienne (des plus récente..., donc en barette). Il est nécessaire
de la rafraîchir très souvent, et son temps d’accès varie de 60 à 70 ns.
La mémoire EDO (Extensed Data Out) ou EDO RAM : C'est une version plus récente et plus rapide. Cette
mémoire fonctionne comme la FPM, mais les données sortent plus rapidement, car elle intègre une petite
mémoire cache qui stocke l’adresse de la prochaine cellule à lire ou écrire sans attendre que la dglnée précédente
soit lue.
La mémoire BEDO Ram (Burst Extensed Data Out Ram) : cousine de l'EDO.
La mémoire SDRAM (Synchronous DRAM): Avec ce type de mémoire, il y a synchronisation des signaux
entrées/sorties avec l'horloge du système ce qui accélère les échanges. Son temps d'accès varie de 5 à 15 ns.
La mémoire ECC (Error Correction Code) : Méeoire à code de correction d'erreur. Cette mémoire prend en
charge la gestion des erreurs de bits en mémoire vive. Elle se présente sous forme de barettes Dimm et est utile
seulement sur un serveur ou les systèmes qui nécessitent une grande fiabilité des données et des calculs
(systèmes bancaires).
La mémoire RamBus, elle fonctionne à des fréquences de 600 à 800 Mhz (proches de celles des processeurs),
avec un débit de 1.2 Go/s (équivalent à un temps d'accès de 1 ns, qui est déjà la vitesse du cache interne du
processeur).
3. Caractéristiques principales
Elles sont au nombre de quatre.
La Capacité : c'est le nombre de bits que la mémoire peut stocker, elle est toujours une puissance de deux.
Exemples : 1Mbits, 16Mbits, les ram actuelles atteignent 128Mégabits et les ROM 2Mégabits
L'Organisation : une mémoire est prévue pour travailler sur des informations de longueur définie. On parlera de
matrice.
Octets (Byte) : 8bits, Mots (Word) : 16bits, double mots (dubble word) : 32bits etc...
La mémoire pourra être organisée en 8, 16, 32, 64 voir 128bits
Exemples : 64k*1bit, 8k*8bits et 4k*16bits ont la même capacité.
16M*4bits, 8M*8bits et 64M*1bit ont aussi la même capacité.
Le produit du nombre d'informations par la longueur de cette information donne la capacité de la mémoire.
Les temps :
D'écriture : c'est le temps qui s'écoule entre l'instant où la donnée et l'adresse sont présentées à la mémoire et le
moment ou la donnée est effectivement stockée.
De lecture : c'est le temps qui s'écoule entre l'instant où l'adresse est présentée à la mémoire et le moment ou la
donnée est disponible en sortie
d'accès : c'est généralement la moyenne des deux temps précédents.
De cycle : si une opération de lecture est destructive, il faut réinscrire la donnée. Le temps de cycle est donc la
somme du temps d'accès et du temps de réinscription.
La consommation : elle est différente au repos (standby) et en fonctionnement, et dépend de la technologie.
4. Le décodage d'adresses
Introduction : La fonction décodage d'adresses permet la sélection, dans l'espace mémoire adressable du µP,
d'une adresse matérielle d'une case mémoire.
Exemple : pour un µP ayant un bus d'adresses de 16 fils, cela va consister à sélectionner l'adresse matérielle
parmi 232 soit 4 294 967 296 adresses.
BTS IG2 -Cours d’Architecture
Page 25 sur 55
Dans un système à µP, la partie réalisant la fonction décodage d'adresses est le décodeur d'adresses.
Les différentes solutions réalisant la fonction décodage d'adresses : elles sont au nombre de cinq :
Solution mettant en œuvre des opérateurs logiques de base,
Solution mettant en œuvre des décodeurs et des démultiplexeurs,
Solution mettant en œuvre des circuits comparateurs logiques,
Solution mettant en œuvre une mémoire P.R.O.M,
Solution mettant en œuvre un circuit PAL.
5. La mémoire cache
Vous avez du remarquer, que dans la vie, plus on élimine de papiers et plus on en entasse (je ne sais pas pour
vous, mais moi je passe mon temps à jeter des articles de presses informatiques). Ceci, vient du fait que l'être
humain a le "défaut" de vouloir tout savoir ou tout connaître (ce qui n'est pas la même chose).
Les premiers concepteurs d'ordinateurs ont vite compris que les programmeurs et utilisateurs de ces machines
auraient besoin d'une quantité toujours croissante de capacité de stockage donc de mémoires.
La philosophie suivante aurait pu être adoptée : ils en veulent, "donnez" en.
Les programmes n’accèdent pas à tout le code et toutes les données en même temps et de la même manière. Il
n’est donc pas nécessaire de disposer d’une grande quantité de mémoire pour exécuter des programmes de tailles
importantes. L’idée simpliste serait de charger des blocs de mémoires les uns derrière les autres au fur et à
mesure des besoins et du temps.
Le temps, le voilà le fautif. Revenons en arrière d’une vingtaine d’années. A cette bonne vielle époque, les
microprocesseurs travaillaient à des fréquences inférieures à la dizaine de mégahertz, et les mémoires avaient des
temps d’accès compris entre 150 et 120 ns. Quand le microprocesseur allait chercher une donnée en mémoire,
cette dernière lui paraissait disponible instantanément.
La technologie aidant, le temps d’accès des mémoires classiques (DRAM) a diminué, et atteint aujourd’hui 60 à
50ns. Les microprocesseurs ont aussi progressé en vitesse, et leur fréquence de travail a été multipliée par 20.
Conclusion, avec des mémoires classiques, quand le microprocesseur désire une donnée (ce qui est très courant),
il passe la majeure partie de son temps à l’attendre et la performance des machines est diminuée.
A Définition:
"Une place sûre pour dissimuler ou ranger des choses"
"Le turbo de la mémoire"
La mémoire classique est constituée de DRAM, qui a un temps d'accès de 60 ns. La mémoire cache est
constituée de SRAM, qui a un temps d'accès de 10 à 5ns. On trouve de la mémoire cache à l'intérieur du
microprocesseur, avec un temps d'accès inversement proportionnel à la fréquence de travail de ce dernier.
On constate ainsi que la mémoire cache est une mémoire plus rapide que la mémoire classique.
BTS IG2 -Cours d’Architecture
Page 26 sur 55
B La hiérarchie mémoire
Si on parle de hiérarchie mémoire, en les classant selon les critères prix et temps d’accès, en commençant par le
niveau de hiérarchie le plus haut,
on aurait :
.la mémoire cache de Niveau 1 (la plus chère, la plus rapide et se trouvant à l'intérieur du µP)
.la mémoire cache de Niveau 2 (SRAM)
.la RAM classique (DRAM)
.le disque dur
.la bande magnétique (la moins chère et la plus lente).
L’objectif de ces 5 niveaux, est de fournir à l’utilisateur un système mémoire qui soit presque aussi bon marché
que la bande magnétique, et ayant le temps d’accès de la mémoire cache de niveau 1
La méthode pour obtenir cet objectif : Les niveaux de hiérarchie étant imbriqués, une donnée se trouvant dans
le niveau supérieur (la mémoire cache de Niveau 1), l'est obligatoirement dans tous les autres niveaux inférieurs.
Si tout se passe comme dans Le meilleur des mondes, le microprocesseur, ne s'adresse qu'à la mémoire de niveau
le plus élevé.
Par contre, comme tout n'est pas parfait (même dans le monde des ordinateurs), lire une donnée en mémoire peut
devenir un vrai calvaire pour le microprocesseur.
Si le microprocesseur ne trouve pas sa donnée dans le premier cache, il va essayer de la trouver dans le second
cache, s'il ne la trouve toujours pas, il va la chercher dans la RAM classique, et ainsi de suite.
Pour éviter cette situation, fort peu confortable pour le microprocesseur, le cache se doit de mettre à la
disposition du microprocesseur, les bonnes informations au bon moment selon un dispositif de "flux tendu".
Mais que se passe-t-il au juste ? : On ne va pas stocker des données une par une dans le cache, mais tout un
bloc. Par définition, un bloc est l'unité minimale d'informations qui peut être présente dans le cache.
BTS IG2 -Cours d’Architecture
Page 27 sur 55
Pour répondre à cette question, il faut s'en poser quatre autres.
C Emplacement d'un bloc dans le cache
Première question :
Il y a trois façons de placer un bloc dans le cache, on parle d'architecture de cache.
Si chaque bloc n'a qu'une place disponible dans le cache, celui-ci est appelé à correspondance
directe ou Direct Mapped. La correspondance est généralement la suivante :
(numéro de bloc) mod (nombre de blocs dans le cache)
Si un bloc peut être placé n'importe où dans le cache, celui ci est appelé totalement associatif
ou Fully Association.
Si un bloc peut être placé dans un ensemble restreint de places dans le cache, le cache est dit
associatif par ensemble de blocs ou Set Associative. Un ensemble étant un groupe de blocs
dans le cache. Un bloc est affecté à un ensemble, puis placé n'importe où dans ce dernier.
L'ensemble est habituellement choisi par sélection de bits ; c'est-à-dire :
(numéro de bloc) mod (nombre d'ensembles dans le cache)
C'est cette dernière solution qui semble être la plus employée dans la conception des ordinateurs
Deuxième question :
L'adressage des blocs dans le cache : chaque bloc du cache possède une étiquette adresse contenant son
numéro de bloc présent. Cette étiquette est examinée pour voir si elle correspond au numéro de bloc provenant
de l'UC du microprocesseur. Pour un gain de rapidité, toutes les étiquettes sont examinées en parallèle.
Il faut savoir si un bloc à une information non valide. Pour cela, on rajoute un bit valide à l'étiquette pour
indiquer si l'entrée correspondante contient ou non une adresse valide. Si le bit n'est pas positionné, il ne peut y
avoir un accès valide sur cette adresse.
Troisième question :
Le remplacement du bloc : Quand un échec intervient, le contrôleur de cache doit choisir un bloc à remplacer
par la donnée désirée.
Si l'architecture choisie pour le cache est du type correspondance directe, les décisions matérielles sont
simplifiées, étant donné qu'il n'y a pas de choix à faire. Un seul bloc est testé pour déterminer s'il y a succès, et
seul ce bloc peut être remplacé.
Avec les deux autres architectures, il faut faire un choix parmi plusieurs blocs lors d'un échec. Il existe deux
stratégies employées pour choisir le bloc à remplacer :
Le hasard : Pour répartir l'allocation uniformément, les blocs candidats sont choisis de façon
aléatoire.
Le plus ancien (LRU Least Recently Used) : pour réduire la probabilité de rejeter des
informations qui seront nécessaires bientôt, les accès aux blocs sont enregistrés. Bien sur, le
bloc remplacé est celui qui n'a pas été utilisé depuis longtemps.
La stratégie du hasard est facile à réaliser par matériel. Par contre, le coût du LRU croît avec le nombre de blocs
à observer. Le tableau ci dessous, montre la différence des taux d'échec entre les deux stratégies.
Associativité
2 blocs/ensemble
4 blocs/ensemble
8 blocs/ensemble
Taille
LRU
Hasard
LRU
Hasard
LRU
Hasard
16 Ko
5,18%
5,69%
4,67%
5,29%
4,39%
4,96%
64 Ko
1,88%
2,01%
1,54%
1,66%
1,39%
1,53%
256 Ko
1,15%
1,17%
1,13%
1,13%
1,12%
1,12%
Remarque : la stratégie "premier entré premier sorti" (FIFO), n'est plus utilisée et donnait des taux d'échecs
avoisinant les 10%
D L'écriture dans le cache
BTS IG2 -Cours d’Architecture
Page 28 sur 55
Les lectures dominent les accès cache. Tous les accès instructions sont en lecture et la plupart des instructions
n'écrivent pas en mémoire, on peut considérer que 75% des accès sont en lecture et bien sur 25% en écriture. Les
concepteurs ont donc optimisé le cache pour les lectures, et le microprocesseur attend que les lectures soient
terminées. En revanche, il n'a pas besoin d'attendre la fin des écritures pour passer à la suite du programme.
Le bloc est ainsi lu, pendant que l'étiquette est lue et comparée. La lecture du bloc commence dés que son
numéro est disponible. Si la lecture réussit, tout va pour le mieux et la partie nécessaire du bloc est passée à l'UC
immédiatement. Si c'est un échec, il n'y a aucun bénéfice, aucune perte, et il suffit simplement d'ignorer la valeur
lue.
Pour l'écriture, il en va tout autrement. La modification d'un bloc ne peut pas commencer avant que l'étiquette
soit examinée. De plus la lecture peut accéder à plus d'octets que nécessaires, mais en écriture le microprocesseur
spécifie la taille de la donnée à écrire (de 1 à 8 octets).
Il existe deux façons d'écrire dans le cache :
L'écriture simultanée (ou rangement simultané ou Write through) : l'information est écrite à la fois dans le bloc
du cache et dans le bloc de la mémoire classique.
La réécriture (ou recopie, rangement ou Write back) : l'information est écrite uniquement dans le bloc du cache.
Le bloc modifié est recopié en mémoire classique uniquement quand il est remplacé.
Le Write through a tendance à disparaître, en effet, même si on ne fait que lire une donnée dans un bloc, il
recopie ce bloc en mémoire classique et mobilise ainsi le bus mémoire pour mettre à jour cette mémoire
classique, ce qui restreint les possibilités de Direct Acces Memory DMA
Le Write back, permet une sélection des mises à jour de la mémoire classique, le contenu du cache n'est reporté
que si une donnée a effectivement été modifiée par le microprocesseur ou si un bloc ayant seulement été lu par le
microprocesseur est remplacé.
E Conclusion
En fait, on utilise le cache comme une image de la mémoire classique. Quand il accède aux données, le
microprocesseur croît s'adresser à la mémoire classique alors qu'il s'adresse au cache. A charge ensuite au
contrôleur de cache de recopier les données dans la mémoire classique et le tour est joué. Les diverses
architectures existantes consistent à créer différents systèmes de représentation basés directement sur les adresses
mémoires ou sur les données.
Reste que l'objectif du constructeur est toujours d'optimiser le déroulement tant des phases de lecture que
d'écriture dans le but d'obtenir le cache le plus efficace possible.
F Post Scriptum :
Nos ordinateurs sont basés sur l'architecture de Von Neumann, cela signifie que les instructions et les données,
donc les opérateurs et les opérandes sont stockés dans la même mémoire. Ainsi le microprocesseur doit accéder
deux fois à la mémoire, une pour l'instruction et une pour la donnée. Un système alternatif, que l'on appelle
modèle Harvard, consiste à séparer les espaces mémoire : un pour les données et un pour les instructions. De
cette façon, le chargement simultané des deux, améliore la vitesse des traitements.
Actuellement, les concepteurs ont tendance à utiliser les deux architectures, celle de Von Neumann pour les
cartes mères et celle de Harvard pour le microprocesseur, pour fabriquer ces drôles de machines dans un monde
de femmes et d'hommes.
BTS IG2 -Cours d’Architecture
Page 29 sur 55
L'organigramme est le suivant :
BTS IG2 -Cours d’Architecture
Page 30 sur 55
Chapitre 8 - La gestion des entrées sorties
La gestion des E/S consiste en la gestion du transfert d’information entre le couple unité centrale (µP) – mémoire
et l’extérieur soit les unités périphériques locales ou distante. Dans un système d’exploitation, cette fonction est
réalisée par un ensemble de services appelé gestionnaire d’entrée-sortie.
1 Organisation générale
L'évolution des ordinateurs a conduit à accroître l'autonomie des organes d'entrées-sorties et à leur confier des
fonctions de plus en plus complexes d'enchaînement et de commande, le microprocesseur ne gardant que
l'initiative du lancement et du contrôle des opérations. Il existe plusieurs organisations ou branchement des
périphériques au microprocesseur.
On peut voir sur la figure à la fin, trois exemples d'organisations.
Organisation 1 : les périphériques sont reliés au couple microprocesseur-mémoire par l'intermédiaire de
coupleurs,
Organisation 2 : les périphériques sont reliés au couple microprocesseur-mémoire par l'intermédiaire DMA puis
les coupleurs,
Organisation 3 : on a à faire à un système multi-processeurs et les périphériques sont reliés à l'ensemble
microprocesseurs-mémoire par l'intermédiaire de canaux et de coupleurs.
On peut aussi remarquer que qu'il existe une multiplicité des voies d'accès ce qui diminue le risque
d'indisponibilité par suite de la saturation ou de la défaillance d'un canal ou d'un coupleur.
2 Les périphériques
Ce sont des dispositifs servant en premier lieu à l'entrée et à la sortie de données. Ils sont sont attachés à des
coupleurs ou contrôleurs. Périphériques et coupleurs définissent des interfaces qui comprennent un ensemble de
fonctions (entrée, sortie, siganux de commande et d'incident) et une voie de communication servant au tranfert
de l'information.
3. Les catégories de périphériques
Il existe deux grandes catégories de périphériques, les périphériques blocs et les périphériques caractères.
 Les périphériques caractères : Ils acceptent les données sans se soucier d'une quelconque
structure. Ils envoient ou reçoivent les données octets par octets, sans qu'on les contactée en
paquets. Parmi les périphériques caractères, on peut citer : le clavier, la souris, les imprimantes, les
terminaux etc... Les données sont transmises les unes derrière les autres, on parle alors d'accès
séquentiel.
 Les périphériques blocs : Ils acceptent les données par blocs de taille fixe, chaque bloc ayant une
adresse propre. La taille des blocs va généralement de 128 octets à plusieurs kilo. Le grand
avantage par rapport aux périphériques caractères est qu'il est possible d'aller lire ou écrire un bloc
à tout moment, on parle alors d'accès aléatoire.
4. L'espace mémoire
Chaque périphérique ou ensemble de périphériques possède une ou plusieurs adresses mémoire se situant soit
dans l'espace mémoire du microprocesseur soit dans un autre espace appelé l'espace E/S du microprocesseur, cet
espace étant beaucoup plus restreint. Pour donner un ordre d'idée, les derniers microprocesseurs disposent d'un
espace mémoire de 64 giga et d'un espace d'E/S de 64k.
BTS IG2 -Cours d’Architecture
Page 31 sur 55
BTS IG2 -Cours d’Architecture
Page 32 sur 55
5. Le coupleur ou contrôleur de périphérique
Ce n'est pas le microprocesseur qui pilote directement le périphérique, mais un contrôleur. En essayant de se
rapprocher un peu plus du matériel, on peut dire que le périphérique en lui même est un ensemble de composants
mécaniques (moteur, disque etc...), et qu'il est géré au niveau des signaux par une carte électronique que l'on
nomme contrôleur. Ce contrôleur peut lui même être constitué d'un microprocesseur ou micro contrôleur, qui
dialogue avec le microprocesseur principale. Donc la définition d'un coupleur peut être : c'est un dispositif de
commande adapté à un type donné de périphérique. Son autonomie est limitée à des opérations élémentaires. Il
permet aussi le dialogue entre deux entités physiques (microprocesseur et périphérique) différentes.
On peut dire que l'ensemble coupleur-périphérique est une interface entre l'Homme et le couple
microprocesseur-mémoire.
6. La synchronisation microprocesseur E/S
 Les entrées-sorties synchrones : Dans une entrée-sortie synchrone, il n'y a aucun parallélisme entre
traitement et transfert de l'information. Le microprocesseur est immobilisé pendant toute la durée du transfert.
 L'entrée-sortie synchrone est utilisée sur les ordinateurs les lus simpes et dans tous les cas ou le
microprocesseur ne peut être utilement employé pendant la durée du transfert.
 Les entrées-sorties asynchrones avec interruptions : Dans une entrée-sortie asynchrone, tel le clavier, il y a
une interruption qui est prise en compte, elle permet de ne pas interrompre le microprocesseur, ce dernier peut
ontinuer son traitement en cours.
 Les interruptions : Lorsqu'un périphérique veut s'adresser au microprocesseur, il provoque une interruption
matérielle. Ce qui engendre un arrêt de l'exécution séquentielle des instructions d'un programme. Cette
interruption provoque l'exécution d'une routine d'interruption, c'est-à-dire d'un programme de traitement de
l'événement survenu et propre à cet événement.
Les signaux d'interruption permettent aux différents composants du système, d'attirer l'attention du
microprocesseur afin de déclencher une opération déterminée. Comme plusieurs demandes d'interruption
peuvent survenir simultanément, elles sont tout d'abord envoyées au contrôleur d'interruption (PIC :
Programmable Interrupt Controler) qui les retransmet ensuite au microprocesseur.
7. Les canaux
Un canal ou unité d'échange, est un processeur spécialisé dans les opérations d'entrées-sorties. Il ne peut être
lancé que par le microprocesseur central de l'ordinateur, il est esclave. il ne possède pas d'interruptions mais peut
lui-même interrompre le microprocesseur central. Son répertoire d'instruction lui permet d'actionner les
coupleurs et les périphériques qui lui sont connectés.
8. L'accès direct à la mémoire (DMA Direct Acces Memory)
Lorsqu'un périphérique veut envoyer tout un bloc de données au microprocesseur, il commence d'abord par
l'interrompre, récupère les données, sur le support, de façon sérielle, puis il fait tout un ensemble de vérifications
tel que le checksum.... Enfin vient le transfert des données par mots, un programme gère ce transfert en
incrémentant un compteur à chaque itération. Ce programme, s'il est exécuté par le microprocesseur, fait perdre
beaucoup de temps à ce dernier, qui ne peut alors s'occuper de la gestion des programmes de l'utilisateur. Le
DMA a été créé pour libérer le microprocesseur de ce travail de bas niveau, il donne au contrôleur deux
informations, qui sont l'adresse mémoire de départ où les données doivent être stockées et le nombre de mots à
BTS IG2 -Cours d’Architecture
Page 33 sur 55
transférer. Le DMA est surtout utilisé pour les périphériques de type blocs. C'est en quelque sorte une forme
simplifiée de canal.
Les types de transfert DMA : nous venons de voir que le DMA était un circuit spécialisé conçu pour transférer
les données à la vitesse dont la mémoire est capable. Il existe deux types de transfert DMA :
 Par gyclée : le contrôleur DMA effectue un certain nombre de transferts bus chaque fois qu'il a la main. ce
fonctionnement est bien adapté aux taches de transfert des blocs lorqu'elles nécessitent la totalité de la largeur de
bande du bus.
 Par vol de cycle : la commande du bus passes alternativement du processeur DMA au microprocesseur central
à chaque cycle mémoire. Le canal DMA peremt alors au microprocesseur central de fonctionner au voisinage de
50%.
9. Le pilote de périphériques
Le programme qui commande le fonctionnement élémentaire d'un périphérique est appelé son pilote (en anglais
driver ou handler). Le handler gère directement l'interface du coupleur du périphérique, traite les interruptions
émises par celui-ci, détecte et traite les cas d'erreur. C'est au niveau de ce module que doivent être traitées les
particularités de programmation du coupleur. Il est généralement invisible aux utilisateurs du sysème, qui
accèdent aux fonctions d'E/S au moyen de services de plus ou moins haut niveau réalisés par des appels au
superviseur. Le handler contient donc les primitives permettant de commander le périphérique.
Ce driver est constitué de deux procédures, quasiment indépendantes : une procédure traitant l'initialisation d'un
transfert et une procédure de traitement de l'interruption associée à une fin de transfert. La gestion des E/S repose
sur l'utilisation des interruptions dans la plupart des cas.
10. Les tampons
La différence considérable entre les vitesses de traitement de l'unité centrale et des organes périphériques impose
de tamponner les entrées-sorties, c'est-à-dire d'interposer une zone de mémoire, ou tampon, entre les
périphériques et les programmes utilisateurs. Le but est de réduire le temps d'inactivité de l'unité centrale en
découplant son fonctionnement de celui des périphériques. Les programmes utilisateurs transfèrent l'information
depuis ou vers le tampon, celui-ci, en parallèle, ser de source ou de destination aux échanges avec le
périphérique. Pour qu'une donnée lue sur un périphérique soit disponible pour l'unité centrale, il faut que la
lecture ait été anticipée, de même pour qu'une donnée soit écrite sur un périphérique, elle doit être conservée en
mémoire le temps de son transfert. Pour cela, on utilise des tampons (en anglais buffer ou spool). Il existe deux
types de tampons :
BTS IG2 -Cours d’Architecture
Page 34 sur 55

Les tampons en mémoire centrale (buffer ou buffering) : l'utilisation de buffer va permettre
de charger les données en entrée ou de les récupérer en sortie dans une zone réservée de la
mémoire (circuits intégrés).
Il existe aussi le double buffering, il améliore les performances d'utilisation du microprocesseur, en effet en
utilisant deux tampons en entrée et en sortie. Un programme en cours rempli ou vide ses données dans l'un tandis
que l'unité d'échange vide ou rempli l'autre l'autre.

Les tampons en mémoire auxilliaire (spool ou spooling) : pour éviter l'encombrement de la
mémoire centrale par les tampons d'entrée-sortie, ceux-ci peuvent être reportés sur une
mémoire auxilliaire à accès rapide (disque). Le terme spool (ne veut pas dire "bobine", mais est
l'acronyme de Simultaneous Peripherical Operations On Line).

BTS IG2 -Cours d’Architecture
Page 35 sur 55
Chapitre 9 - La transmission des données
1. Introduction
La transmission de données doit son existence aux besoins de transmettre des données (sic) à des distances plus
ou moins longues sur des lignes filaires souvent sensibles aux parasites. La raison d'être de tout système de
transmission de données est la distribution d'informations sans erreurs. Les critères de choix d'un type de
transmission de données sont le débit binaire, la distance à couvrir et le coût du système.
Quand une unité centrale (l'ensemble µP-mémoire) veut transmettre ou recevoir des données vers ou d'un
périphérique, il y a un dialogue qui se cré entre les deux entités et ce dialogue est régie par un ensemble de lois
qui donnent le type de liaisons, les modes de fonctionnement, les modes de transmission etc...
2. Les types de liaisons
Parallèle : Le principe de base de la transmission de données parallèle est le transfert de données sur autant de
fils qu'il y a de bits constituant le caractère à transmettre. Un tel type de transmission n'est utilisable que pour des
transmissions à très courte distance (de quelques centimètres à quelques mètres). Pour des distances supérieures,
il devient peu fiable et fort coûteux.
Série : Le principe de base de la transmission de données série est le transfert de données sur un seul fil.
Le temps est découpé en intervalles de même durée, et on émet un bit pendant chacun de ces intervalles.
L'idée est d'appliquer une valeur analogique pendant un intervalle pour représenter la valeur logique 1
et une valeur analogique différente pour représenter la valeur logique 0. Du coté du récepteur on doit
observer les valeurs de la tension aux instants convenables.
3. Les modes de fonctionnement
Asymétrique : La ligne de transmission est toujours constituée de deux conducteurs parcourus par des courants
de sens opposés. Dans le cas d'une ligne asymétrique, l'un des conducteurs est le conducteur de masse, d'où des
problèmes de parasites à haut débit.
Différentielle (symétrique) : Dans un système de transmission différentielle, il faut, entre l'émetteur et le
récepteur, deux fils parcourus par des courants de sens opposé. Le récepteur ne prend en compte que la
différence de potentiel entre les deux fils. La valeur absolue de la tension continue en mode commun des deux
fils est sans importance. Dans la pratique, les émetteurs et récepteurs ont une plage de tension en mode commun
bien définie dans laquelle ils peuvent fonctionner.
Une liaison différentielle permet de transmettre des données sur de grandes distances à des vitesses élevées. Le
signal est peu sensible aux parasites induits et aux effets de diaphonie. Toute tension parasite induite dans la
ligne différentielle apparaît comme une tension en mode commun supplémentaire à laquelle le récepteur est
insensible. La différence de potentiel des deux lignes reste donc la même.
De la même façon, une variation de potentiel de masse local à une extrémité de la ligne apparaît comme une
simple variation de la tension en mode commun. La tension de sortie différentielle double la tension de sortie
asymétrique de l'émetteur. En transmission différentielle on utilise généralement un câble en paire torsadée, ce
qui a pour effet d'annuler les champs magnétiques engendrés par le courant circulant dans chaque fil et de
réduire l'inductance de la paire.
Le principal inconvénient d'un système de transmission différentielle est que pour chaque liaison, il faut deux
câbles. Cela augmente le coût du système mais donne des performances nettement meilleures quand on veut
BTS IG2 -Cours d’Architecture
Page 36 sur 55
transmettre des données sur une grande distance à une vitesse élevée.
Les avantages et inconvénients de la transmission différentielle (symétrique) de données par rapport à la
transmission par ligne asymétrique sont les suivants :
Avantages :
Réjection élevée de la tension de bruit en mode commun.
Rayonnement de ligne réduit, moins de RFI
Les capacités en vitesse sont améliorées.
Commande des longueurs de ligne plus importantes.
Inconvénients :
Coûts plus élevés
Doit être utilisée avec des paires torsadées ou autre type de lignes de transmission symétrique.
4. Les modes de transmission
A Simplex
Elle est toujours unidirectionnelle, Le poste A émet et le poste B reçoit. C'est le cas de certaines imprimantes.
L'ordinateur envoie les caractères à l'imprimante et n'attend aucune réponse en retour.
Ce mode requiert une ligne 2 fils, que la liaison soit directe ou téléphonique .
B Semi duplex
Elle est bidirectionnelle, Le poste A peut émettre vers le poste B et vice versa, mais un seul des deux peut
émettre à un instant donné.
Ce mode requiert également une ligne 2 fils, que la liaison soit directe ou téléphonique. On l'utilise lorsque le
canal de communication ne possède pas une largeur de bande suffisante pour permettre des liaisons bilatérales
simultanées.
C Duplex
Elle est bidirectionnelle, les deux postes peuvent émettre en même temps.
Ce mode requiert :
- une ligne 4 fils si la liaison est directe ou si les modems de la liaison téléphonique
fonctionnent à une même fréquence porteuse ;
- une ligne 2 fils si les modems de la liaison téléphonique fonctionnent à des fréquences porteuses différentes en
émission et en réception (c'est la seule solution vraiment économique).
Remarque :
L'émetteur est aussi appelé : Data Communications Equipment (DCE)
et le récepteur Data Terminal Equipment (DTE)
Du paragraphe précédent on peut définir plusieurs notions liées à la transmission en série :
BTS IG2 -Cours d’Architecture
Page 37 sur 55
- Le découpage du temps en intervalles réguliers, ceci nécessite la présence d'une horloge
auprès de l'émetteur et du récepteur,
- La synchronisation nécessaire entre émetteur et récepteur, pour que ce dernier fasse les
observations aux instants corrects,
- Les observations faites par le récepteur, qui ont lieu à des instants précis, constituent
l'échantillonnage du signal.
Afin de bien coordonner la synchronisation entre l'émetteur et le récepteur, deux techniques de
transmission série sont utilisées : Synchrone et Asynchrone.
D Asynchrone
Principe : Dans ce type de liaison, les octets sont émis de manière aléatoire, au fur et à mesure de leur
disponibilité (cas typique de la saisie clavier).
Procédure :
- Au repos, mise à l'état haut de la ligne de transmission
- Emission d'un début de message constitué par l'envoi d'un bit de départ (start bit) de valeur 0 (la ligne
passe de l'état haut de repos à l'état bas)
- Emission de l'octet
- Afin de permettre au récepteur de vérifier la validité de l'octet reçu, il y aura éventuellement l'émission :
- d'un bit de parité paire (even parity bit) de valeur 0 si le nombre de bits 1 de l'octet transmis est pair
et 1 si ce nombre est impair ;
- ou d'un bit de parité impaire (odd parity bit) de valeur 1 si le nombre de bits de l'octet transmis est
pair et 0 si ce nombre est impair.
- Emission d'une fin de message constituée par l'envoi de 1, 1,5 ou 2 bit(s) d'arrêt de valeur 1 (la ligne
reprend son état haut de repos). Après ce bit d'arrêt, un nouveau caractère peut être transmis.
Vitesse et synchronisation : Pour que le système fonctionne correctement, l'émetteur et le récepteur doivent
accorder la même durée à chaque bit et donc travailler à la même vitesse. Cette vitesse se mesure en bauds, du
nom de l'ingénieur Baudot inventeur d'un code du même nom utilisé en téléinformatique. Cette vitesse
s'échelonne de la centaine au million de bauds (110, 150, 300, 600, 1200, 2400, 4800, 9600, 19200), entre 2 PC,
elle est de 115200 bauds.
Si le mode de transmission des octets est bien asynchrone, celui des bits constituant chaque octet est par contre,
lui, bien synchrone, et est réalisé à l'aide d'horloges locales de même fréquence nominale.
Erreurs : Lors d'une transmission asynchrone on doit veiller à 3 sortes d'erreurs :
- Le faux départ : le récepteur croît détecter un bit de départ alors que ce n'est qu'un parasite,
- La sur écriture due à une fréquence d'horloge de l'émetteur supérieure à celle du récepteur ;
- La sous écriture due à une fréquence d'horloge de l'émetteur inférieure à celle du récepteur ;
Pour être sur que le front descendant détecté à la réception est bien celui d'un bit de départ, on attend la durée
d'un demi-bit et on vérifie l'état de la ligne : si la ligne est toujours au niveau bas c'est qu'un bit de départ a été
émis et on déclenche l'horloge de réception. A la réception, le signal start déclenche la mise en route de
l'oscillateur local qui permet l'échantillonnage des bits contenus dans le caractère. La légère dérive qui peut alors
se produire par rapport à l'instant idéal est sans conséquence, compte tenu de la faible durée concernée.
Inconvénient : Dans une liaison asynchrone, pour transmettre un seul octet il faut en moyenne émettre 12 bits (
1 bit de départ, 1 bit de parité, 1 à 2 bits de stop et les 8 bits de l'octet), ce qui signifie que seulement les deux
tiers du temps sont utilisés pour transmettre de l'information utile : Le rendement est mauvais.
Une liaison synchrone permet d'améliorer ce rendement.
E Synchrone
Principe : Dans ce type de liaison, les octets sont, et donc les bits, constituant le message sont envoyés les uns
après les autres, sans temps mort.
Procédure : Pour prévenir le récepteur du début et de la fin d'un envoi, le message est précédé d'un caractère de
début de transmission (STX) et est suivi d'un caractère de fin de transmission (EOT).
Vitesse et synchronisation : Ce type de liaison permet d'obtenir des débits informationnels plus élevés qu'une
liaison asynchrone, mais il nécessite un fonctionnement parfaitement synchrone de l'émetteur et du récepteur.
Cette synchronisation est généralement assurée par l'une des deux méthodes suivantes :
BTS IG2 -Cours d’Architecture
Page 38 sur 55
- un fil séparé transmet au récepteur le signal d'horloge généré par l'émetteur ;
- des informations de temps sont incorporées au processus de modulation du modem émetteur
F Asynchrone synchronisée (ou isochrone)
Cette méthode de transmission se caractérise par le fait que, bien que le message soit transmis de manière
synchrone, l'intervalle de temps entre deux messages ne donne pas lieur à synchronisation. Afin de recaler
l'oscillateur local avant chaque message, on doit faire précéder le message d'un certain nombre de caractères de
synchronisation (exemple : SYN en ASCII).
5. Les supports de lignes de transmission
Une impulsion se propage le long d'une ligne de transmission à une vitesse proche de celle de la lumière. C'est le
type de câble utilisé qui limite la vitesse de transmission réelle. Les types de lignes usuels sont les paires
torsadées (blindées ou non), les câbles plats ou rubans, les fils discrets pour les applications à faible distance, le
câble coaxial, et la fibre optique.
A Les fils métalliques
Ce sont par exemple les paires torsadées téléphoniques reliant les abonnées. Elles sont constituées en cuivre ou
parfois en aluminium, de diamètre pouvant varier de 0.4 à 1mm. Ces paires sont doublées pour les liaisons entre
autocommutateurs. Elles sont toujours isolées les unes des autres par des gaines.
Dans les entreprises, les paires métalliques installées peuvent supporter un débit numérique de 64k bits/s. Le
signal analogique se propageant occupe une bande de fréquence de 4kHz.
B Les lignes coaxiales
Les câbles coaxiaux usuels de 50 à 200 ohms ont une impédance très uniforme et définie, et offrent les
meilleures caractéristiques de transmission en ligne symétriques. Leurs principaux avantages sont leur faible
perte et l'efficacité de leur blindage contre les parasites électromagnétiques induits. Le courant doit bien sur
circuler à la fois dans l'âme du câble et le blindage pour que ce dernier soit efficace.
C Les fibres optiques
C'est une technologie récente puisque les premières fibres datent des années 70.
Le principe en est le suivant :
- L'information électrique est transformée en onde lumineuse cohérente (LASER) ou non (DEL) à l'entrée de
la fibre.
- Cette onde se propage le long de la fibre par réflexion entre le cœur et la gaine de silice dont les indices de
réfraction sont différents.
- Elle " rebondit " dans le guide d'onde que constitue le cœur de la fibre. A l'autre extrémité de la fibre optique,
l'information lumineuse est à nouveau retranscrite en courant électrique, à l'aide d'un photodétecteur.
La fibre optique est un support de communication présentant maints avantages :
- Taille et masse réduites, par rapport aux autres supports,
- Très large bande passante (1ghz à 1km),
- Faible atténuation suivant la distance donc nécessité de moins de répéteurs,
- Insensibilité aux parasites électromagnétiques
Les inconvénients existants encore pour le moment sont :
- Un coût élevé mais qui a tendance à baisser,
- Support fragile si en verre (silice), mais correct en plastique renforcé par des gaines plus ou moins rigides,
- Une connectique très délicate pour le particulier.
6. Les liaisons Parallèles
Leur origine réside dans le fait qu'en numérique, les informations sont codées sous la forme de plusieurs bits
groupés généralement en mots de 4, 8, 16, 32 voire 64 bits. Pour obtenir des vitesses d'exécution élevées, il est
BTS IG2 -Cours d’Architecture
Page 39 sur 55
souhaitable de pouvoir effectuer les transferts d'informations en faisant appel au parallélisme : les bits d'un mot
sont envoyés simultanément sur autant de conducteurs qu'il y a de bits. L'ensemble de ces conducteurs a pour
nom : BUS.
Sur une carte électronique à µP ont peu rencontrer trois types de bus : Données, Adresses et Commande (Voir
cours sur Architectures de systèmes microprogrammés).
Il existe plusieurs interfaces de bus parallèles, les interfaces Centronics, IEEE488, SCSI et IDE et les BUS des
Ordinateurs.
Constitution d'une interface : Placée entre l'ordinateur et ses périphériques, elle constitue un indispensable
intermédiaire par lequel transitent les informations, commandes ou données.
Composée d'un pilote de périphériques (driver), elle établit et gère les dialogues entre les éléments d'un système
informatique.
Le fonctionnement d'une interface : le pilote, spécifique à chaque périphérique, se présente sous la forme d'un
petit programme résident. Il reçoit les informations du système d'exploitation et les traduit en une série de
signaux exploitables par le câble de liaison, ce dernier étant composé de différents fils ayant chacun une fonction
propre. La norme à laquelle obéit l'interface (ST506, ESDI, EDI, SCSI, IDE....) définit les câbles. En bout de
chaîne, le contrôleur reçoit les signaux. Il les interprète et envoie les ordres au périphérique. Au cours du
processus, le pilote et le contrôleur jouent un double rôle de transmission et de traduction. Le câble se contentant
de véhiculer les données.
Exemple : Enregistrement d'un document.
1 L'utilisateur sélectionne l'option Fichier Enregistrer
2 L'application indique au Système d'exploitation qu'il désire ouvrir un fichier existant
3 Ce système appelle un pilote de périphériques pour signaler au disque l'ouverture d'un fichier
4 Le pilote traduit l'ordre reçu en signaux capables de transiter par le câble
5 Le câble les transmet au contrôleur
6 Le contrôleur les traduit en ordres compréhensibles par le périphérique physique qu'il gère, et
dont il peut être le seul à connaître l'organisation interne. Il renvoie ensuite un signal indiquant
le résultat de l'opération (réussite ou échec...)
7 Le câble transmet ces signaux au pilote de périphériques
8 Le pilote traduit ces signaux dans un langage propre au système d'exploitation
9 Ce dernier répercute les informations à l'application
10 Enfin, l'application décide de passer à l'opération suivante ou d'afficher un message
d'erreur.
A L'interface Centronics
Cette liaison parallèle est destinée à l'émission de codes ASCII 8 bits. Elle utilise donc un BUS de données de
8bits (de D0 à D7), une ligne de masse servant de potentiel de référence, et trois lignes de contrôle des échanges.
Le principe de fonctionnement de cette liaison est le suivant :
- L'ordinateur place l'octet de code à émettre sur le bus de données,
- Il regarde si son périphérique est prêt à recevoir cette donnée, en lisant le niveau de tension présent sur
la ligne de contrôle nommée BUSY (occupé),
- Si le périphérique a placé sa sortie BUSY à 0, c'est qu'il est disponible. Dans ce cas, l'ordinateur le
prévient qu'une donnée est présente sur le bus et peut donc être lue en envoyant une impulsion sur la
ligne de commande STROBE (échantillonnage),
- Dés que le périphérique détecte le front montant de l'impulsion STROBE, il passe en mode occupé
(Busy au niveau 1), empêchant ainsi tout nouvel envoi de données. Il peut alors traiter la donnée
présente sur le bus en prenant tout son temps.
Puis deux possibilités s'offrent à lui :
ou bien il remet la ligne BUSY à 0 pour signaler qu'il est à nouveau disponible,
ou bien, tout en remettant BUSY à 0, il envoie un signal d'acquiescement sur la ligne de contrôle ACK.
Suivant le type d'ordinateur, un des deux protocoles est accepté, et parfois les deux.
La connectique : Sur l'ordinateur, se trouve un connecteur femelle de type Canon Sub-D 25 broches, et
du coté de l'imprimante, un connecteur mâle de type centronics 36 broches. Le câble reliant l'ordinateur
et l'imprimante est constitué des deux connecteurs en opposition par rapport aux deux précédents.
L'utilisation principale (99%) de la liaison parallèle centronics est la connexion d'une imprimante
parallèle à un ordinateur.
BTS IG2 -Cours d’Architecture
Page 40 sur 55
Les signaux constituants l'interface centronics sont les suivants :
Broche numéro
Nom du signal
Broche numéro
Nom du signal
1
/STROBE
17
Masse
2à9
DATA 1 à 8
18
Non Connectée
10
ACK
20 à 29
OV Retour de DATA 1 à 8
11
BUSY
30
0V
12
PE (Paper Out)
31
Non Connectée
13
/BUSY
32
/FAULT(Erreur Imprimante)
14 et 15
Non Connectée
33
/INIT
16
0V
34 à 36
Non Connectées
Les différents types de ports parallèles sont :
Original Unidirectionnel : Ce type est la toute première version du port parallèle, il permet seulement la
communication du PC en direction d'un périphérique. IBM a introduit cette norme à l'apparition duXT, il est
abandonné depuis 1993. Son débit pouvait atteindre 60Ko par secondes.
Type 1 Bidirectionnel : Il date de 1987, c'est encore IBM qui l'a introduit pour ses PS2, ce port bidirectionnel
permettait uni dialogue entre un PC et un périphérique. Il était compatible avec le port unidirectionnel, et il
permettait un débit de 300 Ko/s en fonction du type de périphérique utilisé.
Type 3 DMA : Ce type de port utilise le DMA, il décharge ainsi le processeur de la gestion du transfert des
données. Ces dernières sont transmises par blocs d'octets à la mémoire, puis le contrôleur du périphériques les
envois au périphériques.
EPP : Le port parallèle EPP (Enhanced Parallel Port) est une norme de communications bidirectionnelles entre
des périphériques externes et un PC
ECP : Cette norme ECP (Extended Capabilities Ports) est trés proche de l'EPp, il est capable d'utiliser le DMA et
est doté d'une mémoire tampon (buffer) qui améliore sensiblement les performances.
Les connecteurs :
Le port IEEE 1284 : Ce port de transmission de données ne date que de 1994, il a pour but de faire
communiquer une interface parallèle (une imprimante mais pas seulement) avec un ordinateur, son véritable nom
est : "A Method for a Bidirectional Parallel Peripheral Interface for Personal Computer". Cette norme est le
fruit d'un travail qui consistait à remplacer les anciens ports parallèles, en étant 50 à 100 fois plus rapide et
biensur compatible. A l'origine, en 1991, les fabricants d'imprimantes se sont réunis (NPA : Network Printing
Alliance) pour discuter d'un nouveau standard qui définit un certain nombre de paramètres implémentés du coté
de l'ordinateur et de l'imprimante, permettant ainsi un contrôle totale de cette dernière.
L'IEEE 1284 prend en charge les 5 modes les plus couramment rencontrés. En effet, certains modes sont restés
propre à un constructeur et restent transparents pour l'utilisateur
B L'interface IEEE-488
Le bus IEEE-488 a pour vocation de normaliser le mode d'interconnexion entre les chaînes d'acquisition et le
système de traitement de mesures. Il possède ainsi une structure indépendante de tout ordinateur? Originellement
introduit en 1965 par Hewlett-Packard, pour ses propres besoins, sous le nom de HPIB (HP Interface BUS), ce
bus est rapidement devenu une norme de fait puis a été standardisé par l'organisation américaine IEEE (Institute
of Electrical and Electronics Engineers) sous le nom de IEEE-488. Il est aussi appelé GPIB.
BTS IG2 -Cours d’Architecture
Page 41 sur 55
La connectique : Il est constitué d'un ensemble de 16 fils, 8 regroupant les 8 fils de données multiplexés avec le
bus d'adresse, et 8 fils utilisés pour le contrôle et la gestion des échanges. Ainsi grâce à ses 16 fils, il est possible
d'interconnecter directement micro-ordinateur et appareils de mesure si ceux-ci sont dotés d'une sortie IEEE-488.
C L'interface SCSI (prononcer Squezy)
De toutes les normes éditées en matière d'interface (ESDI, IDE ...), la SCSI (Small Computer System Interface)
apparaît comme la plus performante et la plus universelle.
Elle a été définie en 1986 par l'ANSI, elle est largement adoptée par le monde Macintosh, IBM en 1987 pour les
PS/2, les constructeurs de stations de travail (NEXT, ALPHA, SUN...). Ses atouts sont entre autre, la gestion
simultanée de multiples périphériques, taux de transfert élevé (RS485), ce qui est très appréciés dans le cas
d'unités de stockage comme les disques durs et les CD-ROM.
Ses caractéristiques sont :
1 Elle permet de relier jusqu'à 7 contrôleurs de périphériques (les autres en on 1 ou 2), chacun
d'eux est relié au précédent, et est affecté d'un numéro d'ordre compris entre 1 et 7
2 Chaque contrôleur gère jusqu'à 2048 périphériques (donc 7*2048 en tout), on peut ainsi gérer
des dizaines de Go de DD. (528Mo en IDE).
3 Les périphériques sont considérés comme des unités logiques, le pilote n'en connaissant pas
l'organisation interne. Le contrôleur est le seul à savoir ce qui se passe physiquement. Le but
est de décharger le système d'exploitation et donc le microprocesseur, des calculs
supplémentaires dus à la divergence éventuelle entre organisations logique et physique.
4 Le contrôleur dirige le pilote autant qu'il lui obéit. dans les autres cas on assiste à une relation
du type " Maître à esclave ". La norme SCSI s'adapte aux circonstances (voir ci-dessous).
quand le pilote donne l'ordre d'écrire sur le disque, il mène les opérations. Une fois le travail
réalisé, l'ordre des priorités est inversé: c'est le contrôleur qui dirige. il est de sa responsabilité
d'interrompre le pilote pour lui indiquer le résultat.
Les autres interfaces prévoient un pilote directif qui surveille le contrôleur jusqu'à ce qu'il est
fini. Le système attend, interroge à intervalles réguliers le pilote et ne renvoie aucun résultat à
l'application, qui patiente....
Un pilote de périphériques SCSI peut faire autre chose pendant le travail du contrôleur.
D Le bus IEEE 1394 ou FireWire
C'est la société Apple qui la sortie en 1985 sous l'appelation Fire Wire, puis il a été normalisé et est devenu le
bus IEEE 1394 C'est un bus destiné aux périphériqus ayant besoin d'un grand débit. l existe actuellement en trois
versions : 12,5 , 25 et 50 Mo/s, dans un futur proche on pourra le trouver à des débits proches de 200 Mo/s. Il
permet de relier jusqu'à 63 périphériques, sans hub et de façon plug en play. Il est aussi possible d'ajouter ou
d'enlever un périphérique à chaud (hot plugging).
Chaque périphérique dispose de deux sorties et d'une entrée de type Fire Wire, ce qui permet ainsi de les chaîner
entre eux.
Il n'y a pas d'identification à donner aux périphériques lors de leur installation, ni de terminaison à installer en fin
de chaîne.
Le connecteur comporte six fils, quatre pour la transmission des données numériques multipléxées et deux pour
l'alimentation.
La transmission des données se fait de façon isochrone ( les données sont transférées dans des intervalles de
temps réguliers).
7. Les BUS des Ordinateurs personnels
Définition : le bus est un canal de communication. Le bus mémoire, par exemple, permet au processeur de lire et
d'écrire des données dans la mémoire vive. Le bus d'extension fait communiquer le système processeur mémoire
avec les périphériques gérant l'affichage, le stockage, l'impression et la communication. C'est le passage obligé
de toute donnée échangée avec le processeur. Un bus se définit par sa largeur de bande (exprimé en bits) et par
une fréquence. Un bus 32 bits, signifie que les données qu'il véhicule sont organisées par paquets de 32 bits. Plus
ce nombre est élevé plus le bus sera rapide. La fréquence du bus correspond à la quantité de paquets qui peut-être
transportée en une seconde.
BTS IG2 -Cours d’Architecture
Page 42 sur 55
A Les Bus standards
Le bus ISA : (Industry Standard Architecture) a été inventée en 1981 par IBM pour son IBM 8088, c'est un bus
8 et 16 bits qui transfère les données à la vitesse de 5 Mo/s. Il est " devenu " peu performant par rapport aux
nouveaux Bus.
Vitesse théorique de transmission :
8Mhz x 16 bit = 128 megabits/seconde =128 megabits/seconde / 2 cycles = 64 megabits/secondes = 64
megabits/secondes / 8 = 8Mo/ secondes
Le Bus MCA (Micro Channel Architecture), est l'évolution du bus ISA proposée par IBM en 1987. Ce bus a une
largeur de 16 ou 32 bits, utilise la fréquence du processeur.bus 32 bits et a un débit théorique de 20 à 160 Mo/s.
Il fut développé par IBM pour ses PS afin de concurrencer les clones de l'époque.
Le Bus EISA (Extended Industry Standard Architecture), a été annoncé par un consortium de fabricants (sauf
IBM) en 1988 comme réponse au bus MCA d'IBM, il peut véhiculer des paquets de 32 bits à une vitesse de 33
Mo/s, il doit son existence au bus MCA et est son concurrent direct.
B Les Bus locaux
bus d'extension qui relie directement les périphériques au processeur. Ceux-ci communiquent (en théorie) alors à
la même vitesse que le bus du µP.
Le Bus VESA (Video Electronics Standards Association) : spécification d'un bus local 32 bits
cadencé à 33 MHz qui est presque mort-né.
Le débit théorique est compris entre 120 et 148 Mo/s.
Le Bus PCI (Peripheral Component Interconnect) : bus défini par Intel en 1992, il transmet les
données sur 32 bits et 64 à une fréquence de 33 , 66 et 100MHz quelle que soit la nature du
processeur. Il est compatible avec des processeurs 486, Pentium et RISC ainsi qu'avec les bus
ISA, EISA et MCA. Sa vitesse de transfert va de 132 Mo/s à 264Mo/s.
Le bus AGP (Accelerated Graphic Port) : bus défini par Intel en 1996, il permet de partager la
mémoire centrale entre la carte mère et la carte vidéo. Il est donc dédié à la carte vidéo, et
permet ainsi d'éliminer le goulôt d'étranglement qui freinait le graphisme pour les cartes vidéo
3D.
Ses caractéristiques sont nettement supérieur au bus PCI. L'AGP 1x a un débit théorique de
266Mo/s avec une fréquence de 66MHz et une largeur de bus de 64bits. Il se synchronise sur
les fronts montants du signal d'horloge. L'AGP 2x à un débit double, car il se synchronise à la
fois sur les fronts montants et les fronts descendants, et atteind ainsi un débit de 530Mo/s. On
parle d'un AGP 4x qui permettrait d'atteindre un débit de 1Go/s, mais pour l'instant il est limité
par la fréquence du bus.
8. Les liaisons séries
BTS IG2 -Cours d’Architecture
Page 43 sur 55
Elles s'emploient lorsque la distance à laquelle doit s'effectuer la transmission dépasse 1 à 2 mètres. Elles sont en
outre obligatoires dés que l'on fait appel à des lignes téléphoniques, fibres optiques, faisceaux hertziens, satellites
de communication etc.. Dans ces situations, on est obligé d'utiliser à chaque bout de la chaîne de transmission,
des " MODEMs " dans lesquels une onde porteuse est modulée par le signal à transmettre ou démodulée pour en
extraire les informations utiles (Voir le chapitre sur les modems).
Il existe une multitude de protocoles et de normes pour les liaisons séries. La plus célèbre étant la norme RS232.
A La norme RS232 :
Présentation : Elaborée par (Electronic Industries Association) aux états unis en 1962 et pour l'ensemble du
monde par le ccitt et ISO (International Standards Organisation), la norme RS232C défini la structure d'un bus
de liaison série 25 fils, supportant aussi bien le mode synchrone que le mode asynchrone, entre deux matériels
Elle défini également le brochage du connecteur DB25 de raccordement de ce bus.
Deux fils du bus permettent d'échanger les informations, l'un servant à les émettre l'autre à les recevoir.
Les autres fils, appelés lignes de service, servent au dialogue entre les deux matériels
Emetteurs et récepteurs RS-232C dans un système fondamental de communication de données
Définition des signaux : C'est une liaison de type asymétrique.
Les signaux sont au nombre de 25, les expliqués tous est sans grand intérêt, nous allons nous pencher sur les plus
courants. Ce sont les 9 lignes utilisées par les micro-ordinateur ayant pour inconvénient de n'autoriser que des
liaisons asynchrones.
Broche
Ligne
Sens liaison
1
Désignation anglaise
Désignation française
GROUND
TERRE (blindage)
2
103
PC MOD
TD : Transmitted Data
ED : Emission de Données
3
104
PC MOD
RD : Received Data
RD : Réception de Données
4
105
PC MOD
RTS : Request To Send
DPE : Demande Pour Emettre
5
106
PC MOD
CTS : Clear To Send
PAE : Prêt A Emettre
6
107
PC MOD
DSR : Data Set Ready
PDP : Poste de Données Prêt
7
102
PC MOD
GND : Logic Ground
TS : Terre Signalisation (masse)
8
109
PC MOD
RLSD : Carrier Detect
DS : Détection Signal de ligne (porteuse)
20
108
PC  MOD
DTR : Data Terminal Ready
CPD : Connexion Poste Données sur la ligne
22
125
PC MOD
RI : Ring Indicator
IA : Indicateur d'Appel
Caractéristiques : Les niveaux logiques sont représentés par des tensions comprises entre +5V et +15V pour le
niveau logique 0, entre -5 et -15V pour le niveau logique 1.
Les entrées réceptrices doivent être capables de supporter des niveaux de +/- 25V.
Pour le câblage on peut n'utiliser que 3 fils (2, 3, 7). on parle de :
- câble droit, lorsqu'un matériel est considéré ETTD et l'autre ETCD.
- câble croisé, lorsque les deux matériels sont considérés ETTD
- Point à Point ;
- Duplex ;
- Débit informationnel faible :
- 19200 bauds à 16m
- Faible immunité au bruit.
D'autres normes ayant d'autres spécifications ont été développées pour échapper dans une certaine mesure aux
limitations parfois contraignantes imposées par la RS232.
B La norme RS423
Cette norme spécifie les caractéristiques électriques des circuits d'interface en mode transmission de tension,
entre émetteur et récepteur symétrique. Ce type de liaison est utilisé pour la transmission en série de signaux
binaires entre des Equipements Terminaux de Données (DTE) et des Equipements terminaux de Circuits de
Données (DCE). Le DTE étant en général un terminal et les DCE pouvant être un moniteur ou une imprimante.
BTS IG2 -Cours d’Architecture
Page 44 sur 55
On peut utiliser les fréquences de transmission de données typiques de 100kbps sur 30m, ou 3kbps sur 1200m.
La norme RS423 autorise un émetteur et jusqu'à 10 récepteurs pour un seul circuit de données. On peut
connecter ce standard avec d'autres standards d'interface numérique tels que RS232, RS422 et RS485.
Caractéristiques :
- Point à point ;
- Alternée ou half-duplex ;
- Débit informationnel moyen :
- 100kbauds à 1200m
- Immunité au bruit moyenne.
Il est très difficile, de transmettre des données à grande vitesse, sur de grandes distances et dans des conditions
de bruit élevé, entre des parties d'un système informatique et des périphériques, en utilisant des Emetteurs et
Récepteurs asymétriques. D'ou la nécessité de créer des standards symétriques tels que les normes RS422 et
RS485.
C La norme RS422
La norme de transmission symétrique RS422 a été élaborée en 1975 pour définir les car caractéristiques de
transmissions des signaux de données de base de temps ou de commande entre un ordinateur hôte et ses
périphériques.
Elle a été révisée RS422A en décembre 1978.
Une ligne de transmission RS422 est une ligne unidirectionnelle (mode simplex).
Une application typique de l'interface RS422 est son utilisation en communication de données dans un aéroport,
entre un ordinateur central et de nombreux moniteurs ou stations éloignés , tels que les moniteurs de départs et
d'arrivées. Dans cette application on utilise une ligne en paire torsadée unique pour relier ensemble un terminal
de contrôle central et plusieurs moniteurs. La terminaison de la ligne étant disposée à l'extrémité de la ligne la
plus éloignée du terminal de contrôle.
Caractéristiques :
- Point à point ;
- Alternée ou half-duplex
- Débit informationnel élevé : 10Mbauds à 1200m
- Excellente immunité au bruit
D La norme RS485
Présentation : Comme la norme RS232C, elle à été normalisée par l'EIA. Elle a été introduite en 1983 et est une
version améliorée de la RS422. Dans sa version la plus simple, elle est constituée d'un émetteur de ligne relié à
un récepteur de ligne différentiel par une ligne bifilaire torsadée blindée.
Lorsqu'un niveau logique 1 est présent sur l'entrée de son émetteur de ligne, celui-ci applique un potentiel de
+5V sur le conducteur 1 de la ligne et un potentiel 0V sur le conducteur 2 de cette ligne.
Inversement, Lorsqu'un niveau logique 0 est présent sur l'entrée de son émetteur de ligne, celui-ci applique un
potentiel de 0V sur le conducteur 1 de la ligne et un potentiel +5V sur le conducteur 2 de cette ligne
Le récepteur de ligne est sensible à la différence de tension existant entre les deux conducteurs de ligne,
technique qui permet de s'affranchir des tensions induites par les parasites (bruit).
Caractéristiques :
- Multi Points ;
- Alternée ou half-duplex
- Débit informationnel élevé : 10Mbauds à 1200m ;
- Excellente immunité au bruit.
Tableau comparatif des différents normes.:
Paramètre
RS 232
RS 423A
RS 422A
RS 485
Asymétrique
Asymétrique
Symétrique
Symétrique
Nombre d'émetteurs
et de récepteurs
1 émetteur
1 récepteur
1 émetteur
10 récepteurs
1 émetteur
10 récepteurs
32 émetteurs
32 récepteurs
Longueur maximum
15
1200
1200
1200
Mode de
fonctionnement
BTS IG2 -Cours d’Architecture
Page 45 sur 55
du câble (m)
Débit maximum (baud)
20k
100k
10M
10M
E Le port USB
Ce port série universel (Universal Serial Bus ) est un nouveau type de prise (1995) , permettant de relier à l'unité
centrale jusqu'à 127 périphériques sans ordre hiérarchique précis. Il permet également le branchement des
périphériques "à chaud" (sans avoir à éteindre la machine), son avantage sur les ports séries traditionnels tel que
le RS232, c'est qu'il permet un ajout rapide et facile de périphériques sur un ordinateur quelconque et les
ressources nécessaires sont allouées à la volée par le système d'exploitation. Le port USB est capable d'exploiter
clavier, joystick, souris, modem, hauts parleurs, scanner, imprimantes, et même téléphone, il est limité
simplement par son débit qui n'est que de 1,5 Mo par seconde au maximum. Le seul inconvénient serait peut-être
la longueur maximale d'un câble USB, sans recourir à un hub, qui n'est que de cinq mètres.
Le hub (concentrateur) permet de palier au problème du nombre de connecteurs très restreint (seulement deux
sur les cartes mères) et ainsi pouvoir connecter plus de 2 périphériques de type USB sur le même ordinateur. Il
existe deux types de hub, les hubs non alimentés qui exploite l'alimentation de l'ordinateur et les hubs alimentés
qui possèdent leurs propres alimentations et proposent ainsi de fournir l'énergie nécessaire à chaque
périphérique.
F La boucle de courant
Présentation : C'est une liaison issue des techniques électromécaniques de transmission de l'information. Elle
permet des liaisons multi machines. En raison de sa simplicité et de sa bonne immunité au bruit, elle est encore
utilisée en informatique industrielle et surtout en milieux perturbés (usines).
Bien qu'elle n'ait été l'objet d'aucune normalisation, au fil des ans deux standards de liaison se sont imposés :
- La boucle de courant 20mA, d'usage général ;
- La boucle de courant 500mA, pour les milieux très parasités.
Dans cette liaison on module le courant circulant dans une boucle au rythme des informations binaires à
transmettre. Ainsi, pour une boucle de courant 20mA, on adopte généralement la convention suivante :
- 1 logique correspondant à i = 20mA;
- 0 logique correspondant à i = 0mA.
Qu'est qu'une boucle de courant ? : Souvent les informations délivrées par un capteur analogique doivent être
transmises à distance. Dans la plupart des cas, la méthode la plus commode consiste à convertir l'information de
tension en un courant avant la transmission. La boucle de courant la plus communément employée se compose
de deux fils assurant à la fois l'alimentation du capteur et du circuit de conditionnement de signal et le transfert
de l'information acquise sous la forme d'un courant dont l'intensité est proportionnelle au signal mesuré. Le
courant dans la boucle varie généralement de 4mA à 20mA pour la pleine échelle : c'est la boucle de courant 420mA. Jusqu'à 4mA de courant de boucle peut être utilisé pour alimenter le capteur, le circuit de
conditionnement de signal et le convertisseur tension courant.
Caractéristiques :
- Point à point ;
- Simplex
- Débit informationnel faible :
- 19200 bauds à 40m
- 4800 bauds à 180m
- 2400 bauds à 360m
- 1200 bauds à 720m
BTS IG2 -Cours d’Architecture
Page 46 sur 55
Chapitre 10 - Les puces RISC
1. Objectif de la technologie RISC
La Rapidité d'exécution des programmes.
La vitesse passe par la simplification du microprocesseur, ce qui entraîne une baisse de la consommation et du
coût.
2. Introduction
En 1975, les chercheurs d'IBM firent la constatation suivante : moins de 20% des instructions disponibles dans le
microprocesseur sont utilisées dans 80% des cas. D'où la question : pourquoi ne pas simplifier les
microprocesseur en implantant sur la puce les instructions les plus courantes ? On gagnerait ainsi en vitesse,
donc en performance, et on réduirait la surface de la puce, donc la consommation et le coût. C'est cette idée qui
fut la base de la technologie RISC (Reduced Instruction Set Computer : microprocesseur à jeu d'instructions
réduit) par opposition aux CISC (Complex Instruction Set Computer). Mais que fait-on des instructions
complexes ? Il suffit tout simplement de les remplacer par une série d'instructions simples (une multiplication est
une série de sommes). Mais à la différence de l'approche CISC, le décodage des instructions complexes est
assuré par le logiciel au niveau du compilateur, et non pas par des circuits logiques implantés sur le
microprocesseur. Il permet ainsi d'éviter les microcodes à programmer sur la puce. Ceci oblige à avoir un
compilateur plus complexe, devant être optimisé de façon à réduire les temps d'exécution, si l'on veut préserver
les avantages de la puce RISC.
Remarque : une instruction complexe à l'intérieur du microprocesseur n'est en fin de compte qu'un " programme
" implantés sur la puce.
3. Le PIPELINE
on a vu que la réduction du jeu d'instructions apporte un gain de rapidité, mais l'essentiel des performances vient
de l'exploitation du gain de place pour une nouvelle fonction : le traitement en pipeline. Une instruction du
programme s'exécute généralement en 5 séquences successives. A chaque séquence correspond une impulsion
d'horloge
IF : Instruction Fetch, chargement des instructions du cache mémoire vers la file d'instructions.
DEC : Décodage, traduction de l'instruction se trouvant sur le haut de la file d'instructions.
EX : Exécution, exécution par l'ALU ou la FPU de l'instruction décodée
MEM : Memory acces, lors d'une opération de lecture/écriture, la donnée est écrite vers une
file de lecture/écriture. Ceci évite de bloquer le pipeline dans le cas où on ne pourrait accéder à
la mémoire.
WB : Write Back, écriture du résultat de EX ou de MEM
La simplification apportée par la technologie RISC ayant conduit à des instructions standards de même longueur,
le principe du pipeline est donc de profiter de cette standardisation pour exécuter les instructions, non pas de
façon séquentielle, mais en cascade à 5 étages à la manière d'une chaîne de fabrication à 5 postes de travail
(Merci Taylor). Chaque étage est chargé d'une séquence. En permanence, 5 instructions se trouvent donc
simultanément à des séquences différentes de traitement. A chaque coup d'horloge, une instruction est
entièrement exécutée.
t
t+1
t+2
t+3
t+4
t+5
ins1
IF
DEC
EX
MEM
WB
IF
DEC
EX
MEM
WB
IF
DEC
EX
MEM
WB
IF
DEC
EX
MEM
WB
CMP AX,0
IF
DEC
EX
MEM
JE Suite
ins2
ins3
ins4
ins5
t+6
t+8
MOV AX,I
Exemple : chaque cycle : 1 étage activé = 5 instructions en //
BTS IG2 -Cours d’Architecture
Page 47 sur 55
t+7
MOV BX,J
SUB AX,BX
Il peut arriver certains conflits :
- Conflit de ressource : 2 instructions veulent accéder à la même ressource au même moment
- Dépendance de données : un registre (résultat d'une opération précédente) est lu alors qu'il n'a pas encore été
écrit.
- Aléas de branchement : le processeur n'a pas encore le résultat d'un test et doit choisir entre deux sauts (ex :
sauts conditionnels).
Résolution des conflits : elle se fait souvent pendant le DECodage.
Ressource : on diffère l'accès à cette ressource pour l'instruction la plus jeune
Données : pour les registres, il existe sur les ALU des systèmes de by-pass pour récupérer la valeur calculée
avant la véritable écriture dans la table des registres (WB)
Branchements : le processeur fait le pari sur le branchement. S'il se révèle bon, alors on continue. S'il est
mauvais, on invalide toutes les instructions exécutées depuis la prise de décision ce qui est complexe et coûteux
en matériel. Pour prédire le branchement, il existe des techniques de statistiques utilisant des buffers de
prédiction pour savoir si le branchement a déjà été pris ou non (valable surtout pour les boucles). On associe un
bit à chaque instruction dans le cache instructions.
Architecture supersacalaire : elle consiste à multiplier le nombre de pipelines, donc à mettre plusieurs unités
de traitement travaillant en parallèle. La cadence de traitement s'en trouve au mieux multipliée par le nombre de
pipelines. Avec 4 pipelines, les microprocesseur RISC les plus récents traitent jusqu'à 4 instructions par cycle.
Architecture superpipeline : elle consiste à augmenter la profondeur du pipeline (plus de séquences et une
fréquence plus élevée donc t plus petit) permettant ainsi d'augmenter encore la cadence du traitement. Par contre,
cette organisation demande une logistique plus complexe pour approvisionner les différents " postes ". Pour
l'instant, le bon compromis est un pipeline à 7 étages, le gain est donc beaucoup moins significatif que dans le
cas d'une multiplication du nombre de pipelines.
4. Comparaison des architectures RISC et CISC
Architecture
RISC
CISC
jeu d'instructions
Jeu réduit limité aux instructions simples les
plus utilisées dans le traitement.
Typiquement plus de 200 instructions
Typiquement moins de 100 instructions
format des
instructions
Standard
Implémentation des
instructions
Seules les instructions simples sont gravées
La plupart des instructions sont gravées sur
sur le silicium. Les autres sont programmées
le silicium. Pas de microcodes. Les tâches
sous forme de microcodes sur des circuits
complexes sont décodées par le compilateur.
logiques
Accès à la mémoire
Seules les instructions de chargement et de
rangement de registres (Load et Store)
La plupart des instructions y ont accès
Vitesse d'exécution
Typiquement une instruction par cycle
d'horloge
Typiquement une instruction pour 3 à 10
cycles d'horloge
Avantages
Puce plus petite. Fréquence d'horloge plus
élevée. Vitesse d'exécution plus grande
Développement plus simple des systèmes.
Base installée importante
Inconvénients
Nécessite des compilateurs plus complexes
et plus performants. Programme
d'application plus long occupant plus de
mémoire
Technologie gourmande en silicium. Puce
plus compliquée à développer. Possibilités
d'évolution limitées
Variable
5. Conclusion
La division entre les concepts CISC et RISC n'est plus aussi dichotomique que par le passé. L'ensemble des
microprocesseurs utilise des solutions similaires, même si les uns sont classés CISC et les autres RISC. Le 486
d'Intel et le 68040 de Motorola sont les deux premiers (connus du grand public) processeurs CISC à se
rapprocher de la technologie RISC. L'unité centrale contient les instructions les plus courantes, tandis que les
instructions complexes sont confiées à une unité spécifique séparée et utilisent le traitement en pipeline. Le
Pentium et le 86060 qui ont suivis, vont plus loin en adoptant l'architecture superscalaire. Par contre les
microprocesseurs RISC ont tendance à enrichir leur jeu d'instructions et finissent par devenir aussi complexes
que des CISC. Si bien qu'aujourd'hui, l'important n'est pas de savoir si tel ou tel microprocesseur est CISC ou
RISC, mais de connaître son architecture interne et ses performances.
BTS IG2 -Cours d’Architecture
Page 48 sur 55
Chapitre 11 - Les ordinateurs multiprocesseurs
1. Introduction
Depuis 1971, date à laquelle un ingénieur, d'une grande firme dont je tairais le nom, construisit le premier
microprocesseur, appelé 4004. L'augmentation des performances de cette bête appelée plus péjorativement puce,
a été 100 fois supérieure à celle des ordinateurs de 1950 à 1970. Les constructeurs prévoient la fabrication d'un
microprocesseur travaillant à 10GHz et contenant 1 milliard de transistors pour les années 2010. Cette prédiction
est basée sur la fameuse " loi " de Gordon Moore qui dit que le nombre de transistors composant une puce,
double environ tous les six mois.
Une chose facile à prédire, est que les capacités de calculs d'un seul microprocesseur ne pourront plus être, dans
un avenir proche, suffisantes pour les utilisations auxquelles on destine nos ordinateurs.
Lorsque l'on parle d'ordinateurs pour la météorologie, le traitement de l'image, la physique des particules, la
modélisation économique, les échecs et autres, on ne parle plus d'ordinateurs monoprocesseurs mais
d'ordinateurs multiprocesseurs.
De plus, il est plus économique de fabriquer des processeurs moins puissants, déstinés à des tâches spécifiques et
de les connecter entre eux, que de fabriquer des processeurs plus complexes sachant " tout faire ".
Si le rythme de progression des architectures monoprocesseurs diminue progressivement, alors les architectures
multiprocesseurs deviendront de plus en plus convaincantes et finiront par prendre le dessus.
Le problème qui réside maintenant, est de savoir quel type d'architecture multiprocesseurs les concepteurs vontils adopter pour fabriquer les ordinateurs de demain ?
2. La taxinomie des architectures parallèles
L'idée de fabriquer des machines multiprocesseurs, date d'avant la construction du premier microprocesseur. A
l'époque, on ne parlait pas de microprocesseurs mais de processeurs.
Remarque : dans la suite de ce cours, je vais considérer que tout composant capable de chercher des instructions
dans une mémoire et d'y stocker des données, sera appelé microprocesseur.
Au milieu des années 60, Flynn a proposé un modèle simpliste pour classer les ordinateurs, en fonction des flots
d'instructions et de données. Il a ainsi rangé tous les ordinateurs en quatre grandes catégories.
- SISD (Simple Instruction Simple Data), donc un seul flot d'instructions et un seul flot de
données. C'est la machine monoprocesseur classique tel que la décrite John Von Neumann et
que monsieur tout le monde utilise à l'heure actuelle.
- SIMD (Simple Instruction Multiple Data), donc un seul flot d'instructions et plusieurs flots
de données. La même instruction est exécutée par plusieurs processeurs utilisant différents
flots de données. On ne dispose que d'une seule mémoire d'instructions pour tous les
processeurs, mais chacun d'entre eux possède sa propre mémoire de données. Un seul
processeur de contrôle gère les instructions. Les processeurs sont spécifiques à la tache qu'ils
exécutent.
- MISD (Multiple Instructions Simple Data), donc plusieurs flots d'instructions et un seul flot
de données. Il n'existe pour l'instant aucune machine architecturée sur ce modèle.
- MIMD (Multiple Instructions Multiple Data), donc plusieurs flots d'instructions et plusieurs
flots de données. Chaque processeur exécute ses propres instructions et opère sur ses propres
données. Ce qui, en étant un peu simpliste, revient à dire que l'on a assemblé une machine
comportant plusieurs ordinateurs ayant une architecture de type Von Neumann.
Il est certain qu'il n'existe pas une frontière franche entre ces quatre catégories d'ordinateurs,
certaines machines appartiennent à plusieurs d'entre elles.
Il n'existe pas de systèmes multiprocesseurs étant conçus sur un modèle unique. Pour chaque problème
complexe, il existe une machine complexe.
L'exemple le plus connu est Deeper Blue le super calculateur d'IBM qui pour battre Garry Kasparov aux échecs,
ne contenait pas moins de 300 microprocesseurs. Cette machine est constituée de 32 nœuds possédant chacun un
processeur P2SC, huit processeurs d'échecs, une mémoire et des disques de données. En tout, ce sont donc 256
microprocesseurs d'échecs qui fonctionnent en même temps, sous la commande de 32 microprocesseurs "
classiques ". Mais Deeper Blue, sait-il jouer aux Dames ?
BTS IG2 -Cours d’Architecture
Page 49 sur 55
Seul le cerveau humain, qui est composé de " systèmes " parallèles, est capable de s'adapter à toutes les
situations (ou presque)
Avant les années 80, beaucoup de machines étaient conçues sur le modèle SIMD. Mais la technologie aidant, la "
mode " est plutôt aux architectures MIMD et elles possèdent deux atouts majeurs :
- L'architecture MIMD est très flexible, elle peut fonctionner comme une machine n'ayant
affaire qu'à un seul utilisateur, désirant lancer simultanément plusieurs tâches.
- L'architecture MIMD peut être conçues en récupérant les avantages des processeurs
standards, à savoir le rapport coût performances.
Les gros ordinateurs actuels sont constitués de dizaines de microprocesseurs identiques à ceux utilisés dans
l'ordinateur de " monsieur tout le monde " (ou presque).
Les machines MIMD peuvent être classées en deux catégories dépendant de leur organisation mémoire. La
quantité de microprocesseurs qu'elles disposent fluctuant en fonction des années.
- La mémoire partagée centralisée : Plusieurs couples microprocesseur cache se partagent la même
mémoire principale physique. Il n'existe qu'un seul bus au travers duquel, les données transitent.
Cet ensemble contient un nombre limité de microprocesseurs. En effet le système gérant la mémoire ne peut
fournir une infinité de données en un laps de temps très court. On rencontre alors des problèmes de bande
passante au niveau du bus transportant les données. Le nombre de microprocesseurs pour la mémoire
partagée centralisée est inférieur à cinquante. Si on veut augmenter ce nombre, il faut se résigner à passer
d'une mémoire partagée centralisée à une mémoire distribuée entre les microprocesseurs.
BTS IG2 -Cours d’Architecture
Page 50 sur 55
La mémoire distribuée : On ne parle plus de couples microprocesseur cache, mais de nœuds individuels
contenant chacune un microprocesseur, de la mémoire, des Entrées/Sorties et une interface à un réseau
d'interconnexion permettant la connexion de tous ces nœuds.
La mémoire partagée permet d'étendre le débit mémoire, si la majeure partie des accès mémoire concerne la
mémoire locale au nœud. Cette constatation est d'autant plus justifiée que les microprocesseurs sont de plus
en plus rapides et exigent des mémoires avec des temps d'accès de plus en plus faible.
L'inconvénient majeur de la mémoire distribuée, est que la communication des données entre les
microprocesseurs devient très complexe et très ralentie du fait de la transition par le réseau d'interconnexion.
Remarque : Avec les machines MIMD ayant un nombre de microprocesseurs inférieur à dix, on peut partager la
mémoire centralisée unique. Un bus interconnecte les processeurs et la mémoire, et un cache pour chaque
microprocesseur permet d'obtenir une machine ayant une seule mémoire principale avec un temps d'accès
uniforme pour chaque microprocesseur. Ces machines sont appelées UMA (Uniform Memory Acces) pour
Accès Mémoire Uniforme. Ces machines sont les plus répandues en ce moment, et l'on peut dire que le MAC, le
PC et l'ALPHA sont conçus de cette manière.
-
3. L'utilisation
Les architectures parallèles peuvent être très utilisées dans les domaines où les types de calculs le permettent. Par
exemple pour le traitement de l'image, il est facile d'imaginer que l'on peut attribuer un microprocesseur à chaque
point de l'image. Mais en revanche, lorsqu'une étape de calcul va dépendre du résultat de l'étape précédente, la
multiplication du nombre de microprocesseurs ne diminuera les temps de calculs. Par exemple pour le calcul de
la trajectoire d'un mobile.
4. La mise en œuvre
Elle est dépendante de la pensée du ou des programmeurs. Dans la méthode de " pensée concurrente ", le
programmeur écrit son programme sans se " préoccuper " de savoir s'il est possible de traiter le problème de
manière parallèle. Si la machine est conçue pour cela, le compilateur pourra analyser le programme, le découper
en différents calculs pouvant être envoyés sur les différents microprocesseurs.
Dans la méthode de " pensée parallèle ", le programmeur écrit son programme en se " préoccupant " de la mise
en parallèle du problème, et la machine se charge simplement de gérer les microprocesseurs.
5. L'amalgame
Afin de ne pas tout mélanger, il est bon de savoir que les systèmes actuels sont constitués d'architectures MIMD
qui utilisent la mémoire partagée centralisée et la mémoire distribuée. En effet chaque nœud peut être vu comme
étant un ordinateur à mémoire partagée.
BTS IG2 -Cours d’Architecture
Page 51 sur 55
Chapitre 12 - Le microprocesseur
1.Définition
Circuit intégré à une puce, qui dispose des fonctions d’un processeur complet. C'est la société Intel qui, le 15
novembre 1971, lança le premier microprocesseur. Ted Hoff, le créateur, avait réussi à simplifier le principe du
calculateur. La puce de Hoff était en quelque sorte un "processeur universel". Le premier microprocesseur, le
4004, contenait 2300 transistors et exécutait 60000 opérations à la seconde. Il en existe à l’heure actuelle, une
très grande variété. On peut les classer en famille, chaque famille représente une architecture. Leurs
caractéristiques sont nombreuses, mais la principale est la puissance de calculs, dont l’unité est le Mips (Million
of Instruction Per Second) pour les microprocesseurs simples et le Mflops (Million of Floating point Opérations
Per Second).
2. La composition Interne
Composition physique : Le processeur, n’est en fin de compte qu’un "vulgaire " morceau de silicium,
dont la taille va de quelques mm2 à quelques dizaines de mm2.
Composition électrique. Le microprocesseur est constitué électriquement de millions d’interrupteurs
commandés par des tensions. Ces interrupteurs sont appelés transistors, et leur agencement forme un
ensemble de fonctions élémentaires telles que OU, ET, ADD, SUB … .
Que fait-il ? : Il doit exécuter un programme, ce programme est constitué d’instructions. Ces
instructions, il doit les connaître, les stocker, les décoder et les exécuter. Il doit "savoir " où se trouve
(aller chercher) la prochaine instruction à exécuter, de plus il doit être "à l’heure ", donc cadencé.
Toutes ces obligations conduisent à la conclusion suivante : un microprocesseur est constitué d’un
ensemble d’entités permettant de faire les opérations citées ci-dessus, d’où sa composition logique.
Composition logique : Le microprocesseur de base n’est constitué en fait que de deux unités
fonctionnellement séparées : l’UAL pour Unité Arithmétique et Logique et l’UC pour Unité de
commande ou de contrôle.
L’UC : elle dirige le fonctionnement du microprocesseur, ses circuits génèrent les signaux
nécessaires à l’exécution de chaque instruction d’un programme.
C’est un ensemble de dispositifs permettant la coordination du µP afin de lui faire exécuter la
suite d’opérations spécifiées dans les instructions d’un programme. Cette unité de commande
est constituée de :
Un Compteur Ordinal, qui est un registre contenant l’adresse de la case mémoire où
est stockée l’instruction suivante à chercher.
Un Registre d’instructions, il contient l’instruction à exécuter.
Un Décodeur de code opération, qui détermine quelle opération doit être effectuée
parmi le jeu d’instructions.
Un séquenceur, il génère les signaux de commandes pour piloter les autres entités du
microprocesseur, et synchroniser ce dernier avec la mémoire.
L’UAL : elle a pour fonction d’effectuer les opérations arithmétiques telles que l’addition, la
soustraction et les opérations logiques telles que les fonctions OU, ET, décalage et rotation.
3. Le jeu d’instructions
C’est l’ensemble des instructions de base câblées à l’intérieur du microprocesseur, donc que ce dernier peut
d’exécuter. Chaque famille de microprocesseurs possède son propre jeu d’instructions. Ce jeu d’instructions est
BTS IG2 -Cours d’Architecture
Page 52 sur 55
tributaire d’exigences telles que, la simplicité, la rapidité, l’universalité, l’occupation sur la pastille de silicium et
le confort du programmeur. Le nombre d’instructions composant ce jeu est compris entre 50 et 350 instructions
selon que l’on est à faire à des microprocesseurs RISC (Reduced Instruction Set Computer) ou des
microprocesseurs CISC (Complex Instruction Set Computer). Les instructions peuvent être classées en six
catégories :






Transfert de données, entre le µP et la mémoire, MOVE, LOAD, STORE, …
Opérations arithmétiques, ADD, SUB, …
Opérations logiques OR, AND, …
Contrôles des séquences, sauts conditionnels ou inconditionnels
Entrées / Sorties, entre le µP et les périphériques,
Divers, décalages, incrémentation, ….
4. Les registres
Ce sont des mémoires internes au microprocesseur, leur temps d’accès est en général inversement proportionnel
à la fréquence de l’horloge. Leur nombre et leur type varient énormément d’une architecture à l’autre. En règle
générale, plus un microprocesseur a de registres et plus il est performant, la quantité varie de 10 à plus de 100.
La taille d’un registre se mesure en bit (Binary Information), et lorsque l’on parle d’un microprocesseur 32 bits,
cela veut dire qu’il travaille avec des registres de taille 32 bits. Les registres peuvent être classés en six
catégories :









Registres généraux, ils contiennent les données et résultats des opérations réalisées par le
microprocesseur, on les appelle aussi des accumulateurs.
Registres spécifiques :
Compteur Ordinal (voir ci-dessus),
Registre d’instruction (voir ci-dessus),
Registre d’état, (PSW : Program Status Word), appelé aussi le CCR registre code condition, il contient
différents bits appelés drapeaux (flags) indiquant le résultat d’une condition. Exemple le bit Z indique si
le résultat de l’opération précédente est nul. Ces bits sont testés et permettent de faire des sauts dans les
programmes.
Registre pointeur de pile, il permet de simuler une pile (FIFO ou LIFO) dans la mémoire centrale.
Registres de base, ils sont utilisés comme indice pour calculer des adresses effectives. Ils contiennent
l’adresse de base, on leur rajoute l’adresse du registre d’instruction et on trouve l’adresse effective.
Registres d’index ou d’indice, ils permettent de manipuler des tableaux de données à plusieurs
dimensions. Pour connaître l’adresse effective, on somme l’adresse de base, avec l’adresse du registre
d’instruction et du registre d’index. Ils sont en général incrémentés ou décrémentés automatiquement
après chaque utilisation.
Registres de deboggage, ils permettent de faire la mise au point des programmes.
5. Le Langage
Le langage de programmation d’un microprocesseur est appelé le langage machine. Il n’est composé que de 1 et
de O, donc du binaire. Au début de l’informatique, les programmeurs programmaient en langage machine, ce qui
était très pénible, car il fallait aligner des séquences de bits, dont la signification n’avait rien d’évidente pour
l’homme. Pour comprendre cette séquence de bits, il fallait compulser une table décrivant toutes les opérations
possibles et leur représentation binaire.
Par exemple pour additionner deux nombres, on écrivait 10001010 01011000 11010010 (ce n’est qu’un
exemple, le codage est pris au hasard). Les 8 premiers bits représentent le codage de l’instruction que l’on
nomme le code opératoire, les 2 paquets de 8 bits suivants, représentent les deux nombres à additionner, que
l’on nomme opérandes.
Par la suite, on a donné des noms aux opérations, que l’on a appelé des codes mnémoniques, exemple : ADD,
DIV, OR,… De même pour les données et les résultats, on a pu les mettre sous une forme symbolique. Pour
convertir ce "nouveau " langage en langage machine, on utilise un programme que l’on nomme assembleur,
donc ce "nouveau " langage s’appelle le langage d’assemblage. Ce langage est toujours exploité et le sera
toujours, car il est le seul qui puisse exploiter toutes les ressources du microprocesseur. Tous les noyaux des
systèmes d’exploitation sont écrits en langage machine.
BTS IG2 -Cours d’Architecture
Page 53 sur 55
Langage d'assemblage --------Assembleur-------> Langage machine
6. Fonctionnement
L’UC va chercher en mémoire les instructions et les données, en envoyant l’adresse ainsi qu’une commande de
lecture ou d’écriture. Pour le cas de la lecture, l’instruction codée en binaire est transférée vers l’UC, où son
décodage permet de déterminer l’opération demandée ainsi que la quantité de données nécessaires. A partir de
cela, il y a génération des signaux utiles à l’UAL pour déclencher l’exécution de l’instruction. Ensuite, l’UC va
chercher les données et les transfère directement à l’UAL. L’UAL exécute l’instruction et transmet le résultat à
l’UC, qui va aller le stocker en mémoire. Le cycle se répète ainsi indéfiniment, un microprocesseur ne s’arrête
jamais de "travailler ".
L’exécution d’une instruction :
1 – Chargement de la prochaine instruction à exécuter depuis la mémoire jusque dans le registre
d’instruction,
2 – Modification du compteur ordinal pour qu’il pointe sur l’instruction suivante,
3 – Décodage de l’instruction que l’on vient de charger,
4 – Localisation dans la mémoire des éventuelles données utilisées par l’instruction,
5 – Chargement des données si nécessaire dans les registres internes de l’UAL
6 – Exécution de l’instruction
7 – Stockage du résultat dans la mémoire
Retour à l’étape N°1.
Les étapes 1, 2, 3, 4 et 7 sont réalisées par l’UC et les autres par l’UAL.
7. La composition Externe
Pour communiquer avec le monde externe, le microprocesseur possède tout un ensemble de broches. Ces
broches peuvent être regroupées en trois groupes que l’on nomme des bus. Il existe logiquement, mais pas
obligatoirement physiquement, trois sortes de bus :



le bus de données sur lequel transitent les données et les résultats entre le µP et les composants
externes,
le bus d’adresses sur lequel le µP envoie les adresses des cases mémoires qu’il désire lire ou bien dans
lesquelles il désire écrire,
Le bus de commandes sur lequel transite tout un ensemble de signaux permettant de gérer le dialogue
entre le µP et les autres composants. Exemple la ligne R/W (Read Write), permet d’indiquer à un boîtier
mémoire si le µP va lire une donnée ou écrire un résultat.
BTS IG2 -Cours d’Architecture
Page 54 sur 55
Remarque : sur certains µP, le bus de données et le bus d’adresses ont physiquement, les mêmes broches. On
parle alors de bus multiplexé.
8. Fonctionnement
Imaginons le scénario suivant, le µP va devoir effectuer l’opération suivante :
ADD MémoireX, 32, c’est à dire additionner le contenu de la MémoireX avec la valeur 32 et ranger le
tout dans la case MémoireX, et il ne "sait " pas encore.
Quelles sont les étapes de ce travail ?
(1) Le µP va chercher en mémoire le code opératoire de l’instruction à exécuter, donc il faut
qu’il lise le contenu d’une case mémoire. Pour cela, il met sur son bus d’adresse, le code
binaire de l’adresse de la case mémoire contenant le code opératoire de l’instruction à
exécuter. Il positionne la ligne R/W à 1, pour signaler à la mémoire qu’il désire faire une
opération de lecture,
(2) Cette instruction est récupérée par l’UC qui la stocke dans le Registre d’Instruction,
(3) L’UC décode cette instruction et constate qu’elle a besoin de deux opérandes, MémoireX et
32,
(4) Il faut aller chercher le contenu de MémoireX en mémoire, pour cela le µP refait la même
chose que pour le code opératoire de l’instruction à exécuter,
(5) Le contenu de cette mémoire est stocké dans un des registres généraux,
(6) La valeur immédiate 32 est directement codée par l’UAL,
(7) L’UC envoie le code (décodé) de l’instruction à exécuter ainsi que le contenu de
MémoireX à l’UAL,
(8) L’UAL exécute l’instruction, et envoie le résultat à l’UC. Ce résultat il faut le sauvegarder,
(9) Le µP va stocker ce résultat, pour cela, il met sur son bus d’adresse, le code binaire de
l’adresse de la case MémoireX, Il positionne la ligne R/W à 0, pour signaler à la mémoire qu’il
désire faire une opération d’écriture, le résultat est sauvegarder dans la case mémoire.
On peut passer à l’instruction suivante.
Remarque : tout cela n’a duré que quelques milliardièmes de secondes !
BTS IG2 -Cours d’Architecture
Page 55 sur 55
Téléchargement