Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

192
République Tunisienne Ministère d’Enseignement Supérieur, Université de Sfax ECOLE NATIONALE ECOLE NATIONALE DINGENIEURS DE SFAX D INGENIEURS DE SFAX

Transcript of Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

Page 1: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

République Tunisienne

Ministère d’Enseignement Supérieur,

Université de Sfax

ECOLE NATIONALE ECOLE NATIONALE D’INGENIEURS DE SFAXD INGENIEURS DE SFAX

Page 2: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

ENIS ENIS 20122012//20132013

Cours DSPCours DSP3ème année GE ISI-EEI_SEER

Nouri MASMOUDIProfesseur à l’ENISResponsable de l’Équipe Circuits et Systèmes Laboratoire d’Électronique et des Technologies de l’InformationLaboratoire d Électronique et des Technologies de l Information

Page 3: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

Plan du coursPlan du cours

Chapitre I : Introduction aux DSPChapitre I : Introduction aux DSP

Chapitre II : Architectures des DSPChapitre II : Architectures des DSP

Chapitre III : Architecture interne du TMS320 C64Xp

Chapitre IV : Étude pratique du pipeline pour le TMS320 C64X

Chapitre V : Techniques d’optimisation

ENIS 2011-2012 Cours DSP 3

Page 4: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

ENIS 2012/2013

Chapitre I :C ap e

Introduction aux DSP’sIntroduction aux DSP s

Plan Ch suivant

Page 5: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

SommaireSommaireBesoins et contraintes en traitement numérique du signalBesoins et contraintes en traitement numérique du signal

Applications typiques

Al i h iAlgorithmes typiques

Présentation des DSPProcesseurs actuels

Exemples des DSPExemples des DSP

Comparaison avec les processeurs généralistes

Représentation des nombresTypes de données

Virgule fixe

Virgule flottant

ENIS 2012-2013 Cours DSP Chapitre 1 5

Page 6: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

Définition d’un DSPDéfinition d un DSPDSP = Digital Signal ProcessorDSP = Digital Signal Processor

Processeur de traitement Numérique du Signal

Un DSP est un type particulier de microprocesseur.Il i tè bl d f ti é i l d ti é à lIl intègre un ensemble de fonctions spéciales destinées à le

rendre particulièrement performant dans le domaine du traitementnumérique du signal (TNS).

Il se présente généralement sous la forme d’un microcontrôleurIl se présente généralement sous la forme d un microcontrôleurintégrant, selon les marques et les gammes des constructeurs, del é i d ti d t é i h id dla mémoire, des timers, des ports série synchrones rapides, descontrôleurs DMA, des ports d’E/S divers.

Cours DSP Chapitre 1 6ENIS 2012-2013

Page 7: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

Structure générale des applications gde TNS

TNS = Traitement Numérique du Signal

ADC = Analog to Digital ConverterADC Analog to Digital Converter

DAC = Digital to Analog Converter

ENIS 2012-2013 Cours DSP Chapitre 1 7

Page 8: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

Pourquoi le TNS ?Pourquoi le TNS ?

L i i t d l l é i / l l l iLes principaux avantages du calcul numérique / au calcul analogique :

Grande résistance aux bruitsvariations des tensions d’alimentation

variations de la température

interférences électromagnétiques (EMI)

Indépendance par rapport aux tolérances de fabricationIndépendance par rapport aux tolérances de fabrication

Précision arbitraire

Stabilité dans le temps

Stockage des données sans dégradation

Programmation flexible et développement rapide

Contrôle absolu des données lors du traitement

Cours DSP Chapitre 1 8

Contrôle absolu des données lors du traitement

ENIS 2012-2013

Page 9: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

Applications des DSPApplications des DSP

CommunicationsFilaire (DSL, cable)S fil ( ll l i

Image / vidéoCompression/CodageC itiSans fil (cellulaires,

télévision numérique, radio numérique)

CompositionTraitement

q )ModemCryptage

AudioMilitaire

Imagerie : radar, sonar…Mixage et éditionEffets

CryptographieGuidage de missilesN i tiSuppression de bruit

Annuleur d’echoNavigation

Cours DSP Chapitre 1 9ENIS 2011-2012

Page 10: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

Applications des DSPApplications des DSP

BiomédicalEquipements de monitoring

Signaux biophysiques

AutomatisationCommande de machinesContrôle de moteursSignaux biophysiques

ElectroEncéphaloGramme (EEG)ElectroCardioGramme (ECG)

Radiographie

Contrôle de moteursRobots

Radiographie

InstrumentationInstrumentationAnalyseurs de spectreGénérations de fonctions

Electronique AutomobileContrôle du moteurAssistance au freinageAnalyseurs de régimes transitoires Assistance au freinageAide à la navigationCommandes vocalesCommandes vocales

Cours DSP Chapitre 1 10ENIS 2012-2013

Page 11: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

Application type : Modem ADSLyADSL = Asymmetrical Digital Subscriber Line

Besoins en calcul de 100 à 150 MIPS.

TEQ = Time domain EQualizerTEQ Time domain EQualizer

QAM = Quadrature Amplitude Modulation

FEQ F d i EQ li

Cours DSP Chapitre 1 11

FEQ = Frequency domain EQualizer

ENIS 2012-2013

Page 12: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

LCD TV

TV numérique : affiche la vidéo numérique / analogique

LCD (Liquid Crystal Display)LCD (Liquid Crystal Display)

Module de base:Module de base:

DSP - décodeur MPEGx pour vidéo, voix: AC3/MPEG lAC3/MPEG pour le traitement audio.

MCU – contrôleur du système électronique, réseau.

Interface Vidéo/audioUnité d’alimentation

Cours DSP Chapitre 1 12ENIS 2012-2013

Page 13: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

Digital Video RecordergLe système inclut :

Processeur DSP: MPEG

CPUCPU

Triple DACNTSC/PAL, S vidéo et YPrPb

Interface FPGA/PCIFPGA/PCI -commander le transfert des données et le bus PCI.

CODEC Stéréo Audio InterfaceAudio , Interface utilisateur, Bloc d’alimentation

Cours DSP Chapitre 1 13ENIS 2012-2013

Page 14: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

Radar

Cours DSP Chapitre 1 14ENIS 2012-2013

Page 15: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

Digital Still Camerag

Cours DSP Chapitre 1 15ENIS 2012-2013

Page 16: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

Algorithme type : Les filtres FIRg y

