ch4-micro68000materiel
DESCRIPTION
MICROPROCESSORTRANSCRIPT
Le microprocesseur 68000, partie matérielleCopyright © F. Muller 2001, 2002
Ch4 - 1 -
Plan
n Ch1 - Historiquen Ch2 - Quelques généralités sur les architecturesn Ch3 - Structure d’un micro systèmen Ch4 - Le microprocesseur 68000, partie matériellen Ch5 - Le microprocesseur 68000, partie logiciellen Ch6 - Du langage C à l’assembleur 68000n Ch7 - Les unités d’échanges
Copyright © F. Muller 2001, 2002
Ch4 - 2 -
Le Microprocesseur 68000Partie Matérielle
n Caractéristiques Matériellesn Évolution de ces microprocesseurs
Le microprocesseur 68000, partie matérielleCopyright © F. Muller 2001, 2002
Ch4 - 3 -
Avantages des Microprocesseurs16/32 bits
n Caractéristiques généralesn Symétrie du jeu d‘instructionsn Nombre important de registres générauxn Instruction très proche du langage de haut-niveaun Extension des opérations de calcul (coprocesseur)n Augmentation importante de la capacité d’adressagen Possibilité d’architecture multi-processeursn Possibilité d’une gestion multi-tâches, mémoire virtuellen Amélioration de la sûreté de fonctionnement
n Performance des processeursn Vitesse de l’horloge du CPU, cycle de lecture et d’écrituren MIPS (Million d’Instructions Par Secondes)
Le microprocesseur 68000, partie matérielleCopyright © F. Muller 2001, 2002
Ch4 - 4 -
Caractéristiques Matérielles du 68000Plan
n Les Entrées/Sorties du 68000n Le Signal Horlogen Contrôle du bus en mode asynchronen Contrôle du bus en mode synchronen Partage de busn État du processeurn Contrôle des Erreurs de busn Les interruptions
Le microprocesseur 68000, partie matérielleCopyright © F. Muller 2001, 2002
Ch4 - 5 -
Les Entrées/Sorties du 68000
MC68000
FC0
FC1
FC2
État du processeur
EContrôle de bus
en mode synchrone(périphériques M6800)
Contrôle du systèmeBERR
VMA
VPA
HALT
RESET
VccGnd
Clk
Alimentation
Horloge
Bus d’adresses
Bus de données
A23-A1
D15-D0
AS
R/W
UDS
LDS
DTACK
BR
BG
BGACK
IPL0
IPL1
IPL2
Contrôle de busen mode asynchrone
Contrôle pourl’attribution de bus
Contrôle des interruptions
Le microprocesseur 68000, partie matérielleCopyright © F. Muller 2001, 2002
Ch4 - 6 -
Le contrôle du bus en mode asynchrone (1)
n Un échange asynchrone signifie que toute demande doit être confirmée par le circuit externe
n Signaux (actif sur niveau bas)n AS : Validation du bus d’adresse (Address Strobe)
n Ce signal indique qu’il y a une adresse valide sur le bus
n R/W : Lecture/Écriture (Read/Write)n Ce signal définit le type de transfert sur le bus de données
n UDS, LDS : Validation de la donnée supérieure, inférieure (Upper, Lower Data Strobe)n Ces signaux sont générés par le microprocesseur en fonction du type
de données à transférer et du bit d’adresse A0.
n DTACK : Accusé de réception du transfert de données (Data Transfer ACKnowledge)n Ce signal apporte au microprocesseur l’information suivante:
n En lecture: les données à lire sont disponibles sur le busn En Écriture: les données ont été prises en compte par le circuit externe
Le microprocesseur 68000, partie matérielleCopyright © F. Muller 2001, 2002
Ch4 - 7 -
Le contrôle du bus en mode asynchrone (2)
n Organisation de la mémoire
Octet adresse $0000001Octet adresse $0000000Bit 15 Bit 8 Bit 7 Bit 0
Octet adresse $0000003Octet adresse $0000002Octet adresse $0000005Octet adresse $0000004
Octet adresse $FFFFFFFOctet adresse $FFFFFFE
Mot adresse $0000002Mot adresse $0000004
Mot adresse $FFFFFFE
Mot adresse $0000000
Mémoire
Le microprocesseur 68000, partie matérielleCopyright © F. Muller 2001, 2002
Ch4 - 8 -
Le contrôle du bus en mode asynchrone (3)
n Les combinaisons des signaux UDS, LDS et R/W
Écriture d’un octet pairrecopie bits 15-8Valides bits 15-8LHL
Écriture d’un octet impair
valides bits 7-0recopie bits 7-0LLH
Écriture d’un motvalides bits 7-0valides bits 15-8LLL
Lecture d’un octet pairnon validesvalides bits 15-8HHL
Lecture d’un octet impair
valides bits 7-0non validesHLH
Lecture d’un motvalides bits 7-0valides bits 15-8HLL
-non validesnon valides-HH
OpérationD7-D0D15-D8R/WLDSUDS
Le microprocesseur 68000, partie matérielleCopyright © F. Muller 2001, 2002
Ch4 - 9 -
Le contrôle du bus en mode asynchrone (4)
n Les combinaisons des signaux UDS, LDS et R/Wn Exemple d’architecture pour l’adressage mémoire
MC68000
MémoireIMPAIRE
MémoirePAIRE
A23-A1
D15-D0
R/W
LDS
UDS
CS
CS
D7-D0
D15-D8
Le microprocesseur 68000, partie matérielleCopyright © F. Muller 2001, 2002
Ch4 - 10 -
Le contrôle du bus en mode asynchrone (5)
n Chronogramme du cycle de lecture d’un mot
CLK
R/W
FC2-FC0
A23-A1
AS
UDS
LDS
DTACK
D15-D0
S0 S1 S2 S3 S4 S5 S6 S7 S0
Données valides
Le microprocesseur 68000, partie matérielleCopyright © F. Muller 2001, 2002
Ch4 - 11 -
Le contrôle du bus en mode asynchrone (6)
n Chronogramme du cycle d’écriture d’un octet impair
CLK
R/W
FC2-FC0
A23-A1
AS
UDS
LDS
DTACK
D15-D0
S0 S1 S2 S3 S4 S5 S6 S7 S0
donnée mise sur le bus donnée prise en compte
Le microprocesseur 68000, partie matérielleCopyright © F. Muller 2001, 2002
Ch4 - 12 -
État du Processeur (1)
n L’état du processeur est indiqué par les Codes Fonction FC0, FC1 et FC2 (Function Code)
n Modesn Ces modes dépendent du bit S du registre d’étatn Mode superviseur, S = 1 (système non restreint)n Mode utilisateur, S = 0 (système restreint)
n Étatsn État Programme
n Code opéranden Mot d’extension
n État Donnéesn Recherche d’une donnée en mémoire
Le microprocesseur 68000, partie matérielleCopyright © F. Muller 2001, 2002
Ch4 - 13 -
État du Processeur (2)
n Combinaison des signaux FC2-FC0
Reconnaissance d’interruptionHHH
Programme superviseurLHH
Données superviseurHLH
RéservéLLH
RéservéHHL
Programme utilisateurLHL
Données utilisateurHLL
RéservéLLL
Type de CycleFC0FC1FC2
Exemple:Exemple: Initialisée la case mémoire de l’adresse $F2004 avec la valeur 736
MOVE #736, $F2004
Le microprocesseur 68000, partie matérielleCopyright © F. Muller 2001, 2002
Ch4 - 14 -
État du Processeur (3)
n Utilité des Codes Fonctionsn Contrôle d’accès à la mémoiren Reconnaissance d’interruption
Exemple de contrôle d’accès mémoireExemple de contrôle d’accès mémoire
MémoireSuperviseur
$000000
$7FFFFF
MémoireUtilisateur
$800000
$FFFFFF
Plan mémoire
68000
NAND
NOTNAND
NAND
MémoireSuperviseur
MémoireUtilisateur
CS2
CS1
CS2
CS1
AS
A23
FC2
0
Le microprocesseur 68000, partie matérielleCopyright © F. Muller 2001, 2002
Ch4 - 15 -
Exceptions – Principes (1)
n Le processeur se trouve soit dans l’état :n Normal
n Exécution des instructions traditionnelles, c’est à dire qui ne génère pas de génération d’interruption ou de procédure d’exception
n Exceptionn Condition exceptionnelle qui, lorsqu’elle est prise en compte par le
processeur, va provoquer l’exécution d’une procédure déterminée
n Arrêtén Indication d’une défaillance matérielle catastrophique
n Le processeur fonctionne dans deux modesn Superviseur (S = 1)
n Toutes les instructions peuvent être utilisées
n Utilisateur (S = 0)n Restriction du jeu d’instruction (RESET, STOP, modification de SR)
Le microprocesseur 68000, partie matérielleCopyright © F. Muller 2001, 2002
Ch4 - 16 -
Exceptions – Principes (2)
n Qu’est ce qu’un vecteur d’exception ?n Informations contenues en mémoire qui permettent au
processeur d’aller exécuter le sous-programme de l’exception
n Ces informations sont situées dans la zone mémoire utilisateur, SAUF le vecteur d’exception RESET (zone Superviseur)
$000000
$0003FF
Tabled’exception
Mémoire
$FFFFFF
Le microprocesseur 68000, partie matérielleCopyright © F. Muller 2001, 2002
Ch4 - 17 -
Exceptions – Principes (3)
n Format d’un vecteur d’exceptionn Chaque vecteur d’exception a une longueur de 4 octets
(une adresse est codée sur 32 bits), SAUF le vecteur RESET (8 octets)
n A un numéro de vecteur correspond une adresse physique
Numéro de vecteur = 2
Adresse physique = $008
Exemple: Exception BERR (bus erreur)Exemple: Exception BERR (bus erreur)
x 4 octets
$008
0 1 2 3
adresse du sous-programmed’exception
Mémoire
4 octets
Le microprocesseur 68000, partie matérielleCopyright © F. Muller 2001, 2002
Ch4 - 18 -
Exceptions – Principes (4)
n Qui génère les numéros de vecteurs d’exception ?n Le microprocesseur
n Génération d’un numéro interne suivant l’exceptionn Exemple
n BERR (bus erreur), vecteur 2n Division par zéro, vecteur 5
n Un circuit externen Le périphérique fournit au processeur un numéro de vecteur de 8 bits
sur le bus de données (D7-D0)n Cas des interruptions
Circuitexterne
Bus de données
Microprocesseur
interruption
BERR
GestionException
Autres Bus
Le microprocesseur 68000, partie matérielleCopyright © F. Muller 2001, 2002
Ch4 - 19 -
Exceptions – Principes (6)
n Table des vecteurs d’exception (vecteurs 0 à 14)
Réservée$0304812 – 14
Émulateur ligne 1111$02C4411
Émulateur ligne 1010$0284010
Trace$024369
Violation de privilège$020328
Instruction TRAPV$01C287
Instruction CHK$018246
Division par zéro$014205
Instruction Illégale$010164
Erreur Adresse$00C123
Erreur Bus$00882
Reset : Initialisation de PC$0044
Reset : Initialisation de SSP$00000
HexaDécimal
Exception concernéeAdresseNumérodu vecteur
Le microprocesseur 68000, partie matérielleCopyright © F. Muller 2001, 2002
Ch4 - 20 -
Exceptions – Principes (7)
n Table des vecteurs d’exception (vecteurs 15 à 255)
Interruption non initialisée$0346015
Réservée ou non affectée$0386416 – 23
Interruption parasite$0609624
Auto-vecteur interruption niveau 1$06410025
Vecteurs interruptions utilisateur$10025664 – 255
Réservée ou non initialisée$0C019248-63
Vecteurs instruction TRAP$08012832-47
Auto-vecteur interruption niveau 7$07C12431
Auto-vecteur interruption niveau 6$07812030
Auto-vecteur interruption niveau 5$07411629
Auto-vecteur interruption niveau 4$07011228
Auto-vecteur interruption niveau 3$06C10827
Auto-vecteur interruption niveau 2$06810426
HexaDécimal
Exception concernéeAdresseNumérodu vecteur
Le microprocesseur 68000, partie matérielleCopyright © F. Muller 2001, 2002
Ch4 - 21 -
Exceptions – Les Interruptions (1)n Une interruption est déclenchée par un circuit externe et
permet d’exécuter un programme d’exceptionn 2 modes de fonctionnement
n Auto-Vectorisationn Le numéro de vecteur est déterminé par le microprocesseurn Le nombre de vecteurs utilisateurs est limité à 7
n Vectorisationn Le circuit demandeur envoie le numéro de vecteurn Le nombre de vecteurs utilisateurs est limité à 192
n Signauxn IPL2-IPL0 : Contrôle des Interruptions (Interrupt Priority Level)
n Accès aux interruptions s’effectue par l’intermédiaire des lignes IPL2, IPL1 et IPL0
n VPA : Adresse du Périphérique Valide (Valid Peripheral Address)n Dans ce contexte, ce signal d’entrée permet de déclencher une Auto-Vectorisation
Le microprocesseur 68000, partie matérielleCopyright © F. Muller 2001, 2002
Ch4 - 22 -
Exceptions – Les Interruptions (3)
n Masque du registre d’état (SR)n Bit de registre d’état I2, I1 et I0
n Relation entre le masque et les lignes d’IT
1117
0116
1015
0014
1103
0102
1001
0000
I0I1I2
Masque de SRNiveau
LLL7
HLL6
LHL5
HHL4
LLH3
HLH2
LHH1
HHH0
IPL0IPL1IPL2
Lignes IPLNiveau
Le microprocesseur 68000, partie matérielleCopyright © F. Muller 2001, 2002
Ch4 - 23 -
Exceptions – Les Interruptions (5)
n Chronogramme de la Vectorisation Non Automatique
dernier cycle bus(écriture ou lecture)
empilePCL
cycle de reconnaissance de l’ ITacquisition du N° du vecteur
empile Statuts et PCHLecture du vecteur
Le microprocesseur 68000, partie matérielleCopyright © F. Muller 2001, 2002
Ch4 - 24 -
Exceptions – Les Interruptions (7)
n Chronogramme de la Vectorisation Automatique
cycle normal reconnaissance de l’interruption
Le microprocesseur 68000, partie matérielleCopyright © F. Muller 2001, 2002
Ch4 - 25 -
Exceptions – Les Interruptions (8)
n Exemple de schéma pour les interruptions
A1
A2
A3
A23-A1
NOT
012
7
5
A
B
C
34
6
74LS
138
E
012
7
5
A
B
C
34
6
74LS
138
EIACK
68000
AS
FC2
FC1
FC0
DTACK
765
0
2
A
B
C
43
1
74LS
148
IPL0
IPL1
IPL2
INT 7INT 6INT 5
D7-D0
NOTAND
IACK5
IACK3
IACK5E
vecteur
Con
trôle
ur 1
I/O
Con
trôle
ur 2
I/O
INT 3
VPA
Le microprocesseur 68000, partie matérielleCopyright © F. Muller 2001, 2002
Ch4 - 26 -
Exceptions – Les Interruptions (9)
n Exemple d’application avec 2 tâches
Architecture multiprocesseur (2 processeurs)Architecture multiprocesseur (2 processeurs)
Processeur 1
Processeur 2
Tâche de fond
Tâche T1
interruption
Tâche T1
interruption
Architecture monoprocesseur (solution séquentielle)Architecture monoprocesseur (solution séquentielle)
Tâche de fond
Tâche T1
interruption interruption
2 x Tâche T1
Le microprocesseur 68000, partie matérielleCopyright © F. Muller 2001, 2002
Ch4 - 27 -
Exceptions – Synthèse
n 2 types d’exceptionn Interne: TRAP, TRAPV, CHK, etc… (logiciel , appels
systèmes)n Externe: Interruption (matériel, circuits externes,
périphériques)n Auto-vectoriséen Vectorisée (numéro du vecteur fourni par le circuit externe)
n Table d’exceptionn Plage mémoire : de l’adresse $000 à $3FFn 256 vecteurs dont 192 pour l’utilisateur
n Applicationsn Activation de tâches par des circuits périphériques (clavier,
réseaux, etc…)n Gestion Temps-réel (Circuit Horloge)
Le microprocesseur 68000, partie matérielleCopyright © F. Muller 2001, 2002
Ch4 - 28 -
Synthèse
n Différents modes d’accès aux circuits externesn Synchrone (famille 6800)n Asynchrone
n Partage de busn Possibilité d’architectures multiprocesseurs
n Exceptionn Logiciel pour les appels systèmesn Matériel pour activer des tâches à partir d’un circuit externe
Copyright © F. Muller 2001, 2002
Ch4 - 29 -
Le Microprocesseur 68000
n Caractéristiques Matériellesn Évolution de ces microprocesseurs
Le microprocesseur 68000, partie matérielleCopyright © F. Muller 2001, 2002
Ch4 - 30 -
Évolution de ces microprocesseursLe microprocesseur 68010 (1)
n Registre VBR (Vector Base Register)n Ce registre définit l’adresse de base de la table de vecteurs
d’exceptionn Ainsi, il est possible de stocker la plage $000-$3FF
0$000000
15
$0003FF
Table d’interruption
$00E000
0$000000
15
$00E3FF
Table d’interruption
$00E000
VBR = $000000VBR = $000000 VBR = $00E000VBR = $00E000
Le microprocesseur 68000, partie matérielleCopyright © F. Muller 2001, 2002
Ch4 - 31 -
Évolution de ces microprocesseursLe microprocesseur 68010 (2)
n Registres SFC, DFC (3 bits)n Il est possible d’utiliser l’état du processeur (FC2-FC0) pour
décoder des adresses de blocs de mémoiren Concept de mémoire virtuelle
n Permet à l’utilisateur d’exécuter des programmes avec un adressage logique (virtuel) sans se soucier de son existence physique
n Les espaces d’adressage physique et virtuel sont divisés en pages
n Si un accès à une adresse d’une page non présente en mémoire physique est réalisé, une erreur de page est générée ce qui déclenche une exception (Bus Error)
n Le processeur doit effectuer 3 fonctions de basesn Reconnaissance d’une fauten Sauvegarde du contexte du microprocesseur et exécution d’une exceptionn Restitution du contexte du microprocesseur et poursuite de l’exécution
interrompue
Le microprocesseur 68000, partie matérielleCopyright © F. Muller 2001, 2002
Ch4 - 32 -
Évolution de ces microprocesseursLe microprocesseur 68020 (1)
n Vrai microprocesseur 32 bits : Bus de données et d’adresses sur 32 bits
n Mémoire cache instructions de 256 octetsn Taux d’occupation du 68000 : 70 à 90%n Taux d’occupation du 68020: < 45%n 2 registres pour gérer la mémoire cache (CACR, CAAR)
n Interface coprocesseurn Nouvelles instructionsn Nouveau mode d’adressage
n move.w ([bd, An,Xn.Taille * Facteur], od),d0n d0 = (db + an + Xn.Taille * Facteur) + od
n 3 pointeurs de pilen A7 (USP)n A7’ (Pointeur de pile pour les interruptions)n A7’’ (SSP)
Le microprocesseur 68000, partie matérielleCopyright © F. Muller 2001, 2002
Ch4 - 33 -
Évolution de ces microprocesseursLe microprocesseur 68020 (2)
Le microprocesseur 68000, partie matérielleCopyright © F. Muller 2001, 2002
Ch4 - 34 -
Évolution de ces microprocesseursLe microprocesseurs 68030n Gestion de mémoire paginée (PMMU) intégréen Mémoire cache de données ET d’instructionn Architecture de type Harvard (exécution parallèle d’une lecture, d’un calcul et d’une
écriture)
Le microprocesseur 68000, partie matérielleCopyright © F. Muller 2001, 2002
Ch4 - 35 -
Évolution de ces microprocesseursLes autres microprocesseurs 680x0n 68040
n Mémoire cache de données (4Ko) ET d’instruction (4Ko)n 68060
n Mémoire cache de données (8Ko) ET d’instruction (8Ko)n Unité à virgules flottantes