Vous êtes sur la page 1sur 45

Présentation DSP

Architecture TMS
320F28335 / Partie CPU
Les architectures Von Neumann,
Harvard et Harvard Modifiée
Dans l'architecture de Von Neumann, le programme et les données sont enregistrés
sur la même mémoire. il faut donc souvent plusieurs cycles d'horloge pour exécuter
une instruction

Dans l'architecture dite de Harvard on sépare la mémoire de programme de la mémoire des


données : l'adressage de ces mémoires est indépendant (rapidité de calcul, temps réel)

Coût de
production
élevé
L’architecture Harvard est surtout utilisée dans des microprocesseurs
spécialisés pour des applications temps réels, comme les DSP.
L’ architecture Harvard Modifiée

Certains DSP utilisent l’architecture dite Harvard modifiée: À


l’extérieur, le DSP utilise un bus de données et un bus d’adresse.
Toutefois, à l’intérieur, la puce DSP dispose de deux bus de
données et de deux bus distincts d’adresses. Le transfert des
données entre les bus externes et internes est effectué par
multiplexage temporel.

Pour plus d’efficacité, la mémoire programme peut également


contenir des données (pour pourvoir récupérer deux opérandes a la
fois)
Utilisation du Pipeline
Utilisation du Pipeline
Les DSP utilisent la méthode du pipeline pour améliorer les
performances du CPU, Le pipeline consiste à imposer un ordre
dans le déroulement des instructions pour optimiser le traitement
en rapidité d’execution.
Les opérations élémentaires suivantes peuvent être exécutées en
parallèle en un cycle :

1. Aller chercher l’instruction en mémoire programme


(Fetch) ;
2. Réaliser le décodage de l’instruction, et des adresses des
opérandes (Decode) ;
3. Lire les opérandes en mémoire de données (Read) ;
4. Exécuter l’opération et écrire le résultat (Execute).
Utilisation du Pipeline
Les DSP utilisent la méthode du pipeline pour améliorer les
performances du CPU, Le pipeline consiste à imposer un ordre
dans le déroulement des instructions pour optimiser le
traitement en rapidité d’execution.
Les opérations élémentaires suivantes peuvent être exécutées
en parallèle en un cycle :

Voir exercice en Annexe


Architecture du DSP TMS
320F28335

CPU
TMS320F2833x Block Diagram
Program Bus ePWM

eCAP
Boot DMA
Sectored RAM ROM 6 Ch.
Flash eQEP
XINTF

A(19-0) DMA Bus 12-bit ADC


D(31-0)
Watchdog

PIE CAN 2.0B


32-bit R-M-W Interrupt
32x32 bit
Auxiliary Atomic FPU Manager
Multiplier I2C
Registers ALU
3 SCI
Real-Time 32-bit
JTAG Register Bus Timers SPI
Emulation
CPU
McBSP

Data Bus GPIO


Bus
Le diagramme du TMS320F2833x peut être Programme
ePWM
divise comme suit: Sectore
d
RA Boo DM
eCap
A(19- M tRo A
Flash mBus DMA
0)
M eQEP
•Bus système interne et externe. U
X 12-bit ADC
D(31-
•L’Unité Centrale de Traitement (CPU) 0)
Watchdog
•Sections de mémoire internes PIE
Registre Multiplicat Interru
•Contrôle de périphérique eur 32x32
UA F
s
auxiliari L P pt CAN 2.0B
U Manag
es er
•Canaux de Communication (32
bits) Bus de 3
I2C
32
registres
•Contrôle d’Acces Mémoire Direct (DMA) bits
Time
SCI
Real- CPU rs SPI
•Unité de gestion des interruptions (PIE) et Time
JTAG
Bus de
Emulati McBSP
Timers. on données

•Interface d’émulation en temps réel. GPIO

Diagramme de la F2833x
Le système de Bus

Bus de données
Bus programme (architecture Harvard modifiée)
Bus DMA
Bus registre (transfert rapide entre les registres)
F28x CPU Internal Bus Structure
Program Program Address Bus (22)
PC
Program-read Data Bus (32) Program
Decoder
Memory
Data-read Address Bus (32)

