CHAPITRE III: LOGICIEL d’un µContrôleur Unité centrale de traitement (CPU) Le C

CHAPITRE III: LOGICIEL d’un µContrôleur Unité centrale de traitement (CPU) Le CPU peut être considéré comme le «cerveau» de l'appareil. Il est chargé de 1. récupérer l’instruction d'exécution, 2. décodage de cette instruction, 3. puis exécution de cette instruction. Le CPU travaille parfois en conjonction avec l'ALU pour terminer l'exécution de l'instruction (dans le cas des opérations arithmétiques et logiques). Le CPU contrôle le bus d'adresse de la mémoire de programme, le bus d'adresse de la mémoire de données et accède à la pile. Horloge d'instructions Chaque cycle d'instruction (TCY) comprend quatre cycles Q (Q1-Q4). Le temps de cycle Q est le même que le temps de cycle de l'oscillateur du composant (TOSC). Les cycles Q fournissent le moment de L’accès au Décodeur, La lecture, le traitement les données, L’écriture, etc., de chaque cycle d'instruction. Le diagramme suivant montre la relation entre les cycles Q et le cycle d'instruction. Chaque cycle d'instruction (Tcy) est composé de quatre cycles Q (Q1-Q4). Le cycle Q est le même que le cycle d'oscillation du composant (TOSC). Les quatre cycles Q qui composent un cycle d'instructions (TCY) peuvent être généralisés comme: Q1: Cycle de décodage des instructions ou NOP Q2: Cycle de lecture des instructions ou aucune opération Q3: Traitement des données Q4: cycle d'écriture des données d'instruction ou aucune opération Chaque instruction affichera une opération détaillée du cycle Q pour l'instruction. Q Cycle Activity : micro opération la relation entre les cycles Q et le cycle d'instruction. Operation of the ALU and W Register Unité logique arithmétique (ALU) Les microcontrôleurs PICmicro contiennent une ALU 8 bits et un registre de travail 8 bits. L'ALU (l’unité arithmétique et logique) est à usage général. Elle exécute des fonctions arithmétiques et booléennes entre les données dans le registre de travail et dans tout fichier de registre. L'ALU a une largeur de 8 bits et est capable d'opérations d'addition, de soustraction, de décalage et logiques. Les opérations arithmétiques sont de nature complément à deux. En deux opérandes instructions, généralement un opérande est le registre de travail (registre W). L'autre opérande est un fichier registre ou une constante immédiate. Exple: MOVWF FSR (W →FSR) & MOVLW 0x25 0x25 →W Dans les instructions d'opérande unique, l'opérande est soit le registre W ou un registre de fichiers. Le registre W est un registre de travail 8 bits utilisé pour les opérations ALU. Ce n'est pas un registre adressable. Selon l'instruction exécutée, l'ALU peut affecter les valeurs de Carry (C), Digit Carry (DC) et Zero (Z) bits dans le registre STATUS. Les bits C et DC fonctionnent comme un bit d'emprunt, respectivement, en soustraction. Voir les instructions SUBLW et SUBWF pour exemples. III-1 Organisation et utilisation du jeu d’instructions III-1-1 Les types d’instructions Il existe 4 types d’instructions : III-1-2 Les instructions « orientées octet » Ce sont des instructions qui manipulent les données sous forme d’octets. Elles sont codées de la manière suivante : Format des Instructions orientées Octets ou Bytes -6 bits pour l’instruction : logique, car comme il y a 35 instructions, il faut 6 bits pour pouvoir les coder toutes -1 bit de destination(d) pour indiquer si le résultat obtenu doit être conservé dans le registre de travail de l’unité de calcul (W pour Work) ou sauvé dans l’opérande (F pour File). - Reste 7 bits pour encoder l’opérande (File) 7 bits ne donnent pas accès à la mémoire RAM totale, donc voici ici l’explication de la division de la RAM en deux banques. Il s’agit en réalité des bits RP0 et RP1 du registre STATUS. Donner pour chacun des cas le contenu de W= xxx FSR=xxx Et pour le dernier exple. Contents of Address (FSR)=xxx Donner le contenu des registre ou mémoires affectées après exécution de l’instruction. FLAG_REG=xxx W=xxx FSR=xxx Contents of Address (FSR)=xxxx Donner pour chacun des cas le test fait et le PC=xxx Donner, dans chacun des cas W=xxx Voici ce que ça donne : movlw 0x13 ; charger 0x13, soit B’10011’, donc b4=1, ; et b3=0 Remarques Le jeu d’instructions du 16F876 est strictement identique à celui du 16F84, et, de ce fait, présente les mêmes limitations. Une de celle-ci, la plus gênante, est le nombre de bits qui accompagne les instructions de saut, comme le « goto ». Rappelez-vous que les instructions de saut sont de la forme: Op-code + 11 bits de destination. Or, les sauts sur 11 bits ne permettent « que » des sauts à l’intérieur d’une page de 2K Mots. Notre processeur utilise un maximum de 8Kmots de programme, et nécessite donc 2 bits supplémentaires pour accéder à l’intégralité de la mémoire programme. Le schéma-bloc donnant bien une largeur de bus d’adressage de 13 bits. Pour résumer, le saut s’effectuera à l’adresse donnée en argument complétée en poids fort par les 2 bits b4 et b3 de PCLATH. Les bits 2 à 0 de PCLATH sont inutilisés ici. uploads/Litterature/ cours-3-chapitre-iii-jeux-d-instructions-2020-pdf.pdf

  • 11
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager