Vous êtes sur la page 1sur 115

Formation à Distance

Année Universitaire : 2020-2021

Architecture des ordinateurs

Nom de l’enseignant : RAJAONARISON Tianandrasana Roméo

Niveau d’études : Première Année


Table des matières

CHAPITRE 1 : STRUCTURE GENERALE ET FONCTIONNEMENT D’UN


ORDINATEUR.................................................................................................................... 4
A. INTRODUCTION ................................................................................................................. 4
B. STRUCTURE ET FONCTIONNEMENT D’UN ORDINATEUR ........................................... 5
CHAPITRE 2 : CODAGE DES INFORMATIONS ........................................................ 18
A UNITES D'INFORMATIONS .................................................................................................18
B REPRESENTATION DES NOMBRES ...................................................................................18
C ARITHMETIQUE BINAIRE ...................................................................................................26
D ARITHMETIQUE OCTALE ...................................................................................................27
E ARITHMETIQUE HEXADECIMALE ....................................................................................27
F ARITHMETIQUE EN BCD.....................................................................................................28
G REPRESENTATION DES CARACTERES .............................................................................30
H PROTECTION CONTRE LES ERREURS .............................................................................32
CHAPITRE 3 LES MICROPROCESSEURS .................................................................. 36
A ARCHITECTURE INTERNE D’UN PROCESSEUR .............................................................36
B CARACTERISTIQUES D’UN MICROPROCESSEUR ..........................................................43
C TECHNOLOGIE DES MICROPROCESSEURS ....................................................................44
D EXEMPLE DE MICROPROCESSEURS ................................................................................44
E TABLEAU RECAPITULATIF SUR L’ARCHITECTURE INTEL .........................................49
CHAPITRE 4 LES MEMOIRES ...................................................................................... 53
A. Les Caractéristiques principales ..............................................................................................53
B. Les mémoires vives dynamiques et la mémoire centrale .........................................................54
C. Les mémoires vives statiques et la mémoire cache ...................................................................56
D. Les mémoires mortes et le BIOS..............................................................................................58
E. Les cartes mémoires à partir des mémoires flash ....................................................................59
CHAPITRE 5 LES INTERFACES D’ENTREE/SORTIE .............................................. 61
A. INTERFACE SERIE ..............................................................................................................61
B. Interface parallèle ...................................................................................................................65
C. INTERFACES DES DISQUES ..............................................................................................67
D. LES BUS D’EXTENSION ......................................................................................................72
CHAPITRE 6 LES INTERRUPTIONS .......................................................................... 85
A. DEFINITIONS ET GENERALITES ......................................................................................85
B. INTERRUPTIONS VECTORISEES.......................................................................................88
C. LES INTERRUPTIONS MATERIELLES : exemple du Intel 80386 et de ses successeurs .....88
D. ACTIVATION D'INTERRUPTIONS A PARTIR D'UN PROGRAMME C ...........................92
EXERCICES ..................................................................................................................... 94

ESUM RAJAONARISON Tianandrasana Roméo 2


CORRIGE ......................................................................................................................... 97
Bibliographie ....................................................................................................................115

ESUM RAJAONARISON Tianandrasana Roméo 3


CHAPITRE 1 : STRUCTURE GENERALE ET FONCTIONNEMENT D’UN ORDINATEUR

A. INTRODUCTION

Le rôle de l’informatique est de résoudre des problèmes à l’aide d’un ordinateur. Un problème
s’exprime sous forme d’un énoncé qui spécifie les fonctions que l’on souhaite réaliser. Par
exemple définir toutes les fonctions d’un traitement de texte.
Pour résoudre un problème les informaticiens utilisent la notion d’algorithme.
Pour illustrer cette notion, prenons l’exemple du problème suivant : confectionner une omelette
avec 6 œufs.
Trouver une solution à ce problème repose sur l’existence d’un processeur sachant exécuter
une instruction (confectionner). En général, un adulte saura exécuter l’instruction
confectionner, c’est-à-dire connaîtra le sens du mot, et sera capable de faire toutes les actions
nécessaires permettant de résoudre le problème. On dira alors que l’adulte est un bon processeur
au sens où il saura exécuter l’instruction « confectionner » portant sur la donnée œufs. Par
contre un enfant pourra ne pas connaître le mot confectionner : il ne saura pas faire les
opérations nécessaires et ne pourra donc pas résoudre le problème posé (faire une omelette).
L’enfant connaît d’autres instructions, sait exécuter d’autres actions que confectionner, et pour
qu’il puisse résoudre le problème il faudra l’exprimer autrement, sur la base des actions,
instructions, qu’il est capable d’exécuter. Pour que l’enfant puisse résoudre le problème on
pourra l’exprimer sous forme d’une séquence d’instructions appartenant au langage de l’enfant.
Par exemple on pourra exprimer le problème, la solution, sous la forme de la séquence des
instructions suivantes :
1. casser 6 œufs dans un bol;
2. battre les œufs avec un fouet;
3. saler, poivrer;
4. placer la poêle sur le gaz;
5. allumer le gaz;
6. cuisiner les oeufs;
7. éteindre le gaz.
Dans cet exemple, le processeur enfant sait exécuter des instructions (casser, battre, saler,
poivrer, allumer, cuisiner…). De plus il connaît les objets à manipuler (œufs, gaz, poêle…). On
dit alors que le processeur enfant est un bon processeur pour exécuter l’algorithme représenté
par la séquence précédente, puisque l’enfant est capable d’exécuter cette séquence

ESUM RAJAONARISON Tianandrasana Roméo 4


d’instructions. Cette séquence d’instructions exécutables par le processeur enfant est une
solution au problème posé pour ce processeur.
Un algorithme peut donc se définir comme une séquence d’instructions exécutables par un
processeur déterminé. Cette séquence d’instructions, cet algorithme, est une solution au
problème posé.
De ce petit exemple nous pouvons tirer quelques conclusions :
– un algorithme est une solution à un problème posé;
– un algorithme est une séquence d’instructions exécutables par un processeur;
– un algorithme est un programme exécutable par un processeur déterminé;
– un algorithme n’a de sens que pour un processeur déterminé.
Les instructions expriment les actions que peut exécuter un processeur, elles sont codées à partir
d’un alphabet (dans notre cas l’alphabet habituel). Les instructions manipulent des données
(œufs, sel, poivre, gaz, poêle…). Un processeur (ou machine virtuelle) est une entité capable
d’exécuter des instructions portant sur des données.
L’ensemble des instructions que le processeur (la machine virtuelle) peut manipuler, constitue
son langage de programmation. Ainsi le langage de programmation du processeur définit
complètement ce processeur. Il y a équivalence totale entre la machine virtuelle et son langage
de programmation. Aussi, connaître le langage de programmation d’une machine virtuelle
équivaut à connaître les capacités d’exécution de cette machine.
En résumé résoudre un problème avec une machine virtuelle consiste à construire une séquence
d’instructions pour cette machine (à partir de son langage de programmation) telle que
l’exécution de cette séquence est une solution à ce problème. En informatique la machine cible,
celle avec laquelle nous devons résoudre les problèmes, est l’ordinateur. Nous devons donc
connaître les caractéristiques de cette machine, tout particulièrement son langage de
programmation (les instructions qu’elle est capable d’exécuter), l’alphabet permettant de coder
les instructions ainsi que les données et les outils permettant d’exécuter ces instructions.
Les instructions d’un ordinateur sont les instructions machines, elles constituent le langage de
programmation de l’ordinateur : le langage machine. Résoudre un problème avec un ordinateur
consiste donc à exprimer ce problème sous forme d’une séquence d’instructions machines que
nous devrons soumettre aux outils permettant l’exécution de cette séquence. Cette séquence
d’instructions machine exécutables par l’ordinateur s’appelle le programme machine.
B. STRUCTURE ET FONCTIONNEMENT D’UN ORDINATEUR
Après ce bref rappel sur la manière algorithmique de résoudre un problème nous allons nous
intéresser à la résolution d’un problème avec comme machine cible un ordinateur. Pour cela

ESUM RAJAONARISON Tianandrasana Roméo 5


nous donnons tout d’abord une présentation de la structure matérielle d’un ordinateur, de son
fonctionnement, pour ainsi en déduire comment on peut à l’aide d’un ordinateur, résoudre un
problème. L’ordinateur cible nous servant de support descriptif est un ordinateur de type Von
Neumann qui caractérise bien la quasi-totalité des ordinateurs actuels. Il est composé des
éléments suivants :
– une mémoire centrale pour le stockage des informations (programme et données);
– un microprocesseur ou processeur central pour le traitement des informations logées dans la
mémoire centrale;
– des unités de contrôle des périphériques et des périphériques;
– un bus de communication entre ces différents modules.
B.1 Structure générale d’un ordinateur
La figure 1.1 présente l’organisation générale d’un ordinateur. On y trouve deux parties
principales :
 le processeur comprenant les modules mémoire centrale, processeur central
(microprocesseur), les unités d’échange et le bus de communication entre ces différents
modules ;
 les périphériques avec lesquels dialogue le processeur au travers des unités d’échange
(ou contrôleurs). On distingue en général :
 les périphériques d’entrée tels que le clavier ou la souris;
 les périphériques de sortie tels que les imprimantes et les écrans de visualisation;
 les périphériques d’entrée et de sortie tels que les disques magnétiques ou les
modems pour accéder aux réseaux de communication.

ESUM RAJAONARISON Tianandrasana Roméo 6


B.2 Mémoire centrale
La mémoire centrale assure la fonction de stockage de l’information qui peut être manipulée
par le microprocesseur (processeur central), c’est-à-dire le programme machine accompagné
de ses données. En effet, le microprocesseur n’est capable d’exécuter une instruction que si elle
est placée dans la mémoire centrale.
Cette mémoire est constituée de circuits élémentaires nommés bits (binary digit).
Il s’agit de circuits électroniques qui présentent deux états stables codés sous forme d’un 0 ou
d’un 1. De par sa structure la mémoire centrale permet donc de coder les informations sur la
base d’un alphabet binaire et toute information stockée en mémoire centrale est représentée
sous la forme d’une suite de digits binaires. La figure 1.2 présente l’organisation générale d’une
mémoire centrale.

ESUM RAJAONARISON Tianandrasana Roméo 7


Pour stocker l’information, la mémoire est découpée en cellules mémoires : les mots mémoires.
Chaque mot est constitué par un certain nombre de bits qui définissent sa taille. On peut ainsi
trouver des mots de 1 bit, 4 bits (quartet) ou encore 8 bits (octet ou byte), 16 bits voire 32 ou
64 bits. Chaque mot est repéré dans la mémoire par une adresse, un numéro qui identifie le mot
mémoire. Ainsi un mot est un contenant accessible par son adresse et la suite de digits binaires
composant le mot représente le contenu ou valeur de l’information.
La mémoire centrale est un module de stockage de l’information dont la valeur est codée sur
des mots. L’information est accessible par mot. La capacité de stockage de la mémoire est
définie comme étant le nombre de mots constituant celle-ci. Dans l’exemple de la figure 1.2,
notre mémoire a une capacité de 8 mots de 16 bits chacun. On exprime également cette capacité
en nombre d’octets ou de bits. Notre mémoire a donc une capacité de 16 octets ou de 128 bits.
L’information que l’on trouve en mémoire centrale est donc codée sur un alphabet binaire. La
figure 1.3 rappelle le nombre de combinaisons que l’on peut réaliser à partir d’une suite
d’éléments binaires. Coder l’information en mémoire centrale c’est donc associer à chaque suite
de bits un sens particulier.

ESUM RAJAONARISON Tianandrasana Roméo 8


La figure 1.4 présente succinctement les différentes informations que l’on trouve dans la
mémoire centrale: instructions machines et données manipulées par les instructions.

Les instructions et les données sont codées sur des mots mémoires : elles peuvent occuper un
ou plusieurs mots mémoires selon la nature de l’ordinateur. Les instructions machines sont
propres à chaque microprocesseur mais sont toujours construites de la même manière : un code

ESUM RAJAONARISON Tianandrasana Roméo 9


opération qui définit l’opération à exécuter, le champ opérande qui définit la ou les données sur
lesquelles portent l’opération :
– le code opération est codé sur un nombre de digits binaires qui caractérise un
microprocesseur. Ce nombre de bits définit en fait le nombre d’opérations possibles avec cet
ordinateur : un code opération sur 3 bits admet 8 combinaisons permettant la définition de 8
opérations différentes (instructions machine) possibles, sur 4 bits 16 instructions possibles etc.
La taille du code opération est donc un facteur déterminant qui caractérise complètement le
nombre d’instructions qu’est capable d’exécuter un processeur;
– le champ opérande est une suite de bits qui permet de caractériser l’adresse de la ou des
donnée(s) que manipule(nt) l’instruction machine définie par le code opération.
Il existe plusieurs types d’instructions machines qui peuvent manipuler une ou plusieurs
données selon la «puissance» du langage machine du microprocesseur utilisé. Il existe
également plusieurs manières de définir, à partir du champ opérande, l’adresse d’une donnée :
cela repose sur le mécanisme d’adressage d’un microprocesseur qui définit les différentes
manières de calculer une adresse de données. On parle également de modes d’adressages du
microprocesseur.
Les données sont les objets que manipulent les instructions, elles sont codées sur un ou plusieurs
mots machines et sont donc adressables (repérables) dans la mémoire centrale. L’adresse de la
donnée est déterminée par le type d’adressage utilisé par l’instruction machine. Le codage d’une
donnée en mémoire dépend de son type : la figure 1.4 donne les différents types de données
que manipulent les instructions machines. Pour chaque type il existe des règles de codage. Par
exemple pour coder les caractères alphanumériques on utilise un dictionnaire (table ASCII,
table EBCDIC, codage Unicode) tandis que pour coder un nombre entier non signé on utilise
une règle traditionnelle de codage d’un nombre sur un alphabet binaire.
Dans l’exemple de la figure 1.5, on suppose un nombre codé sur un octet (8 bits) dont la position
de chaque bit est numérotée de 0 à 7, en partant du bit de poids faible. La valeur de l’entier est
alors la somme des produits de chaque bit par le nombre de symboles possibles dans la base
d’expression du nombre (ici 2) élevé à la puissance du rang du bit. Cette règle est générale et
permet de déterminer la valeur d’un entier codé sur n’importe quel alphabet. Dans le cas d’un
alphabet binaire la valeur maximale que peut prendre un entier codé sur p bits est 2p. La
mémoire centrale a pour objet le stockage des instructions et des données que peut manipuler
le microprocesseur. Les opérations possibles sur la mémoire sont la lecture (acquisition par le
microprocesseur) d’un mot et l’écriture (le microprocesseur place un nouveau contenu) dans un
mot mémoire. Une opération de lecture d’un mot consiste à définir l’adresse du mot et à

ESUM RAJAONARISON Tianandrasana Roméo 10


déclencher une commande de lecture qui amène le contenu du mot de la mémoire vers le
microprocesseur. Une opération d’écriture consiste à définir l’adresse du mot dont on veut
changer le contenu puis à déclencher une opération d’écriture qui transfère l’information du
processeur vers le mot mémoire dont l’adresse est spécifiée.
Enfin d’autres éléments importants complètent la caractérisation d’une mémoire centrale :
– le temps d’accès à la mémoire qui mesure le temps nécessaire pour obtenir une
information logée en mémoire;
– les technologies qui président à la construction de ces mémoires;
– le coût de réalisation de ces mémoires.

B.3 Le bus de communication


Le bus de communication peut se représenter comme une nappe de fils transportant des signaux
et permettant l’échange des informations entre les différents modules du processeur. Chaque fil
transporte ou non un signal : il est présent ou absent. On représente par 1 un signal présent et
par 0 un signal absent. Le nombre de fils du bus détermine sa largeur et définit ainsi le nombre
d’informations différentes que peut véhiculer le bus. Ainsi un bus de 3 fils permet une
combinaison de 8 signaux différents et donc représente 8 informations possibles différentes.
Le bus est construit comme un ensemble de trois bus :
– le bus d’adresses transporte des combinaisons de signaux qui sont interprétées comme des
nombres entiers représentant l’adresse d’un mot mémoire. Par exemple, figure 1.6, le bus
d’adresses a une largeur de 3 fils et est donc capable de coder des adresses allant de 0 à 7. Pour
adresser un mot mémoire on fait appel à un circuit de sélection (décodeur) qui en entrée reçoit

ESUM RAJAONARISON Tianandrasana Roméo 11


n signaux (3 dans notre exemple) et fournit 2n signaux de sortie (8 dans notre exemple). Parmi
les signaux de sortie un seul est positionné à 1 tous les autres valant 0. Dans notre exemple, les
sorties sont numérotées de 0 à 7 et de haut en bas. Ainsi si la valeur d’entrée est 000, seule la
sortie 0 vaut 1 et toutes les autres valent 0. Pour adresser le mot mémoire 2 le microprocesseur
place sur le bus d’adresses la chaîne 010 (qui a pour valeur 2 en base 10), la sortie 1 du décodeur
vaut alors 1 et les autres valent 0. Ce circuit permet donc de sélectionner un mot mémoire dans
la mémoire centrale. La largeur du bus d’adresses définit la capacité d’adressage du
microprocesseur et il ne faut pas confondre capacité d’adressage et taille physique de la
mémoire;

– le bus de données permet l’échange des informations (les contenus) entre les différents
modules. Dans notre exemple le bus de données a une largeur de 16 fils et donc la taille des
mots mémoires auxquels on peut accéder ou dont on peut modifier le contenu est de 16 bits;
– le bus de commandes : c’est par ce bus que le microprocesseur indique la nature des opérations
qu’il veut effectuer. Dans notre exemple il a une largeur d’un fil et donc le microprocesseur ne
peut passer que deux commandes (la lecture et l’écriture).

ESUM RAJAONARISON Tianandrasana Roméo 12


La figure 1.7 résume les différents points abordés concernant la mémoire et les bus permettant
la communication avec la mémoire. Sur cette figure 1.7, le bus d’adresses a une largeur de m
bits, le bus de données une largeur de p bits ce qui détermine la capacité de stockage en bits de
cette mémoire, soit 2m mots de p bits. Le bus de commandes permet de déterminer le type
d’opération (lecture ou écriture) que l’on souhaite réaliser.

B.4 Le processeur central ou microprocesseur


Le microprocesseur (unité centrale) a pour objet d’exécuter les instructions machines placées
en mémoire centrale. La figure 1.8 présente son architecture générale.

ESUM RAJAONARISON Tianandrasana Roméo 13


Il est constitué de quatre parties : l’unité arithmétique et logique (UAL), les registres, l’unité
commande et le bus de communication interne permettant l’échange des données et des
commandes entre les différentes parties du microprocesseur.

Les registres
Ce sont des zones de mémorisation de l’information internes au microprocesseur. Ils sont de
faible capacité et de temps d’accès très faible. Leur nombre et leur taille sont variables en
fonction du type de microprocesseur. Ils peuvent être de type adresse (ils contiennent alors une
adresse de mot mémoire) ou données (ils contiennent alors le contenu d’un mot mémoire). Ils
peuvent être spécifiques et avoir une fonction très précise (par exemple le registre pointeur de
pile) ou généraux et servir essentiellement aux calculs intermédiaires, par exemple, de l’unité
arithmétique et logique.
L’unité arithmétique et logique (UAL)
Ce module est chargé de l’exécution de tous les calculs que peut réaliser le microprocesseur.
Cette unité est constituée de l’ensemble des circuits arithmétiques et logiques permettant au
processeur d’effectuer les opérations élémentaires nécessaires à l’exécution des instructions
« machine ». Elle inclut donc les circuits d’addition, de soustraction, de multiplication, de
comparaison, etc. Dans ce module se trouvent également des registres dont l’objet est de

ESUM RAJAONARISON Tianandrasana Roméo 14


contenir les données sur lesquelles vont porter les opérations à effectuer. Dans notre exemple,
l’UAL possède deux registres d’entrée (E1 et E2) et un registre de sortie (S).
Pour faire une addition :
– la première donnée est placée dans E1 via le bus interne de données;
– la seconde donnée est placée dans E2 via le bus interne de données;
– la commande d’addition est délivrée au circuit d’addition via le bus interne de
commandes;
– le résultat est placé dans le registre S.
Sur notre machine on note également un registre particulier, le PSW (Program Status Word),
qui joue un rôle fondamental de contrôle de l’exécution d’un programme et qui à tout instant
donne des informations importantes sur l’état de notre microprocesseur.
Par exemple puisque nous travaillons sur des mots de longueur finie la valeur d’un entier codé
sur un mot ne peut dépasser la valeur maximale représentable sur ce mot. Lorsque nous faisons
l’addition de deux entiers le résultat peut avoir une valeur qui n’est pas représentable sur un
mot mémoire : il y a alors dépassement de capacité.
Ce dépassement de capacité doit être signalé et noté pour ne pas perturber le fonctionnement
de l’ordinateur. Ce type d’information est stocké dans le PSW.
L’unité de commande
Elle exécute les instructions machines et pour cela utilise les registres et l’UAL du
microprocesseur. On y trouve deux registres pour la manipulation des instructions (le compteur
ordinal CO, le registre d’instruction RI), le décodeur, le séquenceur et deux registres (le registre
d’adresses RAD et le registre de données RDO) permettant la communication avec les autres
modules via le bus. Enfin, via le bus de commandes, elle commande la lecture et/ou l’écriture
dans la mémoire centrale.
➤ Le compteur ordinal CO
C’est un registre d’adresses. À chaque instant il contient l’adresse de la prochaine instruction à
exécuter. Lors de l’exécution d’une instruction il est prévu, au cours de cette exécution, la
modification du contenu du CO. Ainsi en fin d’exécution de l’instruction courante le compteur
ordinal pointe sur la prochaine instruction à exécuter et le programme machine peut continuer
à se dérouler.
➤ Le registre d’instruction RI
C’est un registre de données. Il contient l’instruction à exécuter.
➤ Le décodeur

