Upload
others
View
10
Download
0
Embed Size (px)
Citation preview
GELE5343 Chapitre 5 :Architectures
Gabriel Cormier, Ph.D., ing.
Universite 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 considerations
7 Memoire
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’acces memoire 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
Unite decontrole
Instructionsmemoire
Memoiredonnees
ALU
I/O
Memoire instructions et memoire donnees n’ont pas besoin d’etre dememe taille (bits)
CPU peut lire une instruction et acceder la memoire en meme temps
Adresses memoire et donnees differentes
Gabriel Cormier (UdeM) GELE5343 Chapitre 5 Hiver 2013 4 / 30
Types d’architectures
Architecture Harvard modifiee
Separation entre donnees et instructions moins stricte
Cache donnees et memoire separes, mais avec adressage commun(commun ARM et x86) : permet de deplacer du code comme desdonnees.
Chemin d’acces entre instructions et CPU pour avoir des instructionstraitees comme donnees read-only (commun Atmel AVR) : permet ades donnees, comme strings ou tables de fonctions, d’etre luesdirectement sans copier en memoire ; necessite des instructionsspeciales.
Gabriel Cormier (UdeM) GELE5343 Chapitre 5 Hiver 2013 5 / 30
Types d’architectures
Architecture von Neumann
CPU Memoire I/O
Bus de controle
Bus d’adresses
Bus de donnees
Bus memoire et donnees partagees : limite la vitesse
CPU maintenant beaucoup plus rapide que bus : architecture peuutilisee maintenant
Cache peut accelerer le systeme
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 instructionsd’un microprocesseur pour obtenir une meilleure performance.
Philosophie : chaque instruction devrait etre executee en 1 cycled’horloge
Ex : Sony Playstation 2
Gabriel Cormier (UdeM) GELE5343 Chapitre 5 Hiver 2013 7 / 30
MIPS
MIPS
32 registres pour acces rapide a des donnees (plus rapide que RAM)
Utilises pour accelerer 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 a executer
Gabriel Cormier (UdeM) GELE5343 Chapitre 5 Hiver 2013 8 / 30
MIPS
MIPS
6 categories d’instructions
Arithmetique : add, sub, mult, div et variantes
Transfert de donnees : load, store, etc.
Logique : and, or, xor, etc.
Dephasage : 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’entree, et 1 registre de sortie
Ex : add $5, $3, $4 : additionne le contenu des registre 5 et 3, etplace le resultat dans le registre 4
I : 3 arguments : 1 registre d’entree, 1 registre de sortie et 1 valeur de16 bits
Ex : addi $5, $3, 5 : additionne 5 au contenu du registre 5 et placele resultat 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
Execution conditionnelle pour boucles (meilleure performance pourpetites boucles if)
Methode integree de controle de co-processeurs
2010 : 95% du marche 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 considerations
JTAG
JTAG : Joint Test Action Group
Standard IEEE 1149.1 Standard Test Access Port and Boundary-ScanArchitecture : standard pour tester des microprocesseurs apresl’assemblage
Permet l’acces au CPU pour deboggage
Parfois, permet l’acces a la memoire flash
Permet le scan des ports pour detecter des erreurs de soudure
4 ou 5 pins selon le modele
Disponible sur presque tous les microcontroleurs modernes
Gabriel Cormier (UdeM) GELE5343 Chapitre 5 Hiver 2013 14 / 30
Memoire
Memoire
MIPS : separation de la memoire pour applications de la memoire dusysteme d’exploitation
MMU : Memory Management Unit
Deux modes d’operation : utilisateur (user) et systeme (kernel)
Pour le PIC32 :
Applications pour systemes embarquesMMU remplace par FMT (Fixed Mapping Translation) et controleurBMX (Bus Matrix)Architecture von Neumann
Gabriel Cormier (UdeM) GELE5343 Chapitre 5 Hiver 2013 15 / 30
Memoire
FMT
Permet au PIC32 d’etre conforme a la structure MIPS standard
Simplifie le design d’outils et d’applications
Permet la reutilisation de code MIPS
Reduit la complexite et donc le cout du PIC 32
Gabriel Cormier (UdeM) GELE5343 Chapitre 5 Hiver 2013 16 / 30
Memoire
BMX
Flexibilite de la partition memoire
Controle l’acces a la memoire entre le CPU et la requete d’instructions
Controle les requetes DMA
Gabriel Cormier (UdeM) GELE5343 Chapitre 5 Hiver 2013 17 / 30
Memoire
Adresses physiques PIC32
RAM FLASHSFR
BOOT
0x00000000 0x1D000000 0x1F800000 0x1FC00000 0xFFFFFFFF
Gabriel Cormier (UdeM) GELE5343 Chapitre 5 Hiver 2013 19 / 30
Memoire
Partitions RAM
RAMKernel(Data)
RAMKernel(Prog)
RAMUser
(Data)
RAMUser
(Prog)
0x00000000 BMXDKDBA BMXDUDBA 0xBF000000+BMXDUDBA
0xBF000000+BMXDUPBA
0xFFFFFFFF
Code utilisateur protege du code systeme
Registre BMXPUDBA permet de diviser la memoire Flash
RAM peut etre divise en 4 blocs
Permet l’execution de code de la memoire
Gabriel Cormier (UdeM) GELE5343 Chapitre 5 Hiver 2013 20 / 30
Memoire
Partitions RAM
UserFLASH
RAMUser
(Data)
RAMUser
(Prog)
Genererimmediatement uneexception si acces!
0x7D000000
0x00000000 0x80000000
0xFFFFFFFF0x7F000000+BMXDUDBA
0x7F000000+BMXDUPBA
Espace utilisateur Espace kernel
Partition memoire en mode utilisateur
Boot flash n’est pas mappe (protege)
Peripheriques ne sont pas mappes (proteges)
Gabriel Cormier (UdeM) GELE5343 Chapitre 5 Hiver 2013 21 / 30
Memoire
Partitions RAM
RAM(Data)
RAM(Prog)
FLASHCache
(Kseg0)
FLASHNon-cache
(Kseg1)
SFR
BOOT
0x00000000
0xFFFFFFFF
0x7F000000+BMXDUDBA
0x9D000000 0xBD000000 0xBF8000000xBFC00000
0x80000000
Espaceutilisateur Espace kernel
Partition memoire en mode systeme
Mode par defaut (le PIC32 n’est pas fait pour un OS !)
Gabriel Cormier (UdeM) GELE5343 Chapitre 5 Hiver 2013 22 / 30
Memoire
DMA
DMA : Direct Memory Access
Necessite 20 registres de controle
Partage le bus systeme 32 bits du PIC32
Permet l’acces direct a la memoire, sans interrompre le CPU
Permet de transferer des blocs complets de memoire aux peripheriques
Gabriel Cormier (UdeM) GELE5343 Chapitre 5 Hiver 2013 23 / 30
Memoire
DMA
Le CPU demarre (autorise) le transfert de memoire
Pendant le transfert, le CPU peut faire autre chose
Le CPU recoit une interruption du DMA quand le transfert estcomplet
Tres utilise : cartes graphiques, cartes reseau, cartes de son, etc.
Utilise dans les microprocesseurs a plusieurs coeurs
Gabriel Cormier (UdeM) GELE5343 Chapitre 5 Hiver 2013 24 / 30
Memoire
DMA : Modes de fonctionnement
Burst
Bloc complet de donnees transfere d’un seul coup
Cyclique
Dans des systemes ou le CPU ne doit pas etre desactive pour le tempsnecessaire a envoyer un bloc completTransfert 1 mot a la fois
Transparent
Transfert de donnees seulement lorsque le CPU n’a pas besoin du busde donneesNecessite du hardware complexe pour determiner si le CPU a besoin dubus
Gabriel Cormier (UdeM) GELE5343 Chapitre 5 Hiver 2013 25 / 30
Memoire
Inconsistance cache
CPUX
Cache
Y
Memoire externeDMA
X : ancienne valeurY : nouvelle valeur
X Y
Avec memoire externe et cache, DMA peut generer des erreurs
CPU peut acceder des valeurs fausses de memoire
Controler avec controleur ou par software
Gabriel Cormier (UdeM) GELE5343 Chapitre 5 Hiver 2013 26 / 30
Memoire
PIC32 : DMA
DMA
Memoire Source1/2/3/4 bytes
Memoire Destination1/2/3/4 bytes
Arret transfert
IRQ
Debut transfert
IRQ
Debut transfert Arret transfert
Logiciel
Gabriel Cormier (UdeM) GELE5343 Chapitre 5 Hiver 2013 27 / 30
Memoire
PIC32 : DMA
Taille de transfert Source et Destination independammentcontrolables
Transfert initie par logiciel ou interruption
Toutes les interruptions du PIC32 peuvent etre utilisees
Pointeurs separes pour adresses Source et Destination
Interruption peut etre generee a mi-transfert ou fin de transfert
Transfert peut etre arrete par IRQ ou logiciel (ou erreur d’adresse)
Gabriel Cormier (UdeM) GELE5343 Chapitre 5 Hiver 2013 28 / 30
Memoire
PIC32 : DMA
Decodeurd’adresse
ControleurInterruption
Controleglobal
(DMACON)
Controle CH0
Controle CH1
Controle CHn
Controlecanaux
Interfacebus
IRQ Systeme
I0
I1
...
In
SEL
Busperipherique
Gabriel Cormier (UdeM) GELE5343 Chapitre 5 Hiver 2013 29 / 30
Memoire
PIC32 : DMA
Plusieurs registres de controle du DMA :
DMACON : Registre de controle principal
DMASTAT : Registre de statut
DMAADDR : Registre d’adresses
DCRCCON : Registre de controle du CRC
DCRCDATA : Valeur initiale du generateur CRC
DCHxCON : Registre de controle du canal x
Gabriel Cormier (UdeM) GELE5343 Chapitre 5 Hiver 2013 30 / 30