Vous êtes sur la page 1sur 35

LE MICROPROCESSEUR 16 BITS MOTOROLA 68000

Le Microprocesseur Motorola 68000 est le fruit de lvolution technologique des concepteurs Motorola. Aprs le 6800 apparu en 1974, le 6802 en 1976, le 6809 en 1977, les premiers chantillons du 68000 ont t diffuss en 1979. Bien que son bus de donnes soit de 16 bits, la structure interne du 68000 est 32 bits, cest le circuit charnire entre les 8 bits de la famille 6800 et les 32 bits de la famille 68020. Lide matresse des concepteurs Motorola a toujours t la simplicit, en effet les circuits de ce fabricant ont toujours suivi la mme logique. Cependant le 68000 a d se plier notamment lvolution de la conception des modes dchange qui sont passs du mode synchrone unique pour la famille 6800 au mode asynchrone pour le 68020. Le 68000 assure ces deux modes dchange lui permettant dutiliser les priphriques de lun comme de lautre. Le mode dchange asynchrone utilise la technique dite de la poigne de main (handshake): - Le microprocesseur place la donne sur le bus - Validation de la donne par le microprocesseur - Acquisition de la donne par le priphrique - Acquittement par le priphrique - Le microprocesseur passe la tche suivante Le 68000 est un pas vers la rationalit qui cependant ne sera pleinement atteinte quavec le 68020 ainsi, le 68000 peut travailler sur : - Un bit - Un octet - Un mot de 16 bits - Un mot long de 32 bits cependant il naccepte pas que les mots et mots longs soient situs des adresses impaires. Le 68000 facilite galement la cration de machines complexes telles que des stations de travail, - dune part en possdant deux modes de fonctionnement hirarchiquement distincts le mode superviseur et le mode utilisateur - dautre part en tendant la notion dinterruption la notion dexception ce qui permet: . de faciliter lanalyse des erreurs de manipulation et amliorer de la convivialit des machines . de faciliter la conception de systmes de dveloppement . de faciliter le fonctionnement en mmoire virtuelle Lextension de son jeu dinstructions et de ses modes dadressage en font un circuit performant et facile programmer. I - MODLE DE PROGAMMATION Le modle de programmation est lensemble des registres auxquels le programmeur peut se rfrer

LE MICROPROCESSEUR 68000 D. ANGELIS

8 REGISTRES DE DONNES de 32 bits qui peuvent tre rduits l'octet de poids faible (bits de 0 7) ou le mot de poids faible (bits de 0 15) 31 16 15 8 7 0 Appellation D0 D1 D2 D3 D4 D5 D6 D7 7 REGISTRES D'ADRESSES de 32 bits qui peuvent tre rduits (partiellement) au mot de poids faible (bits de 0 15) mais pas l'octet 31 16 15 0 Appellation A0 A1 A2 A3 A4 A5 A6 Un registre 32 bits la fois POINTEUR DE PILE UTILISATEUR (USP) et registre d'adresses A7 31 0 Appellation USP=A7 Un registre 32 bits la fois POINTEUR DE PILE SUPERVISEUR (SSP) et registre d'adresses A7 31 0 Appellation SSP=A7 Un COMPTEUR DE PROGRAMME 32 bits dont seuls les 24 bits de poids faible sont utilisables 31 23

Appellation PC

Un REGISTRE D'TAT (SR) de 16 Bits incluant le REGISTRE DE CODE CONDITION (CCR) dans ses 8 bits de poids faible 15 8 7 0 Appellation (CCR) SR I - 1 - Registre d'tat (Status register - SR ) C'est un registre 16 bits dont les 8 bits de poids faible constituent le Registre de Codes Condition(CCR). Les 8 bits de poids fort ne sont accessibles qu'en mode superviseur. 15 T 14 0 13 S 12 0 11 0 10 I2 9 I1 8 I0 7 0 6 0 5 0 4 X 3 N 2 Z 1 V 0 C

Etat du registre aprs un RESET (0x2700) (0x signifie que le nombre qui suit est exprim en hexadcimal) 15 14 13 12 11 10 9 8 7 6 5 4 0 0 1 0 0 1 1 1 0 0 0 0

3 0

2 0

1 0

0 0

LE MICROPROCESSEUR 68000 D. ANGELIS Fonctions des bits du Registre d'tat:

Bit 15 T Validation du mode trace Avant chaque instruction le bit T est test, si celui-ci est 1, le MPU entrera dans le traitement dune exception aprs lexcution de linstruction. Ceci facilite la mise en uvre dun programme daide au dveloppement incluant le fonctionnement pas pas du microprocesseur. Ltat du bit T ne peut tre modifi quen mode superviseur. Bit 13 Modes de fonctionnement S Ltat du bit S dtermine le niveau de hirarchie dans lequel travaille le microprocesseur S = 1 Le MPU( Micro Processor Unit) est dans le mode superviseur, il est dans le mode de niveau hirarchique le plus lev, il peut utiliser tout le jeu dinstructions. Son pointeur de pile est A7' (SSP) S = 0 Le MPU est dans le mode Utilisateur, il ne peut excuter les instructions privilgies son pointeur de pile est A7 (USP). Modification du bit S Comme lensemble des bits de loctet de poids fort, le bit S ne peut tre modifi que dans le mode superviseur, cest dire que lon ne peut que faire passer le bit S de 1 0. Ceci pourra se faire laide des instructions agissant sur SR telles que MOVE, ANDI, EORI To SR. Linstruction RTE, qui restitue le registre dtat aprs le traitement dune exception peut galement modifier S. Le passage du bit S de 0 1 ne peut se faire qu la faveur dune exception en effet nous verrons plus loin que les exceptions sont traites en mode superviseur. En rsum: S=0 S=1 ne peut se faire qu la faveur dune exception S=1 S=0 laide des instructions MOVE, ANDI, EORI To SR et RTE. Bits 10, 9 et 8 I2, I1, I0 Masque d'interruption Le masque d'interruption fixe le niveau au-dessus duquel les demandes d'interruptions seront acceptes par le microprocesseur. Une demande d'interruption s'effectue par l'intermdiaire des broches IPL 2,1,0 du microprocesseur (actives 0), pour qu'une demande d'interruption soit prise en compte par le microprocesseur il faut que le nombre (complment) appliqu sur les broches IPL soit strictement suprieur celui du masque. Seule une interruption de niveau 7 sera prise en compte quelque soit l'tat du masque. L'interruption de niveau 7 est une interruption non masquable Aprs un RESET le masque d'interruption est positionn au niveau 7 (1 1 1) , il peut tre modifi par programme en mode superviseur. Lors de la prise en compte d'une exception le masque se positionne au niveau de l'interruption traite pendant la dure du traitement de celle-ci. Il revient au niveau antrieur aprs le retour d'exception. Octet accessible l'utilisateur, Registre de code condition (CCR) Le registre de code condition est influenc par lexcution des instructions. Il n'est influenc que par les bits utiles de l'oprande, c'est dire que si l'oprande est un octet dans un registre 32 bits, seuls les 8 bits de l'octet sont pris en compte, le bit N par exemple sera l'image du bit7 : Bit 4 X EXTENSION Bit de report, voisin de C, il n'est influenc que par les oprations caractre arithmtique Bit 3 Bit 2 Bit 1 N Z V NEGATIF ZERO Bit de signe en complment deux, plus gnralement, le bit de poids fort du rsultat Passe l'tat actif (1) lorsque le rsultat donne 0

OVERFLOW Indicateur de dpassement en code complment 2. Quatre cas peuvent positionner le bit V 1 dans son fonctionnement classique: Addition dun nombre positif un nombre positif rsultat ngatif Addition dun nombre ngatif un nombre ngatif rsultat positif Soustraction dun nombre ngatif un nombre positif rsultat ngatif Soustraction dun nombre positif un nombre ngatif rsultat positif D'autres instructions telles que la division peuvent avoir un effet significatif sur le bit V CARRY Report ou retenue

Bit 0

LE MICROPROCESSEUR 68000 D. ANGELIS

