Vous êtes sur la page 1sur 39

Calculateurs & Interfaçage

Étapes majeures

La nécessité de disposer de moyens permettant d’effectuer des calculs longs et


répétitifs, avec un faible risque d’erreur, a conduit à concevoir des instruments et des
machines de plus en plus complexes dont la liste suivante résume, de manière très
incomplète, les principales évolutions.

04/10/2021 Chapitre_I Calculateurs & Interfaçage Pr. M. BOUDRAA 1


Machines mécaniques
• Premiers instruments de calcul, développés depuis l’Antiquité et utilisés jusqu’au début du xxe siècle :
bouliers, abaques, règles à calculer, compas de proportion.

• Première vraie machine à calculer : Blaise Pascal, 1642, machine à additionner.

• Machine à multiplier : Gottfried Wilhelm Leibniz, 1694, basée sur les travaux de John Neper (1617,
logarithmes).

• Première machine programmable : métier à tisser, Joseph Marie Jacquard, xviiie siècle, machine à
cartes perforées.

• Machine programmable universelle : Charles Babbage, xviiie siècle, non réalisable avec les
technologies de l’époque (machines à vapeur), principe des machines actuelles.

Machines électromécaniques
• Machine à calculer à cartes perforées : Hermann Hollerith, 1885, facilite le recensement américain.

• Machines industrielles à base de relais électromécaniques pour la comptabilité et les statistiques,


Howard Aiken et George Stibitz, 1936-1939
04/10/2021 Chapitre_I Calculateurs & Interfaçage Pr. M. BOUDRAA 2
Machines électroniques

• Première machine à calculer électronique : ENIAC, 1944, John Eckert et


John William Mauchly, 18000 tubes électroniques, machine à programme
câblé.

• Concept de machine universelle à programme enregistré : Alan Turing,


John Von Neumann, 1946, instructions stockées dans la mémoire du
calculateur : ordinateur.

• Premier ordinateur commercialisé : SSEC d’IBM, 1948.

• Ordinateur à transistors : 1963, PDP5 de Digital Equipment Corporation


(DEC), introduction des mémoires à ferrites : mini-ordinateurs.

• Micro-ordinateurs : 1969-70, utilisation des circuits intégrés LSI.


04/10/2021 Chapitre_I Calculateurs & Interfaçage Pr. M. BOUDRAA 3
Machines électroniques (suite)

• Premier microprocesseur : Intel, 1971, microprocesseur 4004, puis 8008,


premier micro-ordinateur : le Micral, 1973, France, puis l’Altair, 1975, États-
Unis.

• Autres microprocesseurs : 8080 et 8085 d’Intel, 6800 de Motorola, Z80 de


Zilog : microprocesseurs 8 bits, début des années 1980.

• Microprocesseurs 16 bits : 8086/8088 d’Intel, 68000 de Motorola.

• Microprocesseurs 32 bits en 1986 : 80386 d’Intel et 68020 de Motorola.

• Fabrication en grandes séries des micro-ordinateurs : 1977, Apple,


Commodore, Tandy, IBM PC + MS–DOS (Microsoft) en 1981.

04/10/2021 Chapitre_I Calculateurs & Interfaçage Pr. M. BOUDRAA 4


Machines actuelles

• Ordinateurs de plus en plus puissants, basés sur des microprocesseurs


performants : Pentium, Power PC, Core i7.

• Nouvelles architectures de microprocesseurs : superscalaires, vectorielles,


RISC, VLIW, Dataflow.

• Applications multimédia, réseaux, téléphonie mobile.

• Systèmes embarqués : microcontrôleurs, processeurs de traitement de


signal (DSP, DSC).

04/10/2021 Chapitre_I Calculateurs & Interfaçage Pr. M. BOUDRAA 5


Dans le domaine des systèmes numériques, il existe deux grandes sortes de
composants :
 les processeurs (et dérivés : microcontroleurs, DSP...) qui font du
traitement séquentiel
 les composants programmables qui font du traitement parallèle

04/10/2021 Chapitre_I Calculateurs & Interfaçage Pr. M. BOUDRAA 6


But de ce cours

• Connaître les bases de l’architecture d’un


