Registres internes, traitement, alignement, Première Opérande, flags NZCV
Souvent une architecture RISC : Von Neumann et Harvard
Bus de données, bus d'adresse, instructions et 17 registres codés sur 32 bits
Les données en mémoire sont codées sur 8(byte), 16(half-word) ou 32(word) bits
Attention à l'alignement ! Un byte peut être sur toutes les adresses, un half-word sur les adresses multiples de 2 et un word sur les adresses multiples de 4.
Traitement en pipeline sur plusieurs étages grâce au multi-coeur
[...] a4 - a0 Mode CPSR a31 N BOUTISME (ENDIANNESS) BIG ENDIAN On écrit dans la mémoire dans le sens de la lecture Le poids fort est en tête, le poids faible est à l'adresse la plus élevée L'adresse de l'élément sera celle de l'octet de poids fort On écrit dans la mémoire dans le sens inverse de la lecture Le poids faible est en tête, le poids fort est à l'adresse la plus élevée L'adresse de l'élément sera celle de l'octet de poids faible LITTLE ENDIAN EXEMPLE D'ORGANISATION EN MEMOIRE On veut enregistrer le word : 0xFA017CD2 Adresses 0x02 0x06 0x0A 0x06 FA 0x 0x08 7C 0x09 D2 0x06 D2 0x07 7C 0x 0x09 FA Big Endian Little Endian CODAGE D'UNE INTRUCTION Toujours sur 32 bits, une instruction est une seule action a31 a28 Code condition a a a25 Forme opérande a24 a21 Code opération a20 Signé a19 - a16 1ère opérande a15 a12 Destination a11 a0 2ème opérande P a g e 2 5 Théo Gauchoux Architecture Processeur ARM ECRIRE UN PROGRAMME ASSEMBLEUR 1ERE ETAPE 2EME ETAPE 3EME ETAPE 4EME ETAPE 5EME ETAPE Algorithme Algorithme orienté assembleur (structures de contrôle sans le style étiquette) Déterminer les données utilisées et les registres associés Traduction des expressions complexes (arithmétiques et logiques) Traduction des expressions simples (déplacement vers un registre, somme) SYNTHAXE .{type} {val} Un registre général (r0,r7, ) Une valeur directe (#1,#-2,#0x06,#'a') La valeur mémorisée à l'adresse contenue dans L'adresse pointée par l'étiquette A Enregistrer en mémoire des valeurs (entre virgules) d'un certain type Type possibles : byte, hword, word, ascii, asciz (avec un 0 après l'enregistrement) Ex : la valeur 58 sur un octet .byte 58 .equ {val} Définit une constante. Cela permet d'obtenir la valeur {val} en appelant {nom} Ex : la constante ‘reponse_univers' = 42 .equ rep_univ OPERATIONS Rd : Destination Rn : Première Opérande Rs : Deuxième opérande On peut faire une condition en plaçant les 2 lettres appropriées après le mot-clé. On peut choisir une notation signée en plaçant un ‘s' à la fin du mot-clé. [...]
[...] @Notre tab fera donc 3 cases. @r14=pc+4 et on se branche sur ‘routine' @Instructions diverses @Se brancher après la routine pour pas la refaire @Instructions diverses @On retourne à ‘suite' (son adresse est dans r14) @Après ‘suite' on est arrivé sur ‘fin' tab: FAIRE UNE ROUTINE debut: bl routine suite: . b fin routine: . mov pc, r14 fin: STRUCTURES CONDITIONNELLES Nom Algorithme si alors sinon finsi selon : . [...]
[...] Ajouter après les pour décaler avant le transfert, juste Rn entre pour décaler après. STRUCTURES GENERALES GERER UN TABLEAU debut: ldr r0, =tab ldrb r1, add r0, r0, @On met dans r0 l'adresse du 1er élément du tab @On met dans r1 le byte du tab à l'adresse r0 @On avance d'1 adresse dans le tab (pointeur : r0) @Avancer de 2 adresses pour un tab en half-word @Avancer de 4 adresses pour un tab en word Ldrb r1, @On met dans r1 le new byte à l'adresse r0 .byte 12,36,57 @On met les enregistrement mémoire à la fin, ce @sera quand même exécuté avant les instructions. [...]
[...] Traitement en pipeline sur plusieurs étages grâce au multi-cœur VON NEUMANN MEMOIRE CPU Unifiée avec données et programmes Des registres généraux et spécialisés cpsr ) + un UAL (calculateur) d'adresses CPU BUS de données Mémoire Données Programmes HARVARD MEMOIRE CPU AVANTAGES Séparée, une pour les programmes, une pour les données Des registres généraux et spécialisés cpsr ) + un UAL (calculateur) Accès en parallèle à la mémoire, optimisation du CPU via Pipeline d'adresses Mémoire Programmes BUS de données CPU d'adresses BUS de données Mémoire Données CISC & RISC CISC RISC Complex Instruction Set Computer Permet de traiter des instructions complexes et longues des instructions) Reduced Instruction Set Computer Une architecture dédiée aux autres 20% des instructions de l'activité du CPU) Travail sur des registres internes Accès à la mémoire limité Traitements en parallèle via pipeline TRAITEMENT PIPELINE AVANTAGES Permet d'exécuter des tâches en parallèle (donc plus rapide) INCONVENIENTS Instructions qui prend plus d'un cycle ou modifie l'adresse actuelle de l'instruction Cycle du CPU Instruction A Instruction B Instruction C 1 Fetch A 2 Decode A Fetch B 3 Execute A Decode B Fetch C 4 Execute B Decode C 5 Execute C P a g e 1 5 Théo Gauchoux Architecture Processeur ARM REGISTRES INTERNES Ils peuvent contenir des adresses pour trouver des valeurs ou directement des valeurs, sur 32 bits REGISTRES GENERAUX REGISTRES SPECIALISES De r0 à r12, utilisable par le développeur De r13 à r15, le développeur ne devrait pas y toucher r13 / SP : Stack Pointer (l'adresse du sommet de la pile) r14 / LR : Link Register (l'adresse de l'instruction sur laquelle revenir après être allé dans une routine) r15 / PC : Program Counter (l'adresse de la prochaine instruction) Mémorise diverses informations (N,Z,C,V,Endian ) N = 1 si résultat négatif Z = 1 si résultat nul C = 1 si débordement en non signé (dernière retenue à V = 1 Si débordement en signé (deux dernières retenues différentes a30 a29 Z C Drapeaux a28 V . a19 - a16 GE[ Code Condition . [...]
[...] Pour effectuer une condition, on ajoute après la comparaison un branchement conditionnel. COMPARAISON cpm Rn, Rs BRANCHEMENT b{xx} Etiquette Si la condition est vérifiée, on saute vers Etiquette est l'un des indicateurs du tableau suivant HI GT Débordement CS VS Pas de débordement CC VC P a g e 3 5 Théo Gauchoux Non Signé Signé Architecture Processeur ARM TRANSFERTS MEMOIRE REGISTRE ldr Rd, On place le contenu de la mémoire à l'adresse Rn décalé de dans le registre Rd. [...]
Source aux normes APA
Pour votre bibliographieLecture en ligne
avec notre liseuse dédiée !Contenu vérifié
par notre comité de lecture