Pour un filtre à réponse impulsionnelle finie (Finite ImpulsePour un filtre à réponse impulsionnelle finie (Finite ImpulseResponse) de taille N (nombre de coefficients), on doit effectuerun calcul du type :un calcul du type :

Cours DSP Chapitre 1 16ENIS 2012-2013

Page 17: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

Algorithme type : Les filtres FIRg y

Contraintes : nombre de coefficients (10 ! 300)nombre de coefficients (10 ! 300),

précision (16 ou 24 bits),

Cours DSP Chapitre 1 17

vitesse de fonctionnement . . .

ENIS 2012-2013

Page 18: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

Profils d’utilisation du DSPo s d ut sat o du S

EmbarquéFaible coût unitaireFaible consommation : part

Haute performancePuissance : Calcul intensifParallélismeFaible consommation : part

importante de la consommation pour la mémoire

ParallélismeMultiplication des unités de calcul internesInterfaces multi DSPmémoire

Architecture limitée au strict nécessaire

Interfaces multi-DSPInterface avec un ordinateur hôte

Temps réel

Non prioritaires :Non prioritaires :

PerformanceF ilité d ti

Non prioritaires :Coût élevéUtilisation mémoireConsommationFacilité de programmation Consommation

Cours DSP Chapitre 1 18ENIS 2012-2013

Page 19: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

Caractéristiques classiques des DSP

Chemin de données organisé pour traitement du signal

Jeu d’instructions spécialisé

Plusieurs bancs mémoire et plusieurs busPlusieurs bancs mémoire et plusieurs bus

Modes d’adressage spécialisésg p

Contrôle d’exécution spécialisé

Périphériques spéciaux pour le traitement du signal

Augmentation du parallélisme

Cours DSP Chapitre 1 19ENIS 2012-2013

Page 20: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

Caractéristiques classiques des DSP

Augmentation du parallélisme

CalculsU ité d l l llèlUnités de calcul en parallèle

Mémoire à accès multiplesMémoire à accès multiplesLecture/Écriture de plusieurs données simultanément

PipelineDécoupage des instructions de façon à les exécuter à gintervalles plus rapprochés

Cours DSP Chapitre 1 20ENIS 2012-2013

Page 21: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

Traitement en Temps RéelTraitement en Temps RéelLes processeurs DSP doivent accomplir des tâches en temps réel, ainsi comment définissons-nous le temps réel ?réel ?

La définition du temps réel dépend de l’application.

Example: un filtre FIR de 100 échantillons est exécuté en temps réel si le DSP peut effectuer et accomplir l' é ti i t t d é h tilll'opération suivante entre deux échantillons :

( ) ( ) ( )∑=

−=99

0kknxkany

Cours DSP Chapitre 1 21ENIS 2012-2013

Page 22: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

Traitement en Temps RéelTraitement en Temps Réel

Temps de TraitementTemps de TraitementTemps Temps

d’attented’attente

Temps d’échantillonTemps d’échantillonnn n+n+11

Temps d échantillonTemps d échantillon

Nous pouvons dire que nous avons uneli ti t é l iapplication en temps réel si :

Temps d'attente ≥ 0

ENIS 2012-2013 Cours DSP Chapitre 1 22

• Temps d'attente ≥ 0

Page 23: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

Spécificités des DSPSpécificités des DSP

Algorithme classique de TNS : Filtre RIF−1N

∑=

−=0

)()()(i

inxiany

Pour chaque a(i) x(n-i) :

Recherche de l’instruction

Recherche du coefficients a(i)3 accès à la Recherche du coefficients a(i)

Recherche de la donnée x(n-i)mémoire

Multiplication a(i) x(n-i)

A l ti (i 1) ( i 1) (i) ( i)

2 accès à l’unité

ENIS 2012-2013 Cours DSP Chapitre 1 23

Accumulation a(i-1) x(n-i-1) + a(i) x(n-i)de calcul

Page 24: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

Spécificités des DSPSpécificités des DSP

Objectifs :

Réduire les accès mémoire

Augmenter les accès mémoire simultanésg

Réduire le temps passé pour faire des calculsRéduire le temps passé pour faire des calculs

Instruction MAC(multiplication-accumulation)

ENIS 2012-2013 Cours DSP Chapitre 1 24

en 1 seul cycle d’instruction

Page 25: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

Classification des processeursp

DSP = Digital Signal Processor

ASIP = Application Specific Instruction set Processor

ASIC = Application Specific Integrated Circuit

Cours DSP Chapitre 1 25

ASIC = Application Specific Integrated Circuit

ENIS 2012-2013

Page 26: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

Quel processeur utiliser pour le TNSQ p p

µ-contrôleurs : pas assez performants

ASIC : beaucoup trop coûteux, mise en oeuvre complexe etASIC : beaucoup trop coûteux, mise en oeuvre complexe etlongue

ASIP : beaucoup trop coûteux, complexe et surtout spécifique

Processeurs généralistes (GPP) : pas temps réel trop coûteuxProcesseurs généralistes (GPP) : pas temps réel, trop coûteux,consomment trop d’énergie, difficilement embarquables

Cours DSP Chapitre 1 26ENIS 2012-2013

Page 27: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

Quel processeur utiliser pour le TNSQ p p

ASIC ASICASIC

FPGA time

ASIC

FPGA

orm

ance

DSP

lopm

ent t

DSP

Perf

o

GPP Dev

el

GPP

Cours DSP Chapitre 1 27ENIS 2012-2013

Page 28: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

Quel processeur utiliser pour le TNSQ p p

GPP

ptio

n

GPP GPP

DSP

exib

ility

rcon

sum

pDSP

FPGAFPGA

Fle

Pow

er

ASICASIC

Cours DSP Chapitre 1 28ENIS 2012-2013

Page 29: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

G l P DSP / DSP i ASICGeneral Purpose DSP / DSP in ASIC• Circuit intégré à application Spécifique• Circuit intégré à application Spécifique

(ASICs) est conçu à base des fonctions en i d tsemi-conducteurs.

• Les avantages et les inconvénients d’utiliser gles ASICs sont énumérés ci-dessous :AdvantagesAdvantages•• Sortie Sortie éélevlevéé

InconvInconvéénients nients •• CoCoûût t éélevlevéé

M i d fl ibiliM i d fl ibilitéé•• Faible surface en siliciumFaible surface en silicium•• Faible consommation de Faible consommation de

puissancepuissance

•• Moins de flexibilitMoins de flexibilitéé•• Temps de dTemps de dééveloppement est veloppement est

éélevlevéépuissancepuissance•• FiabilitFiabilitéé amamééliorliorééee•• RRééduction du bruit duction du bruit

élevé

Cours DSP Chapitre 1 29

•• Faible coFaible coûût du systt du systèème globalme global

ENIS 2012-2013

Page 30: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

H d / Mi d lti li tiHardware / Microcode multiplication• Les processeurs DSP sont optimisés pourLes processeurs DSP sont optimisés pour

effectuer des opérations de multiplication et d'additiond addition.

• Multiplication et addition sont exécutées matériellement pendant un seul cycle. Exemple: Multiplication 4-bit (non-signé).Exemple: Multiplication 4 bit (non signé).

10111011 10111011

HardwareHardware MicrocodeMicrocode

10111011 10111011

HardwareHardware MicrocodeMicrocode

10110x 1110x 1110

10110x 1110x 1110

1001101010011010 0000000010111011

Cycle 1Cycle 1C l 2C l 2

10110x 1110x 1110

10110x 1110x 1110

1001101010011010 0000000010111011

Cycle 1Cycle 1C l 2C l 21011.1011.

1011..1011..1011...1011...

Cycle 2Cycle 2Cycle 3Cycle 3Cycle 4Cycle 4

1011.1011.1011..1011..1011...1011...

Cycle 2Cycle 2Cycle 3Cycle 3Cycle 4Cycle 4

Cours DSP Chapitre 1 30

1001101010011010 Cycle 5Cycle 51001101010011010 Cycle 5Cycle 5

ENIS 2012-2013

Page 31: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

Paramètres à considérerParamètres à considérerParameter TMS320C6211 TMS320C6711 Parameter TMS320C6211 TMS320C6711

Arithmetic formatExtended floating point

32-bitN/A

32-bit64-bit

(@150MHz) (@150MHz)Arithmetic formatExtended floating point

32-bitN/A

32-bit64-bit

(@150MHz) (@150MHz)

Extended floating pointExtended ArithmeticPerformance (peak)

N/A40-bit

1200MIPS

64 bit40-bit

1200MFLOPS

Extended floating pointExtended ArithmeticPerformance (peak)

N/A40-bit

1200MIPS

64 bit40-bit

1200MFLOPSNumber of hardware multipliers

Number of registers

2 (16 x 16-bit) with 32-bit result

32

2 (32 x 32-bit) with 32 or 64-bit result

32

Number of hardware multipliers

Number of registers

2 (16 x 16-bit) with 32-bit result

32

2 (32 x 32-bit) with 32 or 64-bit result

32gInternal L1 program memory cacheInternal L1 data memory cache

32K32K

32K32K

gInternal L1 program memory cacheInternal L1 data memory cache

32K32K

32K32K

Internal L2 cache 512K 512KInternal L2 cache 512K 512K

C6711 Datasheet: C6711 Datasheet: \\LinksLinks\\TMS320C6711.pdfTMS320C6711.pdf

Cours DSP Chapitre 1 31C6211 Datasheet: C6211 Datasheet: \\LinksLinks\\TMS320C6211.pdfTMS320C6211.pdf

ENIS 2012-2013

Page 32: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

Paramètres à considérerParamètres à considérerP t TMS320C6211 TMS320C6711P t TMS320C6211 TMS320C6711Parameter

I/O bandwidth: Serial Ports (number/speed)

2 x 75Mbps 2 x 75Mbps

TMS320C6211(@150MHz)

TMS320C6711(@150MHz)

Parameter

I/O bandwidth: Serial Ports (number/speed)

2 x 75Mbps 2 x 75Mbps

TMS320C6211(@150MHz)

TMS320C6711(@150MHz)

(number/speed)DMA channelsMultiprocessor support

16Not inherent

16Not inherent

(number/speed)DMA channelsMultiprocessor support

16Not inherent

16Not inherent

Supply voltagePower managementOn chip timers (number/width)

3.3V I/O, 1.8V Core Yes

2 x 32 bit

3.3V I/O, 1.8V CoreYes

2 x 32 bit

Supply voltagePower managementOn chip timers (number/width)

3.3V I/O, 1.8V Core Yes

2 x 32 bit

3.3V I/O, 1.8V CoreYes

2 x 32 bitOn-chip timers (number/width)CostPackage

2 x 32-bitUS$ 21.54

256 Pin BGA

2 x 32-bitUS$ 21.54

256 Pin BGA

On-chip timers (number/width)CostPackage

2 x 32-bitUS$ 21.54

256 Pin BGA

2 x 32-bitUS$ 21.54

256 Pin BGAgExternal memory interface controllerJTAG

YesYes

YesYes

gExternal memory interface controllerJTAG

YesYes

YesYes

Cours DSP Chapitre 1 32ENIS 2012-2013

Page 33: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

Algorithmes typiques du DSPg yp qLa somme des produits (SOP) est l’élément clé dans la plupart des algorithmes:

Algorithm Equation

Finite Impulse Response Filter ∑=

−=M

kk knxany

0

)()(

Infinite Impulse Response Filter ∑∑==

−+−=N

kk

M

kk knybknxany

10

)()()(

Convolution ∑=

−=N

k

knhkxny0

)()()(

Discrete Fourier Transform ∑−

=

−=1

0

])/2(exp[)()(N

n

nkNjnxkX π

Discrete Cosine Transform ( ) ( )∑−

=⎥⎦⎤

⎢⎣⎡ +=

1

0

122

cos).().(N

x

xuN

xfucuF π

Cours DSP Chapitre 1 33

ENIS 2012-2013

Page 34: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

S à f /DSP à virgule flottante / Fixe

• Applications qui exigent:pp q g

À h t é i i– À haute précision.– dynamique large.y q g– Rapport signal/bruit élevé.

F ili é d' ili i– Facilité d'utilisation.

Ayez besoin d'un processeur de

Cours DSP Chapitre 1 34

virgule flottante.ENIS 2012-2013

Page 35: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

DSP à i l fl tt t / FiDSP à virgule flottante / Fixe

• C’est l’application qui définie la plateforme àutiliser dans le but d’obtenir les performances optimums à faible prix.optimums à faible prix.

• Pour un but éducatif, utiliser un DSP à virgule flottante (6711 ou 6713) qui peut supporter les ( ) q p ppopérations à virgule flottante et fixe.

Cours DSP Chapitre 1 35ENIS 2012-2013

Page 36: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

DSP à virgule flottante / FixeDSP à virgule flottante / Fixe

• Inconvénient des processeurs à virgule flottanteflottante:

– Consommation de puissance plus élevé– Peut être plus coûteux.– Peut être moins rapide que le DSP àPeut être moins rapide que le DSP à

virgule fixe et de taille plus importante.

Cours DSP Chapitre 1 36ENIS 2012-2013

Page 37: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

Quelques DSP’sQuelques DSP s

MIPS : Million d’Instruction Par Seconde

Cours DSP Chapitre 1 37

MIPS : Million d Instruction Par Seconde

ENIS 2012-2013

Page 38: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

DSP / GPP Consommation d’énergie

Cours DSP Chapitre 1 38ENIS 2011-2012

Page 39: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

Représentation des nombresp

Les DSP à virgule fixeLes données sont représentées comme étant des nombres fractionnaires à

virgule fixe, (exemple -1.0 à +1.0), ou comme des entiers classiques.La représentation de ces nombres fractionnaires s’appuie la méthode du

«complément à deux».Permet facilement l’addition binaire de nombres positifs et négatifs.

Les DSP à virgule flottanteLes données sont représentées en utilisant une mantisse et un exposantLes données sont représentées en utilisant une mantisse et un exposant.La représentation de ces nombres s’effectue selon la formule suivante :

n = mantisse x 2exposant

Généralement, la mantisse est un nombre fractionnaire (-1.0 à +1.0), etl’exposant est un entier indiquant la place de la virgule en base 2.

Cours DSP Chapitre 1 39ENIS 2011-2012

Page 40: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

Représentation des nombresp

Cours DSP Chapitre 1 40ENIS 2012-2013

Page 41: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

Représentation des nombrespVirgule fixe

Cours DSP Chapitre 1 41ENIS 2012-2013

Page 42: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

Représentation des nombresVirgule flottante

Cours DSP Chapitre 1 42ENIS 2012-2013

Page 43: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

Représentation des nombresVirgule flottante

Cours DSP Chapitre 1 43ENIS 2012-2013

Page 44: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

Texas Instruments’ TMS320 familyTexas Instruments TMS320 family• Les différents familles et sous families

existent pour soutenir différents marchés

C2000C2000 C5000C5000 C6000C6000C2000C2000 C5000C5000 C6000C6000C2000C2000C2000C2000 C5000C5000C5000C5000 C6000C6000

Lowest CostLowest CostControl SystemsControl Systems

EfficiencyEfficiencyBest MIPS perBest MIPS per

PerformancePerformance &&BestBest EaseEase ofof UseUse

Lowest CostLowest CostControl SystemsControl Systems

EfficiencyEfficiencyBest MIPS perBest MIPS per

Lowest CostLowest CostControl SystemsControl Systems

Lowest CostLowest CostControl SystemsControl Systems

Lowest CostLowest CostControl SystemsControl Systems

EfficiencyEfficiencyBest MIPS perBest MIPS per

EfficiencyEfficiencyBest MIPS perBest MIPS per

PerformancePerformance &&BestBest EaseEase ofof UseUse

PerformancePerformance &&BestBest EaseEase ofof UseUseControl SystemsControl Systems

Motor ControlMotor ControlStorageStorage

Best MIPS perBest MIPS perWatt / Dollar / SizeWatt / Dollar / Size

Wireless phonesWireless phones Multi Channel and Multi Channel and Multi Function App'sMulti Function App's

Best Best EaseEase--ofof--UseUseControl SystemsControl SystemsMotor ControlMotor ControlStorageStorage

Best MIPS perBest MIPS perWatt / Dollar / SizeWatt / Dollar / Size

Wireless phonesWireless phones

Control SystemsControl SystemsMotor ControlMotor ControlStorageStorage

Control SystemsControl SystemsMotor ControlMotor ControlStorageStorage

Control SystemsControl SystemsMotor ControlMotor ControlStorageStorage

Best MIPS perBest MIPS perWatt / Dollar / SizeWatt / Dollar / Size

Wireless phonesWireless phones

Best MIPS perBest MIPS perWatt / Dollar / SizeWatt / Dollar / Size

Wireless phonesWireless phones Multi Channel and Multi Channel and Multi Function App'sMulti Function App's

Best Best EaseEase--ofof--UseUseMulti Channel and Multi Channel and Multi Function App'sMulti Function App's

Best Best EaseEase--ofof--UseUse

Digital Ctrl SystemsDigital Ctrl Systemspp

Internet audio playersInternet audio playersDigital still cameras Digital still cameras ModemsModems

Multi Function App'sMulti Function App sComm InfrastructureComm InfrastructureWireless BaseWireless Base--stationsstations

Digital Ctrl SystemsDigital Ctrl Systemspp

Internet audio playersInternet audio playersDigital still cameras Digital still cameras ModemsModems

Digital Ctrl SystemsDigital Ctrl SystemsDigital Ctrl SystemsDigital Ctrl SystemsDigital Ctrl SystemsDigital Ctrl Systemspp

Internet audio playersInternet audio playersDigital still cameras Digital still cameras ModemsModems

ppInternet audio playersInternet audio playersDigital still cameras Digital still cameras ModemsModems

Multi Function App'sMulti Function App sComm InfrastructureComm InfrastructureWireless BaseWireless Base--stationsstations

Multi Function App'sMulti Function App sComm InfrastructureComm InfrastructureWireless BaseWireless Base--stationsstationsModemsModems

TelephonyTelephonyVoIPVoIP

DSLDSLImagingImagingMultiMulti media Serversmedia Servers

ModemsModemsTelephonyTelephonyVoIPVoIP

ModemsModemsTelephonyTelephonyVoIPVoIP

ModemsModemsTelephonyTelephonyVoIPVoIP

DSLDSLImagingImagingMultiMulti media Serversmedia Servers

DSLDSLImagingImagingMultiMulti media Serversmedia Servers

Cours DSP Chapitre 1 44

MultiMulti--media Serversmedia ServersVideoVideoMultiMulti--media Serversmedia ServersVideoVideoMultiMulti--media Serversmedia ServersVideoVideo

ENIS 2012-2013

Page 45: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

C6000 RoadmapC6000 Roadmape

Software CompatibleSoftware CompatibleFloating PointFloating PointFloating PointFloating PointFloating PointFloating Point

rman

ce

Floating PointFloating PointFloating PointMulti-coreMultiMulti--corecore C64x™ DSP

1.1 GHzC64xC64x™™ DSPDSP

1.1 GHz1.1 GHz

Floating PointFloating PointFloating PointMulti-coreMultiMulti--corecore C64x™ DSP

1.1 GHzC64xC64x™™ DSPDSP

1.1 GHz1.1 GHz

Perf

or

C64C64 ™™ DSPDSP2nd Generation (Fixed Point)2nd Generation (Fixed Point)

C64x™ DSPC64xC64x™™ DSPDSPGeneral General PurposePurpose C6414C6414C6414 C6415C6415C6415 C6416C6416C6416

Highest

erformance

Highest

erformance MediaMedia

GatewayGateway3G Wireless 3G Wireless

InfrastructureInfrastructure1st Generation1st GenerationC6411C6411C6411

C6713C6713C6713C6713C62xC62x™™C62xC62x™™

HPerfoHPerfo

C6201C6201C6202C6202

C6203C6203C6204C6204

C6205C6205 FixedFixed--pointpointC6201C6201

C6701C6701C6211C6211

C6711C6711 C6712C6712C67xC67x™™

pp

FloatingFloating--pointpoint

Cours DSP Chapitre 1 45Time

ENIS 2012-2013

Page 46: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

Plus d’informationInternetInternet

Website:Website: www.ti.comwww.ti.comdspvillage.comdspvillage.com

FTP:FTP: ftp://ftp.ti.com/pub/tmsftp://ftp.ti.com/pub/tms320320bbsbbs

FAQ:FAQ: http://wwwhttp://www--k.ext.ti.com/sc/technical support/knowledgebase.htm k.ext.ti.com/sc/technical support/knowledgebase.htm Q:Q: pp _ pp g_ pp g

Device informationDevice information TI & METI & MEApplication notesApplication notes News and eventsNews and events

Phone:Phone: 972972 644644 55805580

USA USA -- Product Information Center ( PIC )Product Information Center ( PIC )

ppppTechnical documentationTechnical documentation TrainingTraining

Phone:Phone: 972972--644644--55805580Email:Email: [email protected]@ti.com

Information and support forInformation and support for allall TI Semiconductor products/toolsTI Semiconductor products/toolsInformation and support for Information and support for allall TI Semiconductor products/toolsTI Semiconductor products/toolsSubmit suggestions and errata for tools, silicon and documentsSubmit suggestions and errata for tools, silicon and documents

S ft R i t ti /U dS ft R i t ti /U d 972972 293293 50505050

Other ResourcesOther Resources

Software Registration/Upgrades:Software Registration/Upgrades: 972972--293293--50505050Hardware Repair/Upgrades:Hardware Repair/Upgrades: 281281--274274--22852285

Enroll in Technical Training:Enroll in Technical Training: www.ti.com/sc/trainingwww.ti.com/sc/training

Cours DSP Chapitre 1 46ENIS 2012-2013

gg gg(choose (choose Design WorkshopsDesign Workshops))

Page 47: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

Manuels clès de la famille C6000HardwareHardware

CPU d I i S R f G idCPU d I i S R f G idSPRUSPRU189189 -- CPU and Instruction Set Ref. GuideCPU and Instruction Set Ref. GuideSPRUSPRU190190 -- Peripherals Ref. GuidePeripherals Ref. Guide

P i h l Chi S Lib R fP i h l Chi S Lib R fSPRUSPRU401401 -- Peripherals Chip Support Lib. Ref.Peripherals Chip Support Lib. Ref.SoftwareSoftwareSoftwareSoftware

SPRUSPRU198198 -- Programmer’s GuideProgrammer’s GuideSPRUSPRU303303 CC60006000 DSP/BIOS User’s GuideDSP/BIOS User’s GuideSPRUSPRU303303 -- CC60006000 DSP/BIOS User s GuideDSP/BIOS User s Guide

Code GenerationCode GenerationSPRUSPRU186186 -- Assembly Language Tools User’s GuideAssembly Language Tools User’s Guide

SPRUSPRU187187 -- Optimizing C Compiler User’s GuideOptimizing C Compiler User’s Guidep g pp g p

Cours DSP Chapitre 1 47ENIS 2012-2013

Refer to the Refer to the CC60006000 Family UpdateFamily Update handout for full listhandout for full list

Page 48: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

Literature sud les DSP

“A Simple Approach to Digital Signal Processing”“A Simple Approach to Digital Signal Processing”b C ib C i MM d Gilli Ed Gilli Eby Craig by Craig MarvenMarven and Gillian Ewers; and Gillian Ewers; ISBN ISBN 00--47114711--52435243--99

“DSP Primer (Primer Series)”“DSP Primer (Primer Series)”b C B ib C B i R b hR b hby C. Britton by C. Britton RorabaughRorabaugh; ; ISBN ISBN 00--07050705--40044004--77

“A DSP Primer : With Applications to Digital Audioand Computer Music” by Ken Steiglitz; ISBN 0-8053-1684-1and Computer Music by Ken Steiglitz; ISBN 0-8053-1684-1

“DSP First : A Multimedia Approach”James H McClellan Ronald W Schafer Mark A Yoder;

Cours DSP Chapitre 1 48ENIS 2012-2013

James H. McClellan, Ronald W. Schafer, Mark A. Yoder;ISBN 0-1324-3171-8

Page 49: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

Literature sud les DSP

“Di it l Si l P i I l t ti“Di it l Si l P i I l t ti“Digital Signal Processing Implementation “Digital Signal Processing Implementation using the TMSusing the TMS320320CC60006000TM DSP Platform”TM DSP Platform”

by Naim Dahnoun; ISBNby Naim Dahnoun; ISBN 02010201--6191661916--44by Naim Dahnoun; ISBN by Naim Dahnoun; ISBN 02010201 6191661916 44

“C“C66 B d Di it l Si l P i ”B d Di it l Si l P i ”“C“C66xx--Based Digital Signal Processing”Based Digital Signal Processing”by Nasser Kehtarnavaz and Burc Simsek;by Nasser Kehtarnavaz and Burc Simsek;

ISBNISBN 00 1313 088310088310 77ISBN ISBN 00--1313--088310088310--77

Cours DSP Chapitre 1 49ENIS 2012-2013

Page 50: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

Programmation des DSPgIl est relativement facile d'écrire un programme pour un DSP, grâce aux

compilateurs C interfacés avec le DSPcompilateurs C interfacés avec le DSP.La façon d'écrire le programme C a une influence significative sur

l'efficacité du code généré.Il existe une phase d'adaptation du code C à un code DSP, permettant

au compilateur de tirer le meilleur parti de l'architecture de calcul.

Cours DSP Chapitre 1 50ENIS 2012-2013

Page 51: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

Programmation des DSP de TIgCode Composer Studio (CCS) : Le logiciel de pilotage de la carte DSPp ( ) g p g

est un logiciel très performant comportant un ensemble complet d'outils dedéveloppement d'applications sur DSP.

Il permet aussi d'augmenter et d'améliorer le processus dedéveloppement pour les programmeurs qui cherchent à créer et tester enpp p p g qtemps réel des applications de traitement de signal.

Il t di iti d til fi t i é tIl met en disposition des outils pour configurer, construire, exécuter,suivre et analyser des programmes.

Cours DSP Chapitre 1 51ENIS 2012-2013

Page 52: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

Programmation des DSPProgrammation des DSPgg

1) Écrire le 2) Optimiser1) Écrire le code C

