Upload
mahmoud-kammoun
View
1.004
Download
26
Embed Size (px)
DESCRIPTION
Citation preview
République Tunisienne
Ministère d’Enseignement SupérieurMinistère d’Enseignement Supérieur,
Université de Sfax
ECOLE NATIONALE D’INGENIEURS DE SFAX
ENIS ENIS 2011/20122011/2012
C DSPC DSP2011/20122011/2012
Cours DSPCours DSP3è é GE ISI EEI3ème année GE ISI-EEI
Nouri MASMOUDINouri MASMOUDIProfesseur à l’ENISResponsable de l’Équipe Circuits et Systèmes L b t i d’Él t i t d T h l i d l’I f tiLaboratoire d’Électronique et des Technologies de l’Information
Plan du coursa du cou s
Chapitre I : Introduction aux DSP
Chapitre II : Architectures des DSP
Chapitre III : Architecture interne du TMS320 C64X
ÉChapitre IV : Étude pratique du pipeline pour le TMS320 C64X
Chapitre V : Techniques d’optimisationChapitre V : Techniques d optimisation
ENIS 2011-2012 Cours DSP 3
SommaireBesoins et contraintes en traitement numérique du signal
Applications typiques
Algorithmes typiques
Présentation des DSPProcesseurs actuelsProcesseurs actuels
Exemples des DSP
Comparaison avec les processeurs généralistesp p g
Représentation des nombresTypes de donnéesTypes de données
Virgule fixe
Virgule flottant
ENIS 2011-2012 Cours DSP Chapitre 1 5
Virgule flottant
Définition d’un DSPDSP = Digital Signal Processor
Processeur de traitement Numérique du Signal
U DSP i li d iUn DSP est un type particulier de microprocesseur.Il 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ôleurintégrant, selon les marques et les gammes des constructeurs, dela mémoire, des timers, des ports série synchrones rapides, descontrôleurs DMA, des ports d’E/S divers.
Cours DSP Chapitre 1 6ENIS 2011-2012
Structure générale des applications de TNS
TNS = Traitement Numérique du Signal
ADC = Analog to Digital Converter
DAC = Digital to Analog Converter
ENIS 2011-2012 Cours DSP Chapitre 1 7
Pourquoi le TNS ?q
Les principaux avantages du calcul numérique / au calcul analogique :p p g q g q
Grande résistance aux bruitsvariations des tensions d’alimentationa a o s des e s o s d a e a o
variations de la température
interférences électromagnétiques (EMI)g q ( )
Indépendance par rapport aux tolérances de fabrication
Précision arbitrairePrécision arbitraire
Stabilité dans le temps
Stockage des données sans dégradationStockage 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 2011-2012
Applications des DSPpp
Communications Image / vidéoCommunicationsFilaire (DSL, cable)Sans fil (cellulaires, télé i i é i di
Image / vidéoCompression/CodageComposition
télévision numérique, radio numérique)Modem
Traitement
CryptageMilitaire
I i dAudioMixage et éditionEffets
Imagerie : radar, sonar…CryptographieGuidage de missilesEffets
Suppression de bruitAnnuleur d’echo
gNavigation
Cours DSP Chapitre 1 9ENIS 2011-2012
Applications des DSPpp
Biomédical AutomatisationBiomédicalEquipements de monitoring
Signaux biophysiquesElectroEncéphaloGramme (EEG)
AutomatisationCommande de machinesContrôle de moteursRobotsElectroEncéphaloGramme (EEG)
ElectroCardioGramme (ECG)Radiographie
Robots
InstrumentationAnalyseurs de spectre Electronique Automobile
Contrôle du moteurGénérations de fonctionsAnalyseurs de régimes transitoires
Contrôle du moteurAssistance au freinageAide à la navigationCommandes vocales
Cours DSP Chapitre 1 10ENIS 2011-2012
Application type : Modem ADSLADSL = Asymmetrical Digital Subscriber Line
Besoins en calcul de 100 à 150 MIPS.
TEQ = Time domain EQualizer
QAM = Quadrature Amplitude Modulation
Cours DSP Chapitre 1 11
FEQ = Frequency domain EQualizer
ENIS 2011-2012
LCD TV
TV numérique : affiche la vidéoTV numérique : affiche la vidéo numérique / analogique
LCD (Liquid Crystal Display)
Module de base:
DSP - décodeur MPEGxDSP décodeur MPEGx pour vidéo, voix: AC3/MPEG pour le traitement audio.
MCU – contrôleur du système électronique, réseau.
I t f Vidé / diInterface Vidéo/audioUnité d’alimentation
Cours DSP Chapitre 1 12ENIS 2011-2012
Digital Video RecorderLe système inclut :
ProcesseurProcesseur DSP: MPEG
CPU
Triple DACNTSC/PAL, S vidéo et YPrPb
Interface FPGA/PCI -commander le transfert destransfert des données et le bus PCI.
CODEC StéréoCODEC Stéréo Audio , Interface utilisateur, Bloc d’alimentation
Cours DSP Chapitre 1 13ENIS 2011-2012
Algorithme type : Les filtres FIR
Pour un filtre à réponse impulsionnelle finie (Finite ImpulseResponse) de taille N (nombre de coefficients), on doit effectuerun calcul du type :
Cours DSP Chapitre 1 16ENIS 2011-2012
Algorithme type : Les filtres FIR
Contraintes : nombre de coefficients (10 ! 300),
précision (16 ou 24 bits),
Cours DSP Chapitre 1 17
vitesse de fonctionnement . . .
ENIS 2011-2012
Profils d’utilisation du DSP
Embarqué Haute performanceEmbarquéFaible coût unitaireFaible consommation : part importante de la
Haute performancePuissance : Calcul intensifParallélisme
Multiplication des unités deimportante de la consommation pour la mémoireArchitecture limitée au strict
Multiplication des unités de calcul internesInterfaces multi-DSP
Interface avec un ordinateurArchitecture limitée au strict nécessaireTemps réel
Interface avec un ordinateur hôte
Non prioritaires :Performance
Non prioritaires :Coût élevéUtilisation mémoirePerformance
Facilité de programmationUt sat o é o eConsommation
Cours DSP Chapitre 1 18ENIS 2011-2012
Caractéristiques classiques des DSPDSP
Ch i d d é i é t it t d i lChemin de données organisé pour traitement du signal
Jeu d’instructions spécialisép
Plusieurs bancs mémoire et plusieurs bus
Modes d’adressage spécialisés
Contrôle d’exécution spécialisé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 2011-2012
Caractéristiques classiques des DSPDSP
Augmentation du parallélisme
CalculsUnités de calcul en parallèle
Mémoire à accès multiplesLecture/Écriture de plusieurs données simultanémentp
PipelineDécoupage des instructions de façon à les exécuter àDécoupage des instructions de façon à les exécuter à intervalles plus rapprochés
Cours DSP Chapitre 1 20ENIS 2011-2012
Traitement en Temps RéelLes processeurs DSP doivent accomplir des tâches en
Traitement en Temps RéelLes processeurs DSP doivent accomplir des tâches en temps réel, ainsi comment définissons-nous le temps 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'opération suivante entre deux échantillons :
( ) ( ) ( )∑=
−=99
0k
knxkany
Cours DSP Chapitre 1 21
=0k
ENIS 2011-2012
Traitement en Temps RéelTraitement en Temps Réel
Temps Temps d’ tt td’ tt tTemps de TraitementTemps de Traitement d’attented’attente
nn n+1n+1Temps d’échantillonTemps d’échantillon
nn n+1n+1
Nous pouvons dire que nous avons unep qapplication en temps réel si :
ENIS 2010-2011 Cours DSP Chapitre 1 22
• Temps d'attente ≥ 0
Spécificités des DSP
Algorithme classique de TNS : Filtre RIF
Spécificités des DSP
Algorithme classique de TNS : Filtre RIF
∑−
−=1
)()()(N
inxiany
Pour chaque a(i) x(n-i) :
∑=0
)()()(i
inxiany
Pour chaque a(i) x(n-i) :
Recherche de l’instruction
Recherche du coefficients a(i)
Recherche de la donnée x(n-i)
3 accès à la mémoire
Recherche de la donnée x(n i)
Multiplication a(i) x(n-i)2 accès à l’unité
ENIS 2010-2011 Cours DSP Chapitre 1 23
Accumulation a(i-1) x(n-i-1) + a(i) x(n-i)de calcul
Spécificités des DSPSpécificités des DSP
Obj tifObjectifs :
Réduire les accès mémoire
Augmenter les accès mémoire simultanés
Réduire le temps passé pour faire des calculs
Instruction MAC(multiplication-accumulation)
ENIS 2010-2011 Cours DSP Chapitre 1 24
( p )en 1 seul cycle d’instruction
Classification des processeurs
DSP = Digital Signal ProcessorDSP = Digital Signal Processor
ASIP = Application Specific Instruction set Processor
ASIC A li ti S ifi I t t d Ci it
Cours DSP Chapitre 1 25
ASIC = Application Specific Integrated Circuit
ENIS 2011-2012
Quel processeur utiliser pour le TNS
µ-contrôleurs : pas assez performants
ASIC : beaucoup trop coûteux, mise en oeuvre complexe etlongueg
ASIP : beaucoup trop coûteux complexe et surtout spécifiqueASIP : beaucoup trop coûteux, complexe et surtout spécifique
Processeurs généralistes (GPP) : pas temps réel, trop coûteux,consomment trop d’énergie, difficilement embarquables
Cours DSP Chapitre 1 26ENIS 2011-2012
Quel processeur utiliser pour le TNS
ASIC ASIC
ance
FPGA
men
t tim
e
FPGA
Perf
orm
a
GPP
DSP
Dev
elop
m
GPP
DSP
Cours DSP Chapitre 1 27ENIS 2011-2012
Quel processeur utiliser pour le TNS
GPP GPP
lity
sum
ptio
n
DSPDSP
Flex
ibil
Pow
erco
ns
ASIC
FPGA
ASIC
FPGA
PASIC
Cours DSP Chapitre 1 28ENIS 2011-2012
General Purpose DSP / DSP in ASICGeneral Purpose DSP / DSP in ASIC• Circuit intégré à application Spécifique
(ASICs) est conçu à base des fonctions en semi-conducteurs.
• Les avantages et les inconvénients d’utiliser les ASICs sont énumérés ci-dessous :les ASICs sont énumérés ci dessous :AdvantagesAdvantages
S iS i ééll ééInconvInconvéénients nients
CC ûûtt ééll éé•• Sortie Sortie éélevlevéé•• Faible surface en siliciumFaible surface en silicium•• Faible consommation de Faible consommation de
•• CoCoûût t éélevlevéé•• Moins de flexibilitMoins de flexibilitéé•• Temps de dTemps de dééveloppement est veloppement est
puissancepuissance•• FiabilitFiabilitéé amamééliorliorééee•• RRééduction du bruit duction du bruit
éélevlevéé
Cours DSP Chapitre 1 29
•• Faible coFaible coûût du systt du systèème globalme global
ENIS 2011-2012
Hardware / Microcode multiplicationHardware / Microcode multiplication• Les processeurs DSP sont optimisés pour
effectuer des opérations de multiplication et d'addition.
• Multiplication et addition sont exécutées matériellement pendant un seul cycle. p yExemple: Multiplication 4-bit (non-signé).
HardwareHardware MicrocodeMicrocodeHardwareHardware MicrocodeMicrocode
10111011x 1110x 1110
10111011x 1110x 1110
1001101010011010 00000000 Cycle 1Cycle 1
10111011x 1110x 1110
10111011x 1110x 1110
1001101010011010 00000000 Cycle 1Cycle 11001101010011010 000000001011.1011.1011..1011..1011...1011...
Cycle 1Cycle 1Cycle 2Cycle 2Cycle 3Cycle 3Cycle 4Cycle 4
1001101010011010 000000001011.1011.1011..1011..1011...1011...
Cycle 1Cycle 1Cycle 2Cycle 2Cycle 3Cycle 3Cycle 4Cycle 4
Cours DSP Chapitre 1 30
1011...1011...
1001101010011010
Cycle 4Cycle 4
Cycle 5Cycle 5
1011...1011...
1001101010011010
Cycle 4Cycle 4
Cycle 5Cycle 5
ENIS 2011-2012
Paramètres à considérerParamètres à considérerParameter TMS320C6211
(@150MHz)TMS320C6711
(@150MHz)Parameter TMS320C6211
(@150MHz)TMS320C6711
(@150MHz)Arithmetic formatExtended floating pointExtended Arithmetic
32-bitN/A
40-bit
32-bit64-bit40-bit
@ @Arithmetic formatExtended floating pointExtended Arithmetic
32-bitN/A
40-bit
32-bit64-bit40-bit
@ @
Extended ArithmeticPerformance (peak)Number of hardware multipliers
40-bit1200MIPS
2 (16 x 16-bit) with 32-bit result
40-bit1200MFLOPS
2 (32 x 32-bit) with 32 or 64-bit result
Extended ArithmeticPerformance (peak)Number of hardware multipliers
40-bit1200MIPS
2 (16 x 16-bit) with 32-bit result
40-bit1200MFLOPS
2 (32 x 32-bit) with 32 or 64-bit result
Number of registersInternal L1 program memory cacheI t l L1 d t h
bit result32
32K32K
or 64 bit result32
32K32K
Number of registersInternal L1 program memory cacheI t l L1 d t h
bit result32
32K32K
or 64 bit result32
32K32KInternal L1 data memory cache
Internal L2 cache32K512K
32K512K
Internal L1 data memory cacheInternal L2 cache
32K512K
32K512K
C6711 Datasheet: C6711 Datasheet: \\LinksLinks\\TMS320C6711.pdfTMS320C6711.pdf
Cours DSP Chapitre 1 31
ppC6211 Datasheet: C6211 Datasheet: \\LinksLinks\\TMS320C6211.pdfTMS320C6211.pdf
ENIS 2011-2012
Paramètres à considérerParamètres à considérerParameter TMS320C6211
(@150MH )TMS320C6711
(@150MH )Parameter TMS320C6211
(@150MH )TMS320C6711
(@150MH )I/O bandwidth: Serial Ports (number/speed)DMA channels
2 x 75Mbps
16
2 x 75Mbps
16
(@150MHz) (@150MHz)I/O bandwidth: Serial Ports (number/speed)DMA channels
2 x 75Mbps
16
2 x 75Mbps
16
(@150MHz) (@150MHz)
DMA channelsMultiprocessor supportSupply voltage
16Not inherent
3.3V I/O, 1.8V Core
16Not inherent
3.3V I/O, 1.8V Core
DMA channelsMultiprocessor supportSupply voltage
16Not inherent
3.3V I/O, 1.8V Core
16Not inherent
3.3V I/O, 1.8V CorePower managementOn-chip timers (number/width)Cost
Yes2 x 32-bitUS$ 21.54
Yes2 x 32-bitUS$ 21.54
Power managementOn-chip timers (number/width)Cost
Yes2 x 32-bitUS$ 21.54
Yes2 x 32-bitUS$ 21.54
PackageExternal memory interface controllerJTAG
256 Pin BGAYesYes
256 Pin BGAYesYes
PackageExternal memory interface controllerJTAG
256 Pin BGAYesYes
256 Pin BGAYesYesJTAG Yes YesJTAG Yes Yes
Cours DSP Chapitre 1 32ENIS 2011-2012
Algorithmes typiques du DSPLa somme des produits (SOP) est l’élément clé dans la plupart des algorithmes:
Algorithm Equation
∑M
Finite Impulse Response Filter ∑=
−=k
k knxany0
)()(
Infinite Impulse Response Filter ∑∑ +=NM
knybknxany )()()(Infinite Impulse Response Filter ∑∑==
−+−=k
kk
k knybknxany10
)()()(
Convolution ∑ −=N
knhkxny )()()( Co vo u o ∑=k
y0
)()()(
Discrete Fourier Transform ∑−
−=1
])/2(exp[)()(N
nkNjnxkX π =0n
Discrete Cosine Transform ( ) ( )∑−
=⎥⎦⎤
⎢⎣⎡ +=
1
0
122
cos).().(N
x
xuN
xfucuF π
Cours DSP Chapitre 1 33
= ⎦⎣0x
ENIS 2011-2012
DSP à i l fl tt t / FiDSP à virgule flottante / Fixe
• Applications qui exigent:
– À haute précision.– dynamique large.– Rapport signal/bruit élevé.Rapport signal/bruit élevé.– Facilité d'utilisation.
Ayez besoin d'un processeur de
Cours DSP Chapitre 1 34
virgule flottante.ENIS 2011-2012
DSP à virgule flottante / FixeDSP à virgule flottante / Fixe
• C’est l’application qui définie la plateforme àutiliser dans le but d’obtenir les performances poptimums à faible prix.
• Pour un but éducatif, utiliser un DSP à virgule flottante (6711 ou 6713) qui peut supporter lesflottante (6711 ou 6713) qui peut supporter les opérations à virgule flottante et fixe.
Cours DSP Chapitre 1 35ENIS 2011-2012
DSP à virgule flottante / Fixe
• Inconvénient des processeurs à virgule• Inconvénient des processeurs à virgule flottante:
– Consommation de puissance plus élevéConsommation de puissance plus élevé– Peut être plus coûteux.
P t êt i id l DSP à– Peut être moins rapide que le DSP àvirgule fixe et de taille plus importante.
Cours DSP Chapitre 1 36ENIS 2011-2012
Représentation des nombres
Les DSP à virgule fixeLes 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.g ( p ) qLa représentation de ces nombres fractionnaires s’appuie la méthode du
«complément à deux».P t f il t l’ dditi bi i d b itif t é tifPermet facilement l’addition binaire de nombres positifs et négatifs.
Les DSP à virgule flottantegLes 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 :
tn = 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 39
e posa es u e e d qua a p ace de a gu e e base
ENIS 2011-2012
Texas Instruments’ TMS320 familyy• Les différents familles et sous families
existent pour soutenir différents marchésexistent pour soutenir différents marchés
C2000C2000 C5000C5000 C6000C6000C2000C2000 C5000C5000 C6000C6000C2000C2000C2000C2000 C5000C5000C5000C5000 C6000C6000
Lowest CostLowest Cost EfficiencyEfficiency PerformancePerformance &&Lowest CostLowest Cost EfficiencyEfficiencyLowest CostLowest CostLowest CostLowest CostLowest CostLowest Cost EfficiencyEfficiencyEfficiencyEfficiency PerformancePerformance &&PerformancePerformance &&Lowest CostLowest CostControl SystemsControl Systems
Motor ControlMotor Control
EfficiencyEfficiencyBest MIPS perBest MIPS per
Watt / Dollar / SizeWatt / Dollar / Size Multi Channel andMulti Channel and
PerformancePerformance &&Best Best EaseEase--ofof--UseUse
Lowest CostLowest CostControl SystemsControl Systems
Motor ControlMotor Control
EfficiencyEfficiencyBest MIPS perBest MIPS per
Watt / Dollar / SizeWatt / Dollar / Size
Lowest CostLowest CostControl SystemsControl Systems
Motor ControlMotor Control
Lowest CostLowest CostControl SystemsControl Systems
Motor ControlMotor Control
Lowest CostLowest CostControl SystemsControl Systems
Motor ControlMotor Control
EfficiencyEfficiencyBest MIPS perBest MIPS per
Watt / Dollar / SizeWatt / Dollar / Size
EfficiencyEfficiencyBest MIPS perBest MIPS per
Watt / Dollar / SizeWatt / Dollar / Size Multi Channel andMulti Channel and
PerformancePerformance &&Best Best EaseEase--ofof--UseUse
Multi Channel andMulti Channel and
PerformancePerformance &&Best Best EaseEase--ofof--UseUse
StorageStorageDigital Ctrl SystemsDigital Ctrl Systems
Wireless phonesWireless phonesInternet audio playersInternet audio playersDigital still cameras Digital still cameras
Multi Channel and Multi Channel and Multi Function App'sMulti Function App'sComm InfrastructureComm InfrastructureWi l BWi l B t tit ti
StorageStorageDigital Ctrl SystemsDigital Ctrl Systems
Wireless phonesWireless phonesInternet audio playersInternet audio playersDigital still cameras Digital still cameras
StorageStorageDigital Ctrl SystemsDigital Ctrl SystemsStorageStorageDigital Ctrl SystemsDigital Ctrl SystemsStorageStorageDigital Ctrl SystemsDigital Ctrl Systems
Wireless phonesWireless phonesInternet audio playersInternet audio playersDigital still cameras Digital still cameras
Wireless phonesWireless phonesInternet audio playersInternet audio playersDigital still cameras Digital still cameras
Multi Channel and Multi Channel and Multi Function App'sMulti Function App'sComm InfrastructureComm InfrastructureWi l BWi l B t tit ti
Multi Channel and Multi Channel and Multi Function App'sMulti Function App'sComm InfrastructureComm InfrastructureWi l BWi l B t tit tiDigital still cameras Digital still cameras
ModemsModemsTelephonyTelephonyVoIPVoIP
Wireless BaseWireless Base--stationsstationsDSLDSLImagingImaging
Digital still cameras Digital still cameras ModemsModemsTelephonyTelephonyVoIPVoIP
Digital still cameras Digital still cameras ModemsModemsTelephonyTelephonyVoIPVoIP
Digital still cameras Digital still cameras ModemsModemsTelephonyTelephonyVoIPVoIP
Wireless BaseWireless Base--stationsstationsDSLDSLImagingImaging
Wireless BaseWireless Base--stationsstationsDSLDSLImagingImaging
Cours DSP Chapitre 1 44
VoIPVoIP MultiMulti--media Serversmedia ServersVideoVideo
VoIPVoIPVoIPVoIPVoIPVoIP MultiMulti--media Serversmedia ServersVideoVideoMultiMulti--media Serversmedia ServersVideoVideo
ENIS 2011-2012
C6000 Roadmappce
Software CompatibleSoftware CompatibleFloating PointFloating PointFloating Point
M ltiM ltiFloating PointFloating PointFloating Point
M ltiM lti
form
anc Multi-coreMultiMulti--corecore C64x™ DSP
1.1 GHzC64xC64x™™ DSPDSP
1.1 GHz1.1 GHzMulti-coreMultiMulti--corecore C64x™ DSP
1.1 GHzC64xC64x™™ DSPDSP
1.1 GHz1.1 GHz
Perf
C64x™ DSPC64xC64x™™ DSPDSP2nd Generation (Fixed Point)2nd Generation (Fixed Point)
GeneralGeneral
hest ancehest ance
General General PurposePurpose C6414C6414C6414 C6415C6415C6415 C6416C6416C6416
MediaMediaGatewayGateway
3G Wireless 3G Wireless InfrastructureInfrastructure1 t G ti1 t G ti
C6411C6411C6411
C6713C6713C6713C6713C62xC62x™™C62xC62x™™
Highes
Performan
Highes
Performan GatewayGateway InfrastructureInfrastructure
C6202C6202C6203C6203
C6204C6204
1st Generation1st Generation
Fi dFi d i ti tC6201C6201
C6701C6701
C6202C6202
C6211C6211C6711C6711
C6204C6204C6205C6205
C6712C6712C67xC67x™™
FixedFixed--pointpoint
FloatingFloating--pointpoint
Cours DSP Chapitre 1 45Time
ENIS 2011-2012
Plus d’informationInternetInternet
Website:Website: www.ti.comwww.ti.comdspvillage.comdspvillage.com
FTPFTP ft //ft ti / b/t 320bbft //ft ti / b/t 320bbFTP:FTP: ftp://ftp.ti.com/pub/tms320bbsftp://ftp.ti.com/pub/tms320bbs
FAQ:FAQ: http://wwwhttp://www--k.ext.ti.com/sc/technical_support/knowledgebase.htm k.ext.ti.com/sc/technical_support/knowledgebase.htm
D i i f tiD i i f ti TI & METI & ME
USA USA -- Product Information Center ( PIC )Product Information Center ( PIC )
Device informationDevice information TI & METI & MEApplication notesApplication notes News and eventsNews and events
Technical documentationTechnical documentation TrainingTraining
Phone:Phone: 972972--644644--55805580Email:Email: [email protected]@ti.com
( )( )
Information 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
Software Registration/Upgrades:Software Registration/Upgrades: 972972--293293--50505050H d R i /U dH d R i /U d 281281 274274 22852285
Other ResourcesOther Resources
Cours DSP Chapitre 1 46ENIS 2011-2012
Hardware Repair/Upgrades:Hardware Repair/Upgrades: 281281--274274--22852285Enroll in Technical Training:Enroll in Technical Training: www.ti.com/sc/trainingwww.ti.com/sc/training
(choose (choose Design WorkshopsDesign Workshops))
Manuels clès de la famille C6000HardwareHardware
SPRU189SPRU189 -- CPU and Instruction Set Ref. GuideCPU and Instruction Set Ref. GuideSPRU189SPRU189 CPU and Instruction Set Ref. GuideCPU and Instruction Set Ref. GuideSPRU190SPRU190 -- Peripherals Ref. GuidePeripherals Ref. Guide
SPRU401SPRU401 -- Peripherals Chip Support Lib. Ref.Peripherals Chip Support Lib. Ref.p p ppp p ppSoftwareSoftware
SPRU198SPRU198 Programmer’s GuideProgrammer’s GuideSPRU198SPRU198 -- Programmer s GuideProgrammer s GuideSPRU303SPRU303 -- C6000 DSP/BIOS User’s GuideC6000 DSP/BIOS User’s Guide
C d G tiC d G tiCode GenerationCode GenerationSPRU186SPRU186 -- Assembly Language Tools User’s GuideAssembly Language Tools User’s Guide
O ti i i C C il U ’ G idO ti i i C C il U ’ G idSPRU187SPRU187 -- Optimizing C Compiler User’s GuideOptimizing C Compiler User’s Guide
Cours DSP Chapitre 1 47ENIS 2011-2012
Refer to the Refer to the C6000 Family UpdateC6000 Family Update handout for full listhandout for full list
Literature sud les DSP
“A Simple Approach to Digital Signal Processing”“A Simple Approach to Digital Signal Processing”by Craig by Craig MarvenMarven and Gillian Ewers; and Gillian Ewers; ISBN 0ISBN 0--47114711--52435243--99y gy g
“DSP Primer (Primer Series)”“DSP Primer (Primer Series)”by C. Britton by C. Britton RorabaughRorabaugh; ; ISBN 0ISBN 0--07050705--40044004--77
“A DSP Primer : With Applications to Digital Audio“A DSP Primer : With Applications to Digital Audioand Computer Music” by Ken Steiglitz; ISBN 0-8053-1684-1
“DSP First : A Multimedia Approach”
Cours DSP Chapitre 1 48ENIS 2011-2012
James H. McClellan, Ronald W. Schafer, Mark A. Yoder;ISBN 0-1324-3171-8
Literature sud les DSP
“Digital Signal Processing Implementation “Digital Signal Processing Implementation g g g pg g g pusing the TMS320C6000TM DSP Platform”using the TMS320C6000TM DSP Platform”
by Naim Dahnoun; ISBN 0201by Naim Dahnoun; ISBN 0201--6191661916--44
“C6x“C6x--Based Digital Signal Processing”Based Digital Signal Processing”by Nasser Kehtarnavaz and Burc Simsek;by Nasser Kehtarnavaz and Burc Simsek;
ISBN 0ISBN 0--1313--088310088310--77
Cours DSP Chapitre 1 49ENIS 2011-2012
Programmation des DSPIl est relativement facile d'écrire un programme pour un DSP, grâce aux
compilateurs 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, permettantp p p
au compilateur de tirer le meilleur parti de l'architecture de calcul.
Cours DSP Chapitre 1 50ENIS 2011-2012
Programmation des DSP de TICode Composer Studio (CCS) : Le logiciel de pilotage de la carte DSP
est un logiciel très performant comportant un ensemble complet d'outils deest un logiciel très performant comportant un ensemble complet d outils dedéveloppement d'applications sur DSP.
Il t i d' t t d' éli l dIl permet aussi d'augmenter et d'améliorer le processus dedéveloppement pour les programmeurs qui cherchent à créer et tester entemps réel des applications de traitement de signal.
Il met en disposition des outils pour configurer, construire, exécuter,suivre et analyser des programmes.y p g
Cours DSP Chapitre 1 51ENIS 2011-2012
Programmation des DSPProgrammation des DSP
1) Écrire le 2) Optimiser code C le code C
É3) Écrire le code assembleur linéaire
Cours DSP Chapitre 1 52ENIS 2011-2012
SommaireTypes de structures mémoireyp
Les caches dans les DSP
Évolution des DSP
SIMD (DSP16xxx, ADSP-2116x, …)
Superscalaire (LSI401Z, …)
VLIW (TMS320 C6x)
DSP conventionnels multicoreDSP conventionnels multicore
Processeurs hybrides ARM+DSP
Cours DSP Chapitre 2 55ENIS 2011-2012
Perspective historique1970 1971: Intel 4004
1972: Intel 8008
1980
1972: Intel 80081974: 1er microcontrôleur : TMS 1000
1er ordinateur personnel (8008)1979: 1er DSP single-chip : Bell Labs Mac 4
1980 Intel 80861980: 1er DSP autonome : NEC µPD77101981: IBM PC (8088)1982: Intel 80286
1990
1982: Intel 802861983: 1er succès commercial pour un DSP : TMS 320 C101985: Intel 3861986: MIPS -> R2000, premier microprocesseur RISC commercial
2000
p p1989: Intel 486 (utilisation d’un pipeline)1993: Intel Pentium, PowerPC 6011996: 1er DSP VLIW : TMS 320 C62xx1999 P ti III1999: Pentium III 2000: Pentium 4
Cours DSP Chapitre 2 56ENIS 2011-2012
Historique des Processeurs
1e génération 79-… 4e génération 92-…1e génération 79 …• Architecture Harvard• Multiplieur cablé
4 génération 92 …Image et vidéoProcesseurs faible
2e génération 85-…Parallélisme
consommation
• Parallélisme• Bus multiples• Mémoire sur la puce
5e génération 97-…VLIW
3e génération 88-… HybridesMulticore• Virgule flottante MulticoreDSP + RISC
Cours DSP Chapitre 2 57ENIS 2011-2012
Types de structures mémoireHarvardSéparation des mémoires
Von NeumanUn seul chemin d'accès à la p
programme et données
Meilleure utilisation du CPU :Ch t d
mémoire
Architecture des processeursd’usage général (Pentium Chargement du programme
et des données en parallèle
Architecture des DSP
d usage général (Pentium,68000)
Architecture des DSP
Cours DSP Chapitre 2 58ENIS 2011-2012
Les types de structures mémoire
Principales différences :Principales différences :
Bande passante (accès instruction et donnée simultanés ou non)p ( )
Mémoires (coût, surface)
Contrôle plus ou moins complexe
Cours DSP Chapitre 2 59ENIS 2011-2012
Cache d'instructionsCache d instructions
DSPDSP
Mémoire InstructionMémoire Cached’instructions
Mémoire Données
CPUMémoire Cache
de donnéesde données
Cache = mémoire rapideCache = mémoire rapide• 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 2011-2012
DSP à hautes performances
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 2011-2012
Évolution “hautes performances” des DSP
Comment accélérer les programmes ?
PARALLELISME
Solutions courantes :
SIMD : DSP16xxx, ADSP-2116xSIMD : DSP16xxx, ADSP 2116x
Superscalaire : LSI401Z
VLIW : TMS320 C6xVLIW : TMS320 C6x
Approches combinées : VLIW + SIMD : TigerSHARC
Cours DSP Chapitre 2 62ENIS 2011-2012
DSP SIMDSIMD = Single Instruction Multiple DataD t d SIMDDeux types de SIMD
Unités parallèlesUnités parallèlesEffectuent la même opération sur des données différentesExemple : ADSP-2116x
Partage de l’unité de traitementPartage un mot de donnée en sous-motsEffectue les calculs sur les sous motsEffectue les calculs sur les sous-motsExemple : instructions MMX du Pentium
D d ff dDemande un effort du programmeurEfficace pour des algorithmes parallèles
Cours DSP Chapitre 2 63ENIS 2011-2012
DSP SIMD : ADSP-21160 SHARCSIMD = Single Instruction, Multiple Data
Décodage des instructions simplesDemande un parallélisme bien spécifique
Cours DSP Chapitre 2 64
Demande un parallélisme bien spécifique
ENIS 2011-2012
DSP SIMDLe TigerSHARC d’Analog Devices met en œuvre les deux types de SIMD :
Instruction MAC SIMD
Unité de Unité de
SIMD par unités parallèles
MACALU Shift MACALU Shift
calcul n°1 calcul n°2
SIMD par partage de l’unité de traitement
4 multiplications 16 bitsau lieu de
1 multiplication 64 bits
4 multiplications 16 bitsau lieu de
1 multiplication 64 bits
(split-MAC)
Cours DSP Chapitre 2 65
1 multiplication 64 bits 1 multiplication 64 bits
ENIS 2011-2012
DSP superscalaire LSI401Z
Le processeur se charge de tout : détection, ordonnancement, ...Ci it d t ôl l ( it f t ti )
Cours DSP Chapitre 2 66
Circuit de contrôle complexe (vitesse, surface et consommation)
ENIS 2011-2012
DSP VLIW : TMS320C62xVLIW = Very Large Instruction Word
VLIW 8 voies (instructions 32 bits, soit bus–I de 256 bits)Parallélisme dans les instructions (compilateur ou assembleur)Contrôle pl s simple q e s perscalaire
Cours DSP Chapitre 2 67
Contrôle plus simple que superscalaire
ENIS 2011-2012
DSP VLIW : TMS320C6xVLIW = Very Large Instruction Word
Data path :Data path :Deux ensembles d’unités de
traitement (1 et 2)Instruction de 256 bits :
C62x/C67x CPU
Instruction DispatchInstruction Fetch Control
Registers
InterC
on
• 8 sous-instructions de 32 bits
Unités logique .L :Data Path 2Data Path 1
Instruction DecodeInstruction Dispatch g rrupt
ntrolEmulation
Arithmétique et comparaisonsUnité de décalage .S :ALU et Shifter
Data Path 2Data Path 1
Register File AA15-A0
Register File BB15-B0
Unités de multiplication .M :MultiplicationUnités de données .D :
L1 M2D2 S2 L2S1
++ +
++x+
M1
xD1++
Mouvement de données de / vers la mémoire
Cours DSP Chapitre 2 68ENIS 2011-2012
DSP VLIW : TMS320C6x
Instruction de 256 bits8 sous-instructions de 32 bits
32 bits 32 bits 32 bits 32 bits 32 bits 32 bits 32 bits 32 bits
L1 M2D2 S2 L2S1 M1 D1L1 M2D2 S2 L2S1
+
+ +
+
+x
+
M1
x
D1
++
Cours DSP Chapitre 2 69ENIS 2011-2012
DSP conventionnels multicoreGravure sur la même puce de deux cœurs DSPdeux cœurs DSP indépendants.
Communication entre les deux :
Mé i t é• Mémoire partagée• Interface FIFO
Shared memoryShared memorytwo-way RAM : permet l'accès simultané à la mémoire par les deux
Cours DSP Chapitre 2 70
Architecture du C5421
pcœurs DSP
ENIS 2011-2012
Processeurs hybrides ARM+DSPy
Systèmes de vidéo numériqueSystèmes de vidéo numérique :
• encodage/décodage
Outils de développement• SoC basé DSP• SoC basé DSP
Linux embarqué• Codecs multimédia
ExemplesTexas : DaVinci 644x• Texas : DaVinci 644x
• Motorola : 56800E
Les processe rs ARM constr its
Cours DSP Chapitre 2 71
Les processeurs ARM construits par Acorn RISC Machines.
ENIS 2011-2012
Modes d’adressage standards⇒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.♣ direct: l'opérande est le contenu d'une adresse de 24 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:⇒ Le mode d adressage à trois opérandes:♣ registre (identique).♣ indirect (identique).
⇒ Le mode d'adressage parallèle:♣ registre: l'opérande est un registre à précision étendue.♣ indirect (identique).
Cours DSP Chapitre 2 72ENIS 2011-2012
Modes d’adressage standards
⇒ Le mode d'adressage immédiat long:♣ l'opérande est une valeur immédiate à 24 bits.
⇒Le mode d'adressage à branchement conditionnel:i t (id ti )♣ registre (identique)..
♣ relatif au PC: un déplacement signé sur 16 bits est ajouté au PC.
Cours DSP Chapitre 2 73ENIS 2011-2012
Modes d’adressage standards
Les modes d’adressage ont une grande importance pour garantir la hauteperformance (moins d’instructions) Mais ceci augmente la complexitéperformance (moins d instructions). Mais, ceci augmente la complexitéarchitecturale des DSP (décodage plus complexe, surface de circuit plusimportante).
Instruction typique : OP SRC1, SRC2, DEST
Opération DestinationSource 2
Les DSP possèdent des instructions à usage général et des instructions
p 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 letraitement du signal et les autres applications numériques intensives.
Cinq groupes pour le mode d'adressage sont fournies, six types
Cours DSP Chapitre 2 74
d'adressage peuvent être utilisés dans chaque groupe:
ENIS 2011-2012
Les caches dans les DSP
L’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 cachesDi i l t fi é i t / CPUDiminuer le trafic mémoire externe / CPUModes d’adressage spécifiques (circulaire)Optimisation du codeOptimisation du code
Les mémoires caches sont caractérisées par :Coût élevé.Petites tailles (32 instructions à 2 K instructions).Cache instruction et cache données.Configurables par l’utilisateur
Ces caractéristiques particulières sont indispensables pour garantirles bonnes performances pour le traitement en temps réel
Cours DSP Chapitre 2 75
les bonnes performances pour le traitement en temps réel.
ENIS 2011-2012
SommaireSo a e
Unités fonctionnellesUnités fonctionnellesRegistresP t d f t h t d’ é tiPaquet de fetch et d’exécutionStructure d’une instructionPi liPipelineMémoire cacheJ d’i iJeu d’instructionDifférents modes d’adressagesSyntaxe des instructionsContraintes
Cours DSP Chapitre 3 78ENIS 2011-2012
Unités fonctionnellesU tés o ct o e esDeux chemins de données : A et B
Chaque chemin contient 4 unités de traitement :Chaque chemin contient 4 unités de traitement : (.M) : Multiplication
( L) : Opération logique et arithmétique(.L) : Opération logique et arithmétique
(.S) : Branchement et manipulation binaire
( D) : Chargement et stockage des données(.D) : Chargement et stockage des données
64 registres de 32 bits (A0 à A31) et (B0 à B31)
2 chemins croisés (1x et 2x) (cross path)2 chemins croisés (1x et 2x) (cross path)
Chemin de données A Chemin de données B
.L1 .S1 .M1 .D1 .L2 .S2 .M2 .D2
Registre A0 à A31 Registre B0 à B31
Cours DSP Chapitre 3 79
Chemin croisé
ENIS 2011-2012
Registreseg st es
Registres A0, A1, A2, B0, B1 et B2 peuvent êtres utilisés comme desregistres à condition.
Registres A4 à A7 et B4 à B7 : pointeur pour le mode d’adressageRegistres A4 à A7 et B4 à B7 : pointeur pour le mode d adressagecirculaire.
Registres A0 à A9 et B0 à B9 : registre temporaireRegistres A0 à A9 et B0 à B9 : registre temporaire.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 de
registres A0:A1, A2:A3, ……et B30:B31.Il existe d’autres registres de contrôles, d’interruptions, de modes,
etc.
Cours DSP Chapitre 3 80ENIS 2011-2012
Paquet de Fetch et d’ExécutionVELOCI TI : architecture élaborée par TI basée sur la structure VLIW
aquet de etc et d écut op
(Very Long Instruction Word)
I t ti 4 t t 32 bitInstruction : 4 octets = 32 bits
PE : paquet exécutable: groupe d’instructions exécutables en //PE : paquet exécutable: groupe d instructions exécutables en //pendant un seul cycle
PF : paquet Fetch formé de 8 instructions
peut 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 81
appartiennent au même PE (si 1) ou non (si 0).
ENIS 2011-2012
Paquet de Fetch et d’ExécutionExemple 1 :
aquet de etc et d écut op
Instruction A
Instruction B
Un PF avec 3 PEs le LSB (p-bit) de chaque Intr
Instruction C
31 0 31 0 31 0 31 0 31 0 31 0 31 0 31 0
A B C D E F G H1 0 1 1 0 1 1 0
Instruction D
Instruction E
A B C D E F G H
Instruction FNoté que si un branchement aura lieu à l’adresse del’inst D, D et E seront exécutés dans un cycle et F, Get H dans le cycle suivant Les instructions A B et C
Instruction G
Instruction H
et H dans le cycle suivant. Les instructions A, B et Cseront ignorés
Cours DSP Chapitre 3 82ENIS 2011-2012
Paquet de Fetch et d’Exécutionaquet de etc et d écut oExemple 2:
Cours DSP Chapitre 3 83ENIS 2011-2012
Paquet de Fetch et d’Exécutionaquet de etc et d écut oExemple 3:
Exemple 4:
Cours DSP Chapitre 3 84ENIS 2011-2012
Rappel: Pipeline appe pe e
Cycles d’horloges
Non-Pipeliné
1 2 3 4 5 6 7 8 9
PF1 D1 E1 PF2 D2 E2 PF3 D3 E3
Pipeliné PF1 D1 E1
PF2 D2 E2
PF3 D3 E3 Pipeline complet (tout les étages(tout les étagesopèrent simultanémentavec l’exécution d’uneinstruction / cycle)
Cours DSP Chapitre 3 85ENIS 2011-2012
Pipelinepe e
PG PS PW PR DP DC E1 E2 E3 E4 E5 E6
Fetch Decode Execute
Extraction du programme (Fetch)
Fetch Decode Execute
Extraction du programme (Fetch)
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
Décodage des instructions
.L1 .S1 .M1 .D1 .L2 .S2 .M2 .D2
Registre A0 à A31 Registre B0 à B31
Cours DSP Chapitre 3 86ENIS 2011-2012
Pipelinepe eÉtapes d’extraction du Programme
(fetch PF)(fetch, PF)
PGGénération d’adresse
PSTransmission de
l’adresse
PWAttente accès
mémoire
PRRéception et lecture
du PFDans le CPU (à la mémoire) mémoire (au CPU)
‘C6x‘C6xCPUCPUPRPR
MemoryMemory PGPG
Cours DSP Chapitre 3 87ENIS 2011-2012PWPW
PSPS
Pipelinepe eÉtape du décodage
d’instruction (D)( )
DPRépartition des instructions d’un PF sous forme de PE
DCDécodage des PEs
‘C6x ‘C6x CPUCPU FuncFuncPRPR CPUCPU
DCDC
FuncFuncUnitsUnits
DPDP
PGPGMemoryMemoryPSPS
Cours DSP Chapitre 3 88ENIS 2011-2012
PWPW
PSPS
Pipelinepe e
Jusqu’à 6 cycles et tout dépend de l’instruction !!
Étape d’exécution(E)
E1courtes inst (ADD, E2 E3; E4
Slots deE6
E5Chargement
SUB, AND, OR, XOR, etc…)
Instruction MPY Slots de retard
Branchementdes valeurs dans un registre
Etage réservée pour les instructions longuesEtage réservée pour les instructions longues
Cours DSP Chapitre 3 89ENIS 2011-2012
Pipelinepe e
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 :
) Sé i b) P llèl P ti ll ) P llèl t t l
B .S1MVK .S1
B .S1|| MVK .S2
a) Série b) Parallèle Partielle
B .S1|| MVK .S2
c) Parallèle totale
ADD .L1ADD .L1MPY .M1MPY .M1LDW .D1
ADD .L1|| ADD .L2|| MPY .M1
MPY M1
|||| ADD .L1|| ADD .L2|| MPY .M1|| MPY .M2|| LDW D1LDW .D1
LDB .D1MPY .M1
|| LDW .D1|| LDB .D2
|| LDW .D1|| LDB .D2
Cours DSP Chapitre 3 91ENIS 2011-2012
Pipelinepe eExécution en Série (1er exemple)
Une seule INSTRUCTION par Cycle entre dans le pipeline En arrivant à l’étape DP (Decode)Une seule INSTRUCTION par Cycle entre dans le pipeline En arrivant à l étape DP (Decode),
Cycle =
PF Decode Execute Donea) SériePR DP DC E1 E2 E3 E4 E5 E6 √
B .S1MVK .S1ADD L1
a) Série
ADD .L1ADD .L1MPY .M1MPY .M1LDW .D1LDB D1LDB .D1
Cours DSP Chapitre 3 92ENIS 2011-2012
Pipelinepe eExécution en Série (1er exemple)
Une seule INSTRUCTION par Cycle entre dans le pipeline En arrivant à l’étape DP (Decode)Une seule INSTRUCTION par Cycle entre dans le pipeline En arrivant à l étape DP (Decode),
Cycle =
PF Decode Execute Donea) SériePR DP DC E1 E2 E3 E4 E5 E6 √
B .S1MVK .S1ADD L1
a) Série
ADD .L1ADD .L1MPY .M1MPY .M1LDW .D1LDB D1LDB .D1
Cours DSP Chapitre 3 93ENIS 2011-2012
Pipelinepe eExécution en Série (1er exemple)
Une seule INSTRUCTION par Cycle entre dans le pipeline En arrivant à l’étape DP (Decode)Une seule INSTRUCTION par Cycle entre dans le pipeline En arrivant à l étape DP (Decode),
Cycle =
PF Decode Execute Donea) SériePR DP DC E1 E2 E3 E4 E5 E6 √
B .S1MVK .S1ADD L1
a) Série
ADD .L1ADD .L1MPY .M1MPY .M1LDW .D1LDB D1LDB .D1
Cours DSP Chapitre 3 94ENIS 2011-2012
PipelineExécution en // partielle (2eme exemple)
pe e
Comment écrire des instructions en //? On utilise le symbole “||” :
B .S1|| MVK .S2
ADD .L1|| ADD .L2|||| MPY .M1
MPY .M1|| LDW .D1|| LDB D2
Cours DSP Chapitre 3 95
|| LDB .D2
ENIS 2011-2012
PipelineExécution en // partielle (2eme exemple)
pe e
Comment écrire des instructions en //? On utilise le symbole “||” :
Cycle =
PF D d Execute Done
PF DP DC E1 E2 E3 E4 E5 E6
PF Decode Execute Done
√B .S1|| MVK .S2
A 1Paquets Paquets d’exécutiond’exécution
ADD .L1|| ADD .L2|| MPY .M1
MPY .M1|| LDW .D1|| LDB .D2
Cours DSP Chapitre 3 96ENIS 2011-2012
Cycle =
PF Decode Execute Done
PF DP DC E1 E2 E3 E4 E5 E6
PF Decode Execute Done
√
Cycle =
PF DP DC E1 E2 E3 E4 E5 E6
PF Decode Execute Done
√PF DP DC E1 E2 E3 E4 E5 E6 √
Cours DSP Chapitre 3 97ENIS 2011-2012
Cycle =
PF Decode Execute Done
PF DP DC E1 E2 E3 E4 E5 E6
PF Decode Execute Done
√
Cycle =
PF DP DC E1 E2 E3 E4 E5 E6
PF Decode Execute Done
√PF DP DC E1 E2 E3 E4 E5 E6 √
Cours DSP Chapitre 3 98ENIS 2011-2012
Pipelinepe eExé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 est
possible que toutes les instructions soient en //. On aura donc un seul PE.possible que toutes les instructions soient en //. On aura donc un seul PE.
B .S1
Parallèle totale
|| MVK .S2|| ADD .L1|| ADD .L2|| MPY .M1|| MPY M2|| MPY .M2|| LDW .D1|| LDB .D2
Cours DSP Chapitre 3 99ENIS 2011-2012
Pipelinepe e
Cycle =
PF Decode Execute Done
PF DP DC E1 E2 E3 E4 E5 E6
PF Decode Execute Done
√
Cours DSP Chapitre 3 100
Cycle =
PF Decode Execute Done
PF DP DC E1 E2 E3 E4 E5 E6
Decode
√
C lCycle =
PF DP DC E1 E2 E3 E4 E5 E6
PF Decode Execute Done
√PF DP DC E1 E2 E3 E4 E5 E6 √
Cours DSP Chapitre 3 101ENIS 2011-2012
Bus interne du C6000PCPC
Program AddrProgram Addr x32x32
Program DataProgram Datax256x256InternalInternal
AAregsregs
Data AddrData Addr -- T1T1 x32x32
Data DataData Data T1T1 x32/64x32/64
MemoryMemory
regsregs
BB
Data DataData Data -- T1T1 x32/64x32/64
Data AddrData Addr -- T2T2 x32x32ExternalExternalBB
regsregsData DataData Data -- T2T2 x32/64x32/64MemoryMemory
DMADMA
DMA AddrDMA Addr -- ReadRead x32x32DMA DataDMA Data -- ReadRead x32x32
PeripheralsPeripherals DMADMADMA AddrDMA Addr -- WriteWrite x32x32DMA DataDMA Data -- WriteWrite x32x32
PeripheralsPeripherals
Cours DSP Chapitre 3 102ENIS 2011-2012
C62x: Dual 32C62x: Dual 32--Bit Load/StoreBit Load/StoreC64x: Dual 64C64x: Dual 64--Bit Load/StoreBit Load/Store
C67x: Dual 64C67x: Dual 64--Bit Load / 32Bit Load / 32--Bit StoreBit Store
Bloc Diagramme du systemeInternalInternalMemoryMemory
ExternalExternal Internal BusesInternal BusesMemoryMemory
D1D1 D2D2
Internal BusesInternal Buses
.D1.D1
.M1.M1
.D2.D2
.M2.M2
RegisteRegiste
RegisteRegiste
.L1.L1
S1S1
.L2.L2
S2S2
er Set Ber Set B
er Set Aer Set A
.S1.S1 .S2.S2CPUCPU
Cours DSP Chapitre 3 103ENIS 2011-2012
Contrôleurs d’accès mémoireDMA : Contrôleur du transfert des données entre les plages
Co t ô eu s d accès é o e
d’adresse de la mémoire sans l’interférence du CPU. Formé par 4canaux programmables et un cinquième auxiliaire.
EDMA : même chose que le DMA mais avec 16 canauxprogrammable et une RAM pour la mémorisation de plusieurs
fi ti d t f t j téconfigurations pour des transferts projeté.
HPI : interface parallèle du processeur host permettant l’accès directHPI : interface parallèle du processeur host permettant l accès directà 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 avec
Cours DSP Chapitre 3 104
l’extérieur à travers les ports d’E/S .
ENIS 2011-2012
'C6000 Peripherals InternalInternalMemoryMemory
GPIOGPIO
XB, PCI,XB, PCI,Host PortHost Port
ExternalExternal Internal BusesInternal Buses
GPIOGPIO
EMIFEMIFMemoryMemory
D1D1 D2D2
e a usese a uses
McBSP’sMcBSP’s
EMIFEMIF
.D1.D1
.M1.M1
.D2.D2
.M2.M2
RegisteRegiste
RegisteRegiste
UtopiaUtopia
DMA, EDMADMA, EDMA
.L1.L1
S1S1
.L2.L2
S2S2
er Set Ber Set B
er Set Aer Set A
(Boot)(Boot)TimersTimers
.S1.S1 .S2.S2CPUCPU
VCPVCPTCPTCPPLLPLL
Cours DSP Chapitre 3 105ENIS 2011-2012
PLLPLL
EMIFInternalInternalMemoryMemory
AsyncAsync
Internal BusesInternal BusesSDRAMSDRAM EMIFEMIF
D1D1 D2D2
e a usese a usesSDRAMSDRAM EMIFEMIF
.D1.D1
.M1.M1
.D2.D2
.M2.M2
RegisteRegiste
RegisteRegisteSBSRAMSBSRAM
.L1.L1
S1S1
.L2.L2
S2S2
er Set Ber Set B
er Set Aer Set A
External Memory Interface (External Memory Interface (EMIFEMIF))External Memory Interface (External Memory Interface (EMIFEMIF)) .S1.S1 .S2.S2CPUCPU
External Memory Interface (External Memory Interface (EMIFEMIF))GluelessGlueless access to access to asyncasync/sync memory/sync memoryWorks with PC100 SDRAM (cheap, fast, and easy!)Works with PC100 SDRAM (cheap, fast, and easy!)
External Memory Interface (External Memory Interface (EMIFEMIF))GluelessGlueless access to access to asyncasync/sync memory/sync memoryWorks with PC100 SDRAM (cheap, fast, and easy!)Works with PC100 SDRAM (cheap, fast, and easy!)
Cours DSP Chapitre 3 106ENIS 2011-2012
ByteByte--wide data accesswide data access16, 32, or 6416, 32, or 64--bit bus widthsbit bus widthsByteByte--wide data accesswide data access16, 32, or 6416, 32, or 64--bit bus widthsbit bus widths
HPI / XBUS / PCIInternalInternalMemoryMemory
XBUS, PCI,XBUS, PCI,Host PortHost Port
ExternalExternalMM
Internal BusesInternal BusesEMIFEMIFMemoryMemory
D1D1 D2D2
e a usese a usesEMIFEMIF
.D1.D1
.M1.M1
.D2.D2
.M2.M2
RegisteRegiste
RegisteRegiste
Parallel Peripheral InterfaceParallel Peripheral InterfaceHPI:HPI: Dedicated, slaveDedicated, slave--only, async 16/32only, async 16/32--bit bus allows hostbit bus allows host--μμPPParallel Peripheral InterfaceParallel Peripheral InterfaceHPI:HPI: Dedicated, slaveDedicated, slave--only, async 16/32only, async 16/32--bit bus allows hostbit bus allows host--μμPP
.L1.L1
S1S1
.L2.L2
S2S2
er Set Ber Set B
er Set Aer Set A
HPI:HPI: Dedicated, slaveDedicated, slave only, async 16/32only, async 16/32 bit bus allows hostbit bus allows host μμP P access to C6000 memoryaccess to C6000 memory
XBUS:XBUS: Similar to HPI but provides …Similar to HPI but provides …Master/slave and sync modesMaster/slave and sync modes
HPI:HPI: Dedicated, slaveDedicated, slave only, async 16/32only, async 16/32 bit bus allows hostbit bus allows host μμP P access to C6000 memoryaccess to C6000 memory
XBUS:XBUS: Similar to HPI but provides …Similar to HPI but provides …Master/slave and sync modesMaster/slave and sync modes .S1.S1 .S2.S2
CPUCPU
Master/slave and sync modesMaster/slave and sync modesGlueless i/f to FIFOs (up to singleGlueless i/f to FIFOs (up to single--cycle xfer rate)cycle xfer rate)
PCI:PCI: Standard 32Standard 32--bit, 33MHz PCI interfacebit, 33MHz PCI interface
Master/slave and sync modesMaster/slave and sync modesGlueless i/f to FIFOs (up to singleGlueless i/f to FIFOs (up to single--cycle xfer rate)cycle xfer rate)
PCI:PCI: Standard 32Standard 32--bit, 33MHz PCI interfacebit, 33MHz PCI interface
Cours DSP Chapitre 3 107ENIS 2011-2012
These interfaces provide means to bootstrap the C6000These interfaces provide means to bootstrap the C6000These interfaces provide means to bootstrap the C6000These interfaces provide means to bootstrap the C6000
GPIOInternalInternalMemoryMemory
GPIOGPIO
XB, PCI,XB, PCI,Host PortHost Port
ExternalExternalMM
Internal BusesInternal Buses
GPIOGPIO
EMIFEMIFMemoryMemory
D1D1 D2D2
e a usese a usesEMIFEMIF
.D1.D1
.M1.M1
.D2.D2
.M2.M2
RegisteRegiste
RegisteRegiste
.L1.L1
S1S1
.L2.L2
S2S2
er Set Ber Set B
er Set Aer Set A
.S1.S1 .S2.S2CPUCPU
General Purpose General Purpose Input/OutputInput/Output (GPIO)(GPIO)‘C64x provides 8 or 16 bits of general purpose bitwise I/O‘C64x provides 8 or 16 bits of general purpose bitwise I/O
General Purpose General Purpose Input/OutputInput/Output (GPIO)(GPIO)‘C64x provides 8 or 16 bits of general purpose bitwise I/O‘C64x provides 8 or 16 bits of general purpose bitwise I/O
Cours DSP Chapitre 3 108ENIS 2011-2012
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
InternalInternalMemoryMemory
GPIOGPIO
XB, PCI,XB, PCI,Host PortHost Port
ExternalExternal Internal BusesInternal Buses
GPIOGPIO
EMIFEMIFMemoryMemory
D1D1 D2D2
e a usese a uses
McBSP’sMcBSP’s
EMIFEMIF
.D1.D1
.M1.M1
.D2.D2
.M2.M2
RegisteRegiste
RegisteRegiste
UtopiaUtopia
MultiMulti--Channel Buffered Serial Port (Channel Buffered Serial Port (McBSPMcBSP))MultiMulti--Channel Buffered Serial Port (Channel Buffered Serial Port (McBSPMcBSP)).L1.L1
S1S1
.L2.L2
S2S2
er Set Ber Set B
er Set Aer Set A
MultiMulti Channel Buffered Serial Port (Channel Buffered Serial Port (McBSPMcBSP))2 (or 3) f2 (or 3) fullull--duplex, synchronous serialduplex, synchronous serial--portsportsUp to 100 Mb/sec performanceUp to 100 Mb/sec performanceSSupportsupports multimulti--channel operation (T1, E1, MVIP, …)channel operation (T1, E1, MVIP, …)
MultiMulti Channel Buffered Serial Port (Channel Buffered Serial Port (McBSPMcBSP))2 (or 3) f2 (or 3) fullull--duplex, synchronous serialduplex, synchronous serial--portsportsUp to 100 Mb/sec performanceUp to 100 Mb/sec performanceSSupportsupports multimulti--channel operation (T1, E1, MVIP, …)channel operation (T1, E1, MVIP, …).S1.S1 .S2.S2
CPUCPU
SSupportsupports multimulti channel operation (T1, E1, MVIP, …)channel operation (T1, E1, MVIP, …)
Utopia (Utopia (C64xC64x))ATM connectionATM connection
SSupportsupports multimulti channel operation (T1, E1, MVIP, …)channel operation (T1, E1, MVIP, …)
Utopia (Utopia (C64xC64x))ATM connectionATM connection
Cours DSP Chapitre 3 109ENIS 2011-2012
ATM connectionATM connection50 MHz wide area network connectivity50 MHz wide area network connectivityATM connectionATM connection50 MHz wide area network connectivity50 MHz wide area network connectivity
DMA / EDMAInternalInternalMemoryMemory
GPIOGPIO
XB, PCI,XB, PCI,Host PortHost Port
ExternalExternal Internal BusesInternal Buses
GPIOGPIO
EMIFEMIFMemoryMemory
D1D1 D2D2
e a usese a uses
McBSP’sMcBSP’s
EMIFEMIF
.D1.D1
.M1.M1
.D2.D2
.M2.M2
RegisteRegiste
RegisteRegiste
UtopiaUtopia
DMA, EDMADMA, EDMA
.L1.L1
S1S1
.L2.L2
S2S2
er Set Ber Set B
er Set Aer Set A
(Boot)(Boot)
Direct Memory Access (DMA / EDMA)Direct Memory Access (DMA / EDMA)Direct Memory Access (DMA / EDMA)Direct Memory Access (DMA / EDMA).S1.S1 .S2.S2CPUCPU
Direct Memory Access (DMA / EDMA) Direct Memory Access (DMA / EDMA) Transfers any set of memory locations to anotherTransfers any set of memory locations to another4 / 16 / 64 channels (transfer parameter sets)4 / 16 / 64 channels (transfer parameter sets)Transfers can be triggered by any interrupt (sync)Transfers can be triggered by any interrupt (sync)
Direct Memory Access (DMA / EDMA) Direct Memory Access (DMA / EDMA) Transfers any set of memory locations to anotherTransfers any set of memory locations to another4 / 16 / 64 channels (transfer parameter sets)4 / 16 / 64 channels (transfer parameter sets)Transfers can be triggered by any interrupt (sync)Transfers can be triggered by any interrupt (sync)
Cours DSP Chapitre 3 110ENIS 2011-2012
Transfers can be triggered by any interrupt (sync)Transfers can be triggered by any interrupt (sync)Operates independent of CPUOperates independent of CPUOn reset, provides bootstrap from memoryOn reset, provides bootstrap from memory
Transfers can be triggered by any interrupt (sync)Transfers can be triggered by any interrupt (sync)Operates independent of CPUOperates independent of CPUOn reset, provides bootstrap from memoryOn reset, provides bootstrap from memory
Timer/CounterInternalInternalMemoryMemory
GPIOGPIO
XB, PCI,XB, PCI,Host PortHost Port
ExternalExternal Internal BusesInternal Buses
GPIOGPIO
EMIFEMIFMemoryMemory
D1D1 D2D2
e a usese a uses
McBSP’sMcBSP’s
EMIFEMIF
.D1.D1
.M1.M1
.D2.D2
.M2.M2
RegisteRegiste
RegisteRegiste
UtopiaUtopia
DMA, EDMADMA, EDMA
.L1.L1
S1S1
.L2.L2
S2S2
er Set Ber Set B
er Set Aer Set A
(Boot)(Boot)TimersTimers
.S1.S1 .S2.S2CPUCPUTimer / CounterTimer / Counter
Two (or three) 32Two (or three) 32--bit timer/countersbit timer/countersTimer / CounterTimer / Counter
Two (or three) 32Two (or three) 32--bit timer/countersbit timer/counters
Cours DSP Chapitre 3 111ENIS 2011-2012
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
Phase Locked Loop (PLL)InternalInternalMemoryMemory
GPIOGPIO
XB, PCI,XB, PCI,Host PortHost Port
ExternalExternal Internal BusesInternal Buses
GPIOGPIO
EMIFEMIFMemoryMemory
D1D1 D2D2
RRRR
e a usese a uses
McBSP’sMcBSP’s
EMIFEMIF
IIII .D1.D1
.M1.M1
.D2.D2
.M2.M2
Register SeRegister Se
Register SeRegister Se
UtopiaUtopia
DMA, EDMADMA, EDMAPLLPLLPLLPLL
InputInputCLKINCLKIN
InputInputCLKINCLKIN
.L1.L1
S1S1
.L2.L2
S2S2
et Bet B
et Aet A(Boot)(Boot)
TimersTimers
PLLPLLExternal clock multiplierExternal clock multiplierReduces EMI and costReduces EMI and cost
PLLPLLExternal clock multiplierExternal clock multiplierReduces EMI and costReduces EMI and cost
OutputOutputCLKOUT1CLKOUT1
Output rate of PLLOutput rate of PLL
OutputOutputCLKOUT1CLKOUT1
Output rate of PLLOutput rate of PLL.S1.S1 .S2.S2CPUCPU
VCPVCPTCPTCPPLLPLL
Pin selectablePin selectablePin selectablePin selectable -- Output rate of PLLOutput rate of PLL-- Instruction (MIP) rateInstruction (MIP) rateCLKOUT2CLKOUT2
-- Output rate of PLLOutput rate of PLL-- Instruction (MIP) rateInstruction (MIP) rateCLKOUT2CLKOUT2
Cours DSP Chapitre 3 112ENIS 2011-2012
PLLPLL -- 1/2 rate of CLKOUT11/2 rate of CLKOUT1-- 1/2 rate of CLKOUT11/2 rate of CLKOUT1
'0x Memory Scheme0000 00000000 00000000_00000000_0000
16MB External16MB External((CE0CE0))CE0CE0
A A Memory MapMemory Map is a table is a table representation of memoryrepresentation of memory
External (External (CE1CE1))
Internal ProgramInternal Program
0100_00000100_0000
0140_00000140_0000
CE1CE1This is more convenient than a This is more convenient than a block diagram descriptionblock diagram description
gg
16 MB16 MB0000_00000000_0000
CE0CE0 4 MB4 MB0100_00000100_0000
CE1CE10140_00000140_0000
C6000C6000
ProgramProgram
EMIFEMIF
0200_00000200_0000CE2CE2
0300_00000300_0000CE3CE3
CPUCPU EMIFEMIF
8000_00008000_0000DataData
Cours DSP Chapitre 3 113ENIS 2011-2012
16 MB16 MBCE2CE2
16 MB16 MBCE3CE3
'0x Memory Scheme0000 00000000 00000000_00000000_0000
16MB External16MB External((CE0CE0))CE0CE0
ProgramProgram Internal ProgramInternal Program
0100_00000100_0000
0140_00000140_0000
4MB External 4MB External ((CE1CE1))CE1CE1
CE0CE0
gg
16MB External16MB External((CE0CE0))
0200_00000200_0000
C6000C6000CPUCPU EMIFEMIF CE3CE3
((CE0CE0))CE2CE2
16MB External16MB External0300_00000300_0000
DataData
((CE0CE0))CE3CE3
Internal DataInternal Data8000_00008000_0000
Cours DSP Chapitre 3 114ENIS 2011-2012D
FFFF_FFFFFFFF_FFFF
Mémoire cache L1é o e cac e
L1P : Le C6x contient une mémoire cache programme de 32 bits de bus d’adresses et de 256 bits (bus de données).
Noté que : 1 PF = 256 bits = 8*32 = 8 instructions!
L1D: Le C64x contient une mémoire cache de données de 64 bits (bus d d é ) t d 32 bit (b d’ d )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 115ENIS 2011-2012
Cache L1PCac eRAM externe
DSPCache Mémoire cache
C64L2P
16 Ko
L1P
256Ko-1024Ko
4 G
Noté bien: pas de RAM interne
Cours DSP Chapitre 3 116
4 Go
Cache L1PCac e31 14 13 5 4 0
Tag Set Index Offset
TAG (18 bits) : il contient les MSB de l’adresse. Stocké dansune mémoire tampon pour indiquer la présence de la plaged’ d dé i é d l hd’adresse désirée dans la cache ou non.
Set Index (9 bits) : un set est une collection de ligne de trame.Set Index (9 bits) : un set est une collection de ligne de trame.Dans 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 117
q g p
ENIS 2011-2012
ExempleSupposons que nous avons un DSP fictif, avec un bus d’adresse égale à 5 bits:
e p e
DSP
RAM0000000001 5 bits
Tag = 00 DSP......
001110100001001
gBus
d’adresse
01001...
...
01111
Tag = 01
TAG (2 bit )TAG (2 bits)
Mémoire cache
1100011001
...
3 bits
Tag = 11
Cours DSP Chapitre 3 118
cache...11111
ENIS 2011-2012
Cache L1PCac e
offsetSet/Cache ligne
31 3 2 1 031 3 2 1 0
31 3 2 1 0………
012
8bits
31 3 2 1 0
31 3 2 1 031 3 2 1 0
31 3 2 1 031 3 2 1 0
………
……
345…
511
D l C64Dans le C64x,L1P = 16 Ko = …. * …octets pour un mode d’adressage direct.
Cours DSP Chapitre 3 119ENIS 2011-2012
Cache L1PSoit l’instruction suivante et son adresse :
C d é i Paramètres
Cac e
80000250 003C22F4 STW.D2T1 A0,*+SP[0x1]
Code opération Paramètres
Adresse de l’instruction Instruction
A partir de l’adresse de l’instruction (0x80000250) on déterminel’offset, le set et le tag :
Tag Set Offset31 14 13 5 4 08 0 0 0 0 2 5 0
Tag Set Offset
Tag Set Offset
Cours DSP Chapitre 3 120
g
ENIS 2011-2012
Cache L1DCac eTag Set Index Offset
31 13 12 2 1Group
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).
Set Index (7 bits) : un ensemble est une collection de ligne detrame. Dans un système d’adressage associatives par ensembled d bl h bl ti t d lide deux blocs, chaque ensemble contient deux ligne.
Group (4 bits) : sélectionne le mot dans un ensemble qui contientGroup (4 bits) : sélectionne le mot dans un ensemble qui contientles données désirées.
Cours DSP Chapitre 3 121
Offset (2 bits) : détermine l’offset d’un mot dans l’adresse.
ENIS 2011-2012
Cache L1DCac eLigne cache (2 per set)Set Groupe
2
Ligne cache (2 per set)
15 3 2 1 015 3 1 0…0
32bits
Groupe
2…15 3 2 1 0
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
Dans le C64x L1D = 16 Ko = * * * 2 octets pour un modeDans le C64x, L1D = 16 Ko = … … .. 2 octets pour un moded’adressage associative par ensemble de 2 blocs.
Il y’a 128 ensembles contenant chacun 2 lignes cache.
Chaque ligne est formée de 64 octets
Cours DSP Chapitre 3 122
Chaque ligne est formée de 64 octets.
ENIS 2011-2012
Cache L1D
32bit
Cac e
215 3 2 1 015 3 1 0
15 3 2 1 015 3 2 1 0
………
0
1
32bits
15 3 2 1 0
15 3 2 1 015 3 2 1 0
15 3 2 1 015 3 2 1 0
………
……2
127
…
8 bits
32 bits
Cours DSP Chapitre 3 123ENIS 2011-2012
Cache L1DSoit la donnée suivante et son adresse : Valeur de la donnée
Cac e
0x000198C8 54
Adresse de la donnée
A partir de l’adresse de la donnée (0x000198C8) on déterminel’offset, le group, le set et le tag :
31 13 12 2 16 5 031 13 12 2 16 5 0
Tag Set Group Offset
Cours DSP Chapitre 3 124ENIS 2011-2012
Mémoire cache de programme
Bus de données: 256 bits
Bus d’adresses: 32 bits
Registres de contrôleExtraction du programme (Fetch)
DMA / EMIF
Contrôleur de logique
Testeur
Émulateur
Répartition des instructions (Dispatch)
Décodage des instructionsÉmulateur
InterrupteurRegistre A0 à A31 Registre B0 à B31
Chemin de données A Chemin de données B
.L1 .S1 .M1 .D1 .L2 .S2 .M2 .D2
Mémoire cache de données
Bus de données: 64 bits
B d’ d 32 bit
- Horloge
- Ports séries
- Autre périphériques
Cours DSP Chapitre 3 125
Bus d’adresses: 32 bits ..Etc
ENIS 2011-2012
C64X
C6211/C6711 C64x DM64x
L2: 64K L2 1 MB L2: 256KB---642
150, 166 MHz 500, 600, 720 MHz; 1GHz
500, 600 MHz; 400MHz (640)
L1: 4K L1D & 4K L1P L1: 16K L1D &16K L1P L1: 16K L1D &16K L1P
L2: 64K L2: 1 MB128KB---641,
640
32-bit EMIF 64-bit EMIF, 16-bit EMIF 64-bit EMIF---642
16-channel EDMA 64-channel EDMA 64-channel EDMA
No Video port No video portDM642: 3 video ports
DM641: 2 video ports
DM640 1 id
32-bit EMIF---641, 640
No Ethernet MAC No Ethernet MAC Ethernet MAC
DM640: 1 video port
Cours DSP Chapitre 3 127ENIS 2011-2012
Jeu d’Instructions1 Arithmétique
ADD(U) Addition entière 32/40 bits signée (non signée)
Jeu d Instructions( )
ADD2ADD4SUB(U)
g ( g )2 additions entières 16 bits4 additions entières 8 bitsSoustraction entière 32/40 bits signée (non signée)
SUBCSUB2SUB4
Soustraction conditionnelle pour étape de division2 soustractions entières 16 bits4 soustractions entières 8 bits
1 Arithmétique saturéeSATABSS
Saturation de 0 bits en 32 bitsValeur absolue 32/40 bits avec saturation
/SADDSSUB
Addition signée 32/40 bits avec saturationSoustraction signée 32/40 bits avec saturation
1 Comparaison1 ComparaisonCMPGT(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 128
LatenceENIS 2011-2012
Jeu d’InstructionsJeu d Instructions2
Multiplication entièresMPY2 16 LSB signés x 16 LSB signés => 32 bits2
4MPY2MPYU4MPYSU4MPYUS4
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é4 Multiplication 8bits non signé par 8 bits signéMPYUS4 4 Multiplication 8bits non signé par 8 bits signé
2 Multiplication entières saturéesSMPY Saturation ((16 LSB signé x 16 LSB signés) <<1) => 32 bitsVariantes
(( g g ) )H pour 16 MSB (SMPYLH)
4DécalageMVD Transfère d’un registre vers un autre registre4
11
MVDMVKMVKH
Transfère d un registre vers un autre registreTransfère une constante 16 bits signée vers un registre Transfère une constante 16 bits signée vers MSB d’un registre
1 O é ti l i1 Opération logiqueANDORXOR
ET logique 32 bitsOU logique 32 bitsOU exclusif logique 32 bits
Cours DSP Chapitre 3 129Latence
ENIS 2011-2012
Jeu d’InstructionsJeu d InstructionsAccès mémoire avec calcul d’adresse
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 Décalage1 DécalageSHLSHR(U)SHR2SSHL
Décalage gauche 32/40 bitsDécalage arithmétique (logique) droit 32/40 bitsDécalage droit 16 bits signéDé l h 32/40 bit t tiSSHL
SHLMBSHRMB
Décalage gauche 32/40 bits avec saturationDécalage gauche et arrangement en octet Décalage droit et arrangement en octet
1 Champs de bitsEXT(U)CLR
Extrait un champs de bits et extension de signe (non signé)Met à zéro un champs de bits
SET Met à 1 un champs de bits
6 BranchB Branchement conditionnel (Offset 21 bits ou registre)
Cours DSP Chapitre 3 130
LatenceENIS 2011-2012
Jeu d’Instructions et UnitésJeu d Instructions et Unités.L .M .S .D.L .M .S .D
ABSABS2ADD(U)
MPY2MPYSU4MPYUS4
ADD2ANDB
ADD(U)ADD2ANDADD(U)
ADD2ADD4AND
MPYUS4MPYU4MVDSMPY
BMVKMVKHOR
ANDLDLDDWMVKAND
MVKORSHLMB
SMPY ORSHLSHLMBSHR2
MVKORSTSTDWSHLMB
SHRMBSUB(U)S
SHR2SHRMBSUB2
O
STDWSUB(U)SUB2
OSUB2SUB4XOR
XOR XOR
Cours DSP Chapitre 3 131ENIS 2011-2012
Modes d’adressagesodes d ad essagesIl 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 :pp q g*R : Le registre R pointe sur une adresse mémoire.
*R++(d) : Le registre R contient une adresse mémoire en plus il y aura une( ) g p ypost 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é++R(d) : Même chose que le cas précédent mais maintenant une préincrémentation.
*+R(d) : L’adresse est pré incrémentée de tel sorte que l’adresse actuelle
Cours DSP Chapitre 3 132
est R+d. Par contre, R ne va pas être modifier.
ENIS 2011-2012
Modes d’adressagesodes d ad essagesMode circulaire :
Utiliser pour créer un tampon circulaire très utilisé.Dans 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-B7.
Initialiser le registre du mode d’adressage : AMR pour activer le modeInitialiser 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érationsSeulement l’unité D1 peut être utile pour effectuer les opérationsarithmétiques ou logiques.
Cours DSP Chapitre 3 133ENIS 2011-2012
Modes d’adressagesodes d ad essagesRegistre AMR :
réservé BK1 BK0
31 26 25 21 20 16
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 Description00 Adressage linéaire par défaut
Exemple :
Si dé i i t00 Adressage linéaire par défaut01 Adressage circulaire utilisant BK010 Adressage circulaire utilisant BK1
Si on désire avoir un tamponcirculaire de 128 octets dansBK1 pointé par le registre B5,
11 Réservé
BK0 et BK1 : N taille du tampon qui sera 2N+1
AMR doit être initialisé à :
0x00C00800
Cours DSP Chapitre 3 134
BK0 et BK1 : N taille du tampon qui sera 2N+1.
ENIS 2011-2012
Syntaxe des instructionsSy ta e des st uct o sAdd / Soustraction / Multiplication :
ADD .L1 A3, A7, A7 si le résultat est stocké dans B7 on choisie l’unité L2
; A3 + A7 → A7
si le résultat est stocké dans B7, on choisie l unité .L2
SUB .S1 A1, 1, A1 ; A1 – 1 → A1
2 instructions en // :
MPY .M2 A7, B7, B6
|| MPYH M2 A7 B7 A6
; les LSB(A7) * LSB(B7) → B6
; les MSB(A7) * MSB(B7) → A6|| MPYH .M2 A7, B7, A6
Le choix de l’unité de traitement dépend de la destination
M1; les MSB(A7) MSB(B7) → A6
Cours DSP Chapitre 3 135
Le choix de l unité de traitement dépend de la destination.
ENIS 2011-2012
Syntaxe des instructionsSy ta e des st uct o s
Load / Store :Load / Store :
LDH .D2 *B2++, B7 ; charger (B2) → B7, Incrémenter B2
LDH .D1 *A2++, A7 ;LDH: chargement de 16 bits (H: half word)
charger (A2) → A7, Incrémenter A2
LDW: chargement de 32 bits (W: word)
STW .D1 A1, *+A4[20] ;stocké 32 bits de A1 dans une mémoire dont l’adresse est spécifiée par
store A1 → (A4) offset par 20
p pA4 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 136
une seule + est utilisée
ENIS 2011-2012
Syntaxe des instructionsSy ta e des st uct o sBranchement / Move :
Loop:MVK .S1 x, A4 ;
MVKH S1 x A4 ;
move 16 LSBs de l’adresse x → A4
move 16 MSBs de l’adresse x → A4MVKH .S1 x, A4 ;.
move 16 MSBs de l adresse x → A4
.
.
SUB S1 A1 1 A1; Décrémenter A1SUB .S1 A1, 1, A1;
[A1] B .S2 Loop ;
Décrémenter A1
Branchement à Loop si A1≠0
NOP 5 ;
STW D1 A3 *A7 ;
5 instructions de No-operation
Stocker A3 dans (A7)
Cours DSP Chapitre 3 137
STW .D1 A3, A7 ; Stocker A3 dans (A7)
ENIS 2011-2012
ContraintesCo t a tesContrainte mémoire :
La mémoire interne est arrangée sous forme de banc de mémoirespour permettre le stockage et le chargement simultanément.
Contrainte chemin croisé :
Le code suivant est valide :Le code suivant est valide :
ADD .L1x A1, B1, A0
|| MPY M2 A2 B2 B3|| MPY .M2x A2, B2, B3
Par contre, le code suivant n’est pas valide :
ADD .L1x A1, B1, A0
|| MPY .M1x A2, B2, B3
Cours DSP Chapitre 3 138
|| , ,M2x
ENIS 2011-2012
ContraintesCo t a tes
C i k / hContrainte stockage/chargement :
Les registres adresses utilisés doivent être du même chemin quel’ ité Dl’unité .D :
Le code suivant est valide :
LDW .D1 *A1, A2
|| LDW .D2 *B1, B2|| ,
Par contre le code suivant n’est pas valide :
LDW D1 *A1 A2LDW .D1 *A1, A2
|| LDW .D2 *A3, B2
Cours DSP Chapitre 3 139ENIS 2011-2012
ContraintesCo t a tesEn plus, le chargement et le stockage en // ne peuvent pas être du mêmechemin de registres (les registres A et les registres B)
Exemple :
Le code suivant est valide :
chemin de registres (les registres A et les registres B).
Le code suivant est valide :
LDW .D1 *A0, B1
|| STW D2 A1 *B2|| STW .D2 A1, *B2
De même, le code suivant est valide :
LDW D1 *A0 B1LDW .D1 *A0, B1
|| LDW .D2 *B2, A1
Par contre, le code suivant n’est pas valide :
LDW .D1 *A0, A1
Cours DSP Chapitre 3 140
|| STW .D2 A2, *B2
ENIS 2011-2012
ENISENIS 2011/2012
Chapitre IV :
Étude pratique du pipeline pour le TMS320 C64XTMS320 C64X
Plan Ch suivantCh précédent
SommaireSo a e
Pipeline
Exemples :
1èr exemple : Somme des produits
2ème exemple : Sum of Absolute Difference
3ème exemple : Interpolation Bilinéaire3 exemple : Interpolation Bilinéaire
Cours DSP Chapitre 4 143ENIS 2011-2012
Étude de cas : 1er Exempletude de cas e p e
Dans ce qui suit, on va étudier la fonction permettant de calculer lasomme de produits :
Y ∑40
nn
n xaY ∑=
=1
void somme_produit(unsigned char a[40], unsigned char b[40])
{
int x;
int sum=0;
for(x=1; x <= 40; x++)
sum += (a[x] * b[x]);
}
Cours DSP Chapitre 4 144
}
ENIS 2011-2012
1er Exemple2 principaux instructions utilisées dans cet nn xaY ∑=
40
e e p e2 principaux instructions utilisées dans cetalgorithme : Multiplication et Addition.
Les entrés de l’ nité M sont “a” et “ ” et la
n∑=1
.MMPY .M a, x, prod
Les entrés de l’unité .M sont “a” et “x” et lasortie est “prod”.
nn
n xaY ∑=
=40
1U ité M lti li ti.M
MPY .M a, x, prodADD L s m prod s mL
n 1Unité .M : multiplicationUnité .L : addition
ADD .L sum, prod, sum.L
Cours DSP Chapitre 4 145ENIS 2011-2012
1er ExempleLes variables a, x, prod et Y seront stockés ou? Et comment peut on y
e p e, , p p y
accéder?
Ces variables seront stockés comme suit :Ces variables seront stockés comme suit :
nn
n xaY ∑=
=40
1
MPY .M a, x, prodADD .L sum, prod, sum
n 1
A0
A1
a
x
Register File A
.M
.LMPY .M A0, A1, A3ADD .L A4, A3, A4
A2
prodA3
A4 Y
A15
32-bits
Cours DSP Chapitre 4 146ENIS 2011-2012
1er Exemplee p e
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 boucle2. Un compteur (= 40)3 Instruction pour décrémenter le compteur3. Instruction pour décrémenter le compteur4. Un test de branchement on se basant sur la valeur du compteur
Cours DSP Chapitre 4 147ENIS 2011-2012
1er ExempleOn commence par le branchement. L’unité permettant d’effectuer lebranchement est l’unité .S.
e p e
Après, on va créer le compteur avec une valeur égale à 40.
On va utiliser l’instruction MVK (MoVe a Konstant dans un registre). 0nchoisit le registre A2).
nn
n xaY ∑=
=40
1
Register File A
Mloop:
.S MVK .S 40, A2A0
A1
A2
a
x
prodA3
40
.M
.L
MPY .M A0, A1, A3ADD .L A4, A3, A4
B .S loopA15
A4 Y
Cours DSP Chapitre 4 148
B .S loopA15
32-bits
ENIS 2011-2012
1er ExempleDécrémenter le compteur dans la boucle (soustraire 1 de A2).
e p e
L’instruction SUB utilise aussi l’unité .L, comme pour l’ADD.add et sub peut etre fonctionner avec 6 unités.
nn
n xaY ∑=
=40
1
.S MVK .S 40, A2A0
A1
a
x
Register File A
.Mloop:
MPY .M A0, A1, A3ADD .L A4, A3, A4
A2
prodA3
A4 Y
40
.L, ,
B .S loop
SUB .L A2, 1, A2A15
32-bits
Cours DSP Chapitre 4 149ENIS 2011-2012
1er Exemple
L d iè ét t d’ j t l diti b t l l d A2
e p e
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 laSi 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 :pour C62x/C67x : A1, A2, B0, B1 et B2
C64 A0 A1 A2 B0 B1 t B2pour C64x : A0, A1, A2, B0, B1 et B2
ENIS 2010-2011 Cours DSP Chapitre 4 150
1er Exemplee p eHow How do you load a pointer with an address?do you load a pointer with an address?
An address is a constant, so use MVK:An address is a constant, so use MVK:
MVKMVK SS A5A5MVKMVK .S.S a, A5a, A5
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
yy
MVKL SMVKL S A5A5Solution?Solution?
MVKL .SMVKL .S a, A5a, A5
MVKH .SMVKH .S a, A5a, A5
ENIS 2010-2011 Cours DSP Chapitre 4 151
1er Exemplee p e
nn
n xaY ∑=
=40
1
.Sloop:
MVK .S 40, A2A0
A1
A2
a
x
40
Register File A
.M
.L
oop:
MPY .M A0, A1, A3ADD .L A4, A3, A4SUB L A2 1 A2
A2
prodA3
A4 Y
40
B .S loop
SUB .L A2, 1, A2
[A2]A15
32-bits
Cours DSP Chapitre 4 152ENIS 2011-2012
Load/Store OptionspBecause the 'C6000 provides byte addressability, the instruction Because the 'C6000 provides byte addressability, the instruction
set supports several types of load/store instructions:set supports several types of load/store instructions:
LoadLoad instructions:instructions:LDBLDB L d 8L d 8 bit b tbit b t ( h )( h )LDBLDB Load 8Load 8--bit bytebit byte (char)(char)LDHLDH Load 16Load 16--bit halfbit half--word word (short)(short)LDWLDW Load 32Load 32--bit wordbit word ((intint))
LDDWLDDW Load 64Load 64--bit doublebit double--wordword (C67x, C64x) (C67x, C64x) (double)(double)
StoreStore instructions:instructions:STBSTBSTHSTHSTWSTW
If we’reIf we’re mulitplyingmulitplying 1616--bit numbers whichbit numbers which
STDW (C64x)STDW (C64x)
Cours DSP Chapitre 4 153ENIS 2011-2012
If we re If we re mulitplyingmulitplying 1616--bit numbers, which bit numbers, which load instruction should be used?load instruction should be used?
1er ExempleComment charger les variables dans les registres?On va créer un pointeur pour une variable le pointeur contient l’adresse de
e p eOn 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“ dansles registres et l’instruction store (ST) pour stocker le résultat Yles registres et l instruction store (ST) pour stocker le résultat Y.
Register File A
• Créer des pointeurs pour:•A5=&a•A6=&x•A7=&Y
• Inst Load/Store.S
A0A1
A2
a
x
prodA3
40
.M
L
Inst Load/Store•LD *A5, A0•LD *A6, A1•ST A4, *A7
A4 YA5 &a[n]A6 &x[n]A7 &Y
*A5: accéder audonnée pointé parl’adresse A5
.L
A15
32-bits
Mémoire
a[40]
x[40]
Y
*A5
*A6
*A7
Cours DSP Chapitre 4 154ENIS 2011-2012
1er ExempleOn va utiliser les instructions load/store dans notre code.
e p e
Pour faciliter les instructions load/store, on utilise l’unité .D.
A0 a
Register File A
MVK S 40 A2
nn
n xaY ∑=
=40
1Incrémenter lepointeur aprèschaque load
M
.S
A0A1
A2
a
x
prodA3
A4 Y
40
MVK .S 40, A2
loop: LDH .D *A5++, A0LDH .D *A6++, A1
.M
.L
A4 YA5 &a[n]A6 &x[n]A7 &Y
MPY .M A0, A1, A3ADD .L A4, A3, A4SUB .L A2, 1, A2
A15
32-bitsData Memory
[A2] B .S loop.D
STH .D A4, *A7
Cours DSP Chapitre 4 155
y
ENIS 2011-2012
1er Exemplee p e
S1S1 S2S2A0A0Register File ARegister File A
B0B0Register File BRegister File B
.S1.S1 .S2.S2A1A1A2A2
B1B1B2B2
.M1.M1 .M2.M2A3A3A4A4
B3B3B4B4
.L1.L1 .L2.L2............
.D1.D1 .D2.D2A15A15 B15B15
3232--bitsbits 3232--bitsbits
Cours DSP Chapitre 4 156ENIS 2011-2012
Data MemoryData Memory
Utilisant seulement les registres de AUt sa t seu e e t es eg st es de
YY4040∑∑ aa xx**
ll
Y =Y = ∑∑ aann xxnnn = 1n = 1
**
MVKMVK .S1.S1 40, A240, A2 ; A2 = 40, loop count; A2 = 40, loop countloop:loop: LDHLDH .D1.D1 *A5++, A0*A5++, A0 ; A0 = a(n); A0 = a(n)
LDHLDH .D1.D1 *A6++, A1*A6++, A1 ; A1 = x(n); A1 = x(n)MPYMPY .M1.M1 A0, A1, A3A0, A1, A3 ; A3 = a(n) * x(n); A3 = a(n) * x(n)ADDADD .L1.L1 A3, A4, A4A3, A4, A4 ; Y = Y + A3; Y = Y + A3SUBSUB .L1.L1 A2, 1, A2A2, 1, A2 ; decrement loop count; decrement loop count
[A2][A2] BB .S1.S1 looploop ; if A2 ; if A2 ≠≠ 0, branch0, branchSTHSTH .D1.D1 A4, *A7A4, *A7 ; *A7 = Y; *A7 = Y
Cours DSP Chapitre 4 157ENIS 2011-2012Note: Note: Le Le registreregistre A4 A4 doitdoit contenircontenir zerozero..
1er Exemplee p ePaquet Fetch : contient 8 instructions de MVK .S 40, A2
32 bits chacuneVoyant de près comment effectué une
d d it é té l d
loop: LDH .D *A5++, A0LDH .D *A6++, A1
MPY .M A0, A1, A3somme de produit représenté par le codesuivant dans une structure pipeline duC64x
ADD .L A4, A3, A4SUB .L A2, 1, A2
[A2] B .S loopC64x
STH .D A4, *A7
P F t h D d E t
Clock Cycle = 1
PG PS PW PR DP DC E1 E2 E3 E4 E5 E6
MVKLDH
Program Fetch Decode Execute Done
LDHLDHMPYADDSUB
Cours DSP Chapitre 4 158
BSTH
ENIS 2011-2012
1er Exemplee p e
Program Fetch Decode Execute Done
Clock Cycle = 4
PG PS PW PR DP DC E1 E2 E3 E4 E5 E6
MVKLDHLDHMPYADDSUBBSTH
FP2FP3FP4
STH
Cours DSP Chapitre 4 159ENIS 2011-2012
1er ExempleClock Cycle =
PF Decode Execute Done
p
PF DP DC E1 E2 E3 E4 E5 E6 √
PF E t D
Clock Cycle =
PF DP DC E1 E2 E3 E4 E5 E6
PF Decode Execute Done
√
Cours DSP Chapitre 4 160ENIS 2011-2012
1er ExempleClock Cycle =
PF Decode Execute Done
p
PF DP DC E1 E2 E3 E4 E5 E6 √
PF E t D
Clock Cycle =
PF DP DC E1 E2 E3 E4 E5 E6
PF Decode Execute Done
√
Cours DSP Chapitre 4 161ENIS 2011-2012
1er Exemplee p eAlors comment résoudre ce problème?
En premier lieu, on va se concentrer sur les instructions MPY/ADD. On doit retarder add par un
cycle pour que la multiplication aura lieu avant que l’addition commence. Utiliser NOP.
Clock Cycle = 11
PF DP DC E1 E2 E3 E4 E5 E6
PF Decode Execute Done
√
MVK
FP5-2
LDHLDH
MVK+
+ + MPY
NOP
SUBBSTH
ADD
Cours DSP Chapitre 4 162
STH
ENIS 2011-2012
1er Exemplee p eCycle = 12
PF Decode Execute Done
PF DP DC E1 E2 E3 E4 E5 E6
PF Decode Execute Done
√MVK
LDH
ADD
LDH +MPYNOP
STH
SUBB
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 163ENIS 2011-2012
1er Exemplee p eMVK .S 40, A2
loop: LDH .D *A5++, A0LDH .D *A6++, A1NOP 3
Évaluation de ce code en cycles:NOP 3
MPY .M A0, A1, A3NOP ADD .L A4, A3, A4
y
Loop interne:1ère load 52ème load 1MPY 2ADD/SUB 2SUB .L A2, 1, A2
[A2] B .S loopNOP 5STH D A4 *A7
ADD/SUB 2B 6
Total 16*40+2 = 642
STH .D A4, A7
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 164ENIS 2011-2012
1er Exemplee p eProgram Fetch Decode Execute Done
Clock Cycle =3
PG PS PW PR DP DC E1 E2 E3 E4 E5 E6
MVKLDHLDH
ADDSUB
BSTH
NOPNOPNOPMPYNOP
NOPNOPNOPNOPNOP
Clock Cycle =5
NOP
PG PS PW PR DP DC E1 E2 E3 E4 E5 E6
Program Fetch Decode Execute Done
MVKLDH
ADDSTH LDH
LDHNOPNOPNOP
SUBB
NOPNOPNOP
STH
Cours DSP Chapitre 4 165
MPYNOP
NOPNOP
ENIS 2011-2012
1er Exemplee p eQu’est ce que on a besoins? MVK .S 40, A2
loop:
MVK .S 40, A2loop:
Les résultats des LDH’s et MVKloop:
MPY .M A0, A1, A3ADD .L A4, A3, A4SUB .L A2, 1, A2
LDH .D *A5++, A0LDH .D *B6++, A1
On place le 2ème load sur le chemin B, pour qu’on puisse exécuté les 2 i i //
p|| LDH .D *A5++, A0|| LDH .D *B6++, A1
SUB .L A2, 1, A2[A2] B .S loop
NOP 2Notre nouvelle boucle pipelinée
[A2] B .S loop
STH .D A4, *A7
instructions en // MPY .M A0, A1, A3NOPADD .L A4, A3, A4
STH .D A4, *A7
p p
Program Fetch Decode Execute Done
Clock Cycle =2
PG PS PW PR DP DC E1 E2 E3 E4 E5 E6
MVKLDHLDH
NOPADD
LDH
SUBBNOPNOP
STH
Cours DSP Chapitre 4 166
NOPMPY
ENIS 2011-2012
1er Exemplee p eProgram Fetch Decode Execute Done
Clock Cycle =5
PG PS PW PR DP DC E1 E2 E3 E4 E5 E6
MVKLDHLDH
NOPADDSTH
SUBBNOPNOPMPY
STH
Clock Cycle =
MPY
PG PS PW PR DP DC E1 E2 E3 E4 E5 E6
Program Fetch Decode Execute Done
Cours DSP Chapitre 4 167ENIS 2011-2012
FINFIN
Nouri MASMOUDI f à ’ SProfesseur à l’ENIS
Responsable de l’Équipe Circuits et Systèmes Laboratoire d’Électronique et des Technologies de l’Information [email protected] // i i è
ENIS 2010-2011 Cours DSP Chapitre 5 168
http://www.circtuitsystème.tunet.tn