I - 2 - Registres de Donnes ( Data registers - D0 D7 ) Le 68000 possde 8 registres de donnes, ces registres ont une dimension de 32 bits. Les instructions peuvent porter sur: - un octet, les bits concerns sont alors de 0 7, les autres bits du registre ne sont pas influencs. - un mot, bits de 0 15, les autres bits du registre ne sont pas influencs. - un mot long, bits de 0 31 31 16 15 8 7 0 Dn I - 3 - Registres dadresses ( Address registers - A0 A7 ) Il y a 8 registres dadresses, cependant le registre A7 est particulier puisquil sert de pointeur de pile, nous en parlerons au paragraphe suivant. Les registres dadresses servent comme leur nom lindique ladressage. Certaines instructions peuvent sappliquer au contenu de ces registres cependant elles ne pourront pas porter sur un octet. Dans la plupart des cas, lorsque linstruction porte sur un mot qui doit tre reu par un registre dadresses, il y a extension du bit de signe. Lextension du signe consiste recopier dans les bits 16 31 la valeur du bit de signe du rsultat cest dire le bit 15. I - 4 - Pointeurs de pile ( Stack pointer - A7 et A7 ) Le registre dadresses A7 est utilis comme pointeur de pile. En fait ce registre est double lun est utilis en mode utilisateur, il sappellera dans ce cas A7 ou USP. Il sera utilis systmatiquement lors des appels sous-programme ou l'excution des instructions LINK ou PEA en mode utilisateur. Contrairement ce que lon pourrait penser priori, linstruction MOVE USP est une instruction privilgie et ne peut tre utilise quen mode Superviseur. Cest une curiosit de ce microprocesseur puisque linstruction Move de ou vers A7 en mode utilisateur est parfaitement possible et assure la mme fonction. Le registre A7 ou SSP est le pointeur de pile Superviseur, on ne peut y accder que dans ce mode. Il est le seul utilis dans le traitement des exceptions qui sexcutent toujours dans le mode superviseur. Ce registre est charg la suite dun Reset matriel par le mot long contenu ladresse 0. Son contenu pourra comme prcdemment tre modifi grce linstruction Move vers A7 excut en mode superviseur. I - 5 - Compteur de programme ( Program Counter - PC ) Cest un registre de 32 bits qui a la fonction habituelle du compteur de programme ou compteur ordinal (appellation qui a tendance disparatre). Il est charg lors dun Reset matriel par le mot long situ ladresse 4. Son contenu peut tre modifi par les instructions de saut ou de branchement. Seuls les bits de A1 A23 sont rpercuts sur le bus dadresse le bit A0 pilote les lignes LDS et UDS (Lower ou Upper Data Strobe) ces lignes sont actives 0 parit de l'adresse taille du transfert OCTET MOT MOT LONG 1 0 0 A0 = 0 LDS UDS 0 0 0 0 A0 = 1 LDS UDS 1

LE MICROPROCESSEUR 68000 D. ANGELIS II- PRSENTATION PHYSIQUE DU 68000

II - 1 - Les boitiers Le 68000 se prsente sous diffrents botiers - Quad pack 68 connexions, botier carr de 25 millimtres de cot pour le montage en surface. Les connexions sont rparties sur la priphrie du composant au pas de 1,27 mm. - Pin Grid Array (PGA ou botier fakir) 68 connexions, botier carr de 27 millimtres de cot. Le botier retourn se prsente comme un lit de broches celles-ci tant disposes suivant une grille au pas de 2,54 mm. - Dual In Line (DIL ou DIP) 64 broches botier rectangulaire de 81 mm sur 20 mm muni dune double range de broches au pas de 2,54 mm. Les quatre broches supplmentaires des botiers carrs sont imposes par la gomtrie et ne sont pas connectes. Nous dcrivons dans le paragraphe suivant le brochage du botier DIL. Les caractristiques mcaniques sont dcrites page 127. II - 2 - Le brochage ( voir le botier page 127) N 15 6 7 8 9 E/S E/S S 3tats S 3tats S 3tats S 3tats NOM D4 D0 AS UDS LDS FONCTION 5 bits de poids faible du bus de donnes ( le reste de 54 64 ) Address Strobe, ltat 0 signale une adresse valide sur le bus Upper Data Strobe Validation de loctet de poids fort du bus de donnes Lower Data Strobe Validation de loctet de poids faible du bus de donnes Read / Write indique si le MPU fait une opration de lecture (1) ou dcriture (0) R/W UDS LDS FONCTION 0 0 0 criture dun mot, deux octets valides sur le bus 0 0 1 criture de loctet de poids fort (*) 0 1 0 criture de loctet de poids faible (*) 1 0 0 Lecture dun mot 1 0 1 Lecture de loctet de poids fort 1 1 0 Lecture de loctet de poids faible X 1 1 Pas de donne valide sur le bus (*) Le mme octet est prsent sur les parties haute et basse du bus de donnes Data Transfer Acknowledge, reconnaissance de transfert de donne. Actionne par le circuit priphrique indique: R/ W =1 DTACK =0 la donne venant du priphrique est valide R/ W =0 DTACK =0 la donne a t lue par le priphrique 11 12 13 14 et 49 S E E BG BGACK BR +Vcc (*) Bus Grant le MPU signale que les bus seront disponibles la fin du cycle en cours pour un accs direct mmoire ou pour un autre MPU Bus Grant Acknowledge le MPU ou le contrleur DMA indique quil prend possession des bus Bus Request, un MPU ou un contrleur DMA demande la matrise des bus Alimentation 5 Volts En version ordinaire pour F clk de 8 12 MHz; La puissance absorbe est de 1,1 1,7 W pour la technologie MOS et 2,2 W 16 MHz. Elle tombe 0,13 et 0,26 W pour la technologie HCMOS S3tats = Sortie 3 tats (0, 1, X-haute impdance- )

R/ W

10

DTACK

E = Entre

S = Sortie

LE MICROPROCESSEUR 68000 D. ANGELIS

N 15 16 et 53 17

E/S E

NOM Clk Gnd (*) 0 lectrique - Masse -

FONCTION Clock - Horloge - Charge 1 unit TTL F de 4 16 MHz suivant le modle

E/S

Mise 0 seule, le MPU termine le cycle en cours puis place ses lignes 3 tats en Haute Impdance. Les lignes de contrle deviennent inactives sauf BR, BG, BGACK. Entre sortie Mise 0 avec la broche Reset, initialisation matriel du 68000 drain En sortie cette broche 0 signale que le MPU est arrt ouvert HALT RESET Entre sortie drain ouvert Mise 0 avec la broche Halt, initialisation matriel du 68000 ( voir le traitement de lexception reset page 28 ) En sortie, cette broche peut tre mise 0 par lexcution de linstruction reset Sortie utilise en mode synchrone, indique quune adresse est valide Signal de Synchronisation sa Frquence est F Clk 10 (6 priodes 0, 4 priodes 1) utilis en particulier avec les priphriques 6800 Un tat actif plac sur cette broche signale au MPU quil communique avec un priphrique synchrone Bus Error un tat actif sur cette broche signale au MPU une erreur bus, linstruction avorte et une exception est dclenche Entres de demande dinterruption 0 tat actif: IPL2 IPL1 IPL0 = 111 pas de demande dinterruption 110 demande de niveau 1 000 demande de niveau 7 Sorties indiquant la tche en cours dexcution FC FC 2 1 0 FONCTION 2 1 0 FONCTION 0 0 0 Indfinie 1 0 0 Indfinie 0 0 1 Donne Utilisateur 1 0 1 Donne Superviseur 0 1 0 Progr Utilisateur 1 1 0 Progr Superviseur 0 1 1 Indfinie 1 1 1 Traitement Interruption Bus dadresses - A0 est remplac par UDS et LDS (voir page 7) Capacit dadressage 2 24 Octets soit 16 MgaOctets 0 lectrique de lalimentation Onze bits de poids fort du bus de donnes

18

E/S

19 20 21 22 23, 24 et25

S S E E E

VMA E VPA BERR IPL2 IPL1 IPL0

26, 27 et 28

FC2, FC1, FC0

29 52 53 et 16 54 64

S 3tats

A1 A23

GND * E/S 3tats D15 D5

* Les alimentations Vcc et Gnd multiples doivent en principe toutes tre connectes de faon bien irriguer la puce. Il ne faut pas perdre de vue que la version MOS peut absorber des pointes de courant de 1,5 Ampres.

LE MICROPROCESSEUR 68000 D. ANGELIS III - ORGANISATION DES DONNES EN MMOIRE

Le 68000 admet les trois tailles de donnes ci-dessous. - Octet - Mot (2 octets) - Mot Long (4 octets) et donnes dcimales. Certaines instructions peuvent ne concerner qu'un seul bit cependant l'opration s'effectuera par la lecture et la rcriture de l'oprande modifi contenant ce bit (loprande devra donc tre accessible en lecture et en criture). L'adresse N d'un Mot Long est l'adresse de son octet de poids fort ainsi que de son mot de poids fort. L'adresse du mot de poids faible prend la valeur N+2, l'octet de poids faible N+3.

Une donne mot ou mot long, de mme quune instruction est ncessairement aligne sur les frontires de mot (adresses multiples de 2) Considrons le mot long dadresse 0, il est constitu de 2 mots, les mots dadresse 0 et dadresse 2 ou de quatre octets dadresse 0, 1, 2, 3 comme reprsent ci-dessous: 31 24 23 16 15 8 7 MOT LONG 0 = mot long dadresse 0x000000 qui contient les mots ou les octets cidessous MOT 0 = mot dadresse 0x000000 OCTET 0 adresse 0x000000 OCTET 1 adresse 0x000001 MOT 1 = mot dadresse 0x000002 OCTET 2 adresse 0x000002 OCTET 3 adresse 0x000003 0

MOT LONG 1 = mot long dadresse 0x000004 qui contient les mots ou les octets cidessous MOT 2 = mot dadresse 0x000004 OCTET 4 adresse0x000004 OCTET 5 adresse 0x000005 MOT 3 = mot dadresse 0x00000006 OCTET 6 adresse 0x000006 OCTET 7 adresse 0x000007

