Vous êtes sur la page 1sur 30

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 Unité de Mémoire


mémoire contrôle 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

B
S
O
RAM FLASH F
O
R
T

0x00000000 0x1D000000 0x1F800000 0x1FC00000 0xFFFFFFFF

Gabriel Cormier (UdeM) GELE5343 Chapitre 5 Hiver 2013 19 / 30


Mémoire

Partitions RAM

RAM RAM RAM RAM


Kernel Kernel User User
(Data) (Prog) (Data) (Prog)

0x00000000 BMXDKDBA BMXDUDBA 0xBF000000 0xBF000000 0xFFFFFFFF


+BMXDUDBA +BMXDUPBA

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 Espace kernel


0x00000000 0x80000000

RAM RAM Générer


User User User
FLASH immédiatement une
(Data) (Prog) exception si accès!

0x7D000000 0x7F000000+ 0x7F000000+ 0xFFFFFFFF


BMXDUDBA BMXDUPBA

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

FLASH B
FLASH S
RAM RAM Non- O
Cache F
(Data) (Prog) cache O
(Kseg0) R
(Kseg1) T

0x00000000 0x7F000000+ 0x9D000000 0xBD000000 0xBF800000


BMXDUDBA 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

X X Y Y
CPU DMA
Cache Mémoire externe

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 Mémoire Destination


1/2/3/4 bytes 1/2/3/4 bytes

Début transfert Arrêt transfert


IRQ IRQ
DMA

Logiciel

Début transfert Arrêt transfert

Gabriel Cormier (UdeM) 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

Contrôleur IRQ Système


Interruption

Bus
périphérique Décodeur
Contrôle CH0 I0
d’adresse

Contrôle CH1 I1
Interface
.. bus
.
Contrôle
global Contrôle CHn In
(DMACON)
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

Vous aimerez peut-être aussi