You are on page 1of 8

Fonctionnement des microprocesseurs :

Exemple d’Architecture du microprocesseur : 6809

Un microprocesseur à jeu d'instruction étendu, ou complex


instruction set computer (CISC) en anglais, désigne un
1. Principe de fonctionnement : microprocesseur possédant un jeu d'instructions comprenant de
très nombreuses instructions mixées à des modes d'adressages
1.1. Machine de Von Neumann
complexes (plusieurs cycles d'horloge).
1.1.1. Principe Le microprocesseur à jeu d'instruction réduit (RISC)ou
reduced instruction-set computer en anglais est une architecture
Von Neumann propose en 1945 un principe d’architecture, modèle de
matérielle de microprocesseurs. On l'a opposé à la fin des années
base pour un ordinateur qui
1980 et au début des années 1990 à l'architecture CISC (complex
utilise une structure de stockage
instruction-set computer). La sortie d'architectures hybrides
unique pour conserver à la fois
comme le Pentium (CISC émulé par du RISC) a mis fin, par
les instructions et les données
disparition de repères.
requises ou générées par le
calcul. 2. Structure interne d’un microprocesseur

1.1.2. Architecture
L'architecture de Von
Neumann est une circuiterie implémentant un ordinateur universel
contenant les composants suivants :
• Une unité arithmétique et logique qui procède à des
opérations de calcul et des opérations logiques.
• Une unité de contrôle qui pilote l'exécution des programmes.
• Une mémoire dans laquelle sont stockés les programmes et les
données.
• Une unité d'entrée qui permet l'acquisition de données en
provenance du monde extérieur.
Architecture simplifiée d'un processeur central
• Une unité de sortie qui permet l'envoi de résultats à destination
du monde extérieur. ➢ L'unité de contrôle (en anglais : Control Unit - CU) est la partie la
1.2. Architectures CISC et RISC

1|Page
Fonctionnement des microprocesseurs :
Exemple d’Architecture du microprocesseur : 6809

plus complexe du processeur. Elle se décompose en plusieurs parties fonctionnalité que l'ordinateur est capable d'exécuter des
dont elle doit assurer la coordination : structures de contrôle contenant des conditions
▪ Le processeur exécute une à une les instructions stockées dans ▪ L'accumulateur est le registre de calcul par excellence. C'est
la mémoire centrale. Pour cela, les instructions doivent être par lui en effet que transitent toutes les données devant faire
chargées dans le processeur. Elles le sont dans le registre l'objet d'une opération ainsi que tous les résultats produits par
d'instruction. Ce dernier contient donc l'instruction courante à calcul arithmétique.
exécuter. ▪ Comme ces opérations mettent généralement en jeu plusieurs
▪ L'instruction à exécuter, chargée dans le registre d'instruction, termes et/ou états intermédiaires, l'accumulateur est secondé
est interprétée par le décodeur. par un nombre variable de registres généraux destinés à la
réalisation matérielle des calculs.
▪ Le séquenceur est alors capable d'ordonnancer les diverses
▪ ALU : Comme son nom l'indique, l'unité arithmétique et logique
opérations élémentaires du processeur, nécessaires pour exécuter (en anglais : Arithmetic and Logic Unit - ALU) se charge de réaliser
l'instruction, grâce à un microprogramme. les opérations arithmétiques et logiques.
▪ Le compteur ordinal est un registre particulier qui contient à tout Pour communiquer avec son environnement, le processeur dispose d'un
instant, l'adresse de l'instruction suivante à exécuter. ensemble de « bus » :
▪ L'horloge est un dispositif qui détermine le rythme dans lequel sont
▪ Le bus d'adresses permet au processeur de désigner l'adresse d'un
exécutées les instructions. Elle fournit un signal régulier au octet en mémoire. Selon le cas, il peut s'agir de l'adresse d'un ou
processeur. de plusieurs octets à charger dans le processeur ou à stocker en
▪ Le registre d'état est, comme le compteur ordinal, un registre mémoire.
particulier. Il représente à tout moment l'état du processeur. En ▪ Le bus de données permet de désigner la valeur à charger dans le
processeur ou à stocker en mémoire.
effet, divers évènements peuvent créer des situations «
▪ Enfin, le bus de commande permet au processeur de désigner
exceptionnelles ». Par exemple, l'addition de deux valeurs peut l'opération à effectuer, chargement dans le processeur ou stockage
dépasser les capacités de représentation du processeur. Dans ce en mémoire.
cas, un bit du registre d'état signale que le processeur est dans l'état
« overflow ».
➢ L'unité de calcul, comme son nom l'indique, effectue tous les calculs
au sein du processeur. À côté des opérations arithmétiques, elle
peut aussi procéder à des opérations logiques. C'est grâce à cette Exemple d’Architecture du microprocesseur : 6809