Data-read Data Bus (32)


Data
Registers Execution Debug Memory
ARAU MPY32x32 FPU
SP Real-Time
ALU R-M-W
DP @X Atomic R0H JTAG
XAR0 XT to Emulation
P ALU Peripherals
to R7H
ACC
XAR7

Register Bus / Result Bus


External
Data/Program-write Data Bus (32) Interface

Data-write Address Bus (32)


Le CPU

Trois timers de 32 bits peuvent être utilisés pour les


besoins généraux de synchronisation.
Le CPU
Le périphérique de gestion d’expansion d'interruption
(PIE) permet une réponse d'interruption rapide aux
diverses sources de signaux et les événements externes et
internes, et réduit le temps de réponse à un événement
externe, appelé "latence d'interruption", à un minimum
absolu.
Le CPU
multiplieur (virgule fixe 32 x32 bits) et une unité
arithmétique et logique 32 bits (ALU) peuvent être utilisés en
parallèle pour exécuter simultanément une multiplication et
une opération d'addition sur nombres à virgule fixe.
Le CPU
Le groupe de registre auxiliaire est équipé de son
propre unité arithmétique (ARAU) -aussi utilisée en
parallèle pour effectuer l'arithmétique de pointeur.
Le CPU

UAL Atomique effectue des operation aritmetique et


booléenne atomique (non-interruptible).
Le CPU

L’unité matérielle de virgule flottante (FPU) pour IEEE-


754 précision simple.
Le CPU
L’interface JTAG est un outil très puissant pour
soutenir l'échange de données en temps réel
(DSC/hote) pendant la phase de débogage de
développement du projet (débogage en temps réel ).
Composants du Multiplieur
Program Bus 32
Data Bus
16/32
16
32
8/16/32
Multiplieur et UAL XT
Multiplieur 32
Shift R/L (0-16) * 32 ou 16 *16
P
32
32 Shift R/L (0-16) 32

32
8/16/32

32
ACC 32
AH 16 AL 16
AHH AHL ALH ALL
32

Shift R/L (0-16)


32
Data Bus
Le CPU/ Multiplieur et UAL

La multiplication a virgule fixe utilise le registre XT


("eXtended Temp") pour prendre la première
operande et la multiplier par la deuxième qui est
chargée a partir de la mémoire. si XT est chargé a
partir de la mémoire de donnée et la seconde
opérande est récupérée de la mémoire de
programme, une opération de multiplication de un
seul cycle est effectuer. Le résultat est décalé dans
le registre P ("Product") ou dans l’accumulateur
(ACC).
Le CPU/ Multiplicateur et UAL

Si on multiplie un nombre de 32-bit par 32-bit, le


résultat est sur 64-bits. Les deux registres ACC et P
sont combinés pour former un registre de 64 bits.
F28x CPU Internal Bus Structure
Program Program Address Bus (22)
PC
Program-read Data Bus (32) Program
Decoder
Memory
Data-read Address Bus (32)

Data-read Data Bus (32)


Data
Registers Execution Debug Memory
ARAU MPY32x32 FPU
SP Real-Time
ALU R-M-W
DP @X Atomic R0H JTAG
XAR0 XT to Emulation
P ALU Peripherals
to R7H
ACC
XAR7

Register Bus / Result Bus


External
Data/Program-write Data Bus (32) Interface

Data-write Address Bus (32)


Le CPU/ FPU

Pour plus de flexibilité en utilisant la précision de


données à virgule flottante, Texas Instruments a
ajouté une 2eme unité de multiplication a la
famille F2833x (les registres à virgule flottante). Les
8 registres dédiés (R0H to R7H) et des registres
supplémentaires : un registre d’Etat (STF) et un
registre bloc de répétition (RB) utilisé pour
exécuter un code machine sans l’utilisation d’un
programme de boucle.
Le CPU/ Registres

La partie représentant l’ensemble de registres de


