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

June 24, 2018 | Author: Maroua Bouderbela | Category: Digital Signal Processor, Cache (Computing), Central Processing Unit, Parallel Computing, Electronics
Share Embed Donate


Short Description

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

Description

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)
View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF