Vous êtes sur la page 1sur 76

Chapitre I

Microprocesseurs - DSP
Objectifs

‹ Rappels sur les systèmes a microprocesseurs


‹ Généralités sur les DSP
‹ Architecture des DSP de la familleTMS320C6000
‹ Les périphériques du TMS320C6000
‹ le KIT DSP - DSK6711

Chapter 1, Slide 2 H. AZIZA, Polytech'Marseille, Juillet 2005


Rappels sur les systèmes à microprocesseurs

‹ Domaines d’applications des microprocesseurs


‹ Critères de choix d'un microprocesseur
‹ Éléments d'un système à microprocesseur
‹ Exécution d'un programme
‹ Les interruptions
‹ Architecture d'un système à microprocesseur
‹ Échange entre le CPU et un périphérique
‹ Bus d'adresses, Décodage d'adresse
‹ Mémoires: Technologie et fonctionnement

Chapter 1, Slide 3 H. AZIZA, Polytech'Marseille, Juillet 2005


Rappels sur les systèmes à microprocesseurs

‹ On retrouve deux principaux types d'applications


des microprocesseurs :
1. Les systèmes ordinés (« Computer Systems » en
anglais)
2. Les systèmes dédiés (ou embarqués :
« Embedded Systems » en anglais)

Système dédie : on appelle système dédié ou encore système


embarqué, tout appareil ou instrument dont un microprocesseur
contrôle le fonctionnement, en suivant un programme figé qui est
adapté (dédié) à cet appareil. En général, le programme d'un
système dédié est gravé dans une mémoire non volatile (ROM) et le
microprocesseur exécute ce programme dès la mise sous tension de
l'appareil. Un système dédié à microprocesseur est beaucoup plus
simple et beaucoup moins coûteux (de plusieurs ordres de grandeur)
qu'un système ordiné.

Chapter 1, Slide 4 H. AZIZA, Polytech'Marseille, Juillet 2005


Rappels sur les systèmes à microprocesseurs

‹ Systèmes ordinés
Fabricant :
- Intel (Pentium), Sun (Sparc)
Caractéristiques typiques :
- Bus d'adresse large permettant de gérer des Giga-octets de mémoire
- Système de gestion de mémoire intégré
- Données sur 32 bits au moins
- Coprocesseur intégré ou unité arithmétique et logique supportant les
opérations en point flottant
- Modes d'adressages sophistiqués pour supporter efficacement les
langages évolués
- Large surface de silicium
- Difficile à fabriquer => coût élevé
- Forte consommation électrique
Chapter 1, Slide 5 H. AZIZA, Polytech'Marseille, Juillet 2005
Rappels sur les systèmes à microprocesseurs

‹ Systèmes dédiées
Fabricant :
- Motorola (68HC11), Intel (8751), Microchip (famille PIC16/17)
Caractéristiques typiques :
- Mémoires et périphériques intégrés sur le circuit (peut bien souvent
fonctionner sans autres périphériques)
- Bus d'adresses étroit, ne permettant de gérer un espace mémoire très
limité
- Données sur seulement 8 ou 16 bits
- Pas d'unité de calcul point flottant
- Modes d'adressage limités supportant mal les besoins des langages
évolués (programmation en langage évolué en général peu efficace)
- Surface de silicium faible
- Facile à fabriquer => faible coût
- Faible consommation électrique (utilisation sur batteries)
Chapter 1, Slide 6 H. AZIZA, Polytech'Marseille, Juillet 2005
Rappels sur les systèmes à microprocesseurs

‹ Systèmes dédiés au traitement du signal


Fabricant :
- Texas Instruments (TMS320C6000), Analog devices (ADSP2100),
Motorola (56000, 96000)
Caractéristiques typiques :
- Processeur virgule fixe ou virgule flottante
- Architecture faite pour le calcul intensif. Exemple le TMS320C67 peut
faire 1000 millions d’ opérations point flottant par secondes
- Modes d'adressages spécialisés supportant les opérations de traitement du
signal (adressage circulaire : filtrage; adressage papillon : Transformées de
Fourier...)
- Représentation des nombres limitée (entiers 2 octets, flottants 4 octets...)
- Beaucoup de périphériques intégrés sur le chip (ports série synchrones,
ROM, RAM, Timers…) : possibilité de fonctionner presque sans
périphérique externe.
- Consommation électrique faible.
Chapter 1, Slide 7 H. AZIZA, Polytech'Marseille, Juillet 2005
Rappels sur les systèmes à microprocesseurs

‹ Critères de choix d'un microprocesseur


Capacité du microprocesseur par rapport au problème
- Jeu d'instruction
- Périphériques (intégration, possibilités d'interfaçage...)
Critères
- Vitesse d'exécution (pas seulement l'horloge…) logiques
- Capacité d'adressage (modes d'adressage, largeur du bus...).
- Consommation
Critères
- Encombrement physiques
- Nécessité d'autres circuits pour fonctionner
Prix
Support technique et logiciel
Maturité du processeur et disponibilité sur le marché

Chapter 1, Slide 8 H. AZIZA, Polytech'Marseille, Juillet 2005


Rappels sur les systèmes à microprocesseurs

‹ Éléments d'un système à microprocesseur

Horloge
Monde
Mémoire Périphériques Extérieur

Programme
Microprocesseur

Données

données
adresses
contrôle
Bus