virgule fixe est composes de 3 registres CPU, un
accumulateur (ACC), un registre Product (P) et un
registre (XT), 8 registres (XAR0…XAR7) et un
ensemble de registres d’Etat et de contrôle. Tels
que "Program Counter" (PC), "Data Page
Pointer"(DP), "Stack Pointer" (SP), "Interrupt
Enable" (IER), "Interrupt Flag" (IFR) and "Debug
Interrupt Enable" (DBGIER).
Registres (virgule fixe)

ACC
Registres FPU (virgule flottante), 32 bits
P
Le Composed de 16 XT
bits R0H
XAR0 R1H
XAR1
Registre 32 bits R2H
XAR2
R3H 8 Registres
XAR3 32 bits
XAR4 R4H
XAR5 R5H
XAR6
R6H
XAR7
Registre 22 bits R7H
(compteur programme PC
et return PC) RPC Registre
Registre 16 bits Data DP STF
d’Etat
Page Pointer, Stack SP
pointer
ST0 Request Block
RB Bloc de
Registre 16 bits ST1
Registres d’Etats repetition)
IFR
Registres
d’interruptions IER Les registres R0H-R7H et STF sont ombrés pour indiquer la
DBGIER fonction sauvegarde du contexte et restauration.
Registres (virgule fixe)
Accès mémoire de données

L’unité arithmétique de registres auxiliaires (ARAU) peut


effectuer des manipulation de pointeur dans le même
cycle d’horloge lorsque l’acces se fait a une mémoire de
données.

Les options pour ARAU sont: post-increment, pre-


decrement, index addition and subtraction, stack
relative operation, circular addressing and bit-reverse
addressing avec des options additionnelles.
L’architecture Interne des Bus
L’architecture Interne des Bus

- Bus de programme (en lecture) 32 bits +


adressage sur 22 bits

- Bus de données (en lecture) 32 bits +


adressage sur 32 bits

- Bus de données (en écriture) 32 bits +


adressage sur 32 bits

- Bus de registres
Registre SP (16 bits)
Le registre SP pointe vers un emplacement vide de la mémoire Stack
Parmi ses fonctions est la sauvegarde du contexte (differents
registres de travail) dans la mémoire Stack (en utilisant le format
Little Endian) Rappel
Registre RPC
L’instruction LCR (appelle un sous programme)
nécessite la sauvegarde de l’adresse de retour dans
le registre RPC. L’ancienne valeur du RPC est
transférée a la mémoire STACK (en deux mots de 16
bits).
Programme 1 Programme 2 Programme 3

LCR programme 2 Adresse de LCR programme 3


Adresse de retour 2
retour 1 LRETR
LRETR
Stack
Adresse memory
Adresse de retour 12 de retour 1
RPC
Mode de
dépassement
Le registre d’etat ST0 1: valeur limite
avant le
Résultat nul dépassement
Compteur de Dépassement
Retenue
dépassement

Bit de test
Décalage Résultat négatif (instruction Mode
TBIT) (extens
001 pas de ion de
decalage signe)
Le registre d’etat ST1 Mapping mode
Mode
d’adressage, 0:
Pointeur des Bit d’etat du signal XFS Par defaut 1 C28, 1: C27
(sampling frequency) Si 0, permutation entre M0 et M1, ,
registres
Stack : 0x000
auxiliaires Compatibilite
1:C28, 0C27

1: Alignement a
une adresse
paire du stack
pointer

Emplacement
des vecteurs de
priorités des Si 0: les
1:Mode Idle interruption Si 0: activation interruption
(execution d’un du mode masquable
ensemble Permet l’acces d’adressage activée
d’instruction aux registres Indique une stack
0: debug events
pour vider le protégés boucle en enabled,
pipeline, mise execution (apres 1: debug events
en attente) D2) desable
Les registres IFR, IER, DB GIER

IFR : Interrupt flag register (INT1 … INT14, RTOSINT, DLOGINT)


IER : Interrupt enable register.

DBGIER : Debug Interrupt enable register.


ANNEXE
Exercice
Chargement
Addition
Sauvegarde

Soustration

Branchement

Vous aimerez peut-être aussi