Le bus dadresses ne comporte pas le bit A0, celui-ci est remplac par les lignes UDS et LDS. Les mmoires tant gnralement structures en mots de 8 bits, un systme 68000 possdera en gnral deux mmoires RAM, lune charge daccueillir les octets de poids fort, dadresse paire, dont le Chip Select sera command par la ligne UDS et lautre les octets de poids faible, dadresse impaire, commande par LDS (voir page suivante ) Lorsquune opration porte sur un octet dadresse paire, UDS est actif, sur un octet dadresse impaire LDS est actif son tour. Si lopration porte sur un mot les deux octets sont alors concerns UDS et LDS doivent alors tre actifs simultanment. On voit que cette technique interdit des oprations sur des mots dadresse impaire puisque UDS et LDS ne peuvent plus faire la diffrence. Lors de l'criture d'un octet en mmoire, cet octet est plac par le microprocesseur sur la partie haute et sur la partie basse du bus de donnes, c'est UDS ou LDS qui slectionne la mmoire d'accueil. III - 1 - Structure de la donne: OCTET (situ l'intrieur d'un registre l'oprande octet concerne uniquement l'octet de poids faible). 7 6 5 4 3 2 1 0

III - 2 - Structure de la donne: MOT Soit le mot dadresse N 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

LE MICROPROCESSEUR 68000 D. ANGELIS

Nous pourrons galement le considrer comme 2 octets: 15 14 13 12 11 10 9 OCTET DADRESSE N 8 7 6 5 4 3 2 1 OCTET DADRESSE N+1 0

III - 3 - Structure de la donne: MOT LONG Soit le mot long dadresse N 31 0 MOT LONG DADRESSE N Il pourra tre considr comme deux mots: 31 16 15 0 MOT DADRESSE N MOT DADRESSE N + 2 Ou comme quatre Octets: 31 24 23 16 15 8 7 0 OCTET DADRESSE OCTET DADRESSE OCTET DADRESSE OCTET DADRESSE N N+1 N+2 N+3 III - 4 - Structure des donnes en mmoire Soient les deux mmoires structures en mots de 8 bits lune connecte sur la partie haute et lautre sur la partie basse du bus de donnes du microprocesseur. Chacune reoit sur ses entres dadresse les mmes lignes du bus dadresse et leurs Chip Select sont pilots par Lds pour lune et Uds pour lautre
bits 0 7 Bus de donnes bits 8 15 Validation par UDS 100 102 104 106 101 103 105 107 Validation par LDS

Mmoire d'adresse paire

Mmoire d'adresse impaire

Action d'une adresse contenue dans le programme ou labore par le programme sur les lignes du bus d'adresses et les broches de la mmoire: Exemple: Transfert ladresse 0x100 (adresse paire) Adresse (dans le programme) 0 0 0 1 0 0 0 0 0 0 0 0 id en hexadcimal Broches du bus dadresse sur le bus pour Oprande Octet sur le bus pour Oprande Mot 0 0 0 0 0 1 A11 A10 A9 0 0 A8 A8 1 1 A7 A7 0 0 A6 8 A6 0 0 A5 0 A5 0 0 A4 A4 0 0 A3 A3 0 0 A2 0 A2 0 0 A1 0 A1 Uds/Lds 0 0 A0 0/1 0/0 Cs

broches d'adresse de la mmoire A10 A9

Dans cet exemple, les adresses 0x100 et 0x101 qui ne diffrent que par le bit A0 slectionnent dans chaque mmoire la mme case ( adresse 0x080). Lorsque le transfert concerne le mot d'adresse 0x100, loctet de poids fort se prsente sur la partie haute du bus de donnes et loctet de poids faible sur la partie basse , le 68000 active UDS et LDS et les deux octets sont transfrs simultanment.

LE MICROPROCESSEUR 68000 D. ANGELIS

Lorsque le transfert concerne un octet, celui-ci se prsente sur les deux parties du bus de donnes, les deux mme cases dans chacune des mmoires sont slectionnes mais si ladresse est impaire le 68000 active Lds et le transfert se fait de ou dans la mmoire valide si ladresse est paire cest UDS qui est actif Il est facile de voir que la diffrence entre Adresse paire et impaire qui se fait par le bit A0 lintrieur du micro, se fait lextrieur avec LDS et UDS or lorsque le micro crit un mot, il doit slectionner en mme temps mmoire paire et impaire il ne peut plus alors faire la distinction entre paire et impaire.

Avec le microprocesseur 68000, lcriture ou la lecture dun mot (ou dun mot long) une adresse impaire n'est pas admise. Une tentative de ce type provoque une exception error address (p30)

III - 5 - Les donnes dans une instruction (Oprandes) Les instructions du 68000 se prsentent de faon beaucoup plus souple que pour ses anctres ainsi dans la plupart des instructions nous trouverons la dsignation de loprande source et de loprande destination. Le premier oprande dsign dans l'instruction constitue la source le second la destination. De mme chaque instruction prcisera la taille des oprandes. Par exemple, linstruction: MOVE.W signifie: MOVE .W D0 D1 = transfert = Taille de loprande le mot (word) = Oprande source = Oprande destination D0,D1

TRANSFERT du mot de poids faible contenu dans D0 dans le mot de poids faible de D1 Second exemple: ADD.L D1,D7 ADDITION du mot long (L) contenu dans D1 avec celui de D7 rsultat dans D7

Troisime exemple: AND.B D7,D1 ET logique entre loctet (B) de poids faible de D7 et celui de D1 rsultat dans D1 Quatrime exemple: les modes dadressage pourront tre diffrents pour la recherche de loprande source et de loprande destination OR.B D0,0x1001 OU logique entre loctet de poids faible de D0 et loctet dadresse hexadcimale 1001 rsultat ladresse 1001.

10

LE MICROPROCESSEUR 68000 D. ANGELIS

IV - LES MODES DADRESSAGE IV - 1 - Vue densemble des modes dadressage Afin de rendre ce tableau plus comprhensible, nous avons donn un exemple dinstruction pour chacun des modes dadressage. Linstruction prsente est toujours un MOVE.W cest dire le transfert dun mot. La source est dsigne laide de ladressage tudi, la destination est toujours le registre D1. Les mots extension sont des mots qui accompagnent l'instruction permettant de dterminer les oprandes ou contenant les oprandes (adressage immdiat). Le codage FC est l'tat des broches FC1 et FC0 lorsque le microprocesseur lit ou crit l'adresse en question: 01 espace "donnes" (mmoire RAM, registres internes des circuits priphriques etc.) 10 espace "programme" (Mmoire ROM ou RAM d'accueil du programme ) MODE DADRESSAGE A - DIRECT PAR REGISTRE - Direct par registre de donnes - Direct par registre dadresses B - INDIRECT PAR REGISTRE DADRESSES - Indirect par registre dadresses - Indirect par registre dadresses post-incrment - Indirect par registre dadresses pr-dcrment - Indirect par registre dadresses avec dplacement - Indirect par registre dadresses avec dpl et index C - ABSOLU - Absolu court - Absolu long N(16) N(32) MOVE.W 0x1000,D1 MOVE.W 0x0011223344,D1 1 2 01 01 (An) (An)+ -(An) d(16)(An) MOVE.W (A2),D1 MOVE.W (A2)+,D1 MOVE.W -(A2),D1 MOVE.W (0x1000,A2),D1 ou MOVE.W 0x1000(A2),D1 MOVE.W 0x10(A2,D0.W),D1 0 0 0 1 01 01 01 01 Dn An MOVE.W D2,D1 MOVE.W A2,D1 0 0 01 01 FORME EXEMPLE CODAGE MOTS extension (FC 1,0)

d(8)(An,Rx)

01

D - INDIRECT PAR COMPTEUR DE PROGRAMME (RELATIF) - Indirect par PC avec dplacement - Indirect par PC avec dplacement et index E - IMMEDIAT - Immdiat - Immdiat rapide #N(8,16 ou 32 MOVE.W #0x1000,D1 bits) #N(< 3 ou 8 bits) MOVEQ #1,D1 1 ou 2 0 01 01 d(16)(PC) d(8)(PC,Rx) MOVE.W 0x0020(PC),D1 MOVE.W 0x20(PC,D0.W),D1 1 1 10 10

Abrviations utilises: d(16) = dplacement sur 16 bits N(16) = nombre de 16 bits Rx = Registre quelconque ( A ou D ) IV - 2 - Dtail des modes dadressage

LE MICROPROCESSEUR 68000 D. ANGELIS

11

IV - 2 - 1 - Adressage direct par registre IV - 2 - 1 - 1 - ADRESSAGE DIRECT PAR REGISTRE DE DONNES. L'oprande est contenu dans le registre de donnes spcifi dans l'instruction.

Localisation de loprande Syntaxe Assembleur Codification dans le mot Instruction Mode Registre Codification sur FC 1 0 Mmoire Nombre de Mot extension

loprande est le contenu de Dn Dn

000 N du registre (n) 01 mmoire de donnes 0

Exemple:

Instruction MOVE.L AVANT EXECUTION

D2,D1 APRES EXECUTION 44 00 D2 D1 11 11 22 22 33 33 44 44

D2 D1

11 00

22 00

33 00

Codage de l'Instruction 15 0 14 0 13 1 12 0 11 0 Mot Instruction: 0x2202 Ce mode d'adressage ne ncessite pas de mot extension 10 0
Registre

9 1

8 0

7 0
Mode

6 0

5 0

4 0
Mode

3 0

2 0

1 1
Registre

0 0

Move Taille

Destination

Source

12

LE MICROPROCESSEUR 68000 D. ANGELIS

IV - 2 - 1 - 2 - ADRESSAGE DIRECT PAR REGISTRE D'ADRESSES. L'oprande est contenu dans le registre d'adresses spcifi dans l'instruction.

Localisation de loprande Syntaxe Assembleur Codification dans le mot Instruction Mode Registre Codification sur FC 1 0 Mmoire Nombre de Mot extension

