Vous êtes sur la page 1sur 25

Chapitre 5 : Architecture et fonctionnement de l’ordinateur

5.a) Introduction à l’architecture

L’architecture représente l’organisation des différentes unités de l’ordinateur et leurs interconnexions.


Les figures ci-dessous représente le synoptique simplifié de toute application à base de
microprocesseur, quelle qu’elle soit. La réalisation matérielle des ordinateurs est généralement basée
sur l’architecture de Von Neumann :

 Synoptique de niveau 1 :

Un microprocesseur ne fonctionne jamais seul, on lui associe toujours de la mémoire et des


périphériques E/S. Le microprocesseur a donc besoin pour fonctionner d’un environnement
minimum, celui-ci est au moins composé :

- d’un circuit d’Alimentation : pour pouvoir fonctionner tout système doit être alimenté en
tension (courant)
- d’une circuit Horloge : qui permet de fixer la fréquence de travail du processeur
- d’un circuit de Reset : pour la réinitialisation (RAZ)

C’est la configuration de base de tout processeur.

Ensuite pour pouvoir fonctionner dans son environnement donc exécuter un programme (assurer le
traitement de l’information), on adopte une seconde configuration de base qui vient en complément
de la première configuration. Elle est composée de :

- de mémoires pour la sauvegarde des données. On distinguera deux (2) types de mémoire.
La mémoire ROM (contenant le programme à exécuter) et la mémoire RAM (stockant des
données temporairement)
- d’ Interfaces E/S pour l’extérieur (clavier, écran, souris etc….)
Le microprocesseur échange des informations avec la mémoire et l’unité d’E/S, sous forme de mots
binaires, au moyen d’un ensemble de connexions appelé bus. Un bus permet de transférer des
données sous forme parallèle, c’est-à-dire en faisant circuler n bits simultanément.

 Synoptique de niveau 2 :

Les trois modules sont interconnectés comme le montre la figure suivante autour de trois bus :
bus de données, bus d’adresses et bus de contrôles et commandes

- le bus d’adresses : permet au microprocesseur de spécifier l’adresse de la case mémoire à


lire ou à écrire: il permet d’adresser un élément par le microprocesseur .il est
unidirectionnel. Il détermine la capacité maximale d'adressage du système, c'est à dire le
nombre maximum de mots de la mémoire associée (ex : 16 bits "adressent" 64 Kmots).

- le bus de données : permet les transferts de données entre microprocesseur et la mémoire


ou les E/S. C’est un ensemble de fils bidirectionnels qui va permettre le transfert de données
entre les différents éléments du système. C'est par ce bus que sont transmises les données
qui doivent être traitées par le microprocesseur. A l'inverse, c'est également par ce bus que
transitent les résultats en sortie du microprocesseur. Autrement dit, toutes les données
entrantes et sortantes du microprocesseur sont véhiculées par le bus de données qui fixe la
longueur du mot échangé avec la mémoire.

- le bus de commande ou de contrôle : transfert les ordres de lecture et d’écriture de la


mémoire et des E/S. C’est un bus qui permet de véhiculer les signaux de contrôles et de
commandes tels que les signaux CE, RD/WR etc … Ce bus sert à coordonner tous les
échanges d'informations décrits précédemment. Il véhicule des données qui valident la
mémoire et les ports d'entrées / sorties. Il introduit des délais d'attente lorsque des
informations sont envoyées à un périphérique qui présente une vitesse de traitement réduite.
Le bus de commandes évite les conflits de bus lorsque deux éléments cherchent à
communiquer en même temps.

 Synoptique de niveau 3 :

Le microprocesseur pour fonctionner doit pouvoir aller chercher son programme à exécuter dans
une mémoire programme dite ROM et doit pouvoir disposer d’une mémoire RAM pour
temporairement stocker des données. Ce qui permet de décomposer la mémoire en deux types de
mémoires ROM et RAM.
- Les mémoires RAM ou mémoires vives (RAM :Random Access Memory) ou mémoire à
accès aléatoire est une mémoire volatile. Elles perdent lur contenu en cas de coupure
d’alimentation. Elles sont utilisées pour stocker temporairement des données et des
programmes. Elles peuvent être lues et écrites par le microprocesseur ;

- Les mémoires ROM ou mémoires mortes (ROM :Read Only Memory) ou mémoire à
lecture uniquement est une mémoire non volatile. Elles conservent leur contenu en cas de
coupure d’alimentation. Elles ne peuvent être que lues par le microprocesseur (pas de
possibilité d’écriture) On les utilise pour stocker des données et des programmes de
manière définitive.
- Les Entrées/Sorties ou interface d’E/S permettent de raccorder le microprocesseur vers
les périphériques externes à travers les ports. Ainsi donc on connectera comme élément
périphériques : le clavier , la souris, le moniteur, l’imprimante etc …

On distingue 2 architectures différentes :

- L’architecture Von Neumann


- L’architecture Harvard