2) Optimiser le code C

3) Écrire le code assembleur linéaire

Cours DSP Chapitre 1 52ENIS 2012-2013

Page 53: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

Programmation des DSP de TIg

Cours DSP Chapitre 1 53ENIS 2012-2013

Page 54: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

ENIS 2012/2013

Chapitre II :p

Architectures des DSP’sArchitectures des DSP s

Plan Ch suivantCh précédent

Page 55: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

SommaireSommaireTypes de structures mémoireTypes de structures mémoire

Les caches dans les DSPLes caches dans les DSP

Évolution des DSPÉvolution des DSP

SIMD (DSP16xxx, ADSP-2116x, …)

Superscalaire (LSI401Z, …)

VLIW (TMS320 C6 )VLIW (TMS320 C6x)

DSP conventionnels multicore

Processeurs hybrides ARM+DSP

Cours DSP Chapitre 2 55ENIS 2012-2013

Page 56: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

Perspective historiquep q1970 1971: Intel 4004

1972: Intel 80081974: 1er microcontrôleur : TMS 1000

1er ordinateur personnel (8008)

19801979: 1er DSP single-chip : Bell Labs Mac 4

Intel 80861980: 1er DSP autonome : NEC µPD7710

1990

1981: IBM PC (8088)1982: Intel 802861983: 1er succès commercial pour un DSP : TMS 320 C1019901985: Intel 3861986: MIPS -> R2000, premier microprocesseur RISC commercial1989: Intel 486 (utilisation d’un pipeline)

2000

1993: Intel Pentium, PowerPC 6011996: 1er DSP VLIW : TMS 320 C62xx1999: Pentium III 2000: Pentium 4

Cours DSP Chapitre 2 56ENIS 2012-2013

Page 57: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

Historique des Processeurssto que des ocesseu s

1e génération 79-…• Architecture Harvard

Multiplieur cablé

4e génération 92-…Image et vidéo

• Multiplieur cablé

2 é é ti 85

Processeurs faible consommation

2e génération 85-…• Parallélisme• Bus multiples

5e génération 97-…• Bus multiples• Mémoire sur la puce

VLIW

3e génération 88-…• Virgule flottante

HybridesMulticoreVirgule flottanteDSP + RISC

Cours DSP Chapitre 2 57ENIS 2012-2013

Page 58: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

Types de structures mémoireHarvardSé ti d é i

Von NeumanUn seul chemin d'accès à la Séparation des mémoires

programme et données

Meilleure utilisation du CPU :

Un seul chemin d accès à lamémoire

Architecture des processeurs Meilleure utilisation du CPU :Chargement du programme et des données en parallèle

Architecture des processeursd’usage général (Pentium,68000) p

Architecture des DSP

Cours DSP Chapitre 2 58ENIS 2012-2013

Page 59: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

Les types de structures mémoire

Principales différences :

Bande passante (accès instruction et donnée simultanés ou non)

Mémoires (coût, surface)

Contrôle plus ou moins complexe

Cours DSP Chapitre 2 59ENIS 2012-2013

Page 60: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

Cache d'instructionsCache d instructions

DSP

Mémoire InstructionMémoire Cache

Mémoire Instruction

CPU

d’instructions

Mémoire Données Mémoire Cachede données

Cache = mémoire rapideContient les dernières instructions exécutées• Contient les dernières instructions exécutées.

Utile en cas de boucle• Accès aux instructions sans accès en mémoire programme.• Libère le bus pour des données.

Cours DSP Chapitre 2 60ENIS 2012-2013

Page 61: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

DSP à hautes performances

1 mémoire + bus pour les instructions (et les constantes en immédiat)1 mémoire + bus pour les instructions (et les constantes en immédiat)

2 mémoires + bus pour les données

Cours DSP Chapitre 2 61ENIS 2012-2013

Page 62: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

Évolution “hautes performances” pdes DSP

C élé l ?Comment accélérer les programmes ?

PARALLELISME

Solutions courantes :Solutions courantes :

SIMD : DSP16xxx, ADSP-2116x

S l i LSI401ZSuperscalaire : LSI401Z

VLIW : TMS320 C6x

Approches combinées : VLIW + SIMD : TigerSHARC

Cours DSP Chapitre 2 62ENIS 2012-2013

Page 63: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

DSP SIMDSIMD = Single Instruction Multiple DataDeux types de SIMD

Unités parallèlesEffectuent la même opération sur des données différentes

SExemple : ADSP-2116x

Partage de l’unité de traitementPartage de l unité de traitementPartage un mot de donnée en sous-motsEffectue les calculs sur les sous-motsExemple : instructions MMX du PentiumExemple : instructions MMX du Pentium

Demande un effort du programmeurDemande un effort du programmeurEfficace pour des algorithmes parallèles

Cours DSP Chapitre 2 63ENIS 2012-2013

Page 64: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

DSP SIMD : ADSP-21160 SHARCSIMD = Single Instruction Multiple DataSIMD = Single Instruction, Multiple Data

Décodage des instructions simplesDemande un parallélisme bien spécifique

Cours DSP Chapitre 2 64

p p q

ENIS 2012-2013

Page 65: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

DSP SIMDLe TigerSHARC d’Analog Devices met en œuvre les deux types de SIMD :

Instruction MAC SIMD

g g y

Instruction MAC SIMDSIMD par unités parallèles

Unité decalcul n°1

Unité decalcul n°2

MACALU Shift MACALU Shift

SIMD par partage de l’unité de traitement

(split-MAC)4 multiplications 16 bits

au lieu de1 multiplication 64 bits

4 multiplications 16 bitsau lieu de

1 multiplication 64 bits

(split MAC)

Cours DSP Chapitre 2 65ENIS 2012-2013

Page 66: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

DSP superscalaire LSI401Zp

Le processeur se charge de tout : détection, ordonnancement, ...Circuit de contrôle complexe (vitesse surface et consommation)

Cours DSP Chapitre 2 66

Circuit de contrôle complexe (vitesse, surface et consommation)

ENIS 2012-2013

Page 67: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

DSP VLIW : TMS320C62xVLIW = Very Large Instruction Wordy g

VLIW 8 voies (instructions 32 bits soit bus–I de 256 bits)VLIW 8 voies (instructions 32 bits, soit bus–I de 256 bits)Parallélisme dans les instructions (compilateur ou assembleur)Contrôle plus simple que superscalaire

Cours DSP Chapitre 2 67

Contrôle plus simple que superscalaire

ENIS 2012-2013

Page 68: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

DSP VLIW : TMS320C6xVLIW = Very Large Instruction Word

Data path :Deux ensembles d’unités de

traitement (1 et 2)C62x/C67x CPU

C t l

I( )Instruction de 256 bits :

• 8 sous-instructions de 32 bits Instruction DecodeInstruction Dispatch

Instruction Fetch Control Registers

Interrupt C

ontrolEmulation

Unités logique .L :Arithmétique et comparaisonsUnité de décalage S :

Data Path 2Data Path 1

R i t Fil A R i t Fil BUnité de décalage .S :ALU et ShifterUnités de multiplication .M : L1

Register File A

M2D2 S2 L2S1

A15-A0

M1 D1

Register File BB15-B0

MultiplicationUnités de données .D :Mouvement de données de / vers la

L1 M2D2 S2 L2S1

++ +

++x+

M1

xD1++

Mouvement de données de / vers la mémoire

Cours DSP Chapitre 2 68ENIS 2012-2013

Page 69: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

DSP VLIW : TMS320C6x

Instruction de 256 bits8 i t ti d 32 bit

32 bits

8 sous-instructions de 32 bits

32 bits 32 bits 32 bits 32 bits 32 bits 32 bits 32 bits

L1 M2D2 S2 L2S1 M1 D1

+

+ +

+

+x

+x

++

Cours DSP Chapitre 2 69ENIS 2012-2013

Page 70: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

DSP conventionnels multicoreGravure sur la même puce de pdeux cœurs DSP indépendants.

Communication entre les deux :

• Mémoire partagéeInterface FIFO• Interface FIFO

Shared memorytwo-way RAM : permet l'accès simultané à la mémoire par les deux

DSP

Cours DSP Chapitre 2 70

Architecture du C5421cœurs DSP

ENIS 2012-2013

Page 71: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

Processeurs hybrides ARM+DSPProcesseurs hybrides ARM DSP

Systèmes de vidéo numérique :

encodage/décodage• encodage/décodage

Outils de développementOutils de développement• SoC basé DSP

Linux embarquéq• Codecs multimédia

Exemples• Texas : DaVinci 644x• Motorola : 56800E

Les processeurs ARM construits

Cours DSP Chapitre 2 71

Les processeurs ARM construits par Acorn RISC Machines.

ENIS 2012-2013

Page 72: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

Modes d’adressage standardsg⇒Le mode d'adressage général:

♣ registre: l'opérande est un registre du CPU. ♣ immédiat court: l'opérande est une valeur immédiate à 16 bits.♣ immédiat court: l opérande est une valeur immédiate à 16 bits.♣ direct: l'opérande est le contenu d'une adresse de 24 bits.♣ indirect: un registre auxiliaire indique l'adresse de l'opérande.

⇒ Le mode d'adressage à trois opérandes:♣ registre (identique).♣ registre (identique).♣ indirect (identique).

L d d' d llèl⇒ Le mode d'adressage parallèle:♣ registre: l'opérande est un registre à précision étendue.♣ indirect (identique).♣ indirect (identique).

Cours DSP Chapitre 2 72ENIS 2012-2013

Page 73: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

Modes d’adressage standardsg

⇒ Le mode d'adressage immédiat long:♣ l'opérande est une valeur immédiate à 24 bits♣ l opérande est une valeur immédiate à 24 bits.

⇒Le mode d'adressage à branchement conditionnel:♣ registre (identique)..♣ relatif au PC: un déplacement signé sur 16 bits est ajouté au PC♣ relatif au PC: un déplacement signé sur 16 bits est ajouté au PC.

Cours DSP Chapitre 2 73ENIS 2012-2013

Page 74: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

Modes d’adressage standardsg

Les modes d’adressage ont une grande importance pour garantir la hauteLes modes d adressage ont une grande importance pour garantir la hauteperformance (moins d’instructions). Mais, ceci augmente la complexitéarchitecturale des DSP (décodage plus complexe, surface de circuit plusimportante)importante).

Instruction typique : OP SRC1, SRC2, DEST

Opération DestinationSource 1 Source 2

Les DSP possèdent des instructions à usage général et des instructionsarithmétiques intensives qui sont particulièrement convenables pour learithmétiques intensives qui sont particulièrement convenables pour letraitement du signal et les autres applications numériques intensives.

Cinq groupes pour le mode d'adressage sont fournies, six typesd'adressage peuvent être utilisés dans chaque groupe:

Cours DSP Chapitre 2 74

d adressage peuvent être utilisés dans chaque groupe:

ENIS 2012-2013

Page 75: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

