30
GELE5343 Chapitre 5 : Architectures Gabriel Cormier, Ph.D., ing. Universit´ e de Moncton Hiver 2013 Gabriel Cormier (UdeM) GELE5343 Chapitre 5 Hiver 2013 1 / 30

Gabriel Cormier, Ph.D., ing. - Université de Moncton · Architecture Harvard Unit e de contr^ole Instructions m emoire M emoire donn ees ALU I/O M emoire instructions et m emoire

  • 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

Gabriel Cormier (UdeM) GELE5343 Chapitre 5 Hiver 2013 9 / 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

Gabriel Cormier (UdeM) GELE5343 Chapitre 5 Hiver 2013 18 / 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