microprocesseur

• Indispensable pour plusieurs UEs de L3 et de M1


 Architecture,
 Architectures parallèles,
 système & réseaux, etc.)

• Indispensable pour les Systèmes Embarqués.


04/10/2021 Chapitre_I Calculateurs & Interfaçage Pr. M. BOUDRAA 7
Les microprocesseurs hier, aujourd’hui et …demain ?

• Au niveau technologique (commutateur):


• Tubes à vide (1904) → transistor (années 20-30)
semi-conducteur/65nm → nanotechnologies (1 à 0.1nm)
• Au niveau de la mémoire:
 1 Ko (en 1970) → quelques GO (230)
 Une faune variée: mémoire externe, mémoire centrale,
mémoire cache (de plusieurs niveaux différents)
• Au niveau de l’architecture:
 Du modèle Von Neumann → architectures plus
parallèles (pipeline, super scalaire, multi cœur)
04/10/2021 Chapitre_I Calculateurs & Interfaçage Pr. M. BOUDRAA 8
Architecture de von Neumann
L’architecture dite architecture de von Neumann est un modèle pour un ordinateur qui utilise une
structure de stockage unique pour conserver à la fois les instructions et les données demandées ou
produites par le calcul. De telles machines sont aussi connues sous le nom d’ordinateur à programme
enregistré. La séparation entre le stockage et le processeur est implicite dans ce modèle. Les
ordinateurs actuels sont tous basés sur des versions améliorées de cette architecture.
L’architecture de von Neumann décompose l’ordinateur
en 4 parties distinctes :

1. l’unité arithmétique et logique (UAL ou ALU en anglais)


ou unité de traitement : son rôle est d’effectuer les opérations
de base ;
2. l’unité de contrôle ou de commande (control unit), chargée
du « séquençage » des opérations ;
3. la mémoire qui contient à la fois les données et le programme
qui indiquera à l’unité de contrôle quels sont les calculs à faire
sur ces données ;
4. les dispositifs d’entrée-sortie, qui permettent de
communiquer avec le monde extérieur.
04/10/2021 Chapitre_I Calculateurs & Interfaçage Pr. M. BOUDRAA 9
Performances

• C’est toujours la course aux performances (MIPS, MOPS,


FLOPS): plus les machines sont performantes et plus les
applications sont gourmandes. (MIPS: million d'instructions par seconde.
FLOPS: nombre d'opérations en virgule flottante par seconde)

• Parmi ces applications:


 Traitement d’images, visioconférence, jeux 3D,
multimédia;
 Bioinformatique: décodage du génome humain
 Modélisation et simulation en climatologie, conception de
circuits intégrés, etc.
• Pour accroître les performances, on compte sur l’évolution des
technologies mais aussi les architectures : parallélisme interne
(au sein d’un processeur) ou/et externe (multi processeur)
04/10/2021 Chapitre_I Calculateurs & Interfaçage Pr. M. BOUDRAA 10
I- Etude du /8086/80286

Introduction : les P 16 bits

Le 8086 : P 16 bits
1. Boîtier de 40 broches
2. Espace adressable : 1 MO vus comme 512 Kmots de 16 bits
64 KO d’E/S
3. Bus Mux : adresse/données/status
4. Mode de fct : min (processeur unique), max (multiprocesseurs locaux ou distants)
5. Interruptions : 256 niveaux
6. 8086 travaille à 5, 8 ou 10 MHz de fréquence d’horloge

Le 80286 :
1. Utilise un bus de données de 16 bits au lieu de 8bits pour le 8085
2. Ses registres sont à 16 bits
3. Boîtier de 68 broches
4. Architecture interne en 4 unités (assurant un fonctionnement en pipeline)
04/10/2021 Chapitre_I Calculateurs & Interfaçage Pr. M. BOUDRAA 11
5. Le 80286 est un microprocesseur 16 bits pouvant travailler jusqu’à 12,5 MHz
de fréquence d’horloge (6, 8, 10 MHz). Il fonctionne en mode pipeline.
6. Le 80286 dispose de circuits internes de gestion de la mémoire, en outre il
fonctionne selon deux modes :
Le mode d’adressage réel (mode réel) : c’est son mode d’entrée qui lui
assure une parfaite compatibilité avec les microprocesseurs 8086 / 8088. Il
peut accéder jusqu’à 1 Mo de mémoire. Le 80286 offre une rapidité de 2 à 5
fois supérieure é celle du 8086.

Le mode d’adressage protégé (mode protégé) : Le 80286 peut adresser


jusqu’à 16 Mo de mémoire centrale ou 1 Go ( 230 ) de mémoire virtuelle.
7. La compatibilité avec le 8086 est en code source seulement.
8. Le 80286 présente une caractéristique importante par rapport aux 8086 / 8088
:
• Il gère des applications en multitâches,
• Il offre quatre niveaux de sécurité reconnus comme des niveaux de
privilèges.
04/10/2021 Chapitre_I Calculateurs & Interfaçage Pr. M. BOUDRAA 12
• Le 80386 : P 32 bits (registres et bus de données). Il possède le même jeu
d’instructions que le 80286 et exploite la mémoire de la même façon, mais la
quantité de mémoire physique adressable est de 4GO.
le mode réel : 1MO (20 bits)) de mémoire adressable
le mode protégé : 4 GO (32 bits) pour l’adressage physique et
64 Téra-Octets 546 bits) pour l’adressage virtuel.
Le 80386 travaille à 16 MHz.