ESUM RAJAONARISON Tianandrasana Roméo 15


Il s’agit d’un ensemble de circuits dont la fonction est d’identifier l’instruction à exécuter qui
se trouve dans le registre RI, puis d’indiquer au séquenceur la nature de cette instruction afin
que ce dernier puisse déterminer la séquence des actions à réaliser.
➤ Le séquenceur
Il s’agit d’un ensemble de circuits permettant l’exécution effective de l’instruction placée dans
le registre RI. Le séquenceur exécute, rythmé par l’horloge du microprocesseur, une séquence
de microcommandes (micro-instructions) réalisant le travail associé à cette instruction machine.
Pour son fonctionnement le séquenceur utilise les registres et l’UAL. Ainsi l’exécution effective
d’une instruction machine se traduit par l’exécution d’une séquence de micro-instructions
exécutables par les circuits de base du microprocesseur.
➤ Le registre RAD
C’est un registre d’adresses. Il est connecté au bus d’adresses et permet la sélection d’un mot
mémoire via le circuit de sélection. L’adresse contenue dans le registre RAD est placée sur le
bus d’adresses et devient la valeur d’entrée du circuit de sélection de la mémoire centrale qui
va à partir de cette entrée sélectionner le mot mémoire correspondant.
➤ Le registre RDO
C’est un registre de données. Il permet l’échange d’informations (contenu d’un mot mémoire)
entre la mémoire centrale et le processeur (registre).
Ainsi lorsque le processeur doit exécuter une instruction il :
– place le contenu du registre CO dans le registre RAD via le bus d’adresses et le circuit
de sélection;
– déclenche une commande de lecture mémoire via le bus de commandes;
– reçoit dans le registre de données RDO, via le bus de données, l’instruction;
– place le contenu du registre de données RDO dans le registre instruction RI via le
bus interne du microprocesseur.
Pour lire une donnée le processeur :
– place l’adresse de la donnée dans le registre d’adresses RAD;
– déclenche une commande de lecture mémoire;
– reçoit la donnée dans le registre de données RDO;
– place le contenu de RDO dans un des registres du microprocesseur (registres
généraux
ou registres d’entrée de l’UAL).

ESUM RAJAONARISON Tianandrasana Roméo 16


On dit que pour transférer une information d’un module à l’autre le microprocesseur établit un
chemin de données permettant l’échange d’informations. Par exemple pour acquérir une
instruction depuis la mémoire centrale, le chemin de données est du type : CO, RAD, commande
de lecture puis RDO, RI

ESUM RAJAONARISON Tianandrasana Roméo 17


CHAPITRE 2 : CODAGE DES INFORMATIONS

A UNITES D'INFORMATIONS

Pour représenter des informations, l'utilisateur d'un ordinateur emploie des symboles, chiffres,
lettres et ponctuations formant des chaînes de caractères. Cependant, pour être traitées, ces
informations doivent être codées selon un format adapté aux divers circuits et organes de
mémorisation de l'ordinateur. Ce codage est, alors, le passage d'une information, d'un langage
compréhensible par l'homme à un langage compréhensible par le système informatique.
Il utilise les symboles logiques notés 0 et 1. Ces symboles représentent la plus petite information
que l'on peut transmettre, manipuler et stocker dans les divers circuits et périphériques de
l'ordinateur. Cette unité d'informations est appelée BIT (Binary digIT).
Ces informations sont le plus souvent regroupées par ensemble de 4 bits ou de 8 bits, ensemble
qu'on désignera respectivement par QUARTET et OCTET (BYTE) : 1 quartet = 4 bits et 1 octet
= 8 bits.

Autres unités d'informations :


1 KiloBIT ( K ) = 210 bits = 1 024 bits
1 KiloOctet ( Ko ou Kb ) = 210 octets = 1 024 octets
1 MégaOctet ( Mo ou Mb ) = 220 octets = 1 048 576 octets
1 GigaOctet ( Go ou Gb ) = 230 octets = 1 073 741 824 octets

B REPRESENTATION DES NOMBRES

B.1 Système de numération

B.1-a Forme canonique d'un nombre

On rappelle qu’on peut représenter un nombre quelconque X en base b par l’expression suivante
:
X = an bn + an-1 bn-1 + . . . + a1 b1 + a0 + a-1 b-1 + a-2 b-2 + . . . + a-n b-n
où les ai sont des entiers compris entre 0 et b-1
l’indice i est le rang du symbole ai

ESUM RAJAONARISON Tianandrasana Roméo 18


bi est le poids du symbole ai

B.1-b Les systèmes de numération les plus utilisés en informatique

Système DECIMAL (b = 10) : Symboles (digits) utilisés : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9


Exemples : 274 (10) = 2.102 + 7.101 + 4
74 , 375 (10) = 7.101 + 4 + 3.10-1 + 7.10-2 + 5.10-3

Système BINAIRE (b = 2) : Symboles (digits) utilisés : 0, 1


Exemples : 1011 (2) = 1.23 + 0.22 + 1.21 + 1 = 11 (10)
10110 , 011 (2) = 1.24 + 0.23 + 1.22 + 1.21 + 0 + 0.2-1 + 1.2-2 + 1.2-3 = 22 , 375
(10)

Système OCTAL (b = 8) : Symboles (digits) utilisés : 0, 1, 2, 3, 4, 5, 6, 7


Exemples : 745 (8) = 7.82 + 4.81 + 5 = 485 (10)
24 , 65 (8) = 2.81 + 4 + 6.8-1 + 5.8-2 = 20 , 825 (10)

Système HEXADECIMAL (b = 16) : Symboles (digits) utilisés : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A,


B, C, D, E, F dont A = 10 (10) ; B = 11 (10) ; C = 12 (10) ; D = 13 (10) ; E = 14 (10) ; F = 15 (10)
Exemples : 469 (16) = (469H) = 4.162 + 6.16 + 9 = 1 129 (10)
5AE (16) = 5.162 + 10.16 + 14 = 1 454 (10)

B.1-c Tableau récapitulatif

DECIMA BINAIRE OCTAL HEXA- DECIMA BINAIRE OCTAL HEXA-


L DECIMA L DECIMA
L L
0 0 0 0 11 1011 13 B
1 1 1 1 12 1100 14 C
2 10 2 2 13 1101 15 D
3 11 3 3 14 1110 16 E
4 100 4 4 15 1111 17 F
5 101 5 5 16 10000 20 10

ESUM RAJAONARISON Tianandrasana Roméo 19


6 110 6 6 17 10001 21 11
7 111 7 7 18 10010 22 12
8 1000 10 8 19 10011 23 13
9 1001 11 9 20 10100 24 14
10 1010 12 A

B.1-d Changement de base

 DECIMAL  BINAIRE , OCTAL , HEXADECIMAL [ 1284 (10)  ? ]

Méthode de divisions successives

1284 2 1284 8 1285 16


0 642 2 4 160 8 4 80 16
0 321 2 0 20 8 0 5
1 160 2 4 2
0 80 2
0 40 2 1284 (10) = 2404 (8)
Les flèches pointées vers 0 20 2
le haut indiquent le sens de
la lecture 0 10 2 1284 (10) = 504 (16)
0 5 2
1 2 2
1284 (10) = 10100000100 (2) 0 1

 OCTAL  BINAIRE  HEXADECIMAL

Le passage de la base 2 à la base 8 (resp. 16) se fait de façon immédiate en groupant les digits
binaires par 3 (resp. 4) de droite vers la gauche :

Exemple : 10100000100 = 10 100 000 100  2 4 0 4 (8)


= 101 0000 0100  5 0 4 (16)

ESUM RAJAONARISON Tianandrasana Roméo 20


B.2 Représentation des nombres négatifs

B.2-a Binaire signé

Cette représentation utilise le bit de plus fort poids comme bit de signe (0 pour le plus et 1 pour
le moins) et la valeur absolue du nombre codée en base 2. Ainsi,

 pour une représentation sur 8 bits : (7 bits pour la valeur absolue)  [ - 127 , + 127 ]
Exemple : - 127  1111 1111 -0  1000 0000 ?
- 126  1111 1110 +0  0000 0000
-2  1000 0010 +1  0000 0001
-1  1000 0001 + 127  0 1 1 1 1 1 1 1

 pour une représentation sur 16 bits : (15 bits pour la valeur absolue)  [ - 32 767 , + 32 767
]
Exemple : - 32 767  1111 1111 1111 1111
-3  1000 0000 0000 0011
-1  1000 0000 0000 0001
-0 ?  1000 0000 0000 0000
+0  0000 0000 0000 0000
+1  0000 0000 0000 0001
+ 32 767  0111 1111 1111 1111

B.2-b Binaire en complément à 2

Le complément à 2 a également un bit de signe qui vaut 0 pour le " + " et 1 pour le " – ". Pour
effectuer la négation d’un nombre, on remplace tous les bits qui sont à 0 par 1 et tous les bits
qui sont à 1 par 0. Puis on additionne 1 au résultat ainsi obtenu.

 pour une représentation sur 8 bits : [ - 128 , + 127 ]


Exemple : +9  0000 1001

ESUM RAJAONARISON Tianandrasana Roméo 21


complément à 1 : 1111 0110 + 0000 0001 = 1111 0
111
d’où -9  1111 0111
- 128  1000 0000
- 127  1000 0001
0  0000 0000
+1  0000 0001
+ 127  0111 1111

B.2-c Binaire en excédent

Exemple : Excédent 127 sur 8 bits : [ -127 , + 128 ]

- 127  0000 0000


- 126  0000 0001
-1  0111 1110
0  0111 1111
+1  1000 0000
+ 127  1111 1110
+ 128  1111 1111
B.3 Représentation en BCD ou DCB (Binary Coded Decimal)

Un autre codage très utilisé dans l’ordinateur est le BCD. Il sert, en effet, à traduire des valeurs
décimales sans aucun calcul. Il consiste à réserver un quartet binaire (resp. un octet) à chaque
digit décimal pour le BCD compacté (resp. étendu).

Exemple : en BCD compacté En BCD étendu


10  0001 0000 0000 0001 0000 0000
28  0010 1000 0000 0010 0000 1000
47  0100 0111 0000 0100 0000 0111
ZONE ZONE

ESUM RAJAONARISON Tianandrasana Roméo 22


Dans ce codage, on rencontre diverses méthodes de codification de "signe", qui est
généralement stocké dans le quartet (ZONE) le moins significatif. Les plus souvent utilisés :
0000 pour le " + " et 1111 pour le " – " Ou 1011 pour le " + " et 1101 pour le " – ".

Exemple : en BCD compacté + 341  0011 0100 0001 1011


- 341  0011 0100 0001 1101
en BCD étendu + 341  0000 0011 0000 0100 1011 0001
- 341  0000 0011 0000 0100 1101 0001

B.4 Représentation des nombres réels

B.4-a Représentation en virgule fixe

Cette représentation fixe arbitrairement la position de la virgule entre deux parties (entière et
décimale) de la représentation binaire. Par exemple, soit à convertir le nombre décimal 49 , 53
avec la précision de 20 bits après virgule :

Partie entière

49 2
1 24 2
0 12 2
0 6 2
0 3 2
1 1

49 (10) = 1 1 0 0 0 1 (2)
0, 53 0, 06 0, 12 0, 24
x 2 x 2 x 2 x 2
1, 06 0, 12 0, 24 0, 48

0, 48 0, 96 0, 92 0, 84
x 2 x 2 x 2 x 2

ESUM RAJAONARISON Tianandrasana Roméo 23


0, 96 1, 92 1, 84 1, 68

0, 68 0, 36 0, 72 0, 44
x 2 x 2 x 2 x 2
1, 36 0, 72 1, 44 0, 88

Partie décimale 0, 88 0, 76 0, 52 0, 04
x 2 x 2 x 2 x 2
0, 53 (10) = 0, 1000 0111 1010 1110 0001 (2) 1, 76 1, 52 1, 04 0, 08

0, 08 0, 16 0, 32 0, 64
x 2 x 2 x 2 x 2
0, 16 0, 32 0, 64 1, 28
Finalement :
49 , 53 (10) = 110001 , 1000 0111 1010 1110 0001 (2)
B.4-b Représentation en virgule flottante

Ecrire des nombres très grands ou très petits peut exiger une quantité considérable de digits
binaires. Or la longueur de mot dans les ordinateurs est limitée par construction. Pour résoudre
ce problème, on représente tout nombre N de façon suivante :N = M . b E où b est
la base du système de numération
M - la mantisse du nombre ;
E - l’exposant.
Cette forme des nombres est appelée “ représentation en notation scientifique ” ou “ en virgule
flottante ”. Elle doit comprendre :  le signe du nombre
 la mantisse
 l’exposant signé
On trouve, en fonction des constructeurs, plusieurs "NORMES" de représentation des nombres
en virgule flottante (IEEE, DEC, IBM, …)..

B.4-c Standard IEEE 754 (IEEE : Institute of Electronic and Electrical Engineers)

Le standard IEEE définit trois formats de représentation des nombres en virgule flottante :
- la simple précision (sur 32 bits)

ESUM RAJAONARISON Tianandrasana Roméo 24


- la double précision (sur 64 bits)
- la précision étendue (sur 80 bits)

 Format de la simple précision : Variation de l’exposant : - 126 à + 127


Plus petit nombre : 2 -126
Plus grand nombre : environ 2 +128
Bit 31 : Signe du nombre (01
bit)
Bits 30 - 23 : Exposant en code excédent 127 (08
bits)
Bits 22 - 0 : Mantisse normalisée (23
bits)

31 30 29 28 27 26 25 24 23 22 21 20 3 2 1 0
S Exposant en code excédent 127 Mantisse normalisée
(01111111(127)+exposant en
binaire)

Normalisation de mantisse : 1 digit binaire différent de 0 avant virgule. Et comme le premier


bit d’une telle mantisse normalisée est toujours à 1, on n’a pas besoin de l’écrire, ce qui permet
de gagner un bit de plus.
Reprenons le nombre décimal :
49 , 53 (10) = 11 0001 , 1000 0111 1010 1110 0001 = 1 , 1000 1100 0011 1101 0111 0000 1 x
25
= 0100 0010 0100 0110 0001 1110 1011 1000 = 42461EB8 (16)

 Format de la double précision : Variation de l’exposant : -1022 à +1023


Plus petit nombre : 2 -1022
Plus grand nombre : environ 2 +1024
Bit 63 : Signe du nombre (01
bit)
Bits 62 - 52 : Exposant en code excédent 1023 (11
bits)

ESUM RAJAONARISON Tianandrasana Roméo 25


Bits 51 - 0 : Mantisse normalisée (52
bits)

Remarque : Dans la norme IEEE, les valeurs 111 ...1 et 000...0 sont réservés. En effet,
 zéro : les champs E et M et le signe sont à zéro ;
 infinité positive et infinité négative : le champ E a pour valeur 111...1 ;
 nombre non normalisé : le champ E a pour valeur 000 ... 0, la mantisse étant
différente de zéro.

C ARITHMETIQUE BINAIRE

C.1 Addition : 0+0=0 1+0=1


0+1=1 1 + 1 = 0 avec retenue
Exemple : addition binaire des nombres en valeur absolue : 1010 0101
0001 1101

1100 0010

C.2 Soustraction : (en complément à 2)

Dans la micro-informatique, on transforme la soustraction en addition en trouvant la négation


du diminuteur par la complémentation à 2. Et la retenue qui sort du plus fort poids est à perdre.
Exemples : Sur quartet 1101 (-3)
- 0100 (+4)  complément à 2  1 0 1 1 + 0 0 0 1 = 1
100

D'où 1101
+ 1100

1001 (-7)

Sur 8 bits 0110 1101 (109)


- 0101 0001 (81)  1010 1110 + 0000
0001=
1010 1111
D'où 0110 1101

ESUM RAJAONARISON Tianandrasana Roméo 26


+ 1010 1111

0001 1100 (28)

C.3 Multiplication : 0x0=0 1x0=0


0x1=0 1x1=1
Exemple 1011
Remarques :
0110  La multiplication est composée de quelques opérations
élémentaires, notamment l'addition et le décalage ;
1011
 Le produit occupera un format deux fois plus long que le
1011 format du multiplicande ou du multiplicateur ;
 La division est une opération complexe qui a besoin de
1000010 multiplication, de soustraction et de décalage

D ARITHMETIQUE OCTALE

D.1 Addition : 265 5 + 3 = 8 (10) = 10 (8)


+ 543 6 + 4 + 1 = 11 (10) = 13 (8)

1030 2 + 5 + 1 = 8 (10) = 10 (8)

D.2 Soustraction : 2546 3741


- 762 - 1456

1564 2263

D.3 Multiplication : 351 4x1=4


x 64 4 x 5 = 20 (10) = 24 (8)

1644 4 x 3 + 2 = 14 (10) = 16 (8)


2566 6x1=6

27524 6 x 5 = 30 (10) = 36 (8)


6 x 3 + 3 = 21 (10) = 25 (8)

E ARITHMETIQUE HEXADECIMALE

ESUM RAJAONARISON Tianandrasana Roméo 27


E.1 Addition : 35A 10 + 1 = 11(10) = B (16)
+9C1 5 + 12 = 17 (10) = 11 (16)

D1B 3 + 9 + 1 = 13 (10) = D (16)

E.2 Soustraction : 49 51 57A9


15A2 385D

33AF 1F4C

E.3 Multiplication : 743


C5

244F
5724

5968F
F ARITHMETIQUE EN BCD

F.1 Addition :

On sait déjà qu’en BCD, un quartet binaire ne peut coder que de 0 à 9. L’addition en BCD
relève les mêmes règles qu’en binaire naturel, alors elle risque de créer plusieurs types
d’erreurs. Voici lesquelles :

 Erreur par dépassement de la capacité d’un quartet

Imaginons qu’un microprocesseur ait à additionner 5(10)+6(10) codés en BCD compacté. Il peut
ne pas savoir qu’il s’agit du BCD, et il va exécuter une addition binaire :

Exemple : 0 1 0 1 (5) Le résultat en BCD est inadmissible, car le quartet 1011 ne


correspond à
+ 0 1 1 0 (6) rien. Ce qui représente une erreur. La correction, qui sera
effectuée par

1011 le microprocesseur consiste à ajouter 0110 (6) au quartet interdit


:

ESUM RAJAONARISON Tianandrasana Roméo 28


0000 1011
+ 0000 0110

0001 0001 (11)

 Erreur par propagation d’une retenue d’ un quartet à l’autre

Exemple : 0000 1000 (8) CORRECTION 0001 0001


0000 1001 (9) 0110
0001 0001 0001 0111 (17)
 Combinaison des deux types d’erreurs précédentes

Exemple : 0101 1000 (58) CORRECTION 1100 0001


0110 1001 (69) 0110 0110

1100 0001 1 0010 0111 (127)

F.2 Soustraction :

Dans la micro-informatique, la soustraction est transformée en addition par la complémentation.


En effet, la soustraction en BCD utilise le complément à 10 pour le diminuteur.

Exemple 1 : 0101 0111 (57)


- 0100 0001 (41) complément à 10 : 58 + 1 = 59

D’où 0 1 0 1 0 1 1 1 CORRECTION 1 0 1 1 0 0 0 0
+ 0101 1001 0110 0110

1011 0000 0 0 0 1 0 1 1 0 (16)

Remarque :  La retenue qui sort du plus fort poids du résultat est à perdre ;
 La sortie de cette retenue indique que le résultat est positif.

Exemple 2 : 0101 0111 (57)


- 1000 0100 (84) complément à 10 : 15 + 1 = 16

D’où 0 1 0 1 0 1 1 1 CORRECTION 0110 1101

ESUM RAJAONARISON Tianandrasana Roméo 29


0001 0110 0110

0110 1101 0 1 1 1 0 0 1 1 (73)

Comme il n’y a pas de retenue, le résultat est négatif. On peut trouver sa valeur absolue par le
complément à 10 : 73  26 + 1 = 27. Autrement dit -27 est codé par 73 en BCD en complément
à 10.

G REPRESENTATION DES CARACTERES

Les informations que doivent traiter les ordinateurs sont composées, en plus des nombres, des
lettres, des chiffres ou des symboles particuliers. Pour être utilisables par la machine, elles
doivent être codées d'une manière standard. Le code le plus utilisé est le code A.S.C.I.I.

G.1 Le code A.S.C.I.I. (American Standard Code for Information Interchange)

Le code ASCII a fait l’objet de normalisation internationale. L’information est représentée par
7 bits avec un 8e bit de parité (bit de contrôle entre émission et réception). Le code ASCII définit
128 combinaisons binaires différentes (tableau de la page suivante). Il est couramment employé
entre « unité centrale » de l’ordinateur et périphériques (clavier, imprimante, ...).

