Vous êtes sur la page 1sur 63

Architectures des Ordinateurs et Systèmes

à Processeurs

ONANGA ELENGA Dyhet Weslay

UMNG
FST
2020 - 2021
UNIVERSITE MARIEN NGOUABI Unité * Travail * Humanité
FACULTE DES SCIENCES ET TECHNIQUES
DEPARTEMENT DES LICENCES
PARCOURS INFORMATIQUE

Support du cours

Architectures des Ordinateurs et


Systèmes à Processeurs

Préparé par :
Monsieur ONANGA ELENGA Dyhet Weslay
weslay.onangaelenga@umng.cg

1
Table des matières
Introduction du Cours.......................................................................................................................................... 7

Qu’entend-t-on par architecture ? ................................................................................................................... 9

Où trouve-t-on des systèmes à microprocesseur ? ......................................................................................... 9

Chapitre I : Généralités et Histoire de l’ordinateur............................................................................................. 11

1.1. Introduction du chapitre ...................................................................................................................... 11

1.2. Petite Histoire de l’ordinateur ............................................................................................................. 12

Chapitre II : Représentation de l’Information dans la machine. ......................................................................... 14

2.1. Introduction ............................................................................................................................................ 14

2.2. Le langage binaire ................................................................................................................................. 14

2.3. Système numérique ............................................................................................................................... 15

2.3.1. Les bases décimale, binaire et hexadécimale ................................................................................. 16

2.4. Représentation des nombres entiers ..................................................................................................... 17

2.4.1. Forme Polynomiale ......................................................................................................................... 17

2.4.2. Le changement de base : transcodage ........................................................................................... 18

 Conversion d’un nombre de base quelconque en un nombre de base décimale ............................ 18

 Conversion d’un nombre de base décimale en un nombre de base quelconque ............................ 18

2.6. Les nombres fractionnaires .................................................................................................................... 19

 Convertir un nombre fractionnaire de base b en décimal. .............................................................. 19

 Convertir un nombre décimal fractionnaire en un nombre de base b. ............................................ 20

Conversion d’octal à décimal et vice versa ............................................................................................... 20

Conversion binaire-hexadécimal et vice versa .......................................................................................... 21

2.7. Les opérations arithmétiques en binaire ................................................................................................ 21

2.8. Conclusion ............................................................................................................................................. 22

Chapitre III : Architecture de base d’un ordinateur. ........................................................................................... 23

3.1. Introduction ............................................................................................................................................ 23

3.2. Structure de l’ordinateur ......................................................................................................................... 23

3.2.1. La carte-mère (Motherboard / Mainboard) ...................................................................................... 24

2
3.2.2. Architecture d’une carte mère ......................................................................................................... 25

3.2.3. Les connecteurs internes ................................................................................................................ 26

3.2.4. Les connecteurs externes ............................................................................................................... 28

3.3. Architecture de base d’un ordinateur ..................................................................................................... 30

L’unité centrale ......................................................................................................................................... 31

La mémoire principale............................................................................................................................... 31

Les interfaces d’entrées/sorties ................................................................................................................ 31

Les bus ..................................................................................................................................................... 32

Chapitre IV : Les Mémoires. ............................................................................................................................. 33

4.1. Introduction ............................................................................................................................................ 33

4.2. Organisation d’une mémoire .................................................................................................................. 33

4.3. Les caractéristiques d’une mémoire ...................................................................................................... 34

4.4. Types de mémoires ............................................................................................................................... 36

4.4.1. Mémoires vives ou RAM (Random Acces Memory : mémoire à accès aléatoire) ........................... 36

4.4.2. Mémoires mortes ou ROM (Read Only Memory ou memoire à lecture seule) ................................ 37

4.5. Localisation des mémoires..................................................................................................................... 37

4.6. Notion de hiérarchie mémoire ................................................................................................................ 38

4.7. Méthodes d'accès .................................................................................................................................. 39

Chapitre V : Le Microprocesseur....................................................................................................................... 40

5.1. Introduction ............................................................................................................................................ 40

5.2 Architecture de base d’un microprocesseur ............................................................................................ 41

5.2.1. L’unité de commande ...................................................................................................................... 41

5.2.2. L’unité de traitement ....................................................................................................................... 42

5.5.3. Cycle d’exécution d’une instruction ................................................................................................. 43

Phase 1 : Recherche de l'instruction à traiter ............................................................................................ 43

Phase 2 : Décodage de l’instruction et recherche de l'opérande .............................................................. 43

Phase 3 : Exécution de l'instruction .......................................................................................................... 44

5.3. Jeu d’instructions ................................................................................................................................... 45

3
5.2.1. Type d’instructions .......................................................................................................................... 45

5.2.2. Codage ........................................................................................................................................... 45

5.2.3. Mode d’adressage .......................................................................................................................... 46

5.2.4. Temps d’exécution .......................................................................................................................... 46

5.4. Langage de programmation ................................................................................................................... 46

5.5. Performances d’un microprocesseur...................................................................................................... 47

5.6. Notion d’architecture RISC et CISC ....................................................................................................... 47

5.6.1. L’architecture CISC ......................................................................................................................... 48

5.6.2. L’architecture RISC ......................................................................................................................... 48

5.6.3. Comparaison................................................................................................................................... 49

5.7. Améliorations de l’architecture de base ................................................................................................. 49

5.7.1. Architecture Pipeline ....................................................................................................................... 50

5.7.2. Architecture Super Scalaire ............................................................................................................ 53

5.7.3. Architecture pipeline et super scalaire ............................................................................................ 53

5.8. Mémoire cache ...................................................................................................................................... 54

5.8.1. Principe de fonctionnement............................................................................................................. 54

Chapitre VII : Echange des Données. ............................................................................................................... 56

7.1. Introduction. ........................................................................................................................................... 56

7.2. Rôle et constitution d’une interface d’entrée/sortie................................................................................. 57

7.3. Techniques d’échange de données ....................................................................................................... 57

7.4. Echange programmé ............................................................................................................................. 57

Scrutation.................................................................................................................................................. 57

Interruption................................................................................................................................................ 58

7.5. Principe de fonctionnement d’une interruption : ..................................................................................... 58

7.6. Echange direct avec la mémoire ............................................................................................................ 58

7.7. Types de liaisons ................................................................................................................................... 59

7.7.1. Liaison parallèle .............................................................................................................................. 60

7.7.2. Liaison série .................................................................................................................................... 60

4
7.8. Principe de base d’une liaison série asynchrone : ................................................................................. 61

Paramètres rentrant en jeu : ..................................................................................................................... 61

Déroulement d’une transmission :............................................................................................................. 61

Contrôle de flux : ....................................................................................................................................... 62

5
Le cours d’Architecture des Ordinateurs et des systèmes à microprocesseurs expose les principes de
base du traitement programmé de l’information. La mise en œuvre de ces systèmes s’appuie sur deux
modes de réalisation distincts, le matériel et le logiciel. Le matériel (hardware) correspond à l’aspect
concret du système : Unité centrale, mémoire, organes d’entrées-sorties, etc… Le logiciel (software)
correspond à un ensemble d’instructions, appelé programme, qui sont contenues dans les différentes
mémoires du système et qui définissent les actions effectuées par le matériel.

Ce cours est un préalable nécessaire à de nombreux autres cours. Il est organisé comme une suite
intuitive de définitions. Plus de précision et facilite la mémorisation. Les cours doivent être relus
périodiquement pour être bien mémorisés/compris (les évaluations nécessitent une bonne
compréhension, pas du par cœur). Il n'a pas de prérequis (hormis techniques de calcul vues au lycée).

Chaque chapitre aura un TD. Vous devez venir à chaque TD en ayant lu le cours (ceci sera testé), en
ayant préparé le TD (avoir tenté de résoudre les exercices), et avec une version papier (ou sur
ordinateur) du cours et du TD. Si ce n'est pas le cas, l'intervenant pourra vous exclure de la salle.

Pour chaque définition ou technique que vous ne comprenez pas, vous devez tout d'abord chercher à
comprendre par vous-même (en relisant des paragraphes du cours, d'un dictionnaire ou d'une page
Web), et, si vous ne comprenez toujours pas, vous devez poser des questions.

Mon rôle étant enseignant est de vous aider à apprendre, et donc de vous fournir un cours précis et
structuré, de répondre à vos questions, de vérifier que vous avez effectué un effort d'apprentissage, et
de vérifier que cet effort a conduit à un apprentissage suffisant.

La structure du cours se présente comme suit : l’introduction du cours, six chapitres, les
recommandations et les conclusions.

 Chapitre I s’intitule Généralités et Histoire de l’ordinateur


 Chapitre II s’intitule Représentation de l’Information
 Chapitre III s’intitule Architecture de base d’un ordinateur y système à processeur
 Chapitre IV s’intitule Les Mémoires
 Chapitre VI s’intitule Les Microprocesseurs
 Chapitre VII s’intitules Echanges des données (Entrée/Sortie)

6
Introduction du Cours
Un cours sur l’Architecture des Ordinateurs et Systèmes à processeurs, demande de définir ce que
sont, d’une part un ordinateur, l’architecture et d’autre part les systèmes à processeurs. Le lecteur qui
s’apprête à aborder la licence en Informatique a certainement une intuition sur l’ordinateur, mais peut-
être pas d’idée préciser la notion d’architecture et celle des systèmes à processeurs.

Les Objectifs de ce cours sont les suivants :

 Acquérir les notions de base sur la structure et le fonctionnement d’un ordinateur et ces
principaux composants (microprocesseurs, mémoire et dispositifs E/S).

 Les composants et principes majeurs de fonctionnement d’un ordinateur, ensuite d’un réseau
d’ordinateur depuis l’électronique (les transistors jusqu’à la programmation).
 Les critères principaux d’évaluation de la performance des machines (Capacité, Rapidité …).

Il y plusieurs définitions du mot ordinateur selon les ouvrages, mais retenez qu’un ordinateur peut se
définir comme une machine qui traite une information fournie par un organe d’entrée suivant un
programme et délivre une information résultante sur un organe de sortie.

La partie de l’ordinateur chargée du traitement de l’information est appelée Unité Centrale (UC) en
anglais, Central Processing Unit (CPU).

De nos jours, nous assistons à une explosion des jeux informatiques et vidéo. Ceci a certainement
permis auprès du “grand public” d’avoir une connaissance fonctionnelle de certains composants
architecturaux : chacun sait que, pour jouer raisonnablement sur un PC, il vaut mieux qu’il soit équipé
d’une carte 3D, et beaucoup connaissent la hiérarchie en termes de rapport qualité/prix de ces cartes.

Matériellement, un ordinateur est composé de cartes et de périphériques (écran, clavier, disques etc.)
; chaque carte est elle-même construite à partir de composants électroniques, qui utilisent depuis les
années 60 la technologie des transistors et depuis les années 70 la technologie des circuits intégrés.

Ces divers organes doivent être conçus et organisés pour trouver un optimum suivant les critères de
fonctionnalité, de performances et de prix. Le plus important de ces organes est le processeur, qui
est composé d’un ou d’un petit nombre de circuits intégrés.

7
Dans le sens le plus général, l’architecture est donc la conception et l’organisation des composants
matériels de l’ordinateur basés sur la technologie des circuits intégrés, et plus particulièrement du
processeur. D’où système à processeur.

