Vous êtes sur la page 1sur 53

ENSI

Module :Architecture des Ordinateurs

Chapitre 3: Architecture
et Fonctionnement d’un Microprocesseur

A.U. 2019-2020
Microprocesseur (ou CPU, Central Processing Unit, “ Unité centrale
de traitement ” en français)
4
5
Les architectures CISC
• Ancienne Architecture des processeurs
• Architecture présentant un jeu d’instructions complexe
– Plusieurs opérations peuvent être codés par une même
instruction
• Plusieurs modes d’adressage
• Utilise moins de registre par rapport à une architecture RISC
• Exemple :
– Motorola 680x0 ,
– S/360 d’IBM,
– Intel Pentium,8086

6
Les architectures RISC
• Architecture présentant un jeu d’instructions relativement réduit
– Une seule opération /instruction
– Taille fixe pour les instructions
• Modes d’adressage simples
• Ont permis une augmentation de la fréquence
• Présente un nombre important de registres généraux
• Les seules instructions ayant besoin d’accès à la mémoire sont les
instruction de chargement et de rangement
• Exemple :
– PowerPC
– ARM
– SPARC
– MIPS

7
Architecture Interne
Les phases d’exécution D’UNE INSTRUCTION

• 1/ Recherche d’Instruction
• 2/ Décodage de format d’instruction
• 3/Recherche de l’opérande
• 4/ Exécution de l’instruction
Architecture Interne
12
13
Unité de Commande Architecture Interne
Unité de Commande
Architecture Interne
Unité de Traitement
Architecture Interne
Registre d’état

17
Registre d’état (Flag :
Exercice
Solution
Description d’un Processeur
de la Famille CISC
Intel 8086
Organisation interne du 8086
Organisation interne du 8086
Segmentation de la Mémoire
Segmentation de la Mémoire
Les Registres du mP 8088/86
Segment de code :

1- Segment de code :
contient le code
exécutable du
programme courant.
L’origine de ce segment
sera placée dans le
registre
de segment CS.
CS : IP pointe toujours
l’instruction suivante à
exécuter.
Segment de Donnée :

Segment de donnée :
contient toutes les données
courante du programme. C’est
le segment source lors d’une
opération de traitement de
chaîne de données. L’origine de
ce segment sera placée dans le
registre de segment DS. Le
registre index combiné avec ce
registre c’est le SI.
DS : SI ou BX  pointe toujours
l’élément de la chaîne source
(pour le cas des instructions de
traitement de chaîne ).
Segment de donnée extra : :

Segment de donnée extra :


c’est le segment
destination lors
d’une opération
sur une chaîne de donnée.
L’origine de ce segment
est placé dans ES.
Le registre indexe
combiné avec celui-ci
est le DI.
ES : DI  pointe toujours
l’élément de la chaîne
destination
(pour le cas des instructions
de traitement de chaîne ).
Segment de pile :

Segment de pile :
contient toutes les
informations stockées
dans la pile.
L’origine de
ce segment
est placée dans
le registre SS.
A ce registre de
segment sera associés le
pointeur de pile SP.
SS : SP ou BP pointe toujours
le dernier élément empilé.
Calcule de l’adresse :
La donnée d’un couple (segment, offset) définit une adresse logique, notée sous la forme
segment : offset. L’adresse d’une case mémoire donnée sous la forme d’une quantité sur 20 bits est appelée
adresse physique car elle correspond à la valeur envoyée réellement sur le bus d’adresses A0 - A19.
Correspondance entre adresse logique et adresse physique :

Ainsi, l’adresse physique se calcule par l’expression :


adresse physique = 16 × segment + offset
car le fait d’injecter 4 zéros en poids faible du segment revient à
effectuer un décalage de 4 positions vers la gauche, c’est à dire une multiplication par 2 4.
Exemple
• DS=A23Bh, SI=12C5h
• Donner l’adresse logique et calculer l’adresse
physique.

• Adresse logique=A23B:12C5
• Adresse physique=A23B*16+12C5
=A23B0+12C5=A3675h
Gestion de mémoire
Accès au segment de Code : CS*10h+IP (Opération de Fetch)
Gestion de mémoire
Accès au segment de données : DS*10h+SI (Opération de
transfert de données en écriture ou lecture)
Gestion de mémoire
Accès au segment de pile : SS*10h+SP
(sauvegarde/récupération temporaires de données- Appel
de procédures)
Gestion de mémoire
Accès au segment de pile : ES*10h+DI (manipulation des
données supplémentaires)
Les Registres du mP 8088/86
Registres généraux : 4 registres sur 16 bits.
AX = (AH,AL) ;
BX = (BH,BL) ;
CX = (CH,CL) ;
DX = (DH,DL).
Ils peuvent être également
considérés comme 8 registres sur 8 bits.
Ils servent à contenir
temporairement des données. Ce sont des registres généraux mais ils peuvent être utilisés
pour des opérations particulières.

AX et DX : interviennent pour toutes instructions de multiplication, de division


et d’entrée/sortie.
CX : est forcement utilisé pour toutes les instructions de la boucle, de
décalage(CL).
BX  : a le titre de registre de base, car il est souvent désigné pour contenir l’adresse de
base d’une structure de données en mémoire. (Exemple : l’adresse de base d’un
tableau).
Les Registres du mP 8088/86
Les phases d’exécution
• 1/ Recherche d’Instruction
• 2/ Décodage de format d’instruction
• 3/Recherche de l’opérande
• 4/ Exécution de l’instruction
Recherche d’instruction
 RI  [CS:IP]
 Décoder l’instruction :
Dec  RI
 Charger l’Opérande
instruction Reg1, Reg2: RT1 Reg1 et RT2 Reg2
Charger l’Opérande
 instruction Reg1, mem(imm) ou mem(imm), Reg1:
RT2 [DS*10h+SI+imm] et RT1  Reg1
Exécuter l’Instruction
 instruction Reg1, Reg2:
Reg1  RT1 Op RT2
Exécuter l’Instruction
 instruction Reg1, mem(imm):
Reg1  RT1 Op RT2
Exécuter l’Instruction
 instruction mem(imm),Reg1:
M[DS*10h+SI+imm]  RT2 Op RT1
Exercices
• Calculer l’adresse réelle (physique) de
l’instruction à exécuter si DS = 1111h; CS =
3333h; ES = 4444h; et SS = 2222h ; BP =
4444h; BX = 5555h; DI = 7777h et IP = 6666h
Solution
• Calculer l’adresse réelle (physique) de
l’instruction à exécuter si DS = 1111h; CS =
3333h; ES = 4444h; et SS = 2222h ; BP =
4444h; BX = 5555h; DI = 7777h et IP = 6666h
• 1) SS:BP = 22220h+4444h = 26664h
• 2) DS:BX = 11110h + 5555h = 16665h
• 3) ES:DI = 44440h + 7777h = 4BBB7h
• 4) CS:IP = 33330h + 6666h =39996h

Vous aimerez peut-être aussi