Les codes des caractères sont obtenus en combinant les deux en-têtes de ce tableau (en-tête de
colonne + en-tête de ligne). Exemples : a 61 (HEX) A 41 (HEX) m 6D (HEX) ( 28
(HEX) \ 5C (HEX)

Les codes 0 à 19(HEX) et 1F (HEX) sont des caractères de commande utilisés, par exemple
dans les dialogues avec les périphériques. Ils ne sont pas imprimables. Les caractères 20 (HEX)
à 7E (HEX) sont des caractères imprimables. Notons qu’il est prévu de pouvoir donner à
certains caractères des codes d’extensions nationales. C’est le cas des caractères @ { } \ | ] [
qui en France correspondent à : é è ç ù § °.

0 1 2 3 4 5 6 7
0 NUL DLE 0 @ P ` p
1 SOH DC1 ! 1 A Q a q
2 STX DC2 “ 2 B R b r

ESUM RAJAONARISON Tianandrasana Roméo 30


3 ETX DC3 # 3 C S c s
4 EOT DC4 $ 4 D T d t
5 ENQ NAK % 5 E U e u
6 ACK SYN & 6 F V f v
7 BEL ETB 7 G W g w
8 BS CAN ( 8 H X h x
9 HT EM ) 9 I Y i y
A LF SUB * : J Z j z
B VT ESC + ; K [ k {
C FF FS , < L \ l |
D CR GS - = M ] m }
E SO RS . > N ^ n ~
F SI US / ? O _ o DEL

Jeu des caractères du code ASCII et leur correspondance en hexadécimal

G.2 Le code UNICODE (UNIversal CODE)

Le code ASCII des caractères convient bien aux pays de langue anglaise, il n’en est pas de
même pour les pays d’autres langues comme la France, l’Allemagne, le Japon ect. Ces autres
pays utilisent des caractères accentués, des symboles ect.

La première tentative d’extension du code ASCII donna lieu à la norme ISO 646, qui consista
à ajouter 128 caractères supplémentaires aux caractères de base. On appela ce système le code
« Latin-1 ». L’évolution suivante fut la norme ISO 8859 qui introduisit le concept de « code
page », un ensemble de 256 caractères dédiés à une langue particulière ou à un groupe des
langues. Ainsi le code page 850 est un jeu de caractère multilingue, alors que le code page 864
définit un jeu de caractère « arabe ». La version ISO 8859-1 de cette norme correspond au code
Latin-1. La version ISO 8859-2 correspond à des langues slaves d’origine latines (polonais,
tchèque, hongrois) ect.

ESUM RAJAONARISON Tianandrasana Roméo 31


Le problème associé à l’utilisation de cette norme ISO 8859 dotée d’un code page, c’est que le
logiciel qui manipule les caractères doit connaître le code page de référence. Il est donc
impossible de mixer dans un même texte des caractères issus d’autres codes page.

Compte tenu de ce problème et de l'extension mondiale de l'utilisation des ordinateurs et du


nombre de plus en plus important de caractères divers à stocker, les organismes de
normalisation ISO (International Standard Organisation) ont travaillé à la création d'un code
universel. Ces travaux sont connus sous le référence ISO 10646 et se présentent sous deux
formes : une forme 32 bits (UCS-4) et une forme 16 bits (UCS-2) qui est un sous-ensemble de
UCS-4.

UNICODE 1.1 est une première version de UCS-2 codant les caractères sur 16 bits et permet
ainsi de représenter 65 536 caractères différents. Basé sur les pages ASCII en ce qui concerne
les premiers caractères, ce code est utilisé actuellement par la quasi-totalité des systèmes et des
logiciels comme le langage de programmation JAVA et les systèmes d’exploitation
WINDOWS à partir de la version 95.

H PROTECTION CONTRE LES ERREURS

Les informations circulent à travers les organes de l'ordinateur : du clavier ou d'une disquette à
la mémoire centrale, de la mémoire centrale à l'écran ect. Ces organes ne sont pas à l’abri de
modifications intempestives de ces informations. Cela est source d’erreurs causées par divers
phénomènes, comme des surtensions ou des parasites apparaissant sur les lignes d’alimentation
électrique. Il est donc nécessaire de s'assurer de la transmission convenable de ces informations.
Pour cela, la plupart des mémoires utilisent des techniques de détection et de correction
d'erreurs basées sur des codes spécifiques.

La mise en œuvre de ces techniques entraîne un ajout de bits à chaque mot mémoire. Pour
comprendre ces mécanismes, prenons deux exemples :
o Le code utilisant un bit de parité - pour la détection des erreurs de transmission ;
o Le code HAMMING - pour la détection et correction des erreurs

H.1 Le contrôle de parité

ESUM RAJAONARISON Tianandrasana Roméo 32


Le contrôle de parité est un des moyens les plus utilisés. Il consiste à ajouter un bit
supplémentaire à chaque code caractère. Ce bit est positionné à 0 ou à 1 de telle sorte que le
nombre total de bits à 1 soit :
 pair (code dit à parité paire)
 impair (code dit à parité impaire).
Exemple :
Caractère CODE
ASCII Avec parité paire Avec parité impair
a 110 0001 1 110 0001 0 110 0001
A 100 0001 0 100 0001 1 100 0001
4 011 0100 1 011 0100 0 011 0100
? 011 1111 0 011 1111 1 011 1111
Cette méthode détecte seulement les erreurs simples et ne peut pas les corriger. Alors, un simple
contrôle de parité ne suffit pas, notamment dans le cas de transmission à grande distance pour
lesquelles les données transmises sont soumises à des nombreux signaux parasites. On a donc
été amené à concevoir des codes vérifiant et corrigeant des erreurs. Un exemple de ces
techniques a été développé par l'Ingénieur américain R.W. Hamming et l'on parle souvent de
code Hamming.

H.2 Le code HAMMING


Avant de présenter les codes de HAMMING, examinons les représentations graphiques de la
figure ci-dessous. Pour un code de 4 bits, utilisons les régions AB, ABC, AC et BC.

A A A
C C C
0 0 erreu
0 0 1
r
1 1 1 1 1 1 1 1
0 0 0
0 0
B B B
bit de
(a) (c)
( b ) parité

ESUM RAJAONARISON Tianandrasana Roméo 33


Supposons qu’il y a une erreur dans la figure ci-dessus. En respectant une parité paire, la région
B n’a pas de problème. L’erreur se trouve alors dans les régions A et C. Le seul bit commun
qui convienne aux deux cercles pour les remettre en état correct est celui de la région AC, il est
donc remis à 0. Ainsi l’erreur est corrigée.

Voyons à présent un code auto-correcteur de Hamming à 7 bits (seulement pour les nombres).
Ce code est composé de 4 bits pour représenter le nombre et 3 bits pour le contrôle :
Poids des bits : 8 4 2 1
Position des bits : 1 2 3 4 5 6 7
Les bits 1, 2, 4 servent au contrôle. Ils seront mis à 0 ou à 1 pour avoir un nombre pair de bits
dans les trois combinaisons suivantes : (1, 3, 5, 7), (2, 3, 6, 7) et (4, 5, 6, 7).

Exemple :
Digit décimal Code Digit décimal Code Digit décimal Code
Hamming Hamming Hamming
0 0000000 3 1000011 6 1100110
1 1101001 4 1001100 7 0001111
2 0101010 5 0100101 8 1110000
9 0011001

Exemple d'erreurs
1357 2367 4567
Vrai code
0 1 0 1 1 0 1  Vérification 0011 1001 1101 err3
5
0 0 0 1 0 1 1  Vérification 0001 0011 1011 err1, err3
7
0 1 0 0 1 0 0  Vérification 0010 1000 0100 err1, err2,
err3 5

L’algorithme de HAMMING est spécialement conçu pour corriger une erreur, qui est adapté à
n’importe quelle taille de mot mémoire. Les nombres de bits supplémentaires pour la détection
et la correction d’erreur sont donnés dans le tableau suivant :

ESUM RAJAONARISON Tianandrasana Roméo 34


Taille du mot (bits) 4 8 16 32 64 128 256 512
Bits de contrôle 3 4 5 6 7 8 9 10
Taille totale (bits) 7 12 21 38 71 136 265 522
Surplus de bits (en %) 75 50 31 19 11 6 4 2

Pour terminer ce paragraphe, prenons un exemple de code de HAMMING pour un mot de 16


bits.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21

0 0 1 0 1 1 1 0 0 0 0 0 1 0 1 1 0 1 1 1 0
Les positions 1, 2, 4, 8, 16 sont occupées par les bits de parité.

Chaque bit de parité contrôle un certain nombre de bits du mot de code. C’est ainsi que dans
notre exemple, le bit 1 contrôle les bits 1 3 5 7 9 11 13 15 17 19 21
le bit 2 contrôle les bits 2 3 6 7 10 11 14 15 18 19
le bit 4 contrôle les bits 4 5 6 7 12 13 14 15 20 21
le bit 8 contrôle les bits 8 9 10 11 12 13 14 15
le bit 16 contrôle les bits 16 17 18 19 20 21
En général, un bit b est contrôlé par les bits b1, b2, …, bj de telle façon que b1 + b2 + … + bj =
b. Par exemple, le bit 5 est vérifié par les bits 1 et 4 (car 5 = 1 + 4), le bit 6 est vérifié par les
bits 2 et 4, ect.

ESUM RAJAONARISON Tianandrasana Roméo 35


CHAPITRE 3 LES MICROPROCESSEURS

A ARCHITECTURE INTERNE D’UN PROCESSEUR

A.1 Le rôle élémentaire d’un microprocesseur

Un microprocesseur est un circuit complexe qui possède un jeu d’instruction, une unité
arithmétique et logique pour effectuer les calculs sur les données, des registres internes pour
conserver temporairement ces données et un mécanisme pour accéder aux données stockées
dans la mémoire centrale.

Pour utiliser efficacement cette mémoire, le microprocesseur dispose de capacité de gestion de


mémoire (segmentation et pagination) qui permet l’optimisation du temps d’accès à la mémoire
et l’augmentation de l’espace adressable par le microprocesseur. Cette gestion de mémoire joue
un rôle non négligeable dans le fonctionnement du microprocesseur parce que les informations
(instruction et donnée) traitées par le microprocesseur sont stockées temporairement dans la
mémoire centrale.

Alors, pour le traitement d’une instruction, le microprocesseur doit :


 Rechercher l’instruction dans la mémoire
 Décoder l’instruction
 Rechercher les opérandes (si l’exécution a besoin d’un ou des opérandes)
 Exécuter l’instruction
 Ranger le résultat de l’opération dans la mémoire.

A.2 Les unités internes d’un microprocesseur

UNITE ARITHMETIQUE ET LOGIQUE UNITE DE GESTION MEMOIRE Données

Registres généraux Registres de


UNITE DE BUS

Décaleur segmentation et de Adresse


pagination
Commandes

UNITE DE CONTROLE UNITE DE DECODAGE UNITE DE PRE-EXTRACTION


A.2 a) Unité de bus
ROM des Décodeur Pré-extracteur
microcodes Queue des Queue de pré-
instructions extraction
ESUM RAJAONARISON Tianandrasana Roméo 36
Elle est responsable de l’échange d’information entre le bus externe du microprocesseur et ses
unités internes. Elle émet (ou reçoit) les signaux d’adresse, de données, et de contrôle utilisés
pour communiquer avec la mémoire et les périphériques (les contrôleurs).

A.2.b) Unité de pré-extraction

Lorsque l’unité de bus n’est pas occupée par une exécution d’instruction, l’unité de pré-
extraction l’utilise pour charger séquentiellement les quelques instructions suivantes du
programme en cours d’exécution. Les instructions ainsi pré-saisies sont rangées dans une zone
appelée « queue de pré-extraction ». La pré-extraction supprime pratiquement le temps qui
devrait passer par les unités à attendre la prochaine instruction. Cette unité maintient assez
d’instructions à la disposition de l’unité de décodage pour qu ‘elle n’ait pas à attendre le
chargement depuis la mémoire vive. Cette anticipation augmente sensiblement la performance
du microprocesseur.

A.2 c) Unité de décodage

Elle prend les instructions de la queue de pré-extraction et les décompose en deux parties :
 La première, le code opération ou OPCODE, qui indique l’opération à effectuer, par
exemple une addition ou un transfert de donnés. Cette partie forme une adresse, appelée
« point d’entrée microcode », pour lancer l’exécution des microcodes de l’unité de contrôle.
 La seconde, optionnelle, est constituée par un ou plusieurs opérandes. Elle désigne
l’information nécessaire à l’exécution de l’instruction. Un opérande peut être une donnée
ou peut désigner l’endroit où se trouve une donnée (registre ou adresse mémoire). Cette
partie contient alors les informations d’adressage qui sont envoyées à l’unité de gestion
mémoire pour la recherche des opérandes.

A.2 d) Unité de contrôle

Le microprocesseur s’appuie sur son unité de contrôle pour planifier les diverses tâches
nécessaires à l’exécution d’une instruction. Le découpage des instructions en signaux de
contrôle de bas niveau améliore l ‘efficacité de processus d’exécution.

ESUM RAJAONARISON Tianandrasana Roméo 37


Selon le type d’instruction à exécuter, l’unité de contrôle émet des différents signaux qui
coordonnent le fonctionnement de l’unité d’exécution. Cette unité contient les microcodes du
processeur, ensemble de commandes de bas niveau
rangées en ROM du microprocesseur. Les microcodes
AX BX
sont transférées vers la sortie de l’unité de contrôle
dans un organe appelé « séquenceur de tâches » et
envoyées à l’unité d’exécution.

FLAGS
Exemple : l’instruction en assembleur ADD AX, BX
RESULTAT
(addition des contenus des registres AX, BX) est
décomposée en quatre microcodes :
1°) ( AX )  ALU
2°) ( BX )  ALU
3°) Somme dans ALU
4°) Résultat  AX

Le microprocesseur dispose aussi de l’unité de test de protection qui fonctionne en association


étroite avec l’unité de contrôle. Cette unité vérifie que les opérations transmises à l’unité
d’exécution sont exécutables. Dans le cas contraire (par exemple : division par Zéro), elle émet
un signal d’erreur qui est aussitôt prise en compte.

4.2.e) Unité d’exécution

Elle contient un circuit chargé d’exécuter les opérations arithmétiques et logiques


(arithmétique : addition, soustraction, multiplication, division et décalage ; Logique : AND,
OR, XOR, NOT). Ce circuit est appelé « Unité arithmétique et logique » ou ALU. L’unité
d’exécution contient aussi des registres pour le stockage temporaire des données et des résultats.

Ces registres sont classés par :


 les registres généraux Accumulateurs : EAX (32), AX (16), AH (8), AL (8)
Registres de base : EBX (32), BX (16), BH (8), BL (8)
Registres de comptage : ECX (32), CX (16), CH (8), CL (8)
Registres de données : EDX (32), DX (16), DH (8), DL (8)
 les registres pointeurs et les registres d’index

ESUM RAJAONARISON Tianandrasana Roméo 38


Source index : ESI (32), SI (16)
Destination index : EDI (32), DI (16)
Base Pointer : EBP (32), BP (16)
Stack Pointer : ESP (32), SP (16)
 le registre spécial appelé « pointeur d’instruction » (EIP ou IP) qui contient l’adresse de la
prochaine instruction à exécuter par le microprocesseur. Le programme étant implicitement
séquentiel, EIP est automatiquement incrémenté de façon à pointer sur l’instruction qui suit
celle que l’unité de bus vient d’extraire.
 le registre EFLAGS contenant des informations complémentaires sur le résultat d’une
opération arithmétique et logique. Alors ses bits appelés drapeaux ou flags sont mis à 0 ou à
1 selon le résultat de l’opération.

A.2.f) Unité de gestion mémoire (MMU : Memory management Unit)

Quand le microprocesseur doit accéder à la mémoire pour y chercher une instruction, lire les
données demandées par une instruction ou écrire le résultat d’une opération de l’ALU, il fait
appel à l’unité de gestion mémoire. Cette unité est chargée de traduire chaque adresse logique
interne en une adresse physique externe correspondant à une position particulière de la mémoire
centrale.

Le MMU fournit une assistance au système d’exploitation multitâche en créant un


environnement d’adressage simplifié pour les programmes d’application. Quand plusieurs
programmes tournent simultanément (multitâche) chacun doit disposer de son propre espace
d’adressage pour ses données et ses instructions. S’ils devaient tout partager le même espace
d’adressage, chacun devrait se livrer à des vérifications d’adresse pour éviter d’interférer avec
ses voisins. Pour soulager les programmes de cette responsabilité, le MMU contient le circuit
de segmentation et de pagination. Cette unité dispose ainsi des registres de segment : CS, SS,
DS, ES, FS, GS.

SEGMENTATION

La segmentation est une technique qui donne à chaque programme son propre et unique espace
d’adressage nommé « segment » en mémoire centrale. Elle transforme l’adresse logique en

ESUM RAJAONARISON Tianandrasana Roméo 39


adresse linéaire (en physique pour les microprocesseurs qui n’utilisent pas la technique de
pagination, c’est-à-dire pour les processeurs fonctionnant en mode réel).

Mode réel (adressage de 8086) : espace physique adressable 1 Mo


FFFFFh
CS (16 bits) 0000

SS (16 bits) 0000 Code Segment

DS (16 bits) 0000


Stack Segment
ES (16 bits) 0000
Data Segment
Déplacement

Extra-Segment
Adresse physique (20 bits)

00000h

Mode protégé (segmentation : adresse logique en adresse linéaire) : espace adressable 64


Téraoctets

( 16 bits ) ( 32 bits )
SELECTEUR OFFSET

Jusqu’à 4 Go
Cop / Opérande

DESCRIPTEUR

Table des Mémoire


descripteurs physique
Le sélecteur de segments pointe dans une table de descripteurs de segment fournissant :
 L’adresse de base de segment :
 La limite (taille) du segment :
 Le privilège ou droit d’accès.

PAGINATION

La pagination découpe la mémoire principale en blocs de 4 ko appelé « PAGE » pour créer un


environnement virtuel dans lequel de grande espace d’adressage est simulée à partir d’une petite
quantité de DRAM et d’un complément d’espace disque (mémoire virtuelle).

ESUM RAJAONARISON Tianandrasana Roméo 40


Quand la pagination est active, l’adresse linéaire se traduit en adresse physique en la divisant
en 3 parties qui désignent une table de pages dans un répertoire, une page dans cette table et un
déplacement dans cette page.

31 22 21 12 11 0
INDEX PAGE OFFSET

4 Ko
Cop/Opérande
1024 entrées 1024 pages

Début de page
Entrée

Mémoire physique
Répertoire des tables Table des pages

Deux niveaux sont alors nécessaires pour la traduction de page : le premier niveau sont celui
du répertoire de tables qui peut contenir jusqu’à 1024 entrées, chacune pointant vers une
structure de même type appelé table de pages, laquelle à son tour peut adresser 1024 pages en
mémoire physique.

Un répertoire de tables peut donc adresser jusqu’à 220 pages soit 4 Go d’espace d’adressage,
car chaque page ayant une taille constante de 4 Ko.

A.3 Modes de fonctionnement en parallèle

A.3. a) Pipeline

Chaque instruction est traitée séquentiellement dans le microprocesseur. Pour accroître


l’efficacité et la rapidité du traitement, chaque unité interne peut fonctionner en parallèle avec
les autres de façon qu’une instruction puisse être traitée par cycle d’horloge. On dit alors que
les instructions sont traitées en PIPELINE :

Cycle 1 Cycle 2 Cycle 3 Cycle 4 Cycle 5 Cycle 6 Cycle 7 . . .


Horloge

Unité de bus Instr_1 Instr_2 Instr_3 Instr_4 Instr_5 Instr_6 Instr_7 . . .

ESUM RAJAONARISON Tianandrasana Roméo 41


Unité de Instr_1 Instr_2 Instr_3 Instr_4 Instr_5 Instr_6 . . .
décodage
ALU Instr_1 Instr_2 Instr_3 Instr_4 Instr_5 . . .
MMU Instr_1 Instr_2 Instr_3 Instr_4 . . .

A.3. b) Superscalaire

La méthode consiste à doubler quelques unités internes du microprocesseur pour augmenter le


nombre d’instructions exécutées par cycle d’horloge. C’est le cas du pentium qui dispose de
trois unités d’exécution, deux pour les opérations en entier et une pour les calculs en virgule
flottante. C’est-à-dire, trois unités d’exécution qui peuvent fonctionner en parallèle. Ce
fonctionnement est illustré par la figure ci-dessous.

ALU

Recherch Décodag Recherch ALU Rangeme


e e e nt
des des des des
FPU

A.3. c) HyperThreading

La technologie HyperThreading (HyperFlots ou HyperFlux) consiste à définir deux


processeurs logiques au sein d'un processeur physique. Ainsi, le système reconnaît deux
processeurs physiques et se comporte en système multitâche en envoyant deux threads
simultanés, on parle alors de SMT (Simultaneous Multi Threading). Cette « supercherie »
permet d'utiliser au mieux les ressources du processeur en garantissant que des données lui sont
envoyées en masse.

ESUM RAJAONARISON Tianandrasana Roméo 42


B CARACTERISTIQUES D’UN MICROPROCESSEUR

 La fréquence de fonctionnement d’un microprocesseur (exprimée en nombre de cycle


d’horloge par seconde ou MHZ) joue un rôle déterminant sur la vitesse du fonctionnement
d’un microprocesseur et sur la synchronisation de l’exécution des tâches avec les
périphériques. Puisque le signal d’horloge est utilisé non seulement par le microprocesseur
mais aussi par les composants périphériques pour définir le moment où les informations
doivent être transférées.

 Le processeur se classe généralement par la taille de ses registres internes, par le nombre de
bits qui peuvent être traités simultanément. On parle souvent de processeur 16 bits (8086,
8088, 80286), 32 bits (80386, 80486 et pentium d’INTEL).

 L’aptitude à transferer plus de données durant un cycle d’horloge est caractérisée par la
largeur de bus de données. Par exemple, le pentium (largeur du bus de données : 64 bits)
peut transférer 4 fois plus d’informations que le 80286 (largeur du bus de données : 16 bits).

 La largeur du bus d’adresses est un paramètre technique et économique important dans la


conception d’un ordinateur. Ainsi, avec n lignes d’adresses, le processeur peut adresser 2 n
mots mémoire différents.

 Le progrès de la technologie des semi-conducteurs permet de placer de plus en plus de


transistors sur des surfaces de plus en plus réduites. Cette augmentation de nombres de
transistors est un moyen de réaliser et d’intégrer sur la même puce (circuit intégré), les
circuits annexes autrefois extérieurs au microprocesseur. L’élimination de connexion
externe est un facteur de rapidité.

 L’expression « million d’instructions par seconde » ou MIPS est une façon simple de
mesurer la performance (rapidité) d’un microprocesseur.

A l’évidence, ces caractéristiques ne sont pas suffisantes pour mesurer et comparer les
performances des microprocesseurs, car les architectures internes, qui peuvent différer d’un
processeur à l’autre, doivent aussi être prises en compte.

Les constructeurs utilisent alors des programmes de tests spéciaux, appelés bancs d’essai ou
« benchmarks », qui sont des ensembles de tâches normalisées dont on mesure le temps
d’exécution pour évaluer les performances relatives d’un processeur à l’autre. Par exemple,
INTEL utilise les indices de performance suivants :

ESUM RAJAONARISON Tianandrasana Roméo 43


 SPECint95 (Standard Performance Evaluation Corporation Integer 95) – test de
performance 32 bits pour la vitesse de calcul sur des nombres entiers :
 SPECfp95 – test pour les calculs sur des nombres réels.

C TECHNOLOGIE DES MICROPROCESSEURS

On distingue deux grandes architectures de microprocesseur :

L’architecture CISC (Complex Instruction Set Computer), dont fait partie l’architecture Intel à
32 bits. Dans une telle architecture, chaque instruction se développe en plusieurs microcodes
lors de son exécution. Alors, elle peut prendre plus d’un cycle pour une instruction. Le jeu
d’instruction est plus étendu et la technique d’adressage est plus complexe.

L’architecture RISC (Reduced Instruction Set Computer) est caractérisée par :


 un jeu d’instructions réduit aux instructions les plus fréquemment utilisées,
 une exécution des instructions en un seul cycle d’horloge,
 et une taille unique d’instructions.

Elle utilise alors l’architecture superscalaire pour exécuter plus d’une instruction par cycle
d’horloge et l’anticipation de branchement pour accélérer l’exécution des programmes. De
nombreux processeurs RISC se doublent d’unités de calcul en virgule flottante et des systèmes
avancés de gestion de mémoire.

A titre d’exemple, citons quelques processeurs RISC :


 PowerPC d’Apple-IBM-Motorola,
 SPARC de Sun, MIPS de Mips Computer
 et ALPHA 21O64 –AA200 de Digital.

D EXEMPLE DE MICROPROCESSEURS

D.1 Cas d’INTEL 486

ESUM RAJAONARISON Tianandrasana Roméo 44


Le 80 486 est le successeur du microprocesseur d’INTEL 80 386. C’est un processeur 32 bits.
La performance de i486 est due à un fort degré d’intégration. Pour rester en phase avec la vitesse
accrue de l’unité d’exécution, un cache interne de 8 Ko permet de conserver les informations
récemment utilisées et de réduire ainsi le nombre des accès à la mémoire centrale. Pour
alimenter ce cache de façon efficace, l’unité de bus a été améliorée et peut supporter des cycles
en mode rafale (burst), permettant d’accéder à des groupes de données ou d’instructions de 16
octets en mémoire vive.

Cycle normale
Adress Donné Adress Donné Adress Donné Adress Donné
e e e e e e e e

Cycle rafale
Adress Donné Donné Donné Donné
e e e e e

4 blocs de 32 bits

C’est-à-dire pour supporter la largeur de ligne de 16 octets des unités de cache et de pré-
extraction, l’unité de bus peut lire en succession quatre blocs de 32 bits (schéma ci-dessus). On

127 127
Octet n°4 Ce schéma montre le
100 SUCCES ... ECHEC 100 mécanisme de recherche
21 bits
d’information à partir de
l’adresse : 003AC644
0 Repère 0 Voie 0 (2 Ko) Voie 1 (2 Ko) Repère 0 0
127 127 Cette adresse est décou-
100 ECHEC ECHEC 100 pée en trois parties :
Bloc de 16 octets
Repère : 21 bits
Index : 7 bits
Repère 0 Voie 2 (2 Ko) Voie 3 (2 Ko) Repère 0
N° de l’octet : 4 bits
0 0
peut simplifier le schéma interne d’un cache unifié multivoie du processeur i486 :

En intégrant dans la puce une unité de virgule flottante (un coprocesseur arithmétique semblable
au 387), le processeur 486 réduit ces cycles d’E/S habituels nécessaires aux transferts de
données entre le processeur et un coprocesseur externe. Avec toutes ces améliorations

ESUM RAJAONARISON Tianandrasana Roméo 45


fonctionnelles, le nombre moyen de cycles nécessaires à l’exécution d’une instruction passe
ainsi de 4,5 sur i386 DX à 1,8 sur i486.

Tout comme ses prédécesseurs, le i486 a suivi un certain nombre de variantes passant de 486DX
au 486SX. Mais cette fois, le modèle SX dispose d’un même bus. La différence c’est que le
processeur arithmétique a été inhibé dans le 486SX.

En outre, Intel a créé des processeurs associés appelés OVERDRIVE doublant ou triplant la
fréquence de travail du processeur. Dans ce cas, la machine conserve son ancien quartz et ces
anciens circuits. Par exemple avec une horloge externe de 33 MHZ, le 486 DX2, processeur
doubleur de fréquence, travaille en interne à 66 MHz, le 486 DX4, processeur tripleur de
fréquence, travaille en interne à 99MHz. Et pour soutenir cette augmentation de fréquence, la
taille de son cache interne a été doublée.
Pour maintenir la comptabilité des programmes avec les générations précédentes d’Intel, le 486
peut adopter 4 modes de fonctionnements :
mode réel – La machine à base de 486 démarre en mode réel pour pouvoir rester compatible
avec le système d’exploitation en mode réel, tel que le MS-DOS et avec les programmes
initialement écrits pour le 8088. Les interfaces graphiques type Windows, OS/2 et UNIX
basculent le processeur en mode protégé pour profiter pleinement de ses caractéristiques.
mode protégé et mode virtuel - le i486 peut accéder à la totalité de son espace d’adressage de
32 bits soit 4 Go. Le mécanisme de pagination permet au système d’exploitation de gérer
des échanges de pages de 4 Ko. Une tâche peut disposer de 16 384 segments au maximum,
alors l’adressage virtuel atteint 64 TéraOctet.
mode SMM (Système Management Mode) – A l’origine, ce mode a été développé au titre de
la technologie SL, pour gérer de façon efficace la durée de vie des batteries des
ordinateurs portables. Il permet de réduire la consommation d’énergie d’un ordinateur en
cas d’absence d’activité. Devenu un élément standard de l’architecture Intel, ce mode a
été intégré dans les séries Intel 486 SL et dans les processeurs Pentium.

ESUM RAJAONARISON Tianandrasana Roméo 46


D.2 Cas d’INTEL Pentium

64 bits Cache
d’instructions
Moniteur de 8 Ko
256 bits Branchemen
performance Buffer de pré-recherche t
Prédictif
32 bits 32 bits

Unité
ALU ALU
64 bits de FPU
entiers entiers
bus en pipeline
32 bits 32 bits
Addition
Jeu de registres Multiplication
Intégrité Division
des données 64 bits

64 bits
Cache de
données
8 Ko

Successeur de i486, le Pentium est encore un processeur à architecture CISC. Mais il s’oriente
vers la technique appliquée par les systèmes RISC. Le schéma ci-dessus montre la structure
simplifiée du Pentium. Intégrant plus de 3,1 millions de transistors, ce processeur 32 bits
possède ses principales innovations par rapport au i486 :

 L’une des caractéristiques les plus importantes de Pentium tient à ses trois pipelines
d’exécution : l’un pour les instructions flottantes et deux autres indépendants, dits U et V,
pour les instructions entières. Cette architecture, permet d’exécuter plus d’une instruction à
la fois ;

 Son troisième pipeline d’exécution, le FPU traite les instructions flottantes en huit étages
de pipeline. Trois des opérations flottantes les plus fréquentes (addition, multiplication et
division) sont câblées pour réduire encore le temps d’exécution, c’est-à-dire qu’elles sont
traitées par un circuit spécialisé et non pas par microcodage ;

 Le Pentium possède deux caches internes de 8 Ko, l’un pour les données, l’autre pour les
codes. Le cache code permet des transferts plus efficaces vers l’unité de pré-extraction, à
travers un bus interne de 256 bits de large. Le cache données est relié à chacun de pipelines
d’exécution et peut opérer en écriture différé (write-back) pour faciliter les applications en
multitraitement ;

 La taille de bus externe de données a été portée à 64 bits, ce qui double la quantité de
données pouvant être transférée durant chaque cycle de bus ;

ESUM RAJAONARISON Tianandrasana Roméo 47


 Par tradition, la taille de page mémoire est à 4 Ko, mais pour réduire les transferts, le
Pentium permet d’opter pour une valeur de page mémoire de 4 Mo ;

 L’usage de branchements prédictifs dynamiques : Le pipeline d’exécution augmente le débit


du processeur, mais les branchements réduisent cette efficacité.

Dans le cas d’un branchement, le programme ne se poursuit pas par l’instruction suivante
mais par une toute autre instruction située dans une autre zone mémoire. En conséquence,
l’instruction suivante déjà pré-chargée dans le pipeline doit être interrompue et le pipeline
doit être alimenté par des nouvelles instructions. Cela ralentit la vitesse de fonctionnement
du processeur, car le branchement provoque la purge du pipeline avant son chargement par
les nouvelles instructions.

Le Pentium résout ce problème en mettant en service un petit cache de 1 Ko appelé « BTB


ou Branch Target Buffer » pour enregistrer les branchements déjà effectués. Lorsque le
processeur rencontre une instruction de branchement, il exploite son adresse pour la
rechercher dans le BTB. Si l’instruction se trouve dans BTB, les instructions de
branchement sont immédiatement exécutées.

 Le Pentium est conçu de façon à simplifier le multitraitement : le cache données fonctionne


selon un protocole MESI (Modified, Exclusive, Shared, Invalid) qui permet à plusieurs
processeurs d’exploiter efficacement le bus d’interconnexion commun ;
 Modified – le bloc dans le cache a été modifié par rapport au contenu de la mémoire.
Autrement dit, la donnée dans le cache est valide mais celle de la position mémoire
correspondante est périmée.
 Exclusive – la ligne de cache contient des données identiques à celles de la mémoire
aux mêmes adresses. Aucun autre cache ne dispose des ces mêmes données.
 Shared – la ligne de cache contient des données identiques à celles de la mémoire
aux mêmes adresses. Au moins un autre cache dispose des mêmes données.
 Invalid – la ligne du cache ne contient pas de données valides.

 Le processeur Pentium réalise une détection d’erreur par vérification de parité à deux
niveaux : sur le bus externe, d’une part, et sur les caches, les tampons et la ROM microcode
d’autre part.

 Le Pentium est présenté dans différents types de boîtier selon la tension d’alimentation :
Version 5V (PGA) – de 273 contacts organisés en matrice de 21 par 21. Il mesure environ
55 mm par côté ; Version 3.3 (PGA) – de 296 contacts décalés en matrice de 21 par 21.

ESUM RAJAONARISON Tianandrasana Roméo 48


 Le Pentium est conçu en utilisant la technologie BICMOS : bipolaire pour la puissance et
la capacité, CMOS pour la faible consommation et le degré d’intégration.

Depuis son lancement en mars 1993, INTEL n’a cessé de faire évoluer son processeur Pentium.
En 6 ans, sa fréquence initiale de 60 Mhz a été devenue 500 Mhz sur la troisième génération,
le PIII. Actuellement, la quatrième génération (le PIV) fonctionne en fréquence plus de 2 Ghz.

Outre sa vitesse de fonctionnement, le processeur a connu de multiples évolutions :


 Ajout des instructions MMX (SIMD, SSE, SSE2) pour les applications
multimédias ;
 Augmentation de la taille de la mémoire cache et intégration de la mémoire cache
L2 ;
 Amélioration du bus système tant qu’au niveau architecture (Dual Independant Bus)
qu’au niveau fréquence (33  533 Mhz et plus).
E TABLEAU RECAPITULATIF SUR L’ARCHITECTURE INTEL

MICROPROCESSEUR 80286 80386 DX 80386 SX 80486 DX 80486 SX


Date d’introduction 1981 1985 1988 1989
Fréquence d’horloge (Mhz) 16, 20, 25, 33 25,33,50,66,75,10 50
0
MIPS 1,5 5 27
Nombre de transistors 134 000 275 000 1,2 M
Taille de registres 16 32 32 32 32
Bus de données 16 32 16 32 32
Bus d’adresse 24 32 24 32 32
Mémoire cache interne - - - 8 ko 8 ko
FPU intégré non non non oui non

Date Fréquence Cach Cach Bus Transist Gravur Pin


d’introd (MHZ) e L1 e ext. (millions e coun
° (Ko) L2 (Mhz ) (micron t
(Ko) ) )

ESUM RAJAONARISON Tianandrasana Roméo 49


Pentiu 22/03/9 60, 66 16 0 30, 3,1 0,8 273
m 60, 3 33
66
Pentiu 10/10/9 75 16 0 30, 3,2 0,6 296
m 75 4 33
Pentiu 07/03/9 90, 100 16 0 50 3,2 0,6 296
m 90, 4
100
Pentiu 27/03/9 120 16 0 60 3,2 0,35 296
m 120 5
Pentiu 01/06/9 133 16 0 66 3,3 0,35 296
m 133 5
Pentiu 04/01/9 150, 166 16 0 66 3,3 0,35 296
m 150, 6
166
Pentiu 10/06/9 200 16 0 66 3,3 0,35 296
m 200 6
Pentiu ..../01/9 166,200,233 32 0 66 4,5 0,35 296
m MMX 7
Pentiu 01/11/9 150,166,180,20 16 0 66 5,5 0,35 387
m PRO 5 0
Pentiu 01/11/9 150,166,180,20 16 256 66 15,5 0,6 387
m PRO 5 0
Pentiu 01/11/9 150,166,180,20 16 512 66 31 0,35 387
m PRO 5 0
Pentiu 18/08/9 200 16 1 Mo 66 5,5 0,35 387
m PRO 7
Pentiu 07/05/9 233,266,300 32 512 à 66 7,5 0,35 242
m II 7 ½ vit
Pentiu 26/01/9 333 32 512 à 66 7,5 0,25 242
m II 8 ½ vit

ESUM RAJAONARISON Tianandrasana Roméo 50


Pentiu 15/0498 350,400 32 512 à 100 7,5 0,25 242
m II ½ vit
Pentiu 24/08/9 450 32 512 à 100 7,5 0,25 242
m II 8 ½ vit
Celeron …/04/98 266,300 32 0 66 7,5 0,25 242
Celeron …/08/98 300,333 32 128 66 19 0,25 242
Celeron 04/01/9 366,400 32 128 66 19 0,25 242
9
Pentiu …/06/98 400,450 32 512, 100 7,5 0,25
m II 1Mo
Xéon
Pentiu 05/01/9 450 32 512 - 100 7,5 0,25
m II 9 2Mo
Xéon
Pentiu 26/02/9 450 - 600 32 512 à 100 7,5 0,25 370
m III 9 ½ vit
Pentiu 533 - 600 32 512 à 133 0,25
m III B ½ vit
Pentiu 500 – 1 Ghz 32 256 100 0,18 370
m III E
Pentiu 533 – 1,13 Ghz 32 256 133 0,18 370
m III EB
Celeron 533 - 700 32 128 66 0,18 370
Celeron 800 – 1,1 Ghz 32 128 100 0,18 370
Celeron 1 – 1,4 Ghz 32 256 100 0,13 370
Pentiu 1,13 – 1,2 Ghz 32 256 133 0,13 370
m III
Pentiu 1,13 – 1,4 Ghz 32 256 133 0,13 370
m III S

ESUM RAJAONARISON Tianandrasana Roméo 51


Pentiu 500 - 550 32 512 - 100 0,25
m III 2Mo
Xeon
Pentiu 700 - 900 32 512 - 100 0,25
m III 2Mo
Xeon
Pentiu 600 – 1 Ghz 32 512 - 100 0,25
m III 2Mo
Xeon
Pentiu 1,4 – 1,7 Ghz 256 400 0,18 423
m4
Pentiu 1,6 – 2,4 Ghz 512 400 0,13 478
m4A
Pentiu 2,26 – 2,4 Ghz 512 533 0,13 478
m4B
Pentiu 1,4 – 2 Ghz 256 400 0,18 603
m 4
Xeon
Pentiu 1,8 – 2,2 Ghz 256 400 0,13 603
m 4
Xeon

ESUM RAJAONARISON Tianandrasana Roméo 52


CHAPITRE 4 LES MEMOIRES

A. Les Caractéristiques principales

La mémoire est un dispositif capable de stocker temporairement ou définitivement des


informations. Il existe deux grands types de mémoire dans un système informatique :

 Les mémoires de composant électronique : la mémoire morte (support du BIOS) et la


mémoire vive (mémoire centrale et mémoire cache, dédiées au stockage temporaire des
données et à leur manipulation) ;
 Les mémoires de masse ou mémoires auxiliaires de composition mécanique, magnétique et
optique (bandes magnétiques, disques magnétiques et disques optiques). Ce sont les
mémoires de sauvegarde des informations (logiciels, programmes, données).

Les principales caractéristiques d'une mémoire sont les suivantes :

 La capacité, représentant le volume global d'informations (en bits) que la mémoire peut
stocker ;
 Le temps d'accès, correspondant à l'intervalle de temps entre la demande de lecture/écriture
et la disponibilité de la donnée ;
 Le temps de cycle, représentant l'intervalle de temps minimum entre deux accès successifs
;
 Le débit (ou taux de transfert), définissant le volume d'information échangé par unité de
temps, exprimé en bits par seconde ;
 La non volatilité caractérisant l'aptitude d'une mémoire à conserver les données lorsqu'elle
n'est plus alimentée électriquement.

A partir des deux premières caractéristiques, nous pourrons établir la comparaison suivante :

Registre Mém. Cache Mém. Cache Mem. Mém. de


L1 L2 centrale masse
Capacité 32, 64 bits 16, 32 Ko 256 ko – 2 Mo 256 Mo - 2 Plusieurs Go
Go
Temps 1 ns 1 ns 5 ns 10 ns 5 ms
d’accès

ESUM RAJAONARISON Tianandrasana Roméo 53


B. Les mémoires vives dynamiques et la mémoire centrale

Les mémoires vives sont des mémoires pouvant être lues ou écrites à volonté. Elles sont plus
connues sous le terme générique de RAM qui signifie « Random Access Memory – mémoire à
accès aléatoire ». Elles ont de temps d’accès assez petit (rapide) et ne consomment que peu
d’énergie. Elles sont volatiles, la moindre coupure de courant faisant disparaître l’information.
Les mémoires vives servent, dans un ordinateur, de mémoire de travail du microprocesseur. On
peut les classer généralement en deux catégories : la mémoire statique (SRAM) et la mémoire
dynamique (DRAM).

Dans la DRAM, la cellule de base est constituée par un transistor MOS, couplé à un
condensateur. Elle est périodiquement « rafraîchie » par une relecture et réécriture afin de
conserver les informations et pour pallier les fuites de courant des transistors qui ont tendance
à se décharger. Elle est alors assez lente par rapport à la mémoire SRAM.

Ce type de mémoire est cependant très couramment utilisé du fait d’une plus grande capacité
d’intégration. Elle constitue la « mémoire centrale » d’un ordinateur et se présente généralement
sous forme de barrettes de mémoire enfichables sur la carte-mère. On distingue habituellement
trois types de barrettes de RAM.
Les barrettes au format SIMM (Single Inline Memory Module). Il existe deux types de
barrettes SIMM, selon le nombre de connecteurs : SIMM à 30 connecteurs (dont les dimensions
sont 89x13mm) sont des mémoires 8 bits qui équipaient les premières générations de PC (8086,
80286, 80386) ; SIMM à 72 connecteurs (dont les dimensions sont 108x25mm) sont des
mémoires capables de gérer simultanément 32 bits de données

Les barrettes au format DIMM (Dual Inline Memory Module) à 168 broches (130x25mm)
sont des mémoires 64 bits pour la SDRAM (Synchronous DRAM).. La SDRAM permet
d’éviter les états d’attente (waits states) dus à la synchronisation avec la carte-mère. Il existe en
outre des modules de plus petite taille, appelés SO DIMM (Small Outline DIMM), destinés aux
ordinateurs portables. Les barrettes SO DIMM comportent uniquement 144 broches pour les
mémoires 64 bits et 77 pour les mémoires 32 bits.

Les barrettes au format RIMM (Rambus Inline Memory Module, appelées également RD-
RAM ou DRD-RAM) sont des mémoires 64 bits développée par la société Rambus. Elles

ESUM RAJAONARISON Tianandrasana Roméo 54


possèdent 184 broches. Comme dans le cas des DIMM, il existe des modules de plus petite
taille, appelés SO RIMM (Small Outline RIMM), destinés aux ordinateurs portables. Les
barrettes SO RIMM comportent uniquement 160 broches.

Les différentes versions de SDRAM

La DR-SDRAM (Direct Rambus DRAM ou encore RDRAM) est un type de mémoire


permettant de transférer les données sur un bus de 16 bits de largeur à une cadence de 800Mhz,
ce qui lui confère une bande passante de 1,6 Go/s. Comme la SDRAM, ce type de mémoire est
synchronisé avec l'horloge du bus pour améliorer les échanges de données. En contrepartie, la
mémoire RAMBUS est une technologie propriétaire, ce qui signifie que toute entreprise
désirant construire des barrettes de RAM selon cette technologie doit reverser des droits
(royalties) aux sociétés RAMBUS et Intel.

La DDR-SDRAM (Double Data Rate SDRAM) est une mémoire basée sur la technologie
SDRAM, permettant de doubler le taux de transfert de la SDRAM à fréquence égale.

La lecture ou l'écriture de données en mémoire est réalisé sur la base d'une horloge. Les
mémoires DRAM standard utilisent une méthode appelée SDR (Single Data Rate) consistant à
lire ou à écrire une donnée à chaque front montant. La DDR permet de doubler la fréquence des
lectures/écritures, avec une horloge cadencée à la même fréquence, en envoyant les données à
chaque front montant, ainsi qu'à chaque front descendant.

La DDR2-SDRAM (ou DDR-II) permet d'atteindre des débits deux fois plus élevés que la DDR
à fréquence externe égale. On parle de QDR (Quadruple Data Rate ou quad-pumped) pour
désigner la méthode de lecture et d'écriture utilisée. La mémoire DDR2 utilise en effet deux
canaux séparés pour la lecture et pour l'écriture, si bien qu'elle est capable d'envoyer ou de
recevoir deux fois plus de données que la DDR. La DDR2 possède également un plus grand
nombre de connecteurs que la DDR classique (240 pour la DDR2 contre 184 pour la DDR).

ESUM RAJAONARISON Tianandrasana Roméo 55


Tableau récapitulatif des mémoires DDR
Mémoire Appellation Fréquence (RAM) Fréquence (FSB) Débit
DDR200 PC1600 200 MHz 100 MHz 1,6 Go/s
DDR266 PC2100 266 MHz 133 MHz 2,1 Go/s
DDR333 PC2700 333 MHz 166 MHz 2,7 Go/s
DDR400 PC3200 400 MHz 200 MHz 3,2 Go/s
DDR433 PC3500 433 MHz 217 MHz 3,5 Go/s
DDR466 PC3700 466 MHz 233 MHz 3,7 Go/s
DDR500 PC4000 500 MHz 250 MHz 4 Go/s
DDR533 PC4200 533 MHz 266 MHz 4,2 Go/s
DDR538 PC4300 538 MHz 269 MHz 4,3 Go/s
DDR550 PC4400 550 MHz 275 MHz 4,4 Go/s
DDR2-400 PC2-3200 400 MHz 100 MHz 3,2 Go/s
DDR2-533 PC2-4300 533 MHz 133 MHz 4,3 Go/s
DDR2-667 PC2-5300 667 MHz 167 MHz 5,3 Go/s
DDR2-675 PC2-5400 675 MHz 172,5 MHz 5,4 Go/s
DDR2-800 PC2-6400 800 MHz 200 MHz 6,4 Go/s

C. Les mémoires vives statiques et la mémoire cache

Dans la SRAM, la cellule de base est constituée par une bascule de transistors. Ce type de
mémoire est très rapide mais très chère car on a des difficultés pour atteindre une bonne
intégration. On l’utilise surtout comme « mémoire cache ».

Le cache mémoire, située entre la mémoire centrale et le microprocesseur, utilise une mémoire
SRAM de petite taille, pour tourner à la vitesse du microprocesseur. Il stocke, en effet, une
petite partie de données et/ou des instructions se trouvant dans la mémoire centrale. Quand le
microprocesseur veut effectuer une lecture, il cherche d'abord les informations dans la mémoire
cache. Ce processus est illustré par le schéma suivant :

Succès du cache
donnée MEMOIRE MEMOIRE
s CACHE CENTRALE
PROCESSE adress SRAM DRAM
UR e Contrôleur de Contrôleur de DRAM
SRAM

ESUM RAJAONARISON Tianandrasana Roméo 56


Echec du cache
Le contrôleur du cache gère un répertoire des adresses des données contenues dans le cache.

données

MEMOIRE MEMOIRE
CACHE CENTRALE
PROCESSE adress adress
SRAM DRAM
UR e Contrôleur de e Contrôleur de DRAM
SRAM
Ces adresses sont appelées « repères ». L’adresse indiquée par le microprocesseur est comparée
avec les repères et si elle ne se trouve pas parmi eux, il y a « échec du cache ». Le contrôleur
de cache transmet alors le cycle au contrôleur de DRAM.

Une fois que le contrôleur de cache a saisi les données dans la mémoire centrale, celles-ci sont
transmises au microprocesseur, mais aussi copiées dans le cache. Le répertoire des repères est
mis à jour et le processus se répète, ce qui remplit le cache.

La mise à jour des informations dans le cache est gérée par un algorithme appelé « LRU – Least
Recently Used » qui garde trace des lignes les plus récemment utilisées. Pour éviter que le cache
ne se remplisse de données devenues inutiles, le contrôleur de cache utilise un circuit et des bits
spéciaux pour savoir quand les données ont été utilisées pour la dernière fois. Les plus anciennes
sont alors remplacées par les nouvelles données par le microprocesseur.
Les informations lues en mémoire centrale sont chargées dans le cache selon plusieurs
stratégies. On peut aussi utiliser le cache en écriture :
Write-back
Au lieu d’enregistrer les données en mémoire centrale, le processeur les expédie dans le cache,
bien plus rapide. Dès lors :
 Le cache peut les transférer dans la mémoire centrale à intervalles réguliers ;
 Ou bien il les transfère en mémoire centrale après qu’il en a accumulé une certaine quantité ;
 Ou encore il profite de la disponibilité des bus pour exécuter ce transfert. Cela signifie que,
dans tous les cas, il se trouve une période critique pendant laquelle la mémoire centrale
n’est pas à jour.

Write-through

ESUM RAJAONARISON Tianandrasana Roméo 57


Les informations sont bien émises vers le cache mais celui-ci se comporte comme une passoire
et les laisse directement filer en mémoire centrale. C’est ce qu’on appelle un cache transparent
en écriture ou bien encore en lecture seulement.

D. Les mémoires mortes et le BIOS

Les mémoires mortes sont des mémoires qui ne peuvent être que lues. Elles sont non volatiles
et généralement sous le terme de ROM (Read Only Memory ou mémoire à lecture seule). Les
informations stockées dans ce type de mémoire sont enregistrées de façon définitive lors de sa
fabrication par le constructeur. Mais quelques versions de ROM acceptent une écriture :
 Le PROM (Programmable ROM). L’écriture est faite par l’utilisateur au moyen d’une
machine appelée « programmateur de PROM »
 Le EPROM (Erasable PROM). Cette mémoire peut être effacée à l’aide d’un tube à rayons
ultraviolets. C’est pourquoi, les EPROM se distinguent des autres par la présence sur leur
face supérieure d’une petite fenêtre de quartz, souvent obturée par un adhésif de manière à
ne pas être exposée aux ultraviolets naturels (soleil …)
 Le EEPROM (Electricaly EPROM). Les EPROM présentent l’inconvénient de nécessiter
une source d’ultraviolets pour être effacées, ce qui oblige donc de les enlever de leur
support. Les constructeurs ont développé des EEPROM effaçables électriquement, octet par
octet, que l’on trouve aussi sous l’appellation d’EAROM (Electricaly Alterable ROM).
 La mémoire FLASH qui présente des caractéristiques intéressantes de non volatilité et de
rapidité. Elle est effaçable et programmable électriquement par blocs de 64 Ko et peut être
programmée en un temps relativement court, d’où leur appellation. Elle ne nécessite qu’un
transistor par point mémoire, contre deux aux EEPROM classiques, ce qui permet d’en
augmenter la capacité.

A chaque allumage de l’ordinateur, le microprocesseur doit exécuter un certain nombre de


routines préalables permettant de tester, d’initialiser les composants de système et de charger
en mémoire vive le système d’exploitation. L’ensemble de ces routines est appelé BIOS (Basic
Input Output System). Il permet d’accéder aux composants matériels comme : la mémoire vive,
les interfaces série et parallèle, l’horloge CMOS, la carte vidéo, les disques durs, les disquettes,
le clavier …

ESUM RAJAONARISON Tianandrasana Roméo 58


Le BIOS est spécifique de la carte mère car il contient des informations sur le matériel (propre
à cette carte). Il réside sur mémoire morte de type EPROM ou FLASH. De nombreux systèmes
copient automatiquement le BIOS dans une mémoire RAM appelée « CMOS RAM » parce que
les mémoires ROM sont plus lentes que les mémoires vives. Cette procédure de transfert est
appelée « shadow RAM ». Tous les appels en ROM sont alors redirigés par translation d’adresse
en RAM où sont relogées les routines du BIOS. L’exécution est alors plus rapide.

Au démarrage de l’ordinateur, une partie du BIOS appelée autotest de démarrage ou POST


(Power On Self Test) est activée. Ce petit programme est le premier ensemble de routines qui
demande au microprocesseur d’initialiser la mémoire ainsi que le reste du système. Les
composants du système sont inventoriés et testés, en cas de défaillance, plusieurs bips codés
sont émis avant l’initialisation de la vidéo. Le microprocesseur installe également en mémoire
la table des vecteurs d’interruption, et initialise les adresses des routines d’interruption. La
dernière partie du BIOS est le chargeur de système d’exploitation (bootstrap loader). Cette
petite routine cherche un système d’exploitation dans une position bien définie de la disquette
ou du disque dur. Si un enregistrement de démarrage (boot record) est trouvé dans le premier
secteur du disque système, il est chargé en mémoire et prend le contrôle.

Les nouveaux BIOS sont dotés de fonctions évoluées (économie d’énergie, paramétrage des
bus PCI, EISA, PCMCIA). Ils supportent la norme EIDE permettant la connexion de quatre
périphériques. Certains BIOS détectent la présence de virus sur le secteur boot. Cette solution
présente l’avantage de détecter un virus dès le démarrage du système.

E. Les cartes mémoires à partir des mémoires flash

La mémoire flash est une mémoire à semi-conducteurs, non volatile et réinscriptible, c'est-à-
dire une mémoire possédant les caractéristiques d'une mémoire vive mais dont les données ne
se volatilisent pas lors d'une mise hors tension. Ainsi la mémoire flash stocke les bits de données
dans des cellules de mémoire, mais les données sont conservées en mémoire lorsque
l'alimentation électrique est coupée.

En raison de sa vitesse élevée, de sa durabilité et de sa faible consommation, la mémoire flash


est idéale pour de nombreuses applications - comme les appareils photos numériques, les
téléphones cellulaires, les imprimantes, les assistants personnels (PDA), les ordinateurs
portables, ou les dispositifs de lecture ou d'enregistrement sonore tels que les baladeurs mp3.

ESUM RAJAONARISON Tianandrasana Roméo 59


De plus ce type de mémoire ne possède pas d'éléments mécaniques, ce qui leur confère une
grande résistance aux chocs.

Il existe un grand nombre de formats de cartes mémoires non compatibles entre eux, portés par
presque autant de constructeurs. Parmi ces formats de cartes mémoire les plus courants sont :

 Les cartes Compact Flash


 Les cartes Secure Digital (appelées SD Card)
 Les cartes Memory Stick
 Les cartes SmartMedia
 Les cartes MMC (MultimediaCard)
 Les cartes xD picture card

Tableau comparatif

Compact Memory Secure


MMC SmartMedia xD Picture
Flash Stick Digital
Matsushita /
Sony / Siemens / Olympus /
Constructeurs SanDisk Toshiba / Toshiba
SanDisk SanDisk Fuji
SanDisk
Dimensions
42.8x36.4x3.3 21.5x50x2.8 24x32x1.4 24x32x2.1 37x45x0.76 20x25x1.7
(mm)
Taux de
6 Mbps 15 Mbps 2.5 Mbps 10 Mbps 2 Mbps 5 Mbps
transfert
Nb
50 10 7 7 22 18
connecteurs

Il est à noter l'existence de lecteurs de cartes mémoire multi-formats pouvant être connectés la
plupart du temps sur un port USB.

ESUM RAJAONARISON Tianandrasana Roméo 60


CHAPITRE 5 LES INTERFACES D’ENTREE/SORTIE

A. INTERFACE SERIE

L'ordinateur doit communiquer avec le monde extérieur au moyen d'organes périphériques tels
les terminaux, les imprimantes, les modems, les tables traçantes, etc. A cette fin, diverses
interfaces de communication sont disponibles suivant l'application envisagée. Elles se divisent
en deux catégories : interfaces série et parallèle.

A.1 – Mode de transmission

La communication série est très employée pour communiquer avec les terminaux, les modems,
et certaines imprimantes. On transmet un code (par exemple ASCII) sur un seul fil. C'est-à-dire,
chaque bit est émis l'un après l'autre sur le fil de la liaison série. Ce fil est une ligne qui peut
être exploitée en :

 SIMPLEX : transmission de données dans un seul sens (unidirectionnelle) ;


 HALF-DUPLEX : transmission de données dans les deux sens mais non simultanément ;
 FULL-DUPLEX : Transmission de données simultanément dans les deux sens.
Conceptuellement, une ligne de transmission full-duplex est équivalente à deux lignes
simplex, une dans chaque sens.

TRANSMISSION ASYNCHRONE

Chaque caractère est transmis de façon irrégulière sur la ligne. L'intervalle de temps entre deux
caractères est quelconque, alors le périphérique doit être capable de distinguer les caractères
(un caractère a une longueur de 8 bits) parmi la suite de bits qui lui est envoyée. L'exemple type
de ce mode de transmission est la frappe au clavier. Cette variation de vitesse pose un problème
: comment le récepteur peut-il reconnaître le premier bit d'un caractère ?

Pour y remédier, chaque caractère comprend :

ESUM RAJAONARISON Tianandrasana Roméo 61


 1 bit de départ (START BIT) marquant le début d'un caractère. Normalement, au repos,
la ligne de transmission est à l'état binaire 1 (état bas), de sorte que le start bit est à l'état
binaire 0 (état haut)
 7 bits de code du caractère. Un temporisateur est activé dans le récepteur au moment de
l'arrivée de start bit, lui permettant d'échantillonner les bits du caractère ;
 1 bit de parité servant à vérifier que le mot reçu est correct et sans erreur ;
 1 ou 2 STOP BITS marquant la fin d'un caractère. Les stop bits sont donc des niveaux bas
(état binaire 1) pour permettre de les distinguer du start bit.

Exemples LSB MSB


0 1 0 1 1 0 0 1 0 1 1
start bit de stop bit
bit 7 bits du code parit
é

1. Ce chronogramme montre la transmission de caractère M (ASCII $4D) respectant la logique


négative de l'interface, utilisant le contrôle de parité paire et 7 bits de code et 2 stop bits.
2. Transmission de caractère m (ASCII $6D), logique négative, contrôle de parité impaire, 7
bits de code et un bit stop : 0 1011011 0 1
3. Transmission du caractère A (ASCII $41), logique négative, contrôle de parité impaire, 7
bits de code et 2 bits stop : 0 1 0 0 0 0 0 1 1 11.
Remarques
 L'émetteur et le récepteur doivent obligatoirement convenir, avant toute liaison, de la
vitesse de transmission et de la structure exacte du mot de caractère ;
 Les vitesses de transfert les plus courantes pour la transmission asynchrone sont 110, 300,
600, 1200, 2400, 4800, 9600, 19200 bits/s (bps ou bauds) et plus.

TRANSMISSION SYNCHRONE

Les caractères d'un bloc de données sont transmis sans discontinuité du premier au dernier. La
communication est plus rapide parce qu'on n’a pas besoin de transmettre de start bit ou de stop
bits. Quand il n'y a pas de caractères à transmettre, l'émetteur continue d'envoyer des caractères

ESUM RAJAONARISON Tianandrasana Roméo 62


spéciaux (habituellement SYN, ASCII $16), pour maintenir la synchronisation avec le
récepteur.

A.2 – Circuits d'interface série

LA CARTE RS-232C
L'interface de communication RS-232C est l'un des plus couramment utilisés en micro-
informatique. Ce standard a été défini par la EIA (Electronic Industries Association). Le
cerveau d'une carte RS-232C est constitué par un circuit appelé UART (Universal
Asynchronous Receiver-Transmitter, ex : 8250 d’INTEL) dans le cas de la transmission
asynchrone, et un circuit USART (Universal Synchronous Asynchronous Receiver-
Transmitter, ex. : 8251 d’INTEL) dans le cas des circuits capables de travailler dans les deux
modes. Ces circuits permettent les conversions parallèle-série et série-parallèle des données.

L'interface RS-232C, initialement conçu pour la connexion


d'un terminal à un modem, utilise un connecteur standard
DB-9 ou un connecteur à 25 broches DB-25 illustré ci-
contre. La EIA définit 20 signaux, mais en général on n'en
utilise que 9 entre un terminal et un modem :

MODEM TERMINAL

1 1 GND
2 2(3) TxD Transmitted Data
3 3(2) RxD Received Data
4 4(7) RTS Request To Send
5 5(8) CTS Clear To Send
6 6(6) DSR Data Set Ready
7 7(5) GND
8 8(1) DCD Data Carrier Detect
20 20 ( 4 ) DTR Data Terminal Ready
22 22 ( 9 ) RI

Les numéros entourés des parenthèses correspondent à l’utilisation de connecteur DB-9. Pour
les données, le standard définit un 1 logique comme une tension comprise entre - 3 V et - 13 V,

ESUM RAJAONARISON Tianandrasana Roméo 63


et un 0 logique comme une tension comprise entre + 3 et + 15 V. Tandis que, les signaux de
poignée de main sont actifs quand ils sont positifs.

L'interface RS-232C est limitée à des longueurs de câble de 15 m et à des vitesses de transfert
inférieures à 20 Kbits/s entre le modem et le terminal ou ordinateur et l'imprimante.

MODEM (MOdulateur - DEModulateur)


Lorsque l'ordinateur et le terminal sont éloignés l'un de l'autre, il est fréquent qu'on utilise un
réseau de communication, comme la ligne téléphonique, pour les relier. Comme le réseau
téléphonique est incapable de transmettre les signaux numériques de l'interface RS-232C, il est
nécessaire d'insérer un équipement d'adaptation, un MODEM entre le terminal et le réseau et,
à l'autre extrémité, entre le réseau et l'ordinateur.
Le modem est un appareil qui sert à transmettre des signaux série par ligne téléphonique ou par
câble sur de longues distances (plus de 15 m). Il permet de convertir les signaux numériques
d’un ordinateur en signaux acoustiques qui puissent être transmis par la ligne téléphonique. Les
lignes téléphoniques sont en général bruyantes, et il ne serait pas possible de transmettre le
signal série tel quel. On utilise donc un modem qui module le signal à la transmission et le
démodule à la réception pour redonner un signal binaire.

La modulation consiste à transmettre une onde porteuse (carrier) dont une propriété est modifiée
par le signal à transmettre. Une telle propriété peut être l'amplitude, la fréquence ou la phase de
l'onde (signal sinusoïdal). Pour la transmission des données numériques, on utilise souvent une
version de la modulation de fréquence appelée modulation par glissement de fréquence ou FSK
(Frequency Shift Keying).

Exemple :

A.3 – Protocole de communication série

D’une part, la transmission de données ne peut cependant fonctionner qu’à condition que les
différents paramètres, variables de ce protocole soient connus aussi bien de l’émetteur que du
récepteur. Parmi ces paramètres figure la vitesse de transmission, exprimée en bauds ou bits
par seconde.

ESUM RAJAONARISON Tianandrasana Roméo 64


D’autre part, la communication des données exige non seulement un certain matériel mais aussi
un logiciel approprié de gestion de la carte RS-232C. Ce logiciel est fourni par le BIOS sous
forme de quatre fonctions appelées à travers l'interruption 14H :
 Fonction 0 : Réglage du protocole indiquant la vitesse de transmission, la longueur des
données, le nombre de stop bit et la nature du test de parit.
 Fonction 1 : Le caractère à transmettre
 Fonction 2 : Réception du caractère
 Fonction 3 : Etat de la ligne et du modem

Le protocole XON / XOFF


Supposons qu'un ordinateur transmet des caractères à une imprimante. Si la vitesse de transfert
est plus grande que la vitesse d'impression de l'imprimante, le texte risque d'être incomplet.
Alors, l’imprimante a une mémoire tampon ou buffer qui lui permet d'accumuler un certain
nombre de caractères en attendant qu'ils soient imprimés.

Quand le buffer est plein, l'imprimante envoie XOFF (DC3 ou ASCII 13H) à l’ordinateur.
L'ordinateur cesse alors de transmettre jusqu'à ce qu'il reçoive un XON (DC1 ou ASCII 11H),
que l'imprimante transmet quand son buffer est presque vide.

Le protocole ETX - ACK


Dans ce protocole, le buffer d'émission doit être plus petit que le buffer de réception. L'émetteur
envoie un bloc entier de données, avec un caractère spécial marquant la fin du bloc (ETX - End
of Text ou ASCII 03H). L'émetteur arrête ensuite la transmission de caractères.

De son côté, le récepteur exploite les données à sa propre vitesse. Quand il arrive au caractère
ETX, il retourne à l'émetteur le caractère ACK (Acknowledge ou ASCII 06H) pour lui indiquer
qu'il est prêt à accepter un autre bloc de données.

B. Interface parallèle

L’interface parallèle est plus rapide que l’interface série, puisqu’avec 8 fils on envoie un octet
simultanément. De nombreux périphériques utilisent des interfaces parallèles utilisant le même
connecteur DB-25 que l’interface série RS-232C, mais avec des brochages différents.

ESUM RAJAONARISON Tianandrasana Roméo 65


Standard CENTRONICS

Ce standard est souvent utilisé pour les imprimantes. Il définit la répartition des signaux sur les
différentes broches et comment les broches doivent être reliées. Il porte à la fois sur les
connecteurs d’interface et les câbles de liaison : 36 broches du côté de l’imprimante et 25
broches (DB-25) du côté de l’ordinateur. Cette liaison se résume dans le tableau suivant :

Les communications parallèles de ce type sont souvent gérées au moyen de circuits d’interface
appelés PIA (Peripheral Interface Adapter), par exemple le 8255 d’INTEL.

ESUM RAJAONARISON Tianandrasana Roméo 66


C. INTERFACES DES DISQUES

Le rôle de l’interface de disque (contrôleur de disque) est de gérer les échanges de données et
leur encodage entre le disque et le système. Les interfaces les plus utilisées sont les EIDE et
SCSI.

C.1 – Les interfaces ATA/IDE


(Advanced Technology Attachment/ Intergrated Drive Electronics)

Le standard ATA est une interface permettant la connexion de périphériques de stockage sur
les ordinateurs de type PC. Il a été mis au point le 12 mai 1994 par l'ANSI. Il est plus connu
sous le terme commercial IDE.

L’interface IDE ne permettait de supporter que 2 disques durs. La connexion est réalisée par un
câble à 40 broches. Ce contrôleur permet de gérer des disques de 20 à 200 Mo. Le débit initial
de 4 Mo/s est dépassé par les évolutions du bus.

L’évolution du bus a donné le bus EIDE (Enhanced IDE) ou Fast IDE qui permet des débits de
16,5 Mo/s. Le standard ATA est originalement prévu pour connecter des disques durs, toutefois
une extension nommée ATAPI (ATA Packet Interface) a été développée afin de pouvoir
interfacer d'autres périphériques de stockage (lecteurs de CD-ROM, lecteurs de DVD-ROM,
etc) sur une interface ATA.
L’interface EIDE est actuellement le bus le plus généralisé sur les PC standards. Les cartes
mères Pentium disposent en standard de deux contrôleurs EIDE. Son principal défaut est de ne
pas pouvoir contrôler des disques externes. La limite au niveau capacité de disque impose
également les constructeurs à utiliser d’autres interfaces.

ESUM RAJAONARISON Tianandrasana Roméo 67


Tableau récapitulatif de l’évolution du standard ATA :

Mode Débit
Nom Synonyme Commentaires
(PIO/DMA) (Mo/s)
ATA-1 IDE PIO mode 0 3,3
ANSI X3.221-1994 PIO mode 1 5,2
PIO mode 2 8,3
DMA mode 0 8,3
ATA-2 EIDE, PIO mode 3 11,1 LBA 28 bits
ANSI X3.279-1996 Fast ATA, PIO mode 4 16,7
Fast ATA-2 DMA mode 1 13,3
DMA mode 2 16,7
ATA-3 PIO mode 3 11,1 SMART, LBA 28 bits
ANSI X3.298-1997 PIO mode 4 16,7
DMA mode 1 13,3
DMA mode 2 16,7
ATA-4/ATAPI-4 UATA/33, UDMA mode 0 16,7 Ultra DMA 33 et support des
ANSI NCITS 317-1998 UDMA 33 UDMA mode 1 25,0 CD-ROM (ATAPI)

UDMA mode 2 33,3


ATA-5/ATAPI-5 UATA/66, UDMA mode 3 44,4 Ultra DMA 66, utilisation d'un
ANSI NCITS 340-2000 UDMA 66 UDMA mode 4 66,7 câble de 80 broches

ATA-6/ATAPI-6 UATA/100, UDMA mode 5 100 Ultra DMA 100, LBA48 et


ANSI NCITS 347-2001 UDMA 100 norme AAC (Automatic
Acoustic Management)
ATA-7/ATAPI-7 UATA/133, UDMA mode 6 133 Ultra DMA 133
ANSI NCITS 361-2002 UDMA 133

C.2 – Les interfaces SCSI (Small Computer System Interface)

Le contrôleur de disque dur placé sur une carte d’interface SCSI peut gérer jusqu’à 7
périphériques (15 pour Wide SCSI) dont des lecteurs de CD-Rom, des imprimantes, des
scanners, etc.. Il suffit de chaîner les périphériques, puisque les connexions se font en parallèle.

ESUM RAJAONARISON Tianandrasana Roméo 68


Sa vitesse de transfert est de l’ordre de 4 à 40 Mo/s selon la largeur de bus et le standard employé
(SCSI-1, SCSI-2, SCSI-3, Fast Wide SCSI, Ultra SCSI).

DISQUE DISQUE STREAMER


DUR OPTIQUE Bouchon de
terminaison
UNITE
CENTRALE
SCANNER IMPRIMANTE


Le standard SCSI définit bien plus qu’un disque et un contrôleur de disque. C’est aussi un bus
qui peut connecter 7 jusqu’à 31 équipements. Un équipement SCSI dispose d’un numéro
d’identification (ID) de 1 à 7 (à 15 pour le Wide SCSI). Il dispose de deux connecteurs, l’un de
type « entrée », l’autre de type « sortie ». Les équipements sont raccordés en série sur le bus
SCSI (figure ci-dessus).
Le dernier équipement sur cette chaîne doit être muni d’un bouchon spécial, qui a une
impédance caractéristique de terminaison de ligne, pour éviter que des interférences (réflexion
des signaux) apparaissent sur le bus.

Le contrôleur SCSI est intelligent (bus master) pouvant fonctionner en autonome (transfert
entre deux unités SCSI sans faire intervenir la mémoire centrale). Il se charge également du
partage du bus en fonction des priorités.

Le tableau suivant récapitule les caractéristiques des différentes normes SCSI :

Largeur
Norme Vitesse du bus Bande passante Connectique
du bus
50 broches
SCSI-1
8 bits 4.77 MHz 5 Mo/sec (bus asymétrique ou
(Fast-5 SCSI)
différentiel)
50 broches
SCSI-2 - Fast-10
8 bits 10 MHz 10 Mo/sec (bus asymétrique ou
SCSI
différentiel)

ESUM RAJAONARISON Tianandrasana Roméo 69


50 broches
SCSI-2 - Wide 16 bits 10 MHz 20 Mo/sec (bus asymétrique ou
différentiel)
68 broches
SCSI-2 - Fast Wide
32 bits 10 MHz 40 Mo/sec (bus asymétrique ou
32 bits
différentiel)
SCSI-2 - Ultra 50 broches
SCSI-2 8 bits 20 MHz 20 Mo/sec (bus asymétrique ou
(Fast-20 SCSI) différentiel)
SCSI-2 - Ultra
16 bits 20 MHz 40 Mo/sec
Wide SCSI-2
SCSI-3 - Ultra-2
SCSI 8 bits 40 MHz 40 Mo/sec
(Fast-40 SCSI)
SCSI-3 - Ultra-2 68 broches
16 bits 40 MHz 80 Mo/sec
Wide SCSI (bus différentiel)
SCSI-3 - Ultra-160
68 broches
(Ultra-3 SCSI ou 16 bits 80 MHz 160 Mo/sec
(bus différentiel)
Fast-80 SCSI)
SCSI-3 - Ultra-320
68 broches
(Ultra-4 SCSI ou 16 bits 80 MHz DDR 320 Mo/sec
(bus différentiel)
Fast-160 SCSI)
SCSI-3 - Ultra-640 68 broches
16 bits 80 MHz QDR 640 Mo/sec
(Ultra-5 SCSI) (bus différentiel)

L’interface SCSI reste la solution haut de gamme pour les périphériques et les applications
nécessitant un débit élevé.

C.3 – Les interfaces PCMCIA


(Personal Computer Memory Card International Association)

ESUM RAJAONARISON Tianandrasana Roméo 70


PCMCIA, mis au point en 1989, est au départ une norme de bus. Ce sont des cartes d’extension
de qui peuvent relier des disques durs externes (ou d’autres périphériques comme des cartes
réseau) à des ordinateurs (notamment portables).

Les périphériques PCMCIA sont au format carte de crédit (54 mm par 85 mm) et possèdent un
connecteur de 68 broches.

Il existe trois types de facteur de forme (form factor) correspondant à trois épaisseurs standard
:

Type Largeur (mm) Longueur (mm) épaisseur (mm)


PC Card Type I 54 85 3.3
PC Card Type II 54 85 5.0
PC Card Type III 54 85 10.5

 Les cartes de type I sont généralement utilisées pour des cartes d'extension de mémoire.
 Les cartes de type II servent habituellement pour des périphériques de communication
(modem, carte réseau, carte réseau sans fil) et de petits disques durs.
 les cartes de type III, beaucoup plus épaisses, sont en général réservées à des
périphériques embarquant des éléments mécaniques (disques dur de grosse capacité).

A partir de 1995 la norme CardBus (parfois appelée PC Card 32-bit) est apparue, permettant
des transferts de données en 32 bits, cadencés à une fréquence de 33 MHz avec une tension de
3V (contre 5.5 pour le PCMCIA).

C.4 – Le bus serial ATA (SATA)

Le standard Serial ATA (S-ATA ou SATA), apparu en février 2003, est un bus standard
permettant la connexion de périphériques de stockage haut débit sur les ordinateurs de type PC.

Le mode de transmission en parallèle n'est pas prévu pour supporter des fréquences élevées en
raison des problèmes liés aux interférences électromagnétiques entre les différents fils. Le
standard Serial ATA est basé sur une communication en série.

ESUM RAJAONARISON Tianandrasana Roméo 71


Une voie de données est utilisée pour transmettre les données et une autre voie sert à la
transmission d'accusés de réception. Sur chacune de ces voies les données sont transmises en
utilisant le mode de transmission LVDS (Low Voltage Differential Signaling) consistant à
transférer un signal sur un fil et son opposé sur un second fil afin de permettre au récepteur de
reconstituer le signal par différence.

Les données de contrôle sont transmises sur la même voie que les données en utilisant une
séquence de bits particulière pour les distinguer. Ainsi la communication demande deux voies
de transmission, chacune effectuée via deux fils, soit un total de quatre fils pour la transmission.

Le Serial ATA permet d'obtenir des débits de l'ordre de 187.5 Mo/s (1,5 Gb/s), or chaque octet
est transmis avec un start bit et un stop bit, soit un débit utile théorique de 150 Mo/s (1,2 Gb/s).
Le standard Serial ATA II devrait permettre d'avoisiner les 375 Mo/s (3 Gb/s), soit 300 Mo/s
utiles théoriques, puis à terme 750 Mo/s (6 Gb/s), soit 600 Mo/s utiles théoriques.

Les câbles Serial ATA peuvent mesurer jusqu'à 1 mètre de long (contre 45 cm pour les nappes
IDE). De plus, le faible nombre de fils dans une gaine ronde permet plus de souplesse et une
meilleure circulation de l'air dans le boîtier qu'avec des nappes IDE (même si des nappes IDE
rondes existent).

Contrairement à la norme ATA, les périphériques Serial ATA sont seuls sur chaque câble et il
n'est plus nécessaire de définir des "périphériques maîtres" et des "périphériques esclaves".
D'autre part, la norme Serial ATA permet le raccordement à chaud des périphériques (Hot Plug).

D. LES BUS D’EXTENSION

D.1 - Introduction

Un bus est une structure d’interconnexion raccordant plusieurs circuits ou unités d’un
ordinateur. C’est un ensemble de fils ou de pistes de cuivre gravées sur une plaque de circuit
imprimé (carte mère). Des connecteurs régulièrement espacés sont raccordés sur le fils du bus
pour y brancher mécaniquement diverses cartes mémoires ou d’E/S. Chaque carte possède des
détrompeurs permettant une insertion sans erreur dans une connexion.

Un bus peut aussi être associé à une fonction ou à un ensemble de circuits spécifiques. Les
concepteurs de microprocesseurs, pour les bus externes, doivent penser à l’intégration de leur

ESUM RAJAONARISON Tianandrasana Roméo 72


produit dans des systèmes existants. De ce fait, ils sont contraints de se plier aux règles précises
qui définissent le fonctionnement du bus choisi.

Ces règles spécifient notamment le protocole fonctionnel du bus, mais aussi les caractéristiques
électriques des signaux, les caractéristiques mécaniques des connecteurs, etc. Un nombre
important de bus est ainsi défini et largement utilisé en informatique. Parmi les plus connus, on
peut citer :

 Le bus ISA (Industry Standard Architecture), bus standard du PC AT ;


 Le bus EISA (Extended ISA) basé sur le processeur i80386 ;
 Le bus MCA (MicroChanel Architecture), un bus d’IBM de mêmes caractéristiques que
celles de EISA ;
 Le bus VLB (VESA Local Bus) ;
 Le bus PCI (Peripheral Component Interconnect), lancé par INTEL ;
 Le bus PCMCIA (Personnal Computer Memory Card International Association) ;
 Le bus USB (Universal Serial Bus) ; Etc

D.2 - Exemples de bus d’extension

D.2.1 Le bus I S A

Le micro-ordinateur PC AT est conçu de telle façon qu’il puisse fonctionner aussi bien avec
des cartes PC de base qu’avec des cartes spécifiques PC AT. Le bus ISA, adapté à ce concept,
se compose d’ :
 une section d’origine XT, sur 8 bits de données et 20 bits d’adresse ;
 une extension 16 bits avec un complément qui permet au bus de disposer de 16 lignes de
données et 24 lignes d’adresse.

La première section reprend les signaux du bus IBM PC XT qui est devenu un standard du
marché des micro-ordinateurs d’avoir accès à un très grand nombre de circuits et cartes
additionnelles quelle que soit leur origine de fabrication. Cette section comprend 62 signaux
définis dans le tableau suivant :

ESUM RAJAONARISON Tianandrasana Roméo 73


SIGNAL NB SIGNIFICATION
OSC , CLK 2 Signaux d’horloge
SDO-SD7 8 Lignes de données
SAO-SA19 20 Lignes d’adresses
BALE , AEN 2 Activation des signaux d’adresses
SMEMW, SMEMR 2 Ecriture et lecture mémoire
IOW, IOR 2 Ecriture et lecture E/S
IO CH CHK 1 Contrôle d’erreur de parité
IO CH RDY 1 Insertion de cycles d’attente
IRQ2-IRQ7 6 Demandes d’interruption
DRQ1-DRQ3 3 Demande de DMA
DACK-DACK3 3 Acquittement d’une demande DMA
T/C 1 Compteur de transfert DMA
RAFRAÏ CHISSEMENT 1 Rafraîchissement des mémoires dynamiques
Alimentation 5 2 x ( +5V ), - 5v , + 12 V , - 12 V
GND 3 Masse
Réservé 1
La section complémentaire comprend 36 lignes ou signaux définis dans le tableau suivant :
SD8-SD15 8 Lignes de données
LA17-LA23 7 Lignes d’adresses
SBHE 1 Autorisation de l’octet fort
MEMW , MEMR 2 Ecriture et lecture mémoire
IRQ10 –IRQ14 5 Demande d’interruption
DRQ0 , DRQ5-DRQ7 4 Demande de DMA
DACK0 , DACK5-DACK7 3 Acquittement d’une demande DMA
MEM CS16 1 Gestion de transfert en mémoire sur 16 bits
IO CS 16 1 Gestion de transfert en E/S sur 16 bits
MASTER 1 Arbitrage de bus
Alimentation 1 +5 V
GND 1 Masse

On a remarqué que le bus ISA peut supporter deux contrôleurs DMA (ex. : 8253) et deux
contrôleurs d’interruption (ex : 8259). Un successeur du bus ISA possède 32 lignes de données

ESUM RAJAONARISON Tianandrasana Roméo 74


et 32 lignes d’adresse. Il est appelé, en effet EISA (Extended ISA). Ce bus supporte, en plus un
temporisateur programmable.

D.2.2 Le bus MCA est considéré comme bus intelligent, car capable d’arbitrer certains conflits.
Il fonctionne sur 32 bits et est utilisé pour les PS/2. Par rapport aux anciennes cartes ISA, il est
configurable par logiciel. Il n’est pas compatible avec le bus ISA.

D.2.3 Le bus VLB présente dans sa solution des connecteurs d’extension directement
raccordés au microprocesseur sans passer par un contrôleur ISA. Celui ci peut fonctionner dans
certains cas à la vitesse même du processeur. Cette norme a été définie par l’organisme VESA,
qui est un groupe de sociétés spécialisées dans la conception de cartes graphiques. Le bus VLB
supporte 4 périphériques.

D.2.4 Le bus PCI a été développé par INTEL. Il offre les avantages principaux suivants :

 C’est un bus de haute performance à 32 bits avec un connecteur de 124 broches ;


 Sa bande passante est de 132 Mo/s à 33Mhz ;
 C’est un bus ouvert. Une extension devrait le porter à 64 bits (connecteur de 188 broches),
avec une bande passante de 264 Mo/s à la même fréquence 33Mhz ;
 PCI est indépendant du processeur. En effet, il dispose de sa propre mémoire tampon
(buffer) ;
 Il dispose également d’un contrôleur de bus PCI qui est installé entre le CPU et le bus PCI.
Cela permet, d’une part, d’instaurer le bus PCI dans des systèmes qui ne reposent pas sur
un processeur INTEL. Par exemple, le Power Macintosh de Apple muni d’un processeur
Power PC sont équipés du bus PCI. D’autre part, le bus PCI ne dépend pas de la fréquence
du CPU car il est séparé du CPU par le biais du contrôleur spécial de bus.

Les ordinateurs à base de Pentium sont fournis presque avec un bus PCI. De même le bus PCI
est largement répandu sur les cartes mères 486. Bien que les cartes ISA ne soient pas
exploitables dans un slot PCI, le recours aux cartes ISA s’avère indispensable dans la plupart
des systèmes équipés d’un bus PCI. Il n’est pas rare qu’une carte équipée d’un bus PCI
contienne ce qu’on appelle PCI-To-ISA Bridge. Son rôle consiste à transmettre au bus ISA les
signaux provenant du PCI.

ESUM RAJAONARISON Tianandrasana Roméo 75


PCI offre l’avantage d’être auto configurable, les cartes connectées étant automatiquement
détectées et exploitées aux mieux. C’est la Plug and Play qui évite donc d’avoir à déplacer des
cavaliers sur la carte ou encore d’avoir à configurer les numéros d’interruptions IRQ ou les
canaux DMA.

Le tableau suivant récapitule les caractéristiques des différentes versions du bus PCI :

Révision Date de sortie Fréquence Voltage Largeur Bande passante


32 bits 133 Mo/s
PCI 1.0 1992 33 MHz
64 bits 266 Mo/s
32 bits 132 Mo/s
PCI 2.0 1993 33 MHz 3.3 V / 5 V
64 bits 264 Mo/s
32 bits 132 Mo/s
33 MHz 3.3 V / 5 V
64 bits 264 Mo/s
PCI 2.1 1995
32 bits 264 Mo/s
66 MHz 3.3 V
64 bits 528 Mo/s
32 bits 132 Mo/s
33 MHz 3.3 V / 5 V
64 bits 264 Mo/s
PCI 2.2 1998
32 bits 264 Mo/s
66 MHz 3.3 V
64 bits 528 Mo/s
32 bits 132 Mo/s
33 MHz 3.3 V / 5 V
64 bits 264 Mo/s
PCI 2.3 2002
32 bits 264 Mo/s
66 MHz 3.3 V
64 bits 528 Mo/s
32 bits 264 Mo/s
66 MHz 3.3 V
64 bits 528 Mo/s
32 bits 400 Mo/s
PCI-X 1.0 1999 100 MHz 3.3 V
64 bits 800 Mo/s
32 bits 532 Mo/s
133 MHz 3.3 V
64 bits 1064 Mo/s
PCI-X 2.0 2002 66 MHz 3.3 V 32 bits 264 Mo/s

ESUM RAJAONARISON Tianandrasana Roméo 76


64 bits 528 Mo/s
32 bits 400 Mo/s
100 MHz 3.3 V
64 bits 800 Mo/s
32 bits 532 Mo/s
133 MHz 3.3 V
64 bits 1064 Mo/s
32 bits 1064 Mo/s
266 MHz 3.3 V/1.5 V
64 bits 2128 Mo/s
32 bits 2128 Mo/s
533 MHz 3.3 V/1.5 V
64 bits 4256 Mo/s

Exemples d’architecture appliquant les bus d’extension

MICROPROCESSEUR
Interface
vidéo
Bus local VESA ou PCI
Mémoire

Interface de bus Interface


disque
Bus standard ISA, EISA, MCA

E/S Autres

Les bus standard ISA, EISA et MCA ont tendance à se saturer avec l’accès disque et l’affichage
graphique.

Cette tendance consiste à faire appel à un bus local. En fait, les vitesses de transfert sont
déterminantes pour le choix d’un bus.

La figure ci-contre représente un exemple d’architecture d’une unité centrale bâtie autour d’un
jeu de bus local, VESA ou PCI.

ESUM RAJAONARISON Tianandrasana Roméo 77


Cette architecture montre que le bus PCI peut être combiné avec un autre type de bus comme
ISA :

D.2.5 Le bus AGP (Accelerated Graphic Port)

Le bus AGP est apparu en Mai 1997, sur des chipsets à base de «Slot One», puis est apparu par
la suite sur des supports à base de Super 7 afin de permettre de gérer les flux de données
graphiques devenant trop importants pour le bus PCI. Ainsi le bus AGP est directement relié
au bus processeur (FSB, Front Side Bus) et bénéficie de la même fréquence, donc d'une bande
passante élevée.

L'interface AGP a été mise au point spécifiquement pour la connexion de la carte graphique en
lui ouvrant un canal direct d'accès à la mémoire (DMA), sans passer par le contrôleur d'entrée-
sortie. Les cartes utilisant ce bus graphique peuvent accéder directement aux données
graphiques stockées dans la mémoire centrale.

La version 1.0 du bus AGP, travaillant à une tension de 3.3 V, propose un mode 1X permettant
d'envoyer 4 octets par cycle ainsi qu'un mode 2x permettant le transfert de 8 octets par cycle.

En 1998 la version 2.0 du bus AGP a apporté un mode AGP 4X permettant l'envoi de 16 octets
par cycle. La version 2.0 du bus AGP étant alimentée à une tension de 1.5 V, des connecteurs
dits "universels" (AGP 2.0 universal) sont apparus, supportant les deux tensions.

La version 3.0 du bus AGP, apparue en 2002, a permis de doubler le débit de l'AGP 2.0 en
proposant un mode AGP 8x.

Les débits des différentes normes AGP sont les suivants :

 AGP 1X : 66,66 MHz x 1(coef.) x 32 bits /8 = 266.67 Mo/s


 AGP 2X : 66,66 MHz x 2(coef.) x 32 bits /8 = 533.33 Mo/s
 AGP 4X : 66,66 MHz x 4(coef.) x 32 bits /8 = 1,06 Go/s
 AGP 8X : 66,66 MHz x 8(coef.) x 32 bits /8 = 2,11 Go/s

ESUM RAJAONARISON Tianandrasana Roméo 78


Il est à noter que les différentes normes AGP conservent une compatibilité ascendante, c'est-à-
dire qu'un emplacement AGP 8X pourra accueillir des cartes AGP 4X ou AGP 2X.

Le tableau suivant récapitule les différentes versions et modes AGP :

AGP Tension Mode


AGP 1.0 3.3 V 1x, 2x
AGP 2.0 1.5 V 1x, 2x, 4x
AGP 2.0 universal 1.5 V, 3.3 V 1x, 2x, 4x
AGP 3.0 1.5 V 4x, 8x

D.2.5 Le bus PCI Express

Le bus PCI Express (3GIO pour «Third Generation I/O»), a été mis au point en juillet 2002.
Contrairement au bus PCI, qui fonctionne en interface parallèle, le bus PCI Express fonctionne
en interface série, ce qui lui permet d'obtenir une bande passante beaucoup plus élevée que ce
dernier.

Le bus PCI Express se décline en plusieurs versions, 1X, 2X, 4X, 8X, 12X, 16X et 32X,
permettant d'obtenir des débits compris entre 250 Mo/s et 8 Go/s, soit près de 4 fois le débit
maximal des ports AGP 8X. Ainsi, avec un coût de fabrication similaire à celui du port AGP,
le bus PCI Express est amené à le remplacer progressivement.

Les connecteurs PCI Express sont incompatibles avec les anciens connecteurs PCI et possèdent
des tailles variables et une plus faible consommation électrique. Une des caractéristiques
intéressantes du bus PCI Express est la possibilité de brancher ou débrancher des composants
à chaud, c'est-à-dire sans éteindre ou redémarrer la machine.

Les connecteurs PCI Express sont reconnaissables grâce à leur petite taille et leur couleur
anthracite :

 Le connecteur PCI Express 1X possède 36 connecteurs et est destiné à un usage


d'entrées-sorties à haut débit ;

ESUM RAJAONARISON Tianandrasana Roméo 79


 Le connecteur PCI Express 4X possède 64 connecteurs et est destiné à un usage sur
serveurs ;
 Le connecteur PCI Express 8X possède 98 connecteurs et est destiné à un usage sur
serveurs ;
 Le connecteur PCI Express 16X possède 164 connecteurs, et mesure 89 mm de long et
a vocation à servir de port graphique.
Le standard PCI Express a également vocation à supplanter la technologie PC Card sous la
forme de connecteurs « PCI Express Mini Card ». De plus, contrairement aux connecteurs PCI
dont l'usage était limité à la connectique interne, le standard PCI Express permet de connecter
des périphériques externes à l'aide de câbles.

D.2.6 Le bus USB (Universal Serial Bus)

Le bus USB est basé sur une architecture de type série. Il s'agit toutefois d'une interface entrée-
sortie beaucoup plus rapide que les ports série standards. L'architecture qui a été retenue pour
ce type de port est en série pour deux raisons principales :
 l'architecture série permet d'utiliser une cadence d'horloge beaucoup plus élevée qu'une
interface parallèle ;
 les câbles série coûtent beaucoup moins cher que les câbles parallèles.

Ainsi, dès 1995, le standard USB a été élaboré pour la connexion d’une grande variété de
périphériques. Le standard USB 1.0 propose deux modes de communication :
 12 Mb/s en mode haute vitesse,
 1.5 Mb/s à basse vitesse.

La norme USB 2.0 permet d'obtenir des débits pouvant atteindre 480 Mbit/s.

La compatibilité entre périphériques USB 1.0 et 2.0 est assurée. Toutefois l'utilisation d'un
périphérique USB 2.0 sur un port USB à bas débit limitera le débit à 12 Mbit/s maximum. De
plus, le système d'exploitation est susceptible d'afficher un message expliquant que le débit sera
bridé.

Il existe deux types de connecteurs USB :

ESUM RAJAONARISON Tianandrasana Roméo 80


 Les connecteurs dits de type A, dont la forme est rectangulaire et servant généralement
pour des périphériques peu gourmands en bande passante (clavier, souris, webcam, etc.)
;
 Les connecteurs dits de type B, dont la forme est carrée et utilisés principalement pour
des périphériques à haut débit (disques durs externes, etc.).

1. Alimentation +5V (VBUS) 100mA maximum


2. Données (D-)
3. Données (D+)
4. Masse (GND)

Fonctionnement du bus USB

L’architecture USB a pour caractéristique de fournir l’alimentation électrique aux périphériques


qu’elle relie, dans la limite de 15 W maximum par périphérique. Elle utilise pour cela un câble
composé de quatre fils (la masse GND, l’alimentation VBUS et deux fils de données).

La norme USB permet le chaînage des périphériques, en utilisant une topologie en bus ou en
étoile. Les périphériques peuvent alors être soit connectés les uns à la suite des autres, soit
ramifiés.
La ramification se fait à l’aide de boîtiers appelés « hubs » (concentrateurs), comportant une
seule entrée et plusieurs sorties. Certains sont actifs (fournissant de l’énergie électrique),
d’autres passifs (alimentés par l'ordinateur).

La communication entre l’hôte (l’ordinateur) et les périphériques se fait selon un protocole basé
sur le principe de l’anneau à jeton (token ring). Cela signifie que la bande passante est partagée
entre tous les périphériques connectés.

Puisque l’adresse est codée sur 7 bits, 128 périphériques (2^7) peuvent être connectés
simultanément à un port de ce type. Il convient en réalité de ramener ce chiffre à 127 car
l’adresse 0 est une adresse réservée. A raison d'une longueur de câble maximale entre deux
périphériques de 5 mètres et d'un nombre maximal de 5 hubs (alimentés), il est possible de créer
une chaîne longue de 25 mètres.

Les ports USB supportent le Hot plug and play. Ainsi, les périphériques peuvent être branchés
sans éteindre l’ordinateur (branchement à chaud).

ESUM RAJAONARISON Tianandrasana Roméo 81


D.2.7 Le bus Firewire (IEEE 1394)

Le bus IEEE 1394 a été mis au point à la fin de l’année 1995 afin de fournir un système
d’interconnexion permettant de faire circuler des données à haute vitesse en temps réel. La
société Apple lui a donné le nom commercial « Firewire », qui est devenu le plus usité. Sony
lui a également donné le nom commercial de i.Link, tandis que Texas Instrument lui a préféré
le nom de Lynx.

Il s'agit ainsi d'un port, équipant certains ordinateurs, permettant de connecter des périphériques
(notamment des caméras numériques) à très haut débit. Il existe ainsi des cartes d'extension
(généralement au format PCI ou PC Card / PCMCIA ) permettant de doter un ordinateur de
connecteurs FireWire.

Il existe différentes normes FireWire permettant d'obtenir les débits suivants :

Norme Débit théorique


IEEE 1394a
IEEE 1394a-S100 100 Mbit/s
IEEE 1394a-S200 200 Mbit/s
IEEE 1394a-S400 400 Mbit/s
IEEE 1394b Fire (Wire 2 ou FireWire Gigabit)
IEEE 1394b-S800 800 Mbit/s
IEEE 1394b-S1200 1200 Mbit/s
IEEE 1394b-S1600 1600 Mbit/s
IEEE 1394b-S3200 3200 Mbit/s

Il existe différents connecteurs FireWire pour chacune des normes IEEE 1394 :

Les connecteurs Les connecteurs Les connecteurs 1394b Les connecteurs 1394b
1394a-1995 1394a-2000 appelés Bêta Bilingual
mini-DV

ESUM RAJAONARISON Tianandrasana Roméo 82


La norme IEEE 1394b définit deux types de connecteurs dessinés de façon à ce que les prises
1394b-Beta puissent s'enficher dans les connecteurs Beta et Bilingual mais que les prises 1394b
Bilingual ne puissent s'enficher que dans les connecteurs Bilingual.

Le bus IEEE 1394 suit à peu près la même structure que le bus USB. Mais, il utilise un câble
composé de six fils (deux paires pour les données et pour l’horloge, et deux fils pour
l’alimentation électrique) lui permettant d’obtenir un débit de 800 Mb/s.

Ainsi, les deux fils dédiés à une horloge montrent la différence majeure qui existe entre le bus
USB et le bus IEEE 1394, c'est-à-dire la possibilité de fonctionner selon deux modes de transfert
:

 le mode de transfert asynchrone : Le mode de transfert asynchrone est basé sur une
transmission de paquets à intervalles de temps variables. Cela signifie que l’hôte envoie
un paquet de données et attend de recevoir un accusé de réception du périphérique. Si
l’hôte reçoit un accusé de réception, il envoie le paquet de données suivant, sinon le
paquet est à nouveau réexpédié au bout d’un temps d’attente.
 le mode isochrone : Le mode de transfert isochrone permet l’envoi de paquets de
données de taille fixe à intervalle de temps régulier. Un noeud, appelé Cycle Master est
chargé d'envoyer un paquet de synchronisation (appelé Cycle Start packet) toutes les
125 microsecondes. De cette façon aucun accusé de réception n’est nécessaire, ce qui
permet de garantir un débit fixe. De plus, étant donné qu’aucun accusé de réception
n’est nécessaire, l’adressage des périphériques est simplifié et la bande passante
économisée permet de gagner en vitesse de transfert.

Autre innovation du standard IEEE 1394 : la possibilité d’utiliser des ponts, systèmes
permettant de relier plusieurs bus entre eux. En effet, l’adressage des périphériques se fait grâce
à un identificateur de nœud (périphérique) codé sur 16 bits.

Cet identificateur est scindé en deux champs : un champ de 10 bits permettant de désigner le
pont et un champ de 6 bits spécifiant le nœud. Il est donc possible de relier 1023 ponts (soit 210

ESUM RAJAONARISON Tianandrasana Roméo 83


-1), sur chacun desquels il peut y avoir 63 nœuds (soit 26 -1), il est ainsi possible d’adresser
65535 périphériques.

Le standard IEEE 1394 permet aussi le Hot plug, mais alors que le bus USB est destiné à
l’utilisation de périphériques peu gourmands en ressources (souris ou clavier par exemple), la
bande passante de l’IEEE 1394 la destine à des utilisations multimédias sans précédents
(acquisition vidéo, etc.)

En conclusion, la plupart des cartes mères proposent les connecteurs d'entrée-sortie suivants :

 Port série, permettant de connecter de vieux périphériques ;


 Port parallèle, permettant notamment de connecter de vieilles imprimantes ;
 Ports USB (1.1, bas débit, ou 2.0, haut débit), permettant de connecter des périphériques
plus récents ;
 Connecteur RJ45 (appelés LAN ou port ethernet) permettant de connecter l'ordinateur à
un réseau. Il correspond à une carte réseau intégrée à la carte mère ;
 Connecteur VGA (appelé SUB-D15), permettant de connecter un écran. Ce connecteur
correspond à la carte graphique intégrée ;
 Prises audio (entrée Line-In, sortie Line-Out et microphone), permettant de connecter
des enceintes acoustiques ou une chaîne hi-fi, ainsi qu'un microphone. Ce connecteur
correspond à la carte son intégrée.

ESUM RAJAONARISON Tianandrasana Roméo 84


CHAPITRE 6 LES INTERRUPTIONS

A. DEFINITIONS ET GENERALITES

Comment prendre en compte un événement, comment provoquer une rupture de séquence


d'exécution d'un processus dans un délai très court ? Une solution : les interruptions.

A.1 Définitions

Déf: Une interruption est un signal déclenché par un événement interne à la machine ou
externe, provoquant l'arrêt d'un programme en cours d'exécution à la fin de l'opération
courante, au profit d'un programme plus prioritaire appelé programme d'interruption.
Ensuite, le programme interrompu reprend son exécution à l'endroit où il avait été
interrompu.

Le système d'interruption est le dispositif incorporé au séquenceur qui détecte les signaux
d'interruption. Ces signaux arrivent de façon asynchrone, à n'importe quel moment, mais
ils ne sont pris en compte qu'à la fin de l'opération en cours.

Mécanisme général : Lorsqu'une interruption survient, le processeur achève l'exécution


de l'instruction en cours pour les interruptions externes (cf. plus loin), puis il se produit :

1 Sauvegarde du contexte dans une pile :


- adresse de la prochaine instruction à exécuter dans le programme interrompu,
- contenu des registres qui seront modifiés par le programme d'interruption,
- contenu du mot d'état (registre de drapeaux) rassemblant les indicateurs
( tout cela forme le contexte sauvegardé)

2 Chargement du contexte du programme d'interruption (contexte actif) et passage


en mode système (ou superviseur)

3 Exécution du programme d'interruption

ESUM RAJAONARISON Tianandrasana Roméo 85


4 Retour au programme interrompu en restaurant le contexte (commande Assembleur
IRET) et en repassant en mode utilisateur.

A.2 Différents types d'interruptions

Les interruptions ne jouent pas seulement un rôle important dans le domaine logiciel,
mais aussi pour l'exploitation de l'électronique.

On distingue donc :

• interruptions internes : protection du système et des processus, appelées par


une instruction à l'intérieur d'un programme (overflow, erreur d'adressage, code opération
inexistant, problème de parité…) (hardware internes)

• interruptions logiques :permet à un processus utilisateur de faire un appel au


système (software)

• interruptions matérielles déclenchées par une unité électronique (lecteur,


clavier, canal, contrôleur de périphérique, panne de courant,....) ou par l'horloge
(hardware externes)

A.3 Les priorités

A chaque interruption, est associée une priorité (système d'interruptions hiérarchisées) qui
permet de regrouper les interruptions en classes. Chaque classe est caractérisée par un
degré d'urgence d'exécution de son programme d'interruption.

Règle : Une interruption de priorité j est plus prioritaire qu'une interruption de niveau i si
j > i.

ESUM RAJAONARISON Tianandrasana Roméo 86


L'intérêt de ce système est la solution de problèmes tels que :
• arrivée de plusieurs signaux d'interruption pendant l'exécution d'une instruction,

• arrivée d'un signal d'interruption pendant l'exécution du signal de traitement d'une


interruption précédente.

On peut utiliser un contrôleur d'interruptions pour regrouper les fils d'interruptions, gérer
les priorités entre les interruptions et donner les éléments de calcul d'adresse au
processeur.

A.4 Masquage des interruptions

Certaines interruptions présentent tellement d'importance qu'il ne doit pas être possible
d'interrompre leur traitement. On masquera alors les autres interruptions pour empêcher
leur prise en compte. Certaines interruptions sont non-masquables : on les prend
obligatoirement en compte. Une interruption masquée n'est pas ignorée : elle est prise en
compte dès qu'elle est démasquée.

Au contraire, une interruption peut-être désarmée : elle sera ignorée. Par défaut, les
interruptions sont évidemment armées.

ESUM RAJAONARISON Tianandrasana Roméo 87


1

B. INTERRUPTIONS VECTORISEES

Prenons l'exemple du microprocesseur 80386. Il peut comporter 256 interruptions


numérotées de 0 à 255. Le lien entre chaque interruption et son programme est réalisé par
une table ou vecteur d'interruptions.

Chaque élément contient l'adresse de début d'un programme d'interruption sur 4 octets
(offset 2 octets, segment 2 octets). La taille de la table est donc de 4 x 256 = 1 Ko. Elle
occupe les adresses 0h à 3FFh en mémoire centrale.

C. LES INTERRUPTIONS MATERIELLES : exemple du Intel 80386 et de ses


successeurs

Elles sont déclenchées par une unité électronique. Par exemple, chaque fois qu'on presse
ou relève une touche du clavier, l'IT clavier est déclenchée. Le programme d'interruption

ESUM RAJAONARISON Tianandrasana Roméo 88


place le caractère entré dans le buffer à la suite des caractères entrés auparavant. Si le
buffer est plein, il déclenche un bip ou une action convenue.
Les interruptions peuvent être masquées (exemple : clavier) grâce à l'instruction
Assembleur CLI (CLear Interrupt flag) ou grâce à la fonction TURBO-C ® disable ().
Ainsi, après CLI ou disable (), aucun caractère ne peut être entré au clavier. Le flag IF
(flag correspondant du registre d'état) est positionné à 0.

De même, l'instruction Assembleur STI (SeT Interrupt flag) ou la fonction TURBO-C ®


enable () démasque les interruptions en positionant le flag IF à 1.

La commande Assembleur NMI (No Mask Interrupt) permet de rendre une interruption
non masquable. Les interruptions qui ne peuvent être masquables sont toujours
exécutables, même après CLI ou disable ().

Dans le contexte Intel, les interruptions sont gérées par un contrôleur d'interruptions
(circuit intégré 8259 ou circuit inclus dans le microprocesseur lui-même).Ce composant
intercepte toutes les demandes d'interruption des périphériques et les communique à l'U.C.
selon leurs priorités

INTR : interrupt request : le processeur est informé par le contrôleur de l'arrivée d'une
demande d'IT

ESUM RAJAONARISON Tianandrasana Roméo 89


INTA : interrupt acknowledgement : le processeur a bien reçu par le bus de données le n°
d'IT envoyé par le contrôleur. Le mécanisme détaillé de traitement d'une interruption non
masquée est le suivant :

- l'U.C. termine l'exécution de l'instruction en cours

- elle lit sur le bus le numéro de l'interruption.

- elle sauvegarde le mot d'état dans la pile et l'adresse de retour CS : IP (adresse


de l'instruction suivante)

- elle lit dans la table d'interruption à l'adresse :


[ 4 * n° d'IT ] (mode calculé indirect)
Ainsi, à l'adresse [4*n°d'IT + 2] dans la table, elle trouve la partie segment CS
de l'adresse du programme d'interruption et à l'adresse [4* n° d'IT] la partie offset de cette
adresse.

- elle met à jour le compteur ordinal avec CS:IP

- elle exécute le programme s'achevant par IRET

Le ROM BIOS (Read Only Memory Input/Output System) et le DOS représentent le noyau
du système d'un micro-ordinateur. Les routines du ROM BIOS permettent essentiellement le
traitement des opérations d'entrée/sortie et d'interface avec les périphériques.

Citons notamment les principales interruptions du ROM BIOS :

IT 8 : tic horloge (timer) appelé toutes les 55 ms (18,2 fois/s.). Elle sert par exemple
à arrêter le moteur de l'unité de disquette lorsque aucun accès à la disquette n'est exécuté.
Cette interruption 08H, après avoir lancé le programme correspondant, appelle
l'interruption 1CH. Cette dernière ne contient qu'un retour IRET afin de permettre aux
programmeurs d'implanter leurs propres programmes d'interruption (objectifs :
programmation concurrente, multitâche,....)

ESUM RAJAONARISON Tianandrasana Roméo 90


IT 10h à 12h : variable selon le matériel connecté. Souvent, IT 10 désigne l'IT vidéo
IT 11 fournit la liste du matériel disponible et IT 12 le calcul de l'espace mémoire
disponible
IT 13h : gestion des disques
IT 14h : gestion de la porte série
IT 15h : gestion d'un lecteur de cassettes
IT 16h : gestion du clavier
IT 17h : imprimante
IT 18h : activation du ROM BIOS
IT 19h : reset du système
IT 1Ah : gestion de la date et de l'heure

Les IT de 0 à 7 sont appelées directement par l'U.C. du microprocesseur . Il s'agit de :

IT 0 : division par 0
IT 1 : pas à pas
IT 2 : circuit RAM défectueux
IT 3 : point d'arrêt
IT 4 : débordement
IT 5 : copie d'écran
IT 6 et 7 : inutilisées

Les routines associées au DOS travaillent à un niveau supérieur. Elles peuvent parfois faire
appel à des routines du ROM BIOS. Les principales interruptions associées au DOS sont :

IT 20h : fin normale d'un programme


IT 21h : appel de sous-routines système
IT 22h : gestion de l'adresse de saut après l'exécution d'un programme
Elle ne peut être activée directement. Elle précise la routine qui reprend le
contrôle après la fin du programme
IT 23h : gestion de l'adresse de saut après un control-break. Idem à ci-dessus.
IT 24h : gestion de l'adresse de saut en cas d'erreur
IT 25h : lecture directe sur disque

ESUM RAJAONARISON Tianandrasana Roméo 91


IT 26h : écriture directe sur disque
IT 27h : programme résident (terminer un programme en le laissant résident). Un
programme est dit résident si , une fois son exécution terminée, il rend le contrôle à
l'environnement appelant mais reste chargé en mémoire. Il pourra alors être réactivé à tout
moment , notamment à l'aide d'une IT. La fonction de Turbo-C void keep (int retour, in
taille) , prototypée dans dos.h, suspend le programme en cours d'exécution, le rend
résident. taille désigne sa taille qui peut être déterminée par un appel à MK_FP et code
désigne le code retourné à l'environnement par ce programme.

D. ACTIVATION D'INTERRUPTIONS A PARTIR D'UN PROGRAMME C

Fonction int86 (int num, union REGS * r_in, union REGS * r_out) : génère
l'interruption num en fonction des contenus des registres passées en paramètres via r_in .
La structure union REGS est définie dans dos.h

Fonction int86x (int num, union REGS * r_in, union REGS * r_out, union REGS *
r_seg) : utilisée lorsque l'IT nécessite pour son traitement des zônes de mémoire. Pour
cela, les registres d'adressage de segments sont passés comme paramètres

Fonction geninterrupt (int num) : déclenche l'IT num sans effectuer de copie de
registres, mais en initialisant les registres à l'aide de pseudo variables définies dans dos.h
: _ah, _al, _ch, etc...

Fonctions intdos ( union REGS * r_in, union REGS * r_out) et intdosx ( union
REGS * r_in, union REGS * r_out, union REGS r_seg) : permettent d'appeler directement
une routine de traitement de l'IT 21h

Fonction biosequip : détermine la liste des équipements disponibles (IT 11h)

Fonction biosmemory : calcule l'espace mémoire disponible (IT 12h)

ESUM RAJAONARISON Tianandrasana Roméo 92


Fonction biosdisk (int cmd, int face, int piste, int secteur, int n_secteur, void * buffer)
: appelle la fonction cmd de l'IT 13h

Fonction bioscom (int cmd, char octet, int port) : appelle la routine cmd de l'IT 14h.
octet représente l'octet à écrire si cmd = 1, port désigne le n° de la porte

Fonction bioskey (int cmd) : appelle la routine cmd de l'IT 16h

Fonction biosprint (int cmd, char octet, int port) : appelle la routine cmd de l'IT 18
h. octet représente l'octet à écrire si cmd = 0, port donne le n° de la porte parallèle

Fonction biostime (int cmd, long new_time) : appelle la fonction cmd de l'IT 1Ah.
new_time contient la nouvelle heure en nombre de battements si cmd = 1

Il existe en Turbo-C le type interrupt. Lorsqu'une fonction est déclarée de ce type,


TURBO-C va générer du code pour sauver les registres en début d'exécution et pour
terminer la routine avec l'instruction IRET signalant le retour d'une interruption. La
routine de service doit éviter un appel aux routines système car le DOS n'est pas réentrant.

La fonction setvect (int num, void interrupt (*f) ()) insère la fonction f en tant que
routine de service de l'IT num. Pour éviter cette opération, il faut éviter d'être interrompu.
Il faut donc faire précéder l'appel à setvect d'un appel à disable () qui masquera toutes les
IT. Ensuite, un appel à enable () rendra à nouveau possible l'interruption du programme.

ESUM RAJAONARISON Tianandrasana Roméo 93


EXERCICES

Exercice 1 :

Quelle est la différence entre un Pentium 4 et Core 2 Duo ?


Quelle est la différence entre S-ATA et P-ATA ?

Exercice 2 :

Comment initialiser son BIOS (CMOS) ?


Comment résoudre le problème d'un disque dur "SATA" non reconnu ?

Exercice 3 :

Un ami veut assembler un ordinateur, il vous demande de lui citer les principales
caractéristiques pour l’achat des périphériques suivants :

· Processeur
· Disque Dur
· Carte Mère

Exercice 4 :

Quelle est la différence entre les trois options illustrées ci-dessus ?

ESUM RAJAONARISON Tianandrasana Roméo 94


Exercice 5 :

Donnez le nom de chaque composant/connecteur illustré ci-dessous

EXERCICES DE NUMERATION

Exercice 6 :
Effectuer la représentation polynomiale des nombres décimaux suivants : 4526, 241

ESUM RAJAONARISON Tianandrasana Roméo 95


Exercice 7 :
La figure ci-dessous représente un extrait des propriétés système d’un ordinateur. Vous pouvez
l’afficher en faisant un clic droit sur l’explorateur Windows ou en exécutant la commande
« control.exe system » sur l’invite de commande ou sur le menu démarrer (combinaison des
touche Windows + R).

1. A partir de cette figure, compléter le tableau suivant :

en Go en Mo en octet
Taille de la mémoire vive
(RAM)

2. Sur cette figure, le système de l’ordinateur est un système Windows 64 bits.


Transformer cette valeur en octet.

Exercice 8 :
Complet le tableau suivant :
Binaire Octal Décimal Hexadécimal
11010
56
34
1F

Exercice 9 :
Complet le tableau suivant :
Binaire Complément à 1 Complément à 2
11011111
10101010
10111010

ESUM RAJAONARISON Tianandrasana Roméo 96


Exercice 10 :
Effectuer les opérations binaires suivantes :
10112 +10112 =
10112 - 10012 =
110012 x 102 =
100102 / 112 =

CORRIGE

Exercice 1 :

Quelle est la différence entre un Pentium 4 et Core 2 Duo ?

 Les Core 2 Duo sont les successeurs des Pentium. La différence est au niveau de l'architecture
interne de la puce. Le Core 2 duo est équipé de deux coeurs ayant une mémoire cache
commune et le Pentium 4 est équipé d'un seul coeur.
 Performances réduites notamment à cause de la taille inférieure de la mémoire cache. Le Core
2 Duo est plus performant que le P4, donc plus cher.

Quelle est la différence entre S-ATA et P-ATA ?

La différence est essentiellement en quatre points :

 Débit de transmission de données (SATA est plus rapide)


 Forme physique du connecteur (celui du SATA est plus petit)
 Nombre de disques durs par câble (1 pour SATA et 2 pour PATA)
 Longueur maximale des câbles (1m pour SATA et 45cm pour PATA)

Exercice 2 :

Comment initialiser son BIOS (CMOS) ?

- Éteindre l'ordinateur et l'isoler complètement du secteur


- Le plus souvent, un cavalier sur la carte mère permet de réinitialiser le BIOS. Son
emplacement diffère selon le modèle de carte mère, référez-vous au manuel de votre carte

ESUM RAJAONARISON Tianandrasana Roméo 97


mère pour savoir où il se trouve.
- Soit enlever la pile RTC, mettre sous tension pour effacer le SETUP, éteindre, remettre
la pile, puis redémarrer le pc.
Comment résoudre le problème d'un disque dur "SATA" non reconnu ?

 Généralement, c'est parce qu'il est nécessaire d'utiliser un pilote. Vérifiez que vous avez bien
installé les pilotes Serial-ATA fournis avec votre carte-mère afin que le système d'exploitation
soit capable de prendre en charge les disques SATA.
 Installer Windows XP SP3

Exercice 3 :
Un ami veut assembler un ordinateur, il vous demande de lui citez les principales
caractéristiques pour l’achat des périphériques suivants :

Exercice 4 :
Quelle est la différence entre les trois options illustrées ci-dessus.

Sauvegarde Complète : La méthode la plus simple est la sauvegarde complète ou totale


(appelée aussi "full backup") ; elle consiste à copier toutes les données à sauvegarder que
celles-ci soient récentes, anciennes, modifiées ou non.

Sauvegarde incrémentielle : Cette méthode consiste à sauvegarder les fichiers créés ou


modifiés depuis la dernière sauvegarde quel que soit son type (complète, différentielle ou
incrémentielle).
Sauvegarde différentielle : Seuls les fichiers modifiés ou nouveaux depuis la précédente
sauvegarde sont sauvegardés, en remplaçant l'ancienne version.

ESUM RAJAONARISON Tianandrasana Roméo 98


Exercice 5 :

Exercice 6 :
1 - Cette technique est utilisée pour numériser un texte qui a été lu au scanner

-1- Reconnaissance de la parole

-2- Reconnaissance des caractères magnétiques

-3- Reconnaissance optique de caractères

-4- Réponse vocale

2 - Contient l'unité arithmétique et logique, ainsi que l'unité de commande

-1- Unité centrale

-2- Unité de mémoire centrale

-3- Unité de temps Microseconde

ESUM RAJAONARISON Tianandrasana Roméo 99


-4- Unités périphériques

3 - Effectue les calculs et les comparaisons

-1- Microprocesseur

-2- Mini-ordinateur

-3- Unité arithmétique et logique

-4- Unité de commande

4 - Support d'information pouvant contenir environ 500 millions de caractères.

-1- Capacité mémoire : Kilo-octet

-2- Disques CD-ROM

-3- Tube à rayons cathodiques

-4- Mémoire à disques magnétiques

5 - deviennent plus petits, plus rapides, plus fiables, plus conviviaux et moins coûteux.

-1- Evolution du matériel

-2- Générations d'ordinateurs

-3- Micro-ordinateur

-4- Mini-ordinateur

ESUM RAJAONARISON Tianandrasana Roméo 100


6 - L'ordinateur est une combinaison de composantes qui permet d'accomplir les fonctions
d'entrée/sortie, de traitement, de stockage et de contrôle.

-1- Périphériques d'entrée-sortie

-2- Supercalculateur

-3- Système informatique

-4- Terminal informatique

7 - La technique d'écran vidéo la plus répandue.

-1- Ecran tactile

-2- Tube à rayons cathodiques

-3- Ecrans à cristaux liquides

-4- Entrée-sortie vidéo

8 - Le type le plus puissant d'ordinateur.

-1- Multiprocesseur

-2- Ordinateur central

-3- Réseaux d'ordinateurs

-4- Supercalculateur

ESUM RAJAONARISON Tianandrasana Roméo 101


9 - Promet d'être la façon la plus facile et la plus naturelle de communiquer avec les
ordinateurs.

-1- Ecran tactile

-2- Entrée-sortie vidéo

-3- Icône

-4- Reconnaissance de la parole

10 - Se traduit par la présence, l'absence ou le changement de direction d'un courant


électrique, de champs magnétiques ou de rayons lumineux.

-1- Icône

-2- Photostyle

-3- Réponse vocale

-4- Représentation binaire

11 - Traduit les instructions et dirige le traitement.

-1- Manette de jeu

-2- Poste de travail

-3- Souris électronique

-4- Unité de commande

ESUM RAJAONARISON Tianandrasana Roméo 102


12 - Un milliardième de seconde.

-1- Capacité mémoire : Kilo-octet

-2- Unité de temps Microseconde

-3- Unité de temps Nanoseconde

-4- Unité de temps Picoseconde

13 - Puce électronique.

-1- Micro-ordinateur

-2- Microprocesseur

-3- Mini-ordinateur

-4- Multiprocesseur

14 - Une capacité de stockage d'environ un million de caractères.

-1- Kilo-octet

-2- Mega-octet

-3- Giga-octet

-4- Unité de mémoire auxiliaire


15 - Vous ne pouvez pas effacer le contenu de ces circuits de mémoire.

ESUM RAJAONARISON Tianandrasana Roméo 103


-1- CD-ROM

-2- Mémoire à disques magnétiques

-3- Mémoire morte ( ROM )

-4- Mémoire vive (RAM)

16 - Un moyen convivial de communication entre l'utilisateur et le système informatique.

-1- Infographie

-2- Interface-utilisateur graphique

-3- Langage évolué

-4- Langage naturel


17 - Crée et affiche une feuille de travail lignes-et-colonnes.

-1- Aide à la programmation

-2- SGBD

-3- Tableur

-4- Traitement de texte

18 - Des programmes qui dirigent l'exécution d'une tâche particulière d'un utilisateur.

-1- Logiciel de base

-2- Logiciels d'application

ESUM RAJAONARISON Tianandrasana Roméo 104


-3- Logiciel de télécommunications

-4- Tendances sur le plan logiciel

19 - Des programmes qui gèrent les opérations internes d'un ordinateur.

-1- Compilateur

-2- Logiciel de base

-3- Logiciels d'application polyvalents

-4- Système d'exploitation

20 - Exécute plusieurs opérations ou applications en même temps.

-1- Aide à la programmation

-2- Gestion des taches

-3- Multitâche

-4- Progiciel intégré

21 -Gère la mise à jour et la récupération de données emmagasinées dans des bases de


données.

-1- SGBD

-2- Système d'exploitation

-3- Tableur

ESUM RAJAONARISON Tianandrasana Roméo 105


-4- Utilitaires

22 -Gère les communications dans un réseau.

-1- Gestion de fichiers

-2- Gestion des ressources

-3- Logiciel de télécommunications

-4- Programme propre à une application

23 -Inclut des programmes d'édition, des programmes de mise au point et des générateurs de
codes.

-1- Gestion des ressources

-2- Gestion de bases de données Micro

-3- Multitâche

-4- Utilitaires

24 -Peut prendre la forme de langages d'interrogation et de générateurs de rapports.

-1- Aide à la programmation

-2- Langage de quatrième génération

-3- Langage machine

-4- Langage orienté objets

ESUM RAJAONARISON Tianandrasana Roméo 106


25 -Traduit les instructions écrites dans un langage évolué en instructions exécutables.

-1- Aide à la programmation

-2- Compilateur

-3- Langage assembleur

-4- Langage machine

26 -Utilise des instructions formées de suites codées de 1 et de 0.

-1- Langage assembleur

-2- Langage machine

-3- Langage non procédural.

-4- Langage orienté objets

27 -Utilise des instructions symboliques qui représentent les codes d'opération et les positions
de mémoire.

-1- Langage assembleur

-2- Langage machine

-3- Langage non procédural.

-4- Langage orienté objets

28 -Utilise des instructions, appelées énoncés, qui ressemblent au langage humain ou à la


convention d'écriture des mathématiques.

ESUM RAJAONARISON Tianandrasana Roméo 107


-1- Langage assembleur

-2- Langage machine

-3- Langage non procédural

-4- Langage orienté objets

1 - Cette technique est utilisée pour numériser un texte qui a été lu au scanner

-3- Reconnaissance optique de caractères


2 - Contient l'unité arithmétique et logique, ainsi que l'unité de commande

-1- Unité centrale

3 - Effectue les calculs et les comparaisons


-3- Unité arithmétique et logique
4 - Support d'information pouvant contenir environ 500 millions de caractères.
-2- Disques CD-ROM

5 - deviennent plus petits, plus rapides, plus fiables, plus conviviaux et moins coûteux.
-1- Evolution du matériel

6 - L'ordinateur est une combinaison de composantes qui permet d'accomplir les fonctions
d'entrée/sortie, de traitement, de stockage et de contrôle.

-3- Système informatique


7 - La technique d'écran vidéo la plus répandue.
-2- Tube à rayons cathodiques

ESUM RAJAONARISON Tianandrasana Roméo 108


8 - Le type le plus puissant d'ordinateur.

-4- Supercalculateur

9 - Promet d'être la façon la plus facile et la plus naturelle de communiquer avec les ordinateurs.

-4- Reconnaissance de la parole


10 - Se traduit par la présence, l'absence ou le changement de direction d'un courant électrique,
de champs magnétiques ou de rayons lumineux.

-4- Représentation binaire


11 - Traduit les instructions et dirige le traitement.
-4- Unité de commande

12 - Un milliardième de seconde.

-3- Unité de temps Nanoseconde


13 - Puce électronique.
-2- Microprocesseur
14 - Une capacité de stockage d'environ un million de caractères.

-2- Mega-octet

15 - Vous ne pouvez pas effacer le contenu de ces circuits de mémoire.

-3- Mémoire morte ( ROM )


16 - Un moyen convivial de communication entre l'utilisateur et le système informatique.
-2- Interface-utilisateur graphique

17 - Crée et affiche une feuille de travail lignes-et-colonnes.

ESUM RAJAONARISON Tianandrasana Roméo 109


-3- Tableur
18 - Des programmes qui dirigent l'exécution d'une tâche particulière d'un utilisateur.

-2- Logiciels d'application

19 - Des programmes qui gèrent les opérations internes d'un ordinateur.


-4- Système d'exploitation

20 - Exécute plusieurs opérations ou applications en même temps.

-4- Progiciel intégré

21 -Gère la mise à jour et la récupération de données emmagasinées dans des bases de données.

-1- SGBD

22 -Gère les communications dans un réseau.

-3- Logiciel de télécommunications

23 -Inclut des programmes d'édition, des programmes de mise au point et des générateurs de
codes.

-4- Utilitaires
24 -Peut prendre la forme de langages d'interrogation et de générateurs de rapports.
-2- Langage de quatrième génération
25 -Traduit les instructions écrites dans un langage évolué en instructions exécutables.

-2- Compilateur
26 -Utilise des instructions formées de suites codées de 1 et de 0.

ESUM RAJAONARISON Tianandrasana Roméo 110


-2- Langage machine
27 -Utilise des instructions symboliques qui représentent les codes d'opération et les positions
de mémoire.

-1- Langage assembleur

28 -Utilise des instructions, appelées énoncés, qui ressemblent au langage humain ou à la


convention d'écriture des mathématiques.

-2- Langage machine

Corrigés exercices de numération


Exercice 6 :
Effectuer la représentation polynomiale des nombres décimaux suivants : 4526, 241
Correction :
241=2*102 + 4*101 + 1*100
4526=4*103 + 5*102 + 2*101 + 6*100
Exercice 7 :

3. A partir de cette figure, compléter le tableau suivant :

en Go en Mo en octet
Taille de la mémoire vive 4Go 4096Go 4294967296 octets
(RAM)
4Go=4*230 𝑜𝑐𝑡𝑒𝑡𝑠=4*210 ∗ 210 ∗ 210 𝑜𝑐𝑡𝑒𝑡𝑠=4*1024Mo=4096Mo

4. Sur cette figure, le système de l’ordinateur est un système Windows 64 bits.


Transformer cette valeur en octet.
8bits= 1octet alors 64 bits = 8 bits

Exercice 8 :
Complet le tableau suivant :

Binaire Octal Décimal Hexadécimal


11010 32 26 1A
101110 56 46 2E
100010 42 34 22
11111 37 31 1F

Première ligne :
 Pour la conversion binaire-octal, la plus rapide est d’utiliser le tableau suivant
(voir cours) :
Tableau 1 :
Base 8 Base 2

ESUM RAJAONARISON Tianandrasana Roméo 111


0 000
1 001
2 010
3 011
4 100
5 101
6 110
7 111

110102= 0110102=328

 Pour la conversion binaire en décimal, il faut utiliser la forme polynomiale :

110102=1*24 + 1*23 + 0*22 + 1*21 + 0*20 = 16+8+0+2+0 =26


 Pour la conversion binaire-hexadécimal, la plus rapide est d’utiliser le tableau
suivant (voir cours):
Tableau 2 :
Base 16 Base 2
0 0000
1 0001
2 0010
3 0011
4 0100
5 0101
6 0110
7 0111
8 1000
9 1001
A 1010
B 1011
C 1100
D 1101
E 1110
F 1111

110102=000110102= 1A16

Deuxième ligne : 568= ( ?)2 =( ?)10=( ?)2=( ?)16


Il suffit d’utiliser le tableau 1 ci-dessus : 58= 101 et 68= 110
Donc 568= 1011102
1011102= 1*25+ 0*24 + 1*23 + 1*22 + 1*21 + 0*20=32+0+8+4+2=4610
1011102=001011102=2D16

Exercice 9 :
Complet le tableau suivant :

ESUM RAJAONARISON Tianandrasana Roméo 112


Binaire Complément à 1 Complément à 2
11011111 00100000 00100001
01010101 10101010 10101011
01000110 10111001 10111010
Pour trouver le complément à 1 d’un nombre binaire, il suffit de changer les 0 en 1 et
les 1 en 0.
11011111 compléments à 1 : 00100000
Pour trouver le complément à deux d’un nombre binaire, il faut ajouter à 1 son
complément à 1.
00100000 + 1 = 00100001

Exercice 10 :
Effectuer les opérations binaires suivantes :
10112 +10112 = 101102

1 1 retenue
1 0 1 1
+1 0 1 1
1 0 1 1 0

10112 - 10012 = 102


1 0 1 1
-

1 0 0 1
0 0 1 0

110012 x 102 = 1100102


1 1 0 0 1
x
1 0
0 0 0 0 0
+
1 1 0 0 1

1 1 0 0 1 0

100102 / 112 = 1102


10 0 1 0 1 1

ESUM RAJAONARISON Tianandrasana Roméo 113


-1 1 110
11
-1 1
0 0
-0

ESUM RAJAONARISON Tianandrasana Roméo 114


Bibliographie

 R. Strandh, I. Durand, Architecture de l’ordinateur, Dunod


 Cazes, J. Delacrois, Architecture des machines et des systèmes informatiques, Dunod
 P. Marcel, Architecture des ordinateurs, 2001
 E. Lazard, Architecture des ordinateurs, Université Paris-Dauphine

Vous aimerez peut-être aussi