Le terme de matériel dans la définition ci-dessus ne signifie pas que l’architecte dessine des transistors.
Le fonctionnement d’un ordinateur peut s’envisager suivant la hiérarchie des niveaux d’écrite dans la
figure suivante.

L’utilisateur final voit une application plus ou moins interactive, par exemple un jeu, ou un logiciel de
traitement de texte. Cette couche est réalisée essentiellement suivant un modèle de calcul figé dans
un langage de haut niveau, qui utilise des mécanismes génériques.

Chaque processeur dispose d’un langage spécifique, son jeu d’instructions, qui implémente ces
mécanismes communs. Le jeu d’instruction est également appelé langage-machine, ou encore
architecture logicielle.

De façon précise, le jeu d’instruction est une abstraction programmable (utilisable pour la
programmation) du processeur. Les niveaux suivants sont figés dans le matériel, et ne sont pas
reprogrammables. Le jeu d’instruction est donc l’interface de programmation du processeur. Le jeu
d’instruction est implémenté par divers circuits logiques : registres, UAL etc. L’organisation et la
coordination de ces organes constitue l’architecture matérielle du processeur.

En définitive nous nous appuierons sur l’étude détaillée de l’architecture du PC, dont nous étudierons
les principaux éléments de base de l’ordinateur et le langage machine ensuite les fonctions de base de
son système d’exploitation (BIOS), et ses mécanismes de communication avec l’extérieur

8
(entrées/sorties). Nous aborderons aussi le fonctionnement de différents périphériques de l’ordinateur
(écran, clavier, disques durs, CD-ROM..), afin d’apprendre à les mettre en œuvre à bon escient.

Qu’entend-t-on par architecture ?


L'architecture d'un système à microprocesseur représente l’organisation de ses différentes unités et de
leurs interconnexions. Le choix d'une architecture est toujours le résultat d'un compromis :

 Entre performances et coûts


 Entre efficacité et facilité de construction
 Entre performances d'ensemble et facilité de programmation

Où trouve-t-on des systèmes à microprocesseur ?


Les applications des systèmes à microprocesseurs sont multiples et variées :

 Ordinateur, PDA
 Console De Jeux
 Calculatrice
 Télévision
 Téléphone Portable
 Distributeur Automatique D’argent
 Robotique
 Lecteur Carte A Puce, Code Barre
 Automobile
 Instrumentation

A continuation nous allons donner quelques définitions liées au cours.

 Information : données numériques ou symboliques


 Numérisation : représentation de données avec des nombres.
 Méthodes de numération : méthodes pour écrire les nombres.
 Informatique terme issu de la contraction de deux mots, "information" et "automatique". C’est
une science du traitement de l'information.
 Ordinateur : machine capable d'exécuter des programmes.
 Programme : suite d'instructions arithmétiques ou logiques ou de contrôle (ces dernières
définissent l'ordre d'exécution d'autres instructions).

9
 Logiciel (Software) : C’est un programme ou ensemble de programmes.
 Système informatique : système aidant la réalisation de tâches/décisions et composé de
matériels (Hardware), exemple l’ordinateur, les périphériques, de logiciels (software),
information (données ou bien connaissances) et personnes.

10
Chapitre I : Généralités et Histoire de l’ordinateur.
1.1. Introduction du chapitre
L'informatique, contraction de deux mots : information et automatique, est la science du traitement
automatique de l'information. Apparue au milieu du 20ème siècle, elle a connu une évolution
extrêmement rapide. A sa motivation initiale qui était de faciliter et d'accélérer le calcul, se sont ajoutées
de nombreuses fonctionnalités, comme l'automatisation, le contrôle et la commande de processus, la
communication ou le partage de l'information.

Nous allons parler des principes de base du traitement programmé de l’information. La mise en œuvre
de ces systèmes s’appuie sur deux modes de réalisation distincts, le matériel et le logiciel. Le matériel
(hardware) correspond à l’aspect concret du système : unité centrale, mémoire, organes d’entrées-
sorties, etc… Le logiciel (software) correspond à un ensemble d’instructions, appelé programme, qui
sont contenues dans les différentes mémoires du système et qui définissent les actions effectuées par
le matériel.

Dans l’introduction nous avons dit ceci, ordinateur peut se définir comme une machine qui traite une
information fournie par un organe d’entrée suivant un programme et délivre une information résultante
sur un organe de sortie. Et la partie de l’ordinateur chargée du traitement de l’information est appelée
Unité Centrale (UC) en anglais, Central Processing Unit (CPU).

Généralement les éléments qui composent un ordinateur, de l’intérieur et de l’extérieur sont :

11
1.2. Petite Histoire de l’ordinateur
1945 : 1er ordinateur entièrement électronique : L’ENIAC
(Electronic Numerical Integrator and Computer) commandé
en 1942 par l’armée américaine afin d’effectuer les calculs
de balistique. Il comprend 17000 tubes (ancêtre du
transistor), pèse 30 tonnes et consomme 160 kW ! Il tourne
à 100 kHz et peut effectuer 100 000 additions ou 357
multiplications par seconde.

1948 : Les premières machines à architecture de


John Von Neumann apparaissent : les
composants sont organisés en 5 groupes
principaux : unité arithmétique et logique et unité
de contrôle (processeur), entrées, sorties,
mémoires. Les programmes sont stockés dans la
même mémoire que les données et peuvent ainsi
être manipulés comme des données. L’architecture des ordinateurs actuels dérive de celle-là !

1947/1948 : Invention du transistor : il devient beaucoup plus facile


et moins coûteux de réaliser des opérations sur des 0 et des 1,
physiquement réalisés par des interrupteurs (courant passe /
courant ne passe pas).

1956 : IBM sort le premier système à base de disque dur, le Ramac 305. L'IBM 350 utilisait 50 disques
de 24 pouces en métal, avec 100 pistes par face. Il pouvait enregistrer cinq mégaoctets de données et
coûtait 10000 $ par mégaoctet !

1958 : Invention du 1er circuit intégré. L’un de leurs premiers usages était dans les systèmes
embarqués, notamment par la NASA dans l’ordinateur de guidage d’Apollo. Le circuit intégré autorise
le développement d’ordinateurs plus compacts. On les appela les mini-ordinateurs.

12
1971 : Intel sort le premier microprocesseur commercial, le 4004, qui
contient plusieurs milliers de transistors. Un microprocesseur regroupe
la plupart des composants de calcul (horloge et mémoire mises à part
pour des raisons techniques) sur un seul circuit. Le 4004 réalisait 60 000
opérations par seconde (fréquence : 108 KHz).

Fin des années 1970 : Le processeur Intel 8080 amène la première vague d’ordinateurs personnels
(PC). Le système MS-DOS de Microsoft voit le jour (en Basic). En 1976, Steve Wozniak conçoit l’Apple
I, doté d’un processeur à 1 MHz. Il vend avec Steve Jobs environ 200 machines à 666 $ l’unité. Il est
doté d’un microprocesseur et d’un clavier, mais il n'a pas d'écran !

Années 1990 : Cette décennie fut marquée par le développement de l'Internet et l'apparition de la toile
(Web : ensemble de pages en HTML mélangeant du texte, des liens, des images, adressables via une
URL et accessibles via le protocole HTTP). C’est la convergence de l'informatique et des
télécommunications.

Depuis 2006 : Saut technologique dans l'évolution des PC : INTEL sort une gamme de processeurs
multicoeurs Core, Core 2, Core i3, i5 et i7 sur des architectures Nehalem, Sandy Bridge puis Haswell
et Broadwell 64 bits. L'architecture est adaptée selon l'utilisation sur PC de bureau ou appareil portable.
Les fréquences vont jusqu'à 3,5 GHz !

13
Chapitre II : Représentation de l’Information dans la machine.
2.1. Introduction
L’ordinateur traite plusieurs types d’informations. Quelle que soit la nature de l’information traitée par
une machine : Une image, une vidéo, un son, un texte (représentation d’une information externe), elle
est toujours sous la forme d’un ensemble de nombres écrits en base 2 (sous forme binaire, n’utilisant
que des 0 et des 1, exemple 01001011).

La raison pour laquelle les ordinateurs manipulent des données binaires est liée au fonctionnement de
leurs composants physiques. Les transistors et les condensateurs, qui sont les éléments de base
d’un ordinateur, possèdent deux états stables : activé/désactivé ou chargé/déchargé. Ainsi, un
transistor dans l’état activé va stocker l’information 1 (ou 0 s’il est dans l’état désactivé).

L’objectif de ce chapitre est que le lecteur prenne connaissance des notions de base du codage de
l’information parmi lesquelles :

 Savoir définir la base d’un système de numération.


 Savoir définir le rang et le poids d’un chiffre.
 Savoir représenter un nombre sous forme polynomiale.
 Savoir déterminer la valeur décimale d’un nombre de base b quelconque et vice versa.
 Savoir convertir un nombre binaire en un nombre octal ou en hexadécimal et vice versa.
 Savoir effectuer les opérations arithmétiques directement dans le système binaire, octal et
hexadécimal.
 Savoir comment représenter les nombres négatifs, et réels dans la machine.

2.2. Le langage binaire


Le terme bit (b minuscule dans les notations) signifie « binary digit », c'est-à-dire 0 ou 1 en
numérotation binaire. Il s'agit de la plus petite unité d'information manipulable par une machine
numérique. Il est possible de représenter physiquement cette information binaire par un signal
électrique ou magnétique, qui, au-delà d'un certain seuil, correspond à la valeur 1.

L'octet (en anglais byte ou B majuscule dans les notations) est une unité d'information composée de 8
bits. Il permet par exemple de stocker un caractère comme une lettre ou un chiffre.

14
Une unité d'information composée de 16 bits est généralement appelée mot (en anglais word). Une
unité d'information de 32 bits de longueur est appelée mot double (en anglais double word, d'où
l'appellation dword).

Beaucoup d'informaticiens ont appris que 1 kilooctet valait 1024 octets. Or, depuis décembre 1998,
l'organisme international IEC a statué sur cette question. Voici les unités standardisées :
Appellation Symbole Nombre Octets
Un kilooctet (Ko) 103 octets
Un Megaoctet (Mo) 106 octets
Un Gigaoctet (Go) 109 octets
Un Téraoctet (To) 1012 octets
Un Pétaoctet (Po) 1015 octets
Un Exaoctet (Eo) 1018 octets
Un Zettaoctet (Zo) 1021 octets
Un Yottaoctet (Yo) 1024 octets

Avez-vous déjà acheté un disque dur voire une clé USB. Souvent en l'utilisant pour la première fois, on
remarque que sa taille réelle était sensiblement plus petite que celle annoncée par le fabricant ? Sachez
que le fabricant ne vous a techniquement pas menti. Il a profité d'une confusion courante entre deux
systèmes de préfixes d'unités.
En effet, lors du développement des premiers ordinateurs, les informaticiens ont décidé d'utiliser le
préfixe « kilo » pour désigner 1024, puisqu'elle est raisonnablement proche de 1000. Cette tendance
s'est poursuivie ensuite : un groupe de 1024 kilooctets a été appelé un mégaoctet, un groupe de 1024
mégaoctets a été appelé giga-octets, et ainsi de suite. Alors que le passage successif entre les préfixes
kilo, méga, Téra, ... correspond en principe à un facteur 1000, il correspond donc à un facteur 1024 en
informatique. Un mégaoctet devrait en principe valoir 1000 x 1000 octets, c'est-à-dire 1.000.000
d'octets, mais il vaut 1024 x 1024 octets en informatique, c'est-à-dire 1.048.576 octets. Ce qui
correspond à une différence de 4.63%.

