Ensimag 1A Ensimag 1A Suivant l’adresse, le composant qui répond n’est pas forcément le même. Un système de décodage de l’adresse est placé entre le processeur et les périphériques. Seul le composant concerné par l’adresse répondra à la requête du microprocesseur (les autres resteront en haute impédance) Cours 10 : Le processeur vu de l'extérieur Le composant « microprocesseur » n’est pas uniquement utilisé au sein des PC. De plus en plus les objets qui nous entourent sont truffés de microprocesseurs de la voiture au téléphone portable en passant par la chaudière et la télévision. L’objectif de ce cours est de comprendre son rôle, ce qu’il est capable de faire et comment il communique avec son environnement. Afin d’illustrer certains points, nous utiliserons le processeur présent dans le PIC16F84 utilisé en TP. 1. Le processeur dans son environnement 1.1. Les composants qui l'entourent Le processeur est l’élément central d’un système plus complet. Il s’agit en fait d’un automate complexe qui est capable d’exécuter des programmes présents en mémoire. Exemple pour le PIC (mémoire donnée). Pour jouer son rôle le processeur s’entoure des éléments suivants (présent sur la carte mère pour un PC): o Mémoire silicium ! Mémoire programme (ROM ou RAM) ! Mémoire donnée (RAM) o Périphériques ! Carte graphique ! Carte son ! Ports de communication • USB • Port parallèle • Port série ! Support de masse (IDE, SCSI, …) • Disque dur • CDROM/DVDROM 1.2. Les moyens de communication du processeur avec l'extérieur Les bus d’échange: - d’adresse - de données - de contrôle (écriture, lecture, …) - Autre (interruption, gestion des bus, …) 1.3. Plan mémoire. SV 2. Le langage du microprocesseur. Page 1/ 7 SV Page 2/ 7 Ensimag 1A Ensimag 1A 2.1. Le jeu d'instructions Le processeur est capable de comprendre un nombre limité d’instructions, l’ensemble des instructions que peut exécuter le processeur s’appelle le jeu d’instructions. W : Registre de travail PC : Program Counter (pointe l’instruction dans la mémoire programme à exécuter) STATUS : Registre d’état Ces instructions sont placées en mémoire (dans la mémoire « programme »). 2.1.1. Les principaux types d'instructions • Transferts de données o ST o LD o MOV o … • Opérations o Arithmetiques : ADD, SUB, MULT, DIV, NEG, INC, DEC, … o Logique : AND, OR, NOT, RL, RR o … • Sauts o JMP o GOTO o … • Sauts conditionnels o Jcc (cc=Z, NZ, C, NC, …) • Appels de sous procédures o CALL o RETURN o Registres 2.1.3. Quelques exemples de mode d'adressage. Une instruction peut être déclinée suivant plusieurs modes d’accès aux registres ou à la mémoire. Pour illustrer ce point nous prendrons l’instruction MOV • Valeur immédiate o MOV $12,%Ri 2.1.2. Les registres Le processeur dispose, en interne, d’un nombre limité de cases mémoires qui sont appelées Registres. Ces Registres permettent de faire des opérations au sein du processeur. Adressage implicite (entre registre) (DEST=Registre) o MOV %Ri,%Rj • Adressage direct (DEST =Ad) o MOV %Ri, AD • Adressage indirect o MOV %Ri,(AD) • Adressage direct basé sur un registre o MOV %Ri,(%Rj) 2.1.4. Exemple du PIC • MOVWF f • RRF f,d • MOVLW k • GOTO k Les registres principaux Registre PC ou IP ou CO : Registre de travail ou accumulateur : Registre d’état : 2.2. Codage des instructions 2.2.1. Principe Chaque instruction est codée en mémoire suivant un format défini par les concepteurs du processeur. Registres polyvalents : Pointeur de pile : Suivant l’instruction concernée la taille du codage peut être différent. Registre d’indexation : … D’une manière générale l’instruction aura la forme suivante : Mode d’adressage Paramètres Code Opération Chaque champ pouvant être de taille variable suivant les cas. Exemple PIC SV • Page 3/ 7 SV Page 4/ 7 Ensimag 1A Ensimag 1A 2.2.2. Exemple du PIC 2.4. Exemple – Chenillard Source assembleur org 0x0A Debut boucle MOVLW 0x80 MOVWF PORTB RRF PORTB,1 GOTO boucle Contenu de la mémoire Exemple : RRF PORTB, f se code Adresse 000A 000B 000C 000D 2.3. Langage de haut niveau, Langage assembleur, langage machine. SV Page 5/ 7 OpCode 3080 0086 0C86 280C OpCode en binaire 11 0000 1000 0000 00 0000 1000 0110 00 1100 1000 0110 10 1000 0000 1100 Instruction correspondante MOVLW 0x80 MOVWF 6 RRF 6,1 GOTO 0xC 3. Le travail de “l'automate microprocesseur” 3.1. Echanges lors de l'exemple SV Page 6/ 7 Ensimag 1A 3.2. Algorithme réalisé par le processeur lors de l'exécution d'un programme : PC : Le pointeur de programme AD : La valeur du bus adresse RI : Le registre instruction (enregistre dans le processeur la valeur de l’instruction à exécuter) Le travail du processeur est le suivant : SV Page 7/ 7