PPC PXR40

publicité
COURS_1
JC LP MD
1
Evolution des machines
JC LP MD
2
Les 8 bits
• Machines de type load/store avec au minimum 1
accumulateur (registre)
• Machines à 1 opérande
• Load lire la mémoire et charger l’accumulateur
• Store écrire le contenu de l’accumulateur en mémoire
• Peu de modes d’adressage
Immédiat
Direct
Indirect
Indirect indexé
JC LP MD
3
Familles microprocesseurs 8 bits
• Intel 8008, 8080
• Motorola 6800
• Zilog Z80
JC LP MD
4
Mainframes
• Machines multi users (16/32 bits)
• IBM
• CDC
• DEC (Digital Equipment Corporation) famille PDP
UNIX
Langage C
JC LP MD
5
Les 16 bits
•
•
•
•
•
Machines de type move avec 8/16 registres
Machines à 2 opérandes
Ex: add R1,R2 R1+R2->R2
Beaucoup de modes d’adressage
Immédiat, direct, indirect, register, indirect register,
indirect register post incrémenté, indirect register prés
décrémenté …..
JC LP MD
6
Familles microprocesseurs 16 bits
• Machines dites CISC
• Intel 8086 architecture interne 16 bits data et adresse
• Motorola 68000 architecture interne 32 bits data et
adresse (fortement inspiré du PDP)
• Zilog Z800 et Texas 9900: pas survécus
JC LP MD
7
Problèmes des CISC
• Machines microprogrammées (lenteur d’exécution, mais
facilité de rectifier des bugs de conception)
• Taille des instructions variable et temps d’exécution
variable
• Difficile de faire du parallélisme pour l’exécution des
instructions
• Difficultés pour tester les puces en usine
• Les compilateurs ne savaient pas utiliser toutes les
ressources des boitiers
• Il fallait augmenter la fréquence de l’horloge pour
augmenter la performance (chaufferettes!!!!)
JC LP MD
8
Idée du RISC
•
•
•
•
•
•
•
Machines à 3 opérandes
Beaucoup de registres
Machines 32/64 bits
Taille des instructions unique
Parallélisme d’exécution
Machines câblées de type load/store
But visé au début: 1 instruction par clock
JC LP MD
9
Familles microprocesseurs RISC
•
•
•
•
SUN architecture SPARC
HP architecture PRECISION
Silicon Graphics architecture MIPS
IBM+Motorola architecture POWER PC
• Architecture ARM vendue à divers fondeurs
Architecture tres simple, adaptée à la mobilité (Intel,
Freescale (ex Motorola), Texas…..)
JC LP MD
10
Microcontrôleurs PPC
• Famille IBM
Boitier généraliste: famille 4XX (dont le 403)
• Famille Freescale
Boitier pour les télécom: famille 8xx (dont le 860)puis 8XXX
Boitier pour l’automobile: famille 5xx puis 5XXX, PXR4040
JC LP MD
11
PPC PXR4040
introduction
JC LP MD
12
PXR4040 bloc diagram
JC LP MD
13
General Purpose Register
GPR0 …..GPR31
Appelés en assembleur r0…..r31
JC LP MD
14
Special Purpose Register
• Registres système
• Accessibles par des instructions spécifiques
MSR mtmsr,mfmsr
LR
mtlr,mflr
CTR mtctr, mfctr
IVPR mfivpr,mtivpr
JC LP MD
15
EABI
JC LP MD
16
Accès mémoire en assembleur
lis r3,MEM@h
// Chargement de 32 bits dans un registre
ori r3,r3,MEM@l
lbz r5,d(r3)
lwz r5,d(r3)
stb r6,d(r3)
stw r6,d(r3)
// lecture d’un byte (poids forts à 0)
// lecture d’un word (poids forts à 0)
// écriture d’un byte
// écriture d’un word
(pour 16 bits: lhz et sth)
JC LP MD
17
Utilisation du link register LR
Appel de sous programme
bl
Retour de sous programme
blr
Chargement du LR
mtlr rx
Lecture du LR
mflr rx
JC LP MD
18
Boucles (CTR)
• Décrément de CTR et branch target
• bdz target si CTR=0
• bdnz target si CTR#0
JC LP MD
19
Utilisation d’assembleur avec le C
Fonction en assembleur appelée par un programme C
__asm int Read_IVPR(void)
{
mfivpr r3 //lecture du pointeur de la table d’interruptions
blr
}
//passage de paramètres in et out avec r3
Instruction assembleur dans un programme en C
asm ("rfi"); //return from interrupt
JC LP MD
20
siu
System Integration Unit
JC LP MD
21
Rôle du SIU
JC LP MD
22
Registres du SIU à étudier pour le 1er TP
• Pad Configuration Register PCR (il y a 512 PCR) pour
configurer la fonction de la PIN
• Registre de data en sortie (il y en a 512) pour donner un
niveau à la PIN programmée en sortie
JC LP MD
23
SIU_PCR
JC LP MD
24
PXR4040.h en tête
/****************************************************************************/
/*
MODULE : SIU
*/
/****************************************************************************/
struct SIU_tag {
#define SIU
}
(*( volatile struct SIU_tag *)
JC LP MD
0xC3F90000 )
25
PXR4040.h
SIU_PCRn
union {
/* Pad Configuration Registers */
vuint16_t R;
struct {
vuint16_t:3;
vuint16_t PA:3;
vuint16_t OBE:1;
vuint16_t IBE:1;
vuint16_t DSC:2;
vuint16_t ODE:1;
vuint16_t HYS:1;
vuint16_t SRC:2;
vuint16_t WPE:1;
vuint16_t WPS:1;
} B;
} PCR[512];
JC LP MD
26
PXR4040.h
SIU_GPD i/o
union {
/* GPIO Pin Data Output Registers */
vuint8_t R;
struct {
vuint8_t:7;
vuint8_t PDO:1;
} B;
} GPDO[512];
union {
/* GPIO Pin Data Input Registers */
vuint8_t R;
struct {
vuint8_t:7;
vuint8_t PDI:1;
} B;
} GPDI[256];
JC LP MD
27
Liaison série
JC LP MD
28
Principe de la RS232
JC LP MD
29
Trame RS232 en transmit sur la ligne
JC LP MD
30
Gestion de flux
JC LP MD
31
Types de liaisons
JC LP MD
32
Module eSCI (A,B,C)
JC LP MD
33
Paramètres de trame
•
•
•
•
Nombre de bits de Data
Nombre de bits de STOP
Parité
Vitesse de transmission en bauds
• Pour TP2
• 8bits DATA,1 bit de STOP, pas de parité, vitesse:9600
bauds (clock pour le baud rate générateur à 30 MHz)
JC LP MD
34
Types d’erreurs possibles
• Parity error
• Framing error
• Overrun error
JC LP MD
35
Téléchargement