2.3. Système numérique


Le système de numération décrit la façon avec laquelle les nombres sont représentés. Il est défini par :

 Un alphabet : ensemble de symboles ou chiffres,


 Des règles d’écritures des nombres : Juxtaposition de symboles.

15
Il existe plusieurs systèmes de numérations dont les plus connus sont

 Le système décimal (b=10) qui est utilisé et pratiqué dans notre vie quotidienne. Ce système
utilise dix chiffres : {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}.

 Le système binaire (b=2) qui est utilisé par les ordinateurs. Ce système utilise deux chiffres {0,
1}. Par convention on identifie 0 comme une absence de tension, et 1 comme une présence de
tension. L'ordinateur comprend donc uniquement des nombres en base 2.
Exemple : 101101, 01100110, 11111111, 10000001.

 Le système octal (b=8=23) qui permet de coder trois bits par un seul symbole. Ce système
utilise huit chiffres : {0, 1, 2, 3, 4, 5, 6, 7}.

 Le système hexadécimal (b=16) est utilisé pour réduire encore plus l'écriture des nombres
binaire. La base hexadécimale est aussi une puissance de 2 (16 = 24). Qui permet de coder
quatre bits par un seul symbole. Ce système utilise seize chiffres : {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A,
B, C, D, E, F}.

2.3.1. Les bases décimale, binaire et hexadécimale


Nous utilisons le système décimal (base 10) dans nos activités quotidiennes. Ce système est basé sur
dix symboles, de 0 à 9, avec une unité supérieure (dizaine, centaine, etc.) à chaque fois que dix unités
sont comptabilisées. C'est un système positionnel, c'est-à-dire que l'endroit où se trouve le symbole
définit sa valeur. Ainsi, le 2 de 523 n'a pas la même valeur que le 2 de 132. En fait, 523 est l'abréviation

16
de 5·102 + 2·101 + 3·100. On peut selon ce principe imaginer une infinité de systèmes numériques
fondés sur des bases différentes.

 En informatique, outre la base 10, on utilise très fréquemment le système binaire (base 2)
puisque l'algèbre booléenne est à la base de l'électronique numérique. Deux symboles suffisent
: 0 et 1.
 On utilise aussi très souvent le système hexadécimal (base 16) du fait de sa simplicité
d'utilisation et de représentation pour les mots machines (il est bien plus simple d'utilisation que
le binaire). Il faut alors six symboles supplémentaires : A (qui représente le 10), B (11), C (12),
D (13), E (14) et F (15) Le tableau ci-dessous montre la représentation des nombres de 0 à 15
dans les bases 10, 2 et 16.

Le tableau ci-dessus montre la représentation des nombres de 0 à 15 dans les bases : décimale,
binaire, et hexadécimale.

2.4. Représentation des nombres entiers


2.4.1. Forme Polynomiale
On peut décomposer tout nombre N en fonction de puissances entières de la base de son système de
numération. On notera en indice la base du système de numération dans lequel le nombre N envisagé
est écrit (10 dans l’exemple ci-dessous).

Considérons par exemple, le nombre décimal 1234, On aura :

(1234) (10) = 1x103 + 2x102 + 3x101 + 4x100

Le chiffre de droite (4 dans l’exemple) s’appelle le chiffre de poids faible. Celui de gauche (1 dans
l’exemple) s’appelle le chiffre de poids fort. L’exposant de la base, associé à un chiffre d’un nombre
quelconque, s’appelle le rang. Par exemple 4 est de rang 0 tandis que 1 est de rang 3 dans l’exemple
ci-dessus. On peut généraliser cette notion et écrire sous forme polynomiale tout nombre N de base b
quelconque.

17
 Soit un nombre 7854261, le 7 représente le poids fort et le 1 le poids faible.
 Soit un nombre 785,4261 les chiffres 785 représente la partie entière, 4261 représente la partie
fractionnelle.

∗ (1)

Où est un chiffre qui appartient à la base tel que 0 ≤ < b.

 , est le rang du chiffre


 est l’exposant de du chiffre de poids fort.

2.4.2. Le changement de base : transcodage


Le transcodage (ou conversion de base) est l’opération qui permet de passer de la représentation d’un
nombre exprimé dans une base (b) à la représentation du même nombre mais exprimé dans une autre
base (b’).

 Conversion d’un nombre de base quelconque en un nombre de base décimale


Elle s’obtient par la forme polynomiale vue au paragraphe précédent.
Exemple : Donner la valeur décimale du nombre binaire N=1010

 Conversion d’un nombre de base décimale en un nombre de base quelconque


Soit N un nombre écrit en base décimale. Si on veut le convertir dans une autre base , il faut donc
que l’égalité donnée par l’équation (1) soit vérifiée. Le problème revient donc à déterminer les valeurs
de . Pour cela deux méthodes sont possibles :

1ère méthode
La méthode des puissances qui consiste à chercher les différentes puissances entières de la
base . L’algorithme commence par chercher la plus grande puissance entière de contenue
dans N, retrancher ensuite cette quantité du nombre N, recommencer ce processus en
considérant le reste obtenu.

18
Exemple : convertir le nombre N=75(10) en nombre Octal.
Solution : On aura successivement

Donc N=75(10) = 1 x 82 + 1 x 81 + 3 x 80

On a donc : N=75(10) =113(8)

2ème méthode (L'algorithme d'Euclide)


Cette méthode est simple et plus rapide que la précédente. Elle consiste à faire des divisions
successives par la base jusqu’à ce que le quotient soit égal à zéro. On écrit ensuite tous les restes
à partir de la fin et de gauche à droite, en les convertissant en lettres s’il y a lieu (dans le cas
hexadécimal par exemple).

Pour le cas de notre exemple précédent, nous obtiendrons ceci : On a donc : N = 75(10) =113(8)

2.6. Les nombres fractionnaires


On écrira un nombre fractionnaire inférieur à 1 sous la forme :

∗ (2)
1

Où est un chiffre qui appartient à la base tel que 0 ≤ < b.

 , est le rang du chiffre


 est l’exposant de du chiffre de poids faible.

Problème 1 :
 Convertir un nombre fractionnaire de base b en décimal.
Exemple : convertir =0,1011(2) en décimal.
Solution : nous obtenons : = 1x2-1 + 0x2-2 + 1x2-3+ 1x2-4 =0.5+0.125+0.0625 = 0.6875(10)

19
Problème 2 :
 Convertir un nombre décimal fractionnaire en un nombre de base b.
Pour convertir un nombre décimal fractionnaire en un nombre de base b, il faut multiplier sa partie
fractionnaire par la base. La partie entière du résultat est encadré, et la partie fractionnaire résultante
est multipliée par la base. On recommence ce processus jusqu’à ce qu’un de ces critères soit vérifié.

 Le résultat de la multiplication est un nombre entier.


 Après une certaine précision (nombre de chiffres après la virgule)

Exemple : convertir = 0,85(10) en binaire, prendre 04 chiffres après la virgule.


Solution : nous obtenons :
0.85 x 2 = 1,70
0.70 x 2 = 1.4
0.4 x 2 = 0.8
0.8 x 2= 1.6
On écrit de gauche à droite les nombres encadrés pris de haut en bas, On aura donc :

= 0,85(10) =0.1101 (2)

Conversion d’octal à décimal et vice versa


Le système octal (b=8) permet de coder trois bits par un seul chiffre. Ce
système utilise les huit chiffres suivants : {0, 1, 2, 3, 4, 5, 6, 7}. Pour
convertir un nombre fractionnaire binaire en octal, il faut juste grouper les
bits par blocs de trois à partir de la virgule, en allant vers la gauche pour
la partie entière et vers la droite pour la partie fractionnaire. Convertir
ensuite ces blocs en octal en se basant sur le tableau antérieur.

