ch4-micro68000materiel

35
Le microprocesseur 68000, partie matérielle Copyright © F. Muller 2001, 2002 Ch4 - 1 - Plan n Ch1 - Historique n Ch2 - Quelques généralités sur les architectures n Ch3 - Structure d’un micro système n Ch4 - Le microprocesseur 68000, partie matérielle n Ch5 - Le microprocesseur 68000, partie logicielle n Ch6 - Du langage C à l’assembleur 68000 n Ch7 - Les unités d’échanges

Upload: osama-omran

Post on 28-Jan-2016

10 views

Category:

Documents


0 download

DESCRIPTION

MICROPROCESSOR

TRANSCRIPT

Page 1: Ch4-Micro68000Materiel

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

Page 2: Ch4-Micro68000Materiel

Copyright © F. Muller 2001, 2002

Ch4 - 2 -

Le Microprocesseur 68000Partie Matérielle

n Caractéristiques Matériellesn Évolution de ces microprocesseurs

Page 3: Ch4-Micro68000Materiel

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)

Page 4: Ch4-Micro68000Materiel

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

Page 5: Ch4-Micro68000Materiel

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

Page 6: Ch4-Micro68000Materiel

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

Page 7: Ch4-Micro68000Materiel

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

Page 8: Ch4-Micro68000Materiel

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

Page 9: Ch4-Micro68000Materiel

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

Page 10: Ch4-Micro68000Materiel

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

Page 11: Ch4-Micro68000Materiel

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

Page 12: Ch4-Micro68000Materiel

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

Page 13: Ch4-Micro68000Materiel

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

Page 14: Ch4-Micro68000Materiel

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

Page 15: Ch4-Micro68000Materiel

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)

Page 16: Ch4-Micro68000Materiel

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

Page 17: Ch4-Micro68000Materiel

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

Page 18: Ch4-Micro68000Materiel

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

Page 19: Ch4-Micro68000Materiel

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

Page 20: Ch4-Micro68000Materiel

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

Page 21: Ch4-Micro68000Materiel

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

Page 22: Ch4-Micro68000Materiel

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

Page 23: Ch4-Micro68000Materiel

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

Page 24: Ch4-Micro68000Materiel

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

Page 25: Ch4-Micro68000Materiel

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

Page 26: Ch4-Micro68000Materiel

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

Page 27: Ch4-Micro68000Materiel

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)

Page 28: Ch4-Micro68000Materiel

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

Page 29: Ch4-Micro68000Materiel

Copyright © F. Muller 2001, 2002

Ch4 - 29 -

Le Microprocesseur 68000

n Caractéristiques Matériellesn Évolution de ces microprocesseurs

Page 30: Ch4-Micro68000Materiel

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

Page 31: Ch4-Micro68000Materiel

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

Page 32: Ch4-Micro68000Materiel

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)

Page 33: Ch4-Micro68000Materiel

Le microprocesseur 68000, partie matérielleCopyright © F. Muller 2001, 2002

Ch4 - 33 -

Évolution de ces microprocesseursLe microprocesseur 68020 (2)

Page 34: Ch4-Micro68000Materiel

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)

Page 35: Ch4-Micro68000Materiel

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