Chapter 1, Slide 9 H. AZIZA, Polytech'Marseille, Juillet 2005


Rappels sur les systèmes à microprocesseurs

‹ Éléments d'un système à microprocesseur : définitions


CPU : L'élément d'un système à microprocesseur qui exécute les
opérations élémentaires d'un programme (les instructions).

Horloge : Cadence les opérations effectuées par le CPU

Périphériques : Assurent le lien entre le CPU et le monde extérieur


ou rendent des services au CPU. Les circuits de mémoire sont des
périphériques particuliers.

Système de bus : Permet les échanges entre les différentes parties


du système à microprocesseur (CPU, mémoire(s), périphérique(s)).

Mémoire(s) : Stocke le programme, Stocke les données et les


variables qui sont nécessaires à l'exécution du programme. Échange
ces informations avec le CPU sur demande.

Chapter 1, Slide 10 H. AZIZA, Polytech'Marseille, Juillet 2005


Rappels sur les systèmes à microprocesseurs
‹ Exécution d'un programme
Le CPU exécute un programme qui est écrit en mémoire. Ce
programme est décomposé en opérations élémentaires (lire un
périphérique, faire une addition, écrire le résultat dans une case
mémoire...).
Ces opérations élémentaires sont appelées des instructions. A chaque
période d'horloge, le CPU effectue des opérations spécifiques qui
conduisent à l'exécution des instructions.
Dans le fonctionnement du CPU, on reconnaît 2 phases distinctes:

1. La phase de recherche d'instruction en mémoire (Fetch Cycle)


2. La phase d'exécution d'une instruction (Execute Cycle)

Chapter 1, Slide 11 H. AZIZA, Polytech'Marseille, Juillet 2005


Rappels sur les systèmes à microprocesseurs

‹ Les interruptions
Les interruptions : elles constituent un moyen pour les périphériques
d'obtenir l'attention du CPU immédiatement. Certains périphériques
nécessitent que le CPU exécute certaines opérations de gestion très
rapidement (ont dit que ces périphériques ont besoin d'être servis
rapidement).

Il existe deux grands types d'interruptions : les interruptions masquables


et les interruptions non-masquables. Leur fonctionnement est très
semblable, la seule différence est que les interruptions masquables
peuvent être interdites (masquées), au contraire des interruptions non-
masquables.

Liens entre Fonctions et Interruptions

Chapter 1, Slide 12 H. AZIZA, Polytech'Marseille, Juillet 2005


Rappels sur les systèmes à microprocesseurs

‹ Les interruptions

Programme
principal
Routine
d’interruption

Initialisations
Remet
« FLAG » à 0

Boucle
principale
Traitement

Retour

Chapter 1, Slide 13 H. AZIZA, Polytech'Marseille, Juillet 2005


Rappels sur les systèmes à microprocesseurs
‹ Architecture d'un système à microprocesseur
Architecture d’un système : Façon dont les éléments du système à
microprocesseur sont interconnectés et échangent leur information.
Il existe deux types d’architectures : Von Neumann et Harvard
Pour l’architecture Harvard, le CPU possède deux bus indépendants
pour acheminer les codes d'instruction et échanger des données avec les
périphériques, il peut donc faire les deux opérations en même temps.
Cette architecture permet une exécution plus rapide des instructions.
L'architecture Harvard est aussi plus sûre : Il n'y a aucun risque que le
CPU aille écrire des données dans la mémoire programme et corrompe
le programme.
Par contre, l'architecture Harvard est moins flexible par rapport à
l'architecture Von Neumann. Elle nécessite en effet 2 banques de
mémoire séparées. On ne peut utiliser de la mémoire « programme » si
on manque de mémoire « données », et vice-versa.

Chapter 1, Slide 14 H. AZIZA, Polytech'Marseille, Juillet 2005


Rappels sur les systèmes à microprocesseurs

‹ Échange entre le CPU et un périphérique


Dans un système à microprocesseur, c'est toujours le CPU qui initie les
échanges avec les périphériques. Un périphérique ne peut pas décider de
lui-même d'échanger de l'information avec un autre périphérique. Pour
cette raison les transferts d'information sur le système de bus sont
toujours vus du côté du CPU.

CPU Périphérique
Bus de
données

Bus de R/W Lecture/écriture


contrôle synchronisation
Clk

Bus Pattes d’adresses


d’adresse
Décodeur Sélection du
D’adresse
circuit

Chapter 1, Slide 15 H. AZIZA, Polytech'Marseille, Juillet 2005


Rappels sur les systèmes à microprocesseurs

‹ Échange entre le CPU et un périphérique


Opération de lecture : Le CPU lit un registre d'un périphérique.

Opération d'écriture : Le CPU écrit une donnée dans un registre d'un


périphérique.

Largeur d'un bus : elle correspond au nombre de bits transportés sur le bus
(échangés entre le CPU et un périphérique). Chaque bit d'information étant
transporté sur une piste particulière du bus, cela correspond aussi au nombre
de pistes du bus que l'on retrouve sur le circuit imprimé.

Registre : ensemble de N bascules bistables (mises en parallèle) qui


emmagasinent de l'information à l'intérieur d'un périphérique, ou dont les
sorties pilotent certaines fonctions du périphérique. Il y a autant de bascules
bistables dans le registre que de bits sur le bus de données. Lorsque le CPU
effectue une lecture ou une écriture, il effectue une transaction avec un
registre complet du périphérique auquel il s'adresse.

Chapter 1, Slide 16 H. AZIZA, Polytech'Marseille, Juillet 2005


Rappels sur les systèmes à microprocesseurs

‹ Bus d'adresses, Décodage d'adresse


Pour échanger de l'information avec un registre d'un périphérique, le
CPU doit indiquer à quel périphérique il veut accéder, et à l'intérieur du
périphérique, à quel registre il veut accéder. Cette signalisation se fait
sous forme d'un code binaire, envoyé par le CPU sur le bus d'adresse.

A15 A10 A9 A0 A15 A8 A7 A0


Bus
d’adresse
Décodeur Décodeur
D’adresse D’adresse

CPU Mémoire Périphérique


(1024 octets) (4 registres)

Sélection du circuit Sélection du circuit

Chapter 1, Slide 17 H. AZIZA, Polytech'Marseille, Juillet 2005


Rappels sur les systèmes à microprocesseurs

‹ Bus d'adresses, Décodage d'adresse


Bus d'adresses : Ensemble de pistes électriques auxquelles tous les circuits
du système à microprocesseur sont connectés. Le CPU écrit sur ces lignes un
mot binaire (une adresse) qui indique à l'ensemble des circuits celui avec
lequel il veut échanger de l'information. Tous les périphériques ont leurs
entrées d'adresse connectées sur le bus d'adresse. Ils sont « à l'écoute » des
adresses qui sont envoyées sur le bus par le CPU.

Décodage d'adresses : Opération par laquelle un circuit périphérique est


sélectionné pour un échange avec le CPU (en entrée ou en sortie) à partir du
mot d'adresse.

Capacité d'adressage : Si le bus d'adresse a M bits, le CPU peut définir 2M


adresses distinctes. Chacune de ces adresses correspond à un code binaire
différent. L'ensemble de ces adresses représente la capacité d'adressage du
CPU.

Plan d'adressage: (en anglais « memory map »). Ensemble des adresses
possibles que le CPU peut générer sur le bus d'adresses. Il peut être représenté
de façon symbolique par ce qu'on appelle un « plan d'adressage ».
Chapter 1, Slide 18 H. AZIZA, Polytech'Marseille, Juillet 2005
Rappels sur les systèmes à microprocesseurs

‹ Mémoires: Technologie et fonctionnement


Mémoire volatile
Espace de stockage dont les données disparaissent en cas de coupure de
l’alimentation électrique : RAM, SDRAM, DDR-SDRAM…

Mémoire non volatile


Coût par bit NVRAM

EEPROM 2T/cellule

FLASH 1T/cellule

EPROM 1T/cellule

OTP

ROM
Flexibilité

Chapter 1, Slide 19 H. AZIZA, Polytech'Marseille, Juillet 2005


Rappels sur les systèmes à microprocesseurs

‹ Utilisation d’un système à microprocesseur dans une


application de contrôle d’équilibre

Dans cette application, le microprocesseur utilisé est un DSP TMS320C50 de


Texas Instruments
Chapter 1, Slide 20 H. AZIZA, Polytech'Marseille, Juillet 2005
Objectifs

‹ Rappels sur les systèmes a microprocesseurs


‹ Généralités sur les DSP
‹ Architecture des DSP de la familleTMS320C6000
‹ Les périphériques du TMS320C6000
‹ KIT DSP - DSK6711

Chapter 1, Slide 21 H. AZIZA, Polytech'Marseille, Juillet 2005


Généralités sur les DSP

‹ Spécificités des DSP


‹ Caractéristiques principales des DSP
‹ Formats de données : Virgule fixe / flottante
‹ Performances des DSP
‹ Les produits Texas Instrument
‹ La carte Signal Ranger

Chapter 1, Slide 22 H. AZIZA, Polytech'Marseille, Juillet 2005


Généralités sur les DSP
‹ Spécificités des DSP
Les particularités de ces puces, par rapport aux processeurs généraux
sont, en général :

Š Une architecture Harvard, séparant bus programme et bus