- L’architecture, dite architecture de Von Neumann, est un modèle pour microcontrôleur qui
utilise une structure de stockage unique pour conserver à la fois les instructions et les
données requises ou générées par le calcul. La séparation entre le stockage et le processeur
est implicite dans ce modèle. Une même instruction permet l’accès au programme ou aux
données, cependant pas simultanément. Cette architecture est maintenant principalement
utilisée pour la conception des processeurs d’ordinateurs (PC, MAC). Ce type d’architecture
nécessite plusieurs cycles d’horloge pour exécuter une instruction (recherche d’instruction,
décodage, lecture opérande, exécution)

- L’architecture de type Harvard est une conception de microprocesseurs qui sépare


physiquement la mémoire de données et la mémoire programme. L’accès à chacune des deux
mémoires s’effectue via deux bus distincts. Cette structure permet un accès simultané aux
données et aux instructions l’exécution des programmes est plus rapide. En revanche elle
nécessite des instructions différentes pour accéder à la mémoire programme et à la mémoire
de données. Cette architecture très employée pour la conception des processeurs de
traitement de signal (DSP) est de plus en plus utilisée pour les microcontrôleurs d’usage
généraux.
5.b) Interdépendance logiciel et matériel (modèle à 3 couches) :

La mise en œuvre de ces différents unités s’appuie sur deux modes de réalisation distints, le matériel
et le logiciel.

- le matériel (Hardware) : correspond à l’aspect concret du système (unité centrale,


mémoires, organes E/S etc…)
- le logiciel (Software) : correspond à un ensemble d’instruction appellé programme,
qui définissent les actions effectuées par le matériel.

Cette interdépendance entre le matériel et le logiciel


peut être représentée par un modèle à trois couches,
dans lequel la manière usuelle d’accéder à une
ressource consiste à utiliser un intermédiaire qui
propose ses services spécialisés. Cet intermédiaire
peut être le BIOS ou le DOS qui sont les interfaces
logicielles créées pour gérer le matériel.

- Programmes d’application
- Programmes systèmes (BIOS et OS)
- Matériel

5.c) Le processeur (microprocesseur & microcontrôleur) :

L'apparition des microprocesseurs date du début des années 1970. A cette époque, deux événements
favorables sont apparus :

 le concept de "LSI (Large Scale Integration)" permettant d'intégrer plusieurs milliers de portes
sur un même substrat.
 l'arrivée à maturité de la technologie MOS caractérisée par sa faible consommation.

La conjugaison de ces événements a permis de regrouper une unité centrale d'ordinateur dans un seul
circuit intégré appelé "microprocesseur". Depuis, une multitude de composants de ce type sont
apparus au sein de familles provenant essentiellement de grands constructeurs américains :
Intel, Motorola, Advanced Micro Devices (AMD), Texas Instruments,... et japonais : NEC,
Mitsubishi,...

Grâce aux progrès de l’intégration, l'augmentation des performances a porté sur :


 la vitesse de fonctionnement.
 la largeur des mots traités (8, 16, 32, 64 bits).
 le nombre et la complexité des opérations réalisables.

L’intégration a également permis de rassembler le microprocesseur et les éléments associés


(mémoire, organes d’entrée-sortie,...) au sein d’un seul circuit appelé "microcontrôleur". Ce type de
composant s’est répandu dans un très grand nombre de domaines (télécommunications,
télévision, électroménager, hifi...).

5.d) Description matérielle d’un microprocesseur :

Les microprocesseurs peuvent être classés selon la longueur maximale des mots binaires qu’ils
peuvent échanger avec les mémoires ROM et RAM et les E/S : ainsi on distingue : les
microprocesseurs 8 bits, 16 bits, 32 bits ou encore 64 bits. Un microprocesseur se présente sous
la forme d’un circuit intégré muni d’un nombre généralement important de broches. Exemples :

- Intel 8085, 8086, Zilog Z80 : 40 broches, DIP (Dual In-line Package) ;
- Motorola 68000 : 64 broches, DIP ;
- Intel 80386 : 196 broches, PGA (Pin Grid Array).

Technologies de fabrication : NMOS, PMOS, CMOS.

En représentant le microprocesseur par son


schéma fonctionnel ci-contre, on peut voir que
c’est du microprocesseur qu’émergent les lignes
d’adresses, de données et de contrôle.

Les bus de données et de commande sont


bidirectionnels, le bus d’adresse est
unidirectionnel car seul le microprocesseur peut
délivrer des adresses.

5.d.1) Définition et éléments constitutifs d’un microprocesseur

Un microprocesseur est 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.

A l’heure actuelle, un microprocesseur regroupe sur quelques millimètre carré des fonctionnalités
toujours plus complexes. Leur puissance continue de s’accroître et leur encombrement diminue
régulièrement respectant toujours, pour le moment, la fameuse loi de Moore.
Le rôle du microprocesseur est de:

 exécuter les programmes:


 rechercher les instructions rangées dans des locations successives en mémoire
 décoder et exécuter ces instructions

 coordonner le fonctionnement de l’ensemble du micro-ordinateur;


 générer l’adresse où se trouve l’instruction ou la donnée en mémoire
 générer les signaux de contrôle dirigés vers la mémoire ou les circuits d’E/S
 contrôler la circulation des données avec les autres circuits (mémoire et E/S)