Les caches dans les DSP

L’accès à une mémoire externe ou des mémoires internes deL accès à une mémoire externe, ou des mémoires internes degrande taille, est coûteuse en terme temps et/ou énergie.

Solution : Intégrer des mémoires cachesSolution : Intégrer des mémoires cachesDiminuer le trafic mémoire externe / CPUModes d’adressage spécifiques (circulaire)Modes d adressage spécifiques (circulaire)Optimisation du code

Les mémoires caches sont caractérisées par :Les mémoires caches sont caractérisées par :Coût élevé.Petites tailles (32 instructions à 2 K instructions)Petites tailles (32 instructions à 2 K instructions).Cache instruction et cache données.Configurables par l’utilisateurg p

Ces caractéristiques particulières sont indispensables pour garantirles bonnes performances pour le traitement en temps réel.

Cours DSP Chapitre 2 75

p p p

ENIS 2012-2013

Page 76: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

Exemples de caractéristiquesExemples de caractéristiques mémoires et caches

Cours DSP Chapitre 2 76ENIS 2012-2013

Page 77: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

ENIS 2012/2013

Chapitre III :C ap e

Architecture Interne du TMS320 C64xArchitecture Interne du TMS320 C64x

Plan Ch suivantCh précédent

Page 78: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

SommaireSommaire

Unités fonctionnellesRegistresRegistresPaquet de fetch et d’exécutionStructure d’une instructionStructure d une instructionPipelineMémoire cacheJeu d’instructionDifférents modes d’adressagesSyntaxe des instructionsSyntaxe des instructionsContraintes

Cours DSP Chapitre 3 78ENIS 2011-2012

Page 79: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

Unités fonctionnellesUnités fonctionnellesDeux chemins de données : A et B

Chaque chemin contient 4 unités de traitement : (.M) : Multiplication( ) p

(.L) : Opération logique et arithmétique

( S) : Branchement et manipulation binaire(.S) : Branchement et manipulation binaire

(.D) : Chargement et stockage des données

64 registres de 32 bits (A0 à A31) et (B0 à B31)64 registres de 32 bits (A0 à A31) et (B0 à B31)

2 chemins croisés (1x et 2x) (cross path)

Registre A0 à A31 Registre B0 à B31

Chemin de données A Chemin de données B

.L1 .S1 .M1 .D1 .L2 .S2 .M2 .D2

Cours DSP Chapitre 3 79

Chemin croisé

ENIS 2012-2013

Page 80: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

RegistresRegistres

Registres A0, A1, A2, B0, B1 et B2 peuvent êtres utilisés comme desregistres à condition.eg st es à co d t o

Registres A4 à A7 et B4 à B7 : pointeur pour le mode d’adressagecirculaire.c cu a e

Registres A0 à A9 et B0 à B9 : registre temporaire.Registre A10 à A31 et B10 à B31 : mémorisés et puis restaurés àRegistre A10 à A31 et B10 à B31 : mémorisés et puis restaurés à

chaque appel à un sous programme.On peut former 32 registres de 40 ou 64 bits en utilisant les paires deOn peut former 32 registres de 40 ou 64 bits en utilisant les paires de

registres A0:A1, A2:A3, ……et B30:B31.Il existe d’autres registres de contrôles d’interruptions de modesIl existe d autres registres de contrôles, d interruptions, de modes,

etc.

Cours DSP Chapitre 3 80ENIS 2012-2013

Page 81: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

Paquet de Fetch et d’ExécutionVELOCI TI hit t él b é TI b é l t t VLIW

Paquet de Fetch et d ExécutionVELOCI TI : architecture élaborée par TI basée sur la structure VLIW(Very Long Instruction Word)

Instruction : 4 octets = 32 bits

PE : paquet exécutable: groupe d’instructions exécutables en //pendant un seul cyclep y

PF : paquet Fetch formé de 8 instructions

peut contenir 1 PE (si toutes les 8 Insts en //) ou 8 PE (paspeut contenir 1 PE (si toutes les 8 Insts en //) ou 8 PE (pasd’insts en // )

Le LSB d’une instruction (p-bit) indique si la prochaine instructionappartiennent au même PE (si 1) ou non (si 0).

Cours DSP Chapitre 3 81ENIS 2012-2013

Page 82: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

Paquet de Fetch et d’ExécutionE l 1

Paquet de Fetch et d ExécutionExemple 1 :Instruction A Un PF avec 3 PEs le LSB (p-bit) de chaque Intr

Instruction B31 0 31 0 31 0 31 0 31 0 31 0 31 0 31 0

1 0 1 1 0 1 1 0Instruction C

Instruction DA B C D E F G H

1 0 1 1 0 1 1 0

Instruction E

Instruction F

Instruction GInstruction G

Instruction H

Cours DSP Chapitre 3 82ENIS 2012-2013

Page 83: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

Paquet de Fetch et d’ExécutionPaquet de Fetch et d ExécutionExemple 2:Exemple 2:

Cours DSP Chapitre 3 83ENIS 2011-2012

Page 84: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

Paquet de Fetch et d’ExécutionPaquet de Fetch et d ExécutionExemple 3:

Exemple 4:

Cours DSP Chapitre 3 84ENIS 2012-2013

Page 85: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

Rappel: PipelineRappel: Pipeline

Cycles d’horloges

N Pi li é

1 2 3 4 5 6 7 8 9

Non-Pipeliné

Pipeliné

PF1 D1 E1 PF2 D2 E2 PF3 D3 E3

PF1 D1 E1

PF D EPF2 D2 E2

PF3 D3 E3 Pipeline complet (tout les étagesopèrent simultanémentopèrent simultanémentavec l’exécution d’uneinstruction / cycle)

Cours DSP Chapitre 3 85ENIS 2012-2013

Page 86: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

PipelinePipeline

PG PS PW PR DP DC E1 E2 E3 E4 E5 E6

Fetch Decode Execute

Extraction du programme (Fetch)

Ré titi d i t ti (Di t h)Répartition des instructions (Dispatch)

Décodage des instructions

Registre A0 à A31 Registre B0 à B31

Chemin de données A Chemin de données B

.L1 .S1 .M1 .D1 .L2 .S2 .M2 .D2

Cours DSP Chapitre 3 86ENIS 2012-2013

Page 87: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

PipelinePipelineÉtapes d’extraction du ProgrammeÉtapes d extraction du Programme

(fetch, PF)

PGGé é ti

PST i i d PW PR

Ré ti t l tGénération d’adresse

Dans le CPU

Transmission de l’adresse

(à la mémoire)

Attente accès mémoire

Réception et lecture du PF

(au CPU)

‘C‘C66xxCPUCPUPRPR CPUCPUPRPR

MemoryMemory PGPG

Cours DSP Chapitre 3 87ENIS 2012-2013PWPW

PSPS

Page 88: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

PipelinePipelineÉtape du décodage

d’instruction (D)

DPRépartition des instructions d’ PF f d PE

DCDécodage des PEsd’un PF sous forme de PE Décodage des PEs

PRPR

‘C‘C66x x CPUCPU FuncFunc

UnitsUnitsDCDC

UnitsUnits

DPDP

PGPGMemoryMemoryPSPS

Cours DSP Chapitre 3 88ENIS 2012-2013

PWPW

Page 89: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

PipelinePipeline

Jusqu’à 6 cycles et tout dépend de l’instruction !!

Étape d’exécution(E)dépend de l instruction !!

E1 E5E1courtes inst (ADD, SUB, AND, OR,

XOR, etc…)

E2Instruction MPY

E3; E4Slots de retard

E6Branchement

E5Chargement des valeurs

dans un registre, ) g

Etage réservée pour les instructions longues

Cours DSP Chapitre 3 89ENIS 2012-2013

Page 90: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

PipelinePipeline

Cours DSP Chapitre 3 90ENIS 2012-2013

Page 91: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

PipelinePipeline

Pour compléter le sujet du pipeline, on va voir à travers un exemple la manière dont un DSP

exécute des instructions en // et pipelinées.

Considérons les 3 exemples suivants :

a) Série b) Parallèle Partielle c) Parallèle totale

B .S1MVK .S1ADD .L1ADD L1

B .S1|| MVK .S2

ADD .L1|| ADD L2

B .S1|| MVK .S2|| ADD .L1|| ADD L2ADD .L1

MPY .M1MPY .M1LDW .D1LDB .D1

|| ADD .L2|| MPY .M1

MPY .M1|| LDW D1

|| ADD .L2|| MPY .M1|| MPY .M2|| LDW .D1|| LDB D2LDB .D1 || LDW .D1

|| LDB .D2|| LDB .D2

Cours DSP Chapitre 3 91ENIS 2012-2013

Page 92: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

PipelinePipelineExécution en Série (1er exemple)

Une seule INSTRUCTION par Cycle entre dans le pipeline En arrivant à l’étape DP (Decode),

Cycle = 4

PR DP DC E1 E2 E3 E4 E5 E6

PF Decode Execute Done

a) Série

BMVKADDADD

B .S1MVK .S1ADD .L1ADD .L1

ADDMPYMPYLDWLDB

MPY .M1MPY .M1LDW .D1LDB .D1

LDB

Cours DSP Chapitre 3 92ENIS 2012-2013

Page 93: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

PipelinePipelineExécution en Série (1er exemple)

Une seule INSTRUCTION par Cycle entre dans le pipeline En arrivant à l’étape DP (Decode),

Cycle = 5

PF DP DC E1 E2 E3 E4 E5 E6

PF Decode Execute Done

a) Série

B .S1MVK .S1ADD .L1ADD .L1MPY .M1MPY .M1LDW .D1LDB .D1

Cours DSP Chapitre 3 93ENIS 2012-2013

Page 94: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

PipelinePipelineExécution en Série (1er exemple)

Une seule INSTRUCTION par Cycle entre dans le pipeline En arrivant à l’étape DP (Decode),

Cycle = 6

PF DP DC E1 E2 E3 E4 E5 E6

PF Decode Execute Done

a) Série

B .S1MVK .S1ADD .L1ADD .L1MPY .M1MPY .M1LDW .D1LDB .D1

Cours DSP Chapitre 3 94ENIS 2012-2013

Page 95: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

PipelinePipeline

Cycle = 7

PF DP DC E1 E2 E3 E4 E5 E6

PF Decode Execute Done

Cours DSP Chapitre 3 95ENIS 2012-2013

Page 96: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

PipelinePipeline

Cycle = 8

PF DP DC E1 E2 E3 E4 E5 E6

PF Decode Execute Done

Cours DSP Chapitre 3 96ENIS 2012-2013

Page 97: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

PipelinePipeline

Cycle = 9

PF DP DC E1 E2 E3 E4 E5 E6

PF Decode Execute Done

Cours DSP Chapitre 3 97ENIS 2012-2013

Page 98: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

PipelinePipeline

Cycle = 10

PF DP DC E1 E2 E3 E4 E5 E6

PF Decode Execute Done

Cours DSP Chapitre 3 98ENIS 2012-2013

Page 99: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

PipelinePipeline

Cycle = 11

PF DP DC E1 E2 E3 E4 E5 E6

PF Decode Execute Done

Cours DSP Chapitre 3 99ENIS 2012-2013

Page 100: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

PipelinePipeline

Cycle = 12

PF DP DC E1 E2 E3 E4 E5 E6

PF Decode Execute Done

B

Cours DSP Chapitre 3 100ENIS 2012-2013

Page 101: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

PipelinePipeline

Cycle = 13

PF DP DC E1 E2 E3 E4 E5 E6

PF Decode Execute Done

Cours DSP Chapitre 3 101ENIS 2012-2013

Page 102: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

PipelinePipeline

Cycle = 14

PF DP DC E1 E2 E3 E4 E5 E6

PF Decode Execute Done

Cours DSP Chapitre 3 102ENIS 2012-2013

Page 103: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

PipelinePipeline

Cycle = 19

PF DP DC E1 E2 E3 E4 E5 E6

PF Decode Execute Done

Cours DSP Chapitre 3 103ENIS 2012-2013

Page 104: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

PipelineE é ti // ti ll (2eme l )

PipelineExécution en // partielle (2eme exemple)

Comment écrire des instructions en //? On utilise le symbole “||” :

B .S1|| MVK S2|| MVK .S2

ADD L1ADD .L1|| ADD .L2|| MPY M1|| MPY .M1

MPY .M1MPY .M1|| LDW .D1|| LDB .D2

Cours DSP Chapitre 3 104

|| .

ENIS 2012-2013

Page 105: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

PipelinePipelineExécution en // partielle (2eme exemple)

Comment écrire des instructions en //? On utilise le symbole “||” :

Cycle = 6Cycle = 6

PF DP DC E1 E2 E3 E4 E5 E6

PF Decode Execute Done

√B S1 PF DP DC E1 E2 E3 E4 E5 E6 √B .S1|| MVK .S2

ADD .L1|| ADD .L2|| ADD .L2|| MPY .M1

MPY .M1|| LDW .D1|||| LDB .D2

Cours DSP Chapitre 3 105ENIS 2012-2013

Page 106: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

Cycle = 7

PF E t D

PF DP DC E1 E2 E3 E4 E5 E6

PF Decode Execute Done

Cycle = 8

PF DP DC E1 E2 E3 E4 E5 E6

PF Decode Execute Done

Cours DSP Chapitre 3 106ENIS 2012-2013

Page 107: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

Cycle = 9

PF E t D

PF DP DC E1 E2 E3 E4 E5 E6

PF Decode Execute Done

Cycle = 10

PF DP DC E1 E2 E3 E4 E5 E6

PF Decode Execute Done

Cours DSP Chapitre 3 107ENIS 2012-2013

Page 108: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

Cycle = 11

PF E t D

PF DP DC E1 E2 E3 E4 E5 E6

PF Decode Execute Done

Cycle = 12

PF DP DC E1 E2 E3 E4 E5 E6

PF Decode Execute Done

Cours DSP Chapitre 3 108ENIS 2012-2013

Page 109: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

Cycle = 13

PF E t D

PF DP DC E1 E2 E3 E4 E5 E6

PF Decode Execute Done

Cycle = 14

PF DP DC E1 E2 E3 E4 E5 E6

PF Decode Execute Done

Cours DSP Chapitre 3 109ENIS 2012-2013

Page 110: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

PipelinePipelineExécution en // totale

On a déjà vu un PF contenant 8 instructions en série ou 3 PEs en utilisant le parallélisme Il estOn a déjà vu un PF contenant 8 instructions en série ou 3 PEs en utilisant le parallélisme. Il est

possible que toutes les instructions soient en //. On aura donc un seul PE.

Parallèle totale

B .S1|| MVK .S2|| ADD L1|| ADD .L1|| ADD .L2|| MPY .M1|| MPY .M2|| LDW D1|| LDW .D1|| LDB .D2

Cours DSP Chapitre 3 110ENIS 2012-2013

Page 111: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

PipelinePipeline

Cycle = 7

PF DP DC E1 E2 E3 E4 E5 E6

PF Decode Execute Done

Cours DSP Chapitre 3 111ENIS 2012-2013

Page 112: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

Cycle = 8

PF D d Execute Done

PF DP DC E1 E2 E3 E4 E5 E6

PF Decode Execute Done

Cycle = 9

PF DP DC E1 E2 E3 E4 E5 E6

PF Decode Execute Done

Cours DSP Chapitre 3 112ENIS 2012-2013

Page 113: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

Cycle = 11

PF D d Execute Done

PF DP DC E1 E2 E3 E4 E5 E6

PF Decode Execute Done

MVKADDADD

B

ADDMPYMPYLDW

LDB

Cycle = 13

PF DP DC E1 E2 E3 E4 E5 E6

PF Decode Execute Done

MVKADDADD

B

MPYMPYLDWLDB

Cours DSP Chapitre 3 113ENIS 2012-2013

Page 114: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

Bus interne du C6000PCPC

Program AddrProgram Addr xx3232

Program DataProgram Dataxx256256InternalInternal gg

AAData AddrData Addr -- TT11 xx3232MemoryMemory

AAregsregsData DataData Data -- TT11 xx3232//6464

BBregsregs

Data AddrData Addr -- TT22 xx3232

Data DataData Data -- TT22 xx3232//6464

ExternalExternal

MemoryMemory

DMA AddrDMA Addr -- ReadRead xx3232

gg

DMADMADMA DataDMA Data -- ReadRead xx3232

DMA AddrDMA Addr WriteWrite xx3232PeripheralsPeripherals

DMA AddrDMA Addr -- WriteWrite xx3232DMA DataDMA Data -- WriteWrite xx3232

CC6262x: Dualx: Dual 3232 Bit Load/StoreBit Load/Store

Cours DSP Chapitre 3 114ENIS 2012-2013

CC6262x: Dual x: Dual 3232--Bit Load/StoreBit Load/StoreCC6464x: Dual x: Dual 6464--Bit Load/StoreBit Load/Store

CC6767x: Dual x: Dual 6464--Bit Load / Bit Load / 3232--Bit StoreBit Store

Page 115: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

Bloc Diagramme du systemeInternalInternalMemoryMemory

ExternalExternal

MemoryMemory

ExternalExternalMemoryMemory

Internal BusesInternal Buses

.D.D11 .D.D22 ReReRR

.M.M11

LL11

.M.M22

LL22

egister Segister S

egister Segister S

.L.L11

.S.S11

.L.L22

.S.S22

Set BSet B

Set ASet A

CPUCPU

Cours DSP Chapitre 3 115ENIS 2012-2013

Page 116: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

Contrôleurs d’accès mémoireDMA : Contrôleur du transfert des données entre les plages

Contrôleurs d accès mémoireDMA : Contrôleur du transfert des données entre les plages

d’adresse de la mémoire sans l’interférence du CPU. Formé par 4canaux programmables et un cinquième auxiliaire.p g q

EDMA : même chose que le DMA mais avec 16 canauxprogrammable et une RAM pour la mémorisation de plusieursconfigurations pour des transferts projeté.

HPI : interface parallèle du processeur host permettant l’accès directà l’espace mémoire du CPU pour échanger le contenu des registresà l espace mémoire du CPU pour échanger le contenu des registresd’état.

EMIF : remplace le HPI. Il permet l’échange asynchrone d’informationentre non seulement le CPU et le Processeur host mais aussi avecl’ té i à t l t d’E/S

Cours DSP Chapitre 3 116

l’extérieur à travers les ports d’E/S .

ENIS 2012-2013

Page 117: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

'C6000 Peripherals InternalInternalMemoryMemory

XB, PCI,XB, PCI,Host PortHost Port

ExternalExternal

MemoryMemoryGPIOGPIO

ExternalExternalMemoryMemory

Internal BusesInternal BusesEMIFEMIF

.D.D11 .D.D22 ReReRR

McBSP’sMcBSP’sUtopiaUtopia

.M.M11

LL11

.M.M22

LL22

egister Segister S

egister Segister S

DMA, EDMADMA, EDMA(Boot)(Boot) .L.L11

.S.S11

.L.L22

.S.S22

Set BSet B

Set ASet A

VCPVCPTimersTimers

CPUCPUVCPVCPTCPTCP

Cours DSP Chapitre 3 117ENIS 2012-2013

Page 118: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

EMIFInternalInternalMemoryMemory

AsyncAsyncMemoryMemory

Internal BusesInternal BusesSDRAMSDRAM EMIFEMIF

.D.D11 .D.D22 ReReRR

.M.M11

LL11

.M.M22

LL22

egister Segister S

egister Segister S

SBSRAMSBSRAM

.L.L11

.S.S11

.L.L22

.S.S22

Set BSet B

Set ASet AExternal Memory Interface (External Memory Interface (EMIFEMIF))

GluelessGlueless access toaccess to asyncasync/sync memory/sync memoryExternal Memory Interface (External Memory Interface (EMIFEMIF))

GluelessGlueless access toaccess to asyncasync/sync memory/sync memoryCPUCPU

GluelessGlueless access to access to asyncasync/sync memory/sync memoryWorks with PCWorks with PC100 100 SDRAM (cheap, fast, and easy!)SDRAM (cheap, fast, and easy!)ByteByte--wide data accesswide data access

GluelessGlueless access to access to asyncasync/sync memory/sync memoryWorks with PCWorks with PC100 100 SDRAM (cheap, fast, and easy!)SDRAM (cheap, fast, and easy!)ByteByte--wide data accesswide data access

Cours DSP Chapitre 3 118ENIS 2012-2013

1616, , 3232, or , or 6464--bit bus widthsbit bus widths1616, , 3232, or , or 6464--bit bus widthsbit bus widths

Page 119: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

HPI / XBUS / PCIInternalInternalMemoryMemory

XBUS, PCI,XBUS, PCI,Host PortHost Port

ExternalExternal

MemoryMemory

ExternalExternalMemoryMemory

Internal BusesInternal BusesEMIFEMIF

.D.D11 .D.D22 ReReRRParallel Peripheral InterfaceParallel Peripheral InterfaceParallel Peripheral InterfaceParallel Peripheral Interface

.M.M11

LL11

.M.M22

LL22

egister Segister S

egister Segister S

Parallel Peripheral InterfaceParallel Peripheral InterfaceHPI:HPI: Dedicated, slaveDedicated, slave--only, async only, async 1616//3232--bit bus allows hostbit bus allows host--μμP P

access to Caccess to C60006000 memorymemory

Parallel Peripheral InterfaceParallel Peripheral InterfaceHPI:HPI: Dedicated, slaveDedicated, slave--only, async only, async 1616//3232--bit bus allows hostbit bus allows host--μμP P

access to Caccess to C60006000 memorymemory .L.L11

.S.S11

.L.L22

.S.S22

Set BSet B

Set ASet A

yyXBUS:XBUS: Similar to HPI but provides …Similar to HPI but provides …

Master/slave and sync modesMaster/slave and sync modesGl l i/f FIFO ( i lGl l i/f FIFO ( i l l f )l f )

yyXBUS:XBUS: Similar to HPI but provides …Similar to HPI but provides …

Master/slave and sync modesMaster/slave and sync modesGl l i/f FIFO ( i lGl l i/f FIFO ( i l l f )l f )

CPUCPUGlueless i/f to FIFOs (up to singleGlueless i/f to FIFOs (up to single--cycle xfer rate)cycle xfer rate)

PCI:PCI: Standard Standard 3232--bit, bit, 3333MHz PCI interfaceMHz PCI interfaceGlueless i/f to FIFOs (up to singleGlueless i/f to FIFOs (up to single--cycle xfer rate)cycle xfer rate)

PCI:PCI: Standard Standard 3232--bit, bit, 3333MHz PCI interfaceMHz PCI interface

Cours DSP Chapitre 3 119ENIS 2012-2013

These interfaces provide means to bootstrap the CThese interfaces provide means to bootstrap the C60006000These interfaces provide means to bootstrap the CThese interfaces provide means to bootstrap the C60006000

Page 120: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

GPIOInternalInternalMemoryMemory

XB, PCI,XB, PCI,Host PortHost Port

ExternalExternal

MemoryMemoryGPIOGPIO

ExternalExternalMemoryMemory

Internal BusesInternal BusesEMIFEMIF

.D.D11 .D.D22 ReReRR

.M.M11

LL11

.M.M22

LL22

egister Segister S

egister Segister S

.L.L11

.S.S11

.L.L22

.S.S22

Set BSet B

Set ASet A

General PurposeGeneral Purpose Input/OutputInput/Output (GPIO)(GPIO)General PurposeGeneral Purpose Input/OutputInput/Output (GPIO)(GPIO)CPUCPU

General Purpose General Purpose Input/OutputInput/Output (GPIO)(GPIO)‘C‘C6464x provides x provides 8 8 or or 16 16 bits of general purpose bitwise I/Obits of general purpose bitwise I/OU t b t l th i l f i lU t b t l th i l f i l ii

General Purpose General Purpose Input/OutputInput/Output (GPIO)(GPIO)‘C‘C6464x provides x provides 8 8 or or 16 16 bits of general purpose bitwise I/Obits of general purpose bitwise I/OU t b t l th i l f i lU t b t l th i l f i l ii

Cours DSP Chapitre 3 120ENIS 2012-2013

Use to observe or control the signal of a singleUse to observe or control the signal of a single--pinpinUse to observe or control the signal of a singleUse to observe or control the signal of a single--pinpin

Page 121: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

InternalInternalMemoryMemory

XB, PCI,XB, PCI,Host PortHost Port

ExternalExternal

MemoryMemoryGPIOGPIO

ExternalExternalMemoryMemory

Internal BusesInternal BusesEMIFEMIF

.D.D11 .D.D22 ReReRR

McBSP’sMcBSP’sUtopiaUtopia

.M.M11

LL11

.M.M22

LL22

egister Segister S

egister Segister S

MultiMulti--Channel Buffered Serial Port (Channel Buffered Serial Port (McBSPMcBSP))22 (or(or 33) f) fullull--duplex synchronous serialduplex synchronous serial--portsports

MultiMulti--Channel Buffered Serial Port (Channel Buffered Serial Port (McBSPMcBSP))22 (or(or 33) f) fullull--duplex synchronous serialduplex synchronous serial--portsports .L.L11

.S.S11

.L.L22

.S.S22

Set BSet B

Set ASet A

2 2 (or (or 33) f) fullull duplex, synchronous serialduplex, synchronous serial portsportsUp to Up to 100 100 Mb/sec performanceMb/sec performanceSSupportsupports multimulti--channel operation (Tchannel operation (T11, E, E11, MVIP, …), MVIP, …)

2 2 (or (or 33) f) fullull duplex, synchronous serialduplex, synchronous serial portsportsUp to Up to 100 100 Mb/sec performanceMb/sec performanceSSupportsupports multimulti--channel operation (Tchannel operation (T11, E, E11, MVIP, …), MVIP, …)

CPUCPUUtopia (Utopia (CC6464xx))ATM connectionATM connection

Utopia (Utopia (CC6464xx))ATM connectionATM connection

Cours DSP Chapitre 3 121ENIS 2012-2013

5050 MHz wide area network connectivityMHz wide area network connectivity5050 MHz wide area network connectivityMHz wide area network connectivity

Page 122: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

DMA / EDMAInternalInternalMemoryMemory

XB, PCI,XB, PCI,Host PortHost Port

ExternalExternal

MemoryMemoryGPIOGPIO

ExternalExternalMemoryMemory

Internal BusesInternal BusesEMIFEMIF

.D.D11 .D.D22 ReReRR

McBSP’sMcBSP’sUtopiaUtopia

.M.M11

LL11

.M.M22

LL22

egister Segister S

egister Segister S

DMA, EDMADMA, EDMA(Boot)(Boot) .L.L11

.S.S11

.L.L22

.S.S22

Set BSet B

Set ASet ADirect Memory Access (DMA / EDMA) Direct Memory Access (DMA / EDMA)

Transfers any set of memory locations to anotherTransfers any set of memory locations to anotherDirect Memory Access (DMA / EDMA) Direct Memory Access (DMA / EDMA)

Transfers any set of memory locations to anotherTransfers any set of memory locations to anotherCPUCPU

y yy y4 4 / / 16 16 / / 64 64 channels (transfer parameter sets)channels (transfer parameter sets)Transfers can be triggered by any interrupt (sync)Transfers can be triggered by any interrupt (sync)Operates independent of CPUOperates independent of CPU

y yy y4 4 / / 16 16 / / 64 64 channels (transfer parameter sets)channels (transfer parameter sets)Transfers can be triggered by any interrupt (sync)Transfers can be triggered by any interrupt (sync)Operates independent of CPUOperates independent of CPU

Cours DSP Chapitre 3 122ENIS 2012-2013

Operates independent of CPUOperates independent of CPUOn reset, provides bootstrap from memoryOn reset, provides bootstrap from memoryOperates independent of CPUOperates independent of CPUOn reset, provides bootstrap from memoryOn reset, provides bootstrap from memory

Page 123: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

Timer/CounterInternalInternalMemoryMemory

XB, PCI,XB, PCI,Host PortHost Port

ExternalExternal

MemoryMemoryGPIOGPIO

ExternalExternalMemoryMemory

Internal BusesInternal BusesEMIFEMIF

.D.D11 .D.D22 ReReRR

McBSP’sMcBSP’sUtopiaUtopia

.M.M11

LL11

.M.M22

LL22

egister Segister S

egister Segister S

DMA, EDMADMA, EDMA(Boot)(Boot) .L.L11

.S.S11

.L.L22

.S.S22

Set BSet B

Set ASet ATimersTimers

CPUCPUTimer / CounterTimer / CounterTwo (or three) Two (or three) 3232--bit timer/countersbit timer/countersCan generate interruptsCan generate interrupts

Timer / CounterTimer / CounterTwo (or three) Two (or three) 3232--bit timer/countersbit timer/countersCan generate interruptsCan generate interrupts

Cours DSP Chapitre 3 123ENIS 2012-2013

Can generate interruptsCan generate interruptsBoth iBoth input and output pinsnput and output pinsCan generate interruptsCan generate interruptsBoth iBoth input and output pinsnput and output pins

Page 124: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

Phase Locked Loop (PLL)InternalInternalMemoryMemory

XB, PCI,XB, PCI,Host PortHost Port

ExternalExternal

MemoryMemoryGPIOGPIO

ExternalExternalMemoryMemory

Internal BusesInternal BusesEMIFEMIF

.D.D11 .D.D22

RegisRegis

RegisRegis

McBSP’sMcBSP’sUtopiaUtopia InputInputInputInput

.M.M11

LL11

.M.M22

LL22

ster Set Bster Set B

ster Set Aster Set A

DMA, EDMADMA, EDMA(Boot)(Boot)PLLPLLPLLPLL

CLKINCLKIN

OutputOutputCLKINCLKIN

OutputOutput.L.L11

.S.S11

.L.L22

.S.S22

BBAA

VCPVCPTimersTimers

External clock multiplierExternal clock multiplierReduces EMI and costReduces EMI and costPin selectablePin selectable

External clock multiplierExternal clock multiplierReduces EMI and costReduces EMI and costPin selectablePin selectable

ppCLKOUTCLKOUT11-- Output rate of PLLOutput rate of PLL

ppCLKOUTCLKOUT11-- Output rate of PLLOutput rate of PLL

CPUCPUVCPVCPTCPTCPPLLPLL

Pin selectablePin selectablePin selectablePin selectable -- Instruction (MIP) rateInstruction (MIP) rateCLKOUTCLKOUT22

11//22 rate of CLKOUTrate of CLKOUT11

-- Instruction (MIP) rateInstruction (MIP) rateCLKOUTCLKOUT22

11//22 rate of CLKOUTrate of CLKOUT11

Cours DSP Chapitre 3 124ENIS 2012-2013

-- 11//22 rate of CLKOUTrate of CLKOUT11-- 11//22 rate of CLKOUTrate of CLKOUT11

Page 125: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

'0x Memory Scheme00000000 0000000000000000__00000000

1616MB ExternalMB External((CECE00))CECE00

A A Memory MapMemory Map is a table is a table representation of memoryrepresentation of memory

External (External (CECE11))01000100__00000000 CECE11

p yp y

This is more convenient than a This is more convenient than a block diagram descriptionblock diagram description

Internal ProgramInternal Program01400140__00000000g pg p

00000000 00000000 01000100 0000000016 16 MBMB

__CECE00 4 4 MBMB

__CECE1101400140__00000000

ProgramProgram

CC60006000CPUCPU EMIFEMIF

1616 MBMB

02000200__00000000CECE22

1616 MBMB03000300__00000000

CECE3380008000__00000000

DataData

Cours DSP Chapitre 3 125ENIS 2012-2013

16 16 MBMB 1616 MBMB

Page 126: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

'0x Memory Scheme00000000 0000000000000000__00000000

1616MB ExternalMB External((CECE00))CECE00

01000100__00000000 44MB External MB External ((CECE11))CECE11

ProgramProgram Internal ProgramInternal Program01400140__00000000

02000200 00000000

CC60006000CPUCPU EMIFEMIF

CECE00

CECE33

1616MB ExternalMB External((CECE00))CECE22

02000200__00000000

1616MB ExternalMB External((CECE00))CECE33

03000300__00000000

DataData

Internal DataInternal Data

((CECE00))CECE33

80008000 00000000 ee__

Cours DSP Chapitre 3 126ENIS 2012-2013D

FFFF_FFFFFFFF_FFFF

Page 127: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

Mémoire cache L1Mémoire cache L1

L1P : Le C6x contient une mémoire cache programme de 32 bits de bus p gd’adresses et de 256 bits (bus de données).

Noté que : 1 PF = 256 bits = 8*32 = 8 instructions!q

L1D: Le C64x contient une mémoire cache de données de 64 bits (bus de données) et de 32 bits (bus d’adresses).) ( )

Remarque : Le C62x et le C67x contiennent 32 bits de bus de données.

Cours DSP Chapitre 3 127ENIS 2012-2013

Page 128: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

Cache L1PCache L1PRAM externe

CacheDSPC64

Cache

L2PMémoire cache

L1P

16 Ko

256Ko 1024Ko256Ko-1024Ko

4 Go

Noté bien: pas de RAM interne

Cours DSP Chapitre 3 128

4 Go

Page 129: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

Cache L1PCache L1P31 14 13 5 4

Tag Set Index Offset31 14 13 5 4 0

TAG (18 bits) : il contient les MSB de l’adresse. Stocké dansune mémoire tampon pour indiquer la présence de la plaged’adresse désirée dans la cache ou non.

Set Index (9 bits) : un set est une collection de ligne de trame.Dans un système d’adressage direct chaque set contient uneDans un système d adressage direct, chaque set contient uneseule ligne.

Offset (5 bits) : détermine l’offset dans une ligne et permet parconséquent l’adressage par octet dans un PF.

Cours DSP Chapitre 3 129ENIS 2012-2013

Page 130: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

ExempleSupposons que nous avons un DSP fictif, avec un bus d’adresse égale à 5 bits:

Exemple

RAM00000 5 bits

DSP00001

......

00111

5 bitsTag = 00

Bus d’adresse

0100001001

...Tag = 01...

01111TAG (2 bits)

3 bits

Mémoire cache

1100011001

...Tag = 11

Cours DSP Chapitre 3 130

...11111

ENIS 2012-2013

Page 131: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

Cache L1PCache L1P

offsetSet/Cache ligne

31 3 2 1 0…0

g8bits

31 3 2 1 0

31 3 2 1 031 3 2 1 0

31 3 2 1 031 3 2 1 0

…………

12345 31 3 2 1 0

31 3 2 1 031 3 2 1 0

………

5…

511

Dans le C64x,,L1P = 16 Ko = 512 * 32 octets pour un mode d’adressage direct.

Cours DSP Chapitre 3 131ENIS 2012-2013

Page 132: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

Cache L1PSoit l’instruction suivante et son adresse :

Cache L1P

Code opération Paramètres

80000250 003C22F4 STW.D2T1 A0,*+SP[0x1]

Adresse de l’instruction Instruction

A partir de l’adresse de l’instruction (0x80000250) on déterminep ( )l’offset, le set et le tag :

31 14 13 5 4 0Tag Set Offset

8 0 0 0 0 2 5 0

1000 0000 0000 0000 00 00 0010 010 1 0000Tag Set Offset

Cours DSP Chapitre 3 132

18 16131072

ENIS 2012-2013

Page 133: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

Cache L1DCache L1DT S I d Off

31 13 12 2 1G

6 5 0Tag Set Index OffsetGroup

TAG (19 bits) : il contient les MSB de l’adresse. Stocké dans unemémoire tampon pour indiquer la présence de la plage d’adressedésirée dans le cache ou non (miss / hit)désirée dans le cache ou non (miss / hit).

Set Index (7 bits) : un ensemble est une collection de ligne deSet Index (7 bits) : un ensemble est une collection de ligne detrame. Dans un système d’adressage associatives par ensemblede deux blocs, chaque ensemble contient deux ligne.

Group (4 bits) : sélectionne le mot dans un ensemble qui contientles données désiréesles données désirées.

Offset (2 bits) : détermine l’offset d’un mot dans l’adresse

Cours DSP Chapitre 3 133

Offset (2 bits) : détermine l offset d un mot dans l adresse.

ENIS 2012-2013

Page 134: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

Cache L1DCache L1DLigne cache (2 per set)Set

32bits

Groupe

2

2…15 3 2 1 015 3 1 0

15 3 2 1 015 3 2 1 0

15 3 2 1 0

………

0

1

15 3 2 1 015 3 2 1 0

15 3 2 1 015 3 2 1 0

……

……2

127

Dans le C64x, L1D = 16 Ko = 128 * 16 * 2* 4 octets pour un moded’adressage associative par ensemble de 2 blocsd adressage associative par ensemble de 2 blocs.

Il y’a 128 ensembles contenant chacun 2 lignes cacheIl y a 128 ensembles contenant chacun 2 lignes cache.

Chaque ligne est formée de 64 octets.

Cours DSP Chapitre 3 134

Chaque ligne est formée de 64 octets.

ENIS 2012-2013

Page 135: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

Cache L1DCache L1D

215 3 2 1 015 3 1 0…0

32bits

15 3 2 1 015 3 2 1 0

15 3 2 1 015 3 2 1 0

15 3 2 1 0

……

……1

2…

15 3 2 1 015 3 2 1 0……127

8 bits8 bits

32 bits

Cours DSP Chapitre 3 135ENIS 2012-2013

Page 136: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

Cache L1DSoit la donnée suivante et son adresse :

Cache L1DSoit la donnée suivante et son adresse :

0x000198C8 54

Valeur de la donnée

Adresse de la donnée

A partir de l’adresse de la donnée (0x000198C8) on déterminel’ ff t l l t t l tl’offset, le group, le set et le tag :

31 13 12 2 16 5 00 0 0 1 9 8 C 80 0 0 1 9 8 C 8

000 0000 0000 0000 1100 0 0 1 0 0 01 1 0 0 0 1 1000 0000 0000 0000 1100 0 0 1 0 0 01 1 0 0 0 1 1Tag Set Group Offset

12

Cours DSP Chapitre 3 136

029912

ENIS 2012-2013

Page 137: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

Mémoire cache de programmep g

Bus de données: 256 bits

Bus d’adresses: 32 bits

Registres Extraction du programme (Fetch)

DMA / EMIF

de contrôle

Contrôleur de logique

Extraction du programme (Fetch)

Répartition des instructions (Dispatch)

Dé d d i t tiDMA / EMIF Testeur

Émulateur

InterrupteurChemin de données A Chemin de données B

Décodage des instructions

L1 S1 M1 D1 L2 S2 M2 D2

Registre A0 à A31 Registre B0 à B31

é é- Horloge

.L1 .S1 .M1 .D1 .L2 .S2 .M2 .D2

Mémoire cache de données

Bus de données: 64 bits

Bus d’adresses: 32 bits

- Ports séries

- Autre périphériques

..Etc

Cours DSP Chapitre 3 137

Bus d adresses: 32 bits ..Etc

ENIS 2012-2013

Page 138: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

C6416 DSK

Cours DSP Chapitre 3 138ENIS 2012-2013

Page 139: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

C64X

C6211/C6 11 C64 64150, 166 MHz 500, 600, 720 MHz;

1GHz500, 600 MHz; 400MHz (640)

C6211/C6711 C64x DM64x

L2: 64K L2: 1 MB L2: 256KB---642

128KB---641, 640

16-channel EDMA 64-channel EDMA 64-channel EDMA

L1: 4K L1D & 4K L1P L1: 16K L1D &16K L1P L1: 16K L1D &16K L1P

32-bit EMIF 64-bit EMIF, 16-bit EMIF 64-bit EMIF---642

32-bit EMIF---641, 640

No Video port No video portDM642: 3 video ports

DM641: 2 video ports

DM640: 1 video port

No Ethernet MAC No Ethernet MAC Ethernet MAC

Cours DSP Chapitre 3 139ENIS 2012-2013

Page 140: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

Jeu d’Instructions1 Arithmétique

Jeu d InstructionsADD(U)ADD2ADD4

Addition entière 32/40 bits signée (non signée)2 additions entières 16 bits4 additions entières 8 bits

SUB(U)SUBCSUB2

Soustraction entière 32/40 bits signée (non signée)Soustraction conditionnelle pour étape de division2 soustractions entières 16 bitsSUB2

SUB42 soustractions entières 16 bits4 soustractions entières 8 bits

1 Arithmétique saturéeSATABSSADDSSUB

Saturation de 0 bits en 32 bitsValeur absolue 32/40 bits avec saturationAddition signée 32/40 bits avec saturationSoustraction signée 32/40 bits avec saturationSSUB Soustraction signée 32/40 bits avec saturation

1 ComparaisonCMPGT(U) Comparaison supérieur 32/40 bits signé (non signé)CMPGT(U)CMPEGCMPLT(U)

Comparaison supérieur 32/40 bits signé (non signé)Comparaison égal 32/40 bits Comparaison inférieur 32/40 bits signé (non signé)

Cours DSP Chapitre 3 140

LatenceENIS 2012-2013

Page 141: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

Jeu d’InstructionsJeu d InstructionsMultiplication entières

24

pMPY2MPYU4MPYSU4

16 LSB signés x 16 LSB signés => 32 bits4 Multiplication 8bits par 8 bits, non signé4 Multiplication 8bits signé par 8 bits non signéMPYSU4

MPYUS44 Multiplication 8bits signé par 8 bits non signé4 Multiplication 8bits non signé par 8 bits signé

2 Multiplication entières t ésaturées

SMPYVariantes

Saturation ((16 LSB signé x 16 LSB signés) <<1) => 32 bitsH pour 16 MSB (SMPYLH)

41

DécalageMVDMVK

Transfère d’un registre vers un autre registreTransfère une constante 16 bits signée vers un registre1

1MVKMVKH

Transfère une constante 16 bits signée vers un registre Transfère une constante 16 bits signée vers MSB d’un registre

1 Opération logiqueANDORXOR

ET logique 32 bitsOU logique 32 bitsOU exclusif logique 32 bits

Cours DSP Chapitre 3 141Latence

ENIS 2012-2013

Page 142: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

Jeu d’InstructionsJeu d InstructionsAccès mémoire avec

51

calcul d’adresseLD(B/H/W)(U)ST(B/H/W)(U)

Chargement (Byte, demi mot, mot) signé (non signé)Stockage (Byte demi mot mot) signé (non signé)1 ST(B/H/W)(U) Stockage (Byte, demi mot, mot) signé (non signé)

1 DécalageSHLSHR(U)

Décalage gauche 32/40 bitsDécalage arithmétique (logique) droit 32/40 bitsSHR(U)

SHR2SSHLSHLMB

Décalage arithmétique (logique) droit 32/40 bitsDécalage droit 16 bits signéDécalage gauche 32/40 bits avec saturationDécalage gauche et arrangement en octet

SHRMBg g g

Décalage droit et arrangement en octet

1 Champs de bits1 Champs de bitsEXT(U)CLRSET

Extrait un champs de bits et extension de signe (non signé)Met à zéro un champs de bitsMet à 1 un champs de bits

6 BranchB Branchement conditionnel (Offset 21 bits ou registre)

Cours DSP Chapitre 3 142