loprande est le contenu de An An 001 N du registre (n) 01 mmoire de donnes 0

Exemple :

MOVE.L A2,D1 AVANT EXECUTION APRES EXECUTION 44 00 A2 D1 11 11 22 22 33 33 44 44

A2 D1

11 00

22 00

33 00

Codage de l'Instruction 15 0 14 0 13 1 12 0 11 0 Mot Instruction: 0x220A Ce mode d'adressage ne ncessite pas de mot extension 10 0
Registre

9 1

8 0

7 0
Mode

6 0

5 0

4 0
Mode

3 1

2 0

1 1
Registre

0 0

Move Taille

Destination

Source

LE MICROPROCESSEUR 68000 D. ANGELIS IV - 2 - 2 - Adressage Indirect par registre d'adresses IV - 2 - 2 - 1 - ADRESSAGE INDIRECT PAR REGISTRE D'ADRESSES. L'oprande est contenu dans l'emplacement mmoire dont l'adresse est spcifie dans le registre d'adresses. Le Numro du registre dadresses est prcis dans l'instruction.

13

Localisation de loprande Syntaxe Assembleur Codification dans le mot Instruction Mode Registre Codification sur FC 1 0 Mmoire Nombre de Mot extension Exemple: MOVE.L AVANT EXECUTION Mmoire: 0x10000 = 1122 0x10002 = 3344 0x10004 = 5566 (A2),D1

loprande est le contenu de ladresse loge dans An (An) 010 N du registre (n) 01 mmoire de donnes 0

APRES EXECUTION Mmoire: 0x10000 = 1122 0x10002 = 3344 0x10004 = 5566

Registres: A2 D1 00 00 01 00 00 00 00 00

Registres A2 D1 00 11 01 22 00 33 00 44

Codage de l'Instruction 15 0 14 0 13 1 12 0 11 0 10 0
Registre

9 1

8 0

7 0
Mode

6 0

5 0

4 1
Mode

3 0

2 0

1 1
Registre

0 0

Move Taille

Destination

Source

Mot Instruction: 0x2212 Cette instruction ne ncessite pas de mot extension

14

LE MICROPROCESSEUR 68000 D. ANGELIS

IV - 2 - 2 - 2 - ADRESSAGE INDIRECT PAR REGISTRE D'ADRESSES AVEC POSTINCRMENTATION

L'oprande est contenu dans l'emplacement mmoire dont l'adresse est spcifie dans le registre d'adresses prcis dans l'instruction. Aprs excution de l'instruction l'adresse contenue dans le registre est incrmente de 1 pour le transfert d'un octet (.B), de 2 pour le transfert d'un mot (.W) ou de 4 pour un mot long (.L).

Localisation de loprande

Loprande est le contenu de ladresse pointe par An Aprs excution le contenu de An est incrment de 1,2,4 suivant la taille de loprande (An)+ 011 N du registre (n) 01 mmoire de donnes 0

Syntaxe Assembleur Codification dans le mot Instruction Mode Registre Codification sur FC 1 0 Mmoire Nombre de Mot extension

Exemple:

MOVE.L AVANT EXECUTION

(A2)+,D1 APRES EXECUTION Mmoire: 0x10000 = 1122 0x10002 = 3344 0x10004 = 5566

Mmoire:

0x10000 = 1122 0x10002 = 3344 0x10004 = 5566

Registres: A2 D1 00 00 01 00 00 00 00 00

Registres A2 D1 00 11 01 22 00 33 04 44

Codage de l'Instruction 15 0 14 0 13 1 12 0 11 0 10 0
Registre

9 1

8 0

7 0
Mode

6 0

5 0

4 1
Mode

3 1

2 0

1 1
Registre

0 0

Move Taille

Destination

Source

Mot Instruction: 0x221A Cette instruction ne ncessite pas de mot extension

LE MICROPROCESSEUR 68000 D. ANGELIS

15

IV - 2 - 2 - 3 - ADRESSAGE INDIRECT PAR REGISTRE D'ADRESSES AVEC PRDCRMENTATION

L'adresse de l'oprande est obtenue en retranchant au contenu du registre d'adresses spcifi dans l'instruction le nombre d'octets, taille de l'oprande, 1 pour le transfert d'un octet (.B), 2 pour le transfert d'un mot (.W) ou 4 pour un mot long (.L). Localisation de loprande Loprande est le contenu de ladresse loge dans An pralablement dcrmente de 1,2,4 suivant la taille de loprande -(An) 100 N du registre (n) 01 mmoire de donnes 0 -(A2),D1 APRES EXECUTION Mmoire: 0x10000 = 1122 0x10002 = 3344 0x10004 = 5566

Syntaxe Assembleur Codification dans le mot Instruction Mode Registre Codification sur FC 1 0 Mmoire Nombre de Mot extension Exemple: MOVE.L AVANT EXECUTION Mmoire: 0x10000 = 1122 0x10002 = 3344 0x10004 = 5566

Registres: A2 D1 00 00 01 00 00 00 04 00

Registres A2 D1 00 11 01 22 00 33 00 44

Codage de l'Instruction 15 0 14 0 13 1 12 0 11 0 Mot Instruction: 0x2222 Cette instruction ne ncessite pas de mot extension 10 0
Registre

9 1

8 0

7 0
Mode

6 0

5 1

4 0
Mode

3 0

2 0

1 1
Registre

0 0

Move Taille

Destination

Source

16

LE MICROPROCESSEUR 68000 D. ANGELIS

IV - 2 - 2 - 4 - ADRESSAGE INDIRECT PAR REGISTRE D'ADRESSES AVEC DEPLACEMENT L'adresse de l'oprande est obtenue en additionnant le dplacement mentionn dans l'instruction au contenu du registre d'adresses spcifi. Le dplacement est un nombre de 16 bits dont le signe sera tendu 32 bits lors du calcul de l'adresse Localisation de loprande Loprande est le contenu de ladresse obtenue en additionnant le contenu de An au dplacement spcifi dans linstruction d(An) 101 N du registre (n) 01 mmoire de donnes 1

Syntaxe Assembleur Codification dans le mot Instruction Mode Registre Codification sur FC 1 0 Mmoire Nombre de Mot extension

Le dplacement est donn sur 16 bits en mode complment 2 ce qui permet daccder une zone de 32KO. Exemples de dplacement: Dplacement dcimal Mot extension Valeur ajoute (An) 0 0x0000 0x0000 0000 +1 0x0001 0x0000 0001 +32 767 0x7FFF 0x0000 7FFF -32 767 0x8001 0xFFFF 8001 -1 0xFFFF 0xFFFF FFFF Exemple: MOVE.L (0x1000,A2),D1 Calcul de l'adresse (0x1000,A2) (A2) + 0x1000 = 0x00010000+0x00001000 = 0x00011000 AVANT EXECUTION APRES EXECUTION Mmoire: 0x11000 = 1122 Mmoire: 0x11000 = 1122 0x11002 = 3344 0x11002 = 3344 0x11004 = 5566 0x11004 = 5566 Registres: A2 00 01 00 00 12 0 11 0 11 0 00 00 10 0
Registre

Registres A2 D1 9 1 8 0 7 0
Mode

00 11 5 1 4 0
Mode

01 22 3 1 2 0

00 33 1 1
Registre

00 44 0 0

D1 00 00 Codage de l'Instruction 15 14 13 0 0 1

6 0

Move Taille

Mot Extension 15 14 0 0

Destination 10 0 9 0 8 0 7 0

6 0 5 0 4 0

Source 3 0 2 0 1 0

13 0

12 1

0 0

Mot Instruction: 0x222A

Mot Extension 0x1000

LE MICROPROCESSEUR 68000 D. ANGELIS IV - 2 - 2 - 5 - ADRESSAGE INDIRECT PAR REGISTRE D'ADRESSES AVEC DPLACEMENT SUR 8 BITS ET INDEX

17

L'adresse de loprande est obtenue en faisant la somme du contenu du registre d'adresses spcifi, du dplacement sur 8bits dont le signe est tendu 32 bits et du contenu de l'index sur la taille spcifie. Le champ utile l'intrieur du registre d'index est prcis dans l'instruction ( mot, mot long), le signe est tendu 32 bits de le mme faon que le dplacement. Localisation de loprande Loprande est le contenu de ladresse obtenue en additionnant le contenu de An au dplacement spcifi dans linstruction et lindex d(8)(An,Rx) 110 N du registre (n) 01 mmoire de donnes 1 0x10(A2,D0.W),D1

Syntaxe Assembleur Codification dans le mot Instruction Mode Registre Codification sur FC 1 0 Mmoire Nombre de Mot extension Exemple: MOVE.L

Calcul de l'Adresse de l'oprande source : Index D0.W = 0x0002 D0.W Signe tendu = 0x00000002 Dplacement = 0x10 Dplacement Signe tendu 0x00000010 Adresse = D0.W + Dp + A2 = 00000002 + 00000010 + 00000100 = 00000112 AVANT EXECUTION Mmoire: 0x000112 = 1122 0x000114 = 3344 0x000116 = 5566 Registres: A2 D0 D1 00 11 00 00 11 00 01 00 00 12 0 11 0 00 02 00 10 0
Registre

APRES EXECUTION Mmoire: 0x000112 = 1122 0x000114 = 3344 0x000116 = 5566 Registres: A2 D0 D1 9 1

