Assembleur Faculté I&C, André Maurer, Claude Petitpierre
INTRODUCTION
Logiciel utilisé Faculté I&C, André Maurer, Claude Petitpierre
MEMOIRE
Mémoire Faculté I&C, André Maurer, Claude Petitpierre
Mémoire adresses (sur 12 bits) => 2 12 =4096 lignes données sur 8 bits 0000 0000 0000 0101 0010 0000 0000 0001 1100 1100 0000 0000 0010 1111 0011 0000 0000 0011 1010 0011 0000 0000 0100 1011 1100............ 1111 1111 1111 0111 0001 adresses données
Lecture / écriture Faculté I&C, André Maurer, Claude Petitpierre
Ecriture Exemple: Mettre, à l adresse #088, la donnée #1F
Lecture Faculté I&C, André Maurer, Claude Petitpierre
Lecture (sur le bus de données)
REGISTRES
Registres Le registre PC (Program Counter) contient l adresse de l instruction à exécuter Les registres A,B,X et Y permettent de stocker (temporairement) de l information
FONCTIONNEMENT DU PROCESSEUR
Datapath Recherche de l instruction (fetch) Décodage et lecture des registres Exécute l instruction ou calcule l adresse Accès à la mémoire Ecriture dans les registres
Un exemple très simple Un programme d une seule instruction Mettre la constante H 12 dans le registre A: MOVE #H 12,A H 50 (0101 000) correspond à MOVE dans un registre H 12 Le reste de la mémoire est vide
MOVE #H 12,A Recherche de l instruction (fetch) Décodage et lecture des registres Exécute l instruction ou calcule l adresse Accès à la mémoire Ecriture dans les registres
Un autre exemple Inscrire la constante H 15, en mémoire, à l adresse H 009: MOVE #H'15,H'009
MOVE #H'15 H'009 Recherche de l instruction (fetch) Décodage et lecture des registres Exécute l instruction ou calcule l adresse Accès à la mémoire Ecriture dans les registres
PÉRIPHÉRIQUES
Périphériques adresse (sur 12 bits) => 2 12 =4096 lignes données sur 8 bits 0000 0000 0000 0101 0010 0000 0000 0001 1100 1100 0000 0000 0010 1111 0011 0000 0000 0011 1010 0011............ 1000 0000 0000 1000 1100 1000 0000 0001 0100 1100............ 1111 1111 1111 0111 0001 Mémoire vive (RAM) Mémoire morte (ROM) Périphérique Ecran
Affichage 7 segments Les adresses #C00 à C03 correspondent à l affichage 7 segments...... 1100 0000 0000 0011 1110 1100 0000 0001 0101 1011 1100 0000 0010 0000 0011 1100 0000 0011 0000 1111...... #C00 #C01 #C02 #C03
Affichage 7 segments Faculté I&C, André Maurer, Claude Petitpierre
Ecran bitmap Les adresses #C80 à #CDF correspondent à l écran bitmap
Ecran bitmap Faculté I&C, André Maurer, Claude Petitpierre
Le clavier Le clavier correspond à l adresse #C07 1000 0110 1: indique que la valeur n a pas encore été lue 6
La mémoire morte Les instructions écrites dans la mémoire morte (ROM) ne peuvent pas être modifiées. La mémoire morte peut être accédée en lecture, mais on ne peut pas écrire dans la ROM Pour le Dauphin: correspond aux adresses #800 à #BFF
UTILISATION DE LA PILE
Appel de routines CALL Addr : le PC prend l adresse Addr CALL, doit sauver l adresse de l instruction suivante, pour le retour 000 0101 0010 001 1100 1100 002 call H 009 003 1010 0011 004 1011 1100............ 009 0111 0001 010 0110 0010 011 RET
Appels imbriqués Il y a plusieurs adresses de retour à sauver => utilisation d une pile 000 0101 0010 001 1100 1100 002 call a 003 1010 0011 004 1011 1100...... a: 009 0111 0001 010 0110 0010 011 call b 012 0111 1111 013 RET...... b: 020 0101 1111 021 0111 0001 022 RET
la pile Un registre particulier, le stack pointer (SP), contient une adresse, à la fin de la mémoire vive. Ceci permet de gérer une pile, qui va, Ceci permet de gérer une pile, qui va, entre autres, stocker les adresses de retour
Exemple 000 0101 0010... 011 call 050 012 SP: 800 SP: 7FF 050 0111 0101 RET 7FF 012 800 pile
Exemple Faculté I&C, André Maurer, Claude Petitpierre
push - pop Faculté I&C, André Maurer, Claude Petitpierre
JEU D INSTRUCTIONS
Transferts, additions et soustractions
Opérations logiques et tests
Sauts, appels de routines et utilisation de la pile
OPTIMISATION DES PERFORMANCES: PIPELINE
Datapath Recherche de l instruction (RI) Décodage et lecture des registres (DEC) Exécute l instruction ou calcule l adresse (EX) Accès à la mémoire (MEM) Ecriture dans les registres (ER)
Sans optimisation programme instr 1 RI DEC EX MEM ER instr 2 instr 3 RI DEC EX MEM ER RI DEC temps
Optimisation Pourquoi attendre la fin de la 1 ère instruction pour commencer à exécuter la 2 ème? instr 1 RI DEC EX MEM ER instr 2 instr 3 Durant tout ce temps, la logique RI n est pas utilisée RI DEC EX MEM ER RI DEC temps
Pipeline Dès que la 1 ère partie de l instruction est exécutée (RI), commencer la 2 ème instruction instr 1 RI DEC EX MEM ER RI instr 2 DEC EX MEM ER instr 3 RI DEC EX MEM ER RI DEC EX MEM ER
Comparaison instr 1 RI DEC EX MEM ER instr 2 instr 3 RI DEC EX MEM ER RI DEC instr 1 RI DEC EX MEM ER instr 2 instr 3 RI DEC EX MEM ER RI DEC EX MEM ER temps