2|Page
Fonctionnement des microprocesseurs :
Exemple d’Architecture du microprocesseur : 6809

communication avec le bus des données interne du microprocesseur.


Le microprocesseur 6809 est un processeur 8 bits dont l'organisation Chaque broche peut "piloter" 1 charge TTL (Transistor-Transistor Logic)
interne est orientée 16 bits. Il est fabriqué en technologie MOS et 8 entrées de circuits appartenant à la famille 680 0. Bus en logique 3
(Metal Oxyde Semiconductor)canal N et se présente sous la forme états.
d'un boîtier DIL (Dual In Line) 40 broches. Il est monotension(5V). Il Le bus des adresses 16 bits (A0 à A15 )
existe deux versions différenciées par l'horloge. Ces broches unidirectionnelles transfèrent l'adresse 16 bits fournie par
le 6809 est rythmé par une horloge interne (f=1 MHZ, 1.5 MHZ et le microprocesseur au bus d'adresse du système. Mêmes
2MHZ). caractéristiques électriques que pour le bus des données. Bus en logique
Le 6809E est rythmé par une horloge externe. 3 états. les adresses sont validées sur le front montant de Q.
Ce dernier est adapté aux applications multiprocesseur. Il présente Le bus de contrôle
la particularité de pouvoir être synchronisé par une horloge La broche Read/Write. Cette broche indique le sens de transfert des
extérieure. Compatibilité complète entre les 2 versions. données sur le bus des données. Ligne à logique 3 états.
R/W = 1 lecture en cours (D0 - D7 sont des entrées) R/W = 0 écriture en
cours (D0 - D7 sont des sorties) Cette ligne est validée sur le front montant
de Q.

Les lignes d'état du bus :


BA (Bus available) et BS (Bus state)
Information qui permet de connaître l'état du microprocesseur à tout
moment.

Le bus des données 8 bits (Do à D7)


Ces huit broches sont bidirectionnelles. Elles permettent la

3|Page
Fonctionnement des microprocesseurs :
Exemple d’Architecture du microprocesseur : 6809

1er cas :
Le microprocesseur est en fonctionnement normal, il gère les bus
d'adresses et de données.
2ème cas :
le microprocesseur est en phase de reconnaissance d'interruption
pendant deux cycles. Cet état
correspond à la recherche des vecteurs d'interruption : Reset, NMI, IRQ,
SW1,2 et 3.