00 11 11 5 1

00 11 22 3 0

01 00 33 2 0 1 1
Registre

00 02 44 0 0

Codage de l'Instruction 15 14 13 0 0 1

8 0

7 0
Mode

6 0

4 1
Mode

Move Taille

Destination

Source

Voir le contenu du mot extension page suivante

18

LE MICROPROCESSEUR 68000 D. ANGELIS

Mot Extension pour adressage index 15 0


D/A

14 0

13 0

12 0

11 0

10 0

9 0

8 0

7 0

6 0

5 0

4 1

3 0

2 0

1 0

0 0

Registre

W/L

inutiliss

Dplacement

Mot instruction 0x2232 Champ de dfinition de l'index: D/A Registre de Donnes ou d'Adresses 0 Registre de donnes 1 Registre d'adresses

Mot extension 0x0010

REGISTRE N du registre sur 3 bits W/L SIZE 0 (.W) Le registre est utilis sur ses 16 bits de poids faible 1 (.L) Le registre est utilis sur ses 32bits

DEPLACEMENT Valeur du dplacement sur 8 bits

LE MICROPROCESSEUR 68000 D. ANGELIS IV - 2 - 3 - Adressages absolus

19

Les deux adressages regroups dans ce chapitre sont ds plus simples puisqu'il suffit de mentionner en clair l'adresse de l'oprande, soit sur un mot, adressage absolu court, soit sur un mot long, adressage absolu long.

IV - 2 - 3 - 1 - ADRESSAGE ABSOLU COURT

L'adresse de l'oprande est fournie sur un mot, l'assembleur tendra le bit de signe 32 bits.

Localisation de loprande

Loprande est le contenu de ladresse spcifie dans linstruction N(16) 111 000 01 mmoire de donnes 1

Syntaxe Assembleur Codification dans le mot Instruction Mode Registre Codification sur FC 1 0 Mmoire Nombre de Mot extension Exemple: MOVE.L 0x1000,D1

Le mot long contenu dans l'emplacement mmoire d'adresse 0x001000 sera tranfr dans le registre D1 Codage de l'Instruction 15 0 14 0 13 1 12 0 11 0 10 0
Registre

9 1

8 0

7 0
Mode

6 0

5 1

4 1
Mode

3 1

2 0

1 0
Registre

0 0

Move Taille

Destination

Source

Mot Extension pour Adresse de l'oprande source (0x1000) 15 0 14 0 13 0 12 1 11 0 10 0 9 0 8 0 7 0 6 0 5 0 4 0 3 0 2 0 1 0 0 0

Mot instruction 0x2238

Mot extension 0x1000

20

LE MICROPROCESSEUR 68000 D. ANGELIS

IV - 2 - 3 - 2 - ADRESSAGE ABSOLU LONG

L'adresse de l'oprande est fournie sur un mot long. Localisation de loprande Loprande est le contenu de ladresse spcifie dans linstruction N(32) 111 001 01 mmoire de donnes 2

Syntaxe Assembleur Codification dans le mot Instruction Mode Registre Codification sur FC 1 0 Mmoire Nombre de Mot extension

Exemple:

MOVE.L

0x00112233,D1

Le mot long contenu dans l'emplacement mmoire d'adresse 0x112233 sera transfr dans le registre D1. Codage de l'Instruction 15 0 14 0 13 1 12 0 11 0 10 0
Registre

9 1

8 0

7 0
Mode

6 0

5 1

4 1
Mode

3 1

2 0

1 0
Registre

0 1

Move Taille

Destination

Source

Premier Mot Extension pour la partie haute de l'adresse de l'oprande source (0x0011) 15 0 14 0 13 0 12 0 11 0 10 0 9 0 8 0 7 0 6 0 5 0 4 1 3 0 2 0 1 0 0 1

Deuxime Mot Extension pour la partie basse de l'adresse de l'oprande source (0x2233) 15 0 14 0 13 1 12 0 11 0 10 0 9 1 8 0 7 0 6 0 5 1 4 1 3 0 2 0 1 1 0 1

Mot instruction 0x2239

1er Mot extension 2me Mot extension 0x0011 0x2233

LE MICROPROCESSEUR 68000 D. ANGELIS

21

IV - 2 - 4 - Adressages indirects par compteur de Programme Ce chapitre regroupe deux modes d'adressage similaires certains dj tudis dans les modes indirect par rapport An, mais le registre de base qui dans ces adressages taient obligatoirement un registre d'adresse est ici remplac par le compteur de programme. On pourrait dnommer ces modes d'adressages relatifs Ces adressages sont classifis "programme". IV- 2 - 4 - 1 - ADRESSAGE INDIRECT PAR PC AVEC DPLACEMENT SUR 16 BITS C'est un mode trs simple puisqu'il consiste additionner au contenu de PC un dplacement exprim sur 16 bits. Le dplacement est contenu dans un mot extension, son bit de signe est tendu 32 bits lors du calcul de l'adresse de l'oprande, la valeur de PC prendre en compte est l'adresse du mot extension. Cet adressage est classifi programme. Localisation de loprande Loprande est le contenu de ladresse obtenue en additionnant le dplacement ladresse du mot extension d(16)(PC) ou tiquette(PC) Codification dans le mot Instruction Mode Registre Codification sur FC 1 0 Mmoire Nombre de Mot extension 111 010 10 mmoire de programme 1

Syntaxe Assembleur

Exemple: MOVE.L 0x0020(PC),D1 Calcul de l'Adresse de l'oprande source: Supposons l'instruction loge l'adresse 0x1000 le compteur de programme sera point en 1002 pendant l'excution de l'instruction l'adresse de l'oprande sera = PC + d Dplacement 0x0020 Dplacement signe tendu 0x00000020 PC + d = 00001002 + 00000020 = 00001022 AVANT EXECUTION APRES EXECUTION Mmoire: 0x001000 = 223A** Mmoire: 0x001000 = 223A** 0x001002 = 0020* 0x001002 = 0020* 0x001004 = 1234 0x001004 = 1234 ...................................................... ...................................................... 0x001020 = 0000 0x001020 = 0000 0x001022 = 1122 0x001022 = 1122 0x001024 = 3344 0x001024 = 3344 Registres: Registres: D1 00 00 00 00 D1 ** = Mot instruction * = Mot extension (dplacement) Codage de l'Instruction 15 14 13 12 11 10 9 8 7 6 0 0 1 0 0 0
Registre

11 5 1

22 3 1

33 2 0 1 1
Registre

44 0 0

4 1
Mode

0
Mode

Destination Mot Extension pour le dplacement(0x0020) 15 14 13 12 11 10 9 8 7 0 0 0 0 0 mot instruction 0x223A 0 0

Move Taille

6 5 1 4 0

Source 3 0 2 0 1 0

0 0

0 0 0 mot extension 0x0020

22

LE MICROPROCESSEUR 68000 D. ANGELIS

IV- 2 - 4 - 2 - ADRESSAGE INDIRECT PAR PC AVEC DPLACEMENT SUR 8 BITS, INDEXE L'adresse de l'oprande est obtenue en faisant la somme du contenu de PC avec le dplacement sur 8 bits, signe tendu 32 et l'index en tenant compte de sa dimension . Localisation de loprande Loprande est le contenu de ladresse obtenue en additionnant le dplacement ladresse du mot extension et lindex d(8)(PC,Rn) ou tiquette(PC,Rn) 111 011 10 mmoire de programme 1

Syntaxe Assembleur Codification dans le mot Instruction Mode Registre Codification sur FC 1 0 Mmoire Nombre de Mot extension

Exemple: MOVE.L 0x20(PC,D0.W),D1 Calcul de l'Adresse de l'oprande source : Supposons l'instruction loge l'adresse 0x1000 le compteur de programme sera point en 1002 pendant l'excution de l'instruction l'adresse de l'oprande sera: Dplacement 0x20 Dplacement signe tendu 0x00000020 Index D0.W=0x0002 D0.W signe tendu 0x00000002 d +PC + X = 00000020 + 00001002 + 00000002 = 00001024 AVANT EXECUTION Mmoire: 0x001000 = 223B** 0x001002 = 0020* 0x001004 = 1234 ...................................................... 0x001022 = 0000 0x001024 = 1122 0x001026 = 3344 Registres: D0 11 11 00 02 APRES EXECUTION Mmoire: 0x001000 = 223B** 0x001002 = 0020* 0x001004 = 1234 ...................................................... 0x001022 = 0000 0x001024 = 1122 0x001026 = 3344 Registres: D0 D1 8 0

11 11 5 1

11 22 3 1

00 33 2 0 1 1
Registre

02 44 0 1

D1 00 00 00 00 ** = Mot instruction * = Mot extension Codage de l'Instruction 15 14 13 12 11 10 9 0 0 1 0 0 0


Registre

7 0
Mode

6 0

4 1
Mode

Destination Mot Extension pour adressage index 15 14 13 12 11 10 9 8 7 0


D/A

Move Taille

6 0 5 1 4 0

Source 3 0 2 0 1 0

0 0

0
Registre

0
W/L

inutiliss

Dplacement

(Voir description des champs page 18 ) Mot instruction 0x223B

Mot extension 0x0020

LE MICROPROCESSEUR 68000 D. ANGELIS

23

IV - 2 - 5 - ADRESSAGE IMMDIAT

