Académique Documents
Professionnel Documents
Culture Documents
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
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
– 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).
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
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.
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
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 :
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
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.
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).
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
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)
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)
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
1100 0010
D'où 1101
+ 1100
1001 (-7)
D ARITHMETIQUE OCTALE
1564 2263
E ARITHMETIQUE HEXADECIMALE
33AF 1F4C
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 :
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 :
F.2 Soustraction :
D’où 0 1 0 1 0 1 1 1 CORRECTION 1 0 1 1 0 0 0 0
+ 0101 1001 0110 0110
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.
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.
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.
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
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.
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.
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
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é
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 :
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.
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.
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.
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.
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.
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
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.
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
Extra-Segment
Adresse physique (20 bits)
00000h
( 16 bits ) ( 32 bits )
SELECTEUR OFFSET
Jusqu’à 4 Go
Cop / Opérande
DESCRIPTEUR
PAGINATION
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. a) Pipeline
A.3. b) Superscalaire
ALU
A.3. c) HyperThreading
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).
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 :
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.
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.
D EXEMPLE DE MICROPROCESSEURS
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
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.
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 ;
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 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.
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.
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 :
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
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).
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
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
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é.
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.
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.
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 :
Tableau comparatif
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.
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.
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 :
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 ?
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
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.
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,
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.
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 :
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.
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.
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.
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.
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.
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.
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)
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.
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.
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)
L’interface SCSI reste la solution haut de gamme pour les périphériques et les applications
nécessitant un débit élevé.
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
:
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).
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.
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.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
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 :
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 :
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
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 :
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.
Le tableau suivant récapitule les caractéristiques des différentes versions du bus PCI :
MICROPROCESSEUR
Interface
vidéo
Bus local VESA ou PCI
Mémoire
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.
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.
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 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é.
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).
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é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
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
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 :
A. DEFINITIONS ET GENERALITES
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.
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 :
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.
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.
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.
B. INTERRUPTIONS VECTORISEES
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.
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
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
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.
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,....)
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 :
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 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 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
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.
Exercice 1 :
Exercice 2 :
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 :
EXERCICES DE NUMERATION
Exercice 6 :
Effectuer la représentation polynomiale des nombres décimaux suivants : 4526, 241
en Go en Mo en octet
Taille de la mémoire vive
(RAM)
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
CORRIGE
Exercice 1 :
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.
Exercice 2 :
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.
Exercice 6 :
1 - Cette technique est utilisée pour numériser un texte qui a été lu au scanner
-1- Microprocesseur
-2- Mini-ordinateur
5 - deviennent plus petits, plus rapides, plus fiables, plus conviviaux et moins coûteux.
-3- Micro-ordinateur
-4- Mini-ordinateur
-2- Supercalculateur
-1- Multiprocesseur
-4- Supercalculateur
-3- Icône
-1- Icône
-2- Photostyle
13 - Puce électronique.
-1- Micro-ordinateur
-2- Microprocesseur
-3- Mini-ordinateur
-4- Multiprocesseur
-1- Kilo-octet
-2- Mega-octet
-3- Giga-octet
-1- Infographie
-2- SGBD
-3- Tableur
18 - Des programmes qui dirigent l'exécution d'une tâche particulière d'un utilisateur.
-1- Compilateur
-3- Multitâche
-1- SGBD
-3- Tableur
23 -Inclut des programmes d'édition, des programmes de mise au point et des générateurs de
codes.
-3- Multitâche
-4- Utilitaires
-2- Compilateur
27 -Utilise des instructions symboliques qui représentent les codes d'opération et les positions
de mémoire.
1 - Cette technique est utilisée pour numériser un texte qui a été lu au scanner
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.
-4- Supercalculateur
9 - Promet d'être la façon la plus facile et la plus naturelle de communiquer avec les ordinateurs.
12 - Un milliardième de seconde.
-2- Mega-octet
21 -Gère la mise à jour et la récupération de données emmagasinées dans des bases de données.
-1- SGBD
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.
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
Exercice 8 :
Complet le tableau suivant :
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
110102= 0110102=328
110102=000110102= 1A16
Exercice 9 :
Complet le tableau suivant :
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
1 0 0 1
0 0 1 0
1 1 0 0 1 0