3ème cas : Le P.C. est initialisé avec le contenu des vecteurs d'initialisation qui se
Ce signal apparaît lorsque le microprocesseur rencontre l'instruction de trouvent aux adresses $FFFE et
synchronisation externe (niveau bas sur SYNC). Il attend alors cette $FFFF. Ce contenu représente l'adresse du début du programme qui sera
synchronisation sur une des lignes d'interruption. Les bus sont en haute exécuté par le microprocesseur.
impédance pendant ce temps.
Dernier cas :
Correspond à l'arrêt du microprocesseur (niveau bas sur HALT). Le
microprocesseur laisse la gestion des bus des données et des adresses à
un circuit annexe (contrôleur de DMA). Les bus sont en haute
impédance. La ligne BA au niveau haut indique que les bus sont en haute
Un niveau bas sur la broche HALT provoque l'arrêt du
impédance.
microprocesseur (mais à la fin de l'exécution de l'instruction en cours).
Il n'y a pas perte des données. (BA = BS = 1)
RESET du microprocesseur
Dans ce cas :
Un niveau bas sur la broche d'initialisation RESET entraîne une
les demandes d'interruption IRQ et FIRQ sont inhibées
réinitialisation complète du circuit
les demandes d'accès direct (DMA) à la mémoire sont autorisée.
Conséquences :
les demandes d'interruptions RESET et NMI sont prises en compte mais
l'instruction en cours est arrêté
leur traitement est différé
le registre de pagination (DP) est mis à zéro
les interruptions IRQ et FIRQ sont masquées l'interrruption non
masquable NMI est désarmée
Pour être active cette ligne doit être maintenue à un niveau bas durant
un temps suffisamment long (plusieurs cycles d'horloge).

4|Page
Fonctionnement des microprocesseurs :
Exemple d’Architecture du microprocesseur : 6809

Architecture interne du 6809 : ➢ 2 registres pointeurs de pile U et S. U (User) est utilisé uniquement
par le programmeur. S (System) par le système pour les
opérations de sauvegarde en cas d'interruption ou de saut à un
sous-programme (Adresse de retour). La pile est un emplacement
ou le microprocesseur sauvegarde le contenu de ses registres
internes pendant un certain temps. Elles opèrent en mode dernier
entré-premier sorti (LIFO : Last In - First Out). Le pointeur de pile
pointe vers la dernière entée effective de la pile.
➢ Un compteur programme PC ( Program Counter), sur 16 bits,
pointe l'adresse mémoire à laquelle le 6809 doit exécuter une
instruction.
➢ Un registre "codes conditions" CC, affichant en permanence l'état
de ces bits. Le contenu du registre d'état est essentiellement
conditionné par l'ALU.

• Le bits C (Carry - BO) est positionné lors d'une opération


arithmétique uniquement. Il est à 1 dans le cas d'une
addition dont le résultat est supérieur à 255 ($FF) ou
lorsque le résultat d'une soustraction (SUB, NEG, CMP,
SBC) est positif. Dans le cas de l'instruction MUL (A
Le 6809 possède plusieurs registres utilisés pour la manipulation et le multiplié par B, résultat sur 16 bits dans D), CARRY est
traitement des données. Ils sont: égal au bit B7 de D.

➢ 2 accumulateurs de 8 bits A et B transformables en 1 • Le bit V (oVerflow - B1) est le résultat d'un OU EXCLUSIF
accumulateur de 16 bits, D. Ils sont utilisés pour les instructions entre les retenues arithmétiques de B6 et de B7. Les
arithmétiques, logiques et de chargement de données 8 bits (ou 16 opérations logiques de chargements, de stockages et de
bits) en mémoire. Ils sont pour cela entièrement identiques. transferts positionnent V à 0. Seules les opérations
L'accumulateur D est en fait la concaténation de A et B, le comme ADD, ADC, SUB, SBC, NEG et CMP
registre A représentant les poids forts (bits 8 à 15) et B les poids positionnent V à la valeur appropriée.
faibles (bits 0 à 7). • Le bit Z (Zéro - B2) est l'indicateur d'un résultat nul. Toutes
➢ 2 registres d'index X et Y, sur 16 bits. Ils permettent d'adresser les instructions positionnent ce bit.
tout l'espace mémoire avec en plus la capacité d'être pré- • Le bit N (NEGATIVE - B3) indique un résultat négatif. Pour
décrémenté ou post-incrémenté pour faciliter le traitement de toutes les instructions, N prend la valeur du bit de poids
variables en tables. fort de l'opérande ou de l'accumulateur en mouvement. Il

5|Page
Fonctionnement des microprocesseurs :
Exemple d’Architecture du microprocesseur : 6809

