Académique Documents
Professionnel Documents
Culture Documents
METIDJI
2- Concepts de base :
Quand un problème est posé, on essaie normalement de trouver une solution. L’expression de cette
solution sous la forme d’une procédure à suivre pas à pas s’appelle un algorithme.
Une fois que la solution d’un problème a été exprimée sous la forme d’un algorithme, il faut traduire
celui-ci en langage compréhensible par l’ordinateur. Seul un dérivé bien défini de la langue naturelle,
appelé langage de programmation, peut être compris par l’ordinateur. On appelle programmation la
conversion d’un algorithme en une séquence d’instruction appartenant à un langage de
programmation. La phase de traduction de l’algorithme en langage de programmation s’appelle un
codage.
2-1 Représentation interne de l’information :
Dans un système microprogrammé à base de microprocesseurs et/ou de microcontrôleurs, toute
information (nombre ou texte alphanumérique) est stockée sous forme de groupe de bits. En effet ces
systèmes électroniques ne savent distinguer qu’entre deux niveaux : présence ou absence de tension !
Pour représenter deux niveaux logiques (niveau haut de tension et niveau bas) il est donc obligatoire
d’utiliser un système de numération à base de deux : le système binaire qui utilise deux chiffres, le 0
et le 1 pour représenter n’importe quel nombre sous formes d’une série de 0 et de 1. Chaque chiffre
est appelé Bit (BInary uniT en anglais) et un ensemble de huit bits est un Octet (Byte en anglais).
Exp : B’1001=1×20+0×21+0×22+1×23=9.
2-2 Représentation externe de l’information :
La représentation externe de l’information est la manière dont l’information apparaît à l’utilisateur.
Elle est représentée essentiellement sous trois formes : binaire, octal ou hexadécimal et symbolique.
La représentation symbolique désigne la représentation externe de l’information dans sa forme
symbolique proprement dit. Les nombres décimaux sont représentés comme des nombre décimaux et
non comme suite de symboles hexadécimaux ou bits. De même les textes sont représentés en clair.
La représentation symbolique est la plus pratique pour l’utilisateur. Cependant, elle nécessite une
interface sous forme d’un clavier alphanumérique, plus une imprimante ou un terminal à écran CRT.
1
P et C : Chapitre 1 : Architecture d’un Microprocesseur Dr. METIDJI
Figure 2: L’UAL
2
P et C : Chapitre 1 : Architecture d’un Microprocesseur Dr. METIDJI
➢ D’unité de contrôle :
Elle permet de "séquencer" le déroulement des instructions. Elle effectue la recherche en mémoire
de l'instruction, le décodage, l'exécution et la préparation de l'instruction suivante. L'unité de
commande élabore tous les signaux de synchronisation internes ou externes (bus des commandes) au
microprocesseur.
3-2 L’Horloge :
C'est l'horloge qui génère les signaux qui permettent le cadencement et la synchronisation de toutes
les opérations. C'est un signal carré qui a une fréquence fixe (3 Ghz par exemple), à chaque coup
(front) d'horloge, le microprocesseur réalise une tâche élémentaire. L'exécution d'une instruction
nécessite plusieurs coups d'horloges.
3-5 L’unité de transfert : est le support matériel de la circulation des données. C’est un circuit
qui permet de géré selon les signaux de contrôle généré par le microprocesseur le sens de direction
de données (écriture ou lecture), démultiplexage du bus de données et d’adresse, l’emplacement de
l’écriture et de lecture (mémoire ou E/S)….
3
P et C : Chapitre 1 : Architecture d’un Microprocesseur Dr. METIDJI
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. On appelle Bus, en informatique, un
ensemble de liaisons physiques (câbles, pistes de circuits imprimés, ...) pouvant être exploitées en
commun par plusieurs éléments matériels afin de communiquer. Un bus permet de transférer des
données sous forme parallèle, c’est-à-dire en faisant circuler n bits simultanément.
Les microprocesseurs peuvent être classés selon la longueur maximale des mots binaires
qu’ils peuvent échanger avec la mémoire et les E/S : microprocesseurs 8 bits, 16 bits, 32 bits, ...
Le bus peut être décomposé en trois bus distincts :
• le bus d’adresses :
Permet au microprocesseur de spécifier l’adresse de la case mémoire ou l’adresse d’un port d’E/S à
lire ou à écrire.
• le bus de données :
Il permet de véhiculer des données du microprocesseur vers un composant (mémoire, E/S,..) ou d'un
composant vers le microprocesseur. Il est donc bidirectionnel. Le nombre de fils de ce bus varie suivant
les microprocesseurs (8 / 16 / 32 / 64 bits). Dans la littérature, les différents fils de ce bus sont appelés
D0, D1, ..., Dp-1, si le bus a "p" fils.
• le bus de commande :
Le bus des commandes est constitué d'un ensemble de fils de "commandes", permettant la
synchronisation et la commande des boîtiers mémoires et les entrées/sorties par le microprocesseur.
4
P et C : Chapitre 1 : Architecture d’un Microprocesseur Dr. METIDJI
RESET : entrée de remise à zéro du microprocesseur. Lorsque cette entrée est mise à l’état haut
pendant au moins 4 périodes d’horloge, le microprocesseur est réinitialisé : il va exécuter
l’instruction se trouvant à l’adresse FFFF0H de la mémoire centrale. Le signal de RESET est fourni
par le générateur d’horloge.
5
P et C : Chapitre 1 : Architecture d’un Microprocesseur Dr. METIDJI
MN/ ̅̅̅̅̅
𝐌𝐗: entrée de choix du mode de fonctionnement du microprocesseur :
• mode minimum (MN/MX̅̅̅̅ = 1) : le 8086 fonctionne de manière autonome, il génère lui-même le bus
de commande (RD, WR, ...) ;
• mode maximum (MN/MX ̅̅̅̅ = 0) : ces signaux de commande sont produits par un contrôleur de bus,
le 8288. Ce mode permet de réaliser des systèmes multiprocesseurs.
NMI et INTR : entrées de demande d’interruption. INTR : interruption normale, NMI (Non
Maskable Interrupt) : interruption prioritaire.
̅̅̅̅̅̅̅
𝐈𝐍𝐓𝐀 : Interrupt Acknowledge, indique que le microprocesseur accepte l’interruption.
HOLD et HLDA : signaux de demande d’accord d’accès au bus de D/A en cas de mode de
fonctionnent max.
Fonctionnement :
• si ALE = 1, le verrou est transparent (Q = D) ;
• si ALE = 0, mémorisation de la dernière valeur de D sur les sorties Q ;
6
P et C : Chapitre 1 : Architecture d’un Microprocesseur Dr. METIDJI
• les signaux de lecture (RD) ou d’écriture (WR) ne sont générés par le microprocesseur que lorsque
les données sont présentes sur le bus A/D.
̅̅̅̅
𝐑𝐃: Read, signal de lecture d’une donnée.
̅̅̅̅̅
𝐖𝐑: Write, signal d’écriture d’une donnée.
Chronogramme du bus A/D :
̅̅̅̅̅̅
𝐃𝐄𝐍 : Data Enable, indique que des données sont en train de circuler sur le bus A/D (équivalent de
ALE pour les données).
7
P et C : Chapitre 1 : Architecture d’un Microprocesseur Dr. METIDJI
̅̅̅̅̅̅ : Bus High Enable, signal de lecture de l’octet de poids fort du bus de données.
𝐁𝐇𝐄
Le 8086 possède un bus d’adresses sur 20 bits, d’où la capacité d’adressage de 1 Mo ou 512 Kmots
de 16 bits (bus de données sur 16 bits).
Le méga-octet adressable est divisé en deux banques de 512 Ko chacune : la banque inférieure (ou
paire) et la banque supérieure (ou impaire). Ces deux banques sont sélectionnées par :
• A0 pour la banque paire qui contient les octets de poids faible ;
•̅̅̅̅̅̅
BHE pour la banque impaire qui contient les octets de poids fort.
8
P et C : Chapitre 1 : Architecture d’un Microprocesseur Dr. METIDJI
Seuls les bits A1 à A19 servent à désigner une case mémoire dans chaque banque de 512 Ko. Le
microprocesseur peut ainsi lire et écrire des données sur 8 bits ou sur 16 bits :
9
P et C : Chapitre 1 : Architecture d’un Microprocesseur Dr. METIDJI
10
P et C : Chapitre 1 : Architecture d’un Microprocesseur Dr. METIDJI
• l’unité d’interface de bus (BIU) : Le rôle de l'UIB est de chercher les instructions en mémoire,
les stocker dans une file d’attente, et d'établir les transmissions avec les bus du système. Elle est
constituée principalement d’un décodeur, d’un séquenceur et des registres qui participent au
contrôle et la gestion de l’exécution du programme.
Le décodeur
C'est lui qui va "décoder" l'instruction contenue dans RI (C'est là où le CPU stocke l'instruction en
cours d'exécution) et générer les signaux logiques correspondant et les communiquer au séquenceur.
Le séquenceur
Il gère le séquencement des opérations et génère les signaux de commande qui vont activer tous les
éléments qui participeront à l'exécution de l'instruction et spécialement l'ALU.
• l’unité d’exécution (EU) : exécute les instructions contenues dans la file d’attente.
Les deux unités fonctionnent simultanément, d’où une accélération du processus d’exécution d’un
programme (fonctionnement selon le principe du pipe-line).
Le microprocesseur 8086 contient 14 registres répartis en 4 groupes :
11
P et C : Chapitre 1 : Architecture d’un Microprocesseur Dr. METIDJI
12
P et C : Chapitre 1 : Architecture d’un Microprocesseur Dr. METIDJI
BP : Base Pointer, pointeur de base, utilisé pour adresser des données sur la pile :
• Adressage comme registre de base, (Par défaut, son offset est relatif à SS),
Index :
SI : Registre d'index (source)
• Adressage comme registre d’index, (Par défaut, son offset est relatif à DS)
• Utilisé par instruction de déplacement de donnés comme index de l'opérande source.
C : (Carry) indique qu’il y a une retenue sur une opération 8 bits ou 16 bits. Ce flag peut être
utilisé par des instructions de saut conditionnel, des calculs arithmétiques en chaîne ou dans des
opérations de rotation.
P : (Parité) indique que le résultat est pair quand il est mis à1. Ce flag est utilisé avec certains sauts
conditionnels.
A : (retenue Arithmétique auxiliaire) indique une retenue auxiliaire sur les 4 bits (digit) de poids
faible.
Z : (Zéro) Indique que le résultat d'une opération arithmétique ou logique est nul. Il est utilisé dans
plusieurs instructions de sauts conditionnels.
S : (Signe) reproduit le bit de poids fort d'une quantité signée sur 8 bits ou sur 16 bits. L'arithmétique
signée fonctionne en complément à 2. Ce flag sert lors de sauts conditionnels :
S=0 : positif,
S=1 : négatif.
T : (Trap) met le CPU en mode pas à pas pour faciliter la recherche des défauts d'exécution.
I : (Interruption) autorise ou non la reconnaissance des interruptions :
I = 0 → Interruptions autorisées
I = 1 → Interruptions non autorisées
13
P et C : Chapitre 1 : Architecture d’un Microprocesseur Dr. METIDJI
Une adresse se présente toujours sous la forme segment:offset est une adresse logique.
L’adresse d’une case mémoire donnée sous la forme d’une quantité sur 20 bits (5 digits hexa) est
appelée adresse physique car elle correspond à la valeur envoyée réellement sur le bus d’adresses
A0 - A19.
Considérons la case mémoire d'adresse 20350h, appelée adresse absolue ou adresse linéaire ou
adresse physique. Cette case mémoire se situe dans le segment 2, son adresse relative à ce segment est
350, on peut donc la référencer par le couple segment:offset = 20000:350, Se pose maintenant le
problème de la représentation de cette adresse au sein du CPU car les registres de 16 bits ne peuvent
contenir que 4 digits. S'il n'y a aucun problème pour représenter 350 dans un registre d'offset, mais on
ne peut pas représenter 20000 dans un registre segment. La solution adoptée par Intel est la suivante :
- Dans le registre segment, on écrit l'adresse segment sans le chiffre (4 bits) de poids faible.
- Dans le registre d'adressage (d'offset) on écrit l'adresse relative dans le segment.
- Pour calculer l'adresse absolue qui sera envoyée sur le bus d'adresse de 20 bits, le CPU
procède à l'addition des deux registres après avoir décalé le registre segment d'un chiffre (4 bits) à
gauche :
15
P et C : Chapitre 1 : Architecture d’un Microprocesseur Dr. METIDJI
Dans notre exemple, l'adresse de la case mémoire considérée devient 2000:350 soit :
Segment = 2000
Offset = 350
L'adresse absolue (physique) est calculée ainsi :
16
P et C : Chapitre 1 : Architecture d’un Microprocesseur Dr. METIDJI
Remarque :
une seule règle à respecter lors du choix de l’adresse d'un segment est que le digit de plus faible
poids soit nul. Nous pouvons donc commencer un segment tous les 16 octets.
17