Download Cours Dsp Ge3 Isi Serr Eei Etudiant 10-9-2012...
République Tunisienne Ministère d’Enseignement Supérieur, Université de Sfax
ECOLE NATIONALE D’INGENIEURS D INGENIEURS DE SFAX
ENIS 2012//2013 2012
Cours DSP 3ème année GE ISI-EEI_SEER
Nouri MASMOUDI Professeur à l’ENIS Responsable de l’Équipe Circuits et Systèmes Laboratoire d d’Électronique Électronique et des Technologies de ll’Information Information
Plan du cours Chapitre I : Introduction aux DSP Chapitre II : Architectures des DSP p Chapitre III : Architecture interne du TMS320 C64X 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 C ap e I :
Introduction aux DSP’s DSP s
Plan
Ch suivant
Sommaire Besoins et contraintes en traitement numérique du signal Applications typiques Algorithmes typiques Al i h i
Présentation des DSP Processeurs actuels Exemples des DSP Comparaison avec les processeurs généralistes
Représentation des nombres Types de données Virgule fixe Virgule flottant ENIS 2012-2013
Cours DSP Chapitre 1
5
Définition d’un d un DSP DSP = Digital Signal Processor Processeur de traitement Numérique du Signal Un DSP est un type particulier de microprocesseur. Il intègre i tè un ensemble bl de d fonctions f ti spéciales é i l d ti é destinées à le l rendre particulièrement performant dans le domaine du traitement numérique du signal (TNS). Il se présente généralement sous la forme d d’un un microcontrôleur intégrant, selon les marques et les gammes des constructeurs, de lla mémoire, é i d t série é i synchrones h id d des titimers, d des ports rapides, des contrôleurs DMA, des ports d’E/S divers. ENIS 2012-2013
Cours DSP Chapitre 1
6
Structure g générale des applications de TNS
TNS = Traitement Numérique du Signal ADC = Analog to Digital Converter DAC = Digital to Analog Converter
ENIS 2012-2013
Cours DSP Chapitre 1
7
Pourquoi le TNS ? L principaux Les i i avantages t d du calcul l l numérique éi / au calcul l l analogique l i : Grande résistance aux bruits variations des tensions d’alimentation variations de la température interférences électromagnétiques (EMI)
Indé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 ENIS 2012-2013
Cours DSP Chapitre 1
8
Applications des DSP Communications Filaire (DSL, cable) S Sans fil ((cellulaires, ll l i télévision numérique, radio numérique) q ) Modem Cryptage Audio Mixage et édition Effets Suppression de bruit Annuleur d’echo
ENIS 2011-2012
Image / vidéo Compression/Codage C Composition iti Traitement
Militaire Imagerie : radar, sonar… Cryptographie Guidage de missiles N i ti Navigation
Cours DSP Chapitre 1
9
Applications des DSP Biomédical Equipements de monitoring
Signaux biophysiques ElectroEncéphaloGramme (EEG) ElectroCardioGramme (ECG)
Automatisation Commande de machines Contrôle de moteurs Robots
Radiographie Instrumentation Analyseurs de spectre Générations de fonctions Analyseurs de régimes transitoires
ENIS 2012-2013
Electronique Automobile Contrôle du moteur Assistance au freinage Aide à la navigation Commandes vocales
Cours DSP Chapitre 1
10
Application type y : Modem ADSL ADSL = Asymmetrical Digital Subscriber Line
Besoins en calcul de 100 à 150 MIPS. TEQ = Time domain EQualizer QAM = Quadrature Amplitude Modulation FEQ = Frequency F domain d i EQualizer EQ li ENIS 2012-2013
Cours DSP Chapitre 1
11
LCD TV TV numérique : affiche la vidéo numérique / analogique LCD (Liquid Crystal Display) Module de base: DSP - décodeur MPEGx pour vidéo, voix: AC3/MPEG pour lle traitement audio. MCU – contrôleur du système électronique, réseau. Interface Vidéo/audio Unité d’alimentation
ENIS 2012-2013
Cours DSP Chapitre 1
12
Digital Video Recorder g Le système inclut : Processeur DSP: MPEG CPU Triple DAC NTSC/PAL, S vidéo et YPrPb Interface FPGA/PCI commander le transfert des données et le bus PCI. CODEC Stéréo Audio , Interface utilisateur, Bloc d’alimentation
ENIS 2012-2013
Cours DSP Chapitre 1
13
Radar
ENIS 2012-2013
Cours DSP Chapitre 1
14
Digital g Still Camera
ENIS 2012-2013
Cours DSP Chapitre 1
15
Algorithme g type y : Les filtres FIR Pour un filtre à réponse impulsionnelle finie (Finite Impulse Response) de taille N (nombre de coefficients), on doit effectuer un calcul du type :
ENIS 2012-2013
Cours DSP Chapitre 1
16
Algorithme g type y : Les filtres FIR
Contraintes : 300) nombre de coefficients (10 ! 300), précision (16 ou 24 bits), vitesse de fonctionnement . . . ENIS 2012-2013
Cours DSP Chapitre 1
17
Profils o s d’utilisation d ut sat o du DSP S Embarqué
Haute performance
Faible coût unitaire Faible consommation : part importante de la consommation pour la mémoire Architecture limitée au strict nécessaire Temps réel
Puissance : Calcul intensif Parallélisme
Multiplication des unités de calcul internes Interfaces multi-DSP multi DSP
Interface avec un ordinateur hôte
Non prioritaires : Non prioritaires :
Performance F ilité d Facilité de programmation ti
ENIS 2012-2013
Cours DSP Chapitre 1
Coût élevé Utilisation mémoire Consommation
18
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 bus g spécialisés p Modes d’adressage Contrôle d’exécution spécialisé Périphériques spéciaux pour le traitement du signal Augmentation du parallélisme
ENIS 2012-2013
Cours DSP Chapitre 1
19
Caractéristiques classiques des DSP Augmentation du parallélisme Calculs U ité de Unités d calcul l l en parallèle llèl Mémoire à accès multiples Lecture/Écriture de plusieurs données simultanément Pipeline Découpage g des instructions de façon à les exécuter à intervalles plus rapprochés
ENIS 2012-2013
Cours DSP Chapitre 1
20
Traitement en Temps Réel
Les 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' é ti suivante l'opération i t entre t d deux é échantillons h till :
99
y (n ) = ∑ a(k )x(n − k ) k =0
ENIS 2012-2013
Cours DSP Chapitre 1
21
Traitement en Temps Réel
Temps de Traitement
Temps d’attente
n
n+ n+1 1 Temps d’échantillon d échantillon
Nous pouvons dire que nous avons une application li ti en ttemps réel é l sii : •
ENIS 2012-2013
Temps d'attente ≥ 0 Cours DSP Chapitre 1
22
Spécificités des DSP
Algorithme classique de TNS : Filtre RIF N −1
y (n) = ∑ a (i ) x(n − i ) i =0
Pour chaque a(i) x(n-i) :
3 accès à la mémoire 2 accès à l’unité de calcul ENIS 2012-2013
Recherche de l’instruction
Recherche du coefficients a(i)
Recherche de la donnée x(n-i)
Multiplication a(i) x(n-i)
A Accumulation l ti a(i-1) (i 1) x(n-i-1) ( i 1) + a(i) (i) x(n-i) ( i) Cours DSP Chapitre 1
23
Spécificités des DSP
Objectifs :
Réduire
les accès mémoire
Augmenter g
Réduire
les accès mémoire simultanés
le temps passé pour faire des calculs
Instruction MAC (multiplication-accumulation) en 1 seul cycle d’instruction ENIS 2012-2013
Cours DSP Chapitre 1
24
Classification des processeurs p
DSP = Digital Signal Processor ASIP = Application Specific Instruction set Processor ASIC = Application Specific Integrated Circuit ENIS 2012-2013
Cours DSP Chapitre 1
25
Quel processeur Q p utiliser p pour le TNS µ-contrôleurs : pas assez performants ASIC : beaucoup trop coûteux, mise en oeuvre complexe et longue ASIP : beaucoup trop coûteux, complexe et surtout spécifique Processeurs généralistes (GPP) : pas temps réel, réel trop coûteux, coûteux consomment trop d’énergie, difficilement embarquables
ENIS 2012-2013
Cours DSP Chapitre 1
26
Quel processeur Q p utiliser p pour le TNS
ASIC
Perfo ormance
FPGA
DSP
GPP
ENIS 2012-2013
Devellopment ttime
ASIC
FPGA
DSP
GPP
Cours DSP Chapitre 1
27
Quel processeur Q p utiliser p pour le TNS
GPP
Fle exibility
DSP FPGA ASIC
ENIS 2012-2013
Powerr consump ption
GPP DSP FPGA ASIC
Cours DSP Chapitre 1
28
G General l Purpose P DSP / DSP in i ASIC •
•
Circuit intégré à application Spécifique (ASICs) est conçu à base des fonctions en semi-conducteurs. i d t g et les inconvénients d’utiliser Les avantages les ASICs sont énumérés ci-dessous : Advantages • • • • • •
ENIS 2012-2013
Sortie élevé Faible surface en silicium Faible consommation de puissance Fiabilité améliorée Réduction du bruit Faible coût du système global
Inconvénients • Coût élevé M i de d flexibilit fl ibilit • Moins ibili é • Temps de d éveloppement est éélevé levé
Cours DSP Chapitre 1
29
H d Hardware / Microcode Mi d multiplication lti li ti •
•
Les processeurs DSP sont optimisés pour effectuer des opérations de multiplication et d addition. d'addition Multiplication et addition sont exécutées matériellement pendant un seul cycle. Exemple: Multiplication 4 4-bit bit (non-signé). (non signé). Hardware
Microcode
1011 0 x 1110 10011010
1011 0 x 1110 0000 1011 1011. 1011.. 1011... 10011010
ENIS 2012-2013
Cours DSP Chapitre 1
Cycle C l Cycle Cycle Cycle
1 2 3 4
Cycle 5 30
Paramètres à considérer Parameter
TMS320C6211 (@150MHz)
TMS320C6711 (@150MHz)
32-bit
32-bit
N/A
64-bit 64 bit
Extended Arithmetic
40-bit
40-bit
Performance (peak)
1200MIPS
1200MFLOPS
2 (16 x 16-bit) with 32bit result
2 (32 x 32-bit) with 32 or 64-bit result
32
32
Internal L1 program memory cache
32K
32K
Internal L1 data memory cache
32K
32K
Internal L2 cache
512K
512K
Arithmetic format Extended floating point
Number of hardware multipliers Number of registers g
C6711 Datasheet: \Links\TMS320C6711.pdf
C6211 Datasheet: \Links\TMS320C6211.pdf
ENIS 2012-2013
Cours DSP Chapitre 1
31
Paramètres à considérer P Parameter t
TMS320C6211 (@150MHz) 2 x 75Mbps
TMS320C6711 (@150MHz) 2 x 75Mbps
16
16
Not inherent
Not inherent
3.3V I/O, 1.8V Core
3.3V I/O, 1.8V Core
Yes
Yes
On chip timers (number/width) On-chip
2 x 32-bit 32 bit
2 x 32-bit 32 bit
Cost
US$ 21.54
US$ 21.54
256 Pin BGA
256 Pin BGA
External memory interface controller
Yes
Yes
JTAG
Yes
Yes
I/O bandwidth: Serial Ports (number/speed) DMA channels Multiprocessor support Supply voltage Power management
g Package
ENIS 2012-2013
Cours DSP Chapitre 1
32
Algorithmes g typiques yp q du DSP
La somme des produits (SOP) est l’élément clé dans la plupart des algorithmes:
Algorithm
Equation M
Finite Impulse Response Filter
y ( n) =
∑a
k
x(n − k )
k =0 M
Infinite Impulse Response Filter
y ( n) =
∑a
N
k
k =0
x ( n − k )+
∑b
k
y (n − k )
k =1
N
Convolution
y ( n) =
∑ x ( k ) h( n − k ) k =0
N −1
Discrete Fourier Transform
X (k ) =
∑ x(n) exp[− j(2π / N )nk ] n =0
Discrete Cosine Transform
ENIS 2012-2013
F (u ) =
N −1
⎡ π ⎤ c(u ). f ( x). cos ⎢ u (2 x + 1)⎥ ⎣ 2N ⎦ x =0
∑
Cours DSP Chapitre 1
33
DSP S à virgule flottante f / Fixe •
Applications pp qui q exigent g : – À haute h t précision. é i i – dynamique y q large. g – Rapport signal/bruit élevé. – Facilité F ili é d'utilisation. d' ili i
Ayez besoin d'un processeur de virgule flottante. ENIS 2012-2013
Cours DSP Chapitre 1
34
DSP à virgule i l flottante fl tt t / Fixe Fi •
C’est l’application qui définie la plateforme à utiliser dans le but d’obtenir les performances optimums à faible prix.
•
Pour un but éducatif, utiliser un DSP à virgule qui p peut supporter pp les flottante ((6711 ou 6713)) q opérations à virgule flottante et fixe.
ENIS 2012-2013
Cours DSP Chapitre 1
35
DSP à virgule flottante / Fixe •
Inconvénient des processeurs à virgule flottante: – Consommation de puissance plus élevé – Peut être plus coûteux. – Peut être moins rapide que le DSP à virgule fixe et de taille plus importante.
ENIS 2012-2013
Cours DSP Chapitre 1
36
Quelques DSP’s DSP s
MIPS : Million d’Instruction d Instruction Par Seconde ENIS 2012-2013
Cours DSP Chapitre 1
37
DSP / GPP Consommation d’énergie
ENIS 2011-2012
Cours DSP Chapitre 1
38
Représentation des nombres p Les DSP à virgule fixe Les 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 flottante Les données sont représentées en utilisant une mantisse et un exposant. 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), et l’exposant est un entier indiquant la place de la virgule en base 2. ENIS 2011-2012
Cours DSP Chapitre 1
39
Représentation p des nombres
ENIS 2012-2013
Cours DSP Chapitre 1
40
Représentation p des nombres Virgule fixe
ENIS 2012-2013
Cours DSP Chapitre 1
41
Représentation des nombres Virgule flottante
ENIS 2012-2013
Cours DSP Chapitre 1
42
Représentation des nombres Virgule flottante
ENIS 2012-2013
Cours DSP Chapitre 1
43
Texas Instruments Instruments’ TMS320 family •
Les différents familles et sous families existent pour soutenir différents marchés C2000
C5000
C6000
Lowest Cost
Efficiency
Control Systems Motor Control Storage Digital Ctrl Systems
Best MIPS per Watt / Dollar / Size phones Wireless p Internet audio players Digital still cameras Modems Telephony VoIP
Performance & Best Ease-of-Use
ENIS 2012-2013
Cours DSP Chapitre 1
Multi Channel and Multi Function App App's s Comm Infrastructure Wireless Base-stations DSL Imaging Multi-media Servers Video 44
C6000 Roadmap Software Compatible Perforrmance e
Floating Floating Point Point Multi -core Multi-core
™ DSP C64x DSP C64x™ 1.1 1.1 GHz GHz
2nd Generation (Fixed Point) ™ DSP C64x C64 C64x™ DSP
General Purpose
1st Generation
C6414 C6414
t nce s e ma h g Hi rfor Pe
C6415 C6415
C6411 C6411
C6203 C6204 C6202
C62x™ C6713 C6205 C6201 C67x™ C6211 C6701 C6711 C6712
C6416 C6416
3G Wireless Media Gateway Infrastructure
Fixed-p point Floating-point
Time ENIS 2012-2013
Cours DSP Chapitre 1
45
Plus d’information
Internet
Website: www.ti.com dspvillage.com FTP: ftp://ftp.ti.com/pub/tms ftp://ftp.ti.com/pub/tms320 320bbs bbs FAQ: Q: http://www http://wwwp -k.ext.ti.com/sc/technical_support/knowledgebase.htm pp g Device information Application pp notes Technical documentation USA - Product Information Center ( PIC )
TI & ME News and events Training
Phone: 972 972-644 644-5580 Email: sc
[email protected] Information and support for all TI Semiconductor products/tools Submit suggestions and errata for tools, silicon and documents Other Resources S ft Software Registration/Upgrades: R i t ti /U d Hardware Repair/Upgrades: Enroll in Technical Training: g
972-293 972293--5050 281281-274274-2285 www.ti.com/sc/trainingg (choose Design Workshops) Workshops)
ENIS 2012-2013
Cours DSP Chapitre 1
46
Manuels clès de la famille C6000 Hardware SPRU189 SPRU 189 - CPU and d IInstruction i S Set R Ref. f G Guide id SPRU190 SPRU 190 - Peripherals Ref. Guide SPRU401 SPRU 401 - Peripherals P i h l Chip Chi Support S Lib. Lib Ref. R f Software SPRU198 SPRU 198 - Programmer’s Guide SPRU303 SPRU 303 - C6000 DSP/BIOS User’s User s Guide Code Generation SPRU186 SPRU 186 - Assembly Language Tools User’s Guide SPRU187 SPRU 187 - Optimizing p g C Compiler p User’s Guide Refer to the C6000 Family Update handout for full list ENIS 2012-2013
Cours DSP Chapitre 1
47
Literature sud les DSP “A Simple Approach to Digital Signal Processing” b C by Craig i Marven M and d Gilli Gillian Ewers; E ISBN 0-4711 4711-5243 5243-9
“DSP Primer (Primer Series)” b C by C. Britton Bi Rorabaugh; R b h; ISBN 0-0705 Rorabaugh 0705-4004 4004-7
“A DSP Primer : With Applications to Digital Audio and Computer Music” Music by Ken Steiglitz; ISBN 0-8053-1684-1
“DSP First : A Multimedia Approach” James H H. McClellan McClellan, Ronald W W. Schafer Schafer, Mark A. A Yoder; ISBN 0-1324-3171-8
ENIS 2012-2013
Cours DSP Chapitre 1
48
Literature sud les DSP “Di it l Si “Digital Signall P Processing i IImplementation l t ti using the TMS TMS320 320C C6000TM 6000TM DSP Platform” by Naim Dahnoun; ISBN 0201 0201-61916 61916-4
“C66x-Based “C B d Di Digital it l Signal Si l Processing” P i ”
by Nasser Kehtarnavaz and Burc Simsek; ISBN 0-13 13-088310 088310-7
ENIS 2012-2013
Cours DSP Chapitre 1
49
Programmation des DSP g Il est relativement facile d'écrire un programme pour un DSP, grâce aux compilateurs C interfacés avec le DSP. 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.
ENIS 2012-2013
Cours DSP Chapitre 1
50
Programmation des DSP de TI g Code Composer p Studio ((CCS)) : Le logiciel g de p pilotage g de la carte DSP est un logiciel très performant comportant un ensemble complet d'outils de développement d'applications sur DSP. Il permet aussi d'augmenter et d'améliorer le processus de développement pp pour les p p programmeurs g qui cherchent à créer et tester en q temps réel des applications de traitement de signal. Il mett en disposition des outils construire, exécuter, di iti d til pour configurer, fi t i é t suivre et analyser des programmes.
ENIS 2012-2013
Cours DSP Chapitre 1
51
Programmation g des DSP 1) Écrire le code C
2) Optimiser le code C
3) Écrire le code assembleur linéaire
ENIS 2012-2013
Cours DSP Chapitre 1
52
Programmation g des DSP de TI
ENIS 2012-2013
Cours DSP Chapitre 1
53
ENIS 2012/2013
Chapitre p II :
Architectures des DSP’s DSP s
Plan
Ch précédent
Ch suivant
Sommaire Types de structures mémoire Les caches dans les DSP Évolution des DSP SIMD (DSP16xxx, ADSP-2116x, …) Superscalaire (LSI401Z, …) VLIW (TMS320 C6x) C6 ) DSP conventionnels multicore Processeurs hybrides ARM+DSP
ENIS 2012-2013
Cours DSP Chapitre 2
55
Perspective p historique q 1970
1980
1990
2000
ENIS 2012-2013
1971: 1972: 1974:
Intel 4004 Intel 8008 1er microcontrôleur : TMS 1000 1er ordinateur personnel (8008)
1979:
1er DSP single-chip : Bell Labs Mac 4 Intel 8086
1980:
1er DSP autonome : NEC µPD7710
1981: 1982:
IBM PC (8088) Intel 80286
1983:
1er succès commercial pour un DSP : TMS 320 C10
1985: 1986: 1989: 1993:
Intel 386 MIPS -> R2000, premier microprocesseur RISC commercial Intel 486 (utilisation d’un pipeline) Intel Pentium, PowerPC 601
1996:
1er DSP VLIW : TMS 320 C62xx
1999: 2000:
Pentium III Pentium 4
Cours DSP Chapitre 2
56
Historique sto que des Processeurs ocesseu s
1e génération 79-… • Architecture Harvard • Multiplieur cablé
2 génération 2e é é ti 85 85-… • Parallélisme • Bus multiples • Mémoire sur la puce
5e génération 97-… VLIW
3e génération 88-… • Virgule flottante
Hybrides Multicore DSP + RISC
ENIS 2012-2013
4e génération 92-… Image et vidéo Processeurs faible consommation
Cours DSP Chapitre 2
57
Types de structures mémoire Von Neuman
Harvard
Un seul chemin d d'accès accès à la mémoire
Séparation Sé ti d des mémoires é i programme et données
Architecture des processeurs d’usage général (Pentium, 68000)
Meilleure utilisation du CPU : Chargement du programme et des données en p parallèle Architecture des DSP
ENIS 2012-2013
Cours DSP Chapitre 2
58
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
ENIS 2012-2013
Cours DSP Chapitre 2
59
Cache d'instructions d instructions DSP Mémoire Cache d’instructions
Mémoire Instruction
CPU Mémoire Cache de données
Cache = mémoire rapide •
Mémoire Données
Contient les dernières instructions exécutées. 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.
ENIS 2012-2013
Cours DSP Chapitre 2
60
DSP à hautes performances
1 mémoire + bus pour les instructions (et les constantes en immédiat) 2 mémoires + bus pour les données
ENIS 2012-2013
Cours DSP Chapitre 2
61
Évolution “hautes performances” p des DSP Comment accélérer C élé lles programmes ? PARALLELISME Solutions courantes : SIMD : DSP16xxx, ADSP-2116x S Superscalaire l i : LSI401Z VLIW : TMS320 C6x Approches combinées : VLIW + SIMD : TigerSHARC
ENIS 2012-2013
Cours DSP Chapitre 2
62
DSP SIMD SIMD = Single Instruction Multiple Data Deux types de SIMD Unités parallèles
Effectuent la même opération sur des données différentes Exemple : ADSP-2116x S
Partage de ll’unité unité de traitement
Partage un mot de donnée en sous-mots Effectue les calculs sur les sous-mots Exemple : instructions MMX du Pentium
Demande un effort du programmeur Efficace pour des algorithmes parallèles
ENIS 2012-2013
Cours DSP Chapitre 2
63
DSP SIMD : ADSP-21160 SHARC SIMD = Single Instruction Instruction, Multiple Data
Décodage des instructions simples Demande un p parallélisme bien spécifique p q ENIS 2012-2013
Cours DSP Chapitre 2
64
DSP SIMD Le TigerSHARC g d’Analog g Devices met en œuvre les deux types y de SIMD :
Instruction MAC SIMD SIMD par unités parallèles Unité de calcul n°2
Unité de calcul n°1
ALU
MAC
Shift
ALU
MAC
Shift
SIMD par partage de l’unité de traitement (split-MAC) (split MAC) 4 multiplications 16 bits 4 multiplications 16 bits au lieu de au lieu de 1 multiplication 64 bits 1 multiplication 64 bits
ENIS 2012-2013
Cours DSP Chapitre 2
65
DSP superscalaire p LSI401Z
Le processeur se charge de tout : détection, ordonnancement, ... Circuit de contrôle complexe (vitesse (vitesse, surface et consommation) ENIS 2012-2013
Cours DSP Chapitre 2
66
DSP VLIW : TMS320C62x VLIW = Veryy Large g Instruction Word
VLIW 8 voies (instructions 32 bits, bits soit bus–I de 256 bits) Parallélisme dans les instructions (compilateur ou assembleur) Contrôle plus simple que superscalaire ENIS 2012-2013
Cours DSP Chapitre 2
67
DSP VLIW : TMS320C6x VLIW = Very Large Instruction Word
C62x/C67x CPU
Unités logique .L : Arithmétique et comparaisons Unité de décalage .S S: ALU et Shifter Unités de multiplication .M : Multiplication Unités de données .D : Mouvement de données de / vers la mémoire
ENIS 2012-2013
Instruction Dispatch
Control C t l Registers
Instruction Decode
Emulation
Instruction Fetch
IInterrupt Control
Data path : Deux ensembles d’unités de traitement ((1 et 2)) Instruction de 256 bits : • 8 sous-instructions de 32 bits
Data Path 1
Data Path 2
R i t Fil Register File A
R i t Fil Register File B
A15-A0
L1 +
Cours DSP Chapitre 2
S1 + +
M1
x
B15-B0
D1 +
D2 +
M2
x
S2 + +
L2 +
68
DSP VLIW : TMS320C6x Instruction de 256 bits 8 sous-instructions i t ti d de 32 bits bit 32 bits
L1
S1
+
+ +
ENIS 2012-2013
32 bits
32 bits
M1
x
32 bits
32 bits
D1
D2
+
+
32 bits
Cours DSP Chapitre 2
32 bits
M2
x
32 bits
S2
L2
+
+
+
69
DSP conventionnels multicore
Gravure sur la même p puce de deux cœurs DSP indépendants.
Communication entre les deux : • Mémoire partagée • Interface FIFO
Shared memory two-way RAM : permet l'accès simultané à la mémoire par les deux cœurs DSP ENIS 2012-2013
Cours DSP Chapitre 2
Architecture du C5421 70
Processeurs hybrides ARM+DSP ARM DSP
Systèmes de vidéo numérique : • encodage/décodage
Outils de développement • SoC basé DSP Linux embarqué q •
Codecs multimédia
Exemples • Texas : DaVinci 644x • Motorola : 56800E Les processeurs ARM construits par Acorn RISC Machines.
ENIS 2012-2013
Cours DSP Chapitre 2
71
Modes d’adressage g standards ⇒Le mode d'adressage général: ♣ registre: l'opérande est un registre du CPU. ♣ immédiat court: l'opérande 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). ♣ indirect (identique). ⇒ Le L mode d d' d'adressage d parallèle: llèl ♣ registre: l'opérande est un registre à précision étendue. ♣ indirect (identique).
ENIS 2012-2013
Cours DSP Chapitre 2
72
Modes d’adressage g standards ⇒ Le mode d'adressage immédiat long: ♣ ll'opérande opérande est une valeur immédiate à 24 bits. bits ⇒Le mode d'adressage à branchement conditionnel: ♣ registre (identique).. ♣ relatif au PC: un déplacement signé sur 16 bits est ajouté au PC PC.
ENIS 2012-2013
Cours DSP Chapitre 2
73
Modes d’adressage g standards Les modes d d’adressage adressage ont une grande importance pour garantir la haute performance (moins d’instructions). Mais, ceci augmente la complexité architecturale des DSP (décodage plus complexe, surface de circuit plus importante). importante) Instruction typique :
OP
SRC1, SRC2, DEST
Opération Source 1
Source 2
Destination
Les DSP possèdent des instructions à usage général et des instructions arithmétiques intensives qui sont particulièrement convenables pour le traitement du signal et les autres applications numériques intensives. Cinq groupes pour le mode d'adressage sont fournies, six types d'adressage d adressage peuvent être utilisés dans chaque groupe: ENIS 2012-2013
Cours DSP Chapitre 2
74
Les caches dans les DSP L accès à une mémoire externe, L’accès externe ou des mémoires internes de grande taille, est coûteuse en terme temps et/ou énergie. Solution : Intégrer des mémoires caches Diminuer le trafic mémoire externe / CPU Modes d adressage spécifiques (circulaire) d’adressage Optimisation du code
Les mémoires caches sont caractérisées par : Coût élevé. Petites tailles (32 instructions à 2 K instructions). instructions) Cache instruction et cache données. Configurables par l’utilisateur g p
Ces caractéristiques particulières sont indispensables pour garantir les bonnes p performances p pour le traitement en temps p réel. ENIS 2012-2013
Cours DSP Chapitre 2
75
Exemples de caractéristiques mémoires et caches
ENIS 2012-2013
Cours DSP Chapitre 2
76
ENIS 2012/2013
Chapitre C ap e III :
Architecture Interne du TMS320 C64x
Plan
Ch précédent
Ch suivant
Sommaire Unités fonctionnelles Registres Paquet de fetch et d’exécution Structure d d’une une instruction Pipeline Mémoire cache Jeu d’instruction Différents modes d’adressages Syntaxe des instructions Contraintes ENIS 2011-2012
Cours DSP Chapitre 3
78
Unités fonctionnelles Deux 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) ( S) : Branchement et manipulation binaire (.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) Chemin de données A
Chemin de données B
Registre A0 à A31
.L1
.S1
.M1
Registre B0 à B31
.D1
.L2
.S2
.M2
.D2
Chemin croisé ENIS 2012-2013
Cours DSP Chapitre 3
79
Registres Registres A0, A1, A2, B0, B1 et B2 peuvent êtres utilisés comme des eg st es à co condition. dto registres Registres A4 à A7 et B4 à B7 : pointeur pour le mode d’adressage c cu a e circulaire. Registres 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 d’autres autres registres de contrôles, contrôles d d’interruptions interruptions, de modes, modes etc.
ENIS 2012-2013
Cours DSP Chapitre 3
80
Paquet de Fetch et d’Exécution d Exécution VELOCI TI : architecture hit t él b é par TI basée élaborée b é sur la l structure t t VLIW (Very Long Instruction Word) Instruction : 4 octets = 32 bits PE :
paquet exécutable: groupe d’instructions exécutables en // pendant un seul cycle p y
PF :
paquet Fetch formé de 8 instructions peut contenir 1 PE (si toutes les 8 Insts en //) ou 8 PE (pas d’insts en // )
Le LSB d’une instruction (p-bit) indique si la prochaine instruction appartiennent au même PE (si 1) ou non (si 0). ENIS 2012-2013
Cours DSP Chapitre 3
81
Paquet de Fetch et d’Exécution d Exécution E Exemple l 1: Instruction A
Un PF avec 3 PEs le LSB (p-bit) de chaque Intr
Instruction B 31
Instruction C Instruction D
0 31
0 31
1 A
0 31
0 B
0 31
1 C
1 D
0 31
0 E
0 31
0 31
1 F
0
1 G
0 H
Instruction E Instruction F Instruction G Instruction H
ENIS 2012-2013
Cours DSP Chapitre 3
82
Paquet de Fetch et d’Exécution d Exécution Exemple 2:
ENIS 2011-2012
Cours DSP Chapitre 3
83
Paquet de Fetch et d’Exécution d Exécution Exemple 3:
Exemple 4:
ENIS 2012-2013
Cours DSP Chapitre 3
84
Rappel: Pipeline
Cycles d’horloges 1
2
3
4
PF2 D2
N Pi li é Non-Pipeliné
PF1
D1
E1
Pipeliné
PF1
D1
E1
PF2 D2
6
7
8
9
E2 PF3 D3 E3
E2
PF3 D3
ENIS 2012-2013
5
E3
Cours DSP Chapitre 3
Pipeline complet
(tout les étages opèrent simultanément avec l’exécution d’une instruction / cycle)
85
Pipeline PG
PS
PW
PR
DP
Fetch
DC
E1
E2
Decode
E3
E4
E5
E6
Execute
Extraction du programme (Fetch) Ré titi d Répartition des iinstructions t ti (Di (Dispatch) t h) Décodage des instructions Chemin de données A
Chemin de données B
Registre A0 à A31 .L1
ENIS 2012-2013
.S1
.M1
Registre B0 à B31 .D1
.L2
Cours DSP Chapitre 3
.S2
.M2
.D2
86
Pipeline Étapes d d’extraction extraction du Programme (fetch, PF)
PG Génération Gé é ti d’adresse Dans le CPU
PS Transmission de T i i d l’adresse (à la mémoire)
PW Attente accès mémoire
PR Réception Ré ti ett llecture t du PF (au CPU)
‘C6x ‘C6 CPU
PR
Memory
PG PS
PW ENIS 2012-2013
Cours DSP Chapitre 3
87
Pipeline Étape du décodage d’instruction (D)
DP Répartition des instructions d’ d’un PF sous fforme d de PE
DC Décodage des PEs
‘C6x ‘C6 CPU
PR
DC
Memory
Func Units DP
PG PS
PW
ENIS 2012-2013
Cours DSP Chapitre 3
88
Pipeline Jusqu’à 6 cycles et tout dépend de l’instruction l instruction !!
Étape d’exécution (E)
E1 courtes inst (ADD, SUB, AND, OR, XOR,, etc…))
E3; E4 Slots de retard
E2 Instruction MPY
E5 Chargement des valeurs dans un registre g
E6 Branchement
Etage réservée pour les instructions longues
ENIS 2012-2013
Cours DSP Chapitre 3
89
Pipeline
ENIS 2012-2013
Cours DSP Chapitre 3
90
Pipeline 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 .S1 MVK .S1 ADD .L1 ADD .L1 L1 MPY .M1 MPY .M1 LDW .D1 LDB .D1
ENIS 2012-2013
b) Parallèle Partielle
c) Parallèle totale
B .S1 || MVK .S2 ADD || ADD || MPY MPY || LDW || LDB
.L1 .L2 L2 .M1 .M1 .D1 D1 .D2
Cours DSP Chapitre 3
|| || || || || || ||
B .S1 MVK .S2 ADD .L1 ADD .L2 L2 MPY .M1 MPY .M2 LDW .D1 LDB .D2 D2
91
Pipeline Exécution en Série (1er exemple) Une seule INSTRUCTION par Cycle entre dans le pipeline En arrivant à l’étape DP (Decode),
Cycle = 4
a) Série B .S1 MVK .S1 ADD .L1 ADD .L1 MPY .M1 MPY .M1 LDW .D1 LDB .D1
ENIS 2012-2013
PF
Decode
PR
DP
DC
Execute E1
E2
E3
Done E4
E5
E6
√
B MVK ADD ADD MPY MPY LDW LDB
Cours DSP Chapitre 3
92
Pipeline Exécution en Série (1er exemple) Une seule INSTRUCTION par Cycle entre dans le pipeline En arrivant à l’étape DP (Decode),
Cycle = 5
a) Série
PF PF
Execute
Decode DP
DC
E1
E2
E3
Done E4
E5
E6
√
B .S1 MVK .S1 ADD .L1 ADD .L1 MPY .M1 MPY .M1 LDW .D1 LDB .D1
ENIS 2012-2013
Cours DSP Chapitre 3
93
Pipeline Exécution en Série (1er exemple) Une seule INSTRUCTION par Cycle entre dans le pipeline En arrivant à l’étape DP (Decode),
Cycle = 6
a) Série
PF PF
Execute
Decode DP
DC
E1
E2
E3
Done E4
E5
E6
√
B .S1 MVK .S1 ADD .L1 ADD .L1 MPY .M1 MPY .M1 LDW .D1 LDB .D1
ENIS 2012-2013
Cours DSP Chapitre 3
94
Pipeline Cycle = 7
PF PF
ENIS 2012-2013
Execute
Decode DP
DC
E1
E2
E3
Done E4
Cours DSP Chapitre 3
E5
E6
√
95
Pipeline Cycle = 8
PF PF
ENIS 2012-2013
Execute
Decode DP
DC
E1
E2
E3
Done E4
Cours DSP Chapitre 3
E5
E6
√
96
Pipeline Cycle = 9
PF PF
ENIS 2012-2013
Execute
Decode DP
DC
E1
E2
E3
Done E4
Cours DSP Chapitre 3
E5
E6
√
97
Pipeline Cycle = 10
PF PF
ENIS 2012-2013
Execute
Decode DP
DC
E1
E2
E3
Done E4
Cours DSP Chapitre 3
E5
E6
√
98
Pipeline Cycle = 11
PF PF
ENIS 2012-2013
Execute
Decode DP
DC
E1
E2
E3
Done E4
Cours DSP Chapitre 3
E5
E6
√
99
Pipeline Cycle = 12
PF PF
Execute
Decode DP
DC
E1
E2
E3
Done E4
E5
E6
√
B
ENIS 2012-2013
Cours DSP Chapitre 3
100
Pipeline Cycle = 13
PF PF
ENIS 2012-2013
Execute
Decode DP
DC
E1
E2
E3
Done E4
Cours DSP Chapitre 3
E5
E6
√
101
Pipeline Cycle = 14
PF PF
ENIS 2012-2013
Execute
Decode DP
DC
E1
E2
E3
Done E4
Cours DSP Chapitre 3
E5
E6
√
102
Pipeline Cycle = 19
PF PF
ENIS 2012-2013
Execute
Decode DP
DC
E1
E2
E3
Done E4
Cours DSP Chapitre 3
E5
E6
√
103
Pipeline EExécution é ti en // partielle ti ll (2eme exemple) l) Comment écrire des instructions en //? On utilise le symbole “||” :
B .S1 || MVK .S2 S2 ADD || ADD || MPY MPY || LDW || LDB ENIS 2012-2013
.L1 L1 .L2 .M1 M1 .M1 .D1 ..D2 Cours DSP Chapitre 3
104
Pipeline Exécution en // partielle (2eme exemple) Comment écrire des instructions en //? On utilise le symbole “||” :
Cycle = 6
PF B .S1 S1 || MVK .S2 ADD || ADD || MPY MPY || LDW || LDB
PF
Execute
Decode DP
DC
E1
E2
E3
Done E4
E5
E6
√
.L1 .L2 .M1 .M1 .D1 .D2
ENIS 2012-2013
Cours DSP Chapitre 3
105
Cycle = 7
PF PF
E Execute t
Decode DP
DC
E1
E2
E3
D Done E4
E5
E6
√
Cycle = 8
PF PF
ENIS 2012-2013
Execute
Decode DP
DC
E1
E2
E3
Done E4
Cours DSP Chapitre 3
E5
E6
√
106
Cycle = 9
PF PF
E Execute t
Decode DP
DC
E1
E2
E3
D Done E4
E5
E6
√
Cycle = 10
PF PF
ENIS 2012-2013
Execute
Decode DP
DC
E1
E2
E3
Done E4
Cours DSP Chapitre 3
E5
E6
√
107
Cycle = 11
PF PF
E Execute t
Decode DP
DC
E1
E2
E3
D Done E4
E5
E6
√
Cycle = 12
PF PF
ENIS 2012-2013
Execute
Decode DP
DC
E1
E2
E3
Done E4
Cours DSP Chapitre 3
E5
E6
√
108
Cycle = 13
PF PF
E Execute t
Decode DP
DC
E1
E2
E3
D Done E4
E5
E6
√
Cycle = 14
PF PF
ENIS 2012-2013
Execute
Decode DP
DC
E1
E2
E3
Done E4
Cours DSP Chapitre 3
E5
E6
√
109
Pipeline Exécution en // totale On a déjà vu un PF contenant 8 instructions en série ou 3 PEs en utilisant le parallélisme. parallélisme Il est possible que toutes les instructions soient en //. On aura donc un seul PE.
Parallèle totale
|| || || || || || ||
ENIS 2012-2013
B .S1 MVK .S2 ADD .L1 L1 ADD .L2 MPY .M1 MPY .M2 LDW .D1 D1 LDB .D2
Cours DSP Chapitre 3
110
Pipeline Cycle = 7
PF PF
ENIS 2012-2013
Execute
Decode DP
DC
E1
E2
E3
Done E4
Cours DSP Chapitre 3
E5
E6
√
111
Cycle = 8
PF PF
Execute
D d Decode DP
DC
E1
E2
E3
Done E4
E5
E6
√
Cycle = 9
PF PF
ENIS 2012-2013
Execute
Decode DP
DC
E1
E2
E3
Done E4
Cours DSP Chapitre 3
E5
E6
√
112
Cycle = 11
PF PF
Execute
D d Decode DP
DC
E1
E2
E3
Done E4
E5
E6
√
B MVK ADD ADD MPY MPY
LDW LDB
Cycle = 13
PF PF
Execute
Decode DP
DC
E1
E2
E3
Done E4
E5
E6
√ B MVK ADD ADD MPY MPY LDW LDB
ENIS 2012-2013
Cours DSP Chapitre 3
113
Bus interne du C6000 Program Addr Internal
x32
Program g Data x256 Datax
PC
Memory
External Memory
Peripherals
Data Addr
- T1
x32
Data Data
- T1
x32/ 32/64
Data Addr
- T2
x32
Data Data
- T2
x32/ 32/64
DMA Addr - Read
x32
DMA Data - Read
x32
DMA Addr - Write
x32
DMA Data - Write
x32
A regs
B regs g
DMA
C62 62x: x: Dual 32 32--Bit Load/Store C64 64x: x: Dual 64 64--Bit Load/Store C67 67x: x: Dual 64 64--Bit Load / 32 32--Bit Store
ENIS 2012-2013
Cours DSP Chapitre 3
114
Bloc Diagramme du systeme Internal Memory
External Memory
Internal Buses
.M1 .M 1 .M .M2 2 .L1 .L L1 .L .L2 L2 .S1 .S 1 .S .S2 2
Reegister Set S B
Register Set S A
.D1 .D 1 .D .D2 2
CPU
ENIS 2012-2013
Cours DSP Chapitre 3
115
Contrôleurs d’accès d accès mémoire DMA : Contrôleur du transfert des données entre les plages d’adresse de la mémoire sans l’interférence du CPU. Formé par 4 g q canaux p programmables et un cinquième auxiliaire. EDMA : même chose que le DMA mais avec 16 canaux programmable et une RAM pour la mémorisation de plusieurs configurations pour des transferts projeté. HPI : interface parallèle du processeur host permettant l’accès direct à ll’espace espace mémoire du CPU pour échanger le contenu des registres d’état. EMIF : remplace le HPI. Il permet l’échange asynchrone d’information entre non seulement le CPU et le Processeur host mais aussi avec l’ té i l’extérieur à travers t l ports les t d’E/S . ENIS 2012-2013
Cours DSP Chapitre 3
116
'C6000 Peripherals XB, PCI, Host Port
Internal Memory
GPIO
External Memory
Internal Buses
EMIF
Timers VCP TCP
ENIS 2012-2013
.D1 .D 1 .D .D2 2 .M1 .M 1 .M .M2 2 .L1 .L L1 .L .L2 L2 .S1 .S 1 .S .S2 2
Reegister Set S B
DMA, EDMA (Boot)
Register Set S A
McBSP’s Utopia
CPU
Cours DSP Chapitre 3
117
EMIF Async
SDRAM
Internal Memory
EMIF
Internal Buses
.M1 .M 1 .M .M2 2 .L1 .L L1 .L .L2 L2
External Memory Interface (EMIF (EMIF)) .S .S1 1 .S .S2 2 Glueless access to async async/sync /sync memory
Reegister Set S B
Register Set S A
SBSRAM
.D1 .D 1 .D .D2 2
CPU Works with PC100 PC100 SDRAM (cheap, fast, and easy!) Byte--wide data access Byte 16,, 32, 16 32, or 64 64--bit bus widths
ENIS 2012-2013
Cours DSP Chapitre 3
118
HPI / XBUS / PCI XBUS, PCI, Host Port
External Memory
EMIF
Internal Memory
Internal Buses
Reegister Set S B
HPI:
Register Set S A
Parallel Peripheral Interface
.D1 .D 1 .D .D2 2
.M1 .M 1allows .M2 .M 2 hostDedicated, slaveslave-only, async 16 16//32 32--bit bus host-μP access to C6000 C6000 memoryy .L1 .L L1 .L .L2 L2
XBUS: Similar to HPI but provides … .S1 .S 1 .S .S2 2 Master/slave and sync modes Glueless Gl l i/f to FIFOs FIFO (up ( to singlesingle i l -cycle l xfer f rate)) CPU PCI: Standard 32 32--bit, 33 33MHz MHz PCI interface These interfaces provide means to bootstrap the C6000 C6000 ENIS 2012-2013
Cours DSP Chapitre 3
119
GPIO XB, PCI, Host Port
Internal Memory
GPIO
External Memory
EMIF
Internal Buses
.M1 .M 1 .M .M2 2 .L1 .L L1 .L .L2 L2 .S1 .S 1 .S .S2 2
Reegister Set S B
Register Set S A
.D1 .D 1 .D .D2 2
General Purpose Input/Output (GPIO)
CPU ‘C ‘C64 64x x provides 8 or 16 bits of general purpose bitwise I/O Use U tto observe b or control t l th the signal i l off a singlesingle i l -pin i ENIS 2012-2013
Cours DSP Chapitre 3
120
XB, PCI, Host Port
Internal Memory
GPIO
External Memory
EMIF
Internal Buses
.D1 .D 1 .D .D2 2
Reegister Set S B
Register Set S A
McBSP’s Utopia
.M1 1 .M .M2 2 ) Multi--Channel Buffered Serial Port.M Multi ((McBSP McBSP) 2 (or 3) full full ull--duplex, duplex synchronous serialserial-ports .L .L1 L1 .L .L2 L2 Up to 100 Mb/sec performance Supports multimulti-channel operation (T1 (T1, E E1 1, MVIP, .S1 .S 1…).S .S2 2
Utopia (C (C64 64xx)
CPU
ATM connection 50 MHz wide area network connectivity ENIS 2012-2013
Cours DSP Chapitre 3
121
DMA / EDMA XB, PCI, Host Port
Internal Memory
GPIO
External Memory
Internal Buses
EMIF
.D1 .D 1 .D .D2 2 .M1 .M 1 .M .M2 2 .L1 .L L1 .L .L2 L2
Direct Memory Access (DMA / EDMA)
.S1 .S 1 .S .S2 2 Transfers anyy set of memoryy locations to another 4 / 16 / 64 channels (transfer parameter sets) CPU Transfers can be triggered by any interrupt (sync) Operates independent of CPU On reset, provides bootstrap from memory
ENIS 2012-2013
Cours DSP Chapitre 3
Reegister Set S B
DMA, EDMA (Boot)
Register Set S A
McBSP’s Utopia
122
Timer/Counter XB, PCI, Host Port
Internal Memory
GPIO
External Memory
Internal Buses
EMIF
Timers
Timer / Counter
Two (or three) 3232-bit timer/counters Can generate interrupts Both iinput nput and output pins ENIS 2012-2013
Cours DSP Chapitre 3
.D1 .D 1 .D .D2 2 .M1 .M 1 .M .M2 2 .L1 .L L1 .L .L2 L2 .S1 .S 1 .S .S2 2
Reegister Set S B
DMA, EDMA (Boot)
Register Set S A
McBSP’s Utopia
CPU
123
Phase Locked Loop (PLL) XB, PCI, Host Port
Internal Memory
GPIO
External Memory
Internal Buses
EMIF
ENIS 2012-2013
CLKIN .M1 .M 1
.M2 .M 2
Output p .L .L1 L1 .L .L2 L2
Regisster Set B
.D1 1 .D .D2 2 Input .D
DMA, EDMA PLL (Boot) External clock multiplier Reduces EMITimers and cost VCP Pin selectable TCP PLL
Regisster Set A
McBSP’s Utopia
CLKOUT1 CLKOUT1 .S1 .S 1rate .S2 .S 2 - Output of PLL - Instruction (MIP) rate CPU CLKOUT CLKOUT2 2 - 1/2 rate of CLKOUT1 CLKOUT1
Cours DSP Chapitre 3
124
'0x Memory Scheme 0000_ 0000 _0000
16MB 16 MB External CE0 CE 00) (CE CE0
A Memory Map is a table representation p of memory y
This is more convenient than a block diagram g description p
0100_ 0100 _0000
CE1 CE 11) External ((CE CE1
0140_ 0140 _0000
Internal Program
0000_0000 0140__0000 0140
CE0 CE 0
0100_0000 16 MB
CE1 CE 1
4 MB
Program
C6000 CPU
EMIF 8000__0000 8000 Data
ENIS 2012-2013
0200__0000 0200 CE2 CE 2
0300__0000 0300 16 MB
Cours DSP Chapitre 3
CE3 CE 3
16 MB 125
'0x Memory Scheme 0000_ 0000 _0000 16MB 16 MB External CE0 CE 00) (CE CE0
Program
CE0 CE 0 C6000 CPU
EMIF
0100_ 0100 _0000
CE1 CE 11) 4MB External (CE CE1
0140_ 0140 _0000
Internal Program
0200_ 0200 _0000
16MB 16 MB External CE2 CE 20) (CE CE0
0300_ 0300 _0000
16MB 16 MB External CE3 CE 30) (CE CE0
8000_0000
Internal e Data
CE3 CE 3
Data
FFFF_FFFF ENIS 2012-2013
Cours DSP Chapitre 3
126
Mémoire cache L1
L1P : Le C6x contient une mémoire cache p programme g de 32 bits de bus d’adresses et de 256 bits (bus de données). que : 1 PF = 256 bits = 8*32 = 8 instructions! Noté 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.
ENIS 2012-2013
Cours DSP Chapitre 3
127
Cache L1P RAM externe
Cache L2P
Mémoire cache L1P
DSP C64
16 Ko 256Ko 1024Ko 256Ko-1024Ko
Noté bien: pas de RAM interne 4 Go Cours DSP Chapitre 3
128
Cache L1P 31
14 13
Tag
Set Index
5
4
0
Offset
TAG (18 bits) : il contient les MSB de l’adresse. Stocké dans une mémoire tampon pour indiquer la présence de la plage d’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 d’adressage adressage direct, direct chaque set contient une seule ligne. Offset (5 bits) : détermine l’offset dans une ligne et permet par conséquent l’adressage par octet dans un PF. ENIS 2012-2013
Cours DSP Chapitre 3
129
Exemple Supposons que nous avons un DSP fictif, avec un bus d’adresse égale à 5 bits: RAM Tag = 00
00000 00001 ...
5 bits DSP
...
Bus d’adresse
00111
Tag = 01
01000 01001 ... ...
01111 TAG (2 bits)
3 bits Tag = 11
11000 11001
Mémoire cache
...
... 11111 ENIS 2012-2013
Cours DSP Chapitre 3
130
Cache L1P offset
Set/Cache ligne g 0 1 2 3 4 5 … 511
31 31 31 31 31 31 31 31
… … … … … … … …
8bits
3 3 3 3 3 3 3 3
2 2 2 2 2 2 2 2
1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0
Dans le C64x,, L1P = 16 Ko = 512 * 32 octets pour un mode d’adressage direct.
ENIS 2012-2013
Cours DSP Chapitre 3
131
Cache L1P Soit l’instruction suivante et son adresse : Paramètres
Code opération
80000250 003C22F4
STW.D2T1
A0,*+SP[0x1]
Instruction
Adresse de l’instruction
A p partir de l’adresse de l’instruction ((0x80000250)) on détermine l’offset, le set et le tag : Tag
31
8
0
Set
14 13
0
0
0
5 4 Offset
2
5
0
0
1000 0000 0000 0000 00
00 0010 010
1 0000
Tag
Set
Offset
131072 ENIS 2012-2013
Cours DSP Chapitre 3
18
16 132
Cache L1D 31
13 12
T Tag
S IIndex d Set
6 5
0
2 1
G Group
Off Offset
TAG (19 bits) : il contient les MSB de l’adresse. Stocké dans une mémoire tampon pour indiquer la présence de la plage d’adresse désirée dans le cache ou non (miss / hit). hit) Set Index (7 bits) : un ensemble est une collection de ligne de trame. Dans un système d’adressage associatives par ensemble de deux blocs, chaque ensemble contient deux ligne. Group (4 bits) : sélectionne le mot dans un ensemble qui contient les données désirées. désirées Offset (2 bits) : détermine ll’offset offset d d’un un mot dans ll’adresse adresse. ENIS 2012-2013
Cours DSP Chapitre 3
133
Cache L1D Set
Ligne cache (2 per set)
Groupe
32bits
15 15 15 15 15 15 15 15
0 1 2 … 127
… … … … … … …
3 3 3 3 3 3 3 3
2 2 2 2 2 2 2 2
1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0
Dans le C64x, L1D = 16 Ko = 128 * 16 * 2* 4 octets pour un mode d’adressage d adressage associative par ensemble de 2 blocs. blocs y’a cache Il y a 128 ensembles contenant chacun 2 lignes cache. Chaque ligne est formée de 64 octets. ENIS 2012-2013
Cours DSP Chapitre 3
134
Cache L1D 32bits
0 1 2 … 127
15 15 15 15 15 15 15 15
… … … … … … …
3 3 3 3 3 3 3 3
2 2 2 2 2 2 2 2
1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0
8 bits
32 bits
ENIS 2012-2013
Cours DSP Chapitre 3
135
Cache L1D Soit la donnée suivante et son adresse :
0x000198C8
Valeur de la donnée
54
Adresse de la donnée
A partir de l’adresse de la donnée (0x000198C8) on détermine l’ ff t le l’offset, l group, le l sett ett le l tag t : 31
0
13 12
0
0
1
000 0000 0000 0000 1100 Tag
8
2 1
C
8
1100011 Set
12 ENIS 2012-2013
9
6 5
0
0 0 1 0
0
Offset
Group 99
Cours DSP Chapitre 3
0
2
0 136
Mémoire cache de programme p g Bus de données: 256 bits Bus d’adresses: 32 bits
Extraction du programme (Fetch)
Registres de contrôle
Répartition des instructions (Dispatch)
Contrôleur de logique
Dé d Décodage d des iinstructions t ti
Testeur
DMA / EMIF
Émulateur
Chemin de données A
Chemin de données B
Registre A0 à A31 .L1 L1
.S1 S1
.M1 M1
Interrupteur
Registre B0 à B31 .D1 D1
.L2 L2
.S2 S2
.M2 M2
.D2 D2
- Horloge
ENIS 2012-2013
Mémoire é cache de données é
- Ports séries
Bus de données: 64 bits
- Autre périphériques
Bus d’adresses: d adresses: 32 bits
..Etc
Cours DSP Chapitre 3
137
C6416 DSK
ENIS 2012-2013
Cours DSP Chapitre 3
138
C64X C6211/C6 11 C6211/C6711 150, 166 MHz
500, 600, 720 MHz; 1GHz
DM64x 64 500, 600 MHz; 400MHz (640)
L1: 16K L1D &16K L1P
L2: 256KB---642 128KB---641, 640 L1: 16K L1D &16K L1P
16-channel EDMA
64-channel EDMA
64-channel EDMA
32-bit EMIF
64-bit EMIF, 16-bit EMIF
No Video port
No video port
No Ethernet MAC
No Ethernet MAC
L2: 64K L1: 4K L1D & 4K L1P
ENIS 2012-2013
C64 C64x
L2: 1 MB
Cours DSP Chapitre 3
64-bit EMIF---642 32-bit EMIF---641, 640 DM642: 3 video ports DM641: 2 video ports DM640: 1 video port Ethernet MAC
139
Jeu d’Instructions d Instructions 1
1
1
Arithmétique ADD(U) ADD2 ADD4 SUB(U) SUBC SUB2 SUB4
Addition entière 32/40 bits signée (non signée) 2 additions entières 16 bits 4 additions entières 8 bits Soustraction entière 32/40 bits signée (non signée) Soustraction conditionnelle pour étape de division 2 soustractions entières 16 bits 4 soustractions entières 8 bits
Arithmétique saturée SAT ABS SADD SSUB
Saturation de 0 bits en 32 bits Valeur absolue 32/40 bits avec saturation Addition signée 32/40 bits avec saturation Soustraction signée 32/40 bits avec saturation
Comparaison CMPGT(U) CMPEG CMPLT(U)
Comparaison supérieur 32/40 bits signé (non signé) Comparaison égal 32/40 bits Comparaison inférieur 32/40 bits signé (non signé)
Latence ENIS 2012-2013
Cours DSP Chapitre 3
140
Jeu d’Instructions d Instructions 2 4
2
4 1 1 1
Multiplication p entières MPY2 MPYU4 MPYSU4 MPYUS4
16 LSB signés x 16 LSB signés => 32 bits 4 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é
Multiplication entières saturées t é SMPY Variantes
Saturation ((16 LSB signé x 16 LSB signés)