Ce circuit est donc capable d’exécuter des opérations arithmétiques sur des nombres entiers
(addition, soustraction, multiplication, division), des opérations logiques ( ET, OU, NÉGATION, OU
EXCLUSIF), des opérations arithmétiques sur des nombres réels (point flottant) s’il contient un
²«coprocesseur» arithmétique (addition, soustraction, multiplication, division, racine carrée, tangente,
arctangente, logarithme, etc), des opérations de lecture ou d’écriture en mémoire ou dans les
interfaces d’E/S (ENTRÉES/SORTIES).

5.e) Fonctionnement d’un microprocesseur :

Un microprocesseur exécute un programme. Le programme est une suite d’instructions stockée dans
la mémoire. Une instruction peut être codée sur un ou plusieurs octets. Une instruction est
composée de deux champs :

Format d’une instruction :

Suivant le nombre de parties reservées aux opérandes (ou adresses) on distingue :


- le format à une adresse
- le format à deux adresses

Les ordinateurs sont capables de faire un certain nombre


d'opérations simple, par exemple additionner deux nombres, tester
le signe d'une valeur numérique, copier le contenu d'un registre
dans un autre, stocker le contenu d'un registre dans une mémoire
ou charger le contenu d'une mémoire dans un registre. Une
instruction machine doit donc contenir un code opération et un
ensemble d'adresses. Pour simplifier les programmes, les
concepteurs de microprocesseurs
Ceci est rendu ont opté
possible par l'utilisation d'unpour une spécial
registre architecture
appelé accumulateur. Les opérations se
avec
fontdes instructions
entre à une adresse.
l'accumulateur et un autre opérande dont l’adresse est précisée. Le résultat de l'opération
est stocké dans l'accumulateur. Mais comme les processeurs avec un seul accumulateur sont un peu
limités, on multiplie le nombre d’accumulateurs mais on a de nouveau des instructions à 3 champs
puisqu’il faut préciser l’accumulateur utilisé

Les instructions permettent de spécifier les opérations à effectuer. Elles sont présentées au
processeur sous la forme d’une chaîne binaire appelée un opcode. En assembleur, on les écrit sous
la forme de mnémonics (notation symbolique). C’est-à-dire un langage proche de la machine mais
compréhensible par les humains. L’ensemble des mnémonics d’un processeur forme ce qu’on appelle
le jeu d’instructions du processeur. C’est le langage du processeur.

5.e.1) Jeu d’instructions et notion d’architecture RISC et CISC :

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. A un même jeu d’instructions peut correspondre un grand nombre
d’implémentations différentes du microprocesseur.

Actuellement l’architecture des microprocesseurs se composent de deux grandes familles :

 L’ architecture CISC (Complex Instruction Set Computer)


 L’architecture RISC (Reduced Instruction Set Computer)

 L’architecture CISC Tous les microprocesseurs que nous avons mentionnés jusqu'à
maintenant sont de type CISC (Complex Intruction Set Computer). Toute la famille de
microprocesseurs x86 est de type CISC. Ce type de microprocesseur peut traiter des
instructions complexes, directement gravées dans le silicium de la puce, pour augmenter la
rapidité. Ces instructions sont gravées dans le silicium car elles sont trop complexes pour être
réalisées à l'aide d'un programme interne. L'ajout de ces instructions augmente le prix du
microprocesseur CISC. Le microprocesseur CISC ne peut traiter qu'une instruction à la fois.
De plus, les instructions complexes ne peuvent pas toutes être traitées en un seul cycle
d'horloge. Les microprocesseurs courants fabriqués par Intel, AMD ou Cyrix sont de type CISC.

 L’architecture RISC : Le microprocesseur de type RISC (Reduced Instruction Set


Computer) n'a pas de fonctions supplémentaires gravées dans la puce de silicium. Il en
résulte que les programmes utilisant ce type de microprocesseur doivent utiliser des
instructions simples interprétables par le microprocesseur. Cela implique une programmation
plus complexe et des compilateurs plus puissants. Les microprocesseurs RISC nécessitent
également de plus grandes quantités de mémoire. En revanche, les instructions étant
simplifiées, elles peuvent toutes être exécutées en un seul cycle d'horloge. De plus, ce type
de microprocesseur est capable de traiter plusieurs instructions en même temps. Les
microprocesseurs fabriqués par Motorola sont de type RISC.
5.e.2) Type d’instructions et mode d’adressage

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, etc…
 Opérations arithmétiques : addition, soustraction, division, multiplication
 Opérations logiques : ET, OU, NON, NAND, comparaison, test, etc…
 Contrôle de séquence : branchement, test, etc…

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ées 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ées en mémoire

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

