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