CM3

publicité
Les ordinateurs :
de la logique aux calculateurs
Historique
-3000 : Chine, l'octagone à trigramme
-500 : Moyen Orient, L'abaque et le boulier
1642 : Pascal, met au point la pascaline
1666 : Moreland, la multiplication par additions successives.
2
Historique
1833 : Babbage, imagine la machine à différence puis une machine analytique
(Unité de Contrôle, Mémoires, Registres, Cartes perforés). Jamais terminée.
1854 : Boole, Algèbre de Boole.
3
Historique
1904 : John Fleming, Diode (tube à vide)
1937 : Alan Turing publie des articles sur les fonctions calculables
1940 - 1945 : Calculateurs mécaniques et à relais électriques.
1945 : John Von Neumann, définit l'architecture de Von Neumann (Princeton) toujours
utilisée de nos jours.
1946 : ENIAC, première génération, 30 tonnes,72 mètres carrés, 140 Kwatts, 18000
tubes. 350 multiplications/secondes. 500 additions/seconde. Programmation par fils.
Apparition de la définition du bogue (bug).
4
Historique
5
Historique
1947 : Invention du transistor (interrupteurs commandés électriquement)
1957 : Langage FORTRAN/LISP
1958 : Circuits intégré par Texas Instrument .
1959 : Circuit intégré inventé par Jack Kilby (Texas Instruments).
Principe : fabriquer dans un même bloc de semi-conducteur (une puce) plusieurs
composants (résistances, condensateurs, transistors).
1960 : Premier jeu sur ordinateur (space war).
6
Historique
IB
IC
Fonctionnement d’un transistor : transient resistor
VCE
commande
IC
Saturé : 1≠0
4
Confusion
des niveaux
logiques
Modification de la
caractéristique en fonction de
différents facteurs : T,
vieillissement, IB…
3
2
Machine à 5 niveaux
1
0
Bloqué :0
VCE
Utilisation du binaire pour plus de sécurité
7
Historique
1965 : Loi de Moore. Complexité des circuit x2/2ans.
8
Historique
1968 : Ordinateurs à circuits intégrés (troisième génération) et langage PASCAL.
Notion de Multiprogrammation de temps partagé, de temps réel.
1971 : Intel lance le premier microprocesseur (60 000 inst/s 4004) et la mémoire
intégré, VLSI.
1978 : Intel lance le 8086, 330 000 instruction/sec.
1982 : Intel lance le 80286, 900 000 instructions par seconde.
1986 : premières machines parallèles.
9
Machine de Von Neumann
♦ Les 3 grandes parties dans un ordinateur généraliste selon Von Neumann :
ENTREE
SORTIE
MEMOIRE
PROCESSEUR
BUS
Processeur : Unité
de traitement de
l’information
Mémoire : Unité de
stockage des informations
(Instructions , Données)
E/S : Unité permettant de
communiquer
avec
le
processeur et la mémoire
le stockage de données,
Cet ordinateur généraliste doit être capable de :
le traitement des données,
le mouvement des données.
10
Les Bus
Le regroupement de n lignes (fils) permettant l’envoi en parallèle d’un mot de
n bits entre deux composants
n
Composant 1
Composant 2
Rq : la longueur de ce BUS va conditionner la vitesse du dialogue entre composant
11
Les Mémoires
12
Les Mémoires
Une mémoire est un dispositif de stockage de l’information. Comme il est possible de
stocker plusieurs données (instructions) dans une mémoire, il est nécessaire d’organiser
le stockage de celle-ci. Pour cela, on attribue une adresse à chaque case mémoire.
Adresse Mémoire
2xxxH
2000H
mot k+2
mot k+1
mot k
1 0 1 0 0 1 1 0
Instruction ou donnée
mot 3
mot 2
mot 1
Pour écrire/lire une donnée en mémoire, il faut être capable de définir le type d’action, l’
adresse et assurer le transport de la donnée :
Besoin de 3 BUS
BUS d’ADRESSE, BUS de DONNEES, BUS de CONTRÔLE
13
Les mémoires
COMPTAGE DE LA MÉMOIRE
Les bits qui sont groupés par 8 sont appelés octets (byte en anglais). Les octets (o) sont
groupés de la manière suivante:
Nom
Kilo-octets : Ko
La bonne manière
La manière paresseuse
210 = 1,024 octets
103 (erreur = 2.4%)
Mega-octets : Mo 220 = 1,048,576 o
106 (erreur = 4.8%)
Giga-octets : Go
230 = 1,073,741,824 o
109 (erreur = 7.4%)
Téra-octets : To
240 = 1,099,511,627,776 o
1012 (erreur = 9.9%)
Péta-octets : Po
250 = 1,125,899,906,842,674 o
1015 (erreur = 12.6%)
14
Les Mémoires
Contrôle
(écriture ou/et
lecture)
Sélection
(Chip select)
Donnée
(m bits)
Mémoire
Adresse (n bits)
Capacité ?
15
Les mémoires
Taille des données (non compressées) :
1 Octet
Valeur de 0 à 255, ou a un caractère
2 Octets
Valeur de -32768 à 32767 ou un caractère de n'importe quel système d'écriture dans le
monde
8 Octets
Virgule flottante +/- valeur représentant 16 chiffres de précision (nombre scientifique)
1 Ko
Une page moyenne de texte ou un icône standard couleur
1 Mo
1,000 pages de texte, 1 écran graphique pleine page, 6 s de son qualité CD.
1 Go
1 million de pages de texte, 1,5 h de son qualité CD, 50 s de vidéo non compressé.
1 To
La librairie du congrès US complète sous forme de texte (approximativement), 62
jours de musique continue, 14 heures de vidéo non compressé
1 Po
Probablement plus de texte que tout ce qui a été produit dans l'histoire de l'humanité ,
170 années de musique, 19 mois de vidéo.
16
Les Mémoires
On définit les paramètres suivants pour une mémoire
• Sa technologie
• Son format
Le format représente le nombre de bits de la donnée (m).
• La volatilité
Représente le temps pendant lequel la mémoire retient l’information.
• Le type d’accès
Accès séquentiel : le temps dépend de la position de l'information (bande magnétique).
Accès direct : il est possible d'accéder à une information quelconque en un temps constant.
• Le nombre de cases mémoires
Correspond au nombre de données pouvant être stockées (N). Ce nombre est
donné par la taille du bus d’adresse de la mémoire (n).
N = 2n
• Sa capacité
Le nombre d’octet pouvant être mémorisé (C).
• La bande passante
Débit en bit (exprimé en octet). Produit de la largeur du bus de donnée par sa fréquence. Ainsi,
un bus de 16 bits et une fréquence de 800MHz donne une bande passante de : 1.28 1010 b/s
En Go : (800 106 *16/8)/230 = 1.49 Go/s
17
Les mémoires
• Le temps d’accès ou temps de latence
Délai nécessaire pour accéder à l’information. La mémoire vive d’un processeur est
mémoire rapide (~10 ns) alors que la mémoire d’un disque dur (~1ms). A l’échelle humaine,
1s pour l’un, 1 jour et 5 heures pour l’autre. De plus, ces informations sont utilisées par le
processeur après le passage par le chipset (retard) d’où la nécessité d’avoir un espace
mémoire très rapide (la mémoire cache).
Bus d’adresse
Bus de données
• Le temps de cycle
C'est la durée minimale séparant 2 accès consécutifs à la mémoire (en lecture ou en écriture).
18
Les différents types de mémoires électroniques
RAM : Random Access Memory
Random : on peut accéder directement à n’importe quelle adresse de la mémoire
Il est possible de lire et d’écrire des données à volonté. Ces mémoires sont
volatiles, elles perdent leur contenu lorsqu’elles ne sont plus alimentées. Leur
temps d’accès est très petit.
Mémoire de données servant à sauvegarder les données traitées par un programme
• RAM statique SRAM
Les informations sont mémorisées par des
bascules d’ou une volatilité d’une 100 heures
tant que l’alimentation est présente. Temps
d’accès ~10 ns. Capacité assez faible.
Utilisée pour la mémoire cache des
processeurs.
• RAM dynamique DRAM
Cette technologie oblige à rafraîchir les données
(indisponibilité toutes les 15 ms). Temps d’accès
~65 ns. Capacité plus importante que les SRAM.
19
Evolution des performances de la mémoires
Performances des
différentes mémoires RAM
Performances comparées de
la RAM et du processeur
1000
u es
q
i
na m
y
D
M
RA
eur
s
s
s
e
e
d
ro c
p
ité
s
u
n
d
De
ss e
e
t
i
V
Dynamiques
M
A
R
es
d
e
ss
e
it
V
100
10
1
1980
1985
1990
1995
Transfert de l’information
de la mémoire vers le
processeur est le facteur
limitant des performances
2000
20
Les différents types de mémoires électroniques
• ROM Read Only Memory
Mémoires mortes
On ne peut que lire les données. Elles conservent leur contenu lorsqu’elles ne
sont plus alimentées.
Destruction des diodes
Le courant ne peut plus passer
ROM
PROM
FPROM
EPROM
OTP
UVPROM
EEPROM
EPROM
FLASH
la mémoire servant à stocker le programme
21
Les différents types de mémoires électroniques
ROM
PROM
Ces mémoires ont été écrites une fois par le fabricant. Les informations contenues
sont lisibles mais non-modifiables. Ce sont des diodes (ou transistors) disposées
sur un réseau de lignes et de colonnes.
Réalisée à partir de transistors bipolaires dont la liaison entre émetteur et la
colonne sont effectuées par l'intermédiaire d'un fusible.
FPROM
(Fuse PROM)
Ces mémoires sont livrées non enregistrées par le fabricant. Une fois
programmées, les données ne sont plus modifiables.
OTP
(One Time Prom)
Programmable une seule fois.
EPROM
(Erasable PROM)
Ces mémoires livrées vierges sont re-programmables à volonté
22
Les différents types de mémoires électroniques
Les mémoires : DIFFERENTS TYPES DE MEMOIRES
UVPROM (ou EPROM)
Effaçable aux UV (10 à 20 minutes d ’exposition).
Effacement total de la mémoire.
EEPROM
(Electricaly EPROM)
Effaçable et programmable électriquement. Effacement adresse par adresse.
Coût de fabrication élevé.
EPROM
FLASH
Conçue avec une technologie au carrefour de la DRAM, SRAM et EEPROM,
elle possède des caractéristiques de rapidité (10 Mo/s) et de non-volatilité
intéressante. C’est une mémoire effaçable et programmable électriquement par
blocs en un temps très bref (FLASH) mais n’est reprogrammable que 105 fois.
Elle exige un transistor par point de mémoire (2 pour EEPROM) donc elle est
peu volumineuse (1 Go). Un peu chère.
23
Les Mémoires Magnétiques
Ce sont des mémoires assez lentes mais qui peuvent être de grandes
capacités
• Les disquettes 3 p ½ (floppy) : en voie de disparition
• Les disque durs (HDD) est constitué de
plusieurs plateaux empilés, entre lesquels se
déplace un bras comptant plusieurs têtes de
lecture. Chaque plateau est recouvert d'une
surface magnétique sur ses deux faces et tourne
à une vitesse comprise entre 4000 et 15000
tr/min. La tête de lecture/écriture est composée
par un aimant autour duquel est enroulée une
bobine.
Pour écrire, on fait passer un courant électrique dans la bobine ce qui crée un champ
magnétique. Les lignes de champ magnétique traversent la couche d'oxyde et orientent celuici en créant de petits aimants dont le sens est donné par le sens du courant dans la bobine.
Pour lire, on fait passer la tête de lecture/écriture sur le support magnétisé qui crée un
courant induit dans la bobine dont le sens indique s'il s'agit d'un 0 ou d'un 1.
24
Les Mémoires Magnétiques
La piste est trop longue pour stocker convenablement des
données :
Division
en
plusieurs
contenant une piste
secteurs
Utilisation de plusieurs plateaux
(cylindre)
pour augmenter la
capacité
Les systèmes d’exploitation (Windows, Unix, …) actuels utilisent différents
types d’organisation (systèmes de fichiers) : FAT16, FAT32, NTFS,
EXT2, EXT3…
25
Les Mémoires Optiques
• Les CD :
Un CD-ROM est un disque de 12 cm de diamètre
composé de plusieurs couches superposées :
• une couche principale en polycarbonate, un
plastique résistant et laissant passer la lumière
• une couche métallique réfléchissante composée de
plats et de creux
• une couche de vernis protecteur qui vient protéger
le métal de l'agression des UV
Lors d’un passage devant un creux, la lumière du laser
est fortement réfractée, de telle sorte que la quantité de
lumière renvoyée par la couche réfléchissante est
minime. Alors que pour un passage devant un plat, la
lumière est pratiquement entièrement réfléchie.
Contrairement aux disques durs, un CD n'a qu'une seule piste
organisée en spirale.
26
Les Mémoires Optiques
• Les DVD :
Le DVD-ROM (Digital Versatile Disc - Read Only
Memory) est apparu en 1997. En effet, la lecture/écriture
est effectuée à partir d’un laser rouge (650 et 635 nm) et
permet d’obtenir des creux beaucoup plus petits. Les
deux longueurs d’ondes utilisées permettent de lire/écrire
sur des DVD "double couche". Ces disques sont
constitués d'une couche transparente et d'une couche
réflexive et permettent donc de stocker encore plus
d’informations sur un seul CD.
27
Les Mémoires Optiques
Les capacités :
28
Rôle des différents types de mémoires
Mémoire centrale
(Électronique)
Rapides
Peu volumineuses
Directement adressables
Mémoire de masse
(Magnétique ou
optiques)
Non volatiles
Peu chères
Grandes capacités
Assez volumineuses
lentes
+
-
Généralement volatiles
Chères
Faibles capacités
29
Rôle des différents types de mémoires
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 (RAM) en stockant les données les plus utilisées.
La mémoire principale est l’organe principal de stockage 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).
30
Les Entrées-Sorties
BUS
d’EXTENSION
Disque dur
BUS IDE
MODEM USB
MEMOIRE
PROCESSEUR
Souris USB
ENTREES
SORTIES
Joystick série RS232
Imprimante
Port parallèle
Bus de contrôle
Bus de données
Bus d’Adresse
31
Les Bus d’Extension
• IDE : Disques durs, CDROM, Graveur
• DMA : Disques durs (Ultra DMA)
• USB 1 et 2 : Souris, clavier, Caméra, CDROM…
• IEEE 1394 : Firewire = concurrent USB2 (Vidéo)
• AGP : Carte graphique
Changement très rapide des BUS d’extension
32
Les Bus d’Extension
Carte Mère de PC (ASUS A7N8X)
33
Les Bus d’Extension
Deux types de communication :
Périphérique
de
sortie
Interface
//
Périphérique
de
sortie
Interface
série
Périphérique
d'entrée
Périphérique
d'entrée
Communication parallèle :
• rapide
Communication série :
• plus lent (RS232, USB)
• utilisable sur de courtes distances (mètre)
• Utilisable sur de longues distances
34
Liaison processeur/mémoire
La mémoire contient les instructions et les données nécessaire à l’exécution d’un programme
MEMOIRE
1
0
0
0
1
0
1
1
1
0
1
1
1
1
1
1
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
1
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
0001h 0 0 0 1 1 0 0 0
0000h 1 1 1 0 0 1 0 1
PROCESSEUR
Bus de contrôle
Bus de données
Bus d’Adresse
35
Le processeur
MEMOIRE
PROCESSEUR
UNITE DE TRAITEMENT
Elle contient les unités fonctionnelles
permettant de réaliser les opérations
arithmétiques et logiques ainsi qu’un
ensemble de registres.
ENTREES
SORTIES
Bus de contrôle
Bus de données
Bus d’Adresse
UNITE DE CONTROLE
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,
la préparation de l'instruction suivante.
L'unité de contrôle élabore tous les
signaux de synchronisation internes ou
externes (bus de contrôle) au
processeur
36
Les étapes de l’exécution d’une instruction
L’exécution schématique d’une instruction est la suivante :
Fetch, Decode, Execute, Save
1. Chargement d’une instruction de la mémoire (fetch : chercher),
2. Analyse l'instruction (decode : …),
3. Exécution de l’instruction (execute : …)
4. Sauvegarde du résultat (save : …)
37
Les étapes de l’exécution d’une instruction
Processeur
UNITE DE TRAITEMENT
UNITE DE CONTROLE
Registre
de données
Bus de
Données
Mémoire
Registre
de contrôle
Bus de Contrôle
Registre
d’adresse
Bus
d’Adresse
38
Les étapes de l’exécution d’une instruction
Etape 0 : un registre appelé Compteur Ordinal contient l’adresse de la
prochaine instruction à exécuter (Program Counter PC)
UNITE DE TRAITEMENT
UNITE DE CONTROLE
Registre
de données
Bus de
Données
Compteur
Ordinal
Registre
de contrôle
Bus de Contrôle
Registre
d’adresse
Bus
d’Adresse
39
Les étapes de l’exécution d’une instruction
Etape 1 : Chargement (Fetch) de l’instruction consiste à transférer le contenu de la
mémoire dont l’adresse est contenu dans le CO dans le Registre d’Instruction.
UNITE DE TRAITEMENT
UNITE DE CONTROLE
Bus Interne
Registre
de données
Bus de
Données
Registre d’Instruction
Compteur
Ordinal
Registre
de contrôle
Bus de Contrôle
Registre
d’adresse
Le CO est
incrémenté
Bus
d’Adresse
40
Les étapes de l’exécution d’une instruction
Etape 2 : l’analyse (decode) du premier octet permet au processeur de connaître le
nombre d’octets que comporte l’instruction ainsi que l’opération élémentaire a
exécuter
UNITE DE TRAITEMENT
UNITE DE CONTROLE
Bus Interne
Registre
de données
Bus de
Données
Registre d’Instruction
Décodeur
Instructions
Séquenceur
registre
de contrôle
Bus de Contrôle
Compteur
Ordinal
Registre
d’adresse
Bus
d’Adresse
41
Les étapes de l’exécution d’une instruction
Etape 3 : le processeur effectue (execute) le traitement correspondant et
positionne le Registre d’État (PSW).
UNITE DE TRAITEMENT
UNITE DE CONTROLE
Bus Interne
Accu A
Accu B
Registre
d'état
PSW
Registre
de données
Bus de
Données
Registre d’Instruction
Décodeur
Instructions
Séquenceur
Compteur
Ordinal
UAL
Registre
de contrôle
Bus de Contrôle
Registre
d’adresse
Bus
d’Adresse
42
L‘Unité de Traitement
Accu A
Accu B
Registre
d'état
PSW
L’UAL (Unité Arithmétique et Logique).
Deux registres de travail contenant une donnée
ou un résultat : Accumulateurs A et B
un Registre d‘Etat (PSW : Program Status
Word) comportant des indicateurs mémorisant
la façon dont s’est effectuée l’opération
élémentaire :
PSW du 8052 de INTEL
UAL
CY
UAL Basique
AC
F0
RS1
RS0
OV
P
• CY : Retenue (Carry) : à 1 lorsqu'une opération a générée une
retenue.
• AC : Demi Retenue (Auxilary Carry) : à 1 lorsqu'une
opération a générée une retenue au niveau du 4ème bit.
• OV : Débordement (Overflow) : à 1 lorsqu'une opération a
provoqué un débordement
• P : Parité (Parity) : à 0 si le contenu de A est paire
•
43
UAL cablée 4 bits
A=A0A1A2A3
B=B0B1B2B3
Entrées de
Sélection de
l’opération
16 opérations
possibles
UAL
P
A=B
CY
F=F0F1F2F3
44
Exécution d’un Programme
UT
Mémoire
LirePériph - clavier
0
E/S
UC
45
Exécution d’un Programme
Code clavier
LirePériph - clavier
1
Clavier
Code clavier
46
Exécution d’un Programme
Code
clavier+163
Code
clavier
Add - 163
12
47
Exécution d’un Programme
Code clavier+163
écrire - écran
3
écran
Code clavier+163
48
Jeu d’instructions
Définition : Le jeu d’instruction décrit l’ensemble des opérations élémentaires que le
processeur pourra exécuter. Il va déterminer une partie de l’architecture du processeur et
notamment celle du décodeur d’instruction (séquenceur).
Type d’instruction : Les instructions que l’on retrouve dans chaque microprocesseur
peuvent être classées en 4 groupes.
• Transfert de données : de mémoire à mémoire, de registre à registre, de registre à
mémoire , de mémoire à E/S, de registre à E/S, …
• Opérations arithmétiques : addition, soustraction, division, multiplication,…
• Opérations logiques : ET, OU, NON, NAND, décalage, conversion de format,
comparaison, test, …
• Contrôle de séquence : branchement conditionnels ou non, appel de fonction, …
49
Jeu d’instructions
Codage d’une instruction : une instruction est codée sur un nombre entier de mot
mémoire afin de faciliter son décodage par le processeur.
Une instruction est découpée en deux parties :
Zone Données ou Adresse
Zone Opération
Code Opération
Un mot
Instruction Assembleur
du 8052 « Mnémonique »
Opérande
Un (ou plusieurs) mot
Code binaire correspondant
(74 04)(16) : 0111 0100 0000 0100
MOV A,#4
Rq : Certaines instructions n’ont pas besoin d’opérande
Code Op
Code Op
Opérande
Code Op
Opérande 1
Opérande 2
50
Jeu d’instructions
La longueur du code opération détermine le nombre d’instructions codables
La longueur de l’instruction détermine le temps de traitement de l’opération
(transfert mémoire et décodage de l’instruction)
Avec des instructions de 16 bits, on peut coder : Code 1 1 1 1 étend le Code Opérationnel
0 0 0 0
Opérande 1 Opérande 2 Opérande 3
1 1 1 0
Opérande 1 Opérande 2 Opérande 3
15 Instructions
1 1 1 1
0 0 0 0
Opérande 1 Opérande 2
1 1 1 1
1 1 1 0
Opérande 1 Opérande 2
1 1 1 1
1 1 1 1
0 0 0 0
Opérande 1
1 1 1 1
1 1 1 1
1 1 1 0
Opérande 1
1 1 1 1
1 1 1 1
1 1 1 1
0 0 0 0
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
15 Instructions
60 Instructions
15 Instructions
Le codage dépend
des besoins en
instructions
15 Instructions
51
Jeu d’instructions
Des études statistiques ont montré que dans 80% des programmes, seulement 20% du jeu
d’instruction est utilisé. Les opérations les plus usitées sont les échanges
mémoire/processeur et appels à des sous-programmes. D’ou deux philosophies
différentes pour le codage des jeux instructions :
Les processeurs CISC : Des instructions de longueurs différentes, parfois
(Complex Instruction Set Computer) longues. Un jeu d’instructions très riche mais lent à
exécuter (temps d’exécution d’une instruction variant).
Programme réduit
Moins d’accès mémoire
Les processeurs RISC :
Des instructions de la même longueurs, courtes d’ou un
(Reduced Instruction Set Computer) jeu d’instructions limités mais très rapide à exécuter
(temps d’exécution d’une instruction constant).
Programme long
Beaucoup d’accès mémoire
52
Jeu d’instructions
Comparaison des performances relatives des philosophies en fonction des temps
d’accès mémoire.
Les processeurs RISC associés à des mémoires rapides sont plus performants
53
Jeu d’instructions
+ La simplicité des processeurs RISC fournit deux autres avantages :
• le coût du développement,
• la surface de silicium sont notablement réduits (20% au lieu de 50%).
Plus simple un processeur RISC nécessite moins de temps et moins de main d'oeuvre
pour sa conception et sa mise au point. Par exemple le processeur ARM a été élaboré
en dix-huit mois par une équipe de quatre personnes (6 hommes-ans), le 80386 d'Intel
a demandé 100 hommes-ans.
-
Par contre, le développement des compilateurs est beaucoup plus long pour les
processeurs RISC car plus difficile de passer d’un langage évolué au jeu d’instruction
réduit.
Actuellement, on essaie de mélanger les deux philosophies pour obtenir tous les
avantages
54
Les étapes de l’exécution d’une instruction
La synchronisation
UNITE DE TRAITEMENT
UNITE DE CONTROLE
Bus Interne
Accu A
Accu B
Registre
d'état
PSW
Registre
de données
Bus de
Données
Registre d’Instruction
Décodeur
Instructions
Séquenceur
Compteur
Ordinal
UAL
Registre
de contrôle
Bus de Contrôle
Registre
d’adresse
Bus
d’Adresse
55
Le décodage des instructions
Les liaisons entre les éléments sont commandées par des interrupteurs :
eMem
Bus Interne
Registre
de données
eRI
eAcc
eBcc
Registre d’Instruction
Accu A
Accu B
eCO+1
Décodeur
Instructions
eUAL
UAL
Compteur
Ordinal
eAdD
Registre
de contrôle
S0S1
Mémoire
eAdI
Registre
d’adresse
RD/WR
56
Le décodage des instructions
Le rôle de l’horloge :
L’horloge est là pour cadencer le calculateur (séquenceur). Il s’agit d’un signal
rectangulaire qui va servir de signal de synchronisation à toutes les unités du processeur.
Chaque unité fournissant sa réponse après un temps qui lui est propre, la fréquence de
l’horloge doit être choisit en fonction de la partie la plus lente.
H
Un cycle machine
On parle de machine synchrone
La fréquence de ce signal définit la vitesse de fonctionnement du processeur. Cette
fréquence est en général plus élevée que la fréquence de l’horloge utilisée pour les
circuits périphériques (performances, longueur des communications, …). Cette
différence a une énorme importance au niveau des échanges avec la mémoire.
57
Le décodage des instructions
Le décodeur d’instructions et séquenceur : Le séquenceur est une machine distribuant des
signaux de commande aux diverses unités participant à l'exécution d'une instruction. Il peut
être câblé ou microprogrammé.
Le séquenceur microprogrammé est une mémoire dans laquelle on a mémorisé les
séquences de mots de commande à exécuter à chaque période d’horloge. La séquence est
activée par le décodeur (lui-même une mémoire).
Registre d’Instruction
Horloge
ROM
Code Op
Décodeur
Instructions
ROM
Séquenceur
Adresse d’une
Zone mémoire
Micro-instruction
1 0 1 0 1 0 0 1 1 0 1 1
Micro-code
Signaux de Commande
(interrupteur)
58
Le décodage des instructions
Exemple de fonctionnement :
UNITE DE TRAITEMENT
UNITE DE CONTROLE
Bus Interne
Registre
de données
Bus de
Données
Registre d’Instruction
Accu A
Accu B
Décodeur
Instructions
Compteur
Ordinal
UAL
Registre
de contrôle
Bus de Contrôle
Registre
d’adresse
Bus
d’Adresse
59
Le décodage des instructions
Les micro-codes commandent les intérupteurs :
eMem
Bus Interne
Registre
de données
eRI
eAcc
eBcc
Registre d’Instruction
Accu A
Accu B
eCO+1
Décodeur
Instructions
eUAL
UAL
Compteur
Ordinal
eAdD
Registre
de contrôle
S0S1
Mémoire
eAdI
Registre
d’adresse
RD/WR
60
Le décodage des instructions
Le rôle de l’horloge :
eMem : mise en communication du registre donnée (mémoire) et du bus interne.
eRI : mise en communication du Registre Instruction et du bus interne.
eAdI : mise en communication du Registre Adresse et du CO (Adresse Instruction).
eCO+1 : incrémentation du Compteur Ordinal.
eAcc : mise en communication de A et du bus interne.
eBcc : mise en communication de B et du bus interne.
eAdD : Chargement de l’Adresse de la Donnée liée à l’instruction courante.
eUAL : mise en communication du résultat de UAL et du bus interne. L’opération est
spécifiée par les signaux S0S1 du bus de contrôle.
S0S1
Opération
00
Addition
01
Soustraction
10
Multiplication
11
Division
61
Le décodage des instructions
1 : eCO+1;
Exemple de fonctionnement : A+B→A
2 : S0S1=00, eUAL, eAcc;
eMem
Bus Interne
Registre
de données
eRI
eAcc
eBcc
45h
Add A,B
Accu A
Accu B
Add A,B
eCO+1
Mémoire
Décodeur
Instructions
eUAL
UAL
46h
45h
eAdD
Registre
de contrôle
S0S1
eAdI
45h
RD/WR
62
Le décodage des instructions
Chronogramme de A+B→A :
H
eCO+1
eUAL
eAcc
La durée de cette instruction est de 2 cycles machine
63
Les différents types d’adressage
Un mode d’adressage définit la manière dont le processeur va accéder à l’opérande. Ces
modes peuvent varier d’un processeur à l’autre, en général, on trouve :
L’adressage immédiat : Le champ opérande de l’instruction contient la donnée
(MOV A,#04).
L’adressage direct : Le champ opérande de l’instruction contient l’adresse du
mot mémoire contenant la donnée (MOV A,30h).
L’adressage relatif : L’adresse effective est obtenue en additionnant le CO
avec l’opérande. Ce type d’adressage est utilisé lors des
instructions de branchement
L’adressage indirect : Le champ opérande de l’instruction contient l’adresse
d’un registre (pointeur) qui contient l’adresse du mot
mémoire contenant la donnée (MOV 30h,@R1).
64
1 : eCO+1;
2 : eAdD; RD/WR=1;
Le décodage des instr
6 : eMem, eAcc ;
Exemple de fonctionnement : Chargement de A par adressage direct
eMem
52h
Bus Interne
MOV A,30
0110 1111
eRI
eAcc
eBcc
MOV A,30
Accu1111
A Accu B
0110
eCO+1
Mémoire
53h
52h
Décodeur
Instructions
eUAL
UAL
eAdD
Registre
de contrôle
S0S1
eAdI
30h
0110 1111
52h
30h
00h
RD/WR
65
Le décodage des instructions
Chronogramme de Chargement de A par adressage direct :
0
1
2
3
4
5
6
7
8
9
H
eCO+1
eAdD
eMem
eAcc
La vitesse de la RAM est plus lente que la vitesse du processeur d’ou une
attente de 5 cycles (valeur arbitraire) de la réponse de la mémoire
La durée de cette instruction est de 7 cycles machine
66
Le décodage des instructions
Chargement de A par adressage indirect : @
La valeur à charger dans A est stockée dans une case mémoire dont l’adresse est stockée dans
une autre case mémoire.
MOV A,@52
Il faut aller chercher le contenu de ce mot mémoire :
• Lire l’adresse contenue dans le mot mémoire à l’adresse 52h
• Lire le mot dont l’adresse est dans 52h
• Placer le contenu dans A
67
1 : eCO+1;
2 : eAdD; RD/WR=1;
6 : eMem, eRI, eAdD,RD/WR=1
10 : eMem, eAcc
Le décodage des instr
Exemple de fonctionnement : Chargement de A par adressage indirect
eMem
Bus Interne
MOV A,@52
52h
0011 0000
0011 1111
0000
0110
eRI
eAcc
ABh
eBcc
MOV
0011A,@52
0000
Accu1111
A Accu B
0110
eCO+1
Mémoire
Décodeur
Instructions
eUAL
UAL
ACh
ABh
eAdD
Registre
de contrôle
S0S1
eAdI
30h
0110 1111
52h
ABh
30h
00h
RD/WR
68
Le décodage des instructions
Chronogramme de Chargement de A par adressage indirect :
0
1
2
3
4
5
6
7
8
9
10
11
12
13
H
eCO+1
eAdD
eMem
eRI
eAcc
La durée de cette instruction est de 12 cycles machine
69
Le décodage des instructions
Chargement de A par adressage indirect : @
La valeur à charger dans A est stockée dans une case mémoire dont l’adresse est stockée dans
une autre case mémoire.
MOV A,@52
Il faut aller chercher le contenu de ce mot mémoire :
• Lire l’adresse contenue dans le mot mémoire à l’adresse 52h
• Lire le mot dont l’adresse est dans 52h
• Placer le contenu dans A
Avantage : Comparer l’espace adressable avec un adressage direct et indirect, en sachant que l’on
manipule des instructions d’un octet avec un code opération de 4 bits.
• Direct : 24
• Indirect : 28
70
Le décodage des instructions
Chargement de A par adressage indirect : @
Ce mode d’adressage est très long si l’on utilise la mémoire externe par contre si l’on utilise un
registre interne cela devient plus rapide.
MOV A,@R0
Ajout de registres à usage généraux dans l’unité de contrôle.
71
1 : eCO+1;
2 : eR0, eAdD; RD/WR=1;
Le décodage des instr
6 : eMem, eAcc
Utilisation de registres internes : plus rapide que la mémoire externe
eMem
Bus Interne
eRI
eAcc
eBcc
ABh
MOV A,@R0
0110 1111
MOV A,@R0
Accu
A Accu B
0110
1111
Décodeur
Instructions
eUAL
eCO+1
Mémoire
ACh
ABh
eR0
R0
30h
UAL
eAdD
Registre
de contrôle
S0S1
eAdI
30h
0110 1111
30h
ABh
00h
RD/WR
72
Le décodage des instructions
Chronogramme de Chargement de A par adressage indirect :
0
1
2
3
4
5
6
7
8
9
10
11
12
13
H
eCO+1
eAdD
eR0
eMem
eAcc
La durée de cette instruction est de 7 cycles machine
Les registres internes permettent d’augmenter la rapidité de l’ordinateur
73
Le décodage des instructions
Chargement de A par adressage indirect : @
Ce mode d’adressage est très long si l’on utilise la mémoire externe par contre si l’on utilise un
registre interne cela devient plus rapide.
MOV A,@R0
Ajout de registres à usage généraux dans l’unité de contrôle.
L’utilisation de l’adressage indirecte est moins rapide que l’adressage direct car il est nécessaire
d’initialiser le registre utilisé. Par contre lorsque l’on doit manipuler des zones mémoires
(tableaux, variables structurées,…) de longueurs variables, ce mode d’adressage est le seul
utilisable (voir en TD).
74
Jeu d’instructions
Les Branchements (sauts) : Ils introduisent des ruptures dans la séquence des
instructions,
de
conditionnelle.
CO +10 = CO
Inconditionnel
manière
Acc = 0
Non
inconditionnelle
ou
Oui
CO +10 = CO
CO +1 = CO
Conditionnel
75
Jeu d’instructions
Les Sous- Programmes
(Appel à Fonction) :
Programme Principal
Modifié
l
Appe
Fonction
+ Prog Principal plus
court
r
Retour
r
tou
e
R
Re
tou
Séquence
d’Instructions
identiques
Ap Ap
pel pe
l
Programme Principal
Initial
Ils ont pour but de diminuer le nombre d’instruction en
écrivant des taches annexes ou répétitives en dehors du
programme principal.
- Gestion des appels
76
Jeu d’instructions
Gestion des appels à fonction : Mémorisation de l’adresse de l’instruction suivante à
exécuter (CO). Sauvegarde des registres modifiés lors de l’exécution de la fonction.
Besoin d’une zone mémoire dédiée à ces sauvegardes
LA PILE (Stack)
Besoin d’un registre conservant l’adresse des données sauvegardées
LE POINTEUR DE PILE (Stack Pointer)
Les instructions utilisées :
• Appel et retour : LCALL et RET
• Sauvegarde et restauration d’une donnée ou adresse : PUSH et POP
77
Structure et fonctionnement d’une pile
La pile est une mémoire ordonnée dans laquelle on ne peut accéder qu’au dernier élément
sauvegardé. L’adresse de départ s’appelle l’adresse de base, le point d’accès : le sommet.
L’adresse du sommet est mémorisée dans le pointeur de pile (PP)
Après PUSH Q
Après POP Acc
Après POP R0
SOMMET
2010H
200FH
200EH
P
O
N
2011H
2010H
200FH
200EH
2002H
2001H
2000H
C
B
A
2002H
2001H
2000H
SOMMET
BASE PP
2010H
Q
P
O
N
2010H
200FH
200EH
P
O
N
SOMMET
200FH
200EH
O
N
C
B
A
2002H
2001H
2000H
C
B
A
2002H
2001H
2000H
C
B
A
PP
2011H
SOMMET
Q
PP
2010H
P
200FH
PP
78
Jeu d’instructions
L’instruction d’appel (LCALL) empile et modifie le Compteur Ordinal. Le
Pointeur de Pile est incrémenté.
Programme Principal
Compteur Ordinal
0200h
021h
0020h
0021h
LCALL 0200h
Instruction suivante
0021h
Pile
0200h
0220h
RET
79
Jeu d’instructions
L’instruction de retour (RET) restaure le Compteur Ordinal à partir de la pile.
Le pointeur de pile est décrémenté.
Programme Principal
Compteur Ordinal
0221h
0021h
0020h
0021h
LCALL 0200h
Instruction suivante
0021h
Pile
0200h
0220h
RET
80
Hiérarchie des langages
Majorité du code
Langages Evolués : Python , C, C++
If then else, for, …
Compilateur
(Adapte le code
source à une
machine )
Langage Assembleur
MOV, JUMP, LCALL,…
Langage Machine
0110 0000, 1111 0011,…
Micro-Code
Signaux électriques
Assembleur
(Spécifique à
un processeur)
Tache spécifique liée au
Hardware
81
Machine de HARVARD
La machine de Von Neumann ne différencie pas la zone mémoire donnée et programme
d’où un ralentissement mais la structure de la machine est simple.
MEMOIRE
ENTREES
SORTIES
PROCESSEUR
Bus de contrôle
Bus de données
Bus d’Adresse
Fetch, Decode, Execute, Save
Chargement
d’une instruction
de la mémoire
Analyse l'instruction et
chargement
de
l’opérande en mémoire
Sauvegarde
mémoire
en
82
Machine de HARVARD
La machine de Harvard possède deux espaces mémoires qui communiquent avec le
processeur avec des bus séparés. Un bus d’adresse de données et de contrôle pour les
données. Un bus d’adresse de données et de contrôle pour les instructions. Il est possible de
traiter une instruction et une donnée en même temps d’où gain de rapidité. La structure de
la machine est plus compliquée.
MEMOIRE
PROGRAMME
Bus de contrôle
Bus de données
Bus d’Adresse
Pour les Instructions
MEMOIRE
DONNEES
PROCESSEUR
Bus de contrôle
Bus de données
Bus d’Adresse
Pour les Données
83
Les différents type d’ordinateur
Les Micro-processeurs : Ordinateur sans mémoire interne donc qui ne peut pas
fonctionner seul (PC).
Les Micro-contrôleurs : Ordinateur possédant de la mémoire interne, il peut
fonctionner seul. Ces micro-contrôleurs ont pour rôle la
gestion de système car il possède tout un arsenal de
moyen de communication (Télécommande, Feux de
circulation, Appareils électroménagés,…)
Les DSP (Digital Signal Processing) : Ordinateur dédié au traitement du signal
(calcul en temps réel). C’est ce type
d’ordinateur qui traite le son (Téléphone
Portable) ou l’image (Console de Jeux).
84
Téléchargement