LatenceENIS 2012-2013

Page 143: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

Jeu d’Instructions et UnitésJeu d Instructions et Unités.L .M .S .D

ABSABS2

MPY2MPYSU4

ADD2AND

ADD(U)ADD2ABS2

ADD(U)ADD2

MPYSU4MPYUS4MPYU4

ANDBMVK

ADD2ANDLD

ADD4ANDMVK

MVDSMPY

MVKHORSHL

LDDWMVKORMVK

ORSHLMBSHRMB

SHLSHLMBSHR2SHRMB

ORSTSTDWSUB(U)SHRMB

SUB(U)SUB2

SHRMBSUB2XOR

SUB(U)SUB2XOR

SUB4XOR

Cours DSP Chapitre 3 143ENIS 2012-2013

Page 144: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

Modes d’adressagesModes d adressagesIl existe deux différents modes d’adressages :Il existe deux différents modes d adressages :

- Mode linéaire

- Mode circulaire

L’adressage le plus utilisé est le mode linéaire indirect.

Supposant que R est un registre d’adresse :*R : Le registre R pointe sur une adresse mémoireR : Le registre R pointe sur une adresse mémoire.

*R++(d) : Le registre R contient une adresse mémoire en plus il y aura unepost incrémentation c.à.d après une lecture R va s’auto incrémenter par unevaleur (d) qui est 1 par défaut.

*++R(d) : Même chose que le cas précédent mais maintenant une préi é t tiincrémentation.

*+R(d) : L’adresse est pré incrémentée de tel sorte que l’adresse actuelleest R+d Par contre R ne va pas être modifier

Cours DSP Chapitre 3 144

est R+d. Par contre, R ne va pas être modifier.

ENIS 2011-2012

Page 145: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

Modes d’adressagesModes d adressagesMode circulaire :Mode circulaire :

Utiliser pour créer un tampon circulaire très utilisé.Dans le TSN : algorithmes de filtrage corrélation etcDans le TSN : algorithmes de filtrage, corrélation ..etc.

Il existe deux tampons circulaire indépendants BK0 et BK1 et 8registres pointeurs : A4-A7 et B4-B7registres pointeurs : A4 A7 et B4 B7.

Initialiser le registre du mode d’adressage : AMR pour activer le moded’adressage circulaire désiré en spécifiant le mode du registre pointeuret la taille du tampon utilisé.

Seulement l’unité D1 peut être utile pour effectuer les opérationsith éti l iarithmétiques ou logiques.

Cours DSP Chapitre 3 145ENIS 2012-2013

Page 146: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

Modes d’adressagesModes d adressagesRegistre AMR :

réservé BK1 BK0

31 26 25 21 20 16

Registre AMR :

Mode B7 Mode B6 Mode B5 Mode B4 Mode A7 Mode A6 Mode A5 Mode A4

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Mode B7 Mode B6 Mode B5 Mode B4 Mode A7 Mode A6 Mode A5 Mode A4

Mode Description00 Adressage linéaire par défaut01 Ad i l i tili t BK0

Exemple :

Si on désire avoir un tampon01 Adressage circulaire utilisant BK010 Adressage circulaire utilisant BK111 Réservé

circulaire de 128 octets dansBK1 pointé par le registre B5,AMR doit être initialisé à :11 Réservé

BK0 et BK1 : N taille du tampon qui sera 2N+1.

AMR doit être initialisé à :

0x00C00800

Cours DSP Chapitre 3 146

BK0 et BK1 : N taille du tampon qui sera 2 .

ENIS 2012-2013

Page 147: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

Syntaxe des instructionsSyntaxe des instructionsAdd / Soustraction / Multiplication :Add / Soustraction / Multiplication :

ADD .L1 A3, A7, A7 ; A3 + A7 → A7

si le résultat est stocké dans B7, on choisie l’unité .L2

SUB S1 A1 1 A1 ; A1 1 → A1SUB .S1 A1, 1, A1 ; A1 – 1 → A1

2 instructions en // :

MPY M2 A7 B7 B6 ; les LSB(A7) * LSB(B7) → B6MPY .M2 A7, B7, B6

|| MPYH .M2 A7, B7, A6

; les LSB(A7) LSB(B7) → B6

; les MSB(A7) * MSB(B7) → A6

Le choix de l’unité de traitement dépend de la …………..

Cours DSP Chapitre 3 147

Le choix de l unité de traitement dépend de la …………..

ENIS 2012-2013

Page 148: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

Syntaxe des instructionsSyntaxe des instructions

Load / Store :

LDH D2 *B2++ B7 ; charger (B2) → B7 Incrémenter B2LDH .D2 B2++, B7 ;

LDH .D1 *A2++, A7 ;

charger (B2) → B7, Incrémenter B2

charger (A2) → A7, Incrémenter A2

LDH: chargement de 16 bits (H: half word)

LDW: chargement de 32 bits (W: word)

STW D1 A1 *+A4[20] ; t A1 (A4) ff t 20STW .D1 A1, +A4[20] ;stocké 32 bits de A1 dans une mémoire dont l’adresse est spécifiée par A4 décalée par 20 mots (32 bits) c à d 80 octets

store A1 → (A4) offset par 20

A4 décalée par 20 mots (32 bits) c.à.d. 80 octets.

Noté que le continu de A4 ne va pas changer après le stockage puisque une seule + est utilisée

Cours DSP Chapitre 3 148ENIS 2012-2013

Page 149: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

Syntaxe des instructionsSyntaxe des instructionsBranchement / Move :Branchement / Move :

Loop:MVK .S1 x, A4 ; move 16 LSBs de l’adresse x → A4

MVKH .S1 x, A4 ; move 16 MSBs de l’adresse x → A4

.

.

.

SUB .S1 A1, 1, A1; Décrémenter A1

[A1] B .S2 Loop ;

NOP 5

Branchement à Loop si A1≠0

NOP 5 ;

STW .D1 A3, *A7 ;

5 instructions de No-operation

Stocker A3 dans (A7)

Cours DSP Chapitre 3 149

, ; ( )

ENIS 2012-2013

Page 150: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

ContraintesContraintesContrainte mémoire :Contrainte mémoire :

La mémoire interne est arrangée sous forme de banc de mémoirestt l t k t l h t i lt é tpour permettre le stockage et le chargement simultanément.

Contrainte chemin croisé :

Le code suivant est …………….. :

ADD L1 A1 B1 A0ADD .L1x A1, B1, A0

|| MPY .M2x A2, B2, B3

Par contre, le code suivant …………….:

ADD L1x A1 B1 A0ADD .L1x A1, B1, A0

|| MPY .M1x A2, B2, B3

Cours DSP Chapitre 3 150ENIS 2012-2013

Page 151: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

ContraintesContraintes

Contrainte stockage/chargement :

Les registres adresses utilisés doivent être du même chemin queLes registres adresses utilisés doivent être du même chemin quel’unité .D :

Le code suivant est ………….:

LDW .D1 *A1, A2

|| LDW .D2 *B1, B2

P t l d i tPar contre le code suivant ………….:

LDW .D1 *A1, A2

|| LDW .D2 *A3, B2

Cours DSP Chapitre 3 151ENIS 2012-2013

Page 152: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

ContraintesContraintesEn plus, le chargement et le stockage en // ne peuvent pas être du même

Exemple :chemin de registres (les registres A et les registres B).

Le code suivant est ……………:

LDW D1 *A0 B1LDW .D1 A0, B1

|| STW .D2 A1, *B2

De même, le code suivant est …………..:

LDW .D1 *A0, B1

|| LDW .D2 *B2, A1

Par contre le code suivant :Par contre, le code suivant ……………………:

LDW .D1 *A0, A1

Cours DSP Chapitre 3 152

|| STW .D2 A2, *B2

ENIS 2012-2013

Page 153: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

FIN

Cours DSP Chapitre 3 153ENIS 2012-2013

Page 154: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

ENIS 2012/2013

Chapitre IV :

Étude pratique du pipeline pour le p q p p pTMS320 C64X

Plan Ch suivantCh précédent

Page 155: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

SommaireSommaire

Pipelinep

Exemples :Exemples :

1èr exemple : Somme des produits1 exemple : Somme des produits

2ème exemple : Sum of Absolute Difference

3ème exemple : Interpolation Bilinéaire

Cours DSP Chapitre 4 155ENIS 2012-2013

Page 156: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

Étude de cas : 1er ExempleÉtude de cas : 1 Exemple

Dans ce qui suit, on va étudier la fonction permettant de calculer lasomme de produits :

nn

nbaY ∑=

=40

1

void somme_produit(unsigned char a[40], unsigned char b[40])

{

int x;

int sum=0;

for(x=1; x <= 40; x++)for(x 1; x 40; x )

sum += (a[x] * b[x]);

}

Cours DSP Chapitre 4 156

}

ENIS 2012-2013

Page 157: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

1er ExempleY ∑

40

1er Exemple2 principaux instructions utilisées dans cetalgorithme : Multiplication et Addition.

nn

n xaY ∑=

=1

.M

Les entrés de l’unité .M sont “a” et “x” et lasortie est “prod”.

MPY .M a, x, prod

M

nn

n xaY ∑=

=40

1Unité .M : multiplication.M

MPY .M a, x, prodADD .L sum, prod, sum.L

Unité .L : addition

Cours DSP Chapitre 4 157ENIS 2012-2013

Page 158: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

1er Exemple1 ExempleLes variables a, x, prod et Y seront stockés ou? Et comment peut on yaccéder?

Ces variables seront stockés comme suit :

40

nn

n xaY ∑=

=40

1

Register File A

.M

MPY .M a, x, prodADD .L sum, prod, sum

A0

A1

A2

a

x

d

.LMPY .M A0, A1, A3ADD .L A4, A3, A4

prodA3

A4 Y

A15

32-bits

Cours DSP Chapitre 4 158ENIS 2011-2012

Page 159: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

1er Exemple1 Exemple

Que faut – il faire apres ?

On a besoin de répéter les instructions MPY/ADD 40 fois. Comment peuton faire ça? A loop of course…

Dans une boucle on a :1. Instruction branch (B) et un nom pour la boucle( ) p2. Un compteur (= 40)3. Instruction pour décrémenter le compteur4. Un test de branchement on se basant sur la valeur du compteur

Cours DSP Chapitre 4 159ENIS 2012-2013

Page 160: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

1er ExempleOn commence par le branchement. L’unité permettant d’effectuer leb h l’ i é S

1 Exemplebranchement est l’unité .S.

Après on va créer le compteur avec une valeur égale à 40Après, on va créer le compteur avec une valeur égale à 40.

On va utiliser l’instruction MVK (MoVe a Konstant dans un registre). 0n( g )choisit le registre A2).

nn xaY ∑=40

1n=1

S MVK S 40 A2A0

A1

a

Register File A

.Mloop:

MPY M A0 A1 A3

.S MVK .S 40, A2A1

A2

x

prodA3

A4 Y

40

.L

MPY .M A0, A1, A3ADD .L A4, A3, A4

B .S loopA15

A4 Y

Cours DSP Chapitre 4 160

32-bits

ENIS 2012-2013

Page 161: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

1er ExempleDécrémenter le compteur dans la boucle (soustraire 1 de A2)

1 ExempleDécrémenter le compteur dans la boucle (soustraire 1 de A2).L’instruction SUB utilise aussi l’unité .L, comme pour l’ADD.add et sub peut etre fonctionner avec 6 unités.add et sub peut etre fonctionner avec 6 unités.

Y ∑40

nn

n xaY ∑=

=1

Register File A

loop:.S MVK .S 40, A2

A0

A1

A2

a

x

40

.M

.L

MPY .M A0, A1, A3ADD .L A4, A3, A4

prodA3

A4 Y

B .S loop

SUB .L A2, 1, A2A15

32-bits

Cours DSP Chapitre 4 161ENIS 2012-2013

Page 162: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

1er Exemple1 Exemple

La dernière étape est d’ajouter la condition on se basant sur la valeur de A2: si A2>0, branchement.

On va ajouter [A2] avant l’instruction branch.

Si on utilise un registre dans des "[ ]", le CPU exécute l’instruction si lacondition est vrai ou non-nulle. Si la condition est fausse ou nulle,l’instruction ne sera pas exécuter.

Les registres conditionnels sont :Les registres conditionnels sont :pour C62x/C67x : A1, A2, B0, B1 et B2pour C64x : A0, A1, A2, B0, B1 et B2p , , , ,

ENIS 2012-2013 Cours DSP Chapitre 4 162

Page 163: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

1er Exemple1 ExempleHow How do you load a pointer with an address?do you load a pointer with an address?y py p

An address is a constant, so use MVK:An address is a constant, so use MVK:

MVKMVK .S.S a, Aa, A55

H bit t f ll dd ?H bit t f ll dd ? 3232

How many bits can MVK move?How many bits can MVK move? 1616

How many bits represent a full address?How many bits represent a full address? 3232

MVKL .SMVKL .S a, Aa, A55Solution?Solution?

V .SV .S a,a, 55

MVKH .SMVKH .S a, Aa, A55

ENIS 2012-2013 Cours DSP Chapitre 4 163

Page 164: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

1er Exemple1 Exemple

nn xaY ∑=40

nn

n∑=1

S MVK S 40 A2A0 a

Register File A

.M

.Sloop:

MPY M A0 A1 A3

MVK .S 40, A2A1

A2

x

prodA3

40

.L

MPY .M A0, A1, A3ADD .L A4, A3, A4SUB .L A2, 1, A2

A4 Y

B .S loop[A2]A15

32-bits

Cours DSP Chapitre 4 164ENIS 2012-2013

Page 165: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

Load/Store Optionsoad/S o e Op o sBecause the 'CBecause the 'C60006000 provides byte addressability the instructionprovides byte addressability the instructionBecause the CBecause the C6000 6000 provides byte addressability, the instruction provides byte addressability, the instruction

set supports several types of load/store instructions:set supports several types of load/store instructions:

LoadLoad instructions:instructions:LoadLoad instructions:instructions:LDBLDB Load Load 88--bit bytebit byte (char)(char)LDHLDH Load Load 1616--bit halfbit half--word word (short)(short)( )( )LDWLDW Load Load 3232--bit wordbit word ((intint))

LDDWLDDW Load Load 6464--bit doublebit double--wordword (C(C6767x, Cx, C6464x) x) (double)(double)(double)(double)

StoreStore instructions:instructions:STBSTBSTHSTHSTWSTW

STDW (CSTDW (C6464x)x)