• 80486: microprocesseur 32 bits multitâches (exécution de plusieurs programmes


simultanément) avec coprocesseur mathématique.
• Pentium et Pentium Pro: utilisation d’architectures super scalaires (plusieurs
instructions en parallèle) et techniques logicielles permettant d’accélérer le
traitement:
Prédiction de branchement
Analyse de flot (enlever le code mort)
Exécution spéculative (dans le désordre)
• Pentium II, III et IV: traitement spécifique pour la vidéo, 3D et multimédia.
04/10/2021 Chapitre_I Calculateurs & Interfaçage Pr. M. BOUDRAA 13
Le 80286 : 1. Utilise un bus de données de 16 bits au lieu de 8bits pour le 8085
2. Ses registres sont à 16 bits
3. Boîtier de 68 broches
4. Architecture interne en 4 unités (assurant un fonctionnement en pipeline)

I-2 Signaux du 80286 (architecture externe)

Le 80286 est un circuit à 68 broches disposées selon deux faces, la face de


dessous et la face de dessus ( ce n’est plus un boitier DIL comme le 8086 ).
la pin 1 est repérée par une taille comme indiqué dans la figure ci-dessous.

04/10/2021 Chapitre_I Calculateurs & Interfaçage Pr. M. BOUDRAA 14


Brochage du 8086

04/10/2021 Chapitre_I Calculateurs & Interfaçage Pr. M. BOUDRAA 15


BHE
S1
S2
READY
ERROR
BUSY
IO
PEACK
LOCK

Les signaux du 80286 sont définis dans le tableau suivant :

04/10/2021 Chapitre_I Calculateurs & Interfaçage Pr. M. BOUDRAA 16


Le bus de données peut véhiculer des mots de 16 bits ou des octets indépendants et ce sur les lignes D0-
D7 et D8-D15, ce sont les signaux BHE et A0 qui en témoignent selon le tableau suivant :

Fonction BHE et A0

De ce fait seuls A1 - A19 vont servir pour désigner une cellule dans chaque banque de 512 Ko, ce principe permet
de travailler par mots de 16 bits ou 8 bits ( banque de mémoire ) en fonction de la règle suivante:

Les blocs de banque mémoire

04/10/2021 Chapitre_I Calculateurs & Interfaçage Pr. M. BOUDRAA 17


Tableau : cycle en cours

COD/INTA : - distingue entre recherche instruction et lecture des données en mémoire


- distingue entre acquisition d’interruption et cycles d’E/S.
M/IO : sélection mémoire/ES : distingue entre mémoires et E/S
S0, S1 : état du cycle bus en cours
04/10/2021 Chapitre_I Calculateurs & Interfaçage Pr. M. BOUDRAA 18
I-3 ARCHITECTURE INTERNE (MULTI-TÂCHE , MULTI-UTILISATEUR) :