Il ne s'agit pas, proprement parler, d'un mode d'adressage puisque ce n'est pas l'adresse de l'oprande qui est fournie dans l'instruction mais l'oprande lui mme. Quelques instructions ne ncessitent pas de mot extension ( telles que ADDQ ou SUBQ) lorsque la taille de loprande est rduite ( de 1 8). Pour les autres si l'oprande porte sur un octet il sera constitu de l'octet de poids faible du mot extension, pour un mot ce sera tout le mot extension, pour un mot long deux mots extension. Localisation de loprande Syntaxe Assembleur Codification dans le mot Instruction Mode Registre Codification sur FC 1 0 Mmoire Nombre de Mot extension Exemple MOVE.L #0x1000,D1 Loprande est fourni dans linstruction #N ou #tiquette 111 100 01 mmoire de donnes 0,1 ou 2

La valeur 0x1000 sera transfre dans D1 sous la forme d'un mot long Codage de l'Instruction 15 14 13 0 0 1 12 0 11 0 10 0
Registre

9 1

8 0

7 0
Mode

6 0

5 1

4 1
Mode

3 1

2 1

1 0
Registre

0 0

Move Taille

Destination

5 0 4 0

Source 3 0 2 0 1 0

Mot Extension pour l'oprande source lui mme (0x1000) 15 14 13 12 11 10 9 8 7 6 0 0 0 1 0 0 0 0 0 0

0 0

Mot Instruction 0x223C

Mot extension 0x1000

V - LES MODES DE FONCTIONNEMENT DU 68000 Le 68000 peut fonctionner dans 2 niveaux de privilge, selon l'tat du bit S du registre d'tat: Le mode Utilisateur ou niveau de moindre privilge (bit S de SR 0) Le mode Superviseur ou niveau de privilge maximum (bit S 1). Le niveau de privilge dans lequel travaille le processeur un instant donn est rpercut sur broche FC2. Le dcodage de ce bit peut permettre, notamment, de scinder les zones mmoire utilisateur superviseur. Il est possible aussi, dans un systme multi-utilisateurs d'interdire l'accs des utilisateurs mmoire rserve l'Operating System (OS). L'Operating System (logiciel qui permet la gestion de la et la la

24

LE MICROPROCESSEUR 68000 D. ANGELIS

machine informatique) travaille en mode superviseur, il doit pouvoir accder toutes les ressources et coordonner les activits des utilisateurs, par contre ceux-ci ne doivent pas pouvoir modifier la configuration du systme. Une PMMU (Unit de Gestion Mmoire) pourra utiliser ces niveaux de privilge pour la gestion mmoire. V - 1 - Le mode Superviseur Le mode superviseur est obtenu en positionnant le bit S du registre d'tat 1, la broche FC2 se positionne 1. Le passage du mode utilisateur au mode superviseur ne peut se faire qu' la faveur d'une exception.

Toutes les interruptions sont traites en mode superviseur et utilisent la pile pointe par SSP quel que soit l'tat du bit S avant lentre en exception En mode superviseur il est possible d'utiliser l'ensemble du jeu d'instructions V - 2 - Mode Utilisateur Le mode utilisateur est obtenu en positionnant le bit S du registre d'tat 0 , la broche FC2 se positionne 0. C'est l'tat de moindre privilge. L'ensemble du jeu d'instructions ne peut tre utilis dans ce mode de fonctionnement. Les restrictions d'utilisation portent essentiellement sur les instructions permettant d'influer sur la configuration d'un systme. Les instructions non autorises en mode utilisateur sont repres par un astrix (*) dans le tableau des pages 30 et 31, ce sont essentiellement les instructions qui permettraient un utilisateur de modifier le registre d'tat (octet de poids fort) ou le pointeur de pile superviseur (SSP).

Dans l'tat utilisateur, toute rfrence au pointeur de pile soit implicite soit explicite, registre d'adresse A7, concerne USP.

V - 3 - Changement de niveau de privilge V - 3 - 1 - Passage de l'tat Utilisateur l'tat Superviseur. La seule faon de passer de l'tat utilisateur l'tat superviseur est de rencontrer une exception. Le traitement de l'exception sauve l'tat courant des bits du registre d'tat dans la pile superviseur active et met le bit S 1 forant ainsi le microprocesseur l'tat superviseur. Il est possible, si le programme de traitement de l'exception l'a prvu, de revenir dans le programme antrieur l'aide de l'instruction RTR qui chargera PC avec l'adresse de l'instruction qui suit l'exception et en ne restaurant que la zone CCR du registre d'tat, l'utilisateur reste alors en l'tat superviseur. Il est possible galement de modifier le contenu de la pile de telle sorte que l'instruction RTE rinstalle un registre dans lequel le bit S aura t mis 1.

LE MICROPROCESSEUR 68000 D. ANGELIS V - 3 - 2 - Passage de l'tat Superviseur l'tat Utilisateur

25

Le passage de l'tat superviseur l'tat utilisateur se fait en positionnant le bit S du registre d'tat 0 ce qui ne pose pas de problme puisqu'en l'tat superviseur toutes les instructions peuvent tre utilises. Ceci pourra se faire l'aide des instructions telles que MOVE, ANDI, EORI to SR. V - 4 - Les zones mmoires Les broches FC 2,1,0 donnent une information sur l'tat dans lequel travail le microprocesseur. FC2 0 0 0 0 1 1 1 1 FC1 0 0 1 1 0 0 1 1 FC0 0 1 0 1 0 1 0 1 Zone Mmoire Indfinie Donnes Utilisateur Programme Utilisateur Indfinie Indfinie Donnes Superviseur Programme Superviseur Reconnaissance dinterruption, pas de zone mmoire dfinie

L'utilisation de ces informations peut tre incluse dans le dcodage des adresses et ainsi permettre la cohabitation de diffrentes zones mmoire rserves aux diffrents modes de fonctionnement. V - 5 - Les Exceptions V - 5 - 1 - numration des exceptions Les exceptions rsultant d'une action sur les broches du 68000 dites exceptions externes Interruptions Erreur Bus Reset Exceptions rsultant de l'excution d'une instruction ou exceptions internes Erreur adresse Trace Trappe, Trappe V Chk Division par 0 Instruction Illgale Viol de privilge V - 5 - 2 - Classement des exceptions GROUPES DE PRIORITES 0 0-0 0-1 0-2 1 1-0 1-1 PRIORITES RELATIVES Reset Erreur bus Erreur adresse Trace Interruption CARACTERISTIQUES Fait avorter le processus en cours rien n'est sauvegard Suspend le traitement de l'instruction en cours et sauve le contexte interne Le traitement de l'exception commence aprs l'excution de l'instruction Le processus de traitement de l'exception commence avant l'excution de l'instruction Le traitement de l'exception fait partie de l'excution de l'instruction

1-2 Instruction illgale ou inexistante, viol de privilge 2 2-0 Chk, Div par 0 Trappe

26

LE MICROPROCESSEUR 68000 D. ANGELIS

V- 5 - 3 - Squence type de traitement d'une exception La squence type de traitement est constitue de 4 tapes: a) Sauvegarde interne du registre d'tat tel qu'il tait avant la reconnaissance de l'exception puis les bits S et T du registre d'tat en activit sont mis respectivement 1 et 0 (pour les interruptions et reset , mise jour du masque d'interruption). b) Dtermination du numro de vecteur. Pour les interruptions vectorises, le N est lu pendant que les lignes FC2,1,0 sont 1 ce qui constitue un cycle de reconnaissance d'interruption. Pour toutes les autres exceptions une logique interne fournit le numro vecteur c) Pour toutes les exceptions sauf reset, la troisime tape consiste sauvegarder l'tat interne du processeur . Le contexte d'exception est log dans la pile. Le contexte est trs rduit puisquil ne se compose que de PC et du registre dtat sauvegard initialement. Un contexte spcial pour les erreurs bus et erreurs adresse compos de 7 mots est sauvegard afin de permettre une analyse plus fine de l'exception (voir page 30) d) La dernire tape est identique pour toutes les exceptions, ladresse vecteur est dtermine en multipliant par 4 le N vecteur. Le vecteur d'exception est le mot long log dans l'espace superviseur ladresse calcule. Il est ensuite charg dans PC. Le microprocesseur amorce ensuite l'excution du programme. Il est a noter que le vecteur reset qui est constitu de deux mots longs, le premier pour charger SSP et le second pour PC. Ces vecteurs sont logs dans l'espace programme superviseur alors que tous les autres sont dans l'espace donnes superviseur. V- 5 - 4 - Organigramme de traitement des exceptions

LE MICROPROCESSEUR 68000 D. ANGELIS

27

DEBUT
Copie interne du registre d'tat S=1 T=0 oui

Interruption non

Actualisation du masque d'interruption

non VPA = 0 oui gnration interne d'un N de vecteur Fourniture interne d'un N de vecteur

Recherche d'un N de vecteur externe

une erreur bus survient non

oui

gnration du N de Vecteur IT parasite

multiplication par 4 du N de vecteur = Adresse vecteur

Empilement de PC et du Registre d'tat

Adresse illgale ou Erreur bus non

oui

2me Erreur bus oui

non

Exception bus erreur ou Adresse illgale non Recherche du contenu de l'adresse vecteur

oui

Empilement du R d'instruction, Ad bus et mot d'tat comp

Double erreur bus

FIN

