Formations Système Embarqué & Informatique Industrielle Module Microcontrôleur Design Par : ATOUI HAMZA
L’architecture du MID-RANGE. Le µP (CPU) MID-RANGE Le microprocesseur. L’architecture du MID-RANGE. Les modes d’adressage & organisation de l’espace DATA/IO.
Le microprocesseur (µP) Le µP est le résultat de l’intégration de plusieurs circuits LSI/VLSI pour exécuter un traitement (SOFTWARE) existe dans une mémoire. Le traitement est un ensemble d’instructions l’une après l’autre (séquence), dont le µP prend un temps pour exécuter. Chaque instruction prend une phase ou plusieurs pour exécuter; on général, ces phase sont (FETCH/DECODE,LECTURE DES OPERANDES, EXECUTION, ECRITURE). FETCH/DECODE : phase de recherche de l’instruction dans la mémoire puis décoder . LECTURE DES OPERANDES : phase optionnelle, si l’instruction a besoin des opérandes, le µP charge ces opérandes à partir de la mémoire ou un port (exemple : adresse d’une case mémoire, constante…). EXECUTION : phase de réalisation de l’opération demander dans l’instruction (exemple : addition, soustraction…). ECRITURE : phase optionnelle, si l’instruction a besoin d’écrire le résultat dans une case mémoire ou un port. N.B : chaque phase prend un ou plusieurs top d’horloge.
Exemple pour comprendre le nombre de top d’horloge par phase On prend la phase exécution de l’opération du transfert de données entre deux registres internes du µP (AB). CLOCK (CLK) REG A REG B CSA RDA CSA WRA CSB RDB CSB WRB AND AND AND AND INTERNAL DATA BUS Passeur commandé par la porte logique AND RDx : ordre de lecture registre, WRx : ordre d’écriture registre, et CSx : ordre de connexion avec le bus data.
Exemple pour comprendre le nombre de top d’horloge par phase Après l’opération du transfert les signaux en question sont : CSA, RDA, CSB et WRB. Le système évolue chaque franc montant de signal CLOCK (CLK) (RISING EDGE OF CLK SIGNAL). Quelle est la séquence qu’on va appliquer sur les signaux en question pour faite l’opération du transfert ?
Exemple pour comprendre le nombre de top d’horloge par phase Initialement tous les signaux sont à l’état bas L’étape 1 : le registre A fait une connexion avec le data bus par (CSA = 1). L’étape 2 : le registre A en mode lecture (source) par (RDA = 1). L’étape 3 : le registre B fait une connexion avec le data bus par (CSB = 1). L’étape 4 : le registre B en mode écriture (destination) par (WRB = 1). Finalement, j’ai besoin de 4 francs pour réaliser l’opération du transfert entre le registre A & B.
Exemple pour comprendre le nombre de top d’horloge par phase Chronogramme: CLK CSA RDA CSB WRB AA REG A AA DATA BUS 55 AA REG B
Exemple pour comprendre les différentes phases d’exécution d’une instruction Exécution de l’instruction ADD MEM,R0 (2) READ MEM (1) FETCH/DECODE PC ADR REG ADD MEM,R0 REGS BANK IR ALU DECODER DATA CODE (3) EXECUTE ADD (4) WRITE MEM
L’architecture du MID-RANGE DAU DATA/IO CODE STACK ZONE (8 LEVELS) 512 BYTE 8Kx14 bits RP1 RP0 IR(6:0) 9 MUX PCH PCL 9 IRP FSR 13 9 PC 5 PCLATH 8 bits INTERNAL DATA BUS 7 8 5 CAU 8 8 8 CCU INTCON 8 EXU MUX 8 DECODE & CONTROL UNIT -DCU- 8 8 8 ALU 3 WREG STATUS IR IR(7:0) 14 MID-RANGE µP
L’architecture du MID-RANGE EXECUTION UNIT (EXU) : est composée de registre WREG, l’ALU et le registre STATUS. DATA ADDRESSING UNIT (DAU) : est composée de registre FSR plus 3 bits RP0, RP1 et IRP. CODE ADDRESSING UNIT (CAU) : est constituée d’une pile de 8 niveaux (STACK ZONE), le registre compteur ordinal (PC), et le registre PCLATH. COMMAND & CONTROL UNIT (CCU): est formée de registre d’instruction (IR), de registre d’interruption (INTCON) et l’unité la plus compliquée dans notre µP (DCU), cette dernière génère les différents signaux pour exécuter une instruction.
L’architecture du MID-RANGE La fréquence de l’horloge d’entrée du MID-RANGE est divisée par 4 pour générer 4 phases sont (Q1,Q2,Q3,Q4), donc le cycle machine est 4 fois plus long que la période d’horloge.
L’architecture du MID-RANGE D’après la figure précédente le MID-RANGE utilise un pipeline à 2 étages (FETCH/EXECUTION recherche de l’instruction suivante/exécution de l’instruction en cours). Dans l’étage FETCH : le MID-RANGE incrémente le PC à la fin de Q4. Dans l’étage EXECUTION : le MID-RANGE fait 4 phases: Q1 : pour décoder d’instruction. Q2 : pour lire les opérandes (case mémoire ou constante) s’il existe. Q3 : pour réaliser l’opération demander dans l’instruction. Q4 : pour ranger le résultat vers la destination (case mémoire ou WREG).
DATA/IO SPACE ADDRESSING MODE Les modes d’adressage Le MID-RANGE utilise 3 modes d’adressage sont : ADDRESSING MODES DATA/IO SPACE ADDRESSING MODE IMMEDIAT MODE DIRECT MODE INDIRECT MODE
IMMEDIAT MODE Ce mode fait la manipulation des valeurs immédiates avec le WREG (transfert, opération A/L) WREG K (constante sur 8bits) WREG K (op) WREG (op : opération A/L). Le format de l’instruction est le suivant:
IMMEDIAT MODE L’unité d’exécution devienne comme suit: ALU Exemple : INTERNAL DATA BUS 8 8 MUX 8 ALU IR 7 3 Exemple : MOVLW 0x50 ; transfert ADDLW 0x17 ; addition WREG STATUS 8
DATA/IO SPACE ADDRESSING MODE Ce mode en général fait la manipulation de l’espace DATA/IO avec le WREG (transfert, opération A/L) Ce mode comprend le mode direct et le mode indirect par le registre FSR. Le format de l’instruction pour ces modes est: Vous remarquez que l’adresse d’une case mémoire est sur 7 bits, et notre unité d’adressage DATA/IO du MID-RANGE sortir 9 bits, donc comment faire pour les 2 derniers bits??? (notre instruction présente une limite d’accès de 128 octets seulement ) Et aussi, on a le même format d’instruction pour les deux modes, donc comment différencier entre ces deux modes???
DATA/IO SPACE ADDRESSING MODE Dans ce mode l’unité d’exécution devienne comme suit: 7 8 = BANK 0 BANK 1 BANK 2 BANK 3 RP1 RP0 IR(6:0) Address To 127 RP1,0 = 00 IRP = 0 Address 128 To 255 RP1,0 = 01 IRP = 0 Address 256 To 383 RP1,0 = 10 IRP = 1 Address 384 To 511 RP1,0 = 11 IRP = 1 9 Direct address MUX 9 1 IRP FSR 9 DATA IN DATA/IO space 512 byte Indirect address 8 8 IR(7:0) WREG 8 MUX ALU STATUS Bit IR(7) « d » DATA OUT 1 8 8
DATA/IO SPACE ADDRESSING MODE D’après la figure précédente : Dans le mode d’adressage direct, on peut considérer le DATA/IO SPACE comme une barrette de RAM à 4 circuits intégrés, dont chaque circuit a une taille de 128 octets. Dans le mode d’adressage indirect, on peut considérer le DATA/IO SPACE comme une barrette de RAM à 2 circuits intégrés, dont chaque circuit a une taille de 256 octets. Le mécanisme de pointage vers le DATA/IO SPACE est : IF IR(6:0) = « 0000000 » THEN MEM ADDRESS [IRP:FSR]; -INDIRECT- ELSE MEM ADDRESS [RP1:RP0:IR(6:0)]; -DIRECT- END IF
Exemple Transférer le contenu de la case mémoire d’adresse 250 vers le WREG par le mode direct et indirect.
Solution de l’exemple L’adresse 250 existe dans la BANK1 DIRECT MODE INDIRECT MODE L’adresse 250 existe dans la BANK1 250 011111010. RP1,0 01. ADR FILE 1111010. MOVF 0x7A,W L’adresse 250 existe dans la première partie 256 octets. 250 011111010 IRP 0. FSR 11111010. MOVLW 0xFA MOVWF FSR MOVF 0x00,W
GRAPH D’ETAT DES MODES D’ADRESSAGES AU MOMENT DU TRANSFERT DE DONNEES MOVF FILE,F MOVF FILE,W LITERAL WREG FILE MOVLW K MOVWF FILE
Organisation de l’espace DATA/IO IRP 1 1 RP1,0 00 01 10 11 0x000 INDF 0x080 INDF 0x100 INDF 0x180 INDF 0x002 PCL 0x082 PCL 0x102 PCL 0x182 PCL 0x003 STATUS 0x083 STATUS 0x103 STATUS 0x183 STATUS 0x004 FSR 0x084 FSR 0x104 FSR 0x184 FSR 0x00A PCLATH 0x08A PCLATH 0x10A PCLATH 0x18A PCLATH 0x00B INTCON 0x08B INTCON 0x10B INTCON 0x18B INTCON 0x07F 0x0FF 0x17F 0x1FF BANK 0 BANK 1 BANK 2 BANK 3