L’architecture du 80286 est présentée par la figure, on retrouve les 4 unités :

 Unité de Bus ( UB ) :
• pilote toutes les opérations relatives aux bus
• engendre les signaux nécessaires pour les adresses, les données et les commandes + les signaux de
synchronisation entre coprocesseur
• contrôle l’organisation du système après ajout d’extensions externes
• effectue une pré-recherche d’instructions et les stocke dans la file d’attente.
• Etablit le régime pipeline (lecture anticipée des instructions et leur mémorisation dans BU jusqu’à 6
octets sont stockés.

 Unité d’instructions (UI) :


• reçoit les instructions de la file d’attente (6 octets de BU) et les décode
• place les instructions décodées dans une file pouvant contenir jusqu’à 3 instructions complètes.

 Unité d’exécution (UE) :


• Récupère les instructions décodées de IU. Peut solliciter BU pour réaliser des accès en lecture ou en
écriture sur le bus de données.
• exécute les instructions- Sollicite UAL
• reçoit des informations sur lesChapitre_I
04/10/2021
interruptions
Calculateurs & Interfaçage Pr. M. BOUDRAA 19
 Unité d’adresses (AU):
• gère la mémoire et les protections
• calcule les adresses physiques à partir des adresses logiques.
• Contrôle la fin du segment .

Les quatre unités fonctionnent en parallèle (mode pipeline) comme l’illustre la figure

Fonctionnement pipeline (parallèle)


04/10/2021 Chapitre_I Calculateurs & Interfaçage Pr. M. BOUDRAA 20
04/10/2021 Chapitre_I Calculateurs & Interfaçage Pr. M. BOUDRAA 21
I-3-1 Les registres du 80286 et leur organisation

04/10/2021 Chapitre_I Calculateurs & Interfaçage Pr. M. BOUDRAA 22


Organisation des registres
Les registres sont des petites mémoires internes au microprocesseur, très rapides d’accès. Les registres sont
utilisés pour stocker temporairement une donnée, une instruction ou une adresse. Le nombre exact de registres
et de leurs tailles (8, 16 ou 32 bits) dépend du type du microprocesseur. Le 8086 comprend 14 registres de
base de 16 bits (voir figure 6) répartis en quatre groupes:

1-Registres généraux de données (AX, BX, CX, DX)


Ces registres interviennent dans les opérations arithmétiques et logiques. Les quatre registres de données de 2
octets (16 bits) peuvent se comporter comme 8 registres d’1 octets (8 bits) (AL et AH, BL et BH, CL et CH, DL et
DH).

04/10/2021 Chapitre_I Calculateurs & Interfaçage Pr. M. BOUDRAA 23


2- Registres généraux de pointeurs (SP, BP) et d’index (SI, DI)
Ils sont spécialisés dans l’accès indexé. Ils contiennent généralement le déplacement (décalage ou
«offset» ou adresse effective) à l’intérieur d’un segment de mémoire.

3- Registre pointeur d’instructions et Registre d’état

- IP (Registre pointeur d’instruction) : Il contient constamment l’adresse mémoire ( à l’intérieur du segment de code)
de la prochaine instruction à exécuter.

- Registre d’état : sert à donner des informations sur les résultats de diverses instructions. Le 8086 dispose de 6 bits
d’état et 3 bits de contrôle :
Registre d’état :

04/10/2021 Chapitre_I Calculateurs & Interfaçage Pr. M. BOUDRAA 24


 Les bits d’états :

CF: retenue CF=1  il y a retenue CF=0  pas de retenue


AF: demi retenue AF=1  il y a ½ retenue AF=0  pas de ½ retenue
ZF: zéro ZF =1  résultat nul ZF =0  résultat non nul
SF: signe SF = 1  résultat négatif SF = 0  résultat positif
OF: dépassement OF =1  dépassement OF =0  pas de dépassement
PF: parité

 Les bits de contrôle :

TF: exécution pas à pas


IF: autorisation d’interruptions masquables
DF: direction d’incrémentation (pour les chaînes de caractère

04/10/2021 Chapitre_I Calculateurs & Interfaçage Pr. M. BOUDRAA 25


4- Registres de segment

Ils sont sur 16 bits et pointent vers les 4 segments mémoire en activité.

- CS (Code Segment): registre de segment de code

- DS (Data Segment) : registre de segment de données

- SS (Stack Segment) : registre de segment de pile

- ES (Extra Segment) : registre de segment de donnée supplémentaire

04/10/2021 Chapitre_I Calculateurs & Interfaçage Pr. M. BOUDRAA 26


04/10/2021 Chapitre_I Calculateurs & Interfaçage Pr. M. BOUDRAA 27
I-3-2 Segmentation de la mémoire
Le 8086 peut adresser 1 Mo de mémoire. La mémoire est divisée en segments. Un segment de mémoire es
une partie de la mémoire dont la capacité ne dépasse pas 64 Ko. Un segment de mémoire correspond donc
à 64 x 220 octets = 65536 octets = 65536 cases mémoire. La mémoire est divisée en 4 types de segments.

Les 4 types de segments

1) Segment de Code:

Il est pointé par le registre CS. Ce segment contient le code exécutable du programme. Le contenu du
registre CS est combiné au déplacement (offset) contenu dans le registre IP pour calculer une adresse de
20 bits qui est l’adresse de la prochaine instruction à exécuter.

04/10/2021 Chapitre_I Calculateurs & Interfaçage Pr. M. BOUDRAA 28


2) Segment de Donnée:

Il est pointé par le registre DS. Ce segment contient les données du programme. Le contenu du registre
DS est combiné au déplacement (offset) contenu dans le registre BX, SI ou DI pour calculer une adresse
de 20 bits qui est l’adresse de la donnée.

3) Segment de donnée Extra:

Il est pointé par le registre ES. Ce segment contient aussi des données. Le contenu du registre ES est
combiné au déplacement (offset) contenu dans le registre BX, SI ou DI pour calculer une adresse de 20
bits qui est l’adresse de la donnée.

4) Segment de pile:

Il est pointé par le registre SS. Ce segment contient des données temporaires et les adresses de retour
en cas d’appel à un sous-programme. Le contenu du registre ES est combiné au déplacement (offset)
contenu dans le registre SP ou BP pour calculer une adresse de 20 bits.

Remarque: Les registres de segments permettent d’adresser à tout moment 256 Ko de mémoire. Le
8086 peut accéder aux autres parties de la mémoire en changeant les contenus des registres de
segment.
04/10/2021 Chapitre_I Calculateurs & Interfaçage Pr. M. BOUDRAA 29
organisation de la mémoire
04/10/2021 Chapitre_I Calculateurs & Interfaçage Pr. M. BOUDRAA 30
Calcul de l’adresse physique
L’adresse physique (sur 20 bits) d’une case mémoire est calculée à partir du contenue d’un registre de
segment (CS, DS, ES ou SS) et un déplacement (offset) de 16 bits par la formule suivante :

Remarque : CS pointe vers le segment de code  l’opération CS x 10h donne comme résultat
l’adresse physique (sur 20 bits) du début de segment de code (c’est à dire l’adresse physique de la
première case mémoire du segment de code).
04/10/2021 Chapitre_I Calculateurs & Interfaçage Pr. M. BOUDRAA 31
04/10/2021 Chapitre_I Calculateurs & Interfaçage Pr. M. BOUDRAA 32
Désignation d’une adresse

a) Adresse Effective : C’est le déplacement ou l’offset à l’intérieur d’un segment. Il est sur 16 bits. Le
déplacement maximal est donc : FFFF h

b) Adresse logique : La valeur du registre de segment et la valeur du déplacement sont séparés par deux point (:)
Registre segment : offset (Déplacement)
CS : IP, DS : EA, SS : SP, ES : EA

c) Adresse physique : c’est l’adresse réelle et qui est sur 20 bits


Adresse physique (20 bits) = registre segment (16 bits) x 10h + offset (16 bits)

NOTATION DES ADRESSES :

Il existe deux méthodes pour représenter l’adresse physique :

On donne la valeur sur cinq ( 05 ) caractères Hexa :


16661 H

L’adresse est exprimée sous la forme : registre de base : déplacement