oui Une Erreur bus ou adresse illgale est dj survenue (sauf parasite)

une erreur bus oui survient non Adresse dans PC

non

Recherche de la 1re instruction

une erreur bus ou adresse illgale survient non

oui

Recherche du mot suivant

une erreur bus survient non

oui

FIN
V - 5 - 5 - Numrotation des vecteurs d'exception

28

LE MICROPROCESSEUR 68000 D. ANGELIS

Numro Vecteur 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 23 24 25 26 27 28 29 30 31 32 47 48 63 64 255

Adresse Vecteur 0x000 0x004 0x008 0x00C 0x010 0x014 0x018 0x01C 0x020 0x024 0x028 0x02C 0x030 0x034 0x038 0x03C 0x040 0x05C 0x060 0x064 0x068 0x06C 0x070 0x074 0x078 0x07C 0x080 0x0BC 0x0C0 0x0FF 0x100 0x3FC

Affectation Reset Initialisation de SSP Reset Initialisation de PC Erreur Bus Erreur Adresse Instruction Illgale Division par zro CHK TrapV Viol de privilge Trace mulateur Ligne A mulateur Ligne F Non affect (rserv) Non affect (rserv) Non affect (rserv) Interruption non initialise -------------Non affects (rservs) -------------Interruption parasite Auto-vecteur Interruption Niveau 1 Auto-vecteur Interruption Niveau 2 Auto-vecteur Interruption Niveau 3 Auto-vecteur Interruption Niveau 4 Auto-vecteur Interruption Niveau 5 Auto-vecteur Interruption Niveau 6 Auto-vecteur Interruption Niveau 7 --------------Instructions Trap de #0 #15 ---------------------------Non affects (rservs) ---------------------------Affectation utilisateur -------------

Zone mmoire (broches FC) Prog Super Prog Super Donnes Super Donnes Super Donnes Super Donnes Super Donnes Super Donnes Super Donnes Super Donnes Super Donnes Super Donnes Super

Donnes Super

Donnes Super Donnes Super Donnes Super Donnes Super Donnes Super Donnes Super Donnes Super Donnes Super Donnes Super

Donnes Super

Donnes Super

Seuls les vecteurs N 0 et 1 sont dans l'espace Programme Superviseur tous les autres sont dans l'espace Donnes Superviseur V - 5 - 6 - Traitement dtaill des exceptions V - 5 - 6 - 1 - Traitement dtaill des exceptions: reset

LE MICROPROCESSEUR 68000 D. ANGELIS

29

RESET C'est l'exception de niveau prioritaire maximum. Elle est utilise pour initialiser le systme la mise sous tension ou en cas d'erreur majeure. Elle est cause par larrive dtats actifs simultans sur les entres Reset et Halt. ( Ne pas confondre avec linstruction Reset destine rinitiliser les priphriques). Tout traitement en cours est avort, rien n'est sauvegard. - Le registre d'tat est initialis:T est mis 0, S est mis 1, Le masque d'interruption au niveau 7 - Le vecteur 0 est fourni en interne et, exceptionnellement le microprocesseur va chercher deux mots longs dans la zone Programme Superviseur Le premier l'adresse 0 pour en charger le pointeur de pile superviseur (SSP) Le second l'adresse 4 pour initialiser le compteur de programme (PC) - Rien ne peut tre dit ni assur pour les autres registres. Le temps ncessaire pour amorcer lexcution du programme est de 40 priodes dhorloge (le 68000 effectue 6 oprations de lecture en mmoire) compter du moment o reset et halt sont devenus inactifs.

RESET
S=1 T=0 Masque = 7 Recherche du vecteur 0 une erreur bus ou une erreur adresse survient non oui Double erreur bus

FIN

Contenu du vecteur 0 dans SSP

Recherche du vecteur 1

une erreur bus ou une erreur adresse survient non

oui

Contenu du vecteur 1 dans PC

Recherche de la 1re instruction

une erreur bus ou adresse illgale survient non

oui

Recherche du mot suivant

une erreur bus survient non

oui

EXCEPTION ERREUR BUS

FIN

30

LE MICROPROCESSEUR 68000 D. ANGELIS

V - 5 - 6 - 2 - Traitement dtaill des exceptions:Erreur Bus ERREUR BUS Cette exception est cause par un tat actif appliqu sur la broche BERR par une logique externe faisant avorter un cycle bus externe. Si le processeur est dans l'espace donnes, il amorce immdiatement le traitement de l'exception. Si le cycle bus avort est une pr-recherche d'instruction, l'exception ne sera traite que lorsque le processeur aurait d excuter l'instruction qui est cause de l'erreur bus. Le Registre d'tat est copi, les bits du registre actif sont positionns de telle sorte que T = 0 et S = 1. Un numro de vecteur est gnr en interne ( 0x02). PC, la copie de SR, le contenu du registre dinstruction (celui-ci ne fait pas partie du modle de programmation), la dernire adresse accde (qui peut tre celle de linstruction ou dun oprande ) ainsi que ltat de certaines broches du microprocesseur (voir ci dessous le contexte empil ) sont sauvs dans la pile superviseur. La valeur de PC sauvegarde est l'adresse de l'instruction en cours d'excution au moment ou est survenue l'erreur bus, ce n'est pas forcment cette instruction qui a caus l'erreur. En effet le 68000 va systmatiquement chercher deux mots en mmoire de programme conscutivement, de nombreuses instructions ne ncessitant quun mot, il est possible que lexcution dune instruction samorce aprs la recherche de linstruction suivante. Il peut donc y avoir ambigut sur les adresses. Le temps ncessaire pour accder au programme de traitement est de 50 priodes dhorloge, le 68000 effectue 4 oprations de lecture en mmoire et 7 dcriture. Deux cas particuliers peuvent se prsenter: 1er Cas: tats actifs simultans sur BERR et HALT Le 68000 effectue dans ce cas un RERUN cest dire que, ds que laction sur ces broches a cess ( dabord sur BERR et ensuite sur HALT ) le MPU r-excute la dernire instruction. 2me Cas: Le 68000 a reconnu une interruption, il est en attente de rception dun N de vecteur signal par DTACK ou dun signal VPA prcisant que linterruption est auto-vectorise. Recevant un signal BERR, une logique interne lui fournit le N de vecteur interruption parasite . Schma du contexte mis en pile: 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Le pointeur de pile reste sur le dernier mot empil ladresse X - 14 (10) R/ I/N FC 2,1,0 SSP X - 14 W DERNIERE ADRESSE ACCEDEE PARTIE HAUTE SSP X - 12 DERNIERE ADRESSE ACCEDEE PARTIE BASSE SSP X - 10 REGISTRE DINSTRUCTION SSP X - 8 REGISTRE DETAT SSP X - 6 COMPTEUR DE PROGRAMME PARTIE HAUTE SSP X - 4 COMPTEUR DE PROGRAMME PARTIE BASSE SSP X - 2 SSP = X Pointeur de pile avant sauvegarde Les informations ranges en SP-14 sont ltat des broches code fonction FC, de la ligne R/W et un bit I/N qui indique lorsquil est 1 que le processeur traitait une exception du groupe 2 au moment de lerreur. V - 5 - 6 - 3 - Traitement dtaill des exceptions: Erreur Adresse ERREUR ADRESSE Cette exception survient lorsque le microprocesseur tente de rechercher ou de loger un mot ou un mot long une adresse impaire. Ceci peut tre assimil une Erreur Bus interne. Le cycle bus n'est pas excut, la procdure est identique celle de l'erreur bus qui est dveloppe dans le paragraphe prcdent, cependant le numro de vecteur est diffrent 0x0C. Le temps ncessaire pour accder au programme de traitement est de 50 priodes dhorloge, le 68000 effectue 4 oprations de lecture en mmoire et 7 dcriture.

LE MICROPROCESSEUR 68000 D. ANGELIS

31

