View
606
Download
27
Category
Preview:
Citation preview
République Tunisienne
Ministère d’Enseignement Supérieur,
Université de Sfax
ECOLE NATIONALE ECOLE NATIONALE D’INGENIEURS DE SFAXD INGENIEURS DE SFAX
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
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
ENIS 2012/2013
Chapitre I :C ap e
Introduction aux DSP’sIntroduction aux DSP s
Plan Ch suivant
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
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
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
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
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
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
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
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
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
Radar
Cours DSP Chapitre 1 14ENIS 2012-2013
Digital Still Camerag
Cours DSP Chapitre 1 15ENIS 2012-2013
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
DSP / GPP Consommation d’énergie
Cours DSP Chapitre 1 38ENIS 2011-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
Représentation des nombresp
Cours DSP Chapitre 1 40ENIS 2012-2013
Représentation des nombrespVirgule fixe
Cours DSP Chapitre 1 41ENIS 2012-2013
Représentation des nombresVirgule flottante
Cours DSP Chapitre 1 42ENIS 2012-2013
Représentation des nombresVirgule flottante
Cours DSP Chapitre 1 43ENIS 2012-2013
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
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
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: scsc--infomaster@ti.cominfomaster@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))
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
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
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
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
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
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
Programmation des DSP de TIg
Cours DSP Chapitre 1 53ENIS 2012-2013
ENIS 2012/2013
Chapitre II :p
Architectures des DSP’sArchitectures des DSP s
Plan Ch suivantCh précédent
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
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
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
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
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
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
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
É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
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
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
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
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
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
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
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
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
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
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
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
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
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
Exemples de caractéristiquesExemples de caractéristiques mémoires et caches
Cours DSP Chapitre 2 76ENIS 2012-2013
ENIS 2012/2013
Chapitre III :C ap e
Architecture Interne du TMS320 C64xArchitecture Interne du TMS320 C64x
Plan Ch suivantCh précédent
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
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
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
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
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
Paquet de Fetch et d’ExécutionPaquet de Fetch et d ExécutionExemple 2:Exemple 2:
Cours DSP Chapitre 3 83ENIS 2011-2012
Paquet de Fetch et d’ExécutionPaquet de Fetch et d ExécutionExemple 3:
Exemple 4:
Cours DSP Chapitre 3 84ENIS 2012-2013
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
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
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
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
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
PipelinePipeline
Cours DSP Chapitre 3 90ENIS 2012-2013
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
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
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
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
PipelinePipeline
Cycle = 7
PF DP DC E1 E2 E3 E4 E5 E6
PF Decode Execute Done
√
Cours DSP Chapitre 3 95ENIS 2012-2013
PipelinePipeline
Cycle = 8
PF DP DC E1 E2 E3 E4 E5 E6
PF Decode Execute Done
√
Cours DSP Chapitre 3 96ENIS 2012-2013
PipelinePipeline
Cycle = 9
PF DP DC E1 E2 E3 E4 E5 E6
PF Decode Execute Done
√
Cours DSP Chapitre 3 97ENIS 2012-2013
PipelinePipeline
Cycle = 10
PF DP DC E1 E2 E3 E4 E5 E6
PF Decode Execute Done
√
Cours DSP Chapitre 3 98ENIS 2012-2013
PipelinePipeline
Cycle = 11
PF DP DC E1 E2 E3 E4 E5 E6
PF Decode Execute Done
√
Cours DSP Chapitre 3 99ENIS 2012-2013
PipelinePipeline
Cycle = 12
PF DP DC E1 E2 E3 E4 E5 E6
PF Decode Execute Done
√
B
Cours DSP Chapitre 3 100ENIS 2012-2013
PipelinePipeline
Cycle = 13
PF DP DC E1 E2 E3 E4 E5 E6
PF Decode Execute Done
√
Cours DSP Chapitre 3 101ENIS 2012-2013
PipelinePipeline
Cycle = 14
PF DP DC E1 E2 E3 E4 E5 E6
PF Decode Execute Done
√
Cours DSP Chapitre 3 102ENIS 2012-2013
PipelinePipeline
Cycle = 19
PF DP DC E1 E2 E3 E4 E5 E6
PF Decode Execute Done
√
Cours DSP Chapitre 3 103ENIS 2012-2013
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
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
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
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
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
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
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
PipelinePipeline
Cycle = 7
PF DP DC E1 E2 E3 E4 E5 E6
PF Decode Execute Done
√
Cours DSP Chapitre 3 111ENIS 2012-2013
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
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
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
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
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
'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
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
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
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
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
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
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
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
'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
'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
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
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
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
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
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
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
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
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
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
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
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
C6416 DSK
Cours DSP Chapitre 3 138ENIS 2012-2013
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
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
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
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
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
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
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
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
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
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
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
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
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
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
FIN
Cours DSP Chapitre 3 153ENIS 2012-2013
ENIS 2012/2013
Chapitre IV :
Étude pratique du pipeline pour le p q p p pTMS320 C64X
Plan Ch suivantCh précédent
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
É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
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
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
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
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
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
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
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
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
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?
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
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
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
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..
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
FIN
Nouri MASMOUDI Professeur à l’ENIS
ÉResponsable de l’Équipe Circuits et Systèmes Laboratoire d’Électronique et des Technologies de l’Information Nouri.Masmoudi@enis.rnu.tnhttp://www.circtuitsystème.tunet.tn
ENIS 2012-2013 Cours DSP Chapitre 5 192
http://www.circtuitsystème.tunet.tn
Recommended