données
Š Des instructions adaptées aux opérations classiques de
traitement de signaux (MAC : multiplication & accumulation
en un seul cycle d'instruction)
Š Des modes d’adressage particuliers (circulaire, par inversion
de bits)
Š De la mémoire interne minimisant les temps d'accès RAM
Š Des banques de mémoire, permettant de scinder par exemple
partie réelle et partie imaginaire
Š Une architecture à pipe-line permettant de paralléliser le
maximum d'opérations élémentaires
Š Des entrées sorties dignes d'un microcontrôleur et parfois
même des convertisseurs A/N numériques analogiques
intégrés (très rare)
Chapter 1, Slide 23 H. AZIZA, Polytech'Marseille, Juillet 2005
Généralités sur les DSP
‹ Spécificités des DSP
Š
L’opération MAC
Le traitement numérique du signal revient à effectuer essentiellement
des opérations arithmétiques de base du type : A = (B x C) + D
La plupart des DSP ont un jeu d’instructions spécialisé permettant de
lire en mémoire une donnée, d’effectuer une multiplication puis une
addition, et enfin d’écrire en mémoire le résultat, le tout en un seul
cycle d’horloge. Ce type d’opération est nommé MAC : « Multiply and
ACcumulate ». 600
500 Temps MAC (ns)
400
300
200
100
0 Année
1971 1976 1994 1999 s

Une autre caractéristique des DSP est leurs capacités à réaliser plusieurs
accès mémoire en un seul cycle. Ceci permet à un DSP de chercher en
mémoire une instruction et ses données réalisant un MAC, et
simultanément, d’y ranger le résultant du MAC précédent.
Chapter 1, Slide 24 H. AZIZA, Polytech'Marseille, Juillet 2005
Généralités sur les DSP
‹ Spécificités des DSP
Š
Pipe-line
Nous prendrons l’exemple du TMS320C64XX. Si on considère les
opérations nécessaires à l’exécution d’une instruction, elles peuvent se
décrire ainsi :

Chapter 1, Slide 25 H. AZIZA, Polytech'Marseille, Juillet 2005


Généralités sur les DSP

‹ Caractéristiques principales des DSP


Un DSP peut être défini par :

Š Son type : virgule fixe/virgule flottante


Š Sa vitesse, exprimée en MIPS (Mega Instructions par
Seconde)
Š Sa quantité de mémoire interne (DRAM/RAM/ROM/Flash...)
Š Ses entrées/sorties (ports série, ports parallèles) et leurs
vitesses respectives
Š Son architecture interne, avec la présence ou non de canaux
DMA. Son architecture jouera sur le degré de parallélisme
(gestion du pipe-line), la facilité du « multi-processing »...

Chapter 1, Slide 26 H. AZIZA, Polytech'Marseille, Juillet 2005


Généralités sur les DSP
‹ Formats de données : Virgule fixe / Virgule flottante
Un autre point essentiel des DSP est la représentation des nombres (les
données) qu’ils peuvent manipuler. Il est possible de distinguer deux
familles :
Les DSP à virgule fixe : les données sont représentés 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 ». L’avantage de cette
représentation (qui n’est qu’une convention des informaticiens) est de
permettre facilement l’addition binaire de nombres aussi bien positifs
que négatifs.
Les DSP à virgule flottante : les données sont représentés en utilisant
une mantisse et un exposant. La représentation de ces nombres
s’effectue selon la formule suivante : n = mantisse * 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 (c’est
le même mécanisme qu’en base 10)

Chapter 1, Slide 27 H. AZIZA, Polytech'Marseille, Juillet 2005


Généralités sur les DSP
‹ Formats de données : Virgule fixe
Représentation des nombres entiers codés sur 4 bits en complément à 2

Représentation des nombres fractionnaires codés sur 4 bits en complément à 2

Chapter 1, Slide 28 H. AZIZA, Polytech'Marseille, Juillet 2005


Généralités sur les DSP
‹ Formats de données : Virgule flottante
Un DSP à virgule flottante est plutôt adapté (sans être impératif) à des
applications dans lesquelles :

Š Souplesse et facilite de programmation


Š les coefficients varient dans le temps (exemple : les filtres
adaptatifs),
Š le signal et les coefficients ont besoin d’une grande
dynamique,
Š la structure mémoire est importante (exemple : traitement
d’image),
Š la précision est recherchée sur toute une gamme dynamique
(exemple : traitements audio phoniques de qualité
professionnelle).

Chapter 1, Slide 29 H. AZIZA, Polytech'Marseille, Juillet 2005


Généralités sur les DSP
‹ Formats de données : Virgule flottante
31 30 23 22 0

signe exposant Mantisse (positive)

Exemple sur 8 bits (mantisse 5 bits, exposant 3 bits)

n = Mantisse * 2 Exposant
Chapter 1, Slide 30 H. AZIZA, Polytech'Marseille, Juillet 2005
Généralités sur les DSP
‹ Performances des DSP
Comparaison entre diverses catégories de DSP

Chapter 1, Slide 31 H. AZIZA, Polytech'Marseille, Juillet 2005


Généralités sur les DSP
‹ Performances des DSP
Mesure de vitesse de calcul pure

Chapter 1, Slide 32 H. AZIZA, Polytech'Marseille, Juillet 2005


Généralités sur les DSP
‹ Les produits Texas Instrument

Les familles les plus récentes des DSP de Texas instrument sont :
- TMS320C54x, DSP format fixe
- TMS320C20x, DSP format fixe
- TMS320C24x, DSP format fixe
- TMS320C62x, DSP format fixe à architecture VLIW (Very long inst. word)
- TMS320C67x, DSP format flottant à architecture VLIW
Ces nouvelles familles sont regroupées en 3 classes appelées plates-formes.
- TMS320C6000, formée des familles C62x et C67x
- TMS320C5000, formée de la famille C54x et des C54xx
- TMS320C2000, formée des familles C20x et C24x

Chapter 1, Slide 33 H. AZIZA, Polytech'Marseille, Juillet 2005


Généralités sur les DSP
‹ Les produits Texas Instrument

Chapter 1, Slide 34 H. AZIZA, Polytech'Marseille, Juillet 2005


Objectifs

‹ Rappels sur les systèmes a microprocesseurs


‹ Généralités sur les DSP
‹ Architecture des DSP de la familleTMS320C6000
‹ Les périphériques du TMS320C6000
‹ KIT DSP - DSK6711

Chapter 1, Slide 35 H. AZIZA, Polytech'Marseille, Juillet 2005


Architecture des DSP de la familleTMS320C6000

‹ Généralités et performances
‹ Architecture
‹ Cartographie mémoire
‹ Les interruptions
‹ Les périphériques
‹ Les modes d’adressage

Chapter 1, Slide 36 H. AZIZA, Polytech'Marseille, Juillet 2005


Architecture des DSP de la familleTMS320C6000

‹ Généralités et performances (TMS320C6711)


CPU
- Registres de 32bits - 6 UAL et 2 multiplieurs
- 900 MIPS - temps de cycle de 6-7 ns
- bus d’adresse de 32 bits - format des données 32bits
Mémoire, périphérique
- 2 Timers de 32 bits - générateur d’horloge par PLL
- port parallèle de 16 bits (HPI) - 2 bus série (McBSP)
- Interface de mémoire externe (EMIF)
- Contrôleur d’accès mémoire direct (EDMA)
- Architecture L1/L2 : 4 Koctets L1P de mémoire programme cache
4 Koctets L1D de mémoire donnée cache
64 Koctets L2 de mémoire RAM/cache (D/P)
Divers
- JTAG pour l’émulation et le test. - Alim. : 3,3V I/O, 1,8V en
Chapter 1, Slide 37 H. AZIZA, Polytech'Marseille, Juillet 2005
interne
Architecture des DSP de la familleTMS320C6000

‹ Architecture

Chapter 1, Slide 38 H. AZIZA, Polytech'Marseille, Juillet 2005


Architecture des DSP de la familleTMS320C6000

Chapter 1, Slide 39 H. AZIZA, Polytech'Marseille, Juillet 2005


Architecture des DSP de la familleTMS320C6000

‹ Cartographie mémoire

Chapter 1, Slide 40 H. AZIZA, Polytech'Marseille, Juillet 2005


Architecture des DSP de la familleTMS320C6000

‹ Les interruptions
Le TMS320C6711 offre 13 sources d’ interruptions :

Chapter 1, Slide 41 H. AZIZA, Polytech'Marseille, Juillet 2005


Architecture des DSP de la familleTMS320C6000

‹ Les interruptions

Chapter 1, Slide 42 H. AZIZA, Polytech'Marseille, Juillet 2005


Architecture des DSP de la familleTMS320C6000

‹ Les interruptions : configuration et polarité


Les registres de configuration des interruptions
- ICR (interrupt Clear Register): permet l’effacement manuel d’une
interruption par la mise à 1 du bit ICx correspondant.
- IER (interrupt enable register) : permet l’autorisation ou
l’interdiction d’une interruption par la mise à 0 ou à 1 de l’IEx
correspondant.
- IFR (interrupt Flag register) : les bits IFx correspondants sont mis à
1 quand l’interruption se produit.
- IRP (interrupt return pointer) : contient l’adresse de retour de
programme après qu’une interruption se soit déroulée.
- ISTP (interrupt service table pointer) : ce registre permet de localiser
en mémoire le programme d’interruption. Le champ IEST identifie
l’adresse de location. Le champ HPEINT localise le type
d’interruption afin de localiser les instructions qui lui sont associées.
- ISR (interrupt set register) : ce registre permet d’activer
manuellement une interruption en mettant à 1 le ISx correspondant.
Chapter 1, Slide 43 H. AZIZA, Polytech'Marseille, Juillet 2005
Architecture des DSP de la familleTMS320C6000

‹ Les interruptions : configuration et polarité

Le registre de polarité des interruptions externes : EIR


Ce registre permet de modifier la polarité des 4 interruptions externes
(EXT_INT4 à EXT_INT7). Lorsque XIP est à 0 un front montant génère
une interruption. En mettant XIP à 1, c’est un front descendant qui est
reconnu comme une source d’interruption. Attention, changer la valeur de
XIP peut générer une transition sur l’entrée source d’interruption et
générer par là même une interruption.

Registres d’interruptions

Chapter 1, Slide 44 H. AZIZA, Polytech'Marseille, Juillet 2005


Architecture des DSP de la familleTMS320C6000

‹ Les interruptions : Sélection


élevée
Sources Description Int,CPU
(HPI) DSPINT Interruption HPI RESET
TINT0 Timer 0 NMI
TINT1 Timer 1 réservée
SD_INT SDRAM Refresh réservée
EXT_INT4 Interruption Externe 4 INT4
EXT_INT5 Interruption Externe 5 INT5 P
EXT_INT6 Interruption Externe 6 r
INT6 i
EXT_INT7 Interruption Externe 7 INT7 o
DMA_INT0 DMA Channel 0 INT8 r
DMA_INT1 DMA Channel 1 INT9 i
t
DMA_INT2 DMA Channel 2 INT10 y
DMA_INT3 DMA Channel 3 INT11
XINT0 McBSP Channel 0 TX INT12
RINT0 McBSP Channel 0 RX INT13
XINT1 McBSP Channel 1 TX INT14
RINT1 McBSP Channel 1 RX INT15

faible
Chapter 1, Slide 45 H. AZIZA, Polytech'Marseille, Juillet 2005
Architecture des DSP de la familleTMS320C6000

‹ Les interruptions : Sélection


Exemple: Associer EXT_INT5
à l’interruption CPU adresse
INT14 24 21
0101 0x19c0000
0x19c0004
Écrire 5dec = 0101b dans INTSEL14

IML : Interrupt Multiplexer High(INT10


High - INT15) (address 0x19c0000)
29 26 24 21 19 16 13 10 8 5 3 0
INTSEL15 INTSEL14 INTSEL13 INTSEL12 INTSEL11 INTSEL10

IMH : Interrupt Multiplexer Low(INT4


Low - INT9) (address 0x19c0004)
29 26 24 21 19 16 13 10 8 5 3 0
INTSEL9 INTSEL8 INTSEL7 INTSEL6 INTSEL5 INTSEL4

Chapter 1, Slide 46 H. AZIZA, Polytech'Marseille, Juillet 2005


Architecture des DSP de la familleTMS320C6000

‹ Les périphériques : Timer

Chapter 1, Slide 47 H. AZIZA, Polytech'Marseille, Juillet 2005


Architecture des DSP de la familleTMS320C6000

‹ Les périphériques : Timer


Le TMS320C6711 possède 2 Timers (Timer0 et Timer1). Ils permettent de :
- mesurer la durée d’un événement,
- de compter des événements,
- de générer des impulsions ,
- de générer des interruptions
- synchroniser les échanges lors des accès directs à la mémoire.
Chaque Timer peut être piloté par une horloge interne ou une horloge externe.
Ils possèdent chacun une entrée TINPx et une sortie TOUTx.
Chaque Timer possède 3 registres de 32 bits permettant de le configurer
(CTL), de fixer la période et un registre (PRD) contenant les résultats du
comptage (CNT).

Chapter 1, Slide 48 H. AZIZA, Polytech'Marseille, Juillet 2005


Architecture des DSP de la familleTMS320C6000

‹ Les périphériques : Timer

Chapter 1, Slide 49 H. AZIZA, Polytech'Marseille, Juillet 2005


Architecture des DSP de la familleTMS320C6000

‹ Les périphériques : Timer

Chapter 1, Slide 50 H. AZIZA, Polytech'Marseille, Juillet 2005


Architecture des DSP de la familleTMS320C6000

‹ Les périphériques : Timer

Registre de contrôle du Timer : CTL

Adresses des registres du Timer

Chapter 1, Slide 51 H. AZIZA, Polytech'Marseille, Juillet 2005


Architecture des DSP de la familleTMS320C6000

‹ Les périphériques : Port HPI (Host-Port Interface)

Chapter 1, Slide 52 H. AZIZA, Polytech'Marseille, Juillet 2005


Architecture des DSP de la familleTMS320C6000

‹ Les périphériques : Port HPI


Brochage du port HPI

Chapter 1, Slide 53 H. AZIZA, Polytech'Marseille, Juillet 2005


Architecture des DSP de la familleTMS320C6000

‹ Les périphériques : Port HPI (Host-Port Interface)


Le port HPI est un port 16 bits qui peut être utilisé pour interfacer un
processeur hôte avec le DSP.
L’hôte et le CPU peuvent échanger des informations via une mémoire interne
ou externe. Le HPI permet notamment à un processeur « hôte » externe
d’effectuer des accès mémoire directs, que celle ci soit interne ou externe dans
l’espace mémoire du 6711 propriétaire.
On pourra remarquer que bien que le format des données soit sur 32 bits, le
port, lui n’en contient que 16. Le transfert se fera donc en 2 étapes, l’ordre du
demi mot transféré étant repéré par le bit HWOB du registre HPIC.
Les broches HDS1, HDS2, HR/W, HCS, HAS permettent un interfaçage avec
nombre de composants sans ajouts de logique d’interface.
Le processeur hôte et le DSP ont tout les deux accès au registre de contrôle du
HPI nommé HPIC.

Chapter 1, Slide 54 H. AZIZA, Polytech'Marseille, Juillet 2005


Architecture des DSP de la familleTMS320C6000

‹ Les périphériques : Port HPI

Le HPI est configuré par trois registres :

HPID : contient la donnée à échanger sur 32 bits.


HPIA : contient l’adresse sur 30 bits (les deux bits de poids faibles ne sont
pas utilisés)
HPIC : le registre HPIC est organisé en deux mots de 16 bits dont
l’organisation du point de vue des champs est identique. Lorsque l’hôte écrit
les deux mots doivent être identiques. La CPU écrit dans le mot de poids
faible.

Chapter 1, Slide 55 H. AZIZA, Polytech'Marseille, Juillet 2005


Architecture des DSP de la familleTMS320C6000

‹ Les périphériques : Port HPI


Registres de contrôle du port HPI : HPIC

Chapter 1, Slide 56 H. AZIZA, Polytech'Marseille, Juillet 2005


Architecture des DSP de la familleTMS320C6000

‹ Les périphériques : la liaison série (McBSP)

Chapter 1, Slide 57 H. AZIZA, Polytech'Marseille, Juillet 2005


Architecture des DSP de la familleTMS320C6000

‹ Les périphériques : la liaison série (McBSP)


Le TMS320C6711 possède deux McBSPs (Multi-Channel Buffered Serial
Ports : McBSP0 et McBSP1). Ces ports série synchrones servent à :
- Interfacer d’autres périphériques, supportant une interface série standard
au DSP.
- Permettre une communication inter processeurs dans des architectures
parallèles à plusieurs DSPs.
Les McBSPs fournissent une interface série très flexible permettant
d’interfacer de nombreux périphériques au DSP. Cette grande flexibilité
permet l’interfaçage de nombreux périphériques ayant des standards de
communication variés.
La grande flexibilité de ces périphériques les rend extrêmement complexes à
programmer.
Ces liaisons séries permettent des communication en mode « full-duplex », un
flot continu des données, une indépendance dans le timing et le format des
données à l’émission et la réception, une interface directe avec les Codec,
CNA et CAN, une synchronisation par horloge interne ou externe …
Chapter 1, Slide 58 H. AZIZA, Polytech'Marseille, Juillet 2005
Architecture des DSP de la familleTMS320C6000z

‹ Les périphériques : la liaison série (McBSP)

Brochage liaison McBSP

Chapter 1, Slide 59 H. AZIZA, Polytech'Marseille, Juillet 2005


Architecture des DSP de la familleTMS320C6000z

‹ Les périphériques : la liaison série (McBSP)

Chapter 1, Slide 60 H. AZIZA, Polytech'Marseille, Juillet 2005


Architecture des DSP de la familleTMS320C6000z

‹ Les périphériques : Accès mémoire en mode direct


L’EDMA permet le transfert de données en provenance de/à
destination de n’importe quel espace mémoire adressable.

Chapter 1, Slide 61 H. AZIZA, Polytech'Marseille, Juillet 2005


Architecture des DSP de la familleTMS320C6000z

‹ Les périphériques : Accès mémoire en mode direct


(EDMA)
Le C6711 élabore des transferts de données depuis un élément interne ou
externe en utilisant soit le CPU soit l’EDMA (Enhanced Direct Memory
Access). Typiquement les transferts depuis les périphériques internes au
C6711 sont fait par l’EDMA libérant ainsi la CPU pour des tâches de calcul.
Par exemple, on peut l’utiliser pour transférer automatiquement des données
d’une section de mémoire dans une autre.
L’EDMA contient 16 canaux de transmission dont les priorités sont
programmables et permet des transferts d’informations depuis la mémoire
cache L2, les périphériques du C6711 et de la mémoire externe.
L’EDMA contient des registres d’évènements et d’interruptions, des
encodeurs d’événement , de la RAM ainsi qu’ un module de génération
d’adresses.
Les évènements EDMA sont capturés dans le registre d’événement . Un
événement EDMA étant un signal de synchronisation qui déclenche un canal
EDMA pour démarrer le transfert. Si plusieurs évènements arrivent en même
temps, ils sont traités par priorités par l’encodeur d’événements .
Chapter 1, Slide 62 H. AZIZA, Polytech'Marseille, Juillet 2005
Architecture des DSP de la familleTMS320C6000z

‹ Les périphériques : Accès mémoire en mode direct

Les transferts effectués par le l’EDMA peuvent être initiés par le CPU ou être
initiés automatiquement par des évènements particuliers, tels que :
- Réception ou transmission d’un port série (McBSP)
- Interruption d’un des Timers
- Interruption d’un périphérique externe
On peut donc se servir de l’EDMA pour transférer automatiquement des
données entre les ports série et des sections de mémoire. Dans ce cas, on peut
transférer une à une les données en provenance de/à destination de plusieurs
ports série, et prévenir le CPU par une interruption lorsque tous les ports série
ont communiqué.

Les événements qui peuvent être a l’origine d’une transfert de données sont
données dans le tableau suivant :

Chapter 1, Slide 63 H. AZIZA, Polytech'Marseille, Juillet 2005


Architecture des DSP de la familleTMS320C6000z

‹ Les périphériques : Accès mémoire en mode direct


Événements EDMA
canaux Événements Description de l’événements
0 DSPINT Interruption Host port host vers DSP
1 TINT0 Interruption Timer 0
2 TINT1 Interruption Timer 1
3 SD_INT Interruption EMIF SDRAM timer interrupt
4 EXT_INT4 Interruption Externe pin 4
5 EXT_INT5 Interruption Externe pin 5
6 EXT_INT6 Interruption Externe pin 6
7 EXT_INT7 Interruption Externe pin 7
8 EDMA_TCC8 Transfert EDMA terminé code 1000b
9 EDMA_TCC9 Interruption EDMA TCC 1001b
10 EDMA_TCC10 Interruption EDMA TCC 1010b
11 EMDA_TCC11 Interruption EDMA TCC 1011b
12 XEVT0 Transmission port série McBSP0
13 REVT0 Réception port série McBSP0
14 XEVT1 Transmission port série McBSP1
15 REVT1 Réception port série McBSP1

Chapter 1, Slide 64 H. AZIZA, Polytech'Marseille, Juillet 2005


Architecture des DSP de la familleTMS320C6000z

‹ Les périphériques : Accès mémoire en mode direct


Les registres EDMA
Chacun des 16 canaux a des évènements qui lui sont associés. Ces
évènements déclenchent le transfert de données en association avec le canal.
La liste des registres de contrôle est variable suivant l’événement. Tous les
évènements sont signalés par un front montant sur l’une des 16 entrées. Un
événement qui apparaît engendre le positionnement du bit lui correspondant
dans le registre d’événement (ER).
Les registres utilisés sont donnés dans le tableau suivant :

Chapter 1, Slide 65 H. AZIZA, Polytech'Marseille, Juillet 2005


Architecture des DSP de la familleTMS320C6000z

‹ Les périphériques : Interface de mémoire externe (EMIF)

Chapter 1, Slide 66 H. AZIZA, Polytech'Marseille, Juillet 2005


Architecture des DSP de la familleTMS320C6000z

‹ Les périphériques : Interface de mémoire externe


(EMIF)

DSP traditionnels (sans EMIF) :

Mémoire ou Interface
périphérique HW DSP

L’interface de mémoire externe du C6711 permet l’interfaçage avec


différents types de composants : SDRAM, SRAM, ROM, FIFO, …
Cette interface permet d’interfacer un périphérique/circuit mémoire
lent avec le DSP sans incorporer de circuits d’interface.
Ces circuits d’interface nécessitent une technologie rapide (coûteuse)
pour travailler au même rythme que le DSP.

Chapter 1, Slide 67 H. AZIZA, Polytech'Marseille, Juillet 2005


Architecture des DSP de la familleTMS320C6000

‹ Les modes d’adressage


Les différents modes d’adressage utilisés par le TMS320C6711 sont :
- adressage par valeur immédiate,
- adressage avec une valeur absolue,
- adressage par accumulateur,
- adressage direct,
- adressage indirect,
- adressage circulaire,
- adressage bit reverse,
- adressage indirect à 2 opérandes.

Chapter 1, Slide 68 H. AZIZA, Polytech'Marseille, Juillet 2005


KIT DSP - DSK6711

‹ Présentation
‹ Partie matérielle
‹ Partie logicielle

Chapter 1, Slide 69 H. AZIZA, Polytech'Marseille, Juillet 2005


KIT DSP - DSK6711
‹ Présentation
Le KIT DSP - DSK6711 : Ce type de carte est généralement utilisé pour
développer et tester du code DSP dédié. A l’issue du développement, le
code peut être installé dans le système dédié cible qui est conçu
spécialement pour supporter l’application visée.
Ce type de carte est utilisé parce que dans beaucoup de situations le
système dédié cible n’a pas de ressources adéquates pour développer le
code de façon confortable.
Bien souvent le code final est en ROM et sa modification est laborieuse
dans les phases de développement.
On développe et teste donc le code sur une carte faite pour cela, qui
utilise le même processeur, et idéalement les mêmes périphériques que
le système cible envisagé.
Cette façon de procéder permet aussi de commencer le développement
du code alors que le hardware final du système dédié n’est pas terminé.

Chapter 1, Slide 70 H. AZIZA, Polytech'Marseille, Juillet 2005


KIT DSP - DSK6711
‹ Présentation
Câble parallèle
PC DSK6411 Alimentation
externe

Alimentation
Entrée ligne
Sortie ligne

Pour pouvoir charger un code machine en mémoire, et ensuite interagir


avec ce code (lancer ou arrêter l’exécution, lire ou écrire des variables
en mémoire, et lire ou écrire les registres du CPU en cours d’exécution)
on utilise un noyau de communication ou kernel de communication.
Ce noyau de communication est chargé en mémoire du DSP et s’y
exécute. Il donne accès aux ressources internes de la carte et du CPU
via une application qui s’exécute sur le PC et fournit un interface
utilisateur confortable pour utiliser ces ressources. Cette application est
le debugger.
Chapter 1, Slide 71 H. AZIZA, Polytech'Marseille, Juillet 2005
KIT DSP - DSK6711
‹ Partie matérielle

Chapter 1, Slide 72 H. AZIZA, Polytech'Marseille, Juillet 2005


KIT DSP - DSK6711
‹ Partie matérielle

1.8V Power Supply 16M SDRAM 128K FLASH Daughter Card I/F
(EMIF Connector)

Parallel
Port I/F
TMS320C6711 ‘C6711
DSP
Power
Jack D. Card I/F
(Periph Con.)
Power
LED User DIP
switches

Reset Three User LEDs


3.3V Power Supply 16-bit codec (A/D & D/A)
Emulation
JTAG Header Line Level Input (microphone)
JTAG Header Line Level Output (speakers)

Chapter 1, Slide 73 H. AZIZA, Polytech'Marseille, Juillet 2005


KIT DSP - DSK6711
‹ Partie matérielle
Le kit DSK6711 est composé d’une carte portant un TMS320C6711
cadencé à 150MHZ. 16Mo de SDRAM, 128Ko de ROM ont été
rajoutés sur les espaces CE0 et CE1.
La mémoire peut encore être étendue par le connecteur J1 dans les
espaces CE2 et CE3 non utilisés. Un port d’E/S a été rajouté connecté
aux switches SW2 et à un jeu de leds D7-D9.
Un circuit CODEC (CNA/CAN audio) de type TLC320AD535
connecté à une prise jack d’entrée mono et une prise jack de sortie
stéréo communique avec le TMS320C6711 par la liaison série
McBSP0. Le TLC320AD535 est cadencé à 4,096 Mhz ce qui engendre
une fréquence d’échantillonage fixe des donnée de 8Khz.
La liaison série MCBSP0 est partagée via un multiplexeur entre la
partie « conversion analogique » et un module d’extension de
périphérique alors que la liaison MCBSP1 est tout entière destinée à une
extension de périphérique. Cette extension est disponible sur le
connecteur J3.
Chapter 1, Slide 74 H. AZIZA, Polytech'Marseille, Juillet 2005
KIT DSP - DSK6711
‹ Partie logicielle : Code Composeur Studio

Chapter 1, Slide 75 H. AZIZA, Polytech'Marseille, Juillet 2005


Chapter I

- End -

Vous aimerez peut-être aussi