GELE5343 Chapitre 5 : Architectures
Transcription
GELE5343 Chapitre 5 : Architectures
GELE5343 Chapitre 5 : Architectures Gabriel Cormier, Ph.D., ing. Université de Moncton Hiver 2013 Gabriel Cormier (UdeM) GELE5343 Chapitre 5 Hiver 2013 1 / 30 Introduction Contenu 1 Introduction 2 Types d’architectures 3 MIPS 4 ARM 5 Atmel AVR 6 Autres considérations 7 Mémoire Gabriel Cormier (UdeM) GELE5343 Chapitre 5 Hiver 2013 2 / 30 Types d’architectures Types d’architectures 2 types principaux : Harvard et von Neumann Architectures d’accès mémoire et de bus Affectent la taille des mots et le minutage Gabriel Cormier (UdeM) GELE5343 Chapitre 5 Hiver 2013 3 / 30 Types d’architectures Architecture Harvard ALU Instructions mémoire Unité de contrôle Mémoire données I/O Mémoire instructions et mémoire données n’ont pas besoin d’être de même taille (bits) CPU peut lire une instruction et accéder la mémoire en même temps Adresses mémoire et données différentes Gabriel Cormier (UdeM) GELE5343 Chapitre 5 Hiver 2013 4 / 30 Types d’architectures Architecture Harvard modifiée Séparation entre données et instructions moins stricte Cache données et mémoire séparés, mais avec adressage commun (commun ARM et x86) : permet de déplacer du code comme des données. Chemin d’accès entre instructions et CPU pour avoir des instructions traitées comme données read-only (commun Atmel AVR) : permet à des données, comme strings ou tables de fonctions, d’être lues directement sans copier en mémoire ; nécessite des instructions spéciales. Gabriel Cormier (UdeM) GELE5343 Chapitre 5 Hiver 2013 5 / 30 Types d’architectures Architecture von Neumann CPU Mémoire I/O Bus de contrôle Bus d’adresses Bus de données Bus mémoire et données partagées : limite la vitesse CPU maintenant beaucoup plus rapide que bus : architecture peu utilisée maintenant Cache peut accélérer le système Gabriel Cormier (UdeM) GELE5343 Chapitre 5 Hiver 2013 6 / 30 MIPS MIPS MIPS : Compagnie qui licencie son design d’architecture RISC MIPS : Microprocessor without Interlocked Pipeline Stages RISC : Reduced Intruction Set Computing : Simplifier les instructions d’un microprocesseur pour obtenir une meilleure performance. Philosophie : chaque instruction devrait être exécutée en 1 cycle d’horloge Ex : Sony Playstation 2 Gabriel Cormier (UdeM) GELE5343 Chapitre 5 Hiver 2013 7 / 30 MIPS MIPS 32 registres pour accès rapide à des données (plus rapide que RAM) Utilisés pour accélérer les calculs Instructions de base sont en assembleur CPU effectue les calculs sur les registres seulement Ex : 1 registre contient l’adresse de la prochaine instruction à exécuter Gabriel Cormier (UdeM) GELE5343 Chapitre 5 Hiver 2013 8 / 30 MIPS Gabriel Cormier (UdeM) GELE5343 Chapitre 5 Hiver 2013 9 / 30 MIPS MIPS 6 catégories d’instructions Arithmétique : add, sub, mult, div et variantes Transfert de données : load, store, etc. Logique : and, or, xor, etc. Déphasage : shift droite ou gauche Conditionnel : branch Sauts : jump Gabriel Cormier (UdeM) GELE5343 Chapitre 5 Hiver 2013 10 / 30 MIPS MIPS 3 types d’instructions : R, I, J R : 3 arguments : 2 registres d’entrée, et 1 registre de sortie Ex : add $5, $3, $4 : additionne le contenu des registre 5 et 3, et place le résultat dans le registre 4 I : 3 arguments : 1 registre d’entrée, 1 registre de sortie et 1 valeur de 16 bits Ex : addi $5, $3, 5 : additionne 5 au contenu du registre 5 et place le résultat dans le registre 3 J : 1 argument (jump) : la nouvelle adresse Gabriel Cormier (UdeM) GELE5343 Chapitre 5 Hiver 2013 11 / 30 ARM ARM ARM : ARM Holdings, licencie son design RISC ARM : Advanced RISC Machines Licencie son design : ne fabrique pas ses propres microprocesseurs 16 registres de 32 bits Instructions de 32 bits Exécution conditionnelle pour boucles (meilleure performance pour petites boucles if) Méthode intégrée de contrôle de co-processeurs 2010 : 95% du marché des smartphones Ex : Nintendo DS, iPhone Gabriel Cormier (UdeM) GELE5343 Chapitre 5 Hiver 2013 12 / 30 Atmel AVR Atmel AVR Autre type d’architecture Supporte Java Virtual machine Instruction de 16 et 32 bits Architecture de type Harvard 15 registres de 32 bits Seulement vendu par Atmel Gabriel Cormier (UdeM) GELE5343 Chapitre 5 Hiver 2013 13 / 30 Autres considérations JTAG JTAG : Joint Test Action Group Standard IEEE 1149.1 Standard Test Access Port and Boundary-Scan Architecture : standard pour tester des microprocesseurs après l’assemblage Permet l’accès au CPU pour déboggage Parfois, permet l’accès à la mémoire flash Permet le scan des ports pour détecter des erreurs de soudure 4 ou 5 pins selon le modèle Disponible sur presque tous les microcontrôleurs modernes Gabriel Cormier (UdeM) GELE5343 Chapitre 5 Hiver 2013 14 / 30 Mémoire Mémoire MIPS : séparation de la mémoire pour applications de la mémoire du système d’exploitation MMU : Memory Management Unit Deux modes d’opération : utilisateur (user) et système (kernel) Pour le PIC32 : Applications pour systèmes embarqués MMU remplacé par FMT (Fixed Mapping Translation) et contrôleur BMX (Bus Matrix) Architecture von Neumann Gabriel Cormier (UdeM) GELE5343 Chapitre 5 Hiver 2013 15 / 30 Mémoire FMT Permet au PIC32 d’être conforme à la structure MIPS standard Simplifie le design d’outils et d’applications Permet la réutilisation de code MIPS Réduit la complexité et donc le coût du PIC 32 Gabriel Cormier (UdeM) GELE5343 Chapitre 5 Hiver 2013 16 / 30 Mémoire BMX Flexibilité de la partition mémoire Contrôle l’accès à la mémoire entre le CPU et la requête d’instructions Contrôle les requêtes DMA Gabriel Cormier (UdeM) GELE5343 Chapitre 5 Hiver 2013 17 / 30 Mémoire Gabriel Cormier (UdeM) GELE5343 Chapitre 5 Hiver 2013 18 / 30 Mémoire Adresses physiques PIC32 RAM 0x00000000 FLASH 0x1D000000 Gabriel Cormier (UdeM) S F R B O O T 0x1F800000 0x1FC00000 GELE5343 Chapitre 5 0xFFFFFFFF Hiver 2013 19 / 30 Mémoire Partitions RAM RAM Kernel (Data) 0x00000000 RAM Kernel (Prog) BMXDKDBA RAM User (Data) BMXDUDBA 0xBF000000 +BMXDUDBA RAM User (Prog) 0xBF000000 +BMXDUPBA 0xFFFFFFFF Code utilisateur protégé du code système Registre BMXPUDBA permet de diviser la mémoire Flash RAM peut être divisé en 4 blocs Permet l’exécution de code de la mémoire Gabriel Cormier (UdeM) GELE5343 Chapitre 5 Hiver 2013 20 / 30 Mémoire Partitions RAM Espace utilisateur 0x00000000 RAM User (Data) User FLASH 0x7D000000 Espace kernel 0x80000000 0x7F000000+ BMXDUDBA RAM User (Prog) 0x7F000000+ BMXDUPBA Générer immédiatement une exception si accès! 0xFFFFFFFF Partition mémoire en mode utilisateur Boot flash n’est pas mappé (protégé) Périphériques ne sont pas mappés (protégés) Gabriel Cormier (UdeM) GELE5343 Chapitre 5 Hiver 2013 21 / 30 Mémoire Partitions RAM Espace utilisateur Espace kernel 0x80000000 0xFFFFFFFF RAM (Data) 0x00000000 RAM (Prog) 0x7F000000+ BMXDUDBA FLASH Noncache (Kseg1) FLASH Cache (Kseg0) 0x9D000000 0xBD000000 S F R B O O T 0xBF800000 0xBFC00000 Partition mémoire en mode système Mode par défaut (le PIC32 n’est pas fait pour un OS !) Gabriel Cormier (UdeM) GELE5343 Chapitre 5 Hiver 2013 22 / 30 Mémoire DMA DMA : Direct Memory Access Nécessite 20 registres de contrôle Partage le bus système 32 bits du PIC32 Permet l’accès direct à la mémoire, sans interrompre le CPU Permet de transférer des blocs complets de mémoire aux périphériques Gabriel Cormier (UdeM) GELE5343 Chapitre 5 Hiver 2013 23 / 30 Mémoire DMA Le CPU démarre (autorise) le transfert de mémoire Pendant le transfert, le CPU peut faire autre chose Le CPU reçoit une interruption du DMA quand le transfert est complet Très utilisé : cartes graphiques, cartes réseau, cartes de son, etc. Utilisé dans les microprocesseurs à plusieurs coeurs Gabriel Cormier (UdeM) GELE5343 Chapitre 5 Hiver 2013 24 / 30 Mémoire DMA : Modes de fonctionnement Burst Bloc complet de données transféré d’un seul coup Cyclique Dans des systèmes où le CPU ne doit pas être désactivé pour le temps nécessaire à envoyer un bloc complet Transfert 1 mot à la fois Transparent Transfert de données seulement lorsque le CPU n’a pas besoin du bus de données Nécessite du hardware complexe pour déterminer si le CPU a besoin du bus Gabriel Cormier (UdeM) GELE5343 Chapitre 5 Hiver 2013 25 / 30 Mémoire Inconsistance cache X : ancienne valeur Y : nouvelle valeur CPU X X Y Cache Mémoire externe Y DMA Avec mémoire externe et cache, DMA peut générer des erreurs CPU peut accéder des valeurs fausses de mémoire Contrôler avec contrôleur ou par software Gabriel Cormier (UdeM) GELE5343 Chapitre 5 Hiver 2013 26 / 30 Mémoire PIC32 : DMA Mémoire Source 1/2/3/4 bytes Mémoire Destination 1/2/3/4 bytes Début transfert Arrêt transfert IRQ IRQ DMA Logiciel Début transfert Gabriel Cormier (UdeM) Arrêt transfert GELE5343 Chapitre 5 Hiver 2013 27 / 30 Mémoire PIC32 : DMA Taille de transfert Source et Destination indépendamment contrôlables Transfert initié par logiciel ou interruption Toutes les interruptions du PIC32 peuvent être utilisées Pointeurs séparés pour adresses Source et Destination Interruption peut être générée à mi-transfert ou fin de transfert Transfert peut être arrêté par IRQ ou logiciel (ou erreur d’adresse) Gabriel Cormier (UdeM) GELE5343 Chapitre 5 Hiver 2013 28 / 30 Mémoire PIC32 : DMA IRQ Système Contrôleur Interruption Bus périphérique Décodeur d’adresse Contrôle CH0 I0 Contrôle CH1 I1 Interface bus .. . Contrôle global (DMACON) Contrôle CHn In SEL Contrôle canaux Gabriel Cormier (UdeM) GELE5343 Chapitre 5 Hiver 2013 29 / 30 Mémoire PIC32 : DMA Plusieurs registres de contrôle du DMA : DMACON : Registre de contrôle principal DMASTAT : Registre de statut DMAADDR : Registre d’adresses DCRCCON : Registre de contrôle du CRC DCRCDATA : Valeur initiale du générateur CRC DCHxCON : Registre de contrôle du canal x Gabriel Cormier (UdeM) GELE5343 Chapitre 5 Hiver 2013 30 / 30