If we’re If we’re mulitplyingmulitplying 1616--bit numbers, which bit numbers, which

STDW (CSTDW (C6464x)x)

Cours DSP Chapitre 4 165ENIS 2012-2013

p y gp y g ,,load instruction should be used?load instruction should be used?

Page 166: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

1er ExempleComment charger les variables dans les registres?

1 ExempleOn va créer un pointeur pour une variable. le pointeur contient l’adresse dela variable. On stocke le contenue du pointeur dans un registre A.On va utiliser l’instruction load (LD) pour charger les variables “a” et “x“ dansOn va utiliser l instruction load (LD) pour charger les variables a et x dansles registres et l’instruction store (ST) pour stocker le résultat Y.

• Créer des pointeurs pour:•A5=&a

A0A1

a

x

Register File A

M

•A6=&x•A7=&Y

• Inst Load/Store•LD *A5, A0

.SA2

prodA3

A4 Y

40

A5 & [ ]*A5: accéder au.M

.L

•LD *A6, A1•ST A4, *A7

A5 &a[n]A6 &x[n]A7 &Y

a[40] *A5

donnée pointé parl’adresse A5

A15

32-bits

Mémoire

a[40]

x[40]

Y

*A6

*A7

Cours DSP Chapitre 4 166ENIS 2012-2013

Page 167: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

1er ExempleOn va utiliser les instructions load/store dans notre code.

1 Exemple

Pour faciliter les instructions load/store, on utilise l’unité .D.

nn

n xaY ∑=

=40

1Incrémenter le

S

A0A1

A2

a

x

40

Register File A

MVK .S 40, A2

LDH D *A5++ A0

Incrémenter lepointeur aprèschaque load

.M

.SA2

prodA3

A4 Y

40

A5 &a[n]

loop:

MPY .M A0, A1, A3

LDH .D *A5++, A0LDH .D *A6++, A1

.LA6 &x[n]A7 &Y

. 0, , 3ADD .L A4, A3, A4SUB .L A2, 1, A2

[A2] B S lDA15

32-bitsData Memory

[A2] B .S loop.D

STH .D A4, *A7

Cours DSP Chapitre 4 167ENIS 2012-2013

Page 168: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

1er Exemple1 ExempleAA00

Register File ARegister File ABB00

Register File BRegister File B

.S.S11 .S.S22AA00AA11AA22

BB00BB11BB22

.M.M11 .M.M22AA22AA33AA44

BB22BB33BB44

.L.L11 .L.L22

AA44

..BB44

...L.L11 .L.L22.... .....D.D11 .D.D22

AA1515 BB1515

3232--bitsbits 3232--bitsbits

Cours DSP Chapitre 4 168ENIS 2012-2013

Data MemoryData Memory

Page 169: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

Utilisant seulement les registres de AUtilisant seulement les registres de A4040

Y =Y =4040∑∑ aann xxnn

n = n = 11**

MVKMVK .S.S11 4040, A, A22 ; A; A2 2 = = 4040, loop count, loop countll LDHLDH DD11 *A*A55++ A++ A00 AA00 ( )( )loop:loop: LDHLDH .D.D11 *A*A55++, A++, A00 ; A; A00 = a(n)= a(n)

LDHLDH .D.D11 *A*A66++, A++, A11 ; A; A1 1 = x(n)= x(n)MPYMPY .M.M11 AA00, A, A11, A, A33 ; A; A3 3 = a(n) * x(n)= a(n) * x(n)ADDADD .L.L11 AA33, A, A44, A, A44 ; Y = Y + A; Y = Y + A33,, ,, ;;SUBSUB .L.L11 AA22, , 11, A, A22 ; decrement loop count; decrement loop count

[A[A22]] BB SS11 looploop ; if A; if A22 ≠≠ 00 branchbranch[A[A22]] BB .S.S11 looploop ; if A; if A22 ≠≠ 00, branch, branchSTHSTH .D.D11 AA44, *A, *A77 ; *A; *A7 7 = Y= Y

Cours DSP Chapitre 4 169ENIS 2012-2013Note: Note: Le Le registreregistre AA4 4 doitdoit contenircontenir zerozero..

Page 170: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

1er Exemple1 ExemplePaquet Fetch : contient 8 instructions de MVK S 40 A2Paquet Fetch : contient 8 instructions de32 bits chacuneVoyant de près comment effectué une

MVK .S 40, A2

loop: LDH .D *A5++, A0LDH .D *A6++, A1

Voyant de près comment effectué unesomme de produit représenté par le codesuivant dans une structure pipeline du

MPY .M A0, A1, A3ADD .L A4, A3, A4SUB .L A2, 1, A2

suivant dans une structure pipeline duC64x

[A2] B .S loop

STH .D A4, *A7 Clock Cycle = 1

Program Fetch Decode Execute Done

Clock Cycle = 1

PG PS PW PR DP DC E1 E2 E3 E4 E5 E6

Cours DSP Chapitre 4 170ENIS 2012-2013

Page 171: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

1er Exemple1 Exemple

Clock Cycle = 4

PG PS PW PR DP DC E1 E2 E3 E4 E5 E6

Program Fetch Decode Execute Done

Cours DSP Chapitre 4 171ENIS 2012-2013

Page 172: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

1er ExempleClock Cycle = 5

1 Exemple

PF DP DC E1 E2 E3 E4 E5 E6

PF Decode Execute Done

PF Decode Execute Done

Clock Cycle = 6

PF DP DC E1 E2 E3 E4 E5 E6 √

Cours DSP Chapitre 4 172ENIS 2012-2013

Page 173: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

1er Exemple1 ExempleClock Cycle = 7

PF DP DC E1 E2 E3 E4 E5 E6

PF Decode Execute Done

PF Decode Execute Done

Clock Cycle = 8

PF DP DC E1 E2 E3 E4 E5 E6 √

Cours DSP Chapitre 4 173ENIS 2012-2013

Page 174: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

1er Exemple1 ExempleClock Cycle = 10

PF DP DC E1 E2 E3 E4 E5 E6

PF Decode Execute Done

Clock Cycle = 11

PF Decode Execute Done

PF DP DC E1 E2 E3 E4 E5 E6 √

Cours DSP Chapitre 4 174ENIS 2012-2013

Page 175: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

1er Exemple1 ExempleAlors comment résoudre ce problème?

En premier lieu, on va se concentrer sur les instructions MPY/ADD. On doit retarder add par un

l l lti li ti li t l’ dditi Utili NOPcycle pour que la multiplication aura lieu avant que l’addition commence. Utiliser NOP.

Clock Cycle = 11

PF Decode Execute Done

PF DP DC E1 E2 E3 E4 E5 E6 √

Cours DSP Chapitre 4 175ENIS 2012-2013

Page 176: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

1er Exemple1 ExempleCycle = 12

PF DP DC E1 E2 E3 E4 E5 E6

PF Decode Execute Done

Ca fonctionne!!Ca fonctionne!!

Alors maintenant combien de NOP on doit ajouter entre les loads et l’opération de MPY?

3 NOPs, Bien sûre.

Par conséquent, le code pipeline doit être de la forme suivante :

Cours DSP Chapitre 4 176ENIS 2012-2013

Page 177: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

1er Exemple1 ExempleClock Cycle = 4

PF DP DC E1 E2 E3 E4 E5 E6

PF Decode Execute Done

PF Decode Execute Done

Clock Cycle = 5

PF DP DC E1 E2 E3 E4 E5 E6 √

Cours DSP Chapitre 4 177ENIS 2012-2013

Page 178: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

1er Exemple1 ExempleClock Cycle = 6

PF DP DC E1 E2 E3 E4 E5 E6

PF Decode Execute Done

PF Decode Execute Done

Clock Cycle = 7

PF DP DC E1 E2 E3 E4 E5 E6 √

Cours DSP Chapitre 4 178ENIS 2012-2013

Page 179: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

1er Exemple1 ExemplePF E D

Clock Cycle = 8

PF DP DC E1 E2 E3 E4 E5 E6

PF Decode Execute Done

PF Decode Execute Done

Clock Cycle = 9

PF DP DC E1 E2 E3 E4 E5 E6 √

Cours DSP Chapitre 4 179ENIS 2012-2013

Page 180: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

1er Exemple1 ExemplePF E D

Clock Cycle = 10

PF DP DC E1 E2 E3 E4 E5 E6

PF Decode Execute Done

PF Decode Execute Done

Clock Cycle = 11

PF DP DC E1 E2 E3 E4 E5 E6 √

Cours DSP Chapitre 4 180ENIS 2012-2013

Page 181: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

1er Exemple1 ExemplePF E D

Clock Cycle = 12

PF DP DC E1 E2 E3 E4 E5 E6

PF Decode Execute Done

PF Decode Execute Done

Clock Cycle =13

PF DP DC E1 E2 E3 E4 E5 E6 √

Cours DSP Chapitre 4 181ENIS 2012-2013

Page 182: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

1er Exemple1 ExempleMVK S 40 A2MVK .S 40, A2

loop: LDH .D *A5++, A0LDH D *A6++ A1 ÉLDH .D *A6++, A1NOP 3MPY .M A0, A1, A3NOP

Évaluation de ce code en cycles:

Loop interne:1ère load 5NOP

ADD .L A4, A3, A4SUB .L A2, 1, A2

[A2] B .S loop

2ème load 1MPY 2ADD/SUB 2B 6

[A2] B .S loopNOP 5STH .D A4, *A7

Total 16*40+2= 642

Attendez, est il possible de remplir les retards par des instructions utiles?

Oui, en effet on peut prendre avantage des retards pour réécrire le code intelligemment. il peut être

vu en désordre, mais il nous fourni rapidement le bon résultat !

Cours DSP Chapitre 4 182ENIS 2012-2013

Page 183: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

1er Exemple1 ExempleProgram Fetch Decode Execute Done

Clock Cycle =3

PG PS PW PR DP DC E1 E2 E3 E4 E5 E6

Program Fetch Decode Execute Done

Program Fetch Decode Execute Done

Clock Cycle =5

PG PS PW PR DP DC E1 E2 E3 E4 E5 E6

Cours DSP Chapitre 4 183ENIS 2012-2013

Page 184: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

1er Exemple1 ExempleProgram Fetch Decode Execute Done

Clock Cycle =6

PG PS PW PR DP DC E1 E2 E3 E4 E5 E6

Program Fetch Decode Execute Done

Program Fetch Decode Execute Done

Clock Cycle =7

PG PS PW PR DP DC E1 E2 E3 E4 E5 E6

Cours DSP Chapitre 4 184ENIS 2012-2013

Page 185: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

1er Exemple1 ExempleClock Cycle =8

Program Fetch Decode Execute DonePG PS PW PR DP DC E1 E2 E3 E4 E5 E6

Program Fetch Decode Execute Done

Clock Cycle =9

Program Fetch Decode Execute DonePG PS PW PR DP DC E1 E2 E3 E4 E5 E6

Cours DSP Chapitre 4 185ENIS 2012-2013

Page 186: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

1er Exemple1 ExempleClock Cycle =10

Program Fetch Decode Execute DonePG PS PW PR DP DC E1 E2 E3 E4 E5 E6

Program Fetch Decode Execute Done

Clock Cycle =11

Program Fetch Decode Execute DonePG PS PW PR DP DC E1 E2 E3 E4 E5 E6

Cours DSP Chapitre 4 186ENIS 2012-2013

Page 187: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

1er Exemple1 ExempleClock Cycle =13

Program Fetch Decode Execute DonePG PS PW PR DP DC E1 E2 E3 E4 E5 E6

Program Fetch Decode Execute Done

Clock Cycle =14

Program Fetch Decode Execute DonePG PS PW PR DP DC E1 E2 E3 E4 E5 E6

Cours DSP Chapitre 4 187ENIS 2012-2013

Page 188: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

1er Exemple1 ExempleClock Cycle =15

Program Fetch Decode Execute DonePG PS PW PR DP DC E1 E2 E3 E4 E5 E6

Program Fetch Decode Execute Done

Clock Cycle =16

Program Fetch Decode Execute DonePG PS PW PR DP DC E1 E2 E3 E4 E5 E6

Cours DSP Chapitre 4 188ENIS 2012-2013

Page 189: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

1er Exemple1 ExempleClock Cycle =17

Program Fetch Decode Execute DonePG PS PW PR DP DC E1 E2 E3 E4 E5 E6

Clock Cycle =22

Program Fetch Decode Execute DonePG PS PW PR DP DC E1 E2 E3 E4 E5 E6

Cours DSP Chapitre 4 189ENIS 2012-2013

Page 190: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

1er Exemple1 ExempleQu’est ce que on a besoins? MVK .S 40, A2MVK .S 40, A2

Les résultats des LDH’s et MVK

qloop:

MPY .M A0, A1, A3

LDH .D *A5++, A0LDH .D *B6++, A1

On place le 2ème load sur l h i B ’

MVK .S 40, A2loop:

|| LDH .D *A5++, A0|| LDH .D *B6++, A1

SUB .L A2, 1, A2[A2] B S lNot e no elle bo cle ADD .L A4, A3, A4

SUB .L A2, 1, A2

[A2] B .S loop

le chemin B, pour qu’on puisse exécuté les 2 instructions en //

[A2] B .S loop NOP 2MPY .M A0, A1, A3NOPADD .L A4, A3, A4

Notre nouvelle boucle pipelinée

STH .D A4, *A7 STH .D A4, *A7

Clock Cycle =2

PG PS PW PR DP DC E1 E2 E3 E4 E5 E6

Program Fetch Decode Execute DonePG PS PW PR DP DC E1 E2 E3 E4 E5 E6

MVKLDHLDH

NOPADDSTH

SUBBNOPNOP

Cours DSP Chapitre 4 190

MPY

ENIS 2012-2013

Page 191: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

1er Exemple1 ExempleProgram Fetch Decode Execute Done

Clock Cycle =5

PG PS PW PR DP DC E1 E2 E3 E4 E5 E6

Program Fetch Decode Execute Done

Program Fetch Decode Execute Done

Clock Cycle =

PG PS PW PR DP DC E1 E2 E3 E4 E5 E6

Cours DSP Chapitre 4 191ENIS 2012-2013

Page 192: Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012

FIN

Nouri MASMOUDI Professeur à l’ENIS

ÉResponsable de l’Équipe Circuits et Systèmes Laboratoire d’Électronique et des Technologies de l’Information [email protected]://www.circtuitsystème.tunet.tn

ENIS 2012-2013 Cours DSP Chapitre 5 192

http://www.circtuitsystème.tunet.tn