est très utile lors de travaux signés sur des entiers compris Les modes d'adressage sont :
entre +127 et -128.
- l’adressage inhérent ou implicite
• Le bit I (Interrupt -B4) autorise lorsque il est à 0 le - l’adressage immédiat
traitement des interruptions IRQ et les dévalident quand il
est à 1. Ce bit est uniquement manipulé par l'utilisateur - l’adressage étendu
mais est positionné à 1 par un RESET . - l’adressage étendu indirect
• Le bit H (Half-carry - B5) est un bit de demi-retenue entre - l’adressage direct
le quartet faible et le quartet fort de A ou B.
- l’adressage par registre
• Le bit F (Fast interrupt - B6) conditionne le traitement de la - l’adressage indexé direct
ligne FIRQ. Il est à 0 après un RESET et dans ce cas
FIRQ est dévalidée. Si l'utilisateur le force à 1, FIRQ est - l’adressage indexé indirect
traitée. - l’adressage relatif
• Le bit E (B7) est l'indicateur de sauvegarde partielle lié à la ➢ L'adressage inhérent
ligne d'interruption FIRQ. Lorsqu'il est à 0 après un L’adressage inhérent est utilisé par les instructions qui agissent
RESET seulement, une partie des registres internes sont .seulement sur les registres internes du microprocesseur. Le code
sauvegardés pendant le traitement de l'interruption. opératoire contient toute l'information nécessaire à l'exécution de
Lorsqu'il est à 1, tous les registres sont sauvegardés dans l'instruction.
la pile système. Ex: ABX, ASLA, RORA, etc.
➢ L'adressage immédiat
➢ Un registre de "page mémoire" DP (Direct Page), sur 8 bits, est
Le code opératoire est directement suivi par un opérande de 1 ou
utilisé pour adresser des pages en mémoire. Une page est un bloc
2 octets.
de 256 mots. Aussi les emplacements mémoire 0 à 255 forment la
Ex: CMPA #$2B06 --> Comparaison de A avec la valeur hexa
page 0 de la mémoire. Le 6809 possède un bus d'adresse de 16
2B06;
bits, cela donne 256 pages. Le registre DP spécifie le numéro de
ADDB #%1001100 --> Addition de la valeur binaire 1001100 à B.
page, c'est à dire les 8 bits de poids fort d'une adresse. Les 8
autres bits sont indiqués par l'instruction à exécuter. Le ➢ L'adressage direct
registre DP permet une exécution plus rapide des programmes. Il Il permet en collaboration avec le registre DP de charger un
est automatiquement remis à 00 par un RESET. accumulateur avec le contenu de n'importe quelle adresse
mémoire.
Ex: Avec DP = 00
Modes d’adressages du 6809 : LDA < $00 charge A avec le contenu de l'adresse $0000;
Le microprocesseur 6809 possède 59 instructions de base. Combinées CMPX < $35 compare X avec le contenu des adresses $0035 et
$0036.
avec le jeu des modes d’adressage (9 au total), elles fournissent 1464
codes opératoires différents.

6|Page
Fonctionnement des microprocesseurs :
Exemple d’Architecture du microprocesseur : 6809

➢ L'adressage étendu BX ajoute l"accumulateur B à X (non signé)