5.e.3) Temps d’exécution ou cycle d’exécution d’une instruction

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. Ainsi, pour exécuter le programme contenu dans la mémoire
centrale, le séquenceur du microprocesseur exécute lui-même un programme appelé micro-code,
contenu dans une mémoire morte `a l’intérieur du microprocesseur. Le séquenceur est dirigé par une
horloge qui délivre un signal de fréquence donnée permettant d’enchaîner les différentes étapes de
l’exécution d’une instruction :

Chaque instruction est caractérisée par le nombre de périodes d’horloge (ou microcycles) qu’elle utilise
(donnée fournie par le fabricant du microprocesseur).

Exemple : horloge `a 5 MHz, période T = 1/f = 0, 2 μs. Si l’instruction s’exécute en 3 microcycles, la


durée d’exécution de l’instruction est : 3 × 0,2 = 0, 6 μs. L’horloge est constituée par un oscillateur `a
quartz dont les circuits peuvent être internes ou externes au microprocesseur
Exemple appelons dst et scr respectivement les opérandes de destination et source

Instructions de transfert :

- mov dst , scr : cette instruction place la valeur de scr dans dst. Exemple : mov AX, 14
- push scr : cette instruction place scr sur la pile. Exemple : push AX
- pop dst : cette instruction place la valeur au sommet de la pile dans dst
Exemple : pop BX

Instructions de calcul :

- add dst , scr : cette instruction additionne scr et dst puis place le résultat dans dst
Exemple : add AX, BX ; AX AX+BX
- sub dst , scr : cette instruction soustrait scr de dst puis place le résulta dans dst
Exemple : sub CX, DX ; CX CX-DX
- mov dst , scr : cette instruction place la valeur de scr dans dst. Exemple : mov AX, 14

- shl dst , scr : cette instruction décale dst de scr bits vers la gauche et place le résultat dans
dst . Exemple : shl dx,1; DX DX*2 Le code opération shl veut dire shift left et shr shift
right (décalage à droite)

Exemple de code :
mov AX,12
mov BX,6
add AX,BX
shr AX,1
Quelle est la valeur de AX à la fin de l’exécution de ce code. Que permet de calculer ce code

5.f) Architecture de base d’un microprocesseur :

Un microprocesseur est construit autour de deux éléments principaux :

- Une unité de commande

- Une unité de traitement aussi appelée Unité de calcul ou Unité arithmétique


et logique (UAL) ou ALU en anglais pour (Arithmetic and Logical Unit) 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.

Schéma fonctionnel

 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 :

- le compteur de programme constitué par un registre dont le contenu est initialisé


avec '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.

- 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 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 microprocesseur.

 L’unité de traitement : C’est le coeur 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 , etc…) 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 (Auxiliary-Carry : AC)
- signe (Sign : S)
- débordement (overflow : OV ou V)
- zéro (Z)
- parité (Parity : P)

- Les accumulateurs sont des registres de travail qui servent à stocker une opérande
au début d'une opération arithmétique et le résultat à la fin de l'opération.
5.g) Simulation du fonctionnement d’un microprocesseur

Pour exécuter les instructions dans l’ordre établi


par le programme, le microprocesseur doit savoir
à chaque instant l’adresse de la prochaine
instruction à exécuter. Le microprocesseur utilise
un registre contenant cette information. Ce
registre est appelé pointeur d’instruction (IP :
Instruction Pointer) ou compteur
d’instructions ou compteur ordinal.

Remarque : la valeur initiale du pointeur


d’instruction est fixée par le constructeur du
microprocesseur. Elle vaut une valeur bien définie
à chaque mise sous tension du microprocesseur
ou bien lors d’une remise à zéro (reset)

A la mise sous tension de la machine, ou encore


au démarrage du système, tous les registres sont
initialisés. Le compteur ordinal pointe sur la
première case mémoire à l’adresse 0000H ou
0x0000
Soit à exécuter le programme suivant logé en
mémoire centrale :
mov RD1,17
mov RD2,25
add RD1,RD1
mov [adr],RD1
Traitement de la première 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 ) :

Au premier top d’horloge, le contenu du


compteur ordinal est transféré dans le registre
d’adresses. Cela permet de sélectionner dans la
mémoire centrale , la case d’adresse (Adr0) donc
0x0000: Elle contient l’instruction à exécuter
« MOV RD1, 17 » Cette instruction est
acheminée vers le registre d’instruction donc est
stockée dans le registre d’instruction en vue de
son traitement

PHASE 2 (DECODAGE) :

Au deuxième top d’horloge, l’instruction « MOV


RD1, 17 » est acheminée du registre
d’instruction vers l’unité de commande en vue
d’être décodée par le décodeur d’instruction
intégré. Pendante ce temps, le contenu du
compteur ordinal est incrémenté de 1 donc
pointe désormais sur la prochaine instruction.

PHASE 3 (EXECUTION) :

Le décodeur d’instructions décode le code


opératoire de l’instruction « MOV RD1, 17 » et
exécute l’instruction. Des signaux de commande
pour l’UAL sont produits en fonction de
l’opération demandée qui
est alors exécutée. A l’issue de cette phase, le
registre RD1 est mis à jour donc RD1  17

C’est la fin du cycle. La première instruction vient


être traitée. Si horloge du processeur était fixée
à 5 MHz, période T = 1/f = 0, 2 μs. Cette
instruction se serait exécutée en 3 microcycles
soit 3 × 0,2 = 0, 6 μs.

Le cycle recommence et on passe à l’instruction


suivante

Les mémoires sont


Traitement de la deuxième instruction

PHASE 1 ( RECHERCHE ) :
Le contenu du compteur ordinal ayant déjà pointé
sur la prochaine instruction (adresse=Adr1),
attend le prochain top d’horloge pour transférer
son contenu dans le le registre d’adresse en vue de
sélectionner l’instruction se trouvant à cette
adresse. Ainsi donc lorsque survient ce top
d’horloge, le contenu de l’instruction à l’adresse
Adr1 qui est « MOV RD2, 25 » est transféré dans
le registre d’instruction qui est mis à jour.

PHASE 2 (DECODAGE) :

Au TOP d’horloge suivant, cet instruction « MOV


RD2, 25 » est acheminée du registre d’instruction
vers l’unité de commande en vue d’être décodée
par le décodeur d’instruction intégré. Pendante ce
temps, le contenu du compteur ordinal est
incrémenté de 1 à nouveau donc pointe désormais
sur la prochaine instruction à l’adresse Adr2.

PHASE 3 (EXECUTION) :

Le décodeur d’instructions décode le code


opératoire de l’instruction « MOV RD2, 25 » et
exécute l’instruction. A l’issue de cette phase, le
registre RD2 est mis à jour donc RD2  25

Le cycle recommence et on passe à l’instruction


suivante
Traitement de la troisième instruction

PHASE 1 ( RECHERCHE ) :
Le contenu du compteur ordinal ayant déjà pointé
sur la prochaine instruction (adresse=Adr2), attend
le prochain top d’horloge pour transférer son
contenu dans le le registre d’adresse en vue de
sélectionner l’instruction se trouvant à cette adresse.
Ainsi donc lorsque survient ce top d’horloge, le
contenu de l’instruction à l’adresse Adr2 qui est
« ADD RD1,RD2 » est transféré dans le registre
d’instruction qui est mis à jour.

PHASE 2 (DECODAGE) :

Au top d’horloge suivant, cet instruction « ADD


RD1,RD2 » est acheminée du registre d’instruction
vers l’unité de commande en vue d’être décodée
par le décodeur d’instruction intégré. Pendante ce
temps, le contenu du compteur ordinal est
incrémenté de 1 à nouveau donc pointe désormais
sur la prochaine instruction à l’adresse Adr3.

PHASE 3 (EXECUTION) :

Le décodeur d’instructions décode le code


opératoire de l’instruction
« ADD RD1,RD2 » et exécute l’instruction.
L’unité de calcul est sollicité pour le calcul
arithmétique. A l’issue de cette phase, le registre
RD1 est mis à jour donc RD1  RD1+RD2

Le cycle recommence et on passe à l’instruction


suivante
Traitement de la quatrième instruction

PHASE 1 ( RECHERCHE ) :
Le contenu du compteur ordinal ayant déjà pointé
sur la prochaine instruction (adresse=Adr3), attend
le prochain top d’horloge pour transférer son contenu
dans le le registre d’adresse en vue de sélectionner
l’instruction se trouvant à cette adresse. Ainsi donc
lorsque survient ce top d’horloge, le contenu de
l’instruction à l’adresse Adr3 qui est « MOV
[adr],RD1 » est transféré dans le registre
d’instruction qui est mis à jour.

PHASE 2 (DECODAGE) :

Au top d’horloge suivant, cet instruction « MOV


[adr],RD1 » est acheminée du registre d’instruction
vers l’unité de commande en vue d’être décodée par
le décodeur d’instruction intégré. Pendante ce temps,
le contenu du compteur ordinal est incrémenté de 1.

PHASE 3 (EXECUTION) :

Le décodeur d’instructions décode le code opératoire


de l’instruction
« MOV [adr],RD1 » . A l’issue de cette phase, le
contenu du registre RD1 est transféré vers la
mémoire centrale à l’adresse spécifitée par [adr]

Fin de l’exécution du programme.


Remarque : A la suite de chaque instruction, un registre du microprocesseur est actualisé en fonction
du dernier résultat : c’est le registre d’état du microprocesseur. Chacun des bits du registre d’état
est un indicateur d’état ou flag (drapeau).

Les indicateurs d’état sont activés lorsqu’une certaine condition est remplie, exemple : le flag Z est
mis `a 1 lorsque la dernière opération a donné un résultat nul, le flag C est mis `a un lorsque le
résultat d’une addition possède une retenue, ...
Les indicateurs d’état sont utilisés par les instructions de saut conditionnels: en fonction de l’état
d’un (ou plusieurs) flags, le programme se poursuit de manière différente. Toutes ces étapes (lecture
de l’instruction, décodage, exécution) sont synchronisées par un séquenceur qui assure le bon
déroulement des opérations

En résumé, les différentes étapes du cycle d’exécution d’une instruction sont :

- La première est le « Fetch » qui consiste à récupérer (rechercher) depuis la mémoire centrale
l’instruction pointée par le compteur ordinal
- La seconde étape est le décodage qui consiste à décoder le code-op de l’instruction récupérer
lors de l’étape précédente.
- La troisième est l’exécution de l’instruction. On termine en rangeant le résultat de calcul
effectué et en passant à l’instruction suivante

5.h) 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.

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.f.1) Améliorations des performances du microprocesseur

L'ensemble des améliorations des microprocesseurs vise à 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 complexe 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 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.

Plusieurs techniques sont adoptées pour améliorer les performances du microprocesseur :

 Architecture pipeline
 Introduction de la cache mémoire
 Architecture superscalaire
 Architecture pipeline et superscalaire

Architecture pipeline : L’exécution d’une instruction est décomposée en une succession d’étapes et
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.

Principe : L’architecture pipeline permet d’améliorer l’efficacité du microprocesseur. En effet, 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.

1 instruction/4cycles

1 instruction/cycles
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

Le gain obtenu est donc de :

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.

Exemples : L’Athlon d’AMD comprend un pipeline de 11 étages.


Les Pentium 2, 3 et 4 d’Intel comprennent respectivement un pipeline de 12, 10 et 20
étages.

Introduction de la cache mémoire : 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
technologique que les microprocesseurs mais le décodage des adresses et la lecture/écriture d’une
données 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.

Principe : 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érieure à 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. 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. (a)

 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. (b)
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%.

Remarques :
 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.

 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.

 A noter que l’on peut reprendre le même principe pour les disques durs et CD/DVD.

Architecture superscalaire : 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. Ainsi sous réserve de non-dépendance des données et des
ressources, on peut envisager d’exécuter N instructions simultanément.

C’est au début des années 1990 que la technologie a permis l’intégration de structures super
scalaires ; les processeurs actuels comptent de 3 à 4 unités de calcul entier et de 1 à 2 unités de
calcul flottant fonctionnant en parallèle. C'est le type d'architecture mise en oeuvre dans les premiers
Pentium d'Intel apparus en 1993.

Architecture pipeline et superscalaire :


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

(.i.1) Le microcontrôleur
Ce sont des systèmes minimum sur une seule puce. Ils contiennent un CPU, de la RAM, de la ROM et
des ports d’Entrée/Sorties (parallèles, séries, I2C, etc..). Ils comportent aussi des fonctions spécifiques
comme des compteurs programmables pour effectuer des mesures de durées, des CAN voir des CNA
pour s’insérer au sein de chaînes d’acquisition, des interfaces pour réseaux de terrain, etc ...
Il est adapté pour répondre au mieux aux besoin des applications embarquées (appareil
électroménagers, chaîne d’acquisition, lecteur carte à puce, etc...). Il est par contre généralement
moins puissant en terme de rapidité, de taille de données traitables ou de taille de mémoire
adressable qu’un microprocesseur.

6.i.2) Le processeur de signal


Le processeur de signal est beaucoup plus spécialisé. Alors qu'un microprocesseur n'est pas conçu
pour une application spécifique, le processeur DSP (Digital Signal Processor) est optimisé pour
effectuer du traitement numérique du signal (calcul de FFT, convolution, filtrage numérique, etc...).
Les domaines d’application des D.S.P étaient à l’origine les télécommunications et le secteur militaire.
Aujourd’hui, les applications se sont diversifiées vers le multimédia (lecteur CD, MP3, etc..)
l’électronique grand public (télévision numérique, téléphone portable, etc…), l’automatique,
l’instrumentation, l’électronique automobile, etc…
6.j) Les cartes mères actuelles et leur architecture

La carte mère (Main board ou Motherboard) est l'un des principaux composants du PC. Elle se
présente sous la forme d'un circuit imprimé sur lequel sont présents divers composants. En fait, son
rôle est de lier tous les composants du PC, de la mémoire aux cartes d'extensions.

La carte mère détermine le type de tous les autres composants. Ses slots détermineront le format des
cartes d'extension (ISA, EISA, PCI, AGP,..). Ses emplacements mémoires détermineront le type de
barrettes à utiliser (EDO, SDRAM…). Enfin, le socle du processeur déterminera le processeur à utiliser.
La fréquence de la carte mère sera déterminante pour l'achat d'un processeur.

La plupart des cartes mères modernes sont équipé des composants principaux suivants.

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 (North Bridge, South Bridge): Le chipset ou jeux de puces en français est un
ensemble de circuits intégrés situés sur la carte mère qui exécute les fonctions les plus
essentielles d’un système informatique. Il gère entre autre tous les échanges d’informations
entre le CPU et les différents éléments du PC. 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 Ouput Service) : c’est un programme responsable de la gestion du


matériel : clavier, écran, disques durs, liaisons séries et parallèles, etc... Il est sauvegardé
dans une mémoire morte (EEPROM) et agit comme une interface entre le système
d’exploitation et le matériel. Il se compose de deux éléments :

- Un circuit DIP ou une mémoire flash contenant la partie logicielle ;


- Un circuit CMOS (Complementary Metal Oxyde Semiconductor) dans lequel sont
sauvés les paramètres. Celui-ci doit impérativement toujours être maintenu sous
tension à l’aide d’une pile ou d’un accumulateur. S’il n’est plus alimenté, toutes les
valeurs qu’il contient sont irrémédiablement perdues.

La partie logicielle nous permet de configurer les différents éléments hardware qui
composent le PC. On y règle :

- la date et l’heure,
- le type de(s) disque(s) dur(s),
- le type de(s) lecteur de disquette,
- le type d’affichage.

 l’horloge : Il existe deux types d’horloge :


- l’Horloge système : elle permet de cadencer le traitement des instructions par le
microprocesseur ou la transmission des informations sur les différents bus. Sa
fréquence est un élément déterminant de la vitesse du processeur. Celle-ci est
exprimée en Mégahertz (Mhz), soit en million de cycles à la seconde.

 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, etc …)

 Le socket (Support du processeur): c’est le nom du connecteur destiner au microprocesseur.


Il détermine le type de microprocesseur que l’on peut connecter.
Ici le chipset est composé par deux composants baptisé 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 alors que le pont sud s’occupe d’interfacer le microprocesseur
avec les périphériques plus lents (disque dur, CDROM, lecteur de disquette, réseau, etc…).

Le chipset est un composant important qui est en fait constitué de 2 composants :

 La puce North bridge (pont nord) : Surmonté d’un radiateur, il permet de faire le lien entre
le bus rapide (66 MHz, 100 MHz, ou 133 MHz) et le Bus AGP et PCI (respectivement 66 et 33
MHz.) En effet la partie North bridge est la portion principale du chipset. Il est très lié au
processeur puisque c’est lui qui gère tout les échanges. Avec le processeur, il est le seul
circuit qui fonctionne à pleine vitesse (celle du Bus du processeur.) Sur la plupart des
ordinateurs modernes le North bridge se résume à une puce ; Cependant sur certaines cartes
mères anciennes il peut comprendre
jusqu'à 3 puces.

 La puce South bridge (pont sud) :Le circuit South bridge est le composant qui fonctionne le
moins rapidement. Il a toujours été constitué d’une seule puce. La puce South bridge se
connecte au Bus PCI cadencé à 33 MHz ; elle inclus l’interface qui permet de communiquer
avec le Bus ISA (8MHz.) Elle contient notamment les 2 interfaces du contrôleur du disque IDE,
l’interface des ports USB.

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 :

 Bus processeur : on l’appelle aussi bus système ou FSB (Front Side Bus). Il relie le
microprocesseur au pont nord puis à la mémoire. C’est un bus 64 bits.

 Bus IDE : il permet de relier au maximum 2 périphériques de stockage interne par canal
(disque dur ou lecteur DVDROM/CDROM). Son débit est de 133 Mo/s. Lorsque 2
périphériques sont reliés sur le même canal, un doit être le maître (prioritaire sur la prise du
bus) et l’autre l’esclave.
 Bus PCI (Peripheral Component Interconnect) : Il a été créé en 1991 par Intel. Il permet de
connecter des périphériques internes. C’est le premier bus à avoir unifier l’interconnexion des
systèmes d’entrée/sortie sur un PC et à introduire le système plug-and-play. Il autorise aussi
le DMA. C’est un bus de 32 bits. On retrouve une révision du bus PCI sur les cartes mères de
serveur ayant une largeur de bus de 64 bits et une fréquence de 133 MHz.

 Bus AGP (Accelered Graphic Port) :. Il a été créé en 1997 lors de l’explosion de l’utilisation
des cartes 3D qui nécessitent toujours plus de bandes passantes pour obtenir des rendus très
réalistes. C’est une amélioration du bus PCI. Il autorise en plus le DIME (DIrect Memory
Execution) qui permet au processeur graphique de travailler directement avec les données
contenues dans la RAM sans passer par le microprocesseur à l’instar d’un DMA. C’est un bus
32 bits et son débit maximum est de 2 Go/s (en x8).

 Bus ISA (Industry Standard Architecture) : C’est l’ancêtre du bus PCI. On ne le retrouve plus
sur les nouvelles générations de cartes mères.

 Bus SCSI (Small Computer System Interface) : c’est un bus d’entrée/sortie parallèle
permettant de relier un maximum de 7 ou 15 périphériques par contrôleur suivant la révision
du protocole utilisée. C’est une interface concurrente à l’IDE qui présente l’avantage de
pouvoir connecter plus de périphériques pour des débits supérieurs. En outre, ces
périphériques peuvent partager le bus lors d’un dialogue contrairement à l’IDE. Mais son coût
reste très élevé… elle est utilisée pour les serveurs.

 Bus USB (Universal Serial Bus ) : c’est un bus d’entrée/sortie plug-and-play série. Dans sa
deuxième révision (USB 2.0), il atteint un débit de 60 Mo/s. Un de ces avantages est de
pouvoir connecter théoriquement 127 périphériques. Il supporte de plus le hot plug-and-play
(connexion ou déconnexion de périphériques alors que le PC fonctionne).

 Bus firewire : c’est un bus SCSI série. Il permet de connecter jusqu’à 63 périphériques à des
débits très élevés (100 à 400 Mo/s). Ces applications sont tournées vers la transmission de
vidéos numériques.

 Liaison pont nord/pont sud : ses caractéristiques dépendent du chipset utilisé. Chaque
fabricant a en effet développé une solution propriétaire pour connecter les deux composants
de leur chipset. Pour Intel, c’est Intel Hub Architecture (IHA) dont les débits atteignent 533
Mo/s. Pour Nvidia (en collaboration avec AMD), c’est l’HyperTransport qui atteint des débits
de 800 Mo/s
RA
Remarques : Tous les bus « internes » (PCI, IDE, AGP) vont être amenés à disparaître très
rapidement et seront remplacés par des bus série :

 Le Serial Ata, remplaçant du bus IDE, présente des débits de 150 Mo/s qui passeront bientôt
à 300 Mo/s dans la prochaine révision du bus. Il permet de connecter des disques durs ou des
lecteurs optiques.

 Le PCI Express, remplaçant des bus PCI et AGP, permet d’atteindre des débits de 250 Mo/s
dans sa version de base qui peuvent monter jusqu’à 8Go/s dans sa version x16 destinée à des
périphériques nécessitant des bandes passantes très élevées (application graphique).

Les bus de connexions filaires tendent à être remplacés par des systèmes de communications sans
fils. A l’heure actuelle, il existe :

 le Bluetooth qui offre actuellement un débit de 1 Mb/s pour une portée d’une dizaine de
mètre et qui va servir à connecter des périphériques nécessitant des bandes passantes faibles
(clavier, souris, etc…).

 le WIFI(WIreless FIdelity Network) qui permet de connecter des ordinateurs en réseau. La


dernière révision permet des débits de 54 Mb/s.
Exercice :

1) Identifier les deux composants en


question et donner le rôle de chacun
M
d’eux.

2) L’un des composants chipset est


généralement surmonté d’un
dissipateur thermique (radiateur).
Lequel et pourquoi ?

3) Expliquer la différence entre une


horloge système et une horloge
temps réel

4) En fonction du tableau ci-dessous


et des commentaires relatifs à chaque
type de bus, Identifier dans le
synoptique ci-contre, les bus
concernés.

On notera : Bus xxxxxxxxxx = Dn

DESIGNATIONS (Type de Bus)


Créé lors de l’explosion de l’utilisation des cartes 3D qui nécessitent un rendu plus réaliste de
l’image. C’est une amélioration du bus PCI. Il autorise en plus le DIME (DIrect Memory
D1 Execution) qui permet au processeur graphique de travailler directement avec des données
contenues dans la RAM sans passer par le microprocessuer à l’instar d’un DMA. C’est un bus 32
bits et son débit max est de 2Go/s (enx8)
C’est un bus d’entrée/sortie plug-and-play série. Dans sa deuxième révision (USB 2.0), il atteint
un débit de 60Mo/s. Un des ces avantages est de pouvoir connecter théoriquement 127
D2
périphériques. Il supporte de plus le hot plug-and-play (connexion ou déconnexion de
périphériques alors que le PC fonctionne)
C’est un bus d’entrée/sortie parallèle permettant de relier un maximum de 7 ou 15
périphériques par contrôleur suivant la révision du protocole utilisée. C’est une interface
D3
concurrente à l’IDE qui présente l’avantage de pouvoir connecter plus de périphériques pour
des débits supérieurs.
D4 C’est l’ancêtre du bus PCI. On ne le retrouve plus sur les nouvelles générations de cartes mères.
Aussi appelé bus système ou FSB (Front Side Bus). Il relie le microprocesseur au pont nord puis
D5
à la mémoire. C’est un bus 64 bits
Il a été créé en 1997 par Intel. Il permet de connecter des périphériques internes. C’est le
D6
premier Bus à avoir unifié l’interconnexion des systèmEs d’E/S sur un PC. C’est un bus 32 bits.
Il permet de relier au maximum 2 périphériques de stockage interne par canal (disque dur ou
D7 lecteur DVDROM/CDROM). Son débit est de 133 Mo/s. Lorsque deux périphériques sont reliés
sur le même canal, un doit être le maître (prioritaire sur la prise du bus) et l’autre l’esclave.
C’est un bus SCSI série. Il permet de connecter jusqu’à 63 périphériques à des dédits très
D8 élevés (100 à 400Mo/s). Ces applications sont tournées vers la transmission de vidéos
numériques.
Ses caractéristiques dépendent du chipset utilisé. Chaque fabricant a en effet développé une
D9
solution propriétaire pour connecter les deux composants de leur chipset.

Vous aimerez peut-être aussi