Si une erreur adresse survient pendant le traitement d'une erreur bus, d'une erreur adresse,ou d'un reset, le microprocesseur est mis en Halt, il ne pourra sortir de ce mode que par un reset matriel V - 5 - 6 - 4 - Traitement dtaill des exceptions: Trace TRACE Le mode trace est destin aider la mise au point des programmes en permettant de les excuter instruction par instruction. Ce mode utilise le bit T du registre d'tat . Si , au dbut de l'excution d'une instruction le bit T est 1, une exception trace sera gnre aprs l'excution de l'instruction. De faon gnrale, une exception trace peut tre vue comme l'extension de l'instruction, celle-ci ne sera pas considre comme acheve tant que le processus li l'exception n'a pas t compltement excut. Quelques cas particuliers: - L'instruction subit une erreur bus ou une erreur adresse, l'exception Trace est diffre jusqu' ce que l'excution de l'instruction suspendue soit acheve ( par le RTE qui lui est associ). - L'instruction est excute et une interruption est pendante, le trace est excut avant l'interruption. - Pendant l'excution de l'instruction, une exception est force par l'instruction, l'exception force est excute avant le trace. - Si le processeur est en mode trace lors d'une tentative d'excution d'instruction illgale ou inexistante, l'instruction ne causera pas de trace puisqu'elle n'est pas excute. Ceci est particulirement important pour une routine d'mulation d'instruction qui ralise la fonction de l'instruction, ajuste la valeur empile de PC l'adresse de l'instruction suivante et retourne ensuite au programme. Avant que le retour ne soit excut, SR dans la pile pourrait tre contrl pour dterminer si le mode trace est actif et, si tel est le cas, l'exception trace pourrait tre mule galement. Traitement de l'exception Trace: L'exception Trace est initie la fin du traitement normal de l'instruction et avant le dbut de la prochaine instruction. Une copie interne du Registre d'tat est faite, le passage l'tat superviseur est effectu (S=1), le bit T est mis 0, un N de vecteur est gnr (N9). PC et la copie de SR sont empils. La valeur sauve de PC est l'adresse de l'instruction suivante. L'excution des instructions reprend dans la routine de traitement de Trace. Le temps ncessaire pour accder au programme de traitement est de 34 priodes dhorloge, le 68000 effectue 4 oprations de lecture en mmoire et 3 dcriture. Si une instruction STOP commence sont excution avec T1=1, une Trace sera prise aprs que l'instruction stop ait charg SR. Sur le retour du programme de traitement de trace, l'excution continuera avec l'instruction qui suit le Stop et le microprocesseur ne sera jamais en condition STOP C'est le seul cas o Trace affecte l'excution d'une instruction. V - 5 - 6 - 5 - Traitement dtaill des exceptions: Interruptions INTERRUPTIONS Les demandes d'interruption sont effectues en appliquant un ou plusieurs tats actifs sur les broches IPL 2,1,0. L'interruption est alors pendante (en instance). La demande ne sera satisfaite qu'aprs l'excution de l'instruction en cours. Si le niveau de priorit de la demande est strictement suprieur au masque d'interruption situ dans le registre d'tat celle-ci sera accepte par le processeur. Une exception est faite pour l'interruption de niveau 7 qui ne peut tre masque, elle sera toujours accepte quelle que soit la valeur introduite dans le masque d'interruption, c'est une interruption non masquable. Une copie interne de SR est effectue, le processeur est mis en l'tat superviseur, le mode Trace est supprim, le masque d'interruption est mis au niveau de l'interruption prise en compte. Le processeur cherche le N de vecteur du circuit interrompant en effectuant une lecture alors que les broches de code

32

LE MICROPROCESSEUR 68000 D. ANGELIS

fonction (FC2,1,0) sont 111, R/W 1, AS, LDS, UDS 0, A5 et A4 1 et les trois bits d'adresse A 3,2,1 positionns au niveau de l'interruption en cours de traitement Un circuit de dcodage devra exploiter ces informations de telle sorte que plaant un tat actif sur la ligne IACK du circuit interrompant (cas dun priphrique 68000) celui-ci fournisse le N vecteur ( de 64 255 ) sur les 8 lignes de poids faible du bus de donnes et tire la ligne DTACK du processeur 0. Si le N Vecteur n'est pas gnr par le circuit interrompant, une logique externe devra activer la ligne VPA du 68000 pour en demander la gnration interne. Les N fournis iront alors de 25 pour le niveau 1, 31 pour le niveau 7. Si la logique externe active la ligne BERR le processeur gnre le vecteur Interruption Parasite (N24 ) Lorsque le N vecteur est obtenu, le processeur sauve PC et SR sur la pile superviseur. La valeur de PC empile est l'adresse de l'instruction qui aurait t excute en l'absence d'interruption. Si le circuit qui demande l'interruption est de la famille 68000 et que cette demande survient avant son initialisation, le vecteur fourni est 0x0F Le temps ncessaire pour accder au programme de traitement est de 44 priodes dhorloge, le 68000 effectue 5 oprations de lecture en mmoire et 3 dcriture. Le cycle de reconnaissance dinterruption tant suppos de 4 priodes. Chronogramme de la reconnaissance d'interruption

LE MICROPROCESSEUR 68000 D. ANGELIS

33

changes entre le circuit interrompant et le microprocesseur

MICROPROCESSEUR

CIRCUIT INTERROMPANT
Demande d'interruption

Reconnaissance d'interruption - Compare le niveau de la demande au niveau du masque et attend l'achvement de l'instruction en cours - Place le niveau de l'interruption sur les lignes A3,A2,A1 - Place la ligne R/W en lecture - Place les lignes FC2,1,0 111 - Active la ligne AS - Active les lignes LDS et UDS ( le dcodage de ces informations doit activer la broche IACK du circuit interrompant )

Fourniture du N de vecteur - Place le Numro de vecteur sur les lignes D0 D7 - Active la ligne DTACK

Acquisition du N de vecteur - Dtecte l'activation de DTACK - Verrouille le Numro de vecteur - Dsactive les lignes UDS, LDS, et AS

Relachement - Dtecte la dsactivation de AS - Dsactive la ligne DTACK

Dbut du traitement de l'interruption

34

LE MICROPROCESSEUR 68000 D. ANGELIS

Chronologie dentre dans le programme de traitement de linterruption

Dernier cycle de l'instruction pendant laquelle l'interruption t accepte Empilement de PCL SSP-2 Cycle de gnration de IACK et acqisition du N vecteur Empilement du Registre d'tat SSP-6

Empilement de PCH SSP-4 Lecture de la partie haute de l'adresse vecteur Lecture de la partie basse de l'adresse vecteur Recherche du 1er mot instruction du programme de traitement de l'IT

V - 5 - 6 - 6 - Traitement dtaill des exceptions: Instruction illgale INSTRUCTION ILLEGALE Une instruction illgale est une instruction dont les bits caractristiques l'intrieur du mot ne correspondent pas une instruction du 68000 . Les instructions dont les 4bits de poids fort sont 1010 (A-line) et 1111 (F-Line) sont considres comme instructions inexistantes Lorsqu'une tentative d'excution dclenche une exception pour instruction illgale, les instructions inexistantes utilisent un vecteur spar permettant une efficacit de traitement plus grande . N vecteur pour instruction illgale 0x04 Le processus de traitement est identique la prcdente Le temps ncessaire pour accder au programme de traitement est de 34 priodes dhorloge, le 68000 effectue 4 oprations de lecture en mmoire et 3 dcriture. V - 5 - 6 - 7 - Traitement dtaill des exceptions: Instruction inexistante EMULATEUR LIGNES A et F Le microprocesseur 68000 prfigure le 68020 vrai microprocesseur 32 bits prvu pour travailler en relation avec ses deux coprocesseurs dont les mots instructions commencent par F. Il est possible de concevoir des systmes performants quips de coprocesseurs et ces mmes systmes performances rduites dans lesquels, pour des raisons de cot, le coprocesseur est remplac par un programme qui mulera les instructions du coprocesseur. Dans ces systmes une instruction commenant par F dclenchera une exception dont le programme analysera le mot instruction et effectuera la tche du coprocesseur en un temps videmment beaucoup plus important. Le 6800 comme le 68020 est prvu pour muler des instructions ou pseudo instructions commenant par F ou A

LE MICROPROCESSEUR 68000 D. ANGELIS

35

N vecteur pour instruction inexistante A-Line N vecteur pour instruction inexistante F-Line Le processus de traitement est identique la prcdente

0xA 0xB

Le temps ncessaire pour accder au programme de traitement est de 34 priodes dhorloge, le 68000 effectue 4 oprations de lecture en mmoire et 3 dcriture. V - 5 - 6 - 8 - Traitement dtaill des exceptions: Viol de privilge VIOL DE PRIVILEGE Lorsque le processeur tente l'excution d'une instruction privilgie en mode utilisateur, il y a dclenchement d'une exception pour viol de privilge. Le traitement est identique une Trappe. Le Numro de vecteur est 0x8 Le temps ncessaire pour accder au programme de traitement est de 34 priodes dhorloge, le 68000 effectue 4 oprations de lecture en mmoire et 3 dcriture. V - 5 - 6 - 9 - Traitement dtaill des exceptions: Instructions Trap INSTRUCTION TRAP Le processus de traitement des Trappes est le mme que celui des autres exceptions. SR est copi, le Registre d'tat actif est positionn S = 1,T = 0. Si le mode trace tait valid , l'exception Trap sera traite d'abord normalement puis le mode Trace sera excut. Pour les Trappes inconditionnelles, il y en a 16 possibles de Trap 0 Trap 0xF, le numro de vecteur est obtenu en ajoutant 32 au N trap. Pour TrapV trappe conditionne par ltat du bit V le N vecteur est 7 PC et la copie de SR sont sauvs dans la pile superviseur . La valeur de PC est l'adresse de l'instruction suivant celle qui a gnr la Trappe. PC est charg avec ladresse trouve puis le traitement du programme Trap commence. Le temps ncessaire pour accder au programme de traitement est de 38 priodes dhorloge, le 68000 effectue 4 oprations de lecture en mmoire et 3 dcriture. pour les trappes et de 34 pour trapV V - 5 - 6 - 10 - Traitement dtaill des exceptions: Division par 0 DIVISION PAR 0 Cette exception est dclenche par lexcution dune division lorsque le diviseur est nul Le N vecteur est 0x5. Le temps ncessaire pour accder au programme de traitement est de 42 priodes dhorloge V - 5 - 6 - 11 - Traitement dtaill des exceptions: Instruction check INSTRUCTION CHECK Cette exception est dclenche par le traitement de linstruction. check lorsque le registre test sort des limites assignes. Le N vecteur est 0x06 Le temps ncessaire pour accder au programme de traitement est de 44 priodes dhorloge, le 68000 effectue 5 oprations de lecture en mmoire et 3 dcriture.