20
Conversion binaire-hexadécimal et vice versa
Le système hexadécimal (b=16) permet de coder quatre bits par un
seul symbole. Ce système utilise les dix chiffres de la base décimale
: {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, plus, les six symboles suivants : {A, B, C,
D, E, F}. Pour convertir un nombre fractionnaire binaire en
Hexadécimal, il faut juste grouper les bits par blocs de quatre à partir
de la virgule, en allant vers la gauche pour la partie entière et vers la
droite pour la partie fractionnaire. Convertir ensuite ces blocs en Hexadécimal en se basant sur le
tableau.

2.7. Les opérations arithmétiques en binaire

ADDITION SOUSTRACTION
L’algorithme de l’addition des nombres binaires Comme dans le cas du système décimal, la
est le même que celui de l’addition des nombres soustraction en binaire est également basée sur
décimaux. la notion de retenue.

21
Remarque : 1 + 1 + 1 = 1 et retenue de 1.

MULTIPLICATION DIVISION

Toujours comme dans le cas du système C’est le même algorithme classique de la division
décimal, chaque nombre de la ligne du bas sera décimale. Elle s'effectue à l'aide de soustractions
distribué à la ligne du haut. Ensuite, chaque ligne et de décalages, Les chiffres du quotient, plus
sera sommée (ne pas oublier les retenues) et le simples, sont 0 ou 1 ; 1 lorsque le diviseur est
résultat sera alors obtenu. plus petit que le dividende et 0 sinon.

2.8. Conclusion
Dans ce chapitre, nous avons présenté les systèmes de numération les plus utilisés dans les systèmes
numériques notamment le système binaire, octal et hexadécimal. Aussi, nous avons étudié les
opérations de codage, décodage, conversion de codes ainsi que la réalisation des opérations
arithmétiques en binaire. Nous avons étudié aussi le codage ainsi que l’arithmétique dans les nombres
réels.

22
Chapitre III : Architecture de base d’un ordinateur.
3.1. Introduction
L’ordinateur, outils informatique permettant de faire un traitement automatique de l’information. Tout ce
qui est doté d’un clavier et d’un écran n’est pas obligatoirement un ordinateur. Les entreprises ayant
besoin d’un réseau étendu utilisent de fois un gros ordinateur (mainframe), et des ordinateurs moyen
ou un « mini », selon le nombre de postes qui y seront connectés simultanément.

Les postes connectés à cette machine centrale puissante peuvent être de simples terminaux passifs
(sans capacité de traitement local et sans disque).

Les objectifs de ce chapitre sont les suivants :


 Découvrir la structure d’une "machine numérique"
 Connaitre les éléments constitutifs d’un ordinateur
 Connaitre les connecteurs internes et externes d’un ordinateur
 Comprendre l’organisation fonctionnelle des éléments constitutifs.

3.2. Structure de l’ordinateur


Du point de vue structure de l’ordinateur, nous pouvons parler de la structure interne et externe de
l’ordinateur. Du point de vue externe, nous pouvons dire que l’ordinateur est généralement composé,
au plan matériel :

 D’un clavier et d’une souris qui permettent d’entrer des informations dans la machine ;
 D’un écran qui permet de visualiser les informations sortant de l’ordinateur ;
 D’un boîtier ou tour appelé unité-centrale
 D’une imprimante (sortie sur papier) et d’un scanner (entrée papier).

23
Du point de vue interne nous parlerons des éléments constitutifs d’une unité centrale.

 La carte mère
 Les différents connecteurs internes et externes
 Le bloc d’alimentation
 Les Mémoires
 Le Processeurs.

Le clavier, écran, souris, imprimante, scanner et disques constituent des périphériques de l’ordinateur,
ainsi nommés car ils sont situés autour du processeur.

3.2.1. La carte-mère (Motherboard / Mainboard)


La carte mère est l'un des éléments essentiels d'un ordinateur. D’ailleurs c’est un élément constitutif
principal de l’ordinateur. Elle assure la connexion physique des différents composants (processeur,
mémoire, carte d'entrées/sorties). D’où c’est le socle permettant la connexion des éléments essentiels
de l’ordinateur par l’intermédiaire de différents bus (adresses, données et commande). Plusieurs
technologies de bus peuvent se côtoyer sur une même carte mère. La qualité de la carte mère est vitale
puisque la performance de l’ordinateur dépend énormément d’elle.

On retrouve toujours sur une carte mère :

 Le chipset : c’est une interface d’entrée/sortie. Elle est constituée par un jeu de plusieurs
composants chargé de gérer la communication entre le microprocesseur et les périphériques. C’est
le lien entre les différents bus de la carte mère.
 Le BIOS (Basic Input Output Service) : c’est un programme responsable de la gestion du matériel,
clavier, écran, disques durs, liaisons séries et parallèles. Il est sauvegardé dans une mémoire morte
(EEPROM) et agit comme une interface entre le système d’exploitation et le matériel.
 L’horloge : elle permet de cadencer le traitement des instructions par le microprocesseur ou la
transmission des informations sur les différents bus.
 Les ports de connexion : ils permettent de connecter des périphériques sur les différents bus de
la carte mère. Il existe des ports « internes » pour connecter des cartes d’extension (PCI, ISA,
AGP) ou des périphériques de stockage (SCSI, IDE, Serial ATA) et des ports « externes » pour
connecter d’autres périphériques (série, parallèle, USB, FireWire).
 Le socket : c’est le nom du connecteur destiner au microprocesseur. Il détermine le type de
microprocesseur que l’on peut connecter.

24
3.2.2. Architecture d’une carte mère

Ici le chipset est composé par deux composants nommés Pont Nord et Pont Sud.

 Le pont Nord s’occupe d’interfacer le microprocesseur avec les périphériques rapides (mémoire
et carte graphique) nécessitant une bande passante élevée.
 Le pont sud s’occupe d’interfacer le microprocesseur avec les périphériques plus lents (disque
dur, CDROM, lecteur de disquette, réseau).
On voit apparaître différents bus chargés de transporter les informations entre le microprocesseur et la
mémoire ou les périphériques, ces bus sont ceux-là qui nous permettrons d’établir les connecteurs
(ports / interfaces) internes et externes de l’ordinateur.

25
3.2.3. Les connecteurs internes
Le socket
Le socket est l'emplacement de la carte mère dans lequel vient se loger
le processeur central de votre ordinateur. Il existe plusieurs modèles de
sockets, chacun compatible avec un type bien particulier de processeur.
Aussi, une carte mère ne peut pas héberger n'importe quel processeur.
Les sockets les plus utilisés à l'heure actuelle sont le socket A dédiés aux
processeurs Duron et Athlon XP du constructeur AMD et le socket 478
pour les processeurs Célérons et Pentium 4 de la firme Intel. Sur le côté du socket se trouve le ZIF
(Zero Force Insertion), petit levier en métal permettant de fixer le processeur au socket.

26
Les Slots de Mémoire Vive
La mémoire vive est souvent comparée aux poumons de l'ordinateur,
puisque c'est de cette mémoire que sont puisées les ressources
nécessaires au lancement de vos applications. Plus vous en avez, plus
votre ordinateur sera endurant. La mémoire vive se présente sous forme
d'une ou plusieurs barrettes qui viennent s’éclipser dans des slots intégrés à la carte mère.

Deux types de format existent pour les barrettes de mémoire vive, ce qui explique la présence sur de
nombreuses cartes mère des deux formats de slots (nombre différent de connecteurs). Les barrettes
au format SDRAM (plus anciennes) s'enfichent dans les slots noirs ayant deux détrompeurs, tandis que
les barrettes de DDRAM (plus rapides que les barrettes SDRAM dans les anciennes versions)
s'enfichent dans les slots généralement bleus avec un détrompeur.

Les ports IDE et le port Floppy


La carte mère intègre par défaut deux ports IDE et un port Floppy.

Les ports IDE, sont utilisés pour connecter à votre carte mère vos
disques durs, mais aussi votre lecteur de CD, de DVD et votre
graveur par le biais d'un câble spécial appelé Nappe IDE. Un seul
port IDE peut supporter deux périphériques (vous pouvez donc utiliser vos deux ports IDE pour au
maximum deux disques durs, un lecteur DVD et un graveur par exemple). Un des ports IDE est de
couleur bleu, il s'agit du port le plus rapide à utiliser pour relier votre carte mère et le disque dur
contenant le système d'exploitation.

Le port Floppy, plus petit est nécessaire au raccordement à la carte du lecteur de disquette, devient
de moins en moins sollicité.

Les Ports PCI


Les ports PCI sont des slots d'extension situés sur la carte mère dans
lesquels s'enfichent les périphériques internes sous forme de carte (carte
modem, carte d'acquisition vidéo). Ils sont toujours de couleur blanche. Une
carte mère en intègre entre 3 à 7.

27
Le port AGP
Il peut ne pas être présent sur les cartes mères avec vidéo
intégrée, puisque le port AGP est destiné à recevoir la carte vidéo
de votre ordinateur sur laquelle est relié l'écran. Il s'agit d'un slot
de couleur marron, situé juste au-dessus des ports PCI. Le port
AGP existe en différentes normes de débit AGPx2, AGP x4 et
AGPx8, avec pour chacune de ces normes un débit des données plus rapide que la norme précédente.
Le connecteur AGP n'est utilisable que par des cartes graphiques alors que les PCI peuvent recevoir
d'autres types de cartes, contrôleur SCSI, carte son, carte réseau.

Le port AMR / CNR


Les ports AMR/CNR (Audio and Modem Riser / Communication
and Networking Riser) sont des ports internes. Le premier, le port
AMR, permet de connecter soit une carte audio soit un modem
tous les deux au format AMR. Bien que très peu utilisé, une
évolution vient de sortir le port CNR qui doit permettre de
connecter toutes sortes de périphériques. L'utilité de ces nouveaux ports actuellement est encore à
démontrer.

3.2.4. Les connecteurs externes


Une machine numérique capable d’effectuer des millions de calculs à chaque seconde est sans intérêt si elle
garde ses résultats pour elle. Les périphériques permettent au système de communiquer avec l’homme ou
avec d'autres systèmes, ou encore de stocker des informations. Cette fonction de communication est
assurée par des "ports".

28
Port Série RS232 :
Principe de la transmission série : Les n bits de la donnée à communiquer sont
envoyés les uns après les autres (en série) sur un seul fil de liaison. Historiquement,
le port série est le premier port de communication utilisant une transmission série (norme RS232). Son
débit est au maximum de 19,2 kbps ou kb/s (kilobits par
seconde). Il a été très longtemps utilisé pour sa simplicité de
configuration et de pilotage. C'est d'ailleurs le protocole de
communication mis en œuvre pour un grand nombre de
système du laboratoire. Il est en voie de disparition.

Port USB: USB (Universal Serial Bus)


Est un protocole de communication série universel apparu en 1996 (USB 1.0). Il a révolutionné les
connectiques PC-périphériques en instaurant un environnement "tout USB", uniformisant enfin les
modes de communication avec l'ordinateur... Ses principaux concurrents sont désormais les protocoles
sans fil Bluetooth et Wi-Fi.

Port Parallèle :
Connecteur de type D-SUB, ici DB25. Principe de la transmission parallèle : Les n bits de la donnée à
communiquer sont simultanément présents sur le câble de transmission. Le port parallèle est en voie
d'extinction, comme le port série RS232. Il était autrefois le plus souvent utilisé pour la communication
PC-imprimante car il était le plus rapide (16 Mb/s).

Port PS/2 : (Personal System/2)


Permet la connexion du clavier et/ou de la souris ; il est également supplanté par le standard USB
depuis quelques années mais également de plus en plus par le Bluetooth.

Port VGA :
VGA (Video Graphics Array) est un port de type analogique destiné à la communication avec un écran
ou un vidéoprojecteur.

29
Port DVI :
VDI (Digital Visual Interface) est de type numérique non HD ; il apporte donc une amélioration en termes
de réduction du bruit par rapport au port VGA analogique.

Port HDMI :
HDMI (High Définition Multimedia Interface) est de type numérique et permet la transmission de signaux
au format HD. Il existe différents niveaux de norme HDMI.

Port Réseau RJ45 :


RJ45 (Registered Jack) permet la connexion filaire à un réseau local (LAN : Local
Area Network) selon le protocole Ethernet. Différents protocoles existent, spécifiant
différents débits.

3.3. Architecture de base d’un ordinateur


La figure de droite nous montre comment est structuré un ordinateur. Du monde extérieur jusqu’au
traitement des informations. Nous avons 4 blocs, le transfert de données, un bloc qui assure le contrôle,
et ce dernier est lié aux deux autres blocs de mémorisation et celui de traitement des données.

L’architecture de base de la plupart des systèmes à microprocesseur actuel est composée des
éléments suivants :
 Une unité centrale (UC)
 Une mémoire principale
 Des interfaces d’entrées/sorties (E/S)

30
Notez que ces différents organes se connectent entre eux (sont reliés) par des voies des
communications qu’on nomme BUS

L’unité centrale
Elle est composée par le microprocesseur qui est chargé d’interpréter et d’exécuter les instructions d’un
programme, de lire ou de sauvegarder les résultats dans la mémoire et de communiquer avec les unités
d’échange. Toutes les activités du microprocesseur sont cadencées par une horloge.
On caractérise le microprocesseur par :
 Sa fréquence d’horloge : en MHz ou GHz
 Le nombre d’instructions par secondes qu’il est capable d’exécuter : en MIPS
 La taille des données qu’il est capable de traiter : en bits
La mémoire principale
Elle contient les instructions du ou des programmes en cours d’exécution et les données associées à
ce programme. Physiquement, elle se décompose souvent en :

 Une mémoire morte (ROM = Read Only Memory) chargée de stocker le programme. C’est une
mémoire à lecture seule.
 Une mémoire vive (RAM = Random Access Memory) chargée de stocker les données
intermédiaires ou les résultats de calculs. On peut lire ou écrire des données dedans, ces
données sont perdues à la mise hors tension.
Notez que les disques durs, disquettes, CDROM, sont des périphériques de stockage et sont
considérés comme des mémoires secondaires.

Les interfaces d’entrées/sorties


Elles permettent d’assurer la communication entre le microprocesseur et les périphériques, capteur,
clavier, moniteur ou afficheur, imprimante, modem.

31
Les bus
Un bus est un ensemble de fils qui assure la transmission du même type d’information. On retrouve
trois types de bus véhiculant des informations en parallèle dans un système de traitement programmé
de l’information :

 Un bus de données : bidirectionnel qui assure le transfert des informations entre le


microprocesseur et son environnement, et inversement. Son nombre de lignes est égal à la
capacité de traitement du microprocesseur.
 Un bus d’adresses : unidirectionnel qui permet la sélection des informations à traiter dans un
espace mémoire (ou espace adressable) qui peut avoir 2n emplacements, avec n = nombre de
conducteurs du bus d'adresses.
 Un bus de commande: constitué par quelques conducteurs qui assurent la synchronisation
des flux d'informations sur les bus des données et des adresses.

32
Chapitre IV : Les Mémoires.
4.1. Introduction
Une mémoire est un dispositif permettant d'enregistrer, de conserver et de restituer de l'information.
Les informations peuvent être écrites ou lues. Il y a écriture lorsqu'on enregistre des informations en
mémoire, lecture lorsqu'on récupère des informations précédemment enregistrées.

4.2. Organisation d’une mémoire


Une mémoire peut être représentée comme une armoire de
rangement constituée de différents tiroirs. Chaque tiroir
représente alors une case mémoire qui peut contenir un seul
élément : des données. Le nombre de cases mémoires
pouvant être très élevé, il est alors nécessaire de pouvoir les
identifier par un numéro. Ce numéro est appelé adresse.
Chaque donnée devient alors accessible grâce à son adresse

Avec une adresse de n bits il est possible de référencer au plus 2n cases mémoire. Chaque case est
remplie par un mot de données ou mot mémoire et ces mots sont de taille 16, 32 ou 64 bits. La taille
de ces mots est à distinguer de celle des mots traités par le processeur (16 bits, 32 bits, 64 bits). Sa
longueur m est toujours une puissance de 2.

Le nombre de fils d’adresses d’un boîtier mémoire définit donc le nombre de cases mémoire que
comprend le boîtier. Le nombre de fils de données définit la taille des données que l’on peut
sauvegarder dans chaque case mémoire.

En plus du bus d’adresses et du bus de données, un boîtier mémoire comprend une entrée de
commande qui permet de définir le type d’action que l’on effectue avec la mémoire (lecture/écriture) et
une entrée de sélection qui permet de mettre les entrées/sorties du boîtier en haute impédance.

On peut donc schématiser un circuit mémoire par la figure suivante où l’on peut distinguer :

33
 Les entrées d’adresses
 Les entrées de données
 Les sorties de données
 Les entrées de commandes :
1. Une entrée de sélection de lecture ou d’écriture. (R/ )
2. Une entrée de sélection du circuit. ( )

Une opération de lecture ou d’écriture de la mémoire suit toujours le même cycle :


1. sélection de l’adresse
2. choix de l’opération à effectuer (R/ )
3. sélection de la mémoire ( =0)
4. lecture ou écriture la donnée
Les entrées et sorties de données sont très souvent regroupées sur des bus bidirectionnels.

4.3. Les caractéristiques d’une mémoire


La notion de mémoire pour un ordinateur regroupe différents matériels et ne correspond pas qu'à un
seul dispositif permettant de stocker de l'information. Ces dispositifs peuvent être de différentes natures,
de différentes technologies, ceci leur donnant des caractéristiques différentes.

 Différentes technologies : électronique (semi-conducteur) - magnétique – optique.


 Différentes caractéristiques : capacité - temps d'accès – débit – volatilité.

Voici quelques-unes des grandeurs caractérisant les mémoires. Le temps d'accès est ce qui mesure la
latence entre l'ordre donné à la mémoire (écriture/lecture) et l'exécution effective de cet ordre.

34
 La capacité : c’est le nombre total de bits que contient la mémoire. Elle s’exprime en octet.
 Le format des données : c’est le nombre de bits que l’on peut mémoriser par case mémoire.
On dit aussi que c’est la largeur du mot mémorisable.
 Le temps d’accès : c’est le temps qui s'écoule entre l'instant où a été lancée une opération de
lecture/écriture en mémoire et l'instant où la première information est disponible sur le bus de
données.
 Le temps de cycle : il représente l'intervalle minimum qui doit séparer deux demandes
successives de lecture ou d'écriture. (Deux accès à la mémoire)
 Le débit : c’est le nombre maximum d'informations lues ou écrites par seconde.
 Caractéristiques Techniques (volatile/non volatile): elle caractérise la permanence des
informations dans la mémoire. L'information stockée est volatile si elle risque d'être altérée par
un défaut d'alimentation électrique et non volatile dans le cas contraire.

Exemple : Chronogramme d’un cycle de lecture dans une mémoire.

Les mémoires utilisées pour réaliser la mémoire principale d’un système à microprocesseur sont des
mémoires à semi-conducteur. On a vu que dans ce type de mémoire, on accède directement à n'importe
quelle information dont on connaît l'adresse et que le temps mis pour obtenir cette information ne
dépend pas de l'adresse. On dira que l'accès à une telle mémoire est aléatoire ou direct.

A l'inverse, pour accéder à une information sur bande magnétique, il faut dérouler la bande en repérant
tous les enregistrements jusqu'à ce que l'on trouve celui que l'on désire. On dit alors que l'accès à
l'information est séquentiel. Le temps d'accès est variable selon la position de l'information recherchée.
L'accès peut encore être semi-séquentiel : combinaison des accès direct et séquentiel.

Pour un disque magnétique par exemple l'accès à la piste est direct, puis l'accès au secteur est
séquentiel.

35
4.4. Types de mémoires
Pour des raisons technologiques (l'augmentation de la taille d'une mémoire s'accompagne toujours de
l'augmentation du temps d'accès) et des raisons économiques (plus vite = plus cher), on utilise
différents types de mémoires. La vitesse d'une mémoire (temps d'accès et débit) est inversement
proportionnelle à sa taille usuelle.

4.4.1. Mémoires vives ou RAM (Random Acces Memory : mémoire à accès aléatoire)
Une mémoire vive, sert au stockage temporaire de données. Elle doit avoir un temps de cycle très court
pour ne pas ralentir le microprocesseur. Les mémoires vives sont en général volatiles : elles perdent
leurs informations en cas de coupure d'alimentation. Certaines d'entre elles, ayant une faible
consommation, peuvent être rendues non volatiles par l'adjonction d'une batterie.

Il existe deux grandes familles de mémoires RAM

1. RAM Statique
2. RAM Dynamique

SRAM : n'ont pas besoin de rafraichissement car un bit est stocké par une bascule : 1 bit = 4 transistors
= 2 portes NOR. Elle est donc également volatile. Elle est plus couteuse qu'une DRAM et est notamment
utilisée pour les mémoires caches du processeur.
Ceci correspond à la notion de bascule utilisée pour stocker une information.
Statique : l'information n'a pas besoin d'être rafraichie.

 Bascule RS (ou D) qui stocke l'information, elle est beaucoup plus rapide que la DRAM et
beaucoup plus cher que la DRAM.

DRAM : Mémoire électronique à réalisation très simple : 1 bit = 1 transistor + 1 condensateur, le


condensateur stocke l'information. Le problème est que les condensateurs ont le défaut de se
décharger (perdre lentement sa charge) et ils doivent être rechargés fréquemment (rafraichissement).

36
Durant ces temps de rechargement, la mémoire ne peut être ni lue, ni écrite, ralentissant donc son
fonctionnement (d'où le terme de Dynamique). C'est une mémoire volatile car sans alimentation, les
données sont perdues. Peu couteuse elle est principalement utilisée pour la mémoire centrale (RAM)
de l'ordinateur.

4.4.2. Mémoires mortes ou ROM (Read Only Memory ou memoire à lecture seule)
Pour certaines applications, il est nécessaire de pouvoir conserver des informations de façon
permanente même lorsque l'alimentation électrique est interrompue. On utilise alors des mémoires
mortes ou mémoires à lecture seule. Ces mémoires sont non volatiles.

Contrairement aux RAM, ne peuvent être que lue. L’inscription en mémoire des données restent
possible mais est appelée programmation. Suivant le type de ROM, la méthode de programmation
changera. Il existe donc plusieurs types de ROM :

 ROM (Read Only Memory) : Information stockée au moment de la conception du circuit.


 PROM (Programmable Read Only Memory) : Mémoire programmable par un utilisateur final
mais une seule fois.
 EPROM (Erasable Programmable Read Only Memory) : Mémoire (re)programmable et
effaçable par ultraviolet.
 EEPROM (Electrically Erasable Programmable Read Only Memory): Mémoire
reprogrammable et effaçable électriquement. Exemple le Bios flashable

4.5. Localisation des mémoires


Voici la disposition des différentes mémoires dans un ordinateur. Les registres, qui constituent les
mémoires de travail du processeur, se trouvent en son sein. La mémoire cache (copie rapide de la
mémoire centrale) est souvent décomposée en plusieurs parties, l'une collée sur le processeur et l'autre
toute proche mais sur la carte mère. Toujours sur la carte mère, les mémoires principales (mémoire

37
vive ou RAM, mémoire morte ou ROM) qui stockent des données et programmes. Finalement, hors de
la carte mère, la mémoire de masse stockant les informations, généralement sous forme de fichiers.

4.6. Notion de hiérarchie mémoire


Une mémoire idéale serait une mémoire de grande capacité, capable de stocker un maximum
d’informations et possédant un temps d’accès très faible afin de pouvoir travailler rapidement sur ces
informations. Mais il se trouve que les mémoires de grande capacité sont souvent très lentes et que les
mémoires rapides sont très chères. Et pourtant, la vitesse d’accès à la mémoire conditionne dans une
large mesure les performances d’un système.

En effet, c’est là que se trouve le goulot d’étranglement entre un microprocesseur capable de traiter
des informations très rapidement et une mémoire beaucoup plus lente (ex : processeur actuel à 3Ghz
et mémoire à 400MHz). Or, on n’a jamais besoin de toutes les informations au même moment. Afin
d’obtenir le meilleur compromis coût-performance, on définit donc une hiérarchie mémoire. On utilise
des mémoires de faible capacité mais très rapide pour stocker les informations dont le microprocesseur
se sert le plus et on utilise des mémoires de capacité importante mais beaucoup plus lente pour stocker
les informations dont le microprocesseur se sert le moins. Ainsi, plus on s’éloigne du microprocesseur
et plus la capacité et le temps d’accès des mémoires vont augmenter.

38
 Les registres sont les éléments de mémoire les plus rapides. Ils sont situés au niveau du
processeur et servent au stockage des opérandes et des résultats intermédiaires.
 La mémoire cache est une mémoire rapide de faible capacité destinée à accélérer l’accès à la
mémoire centrale en stockant les données les plus utilisées.
 La mémoire principale est l’organe principal de rangement des informations. Elle contient les
programmes (instructions et données) et est plus lente que les deux mémoires précédentes.
 La mémoire d’appui sert de mémoire intermédiaire entre la mémoire centrale et les mémoires
de masse. Elle joue le même rôle que la mémoire cache.
 La mémoire de masse est une mémoire périphérique de grande capacité utilisée pour le
stockage permanent ou la sauvegarde des informations. Elle utilise pour cela des supports
magnétiques (disque dur, ZIP) ou optiques (CDROM, DVDROM).

4.7. Méthodes d'accès


La méthode d'accès d’écrit comment accéder à une information en connaissant sa position. L'accès
direct est similaire à l'accès à une case d'un tableau, on accède directement à n'importe quelle case
directement par son indice. L'accès séquentiel est similaire à l'accès d'une information dans une liste
chainée, il faut parcourir toutes les cellules précédant l'information d'intérêt.

 Accès séquentiel
 Pour accéder à une information, il faut parcourir toutes les informations qui la précède.
 Exemple : bandes magnétiques.
 Accès direct
 Chaque information possède une adresse propre, à laquelle on peut accéder directement
 Exemple : mémoire centrale de l'ordinateur.
 Accès semi-séquentiel
 Intermédiaire entre séquentiel et direct
 Exemple : disque dur
 Accès associatif
 Une information est identifiée par sa clé
 On accède à une information via sa clé
 Exemple :

39
Chapitre V : Le Microprocesseur.
5.1. Introduction
Tous nous comprenons l’architecture de l’ordinateur qui est basée sur le modèle de Von John Newman.
Alors comme objectifs de ce chapitre, le lecteur doit
 Comprendre l’architecture du microprocesseur
 Comprendre les étapes du déroulement de l’exécution d’une instruction.
 Comprendre le principe des différents modes d’adressage.
 Le jeu d’instruction et les deux grandes familles d’architectures des microprocesseurs
 Connaitre les améliorations des microprocesseurs : pipeline et scalaire
 Comprendre la notion de la mémoire cache.

Pour y entrer dans le vif du chapitre, nous posons quelques questions scientifiques pour contribuer à
la compréhension.

C’est quoi un microprocesseur ? c’est quoi une instruction ? c’est quoi un programme ?

On peut définir le microprocesseur comme étant un circuit intégré complexe caractérisé par une très
grande intégration et doté des facultés d'interprétation et d'exécution des instructions d'un programme.
Il est chargé d’organiser les tâches précisées par le programme et d’assurer leur exécution. Il doit aussi
prendre en compte les informations extérieures au système et assurer leur traitement. C’est le cerveau
du système.

 Une instruction, c’est une commande, c’est un ordre donné par un utilisateur à l’ordinateur.
Exemple : Print ‘Hello’ soit imprime Salut.
 Un programme, c’est l’ensemble de plusieurs instructions exécutées dans un ordre bien
déterminé.
 Un langage, c’est un ensemble de commande nécessaires pour l’écriture d’un programme afin
qu’il soit compréhensible par l’ordinateur. (c++ java, pascal, python…)
Exemple d’exécution d’un programme
Edition Print (‘Hello’)
Compilation 10100110101011
Exécution Hello

40
5.2 Architecture de base d’un microprocesseur
Un microprocesseur est construit autour de deux éléments principaux :
 Une unité de commande
 Une unité de traitement
Associés à des registres chargées de stocker les différentes informations à traiter. Ces trois éléments
sont reliés entre eux par des bus interne permettant les échanges d’informations.

Les registres peuvent être classifier en deux groupes :

1. Les registres d'usage général permettent à l'unité de traitement de manipuler des données à
vitesse élevée. Ils sont connectés au bus de donnée interne au microprocesseur.
2. Les registres d'adresses (pointeurs) connectés sur le bus adresses.

5.2.1. L’unité de commande


Elle permet de séquencer le déroulement des instructions. Elle effectue la recherche en mémoire de
l'instruction. Comme chaque instruction est codée sous forme binaire, elle en assure le décodage pour
enfin réaliser son exécution puis effectue la préparation de l'instruction suivante. Pour cela, elle est
composée par :
 Un compteur de programme constitué par un registre dont le contenu est initialisé avec l'adresse
de la première instruction du programme. Il contient toujours l’adresse de l’instruction à
exécuter.
 Le registre d'instruction et le décodeur d'instruction : chacune des instructions à exécuter est
rangée dans le registre instruction puis est décodée par le décodeur d’instruction.
 Un Bloc logique de commande (ou séquenceur) : Il organise l'exécution des instructions au
rythme d’une horloge. Il élabore tous les signaux de synchronisation internes ou externes (bus
de commande) du microprocesseur en fonction des divers signaux de commande provenant du

41
décodeur d’instruction ou du registre d’état par exemple. Il s'agit d'un automate réalisé soit de
façon câblée (obsolète), soit de façon micro-programmée, on parle alors de micro
microprocesseur.

5.2.2. L’unité de traitement


C’est le cœur du microprocesseur. Elle regroupe les circuits qui assurent les traitements nécessaires à
l'exécution des instructions :

 L’Unité Arithmétique et Logique (UAL) est un circuit complexe qui assure les fonctions
logiques (ET, OU, Comparaison, Décalage) ou arithmétique (Addition, soustraction).
 Le registre d'état est généralement composé de 8 bits à considérer individuellement. Chacun
de ces bits est un indicateur dont l'état dépend du résultat de la dernière opération effectuée
par l’UAL. On les appelle indicateur d’état ou flag ou drapeaux. Dans un programme le résultat
du test de leur état conditionne souvent le déroulement de la suite du programme. On peut citer
par exemple les indicateurs de :
 Retenue (carry : C)
 Retenue intermédiaire (Auxiliaire-Carry : AC)
 o signe (Sign : S)
 o débordement (overflow : OV ou V)
 o zéro (Z)
 o parité (Parity : P)
 Les accumulateurs sont des registres de travail qui servent à stocker un opérande au début
d'une opération arithmétique et le résultat à la fin de l'opération.

42
5.5.3. Cycle d’exécution d’une instruction
Le microprocesseur ne comprend qu’un certain nombre d’instructions qui sont codées en binaire. Le
traitement d’une instruction peut être décomposé en trois phases :

Phase 1 : Recherche de l'instruction à traiter


 Le PC contient l'adresse de l'instruction suivante du programme. Cette valeur est placée sur le
bus d'adresses par l'unité de commande qui émet un ordre de lecture.
 Au bout d'un certain temps (temps d'accès à la mémoire), le contenu de la case mémoire
sélectionnée est disponible sur le bus des données.
 L'instruction est stockée dans le registre instruction du processeur.

Phase 2 : Décodage de l’instruction et recherche de l'opérande


Le registre d'instruction contient maintenant le premier mot de l'instruction qui peut être codée sur
plusieurs mots. Ce premier mot contient le code opératoire qui définit la nature de l'opération à effectuer
(addition, rotation) et le nombre de mots de l'instruction.

1. L'unité de commande transforme l'instruction en une suite de commandes élémentaires


nécessaires au traitement de l'instruction.
2. Si l'instruction nécessite une donnée en provenance de la mémoire, l'unité de commande
récupère sa valeur sur le bus de données.
3. L’opérande est stocké dans un registre.

43
Phase 3 : Exécution de l'instruction
 Le microprogramme réalisant l'instruction est exécuté.
 Les drapeaux sont positionnés (registre d'état).
 L'unité de commande positionne le PC pour l'instruction suivante.

44
5.3. Jeu d’instructions
Définition

La première étape de la conception d’un microprocesseur est la définition de son jeu d’instructions.

Le jeu d’instructions décrit l’ensemble des opérations élémentaires que le microprocesseur pourra
exécuter.

Il va donc en partie déterminer l’architecture du microprocesseur à réaliser et notamment celle du


séquenceur. Il représente l’aspect programmable du microprocesseur : c’est de faire fonctionner
le microprocesseur dans le déroulement de l’application à exécuter. Ce jeu d’instruction doit
respecter une certaine syntaxe, appelée syntaxe du langage de programmation : Langage
Assembleur.

5.2.1. Type d’instructions


Les instructions que l’on retrouve dans chaque microprocesseur peuvent être classées en 4 groupes :
 Transfert de données pour charger ou sauver en mémoire, effectuer des transferts de registre
à registre.
 Opérations arithmétiques : addition, soustraction, division, multiplication.
 Opérations logiques : ET, OU, NON, NAND, comparaison, test.
 Contrôle de séquence : branchement, test…

5.2.2. Codage
Les instructions et leurs opérandes (paramètres) sont stockés en mémoire principale. La taille totale
d’une instruction (nombre de bits nécessaires pour la représenter en mémoire) dépend du type
d’instruction et aussi du type d’opérande. Chaque instruction est toujours codée sur un nombre entier
d’octets afin de faciliter son décodage par le processeur. Une instruction est composée de deux
champs :
 Le code instruction, qui indique au processeur quelle instruction réaliser
 Le champ opérande qui contient la donnée, ou la référence à une donnée en mémoire (son
adresse).
Exemple : Le nombre d'instructions du jeu d'instructions est
directement lié au format du code instruction. Ainsi un octet
permet de distinguer au maximum 256 instructions différentes.

45
5.2.3. Mode d’adressage
Un mode d'adressage définit la manière dont le microprocesseur va accéder à l’opérande. Les différents
modes d'adressage dépendent des microprocesseurs mais on retrouve en général :

 L'adressage de registre où l’on traite la donnée contenue dans un registre.


 L’adressage immédiat où l’on définit immédiatement la valeur de la donnée.
 L’adressage direct où l’on traite une donnée en mémoire.

Selon le mode d’adressage de la donnée, une instruction sera codée par 1 ou plusieurs octets.

5.2.4. Temps d’exécution


Chaque instruction nécessite un certain nombre de cycles d’horloges pour s’effectuer. Le nombre de
cycles dépend de la complexité de l’instruction et aussi du mode d’adressage. Il est plus long d’accéder
à la mémoire principale qu’à un registre du processeur. La durée d’un cycle dépend de la fréquence
d’horloge du séquenceur.

5.4. Langage de programmation


Le langage machine est le langage compris par
le microprocesseur. Ce langage haut niveau est
difficile à maîtriser puisque chaque instruction est
codée par une séquence propre de bits. Afin de
faciliter la tâche du compilation programmeur, on a
créé différents langages plus ou moins évolués.

Le langage assembleur est le langage le plus «


proche » du langage machine. Il est composé par
des instructions en général assemblage assez
rudimentaires que l’on appelle des mnémoniques. Ce sont essentiellement des opérations de transfert
de données entre les (0001 1101, 1111 0110, etc…) registres et l'extérieur du microprocesseur
(mémoire ou périphérique), ou des opérations arithmétiques ou logiques. Chaque instruction représente
un code machine différent. Chaque microprocesseur peut posséder un assembleur différent.

La difficulté de mise en œuvre de ce type de langage, et leur forte dépendance avec la machine a
nécessité la conception de langages de haut niveau, plus adaptés à l'homme, et aux applications qu'il
cherchait à développer. Faisant abstraction de toute architecture de machine, ces langages permettent

46
l'expression d'algorithmes sous une forme plus facile à apprendre, et à dominer (C, Pascal, Java, etc…).
Chaque instruction en langage de haut niveau correspondra à une succession d’instructions en langage
assembleur. Une fois développé, le programme en langage de haut niveau n’est donc pas
compréhensible par le microprocesseur. Il faut le compiler pour le traduire en assembleur puis
l’assembler pour le convertir en code machine compréhensible par le microprocesseur. Ces opérations
sont réalisées à partir de logiciels spécialisés appelés compilateur et assembleur.

Exemple de programme

5.5. Performances d’un microprocesseur


On peut caractériser la puissance d’un microprocesseur par le nombre d’instructions qu’il est capable
de traiter par seconde. Pour cela, on définit :

 Le CPI (Cycle Par Instruction) qui représente le nombre moyen de cycles d’horloge nécessaire
pour l’exécution d’une instruction pour un microprocesseur donné.
 Le MIPS (Millions d'Instructions Par Seconde) qui représente la puissance de traitement du
microprocesseur.
F avec FH en MHz
CPI

NB : Pour augmenter les performances d’un microprocesseur, on peut donc soit augmenter la
fréquence d'horloge (limitation matérielle), soit diminuer le CPI (choix d'un jeu d'instruction adapté).

5.6. Notion d’architecture RISC et CISC


Nous savons que le jeu d'instructions est l'ensemble des opérations élémentaires qu'un processeur
peut accomplir. Le type de jeu d'instructions d'un processeur détermine son architecture. On distingue
deux grandes familles d'architectures :

47
1. Architecture RISC (Reduced Instruction Set Computer)
2. Architecture CISC (Complex Instruction Set Computer)

5.6.1. L’architecture CISC


Pourquoi
Par le passé la conception de machines CISC était la seule envisageable. En effet, vue que la
mémoire travaillait très lentement par rapport au processeur, on pensait qu’il était plus
intéressant de soumettre au microprocesseur des instructions complexes. Ainsi, plutôt que de
coder une opération complexe par plusieurs instructions plus petites (qui demanderaient autant
d’accès mémoire très lent), il semblait préférable d’ajouter au jeu d’instructions du
microprocesseur une instruction complexe qui se chargerait de réaliser cette opération. De plus,
le développement des langages de haut niveau posa de nombreux problèmes quant à la
conception de compilateurs. On a donc eu tendance à incorporer au niveau processeur des
instructions plus proches de la structure de ces langages.
Comment
C’est donc une architecture avec un grand nombre d’instructions où le microprocesseur doit
exécuter des tâches complexes par instruction unique. Pour une tâche donnée, une machine
CISC exécute ainsi un petit nombre d’instructions mais chacune nécessite un plus grand
nombre de cycles d’horloge. Le code machine de ces instructions varie d’une instruction à l’autre
et nécessite donc un décodeur complexe (micro-code)

5.6.2. L’architecture RISC


Pourquoi
Des études statistiques menées au cours des années 70 ont clairement montré que les
programmes générés par les compilateurs se contentaient le plus souvent d'affectations,
d'additions et de multiplications par des constantes. Ainsi, 80% des traitements des langages
de haut niveau faisaient appel à seulement 20% des instructions du microprocesseur. D’où
l’idée de réduire le jeu d’instructions à celles le plus couramment utilisées et d’en améliorer la
vitesse de traitement.

Comment
C’est donc une architecture dans laquelle les instructions sont en nombre réduit (chargement,
branchement, appel sous-programme). Les architectures RISC peuvent donc être réalisées à
partir de séquenceur câblé. Leur réalisation libère de la surface permettant d’augmenter le

48
nombre de registres ou d’unités de traitement par exemple. Chacune de ces instructions
s’exécutent ainsi en un cycle d’horloge. Bien souvent, ces instructions ne disposent que d’un
seul mode d’adressage. Les accès à la mémoire s’effectuent seulement à partir de deux
instructions (Load et Store). Par contre, les instructions complexes doivent être réalisées à partir
de séquences basées sur les instructions élémentaires, ce qui nécessite un compilateur très
évolué dans le cas de programmation en langage de haut niveau.

5.6.3. Comparaison
Le choix dépendra des applications visées. En effet, si on diminue le nombre d'instructions, on crée des
instructions complexes (CISC) qui nécessitent plus de cycles pour être décodées et si on diminue le
nombre de cycles par instruction, on crée des instructions simples (RISC) mais on augmente alors le
nombre d'instructions nécessaires pour réaliser le même traitement.

5.7. Améliorations de l’architecture de base


L'ensemble des améliorations des microprocesseurs visent à diminuer le temps d'exécution du
programme.

 La première idée qui vient à l’esprit est d’augmenter tout simplement la fréquence de l’horloge
du microprocesseur. Mais l’accélération des fréquences provoque un surcroît de consommation
ce qui entraîne une élévation de température. On est alors amené à équiper les processeurs de
systèmes de refroidissement ou à diminuer la tension d’alimentation.
 Une autre possibilité d’augmenter la puissance de traitement d’un microprocesseur est de
diminuer le nombre moyen de cycles d’horloge nécessaire à l’exécution d’une instruction. Dans
le cas d’une programmation en langage de haut niveau, cette amélioration peut se faire en

49
optimisant le compilateur. Il faut qu’il soit capable de sélectionner les séquences d’instructions
minimisant le nombre moyen de cycles par instructions.
 Une autre solution est d’utiliser une architecture de microprocesseur qui réduise le nombre de
cycles par instruction.

5.7.1. Architecture Pipeline


Les anciens processeurs comme 8088 - 8086 étaient de type non-pipeline. Le processeur ne
commençait le traitement de l'instruction suivante que lorsqu'il avait terminé la précédente. Or
l’exécution d’une instruction est décomposée en une succession de quatre (4) étapes, chaque étape
correspond à l’utilisation d’une des fonctions du microprocesseur. Lorsqu’une instruction se trouve dans
l’une des étapes, les composants associés aux autres étapes ne sont pas utilisés. Le fonctionnement
d’un microprocesseur simple n’est donc pas efficace. L’exécution d'une instruction est décomposée en :

1. Chargement de l'instruction dans le processeur


2. Décodage de l’instruction
3. Exécution de l'instruction
4. Renvoi du résultat

L'utilisation d'une structure pipeline permet d’améliorer l’efficacité du microprocesseur. En effet


l’architecture pipeline fait le traitement de plusieurs instructions en même temps.

50
Lorsque la première étape de l’exécution d’une instruction est achevée, l’instruction entre dans la
seconde étape de son exécution et la première phase de l’exécution de l’instruction suivante débute. Il
peut donc y avoir une instruction en cours d’exécution dans chacune des étapes et chacun des
composants du microprocesseur peut être utilisé à chaque cycle d’horloge. L’efficacité est maximale.
Le temps d’exécution d’une instruction n’est pas réduit mais le débit d’exécution des instructions est
considérablement augmenté. Une machine pipeline se caractérise par le nombre d’étapes utilisées pour
l’exécution d’une instruction, on appelle aussi ce nombre d’étapes le nombre d’étages du pipeline.

Gain de performance
Dans cette structure, la machine débute l’exécution d’une instruction à chaque cycle et le pipeline est
pleinement occupé à partir du quatrième cycle. Le gain obtenu dépend donc du nombre d’étages du
pipeline.
En effet, pour exécuter n instructions, en supposant que chaque instruction s’exécute en k cycles
d’horloge, il faut :
 n.k cycles d’horloge pour une exécution séquentielle.
 K cycles d’horloge pour exécuter la première instruction puis n-1 cycles pour les n-1 instructions
suivantes si on utilise un pipeline de k étages.

NB :

 Donc lorsque le nombre n d’instructions à exécuter est grand par rapport à k, on peut admettre
qu’on divise le temps d’exécution par k.

51
 Le temps de traitement dans chaque unité doit être à peu près égal sinon les unités rapides
doivent attendre les unités lentes.

Les Problèmes en Pipeline


La mise en place d’un pipeline pose plusieurs problèmes. En fait, plus le pipeline est long, plus le
nombre de cas où il n’est pas possible d’atteindre la performance maximale est élevé. Il existe 3
principaux cas où la performance d’un processeur pipeline peut être dégradé ; ces cas de dégradations
de performances sont appelés des aléas :

1. Aléa structurel qui correspond au cas où deux instructions ont besoin d’utiliser la même
ressource du processeur (conflit de dépendance).
2. Aléa de données qui intervient lorsqu’une instruction produit un résultat et que l’instruction
suivante utilise ce résultat avant qu’il n’ait pu être écrit dans un registre.
3. Aléa de contrôle qui se produit chaque fois qu’une instruction de branchement est exécutée.
Lorsqu’une instruction de branchement est chargée, il faut normalement attendre de connaître
l’adresse de destination du branchement pour pouvoir charger l’instruction suivante.
Les instructions qui suivent le saut et qui sont en train d’être traitées dans les étages inférieurs
le sont en général pour rien, il faudra alors vider le pipeline. Pour atténuer l’effet des
branchements, on peut spécifier après le branchement des instructions qui seront toujours
exécutées. On fait aussi appel à la prédiction de branchement qui a pour but de recenser lors
de branchements le comportement le plus probable. Les mécanismes de prédiction de
branchement permettent d'atteindre une fiabilité de prédiction de l'ordre de 90 à 95 %.

Lorsqu’un aléa se produit, cela signifie qu’une instruction ne peut continuer à progresser dans le
pipeline. Pendant un ou plusieurs cycles, l’instruction va rester bloquée dans un étage du pipeline, mais

52
les instructions situées plus en avant pourront continuer à s’exécuter jusqu’à ce que l’aléa ait disparu.
Plus le pipeline possède d’étages, plus la pénalité est grande.

Les compilateurs s’efforcent d’engendrer des séquences d’instructions permettant de maximiser le


remplissage du pipeline. Les étages vacants du pipeline sont appelés des « bulles » de pipeline, en
pratique une bulle correspond en fait à une instruction NOP (No OPeration) émise à la place de
l’instruction bloquée.

5.7.2. Architecture Super Scalaire


Une autre façon de gagner en performance est d’exécuter plusieurs instructions en même temps.
L'approche superscalaire consiste à doter le microprocesseur de plusieurs unités de traitement
travaillant en parallèle. Les instructions sont alors réparties entre les différentes unités d'exécution. Il
faut donc pouvoir soutenir un flot important d’instructions et pour cela disposer d’un cache performant.

5.7.3. Architecture pipeline et super scalaire


Le principe est d’exécuter les instructions de façon pipelinée dans chacune des unités de traitement
travaillant en parallèle.

53
5.8. Mémoire cache
L’écart de performance entre le microprocesseur et la mémoire ne cesse de s’accroître. En effet, les
composants mémoire bénéficient des mêmes progrès technologiques que les microprocesseurs, mais
le décodage des adresses et la lecture/écriture d’une donnée sont des étapes difficiles à accélérer.
Ainsi, le temps de cycle processeur décroît plus vite que le temps d’accès mémoire entraînant un goulot
d’étranglement.

La mémoire n'est plus en mesure de délivrer des informations aussi rapidement que le processeur est
capable de les traiter. Il existe donc une latence d’accès entre ces deux organes.

5.8.1. Principe de fonctionnement


Une des solutions utilisées pour masquer cette latence est de disposer une mémoire très rapide entre
le microprocesseur et la mémoire. Elle est appelée cache mémoire. On compense ainsi la faible vitesse
relative de la mémoire en permettant au microprocesseur d’acquérir les données à sa vitesse propre.
On la réalise à partir de cellule SRAM de taille réduite (à cause du coût). Sa capacité mémoire est donc
très inférieur à celle de la mémoire principale et sa fonction est de stocker les informations les plus
récentes ou les plus souvent utilisées par le microprocesseur. Au départ cette mémoire était intégrée
en dehors du microprocesseur mais elle fait maintenant partie intégrante du microprocesseur et se
décline même sur plusieurs niveaux.

54
Les mémoires doivent répondre à deux contraintes contradictoires :
 Taille importante
 Temps d’accès court
Principe de base du cache
Les mots mémoires les plus fréquemment utilisés sont conservés dans une mémoire rapide (cache)
plutôt que dans une mémoire lente (mémoire centrale).

Le principe de cache est très simple : le microprocesseur n’a pas conscience de sa présence et lui
envoie toutes ses requêtes comme s’il agissait de la mémoire principale :

 Soit la donnée ou l’instruction requise est présente dans le cache et elle est alors envoyée
directement au microprocesseur. On parle de succès de cache.

 Soit la donnée ou l’instruction n’est pas dans le cache, et le contrôleur de cache envoie alors
une requête à la mémoire principale. Une fois l’information récupérée, il la renvoie au
microprocesseur tout en la stockant dans le cache. On parle de défaut de cache.

Bien entendu, le cache mémoire n’apporte un gain de performance que dans le premier cas. Sa
performance est donc entièrement liée à son taux de succès. Il est courant de rencontrer des taux de
succès moyen de l’ordre de 80 à 90%.

 Un cache utilisera une carte pour savoir quels sont les mots de la mémoire principale dont il
possède une copie. Cette carte devra avoir une structure simple.

55
 Il existe dans le système deux copies de la même information : l’originale dans la mémoire
principale et la copie dans le cache. Si le microprocesseur modifie la donnée présente dans le
cache, il faudra prévoir une mise à jour de la mémoire principale.
 Lorsque le cache doit stocker une donnée, il est amené à en effacer une autre. Il existe donc
un contrôleur permettant de savoir quand les données ont été utilisées pour la dernière fois. La
plus ancienne non utilisée est alors remplacée par la nouvelle.

Chapitre VII : Echange des Données.


7.1. Introduction.
La fonction d’un système à microprocesseurs, quel qu’il soit, est le traitement de l’information. Il est
donc évident qu’il doit acquérir l’information fournie par son environnement et restituer les résultats de
ses traitements. Chaque système est donc équipé d’une ou plusieurs interfaces d’entrées/sorties
permettant d’assurer la communication entre le microprocesseur et le monde extérieur.

Les techniques d’entrées/sorties sont très importantes pour les performances du système. Rien ne sert
d’avoir un microprocesseur calculant très rapidement s’il doit souvent perdre son temps pour lire des
données ou écrire ses résultats. Durant une opération d’entrée/sortie, l’information est échangée entre
la mémoire principale et un périphérique relié au système. Cet échange nécessite une interface (ou
contrôleur) pour gérer la connexion. Plusieurs techniques sont employées pour effectuer ces échanges.

56
7.2. Rôle et constitution d’une interface d’entrée/sortie
Chaque périphérique sera relié au système par l’intermédiaire d’une interface (ou contrôleur) dont le
rôle est de :
 Connecter le périphérique au bus de données
 Gérer les échanges entre le microprocesseur et le périphérique
Pour ce qui concerne la Constitution, l’interface est constituée par :
 Un registre de commande dans lequel le processeur décrit le travail à effectuer (sens de
transfert, mode de transfert).
 Un ou plusieurs registres de données qui contiennent les mots à échanger entre le périphérique
et la mémoire.
 Un registre d’état qui indique si l’unité d’échange est prête, si l’échange s’est bien déroulé.

7.3. Techniques d’échange de données


Avant d’envoyer ou de recevoir des informations, le microprocesseur doit connaître l’état du
périphérique. En effet, le microprocesseur doit savoir si un périphérique est prêt à recevoir ou à
transmettre une information pour que la transmission se fasse correctement.
Il existe 2 modes d’échange d’information :
 Le mode programmé par scrutation ou interruption où le microprocesseur sert d’intermédiaire
entre la mémoire et le périphérique.
 Le mode en accès direct à la mémoire (DMA) où le microprocesseur ne se charge pas de
l’échange de données.

7.4. Echange programmé


Scrutation
Dans la version la plus rudimentaire, le microprocesseur interroge l’interface pour savoir si des
transferts sont prêts. Tant que des transferts ne sont pas prêts, le microprocesseur attend.
L’inconvénient majeur est que le microprocesseur se retrouve souvent en phase d’attente. Il est
complètement occupé par l’interface d’entrée/sortie. De plus, l’initiative de l’échange de données est
dépendante du programme exécuté par le microprocesseur. Il peut donc arriver que des requêtes
d’échange ne soient pas traitées immédiatement car le microprocesseur ne se trouve pas encore dans
la boucle de scrutation. En Conclusion pour cet échange, il est très lent.

57
Interruption
Une interruption est un signal, généralement asynchrone au programme en cours, pouvant être émis
par tout dispositif externe au microprocesseur. Le microprocesseur possède une ou plusieurs entrées
réservées à cet effet. Sous réserve de certaines conditions, elle peut interrompre le travail courant du
microprocesseur pour forcer l’exécution d’un programme traitant la cause de l’interruption. Dans un
échange de données par interruption, le microprocesseur exécute donc son programme principal
jusqu’à ce qu’il reçoive un signal sur sa ligne de requête d’interruption. Il se charge alors d’effectuer le
transfert de données entre l’interface et la mémoire.

7.5. Principe de fonctionnement d’une interruption :


Avant chaque exécution d’instructions, le microprocesseur examine s’il y a eu une requête sur sa
ligne d’interruption. Si c’est le cas, il interrompt toutes ces activités et sauvegarde l’état présent
(registres, PC, accumulateurs, registre d’état) dans un registre particulier appelé pile. Les données y
sont ‘’entassées’’ comme on empile des livres (la première donnée sauvegardée sera donc la dernière
à être restituée). Ensuite, il exécute le programme d’interruption puis restitue l’état sauvegardé avant
de reprendre le programme principal.
Remarques :

 Certaine source d’interruption possède leur propre autorisation de fonctionnement sous la forme
d’un bit à positionner, on l’appelle le masque d’interruption.
 On peut donc interdire ou autoriser certaines sources d’interruptions, on les appelle les
interruptions masquables.
 Chaque source d’interruption possède un vecteur d’interruption où est sauvegardé l’adresse
de départ du programme à exécuter.
 Les interruptions sont classées par ordre de priorité. Dans le cas où plusieurs interruptions se
présentent en même temps, le microprocesseur traite d’abord celle avec la priorité la plus
élevée.

7.6. Echange direct avec la mémoire


Ce mode permet le transfert de blocs de données entre la mémoire et un périphérique sans passer par
le microprocesseur. Pour cela, un circuit appelé contrôleur de DMA (Direct Memory Access) prend

58
en charge les différentes opérations. Le DMA se charge entièrement du transfert d’un bloc de données.
Le microprocesseur doit tout de même :
 Initialiser l’échange en donnant au DMA l’identification du périphérique concerné.
 Donner le sens du transfert
 Fournir l’adresse du premier et du dernier mot concerné par le transfert
Un contrôleur de DMA est doté d’un registre d’adresse, d’un registre de donnée, d’un compteur et d’un
dispositif de commande (logique câblée). Pour chaque mot échangé, le DMA demande au
microprocesseur le contrôle du bus, effectue la lecture ou l'écriture mémoire à l'adresse contenue dans
son registre et libère le bus. Il incrémente ensuite cette adresse et décrémente son compteur. Lorsque
le compteur atteint zéro, le dispositif informe le processeur de la fin du transfert par une ligne
d'interruption.

Le principal avantage est que pendant toute la durée du transfert, le processeur est libre d'effectuer un
traitement quelconque. La seule contrainte est une limitation de ses propres accès mémoire pendant
toute la durée de l'opération, puisqu'il doit parfois retarder certains de ses accès pour permettre au
dispositif d'accès direct à la mémoire d'effectuer les siens : il y a apparition de vols de cycle.

7.7. Types de liaisons


Les systèmes à microprocesseur utilisent deux types de liaison différentes pour se connecter à des
périphériques :
1. Liaison parallèle
2. Liaison série
On caractérise un type de liaison par sa vitesse de transmission ou débit (en bit/s).

59
7.7.1. Liaison parallèle
Dans ce type de liaison, tous les bits d’un mot sont transmis simultanément. Ce type de transmission
permet des transferts rapides mais reste limitée à de faibles distances de transmission à cause du
nombre important de lignes nécessaires (coût et encombrement) et des problèmes d’interférence
électromagnétique entre chaque ligne (fiabilité). La transmission est cadencée par une horloge. Comme
exemple nous avons les bus PCI, les AGP dans un ordinateur.

7.7.2. Liaison série


Dans ce type de liaison, les bits constitutifs d’un mot sont transmis les uns après les autres sur un seul
fil. Les distances de transmission peuvent donc être plus beaucoup plus importantes mais la vitesse de
transmission est plus faible. Sur des distances supérieures à quelques dizaines de mètres, on utilisera
des modems aux extrémités de la liaison.

La transmission de données en série peut se concevoir de deux façons différentes :

 En mode synchrone, l’émetteur et le récepteur possède une horloge synchronisée qui cadence
la transmission. Le flot de données peut être ininterrompu.
 En mode asynchrone, la transmission s’effectue au rythme de la présence des données. Les
caractères envoyés sont encadrés par un signal start et un signal stop.

60
7.8. Principe de base d’une liaison série asynchrone :
Afin que les éléments communicants puissent se comprendre, il est nécessaire d’établir un protocole
de transmission. Ce protocole devra être le même pour chaque élément.

Paramètres rentrant en jeu :


 Longueur des mots transmis : 7 bits (code ASCII) ou 8 bits
 Vitesse de transmission : les vitesses varient de 110 bit/s à 128000 bit/s et détermine
les fréquences d’horloge de l’émetteur et du récepteur.
 Parité : le mot transmis peut être suivis ou non d’un bit de parité qui sert à détecter les erreurs
éventuelles de transmission. Il existe deux types de parité : paire ou impaire. Si on fixe une
parité paire, le nombre total de bits à 1 transmis (bit de parité inclus) doit être paire. C’est
l’inverse pour une parité impaire.
 Bit de start : la ligne au repos est à l’état 1 (permet de tester une coupure de la ligne). Le
passage à l’état bas de la ligne va indiquer qu’un transfert va commencer. Cela permet de
synchroniser l’horloge de réception.
 bit de stop : après la transmission, la ligne est positionnée à un niveau 1 pendant un certain
nombre de bit afin de spécifier la fin du transfert. En principe, on transmet un, un et demi ou 2
bits de stop.

Déroulement d’une transmission :


Les paramètres du protocole de transmission doivent toujours être fixés avant la transmission. En
l’absence de transmission, la liaison est au repos au niveau haut pour détecter une éventuelle coupure
sur le support de transmission. Une transmission s’effectue de la manière suivante :

 L’émetteur positionne la ligne à l’état bas : c’est le bit de Start.


 Les bits sont transmis les uns après les autres, en commençant par le bit de poids fort.
 Le bit de parité est éventuellement transmis.
 L’émetteur positionne la ligne à l’état haut : c’est le bit de stop.

61
Contrôle de flux :
Le contrôle de flux permet d’envoyer des informations seulement si le récepteur est prêt (modem ayant
pris la ligne, tampon d’une imprimante vide). Il peut être réalisé de manière logicielle ou matérielle. Pour
contrôler le flux de données matériellement, il faudra utiliser des lignes de contrôle supplémentaire
permettant à l’émetteur et au récepteur de s’informer mutuellement de leur état respectif (prêt ou non).

Dans un contrôle de type logiciel, l'émetteur envoie des données et lorsque le récepteur ne peut plus
les recevoir (registre plein), il envoie une information à l’émetteur pour le prévenir, via la liaison série.
L’émetteur doit donc toujours être à l’écoute du récepteur avant d’envoyer une donnée sur la ligne.

62

Vous aimerez peut-être aussi