Il permet d'atteindre toute la mémoire mais avec un opérande à 2 ADCA, ADCB addition mémoire-accumulateur avec retenue
octets. ADDA, ADDB addition mémoire-accumulateur sans retenue
Ex: LDA $5100 --> charge A avec le contenu de l'adresse $5100. ADDD addition mémoire avec accumulateur D (16 bits)
➢ L'adressage étendu indirect ANDA, ANDB ET logique mémoire-accumulateur
C'est le contenu de l'adresse citée comme opérande qui va ANDCC ET logique du CCR avec la mémoire
indiquer l'adresse mémoire. ASL, ASLA, ASLB décalage à gauche
Ex: On a à l'adresse $0100 de la mémoire la valeur $35 et ASR, ASRA, ASRB décalage à droit
l'adresse $0101 contient la valeur $B7. BCC, LBCC branchement si pas de retenue (bit C)
LDA [$1000] ---> CHARGE A avec le contenu de l'adresse $35B7. BCS, LBCS branchement si retenu (bit C)
BEQ, LBEQ branchement su égal à zéro (bit Z)
➢ L'adressage relatif court
BGE, LBGE branchement si supérieur ou égale à zéro
Il permet d'atteindre toute la mémoire par un déplacement de +127
BGT, LBGT branchement si supérieur à zéro
ou -128 octets.
BHI, LBHI branchement si plus grand que
Ex: A l'adresse $00FE on a l'instruction BRA $0110 Branchement
à l'adresse $0110. BHS, LBHS branchement si plus grand ou égale à
($0110(de BRA $0110) - $0100 (de PC) = $0010 cette valeur est BITA, BITB test d'un bit mémoire-accumulateur
ajoutée au compteur programme lors de l'exécution) BLE, LBLE branchement si inférieur ou égale à zéro
BLO, LBLO branchement si plus petit que
➢ L'adressage relatif long BLS, LBLS branchement si plus petit ou égale à
Même principe que l'adressage relatif court mais permet BLT, LBLT branchement si inférieur à zéro
d'atteindre toute la mémoire par un déplacement de +32767 à - BMI, LBMI branchement su négatif (bit N)
32768. BNE, LBNE branchement su différent de zéro (bit Z)
Ex: LBEQ $2000 --> Branche le déroulement à l'adresse $2000 si BPL, LBPL branchement si positif (bit N)
le bit Z de CC est positionné.
BRA, LBRA branchement inconditionnel
➢ L'adressage indexé BRN, LBRN branchement n'ayaint jamais lieu ??????
On utilise un registre d'index de 16 bits qui spécifie une base à BSR, LBSR branchement à un sous-programme
laquelle on ajoute un déplacement signé de 5, 8 ou 16 bits. BVC, LBVC branchement si pas de dépassement (bit V)
➢ L'adressage indexé indirect BVS, LBVS branchement si dépassement (bit V)
Le registre d'index contient l'adresse effective de l'octet à CLR, CLRA, CLRB mise à zéro mémoire ou accumulateur
manipuler. CMPA, CMPB comparaison mémoire-accumulateur
CMPD comparaison mémoire-accumulateur D (16 bits)
CMPS, CMPU comparaison pointeur de pile-mémoire
Jeux d’instruction du 6809 : CMPX, CMPY comparaison index-mémoire
COM, COMA, complémentation mémoire ou accumulateur
COMB
CWAI ET logique di CCR et attente d'interruption

7|Page
Fonctionnement des microprocesseurs :
Exemple d’Architecture du microprocesseur : 6809

DAA ajustement décimale de A SUBA, SUBB soustraction accumulateur mémoire sans retenue
DEC, DECA, DECB décrémentation de 1 mémoire ou accumulateur SUBD soustraction D-mémoire (16 bits)
EORA, EORB OU exclusif mémoire-accumulateur SW11, SW12, SW13 interruption par logiciel
EXG D,R echange de D et de R SYNC synchronisation avec une interruption
EXG R1,R2 échange de R1 et R2 (R1, R2 = A, B, CC, DP) TFR D,R transfert de D dans R
INC, INCA, INCB incrémentartion de 1 mémoire ou accumulateur TFR R,D transfert de R dans D
JMP saut inconditionnel TFR R1,R2 transfert de R1 dans R2
JSR saut à un sous-programme TST, TSTA, TSTB test d'une mémoire ou accumulateur
LDA, LDB chargement d'un accumulateur à partie de la
mémoire
LDS, LDU chargement de la pile à partie de la mémoire
LDX, LDU chargement de l'ildex à partie de la mémoire
LEAS, LEAU chargement de l'adresse effective dans le pointeur de
pile
LEAX, LEAY chargement de l'adresse effective dans l'index
LSL, LSLA, LSLB décalage logique à gauche mémoire ou accumulateur
LSR, LSRA, LSRB décalage logique à droite mémoire ou accumulateur
MUL multiplication non signée (AxB=D)
NEG, NEGA, NEGB négation mémoire ou accumulateur
NOP pas d'opération réalisée
ORA, ORB OU logique mémoire-accumulateur
ORCC OU logique du CCR avec la mémoire
PSHS
PSHU
PULS
PULU
ROL, ROLA, ROLB rotation à gauche mémoire ou accumulateur
ROR, RORA, RORB rotation à droite mémoire ou accumulateur
RTI retour d'interruption
RTS retour de sous-programme
SBCA, SBCB soustraction accumulateur-mémoire avec retenue
SEX extension du signe B au travers de l'accumilateur A
STA, STB stockage accumulateur en mémoire
STD stockage de D en mémoire (16 bits)
STS, STU stockage de pointeru de pile en mémoire
STX, STY stockage de l'index en mémoire

8|Page

You might also like