1234 : 4321

04/10/2021 Chapitre_I Calculateurs & Interfaçage Pr. M. BOUDRAA 33


Affectation des registres segments

Remarques
Toutes les instructions du 80286 qui utilisent la mémoire font un usage implicite d’un registre segment particulier pour
l’opération devant être accomplie.
EXEMPLE : MOV, agit sur les données emploie donc le registre DS.
04/10/2021 JMP , affecte leChapitre_I
flux duCalculateurs
programme utilisePr.donc
& Interfaçage le registre CS.
M. BOUDRAA 34
Stockage des données en mémoire
Les données de 2 octets sont toujours stockées avec l’octet le plus fort poids à l’adresse la plus grande.

Exemple 1:
On donne CS =1000h, DS = 2000h, ES = 3000h, et SS = 4000h
Donner les adresses physiques du début et de la fin de chaque type de segment/.

Segment de Code :
-Adresse de début du segment = CS * 10h + 0000h = 10000h
-Adresse de fin de segment = CS * 10h + FFFFh = 1FFFFh

Segment de Données :
-Adresse de début du segment = DS * 10h + 0000h = 20000h
-Adresse de fin de segment = DS * 10h + FFFFh = 2FFFFh

Segment de données Extra :


-Adresse de début du segment = ES * 10h + 0000h = 30000h
-Adresse de fin de segment = ES * 10h + FFFFh = 3FFFFh

Segment de Pile :
-Adresse de début du segment = SS * 10h + 0000h = 40000h
-Adresse de fin de segment = SS * 10h + FFFFh = 4FFFFh

Remarque : Le déplacement ou offset est Chapitre_I


04/10/2021
sur 16 Calculateurs
bit. On a donc :
& Interfaçage Pr. M. BOUDRAA 35
Offset minimale = 0000H. Et Offset maximal = FFFFH
Exemple 2 :

On donne CS = 1000H et IP = 00A8H.


Donner l’adresse physique de l’instruction en cours.

L’adresse physique de l’instruction en cours d’exécution est de :


Adresse physique = CS*10H + IP = 1000* 10H + 000A8H = 100A8H

b) Désignation d’une adresse mémoire

-Adresse Effective = Offset (déplacement)

-Adresse logique = segment : offset

-Adresse physique = (segment x 10h) + offset

c) rangement des données en mémoire


Les données de 2 octets sont toujours rangées avec l’octet de plus fort poids à la plus grande adresse.

Exemple
On donne DS = 3000h ES = 4000h,

04/10/2021 Chapitre_I Calculateurs & Interfaçage Pr. M. BOUDRAA 36


1- MOV AL, [1000H]  transférer la donnée de 1 octet contenue dans la mémoire (dans le
segment de donnée à la case d’adresse effective 1000h) vers le registre AL.

2- MOV AL, ES : [1000h]  transférer la donnée de 1 octet contenue dans la mémoire (dans le segment de
donnée Extra à la case d’adresse effective 1000h) vers le registre AL.

04/10/2021 Chapitre_I Calculateurs & Interfaçage Pr. M. BOUDRAA 37


Remarque : Dans une instruction les adresses sont spécifiées entre crochet et correspondent à des adresses
effectives (offset). Pour spécifier de quel segment il s’agit, il suffit de précéder l’adresse effective par le registre de
segment suivi de deux points. Si aucun segment n’est spécifié alors il s’agit du segment de donnée.

On a donc MOV AL, [1000h] est équivalent à MOV AL, DS : [1000h]

3- MOV AX, [1000h]  transférer la donnée de 2 octets contenue dans la mémoire (dans le segment de donnée
aux cases d’adresses effectives 1000h et 1001h) vers le registre AX.

04/10/2021 Chapitre_I Calculateurs & Interfaçage Pr. M. BOUDRAA 38


4- MOV [1000h], BX  transférer la donnée de 2 octets contenue dans le registre BX vers la mémoire (dans le
segment de donnée aux cases d’adresses effective 1000h et 1001h)

04/10/2021 Chapitre_I Calculateurs & Interfaçage Pr. M. BOUDRAA 39

Vous aimerez peut-être aussi