Vous êtes sur la page 1sur 136

Introduction

Architecture des systèmes up


Architecture des DSP
Architectue TMS320C6x
Diagramme Bloque DSK C6713

Module :Informatique Industrielle


DSP
Génie des Systèmes de Télécommunications et Réseaux

Pr.Otman CHAKKOR

Université Abdelmalek Essaâdi


Tétouan

2015-2016

Pr.Otman CHAKKOR DSP 1 / 136


Introduction
Architecture des systèmes up
Architecture des DSP
Architectue TMS320C6x
Diagramme Bloque DSK C6713

Table des matières

3 Architecture des DSP


1 Introduction
4 Architectue TMS320C6x
2 Architecture des systèmes up
5 Diagramme Bloque DSK C6713

Pr.Otman CHAKKOR DSP 2 / 136


Introduction
Architecture des systèmes up
Architecture des DSP
Architectue TMS320C6x
Diagramme Bloque DSK C6713

Pré-requis

Électronique numérique : combinatoire et séquentielle


Programmation en assembleur et C.
Architecture des ordinateurs.

Pr.Otman CHAKKOR DSP 3 / 136


Introduction
Architecture des systèmes up
Architecture des DSP
Architectue TMS320C6x
Diagramme Bloque DSK C6713

Informatique Industrielle
L’informatique industrielle est une branche de l’informatique appliquée
qui couvre l’ensemble des techniques de conception et de programma-
tion de systèmes informatisés à vocation industrielle, qui ne sont pas des
ordinateurs.  (Source : Wikipédia)

Module : Informatique Industrielle


Microcôntroleur =⇒50 %
DSP (Digital Signal Processors) =⇒ 50%
Travaux Pratiques =⇒ Miniprojets (MpLab et CCS : Code Compo-
ser Studio, Texas Instrument)

Pr.Otman CHAKKOR DSP 4 / 136


Introduction
Applications des DSP
Architecture des systèmes up
Virgule fixe ou flottante
Architecture des DSP
Architecture de Von Neumann et de Harvard
Architectue TMS320C6x
Les Méthodes et outils de développement
Diagramme Bloque DSK C6713

Introduction

Introduit en 1982 par Texas Instruments, un processeur de traitement du


signal (DSP) est un microprocesseur : conçu pour être particulièrement
efficace dans la programmation de certains algorithmes pour le trai-
tement du signal. Ce sont des processeurs comportant une unité de
multiplication-accumulation. Ils contiennent également de la mémoire
interne et une mémoire cache très rapide.

Pr.Otman CHAKKOR DSP 5 / 136


Introduction
Applications des DSP
Architecture des systèmes up
Virgule fixe ou flottante
Architecture des DSP
Architecture de Von Neumann et de Harvard
Architectue TMS320C6x
Les Méthodes et outils de développement
Diagramme Bloque DSK C6713

Introduction

Traitement numérique du signal : application d’opérations mathématiques


sur des signaux représentés sous forme numérique.
Représentation des signaux sous forme de séquences d’échantillons.
Les signaux numériques sont obtenus à partir de signaux physiques
via des récepteurs (ex : microphones) et des convertisseurs analogiques-
numériques (ADC).
Les signaux numériques sont reconvertis en signaux physiques par
des convertisseurs numériques-analogiques (DAC).
Processeurs de traitement du signal (DSP) : système électronique
qui traite des signaux numériques.

Pr.Otman CHAKKOR DSP 6 / 136


Introduction
Applications des DSP
Architecture des systèmes up
Virgule fixe ou flottante
Architecture des DSP
Architecture de Von Neumann et de Harvard
Architectue TMS320C6x
Les Méthodes et outils de développement
Diagramme Bloque DSK C6713

Pourquoi DSP ?
pourquoi un processeur specifique

toutes les opérations nécessitent beaucoup de calculs de la forme :

A = B ∗ C + D.

Cette simple équation inclut une multiplication et addition.


L’instruction de multiplication d’un processeur générique est très lent
par rapport à l’instruction de l’addition.
Exemple : Dans un up Motorola 68000 a besoin de :
10 cycles d’horloges pour une addition.
74 cycles d’horloges pour la multiplication.

Pr.Otman CHAKKOR DSP 7 / 136


Introduction
Applications des DSP
Architecture des systèmes up
Virgule fixe ou flottante
Architecture des DSP
Architecture de Von Neumann et de Harvard
Architectue TMS320C6x
Les Méthodes et outils de développement
Diagramme Bloque DSK C6713

DSP ?

C’est un microprocesseur avec un jeu d’instructions dédié au traite-


ment numérique du signal.
Plus de parallélisme (pipeline).
Jeu d’instructions orientés au MAC (Muliply-Accumulator opeara-
tion) :
y = a.x1 + bx2 + c.x3 + · · ·
même philosophie du uc : CPU + mémoire interne + périphériques.
La plus part des DSP ont des instructions spécialisées leur permet-
tant de multiplier, additionner et sauvegarder le résultat lors d’un
seul cycle. (appelés souvent MAC).

Pr.Otman CHAKKOR DSP 8 / 136


Introduction
Applications des DSP
Architecture des systèmes up
Virgule fixe ou flottante
Architecture des DSP
Architecture de Von Neumann et de Harvard
Architectue TMS320C6x
Les Méthodes et outils de développement
Diagramme Bloque DSK C6713

Domaines d’applications

Alarme, automobile, aviation, instrumentation, médicale, téléphonie


mobile, terminaux de paiement pour carte bancaire ...

Les DSP sont utilisés dans la plupart des applications du traitement


numérique du signal en temps réel.

Pr.Otman CHAKKOR DSP 9 / 136


Introduction
Applications des DSP
Architecture des systèmes up
Virgule fixe ou flottante
Architecture des DSP
Architecture de Von Neumann et de Harvard
Architectue TMS320C6x
Les Méthodes et outils de développement
Diagramme Bloque DSK C6713

Domaines d’applications

Automates, robotique,
Mesures de grandeurs phy-
siques,
Systèmes temps-réel,
Systèmes embarqués.

Pr.Otman CHAKKOR DSP 10 / 136


Introduction
Applications des DSP
Architecture des systèmes up
Virgule fixe ou flottante
Architecture des DSP
Architecture de Von Neumann et de Harvard
Architectue TMS320C6x
Les Méthodes et outils de développement
Diagramme Bloque DSK C6713

Domaines d’applications

Figure 2 – Use of Texas Instruments DSP in a MP3 player/recorder system.


Picture courtesy of Texas Instruments from www.ti.com.
Pr.Otman CHAKKOR DSP 11 / 136
Introduction
Applications des DSP
Architecture des systèmes up
Virgule fixe ou flottante
Architecture des DSP
Architecture de Von Neumann et de Harvard
Architectue TMS320C6x
Les Méthodes et outils de développement
Diagramme Bloque DSK C6713

Applications et Algorithmes des DSP

Applications :
Communications
Image / Vidéo , Audio.
Militaire
Médical
Instrumentation, Automobile et Automatisation
Algorithmes :
Filtrage fréquentiel - FIR et IIR
Transformations temps en fréquence - FFT
Corrélation

Pr.Otman CHAKKOR DSP 12 / 136


Introduction
Applications des DSP
Architecture des systèmes up
Virgule fixe ou flottante
Architecture des DSP
Architecture de Von Neumann et de Harvard
Architectue TMS320C6x
Les Méthodes et outils de développement
Diagramme Bloque DSK C6713

DSp, uc et Arduino
Fonctionnement de ”Arduino” autour de microcontrolleur AVR.(Disponibilité
des librairies.)
Programmation de Arduino (ATMEL AVR, langage de programmation
Arduino ) : fonctions disponibles pour lire-écrire sur les mémoires
EEPROM.
EEPROM.write(address, value) ; si on veut écrire sur le port ”UART
serial”, on aura besoin d’initialiser les registres ou ports, on utilise la
fonction Serial.print(”Hello”) ;
Arduino hardware inclut la carte mère (microcontrolleur AVR) et l’ex-
tension (shields).
Arduino : environnement propre pour le développement pour écrire,
compiler, debugger et programmer l’arduino.
Arduino est la première étape de commencer à travailler sur les
systèmes embarquées.
donc quelle est la différence entre Arduino et uc ?
Pr.Otman CHAKKOR DSP 13 / 136
Introduction
Applications des DSP
Architecture des systèmes up
Virgule fixe ou flottante
Architecture des DSP
Architecture de Von Neumann et de Harvard
Architectue TMS320C6x
Les Méthodes et outils de développement
Diagramme Bloque DSK C6713

Spécificités des DSP/processeurs généralistes

• Les DSP ont tendance à être utilisé pour un programme, pas pour de
nombreux programmes :
Les systèmes d’exploitation sont beaucoup plus simples.
Pas de mémoire virtuelle, pas de protection.
• Les DSP exécutent parfois des applications temps réel strict ...
On doit tenir compte de tout ce qui intervient dans un intervalle de
temps donné.
Toutes les interruptions ou exceptions possibles doivent être prises
en compte dans l’intervalle de temps.
Les exceptions sont  coûteuses .
• Les DSP ont un flot de données continu infini.

Pr.Otman CHAKKOR DSP 14 / 136


Introduction
Applications des DSP
Architecture des systèmes up
Virgule fixe ou flottante
Architecture des DSP
Architecture de Von Neumann et de Harvard
Architectue TMS320C6x
Les Méthodes et outils de développement
Diagramme Bloque DSK C6713

Besoin

Figure 3 – Cahier des charges

Pr.Otman CHAKKOR DSP 15 / 136


Introduction
Applications des DSP
Architecture des systèmes up
Virgule fixe ou flottante
Architecture des DSP
Architecture de Von Neumann et de Harvard
Architectue TMS320C6x
Les Méthodes et outils de développement
Diagramme Bloque DSK C6713

Principaux constructeurs de DSP

Texas Instruments, Analog Devices


Motorola, Zilog
Lucent, Nec
Zoran, Zsp, Microchip
Les trois premiers constructeurs sont les plus connus. Néanmoins,
certains petits constructeurs développent des architectures originales.
Microchip, fort du succès de ces microcontrôleurs PIC a mis sur le
marché une famille de DSP 16 bits virgule fixe, les dsPIC.

Pr.Otman CHAKKOR DSP 16 / 136


Introduction
Applications des DSP
Architecture des systèmes up
Virgule fixe ou flottante
Architecture des DSP
Architecture de Von Neumann et de Harvard
Architectue TMS320C6x
Les Méthodes et outils de développement
Diagramme Bloque DSK C6713

Informations sur les DSP Analog Devices :


http ://www.analog.com/DSP/
Informations sur les DSP Motorola :
http ://www.motorola.com/SPS/DSP/
Motorola, Freescale

Pr.Otman CHAKKOR DSP 17 / 136


Introduction
Applications des DSP
Architecture des systèmes up
Virgule fixe ou flottante
Architecture des DSP
Architecture de Von Neumann et de Harvard
Architectue TMS320C6x
Les Méthodes et outils de développement
Diagramme Bloque DSK C6713

DSP :Cœur d’une chaı̂ne de traitement numérique du signal.

Figure 4 – chaine classique de traitement numérique du signal

Digital Signal Processor (DSP) est un microcontrolleur spécialement


conçu pour des applications de traitement du signal.

Pr.Otman CHAKKOR DSP 18 / 136


Introduction
Applications des DSP
Architecture des systèmes up
Virgule fixe ou flottante
Architecture des DSP
Architecture de Von Neumann et de Harvard
Architectue TMS320C6x
Les Méthodes et outils de développement
Diagramme Bloque DSK C6713

Classification des processeurs

Figure 5 – Classification des processeurs

Pr.Otman CHAKKOR DSP 19 / 136


Introduction
Applications des DSP
Architecture des systèmes up
Virgule fixe ou flottante
Architecture des DSP
Architecture de Von Neumann et de Harvard
Architectue TMS320C6x
Les Méthodes et outils de développement
Diagramme Bloque DSK C6713

Les différents systèmes programmables

1 Les circuits spécialisés ou ASIC (Application Specific Integrated


Circuit) : sont des circuits spécialisés dès leur conception pour une
application donnée.
2 Exemples : DSP (Digital Signal Processing), co-processeur arithmétique,
processeur 3-D, contrôleur de bus, ...

Pr.Otman CHAKKOR DSP 20 / 136


Introduction
Applications des DSP
Architecture des systèmes up
Virgule fixe ou flottante
Architecture des DSP
Architecture de Von Neumann et de Harvard
Architectue TMS320C6x
Les Méthodes et outils de développement
Diagramme Bloque DSK C6713

1 Les systèmes en logique programmée et/ou en logique program-


mable sont connus sous la désignation de PLD (programmable logic
device, circuit logique programmable). Exemple :
FPGA (field-programmable gate array, réseau de portes program-
mables in-situ),
PAL (programmable array logic, réseau logique programmable).

Pr.Otman CHAKKOR DSP 21 / 136


Introduction
Applications des DSP
Architecture des systèmes up
Virgule fixe ou flottante
Architecture des DSP
Architecture de Von Neumann et de Harvard
Architectue TMS320C6x
Les Méthodes et outils de développement
Diagramme Bloque DSK C6713

Pr.Otman CHAKKOR DSP 22 / 136


Introduction
Applications des DSP
Architecture des systèmes up
Virgule fixe ou flottante
Architecture des DSP
Architecture de Von Neumann et de Harvard
Architectue TMS320C6x
Les Méthodes et outils de développement
Diagramme Bloque DSK C6713

Les différents systèmes programmables

Les systèmes micro-programmés


Les micro-contrôleurs sont typiquement des systèmes micro-programmés.

Pr.Otman CHAKKOR DSP 23 / 136


Introduction
Applications des DSP
Architecture des systèmes up
Virgule fixe ou flottante
Architecture des DSP
Architecture de Von Neumann et de Harvard
Architectue TMS320C6x
Les Méthodes et outils de développement
Diagramme Bloque DSK C6713

Microprocesseurs

Pr.Otman CHAKKOR DSP 24 / 136


Introduction
Applications des DSP
Architecture des systèmes up
Virgule fixe ou flottante
Architecture des DSP
Architecture de Von Neumann et de Harvard
Architectue TMS320C6x
Les Méthodes et outils de développement
Diagramme Bloque DSK C6713

Virgule fixe ou flottante

Les DSP ont besoin de nombres représentant le monde réel : réels


/fractions
Les DSP ont besoin de nombre pour les adresses : Entiers
Les valeurs traitées (coefficients, échantillons. . . ) sont représentées
sous 2 formes :
Dans un processeur (calculateur), un nombre est toujours écrit sous
forme d’un bloc de n bits (considéré comme un entier N), pour
représenter les nombres fractionnaires il est nécessaire de définir
la position de la virgule : pour ce faire, il existe deux méthodes.
La représentation en virgule fixe.
La représentation en virgule flottante

Pr.Otman CHAKKOR DSP 25 / 136


Introduction
Applications des DSP
Architecture des systèmes up
Virgule fixe ou flottante
Architecture des DSP
Architecture de Von Neumann et de Harvard
Architectue TMS320C6x
Les Méthodes et outils de développement
Diagramme Bloque DSK C6713

Représentation des nombres :


Représentation des nombres entiers positifis

Les nombres sont représentés en binaire sur n bits : n = nombre


d’unités mémoires (n = 8,16,32,64,...)
On peut représenter des nombres allant de 0 a 2n − 1.

Pr.Otman CHAKKOR DSP 26 / 136


Introduction
Applications des DSP
Architecture des systèmes up
Virgule fixe ou flottante
Architecture des DSP
Architecture de Von Neumann et de Harvard
Architectue TMS320C6x
Les Méthodes et outils de développement
Diagramme Bloque DSK C6713

Représentation des nombres :


Représentation binaire des entiers signés

Traditionnellement on met un signe ” - ” pour représenter les nombres


négatifs. Mais les systèmes logiques ne permettent de présenter qu’un
des deux symboles ” 0 ” et ”1 ”, il faut chercher une convention pour
remplacer le ”- ”.
Représentation module et signe :

Problème : on a ici deux représentations différentes pour le zéro :


’00...0’ et ’10...0’.
Pr.Otman CHAKKOR DSP 27 / 136
Introduction
Applications des DSP
Architecture des systèmes up
Virgule fixe ou flottante
Architecture des DSP
Architecture de Von Neumann et de Harvard
Architectue TMS320C6x
Les Méthodes et outils de développement
Diagramme Bloque DSK C6713

Représentation des nombres :


Représentation en complément restreint (CR) ou complément à 1 (C1)

−A = Ā : pour prendre l’inverse d’un nombre, il suffit de le


complémenter (inversion de tous ses bits). Comme dans le cas précédent,
la nature du premier bit donnera le signe : 0 ⇐⇒ + et 1 ⇐⇒ −.
Exemple de Notation en complément à 1
1 0 1 1 0 1 nombre binaire initial
0 1 0 0 1 0 complément de chaque bit pour obtenir le complément à 1
Complément à 1 de N : C1(N) = not(N)

- Avec 4 bits, on a : +5 = 0101 et -5 = 1010.


Problème :de nouveau, on a deux représentations différentes pour le
zéro.

Pr.Otman CHAKKOR DSP 28 / 136


Introduction
Applications des DSP
Architecture des systèmes up
Virgule fixe ou flottante
Architecture des DSP
Architecture de Von Neumann et de Harvard
Architectue TMS320C6x
Les Méthodes et outils de développement
Diagramme Bloque DSK C6713

Représentation d’un entier signé :


Représentation en complément vrai (CV) ou complémentà 2 (C2)

C’est la représentation la plus utilisée.


Un entier signé est un entier pouvant être négatif. Il faut donc
coder le nombre de telle façon que l’on puisse savoir s’il s’agit d’un
nombre positif ou d’un nombre négatif, et il faut de plus que
les règles d’addition soient conservées. L’astuce consiste à utiliser un
codage que l’on appelle complément à deux.
Notation en complément à 2
x = +2 = 00010 =⇒ C1(x) = 11101(complément à 1)
+1 (ajouter 1) =⇒ 11110(complément à 2 du chiffre +2 sur 5 bits)

C’est la représentation la plus utilisée. Le bit le plus à gauche est


encore le bit de signe :0 ⇐⇒ + et 1 ⇐⇒ −.
−A = Ā + 1 : est appelé complément à 2.
Pr.Otman CHAKKOR DSP 29 / 136
Introduction
Applications des DSP
Architecture des systèmes up
Virgule fixe ou flottante
Architecture des DSP
Architecture de Von Neumann et de Harvard
Architectue TMS320C6x
Les Méthodes et outils de développement
Diagramme Bloque DSK C6713

Représentation d’un entier signé :


Représentation en complément vrai (CV) ou complémentà 2 (C2)

Exemple
On veut coder -5 sur 8 bits, il suffit d’écrire :
5 = 0000 0101
C1(5)= 1111 1010 C2(5) = C1(5) + 1 = 1111 1011
Le bit de poids fort (MSB) = 1, il s’agit bien d’un nombre négatif.

Pr.Otman CHAKKOR DSP 30 / 136


Introduction
Applications des DSP
Architecture des systèmes up
Virgule fixe ou flottante
Architecture des DSP
Architecture de Von Neumann et de Harvard
Architectue TMS320C6x
Les Méthodes et outils de développement
Diagramme Bloque DSK C6713

Représentation d’un entier signé :


Représentation en complément vrai (CV) ou complémentà 2 (C2)

Pour passer d’une valeur négative à une valeur positive, on applique


aussi le complément à 2.
Une seule représentation pour le zéro.
Avec des mots de n éléments binaires, on obtient 2n valeurs différentes,
de 0 à 2n−1 − 1 pour les valeurs positives, et de −1 à −2n−1 pour
les valeurs négatives ;
n = 8 (mots de 8 bits) =⇒ , si nb > 0 de 0 à 127.
si nb<0 de -1 à -128.

Pr.Otman CHAKKOR DSP 31 / 136


Introduction
Applications des DSP
Architecture des systèmes up
Virgule fixe ou flottante
Architecture des DSP
Architecture de Von Neumann et de Harvard
Architectue TMS320C6x
Les Méthodes et outils de développement
Diagramme Bloque DSK C6713

Représentation des nombres réels dans un calculateur

Dans un calculateur, un nombre est toujours écrit sous forme d’un


bloc de n éléments binaires (considéré comme un entier N). Pour
représenter les nombres fractionnaires il est nécessaire de définir la
position de la virgule. Pour ce faire, il existe deux méthodes :
la représentation en virgule fixe ;
la représentation en virgule flottante.

Pr.Otman CHAKKOR DSP 32 / 136


Introduction
Applications des DSP
Architecture des systèmes up
Virgule fixe ou flottante
Architecture des DSP
Architecture de Von Neumann et de Harvard
Architectue TMS320C6x
Les Méthodes et outils de développement
Diagramme Bloque DSK C6713

Conversion réel décimal en binaire

Exemple : conversion de 12,6875 en binaire


Conversion de 12 : donne (1100)2
Conversion de 0,6875 :

Figure 6 – Conversion réel décimal en binaire

(12, 6875)10 = (1100, 1011)2 Binaire rationnels

Pr.Otman CHAKKOR DSP 33 / 136


Introduction
Applications des DSP
Architecture des systèmes up
Virgule fixe ou flottante
Architecture des DSP
Architecture de Von Neumann et de Harvard
Architectue TMS320C6x
Les Méthodes et outils de développement
Diagramme Bloque DSK C6713

Conversion binaire en réel décimal

Exemple :
(101, 101)2 = 1.22 + 0.21 + 1.20 + 1.2−1 + 0.2−2 + 1.2−3 =
4 + 1 + 0, 5 + 0, 125 = 5, 625

Pr.Otman CHAKKOR DSP 34 / 136


Introduction
Applications des DSP
Architecture des systèmes up
Virgule fixe ou flottante
Architecture des DSP
Architecture de Von Neumann et de Harvard
Architectue TMS320C6x
Les Méthodes et outils de développement
Diagramme Bloque DSK C6713

Représentation d’un nombre réel

Il s’agit de représenter un nombre binaire à virgule (par exemple


101,01 qui ne se lit pas cent un virgule zéro un puisque c’est un
nombre binaire mais 5,25 en décimale) sous la forme 1,XXXXX... *
2n (c’est-à-dire dans notre exemple 1,0101*22 ).
La norme IEEE définit la façon de coder un nombre réel. Cette
norme se propose de coder le nombre sur 32 bits et définit trois com-
posantes :
Le signe est représenté par un seul bit, le bit de poids fort (celui le
plus à gauche) ;
l’exposant est codé sur les 8 bits consécutifs au signe* ;
la mantisse (les bits situés après la virgule) sur les 23 bits restants ;

Pr.Otman CHAKKOR DSP 35 / 136


Introduction
Applications des DSP
Architecture des systèmes up
Virgule fixe ou flottante
Architecture des DSP
Architecture de Von Neumann et de Harvard
Architectue TMS320C6x
Les Méthodes et outils de développement
Diagramme Bloque DSK C6713

Représentation d’un nombre réel

Ainsi le codage se fait sous la forme suivante :


seeeeeeeemmmmmmmmmmmmmmmmmmmmmmm
le s représente le bit relatif au signe
les e représentent les bits relatifs à l’exposant
les m représentent les bits relatifs à la mantisse

Pr.Otman CHAKKOR DSP 36 / 136


Introduction
Applications des DSP
Architecture des systèmes up
Virgule fixe ou flottante
Architecture des DSP
Architecture de Von Neumann et de Harvard
Architectue TMS320C6x
Les Méthodes et outils de développement
Diagramme Bloque DSK C6713

Virgule fixe ou flottante

Un 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 : nombre sont représenté sous format des
Entiers ou fractionnaires(entre -1 et +1).
Les DSP à virgule flottante : Dans les DSP à virgule flottante,
l’arithmétique à point fixe et flottante peuvent être supportés par
ce DSP. avec DSP à virgule flottante C6713, il permet une grande
dynamique (grand intervalle des nombres peuvent être représentés)
para rapport au DSP de virgule fixe.

Pr.Otman CHAKKOR DSP 37 / 136


Introduction
Applications des DSP
Architecture des systèmes up
Virgule fixe ou flottante
Architecture des DSP
Architecture de Von Neumann et de Harvard
Architectue TMS320C6x
Les Méthodes et outils de développement
Diagramme Bloque DSK C6713

Virgule fixe ou flottante

Figure 7 – Regular DSPs number representation

Pr.Otman CHAKKOR DSP 38 / 136


Introduction
Applications des DSP
Architecture des systèmes up
Virgule fixe ou flottante
Architecture des DSP
Architecture de Von Neumann et de Harvard
Architectue TMS320C6x
Les Méthodes et outils de développement
Diagramme Bloque DSK C6713

Représentation en virgule fixe :


Format courant : 16/24 bits.
Idéal avec CAN/CNA 12/14 bits
Applications : Contrôle industriel,communications, instrumenta-
tion,parole, médical, militaire. . .

Pr.Otman CHAKKOR DSP 39 / 136


Introduction
Applications des DSP
Architecture des systèmes up
Virgule fixe ou flottante
Architecture des DSP
Architecture de Von Neumann et de Harvard
Architectue TMS320C6x
Les Méthodes et outils de développement
Diagramme Bloque DSK C6713

Représentation en virgule fixe :

Pr.Otman CHAKKOR DSP 40 / 136


Introduction
Applications des DSP
Architecture des systèmes up
Virgule fixe ou flottante
Architecture des DSP
Architecture de Von Neumann et de Harvard
Architectue TMS320C6x
Les Méthodes et outils de développement
Diagramme Bloque DSK C6713

Virgule flottante :

Format courant : 32 bits


Idéal pour le traitement sur une grande dynamique.
Applications : Audio professionnel, vidéo, médical. . .

Pr.Otman CHAKKOR DSP 41 / 136


Introduction
Applications des DSP
Architecture des systèmes up
Virgule fixe ou flottante
Architecture des DSP
Architecture de Von Neumann et de Harvard
Architectue TMS320C6x
Les Méthodes et outils de développement
Diagramme Bloque DSK C6713

Codage binaire des réel à virgule flottante

On sait qu’un nombre à virgule flottante peut etre representé sous


plusieurs formats équivalents, alors il est important d’avoir une seule
représentation standard à utiliser =”format standard”.
Très utilisé par tous les processeurs/coprocesseurs arithmétique ac-
tuels.
Objectif : Faciliter la portabilité du programme d’un processeur à un
autre.
Généralement, on dit qu’un nombre binaire est normalisé si le
nombre à gauche de la virgule est égale à 1, cad = 1,xxx.2n .
Exemple : 101,1 =⇒ 1,0101 22 = version normalisée
par contre 0,10101.23 c’est une version non-normalisée.

Pr.Otman CHAKKOR DSP 42 / 136


Introduction
Applications des DSP
Architecture des systèmes up
Virgule fixe ou flottante
Architecture des DSP
Architecture de Von Neumann et de Harvard
Architectue TMS320C6x
Les Méthodes et outils de développement
Diagramme Bloque DSK C6713

Représentation d’un nombre réel selon la norme IEEE754

La norme IEEE 754 définit la façon de coder un nombre réel.


Il s’agit de représenter un nombre binaire à virgule flottante (ex :101,01)
sous la forme 1,xxx.2n , cad 101,01 =⇒ 1, 0101.22
Format simple précision sur 32 bits : x = (s).M.2E
avec s=0 (nbr.positif), s=0 (nbr.négatif), E : Exposant codé sur 8
bits et M :Mantisse codé sur 23 bits.

Pr.Otman CHAKKOR DSP 43 / 136


Introduction
Applications des DSP
Architecture des systèmes up
Virgule fixe ou flottante
Architecture des DSP
Architecture de Von Neumann et de Harvard
Architectue TMS320C6x
Les Méthodes et outils de développement
Diagramme Bloque DSK C6713

Représentation d’un nombre réel selon la norme IEEE754


Exemple : Codage de 8,625 sous la norme IEEE 754
8.625 = 8 + 0.625 , avec 810 = 10002
0.625 *2 = 1.250 = 1 + 0.250
0.250 * 2 = 0.5 = 0 + 0.5
0.5*2 = 1 = 1+0
d’ou :0.625 = 0.1012
d’ou le résultat final : 8.62510 = 1000, 1012
sous format normalisé : 8.625 = 1, 000101.23
Exposant biaisé à 127 = 3 + 127 = 13010 = 100000102
d’ou la représentation sous format IEEE 754 :

0 10000010 000101000000000000000000
Pr.Otman CHAKKOR DSP 44 / 136
Introduction
Applications des DSP
Architecture des systèmes up
Virgule fixe ou flottante
Architecture des DSP
Architecture de Von Neumann et de Harvard
Architectue TMS320C6x
Les Méthodes et outils de développement
Diagramme Bloque DSK C6713

Architecture selon Hardware : Von Neuman + Harvard

Figure 8 – Architecture de Von Neumann et de Harvard

Pr.Otman CHAKKOR DSP 45 / 136


Introduction
Applications des DSP
Architecture des systèmes up
Virgule fixe ou flottante
Architecture des DSP
Architecture de Von Neumann et de Harvard
Architectue TMS320C6x
Les Méthodes et outils de développement
Diagramme Bloque DSK C6713

Architecture von Neumann :


L’architecture dite de  Von Neumann  est une organisation des
composants telle que le bus qui relie la mémoire programme et la
mémoire de donnée au microprocesseur soit le même.
En général, il n’existe qu’une mémoire de programme contenant à
la fois les instructions et les données placées à la suite les unes des
autres.
Ce bus sert alors alternativement à transmettre les instructions et les
données.
Ce système de bus unique impose aux deux mémoires de se partager
pendant l’exécution du programme.
En effet, pour exécuter une instruction il faut tout d’abord aller cher-
cher le code instruction situé dans la mémoire programme puis les
données sur lesquelles elle agit (celles ci se trouvant dans la mémoire
de données )
Pr.Otman CHAKKOR DSP 46 / 136
Introduction
Applications des DSP
Architecture des systèmes up
Virgule fixe ou flottante
Architecture des DSP
Architecture de Von Neumann et de Harvard
Architectue TMS320C6x
Les Méthodes et outils de développement
Diagramme Bloque DSK C6713

Architecture Harvard :

L’architecture Harvard permet deux


lectures simultanées.La plupart des DSP
Deux bus de données et deux
utilisent l’architecture Harvard.
bus d’adresse
Intéressante dans le cas des applications
streaming data

Permet une plus grande bande pas-


sante pour les données (nombre de
données lues ou écrites par cycles impor-
tantes) Comme la lecture des données
Figure 9 – Architecture Har-
vard et la lectures des instructions se font
sur des bus différents, il y a moins d’in-
terférence, une plus grande prédictibilité
au niveau de la largeur de bande.
Pr.Otman CHAKKOR DSP 47 / 136
Introduction
Applications des DSP
Architecture des systèmes up
Virgule fixe ou flottante
Architecture des DSP
Architecture de Von Neumann et de Harvard
Architectue TMS320C6x
Les Méthodes et outils de développement
Diagramme Bloque DSK C6713

Architectures CISC et RISC

CISC (Complex Instruction Set Code) :un processeur dont le jeu


d’instructions possède les propriétés suivantes :
Il contient beaucoup de classes d’instructions différentes.
Il contient beaucoup de type d’instructions différentes complexes et
de taille variable.
Il se sert de beaucoup de registres spécialisés et de peu de registres
généraux.
RISC (Reduced Instruction Set Code) :
Le nombre de classes d’instructions différentes est réduit par rapport
à un CISC.
Les instructions sont de taille fixe.
Il se sert de beaucoup de registres généraux.
Il fonctionne avec un pipe-line.

Pr.Otman CHAKKOR DSP 48 / 136


Introduction
Applications des DSP
Architecture des systèmes up
Virgule fixe ou flottante
Architecture des DSP
Architecture de Von Neumann et de Harvard
Architectue TMS320C6x
Les Méthodes et outils de développement
Diagramme Bloque DSK C6713

Programme = ensemble des instructions pour réaliser une fonction


bien définie.(on doit utiliser l’outil fourni par le constructeur
Assembleur : l’assembleur génère le code machine à partir des ins-
tructions. (Exemple : ADD A,B = 111000100101010001001) facile de
comprendre l’instruction ADD qu’avec les 0 et 1.
Langage de haut niveau : ensemble d’instruction étendue, lent (par
rapport au langage assembleur), facile à programmer.
simulateurs : software d’implémentation des programmes sur DSP,
exécutés sur les PC, en simulant presque tous les fonctionnalités des
DSP, utilisés pour analyser la faisabilité de la conception avant d’at-
taquer la partie hardware.
Emulateurs : nous permet de contrôler et debugger directement le
résultat des instructions en exécutant sur les DSP.
Debugger : ......

Pr.Otman CHAKKOR DSP 49 / 136


Introduction
Applications des DSP
Architecture des systèmes up
Virgule fixe ou flottante
Architecture des DSP
Architecture de Von Neumann et de Harvard
Architectue TMS320C6x
Les Méthodes et outils de développement
Diagramme Bloque DSK C6713

DSP : Code Composer Studio


(simulator and EVM versions)
Algorithm implementation in
C/Assembler
Debugging in conjunction with
Matlab implementation
Profiling your code

Pr.Otman CHAKKOR DSP 50 / 136


Introduction
Applications des DSP
Architecture des systèmes up
Virgule fixe ou flottante
Architecture des DSP
Architecture de Von Neumann et de Harvard
Architectue TMS320C6x
Les Méthodes et outils de développement
Diagramme Bloque DSK C6713

Matlab’s Embedded IDE Link

Avant, on utilisait Matlab pour la conception des filtres FIR.


Malab’s Link pour Code Composer Studio (appelé : Matlab’s
Embedded IDE Link est un Toolbox permettant une intéraction
(intégration) entre Matlab et CCS.

Pr.Otman CHAKKOR DSP 51 / 136


Introduction
Applications des DSP
Architecture des systèmes up
Virgule fixe ou flottante
Architecture des DSP
Architecture de Von Neumann et de Harvard
Architectue TMS320C6x
Les Méthodes et outils de développement
Diagramme Bloque DSK C6713

Langage de programmation

Figure 10 – Programming Alternatives

Pr.Otman CHAKKOR DSP 52 / 136


Introduction
Applications des DSP
Architecture des systèmes up
Virgule fixe ou flottante
Architecture des DSP
Architecture de Von Neumann et de Harvard
Architectue TMS320C6x
Les Méthodes et outils de développement
Diagramme Bloque DSK C6713

Langages de programmation

Compiler (compilateur)(Le Compilateur C accepte comme entrée le


code source en C et génère un code source en assembleur).
Assembler (assembleur)– (Convertit le code source assembleur vers
un fichier de code langage machine objet).
Linker (Editeur de lien) – (Combine les fichiers objets vers un seul
fichier objet exécutable).

Pr.Otman CHAKKOR DSP 53 / 136


Introduction
Applications des DSP
Architecture des systèmes up
Virgule fixe ou flottante
Architecture des DSP
Architecture de Von Neumann et de Harvard
Architectue TMS320C6x
Les Méthodes et outils de développement
Diagramme Bloque DSK C6713

C6X Software Tools

Pr.Otman CHAKKOR DSP 54 / 136


Registres CPU
Introduction Structure des programmes
Architecture des systèmes up Jeu d’instructions
Architecture des DSP Mémoire
Architectue TMS320C6x Bus
Diagramme Bloque DSK C6713 Modes d’adressage
pipelines

Architecture générale Microprocesseur

Il a pour mission de rechercher les instructions qui sont en mémoire,


de les décoder et de les exécuter.
il est composée de plusieurs éléments internes : CPU = UAL + UC
+ registres CPU
Unité arithmétique et logique (UAL) : chargée des calculs +,-,*,/,
AND, OR, NOT
Unité de commande chargée de traduire puis d’exécuter les com-
mandes : Son rôle est d’aller chercher une information en mémoire
centrale, d’analyser cette instruction (décodage), d’exécuter cette ins-
truction, de localiser l’instruction suivante.

Pr.Otman CHAKKOR DSP 55 / 136


Registres CPU
Introduction Structure des programmes
Architecture des systèmes up Jeu d’instructions
Architecture des DSP Mémoire
Architectue TMS320C6x Bus
Diagramme Bloque DSK C6713 Modes d’adressage
pipelines

Structure interne du CPU

Déf :
Un microprocesseur est construit autour de deux éléments principaux :
1 Une unité de commande : appelé aussi Unité de commande et de
contrôle (UCC)
2 Une unité de traitement.
associés à des registres chargées de stocker les différentes informations
à traiter. Ces trois éléments sont reliés entre eux par des bus interne per-
mettant les échanges d’informations

Pr.Otman CHAKKOR DSP 56 / 136


Registres CPU
Introduction Structure des programmes
Architecture des systèmes up Jeu d’instructions
Architecture des DSP Mémoire
Architectue TMS320C6x Bus
Diagramme Bloque DSK C6713 Modes d’adressage
pipelines

Unité de commande

Elle permet de séquencer le déroulement des instructions. Elle


effectue la recherche en mémoire de l’instruction.
Comme chaque instruction est codée sous forme binaire, elle en as-
sure le décodage pour enfin réaliser son exécution puis effectue la
préparation de l’instruction suivante. Elle est composée de :
le compteur de programme (PC) :
le registre d’instruction : Contient l’instruction en cours de traite-
ment.
le décodeur d’instruction.
Le séquenceur :Il organise l’exécution des instructions au rythme
d’une horloge.

Pr.Otman CHAKKOR DSP 57 / 136


Registres CPU
Introduction Structure des programmes
Architecture des systèmes up Jeu d’instructions
Architecture des DSP Mémoire
Architectue TMS320C6x Bus
Diagramme Bloque DSK C6713 Modes d’adressage
pipelines

Unité de Traitement

C’est le cœur du up. Elle regroupe les circuits qui assurent les trai-
tements nécessaires à l’exécution des instructions. L’unité de traite-
ment est composé de trois principaux unités d’exécution
1 l’unité arithmétique et logique (UAL).
1 Unité arithmétique et logique (UAL)
2 Unité de calcul en virgule flottante.
3 Unité multimédia .
2 l’unité de calcul en virgule flottante.
3 l’unité multimédia pour des raisons d’optimisation des performances
des microprocesseurs.

Pr.Otman CHAKKOR DSP 58 / 136


Registres CPU
Introduction Structure des programmes
Architecture des systèmes up Jeu d’instructions
Architecture des DSP Mémoire
Architectue TMS320C6x Bus
Diagramme Bloque DSK C6713 Modes d’adressage
pipelines

Unité de Traitement
l’unité arithmétique et logique (UAL)

Elle est composée de circuits logiques tels que les additionneurs,


soustracteurs, comparateurs logiques. . . etc.afin d’effectuer les calculs et
les opérations logiques des différents instructions à exécuter.

Figure 11 – Schéma de l’unité arithmétique et logique (ses entrées et ses


sorties)
Pr.Otman CHAKKOR DSP 59 / 136
Registres CPU
Introduction Structure des programmes
Architecture des systèmes up Jeu d’instructions
Architecture des DSP Mémoire
Architectue TMS320C6x Bus
Diagramme Bloque DSK C6713 Modes d’adressage
pipelines

Unité de Traitement
Unité de calcul en virgule flottante

C’est une unité qui est capable de réaliser les opérations de calcul pour
les réels ainsi que les calculs mathématiques et scientifiques complexes.

Pr.Otman CHAKKOR DSP 60 / 136


Registres CPU
Introduction Structure des programmes
Architecture des systèmes up Jeu d’instructions
Architecture des DSP Mémoire
Architectue TMS320C6x Bus
Diagramme Bloque DSK C6713 Modes d’adressage
pipelines

Unité de Traitement
Unité multimédia

C’est une unité qui est chargée d’accélérer l’exécution des programmes
multimédia comportant des vidéos, du son, graphisme en 3D etc.. . .

Pr.Otman CHAKKOR DSP 61 / 136


Registres CPU
Introduction Structure des programmes
Architecture des systèmes up Jeu d’instructions
Architecture des DSP Mémoire
Architectue TMS320C6x Bus
Diagramme Bloque DSK C6713 Modes d’adressage
pipelines

Autres unités du microprocesseur


Unité de mémoire cache

La mémoire cache : Optimiser les accès aux différentes instructions


et données que le up a besoin lors de l’exécution des programmes.
La tâche de cette unité est de mettre dans la mémoire cache qui est
beaucoup plus rapide que la mémoire centrale, les informations les
plus utilisées et que le up a besoin fréquemment.
L’accès aux informations sera donc plus rapide et l’exécution
des programmes est plus optimale.

Pr.Otman CHAKKOR DSP 62 / 136


Registres CPU
Introduction Structure des programmes
Architecture des systèmes up Jeu d’instructions
Architecture des DSP Mémoire
Architectue TMS320C6x Bus
Diagramme Bloque DSK C6713 Modes d’adressage
pipelines

Autres unités du microprocesseur


Unité d’interface de bus

Gère les échanges à travers le bus entre up et les autres composantes.


si le up a besoin par exemple d’une donnée en mémoire vive, l’unité
d’interface de bus se charge de la ramener en contrôlant l’accès
mémoire et en mettant le résultat sur le bus de données qui va l’ache-
miner vers le registre de données.

Pr.Otman CHAKKOR DSP 63 / 136


Registres CPU
Introduction Structure des programmes
Architecture des systèmes up Jeu d’instructions
Architecture des DSP Mémoire
Architectue TMS320C6x Bus
Diagramme Bloque DSK C6713 Modes d’adressage
pipelines

Autres unités du microprocesseur


Unité de décodage

Elle décompose et analyse l’instruction se trouvant dans le registre


d’instructions.

Pr.Otman CHAKKOR DSP 64 / 136


Registres CPU
Introduction Structure des programmes
Architecture des systèmes up Jeu d’instructions
Architecture des DSP Mémoire
Architectue TMS320C6x Bus
Diagramme Bloque DSK C6713 Modes d’adressage
pipelines

Autres unités du microprocesseur


Les registres du microprocesseur

Un registre est une zone mémoire à l’intérieur du microproces-


seur de faible taille, qui permet de mémoriser des mot mémoires
ou des adresses d’une façon temporaire lors de l’exécution des
instructions.
Les registres généraux.
Les registres d’adresses (pointeurs) :Ce sont des registres connectés
sur le bus adresses, leur contenu est une adresse en mémoire cen-
trale.

Pr.Otman CHAKKOR DSP 65 / 136


Registres CPU
Introduction Structure des programmes
Architecture des systèmes up Jeu d’instructions
Architecture des DSP Mémoire
Architectue TMS320C6x Bus
Diagramme Bloque DSK C6713 Modes d’adressage
pipelines

Registres CPU

Les registres CPU : cellules mémoire interne au processeur (ra-


pide) :
Compteur ordinal (PC) pointant à l’adresse mémoire où se trouve la
prochaine instruction à rechercher et exécuter. Après chaque recherche
d’instruction, le compteur ordinal est incrémenté afin de pointer à la
prochaine instruction
Registre d’instruction qui contient le code de l’instruction (code
opératoire) recherchée en mémoire .
Registres de données permettent de stocker les opérandes nécessaires
aux instructions de calcul ainsi que les résultats lors d’opérations lo-
giques et arithmétiques .
Registres d’adresses permettent de stocker les adresses d’opérandes
qui se trouvent en mémoire.

Pr.Otman CHAKKOR DSP 66 / 136


Registres CPU
Introduction Structure des programmes
Architecture des systèmes up Jeu d’instructions
Architecture des DSP Mémoire
Architectue TMS320C6x Bus
Diagramme Bloque DSK C6713 Modes d’adressage
pipelines

Registres CPU

Figure 12 – Architecture générale microprocesseur

Pr.Otman CHAKKOR DSP 67 / 136


Registres CPU
Introduction Structure des programmes
Architecture des systèmes up Jeu d’instructions
Architecture des DSP Mémoire
Architectue TMS320C6x Bus
Diagramme Bloque DSK C6713 Modes d’adressage
pipelines

Structure des programmes


Un programme : ensemble d’instructions écrits sous forme de séquence
spécifiée d’un processeur pour accomplir une tâche bien définie.
Une instruction est définie comme étant une tâche accomplie (comme
une addition) réalisé par un processeur. Chaque microprocesseur dis-
pose de son propre ensemble d’instructions.
Pour que le up puisse “comprendre” l’instruction, les instructions
doivent être envoyées (fournies) sous forme binaire, c.à.d. langage
machine.
Langage Assembleur : est un langage de symbole, qui représente les
instructions sous forme des mnémoniques-court compréhensible chez
l’utilisateur langage . Par exemple : dans le langage assembleur du
PIC, une opération nulle ou “no operation” est représentée par la
mnémonique “NOP’.
Pr.Otman CHAKKOR DSP 68 / 136
Registres CPU
Introduction Structure des programmes
Architecture des systèmes up Jeu d’instructions
Architecture des DSP Mémoire
Architectue TMS320C6x Bus
Diagramme Bloque DSK C6713 Modes d’adressage
pipelines

Structure des programmes

Un assembleur est un outil convertissant un programme de code source


en assembleur en fichier objet de langage machine.

Figure 13 – Assembleur

Pr.Otman CHAKKOR DSP 69 / 136


Registres CPU
Introduction Structure des programmes
Architecture des systèmes up Jeu d’instructions
Architecture des DSP Mémoire
Architectue TMS320C6x Bus
Diagramme Bloque DSK C6713 Modes d’adressage
pipelines

Structure des programmes

Les Langage assembleur et Machine sont considérés comme des lan-


gages de bas niveau. Il y a une correspondance entre les mnémoniques
de langage de l’assembleur et les instructions de code machine.
Les Programmes écris avec ces langages sont généralement rapide par
rapport aux langage de programmation de haut niveau (C, Pascal and
BASIC )(mais ils sont spécifique pour chaque type de processeur).
Programme (source code) sont convertis par les compilateurs aux
langage machine compatible avec le microprocesseur en question. Le
code finale (résultat) est appelé code objet.
Chaque microprocesseur nécessite un compilateur.
Un avantage des langages de haut niveau est plus facile à “debug-
ger”

Pr.Otman CHAKKOR DSP 70 / 136


Registres CPU
Introduction Structure des programmes
Architecture des systèmes up Jeu d’instructions
Architecture des DSP Mémoire
Architectue TMS320C6x Bus
Diagramme Bloque DSK C6713 Modes d’adressage
pipelines

Structure des programmes


Une instruction est une opération élémentaire que le up peut ac-
complir. Le programme est une suite d’instructions, stockées dans la
mémoire programme.
Les instructions sont divisées en deux parties distinctes :
le code opération qui représente l’action que le microprocesseur
doit accomplir.
le code opérande qui correspond au(x) paramètre(s) nécessaire(s) à
cette action.
Les instructions contenues dans la mémoire programme sont une
suite de mots binaires décodés puis exécutés par le microprocesseur,
appelée langage machine.
Ces codes sont difficilement compréhensibles par le programmeur.
C’est la raison pour laquelle ils sont traduits en différents mots faisant
partis du langage assembleur.
Pr.Otman CHAKKOR DSP 71 / 136
Registres CPU
Introduction Structure des programmes
Architecture des systèmes up Jeu d’instructions
Architecture des DSP Mémoire
Architectue TMS320C6x Bus
Diagramme Bloque DSK C6713 Modes d’adressage
pipelines

Structure des programmes

Le codage d’une instruction s’effectue de la façon suivante :

Figure 14 – codage d’une instruction

Pr.Otman CHAKKOR DSP 72 / 136


Registres CPU
Introduction Structure des programmes
Architecture des systèmes up Jeu d’instructions
Architecture des DSP Mémoire
Architectue TMS320C6x Bus
Diagramme Bloque DSK C6713 Modes d’adressage
pipelines

Jeu d’instructions

Déf
Le jeu d’instruction d’un processeur est l’ensemble des instructions
que celui ci peut exécuter. Une instruction peut être simple ou complexe.

Instruction Simple :
1 L’instruction pour ajouter 1 au contenu d’un registre interne au
microprocesseur est une instruction simple.
2 Elle ne fait intervenir qu’un additionneur et tout se passe à l’intérieur
du processeur, aucune information extérieure à celui-ci n’intervient.
3 Il suffit généralement d’un seul cycle d’horloge pour exécuter cette
opération car l’addition est une des instruction les plus simples,
commune à la totalité des processeurs.

Pr.Otman CHAKKOR DSP 73 / 136


Registres CPU
Introduction Structure des programmes
Architecture des systèmes up Jeu d’instructions
Architecture des DSP Mémoire
Architectue TMS320C6x Bus
Diagramme Bloque DSK C6713 Modes d’adressage
pipelines

Jeu d’instructions

Instruction Complexe :
1 L’instruction pour incrémenter le contenu d’une adresse mémoire
est une instruction complexe car elle nécessite plusieurs étapes.
2 Tout d’abord, il faut agir sur un élément externe au microproces-
seur : la cellule correspondant à l’adresse mémoire indiquée.
3 Cette manipulation implique le transfert de son contenu dans un
registre interne au processeur.
4 Par la suite, l’addition de 1 au registre, puis l’écriture du résultat à
l’adresse initiale doivent être effectuées.
5 Il s’agit là d’un exemple basique d’instruction complexe qui pren-
dra, dans la plupart des cas, plus d’un cycle d’horloge.

Pr.Otman CHAKKOR DSP 74 / 136


Registres CPU
Introduction Structure des programmes
Architecture des systèmes up Jeu d’instructions
Architecture des DSP Mémoire
Architectue TMS320C6x Bus
Diagramme Bloque DSK C6713 Modes d’adressage
pipelines

Mémoire

ROM : Mémoire contenant les programmes de contrôle du système


et de traitement du signal.
RAM : Mémoire vive contenant les données en entrée en sortie et
en cours de traitement.
Comm. : Organe de communication avec un éventuel système ex-
terne.
Horloge, timers : horloge du processeur, horloge d’acquisition, hor-
loge de communication....

Pr.Otman CHAKKOR DSP 75 / 136


Registres CPU
Introduction Structure des programmes
Architecture des systèmes up Jeu d’instructions
Architecture des DSP Mémoire
Architectue TMS320C6x Bus
Diagramme Bloque DSK C6713 Modes d’adressage
pipelines

Classification des mémoires :

RAM :Random Access Memory (mémoire à accès aléatoire), perdent


l’information lorsque’elles ne sont pas alimentées.
ROM : Read Only Memory,contient le programme à exécuter.(l’application
doit démarrer dès la mise sous tension)
OTP : One Time Programmable (OTP)) est un type de mémoire
mort.
EPROM : Erasable-Programable Read Only Memory :Mémoires pro-
grammable électriquement et effaçables par UV donc réutilisables.
L’effacement par UV (environ 15 mn) et l’écriture (qlq mn) sont des
opérations relativement longues
EEPROM : Electrically Erasable-Programable Read Only Memory.
UVPROM : EPROM effaçable par une exposition aux ultraviolet U.V

Pr.Otman CHAKKOR DSP 76 / 136


Registres CPU
Introduction Structure des programmes
Architecture des systèmes up Jeu d’instructions
Architecture des DSP Mémoire
Architectue TMS320C6x Bus
Diagramme Bloque DSK C6713 Modes d’adressage
pipelines

Figure 15 – Mémoires UV-PROM


Pr.Otman CHAKKOR DSP 77 / 136
Registres CPU
Introduction Structure des programmes
Architecture des systèmes up Jeu d’instructions
Architecture des DSP Mémoire
Architectue TMS320C6x Bus
Diagramme Bloque DSK C6713 Modes d’adressage
pipelines

Mémoire Flash

FLASH : même fcnt que la mémoire EEPROM, mais avec une vitesse
supérieure :elles sont plus rapides que les mémoires E2PROM (en
terme d’effacement et de programmation) mais ne permettent que
l’effacement total de la mémoire.
Les mémoires flash sont utilisées dans les PC (BIOS), ou dans
les systèmes embarqués pour mémoriser les programmes impor-
tants.

Pr.Otman CHAKKOR DSP 78 / 136


Registres CPU
Introduction Structure des programmes
Architecture des systèmes up Jeu d’instructions
Architecture des DSP Mémoire
Architectue TMS320C6x Bus
Diagramme Bloque DSK C6713 Modes d’adressage
pipelines

Bus
On distingue 3 types de bus :
1 Le bus d’adresse :le nombre des lignes dépende de la taille de mémoire.
Ce bus est unidirectionnel.Sert à émettre les adresses entres CPU et
la mémoire tandis que le bus de donnée sert à relier les différents
bloques.
2 Le bus de donnée : le nombre des lignes dépend de la ”longueur” des
données (8 bits par exemple).ce bus est bidirectionnel, c’est-à-dire
qu’une information peut être lue par l’unité de traitement des infor-
mations, être écrite, l’information étant à destination de la mémoire
active ou d’un port.
3 Le bus de contrôle :Ce bus comporte plusieurs liaisons physiques.
Contrairement aux deux autres bus, chaque liaison possède une fonc-
tion particulière.
Pr.Otman CHAKKOR DSP 79 / 136
Registres CPU
Introduction Structure des programmes
Architecture des systèmes up Jeu d’instructions
Architecture des DSP Mémoire
Architectue TMS320C6x Bus
Diagramme Bloque DSK C6713 Modes d’adressage
pipelines

Bus

Figure 16 – Bus

Pr.Otman CHAKKOR DSP 80 / 136


Registres CPU
Introduction Structure des programmes
Architecture des systèmes up Jeu d’instructions
Architecture des DSP Mémoire
Architectue TMS320C6x Bus
Diagramme Bloque DSK C6713 Modes d’adressage
pipelines

Modes d’adressage

Déf
Les instructions utilisent toutes une manière particulière d’accéder
aux informations qu’elles manipulent.
Ces méthodes sont appelées  modes d’adressage .


Donc c’est la manière dont la donnée est spécifiée dans une instruc-
tion.

Pr.Otman CHAKKOR DSP 81 / 136


Registres CPU
Introduction Structure des programmes
Architecture des systèmes up Jeu d’instructions
Architecture des DSP Mémoire
Architectue TMS320C6x Bus
Diagramme Bloque DSK C6713 Modes d’adressage
pipelines

Modes d’adressage

1 L’adressage littéral ou immédiat : La donnée est contenue dans


l’instruction :
Exemple : movlw 0x55 ; charger la valeur 0x55 dans W.
2 L’adressage direct : La donnée est contenue dans un registre :
Exemple : movf 0x2B,0 ; Transfert dans W la valeur contenue à l’adresse
0x2B.
3 L’adressage indirect : L’adresse de la donnée est contenue dans
un pointeur. (Dans les PIC, un seul pointeur est disponible pour
l’adressage indirect : FSR)

Pr.Otman CHAKKOR DSP 82 / 136


Registres CPU
Introduction Structure des programmes
Architecture des systèmes up Jeu d’instructions
Architecture des DSP Mémoire
Architectue TMS320C6x Bus
Diagramme Bloque DSK C6713 Modes d’adressage
pipelines

Utilisation de pipelines
L’exécution d’une instruction passe par plusieurs étapes, exécutées
d’une manière séquentielle :
Lecture en mémoire de l’instruction à exécuter.
Décodage de l’instruction et lecture en mémoire de l’opérande.
Exécution de l’instruction proprement dite.

Figure 17 – cycle d’exécution de l’instruction

Pr.Otman CHAKKOR DSP 83 / 136


Registres CPU
Introduction Structure des programmes
Architecture des systèmes up Jeu d’instructions
Architecture des DSP Mémoire
Architectue TMS320C6x Bus
Diagramme Bloque DSK C6713 Modes d’adressage
pipelines

Utilisation de pipelines
Pendant l’exécution d’une instruction (”Execute”) par le deuxième
(dernier) étage du pipeline, le premier étage du pipeline procède déjà à
l’acquisition de l’instruction suivante (”Fetch”= aller chercher).

Figure 18 – lec, dec, exec : 1 instruction pour 3 cycles

Pr.Otman CHAKKOR DSP 84 / 136


Registres CPU
Introduction Structure des programmes
Architecture des systèmes up Jeu d’instructions
Architecture des DSP Mémoire
Architectue TMS320C6x Bus
Diagramme Bloque DSK C6713 Modes d’adressage
pipelines

Pipeline vs non-pipelined

Figure 19 – Pipeline vs non-pipelined

Pr.Otman CHAKKOR DSP 85 / 136


Registres CPU
Introduction Structure des programmes
Architecture des systèmes up Jeu d’instructions
Architecture des DSP Mémoire
Architectue TMS320C6x Bus
Diagramme Bloque DSK C6713 Modes d’adressage
pipelines

Utilisation de pipelines

Figure 20 – 1ere instruction :3 cycles,2 éme instruction :1 cycle

Pr.Otman CHAKKOR DSP 86 / 136


Introduction
Architecture des systèmes up Classification des DSP
Architecture des DSP Critères de performance
Architectue TMS320C6x Familles DSP de TI
Diagramme Bloque DSK C6713

Architecture des DSP

Mémoire
converssion A/D , D/A
Ports
-Les DSP peuvent aussi contenir les
éléments suivants :
Unité Arithmétique centrale :
Unité arithmétique auxiliaire :
Figure 21 – Architecture typique du
Ports série :
DSP

Pr.Otman CHAKKOR DSP 87 / 136


Introduction
Architecture des systèmes up Classification des DSP
Architecture des DSP Critères de performance
Architectue TMS320C6x Familles DSP de TI
Diagramme Bloque DSK C6713

Classification des DSP

Virgule fixe ou flottante : Un 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 données sont à virgule flottante pour des DSP de 32 bits, pra-
tiquement, lorsque les données sont sur 16 bits, le DSP est à virgule
fixe. C’est également le cas pour la famille DSP56000 à 24 bits de
Motorola.

Pr.Otman CHAKKOR DSP 88 / 136


Introduction
Architecture des systèmes up Classification des DSP
Architecture des DSP Critères de performance
Architectue TMS320C6x Familles DSP de TI
Diagramme Bloque DSK C6713

Critères de performance

MFLOPS (Million Floating-Point Operations Per Second) : Mesure


le nombre d’opération à virgule flottantes (multiplication, additions,
soustractions, etc.) que le DSP à virgule flottante peut réaliser en une
seconde. (Uniquement pour les DSP à virgule flottante.)
MIPS (Million Instructions Per Second) :Mesure le nombre des codes
machines (instructions)que le DSP peut effectuer en une seconde.
Bien que cette mesure s’applique à tous les types de DSP, le MFLOPS
est préféré dans le cas d’un DSP à virgule flottante.
Problème : une instruction ne signifie pas la même chose d’une famille
à l’autre.

Pr.Otman CHAKKOR DSP 89 / 136


Introduction
Architecture des systèmes up Classification des DSP
Architecture des DSP Critères de performance
Architectue TMS320C6x Familles DSP de TI
Diagramme Bloque DSK C6713

Critères de performance

MACPS (MAC Par Second) : nombre d’opérations MAC par se-


conde.
MOPS (Million Operations Per Second). Mesure le nombre total
d’opérations que le DSP peut effectuer en une seconde. Par opérations,
il faut comprendre non seulement le traitement des données, mais
également les accès DMA, les transferts de données, les opérations
d’E/S, etc. cette définition mesure donc les performances globales
d’un DSP plutôt que ses seules capacités de calcul.

Pr.Otman CHAKKOR DSP 90 / 136


Introduction
Architecture des systèmes up Classification des DSP
Architecture des DSP Critères de performance
Architectue TMS320C6x Familles DSP de TI
Diagramme Bloque DSK C6713

Familles DSP de TI

Figure 22 – Différentes familles de DSP de TI


Pr.Otman CHAKKOR DSP 91 / 136
Introduction
Architecture des systèmes up Classification des DSP
Architecture des DSP Critères de performance
Architectue TMS320C6x Familles DSP de TI
Diagramme Bloque DSK C6713

TMS320 Family

16-Bit Fixed Point Devices 32-Bit Floating Point De-


vices
C1x
C3x videophones
C2x Fax Machines
C4x Parallel Processing
C2xx Embedded Control
C6x Advanced VLIW Proces-
Voice Processing sor : Wireless Base Stations
C54x Digital Cellular Phones C8x Video Conferencing.

Pr.Otman CHAKKOR DSP 92 / 136


Introduction
Architecture des systèmes up Classification des DSP
Architecture des DSP Critères de performance
Architectue TMS320C6x Familles DSP de TI
Diagramme Bloque DSK C6713

Documentations C6000

Figure 23 – Documentations C6000


Pr.Otman CHAKKOR DSP 93 / 136
Unités fonctionnelles
Fetch and Execute Packets
Pipelining
Introduction
Registres
Architecture des systèmes up
Modes d’adressage
Architecture des DSP
Jeu d’instructions TMS320 C6x
Architectue TMS320C6x
Directives en Assembleur
Diagramme Bloque DSK C6713
Assembleur Linéaire
Timers
Interruption

TMS320C6713 :processeur à virgule flottant, architecture VLIW


(Very-Long-Instruction-Word).
La mémoire interne inclut deux niveaux :
1 Mémoire cache 4 KB de niveau 1 de code (program cache (LP1)).
2 Mémoire cache de donnée de niveau 1 L1D. 256 KB de niveau 2
partagée entre l’espace de donnée et programme (code).

Pr.Otman CHAKKOR DSP 94 / 136


Unités fonctionnelles
Fetch and Execute Packets
Pipelining
Introduction
Registres
Architecture des systèmes up
Modes d’adressage
Architecture des DSP
Jeu d’instructions TMS320 C6x
Architectue TMS320C6x
Directives en Assembleur
Diagramme Bloque DSK C6713
Assembleur Linéaire
Timers
Interruption

Architecture TMS320C6x

Pr.Otman CHAKKOR DSP 95 / 136


Unités fonctionnelles
Fetch and Execute Packets
Pipelining
Introduction
Registres
Architecture des systèmes up
Modes d’adressage
Architecture des DSP
Jeu d’instructions TMS320 C6x
Architectue TMS320C6x
Directives en Assembleur
Diagramme Bloque DSK C6713
Assembleur Linéaire
Timers
Interruption

CPU contient 8 unités fonctionnelles indépendantes et deux che-


mins de données A et B.
Chaque chemin a sa propre opérations de multiplication (.M)
pour des opérations arithmétiques (6 ALU) et logiques (.L).

Pr.Otman CHAKKOR DSP 96 / 136


Unités fonctionnelles
Fetch and Execute Packets
Pipelining
Introduction
Registres
Architecture des systèmes up
Modes d’adressage
Architecture des DSP
Jeu d’instructions TMS320 C6x
Architectue TMS320C6x
Directives en Assembleur
Diagramme Bloque DSK C6713
Assembleur Linéaire
Timers
Interruption

Figure 24 – C6000 block diagram

Pr.Otman CHAKKOR DSP 97 / 136


Unités fonctionnelles
Fetch and Execute Packets
Pipelining
Introduction
Registres
Architecture des systèmes up
Modes d’adressage
Architecture des DSP
Jeu d’instructions TMS320 C6x
Architectue TMS320C6x
Directives en Assembleur
Diagramme Bloque DSK C6713
Assembleur Linéaire
Timers
Interruption

Unités fonctionnelles

Chemin de donné A :
Opérations de Multiplications (.M1)
Opérations Logiques et Arithmétiques (.L1)
Branch, manipulation des bit, Opérations arithmétiques (.S1)
Loading/storing et Opérations arithmétiques (.D1)
Chemin de donné B :
Opérations de Multiplications (.M2)
Opérations Logiques et Arithmétiques (.L2)
Branch, manipulation des bit, Opérations arithmétiques (.S2)
Loading/storing et Opérations arithmétiques (.D2)
Tous transferts de données (not program) doit passer par .D1 et
.D2

Pr.Otman CHAKKOR DSP 98 / 136


Unités fonctionnelles
Fetch and Execute Packets
Pipelining
Introduction
Registres
Architecture des systèmes up
Modes d’adressage
Architecture des DSP
Jeu d’instructions TMS320 C6x
Architectue TMS320C6x
Directives en Assembleur
Diagramme Bloque DSK C6713
Assembleur Linéaire
Timers
Interruption

Configurations de mémoires interne

Pr.Otman CHAKKOR DSP 99 / 136


Unités fonctionnelles
Fetch and Execute Packets
Pipelining
Introduction
Registres
Architecture des systèmes up
Modes d’adressage
Architecture des DSP
Jeu d’instructions TMS320 C6x
Architectue TMS320C6x
Directives en Assembleur
Diagramme Bloque DSK C6713
Assembleur Linéaire
Timers
Interruption

Fetch and Execute Packets

L’architecture VELOCITI introduite par TI est dérivée de l’archi-


tecture VLIW (Very Long Instruction Word)
Execute packet (EP) consiste en un groupe des instructions qui
peuvent être exécutés en parallèle durant le même cycle d’hor-
loge.
Le Nombre des EP dans fetch packet (FP) peut être variable
de 1 (avec 8 instructions parallèle) jusqu’à 8 (pas d’instructions FP
parallèle). VLIW a été modifiée pour que plus d’un seul EP être inclue
dans un FP.
l’architecture

Pr.Otman CHAKKOR DSP 100 / 136


Unités fonctionnelles
Fetch and Execute Packets
Pipelining
Introduction
Registres
Architecture des systèmes up
Modes d’adressage
Architecture des DSP
Jeu d’instructions TMS320 C6x
Architectue TMS320C6x
Directives en Assembleur
Diagramme Bloque DSK C6713
Assembleur Linéaire
Timers
Interruption

Fetch and Execute Packets

Figure 26 – One FP with three EPs showing the “p”


bit of each instruction

Figure 25 –

Pr.Otman CHAKKOR DSP 101 / 136


Unités fonctionnelles
Fetch and Execute Packets
Pipelining
Introduction
Registres
Architecture des systèmes up
Modes d’adressage
Architecture des DSP
Jeu d’instructions TMS320 C6x
Architectue TMS320C6x
Directives en Assembleur
Diagramme Bloque DSK C6713
Assembleur Linéaire
Timers
Interruption

Pipelining

Pipelining : caractéristique importante des DSP pour pouvoir exécuter


les instructions en parallèle. (timing)
Il y a trois phases de Pipelinig :
1 Program Fetch (PF) :générer ”fetch address” (F1), envoie l’adresse
au mémoire (F2), attend les données (F3), et lecture ”opcode” de la
mémoire (F4).
2 Decoder (DC) : Décodage consiste de deux phases ; ”dispatching
vers les unités fonctionnels” (D1) et décodage (D2).
3 Executer : consiste de jusqu’à 6 phases (E1 jusqu’à E6) en fonction
de l’instruction.

Pr.Otman CHAKKOR DSP 102 / 136


Unités fonctionnelles
Fetch and Execute Packets
Pipelining
Introduction
Registres
Architecture des systèmes up
Modes d’adressage
Architecture des DSP
Jeu d’instructions TMS320 C6x
Architectue TMS320C6x
Directives en Assembleur
Diagramme Bloque DSK C6713
Assembleur Linéaire
Timers
Interruption

Pipelining
L’étape de program fetch est composée de quatres phases :
[PG] : Generation de l’adresse de programme.
[PS] : Envoie de la direction de programme
[PW] : attente à l’accès à la mémoire.
[PR] : réception du Packet fetch du programme.
L’étape de décodage est composée de deux phases :
[DP] :Envoie de l’instruction (dispatch)
[DC] :Décodage instruction

Figure 27 – Les Phases de Pipeline

Pr.Otman CHAKKOR DSP 103 / 136


Unités fonctionnelles
Fetch and Execute Packets
Pipelining
Introduction
Registres
Architecture des systèmes up
Modes d’adressage
Architecture des DSP
Jeu d’instructions TMS320 C6x
Architectue TMS320C6x
Directives en Assembleur
Diagramme Bloque DSK C6713
Assembleur Linéaire
Timers
Interruption

[PS] : Envoie de la direction de programme.


[PR] : réception du Packet fetch du programme.

Figure 28 – [PR] + [PS]

Pr.Otman CHAKKOR DSP 104 / 136


Unités fonctionnelles
Fetch and Execute Packets
Pipelining
Introduction
Registres
Architecture des systèmes up
Modes d’adressage
Architecture des DSP
Jeu d’instructions TMS320 C6x
Architectue TMS320C6x
Directives en Assembleur
Diagramme Bloque DSK C6713
Assembleur Linéaire
Timers
Interruption

Pipelining

Figure 29 – Phases de Pipeline

Figure 30 – Effets de l’opération de ”Pipelining”

Pr.Otman CHAKKOR DSP 105 / 136


Unités fonctionnelles
Fetch and Execute Packets
Pipelining
Introduction
Registres
Architecture des systèmes up
Modes d’adressage
Architecture des DSP
Jeu d’instructions TMS320 C6x
Architectue TMS320C6x
Directives en Assembleur
Diagramme Bloque DSK C6713
Assembleur Linéaire
Timers
Interruption

Pipelining

L’étape Execution est composée de 6 phases (à point fixes) jusqu’à 10


phases (à point flottant) à cause de retard (lattences) associés aux
instructions suivantes :
Instruction de multiplication, composée de 4 phases à cause d’un
seul retard.
Instruction load, composée de 5 phases à causes de 4 retards (de-
lays)
Instruction branch, composée de 6 phases à cause de 5 retards.

Pr.Otman CHAKKOR DSP 106 / 136


Unités fonctionnelles
Fetch and Execute Packets
Pipelining
Introduction
Registres
Architecture des systèmes up
Modes d’adressage
Architecture des DSP
Jeu d’instructions TMS320 C6x
Architectue TMS320C6x
Directives en Assembleur
Diagramme Bloque DSK C6713
Assembleur Linéaire
Timers
Interruption

Deux sets (ensemble) fichiers de registre, chacun contient 16 re-


gistres, fichier A(A0 · · · A15) , et fichier de registres B (B0· · · B15)
les registres A0,A1,B0,B1 et B2 sont utilisés comme des registres
conditionnelles.
Les Registres A4· · · A7 et B0· · · B4 sont utilisés pour le mode d’adres-
sage circulaire.
Les Registres A0· · · A9 et B0· · · B9 (pas B3) sont des registres tem-
poraires.
qlq soit les registres entres A10· · · A15 et entre B10· · · B15 sont uti-
lisés pour enregistrer et (après une restauration) avant de retourner
de la subroutine.

Pr.Otman CHAKKOR DSP 107 / 136


Unités fonctionnelles
Fetch and Execute Packets
Pipelining
Introduction
Registres
Architecture des systèmes up
Modes d’adressage
Architecture des DSP
Jeu d’instructions TMS320 C6x
Architectue TMS320C6x
Directives en Assembleur
Diagramme Bloque DSK C6713
Assembleur Linéaire
Timers
Interruption

Register Files

Pr.Otman CHAKKOR DSP 108 / 136


Unités fonctionnelles
Fetch and Execute Packets
Pipelining
Introduction
Registres
Architecture des systèmes up
Modes d’adressage
Architecture des DSP
Jeu d’instructions TMS320 C6x
Architectue TMS320C6x
Directives en Assembleur
Diagramme Bloque DSK C6713
Assembleur Linéaire
Timers
Interruption

Registres
C’est 32 registres sont considérés des registres de propos générales.
Plusieurs registres sont aussi utilisés pour le control et les interrup-
tions.
Exemple : le registre de mode d’adressage (AMR) utilisé pour les
registres de l’adressage circulaire et le control des interruptions.

Figure 31 – Address Mode Register (AMR).

Pr.Otman CHAKKOR DSP 109 / 136


Unités fonctionnelles
Fetch and Execute Packets
Pipelining
Introduction
Registres
Architecture des systèmes up
Modes d’adressage
Architecture des DSP
Jeu d’instructions TMS320 C6x
Architectue TMS320C6x
Directives en Assembleur
Diagramme Bloque DSK C6713
Assembleur Linéaire
Timers
Interruption

Modes d’adressage

Les modes d’adressage déterminent comment on peut accéder à la mémoire


(cad comment on peut avoir accès aux données).il y deux types pour l’ar-
chitecture C6713 :
1 Adressage indirect ou linéaire : tous les registres peuvent l’utili-
ser.
2 Adressage Circulaire. ( le plus utilisé) avec les registres de A4-A7
(utilisés par l’ unité .D1) et B4-B7 (utilisé par l’unité .D2).

Pr.Otman CHAKKOR DSP 110 / 136


Unités fonctionnelles
Fetch and Execute Packets
Pipelining
Introduction
Registres
Architecture des systèmes up
Modes d’adressage
Architecture des DSP
Jeu d’instructions TMS320 C6x
Architectue TMS320C6x
Directives en Assembleur
Diagramme Bloque DSK C6713
Assembleur Linéaire
Timers
Interruption

Adressage Indirect
*R le registre R contient l’adresse de la mémoire ou la donnée est
stockée.
*R++(d) le registre R contient l’adresse de la mémoire (localisation).
après avoir utilisé l’adresse mémoire , R sera incrémenté (modifié), de
telle façon à ce que l’adresse courante sera déplacé (incrémentée) par
la valeur de déplacement d : si d=1 (default), la nouvelle adresse
est R+1, ou bien R sera incrémente directement vers la l’adresse
suivante de la mémoire.
*++R(d) l’adresse est pré-incrémentée ou bien décalée par ”d”, de
telle façon à ce que l’adresse courante est R+d.
*+R(d) l’adresse est pré-incrémenté par ”d”, de telle façon à ce que
l’adresse courante est R+d (même pour le cas précédent), cependant,
dans ce cas, R il s’agit de pre-incrementation de R sans modifications
(pas de modification ou mise a jour de R)
Pr.Otman CHAKKOR DSP 111 / 136
Unités fonctionnelles
Fetch and Execute Packets
Pipelining
Introduction
Registres
Architecture des systèmes up
Modes d’adressage
Architecture des DSP
Jeu d’instructions TMS320 C6x
Architectue TMS320C6x
Directives en Assembleur
Diagramme Bloque DSK C6713
Assembleur Linéaire
Timers
Interruption

Adressage Circulaire

Ce type d’adressage , appelé aussi ou adressage modulo est utilisé


pour créer des mémoires buffer circulaires. crée en hardware, très
utilisé par plusieurs algorithmes de DSP.(filtrage numérique ou pour
les algorithmes de corrélation).
le dsp C6x possède de circuit (hardware) spécifique pour utiliser l’adres-
sage circulaire.

Pr.Otman CHAKKOR DSP 112 / 136


Unités fonctionnelles
Fetch and Execute Packets
Pipelining
Introduction
Registres
Architecture des systèmes up
Modes d’adressage
Architecture des DSP
Jeu d’instructions TMS320 C6x
Architectue TMS320C6x
Directives en Assembleur
Diagramme Bloque DSK C6713
Assembleur Linéaire
Timers
Interruption

Adressage Circulaire
Pour illustrer ce mode d’adressage et son intérêt particulier nous al-
lons nous baser sur une des opérations fondamentale du traitement
numérique du signal :filtrage. Considérons un filtre RIF régit par une
équation de récurrence de la forme :
N
X −1
y(n) = ak .x(n − k)
k=0

= a0 x(n) + a1 x(n − 1) + a2 x(n − 2) + · · · + aN −1 .x(n−(N −1))


On suppose que notre filtre doit être implémenté en temps réel. Pour
calculer un échantillon de sortie on doit avoir accès à un certain
nombre d’échantillons d’entrée les plus récents. Si on suppose que
ce filtre est d’ordre 8 c.à.d (8 coefficients : a0 jusqu’à a7 )
Pr.Otman CHAKKOR DSP 113 / 136
Unités fonctionnelles
Fetch and Execute Packets
Pipelining
Introduction
Registres
Architecture des systèmes up
Modes d’adressage
Architecture des DSP
Jeu d’instructions TMS320 C6x
Architectue TMS320C6x
Directives en Assembleur
Diagramme Bloque DSK C6713
Assembleur Linéaire
Timers
Interruption

Adressage Circulaire
cella implique que l’on a besoins d’avoir les 8 échantillons d’entrée
les plus récents(x[n], x[n − 1], x[n − 2], · · · x[n − 7])pour produire
un échantillon en sortie ; ces 8 échantillons doivent être stockés en
mémoire et mis à jour chaque fois qu’un nouvel échantillon est acquis.
C’est là le principe de l’adressage circulaire (ou adressage modulo)

Figure 32 – L’adressage modulo : à gauche l’état du buffer à l’instant n


à droite à l’instant n + 1 (après un nouvel échantillon)
Pr.Otman CHAKKOR DSP 114 / 136
Unités fonctionnelles
Fetch and Execute Packets
Pipelining
Introduction
Registres
Architecture des systèmes up
Modes d’adressage
Architecture des DSP
Jeu d’instructions TMS320 C6x
Architectue TMS320C6x
Directives en Assembleur
Diagramme Bloque DSK C6713
Assembleur Linéaire
Timers
Interruption

Jeux d’instruction TMS320 C6x, Assembleur


Le format du code assembleur est représenté sous forme :
Label || [condition ] Instruction Unit Operands ; commentaire
Label : (optionnel) ; représente une adresse ou localisation dans la
mémoire, qui contient une instruction ou donnée. (lettre ou ( ) suivie
d’une lettre)
|| : si l’instruction est en train de s’exécuter en parallèle par rapport
à l’instruction précédente.
[ ] : ce champs est optionnel, pour que l’instruction associée soit condi-
tionnelle : 5 registres conditionnels sont utilisés A1,A2,B0,B1 et
B2. toutes les instructions dans C6x peut être conditionnelle (exécutée).
Exemple :
[A2] : Exécution de l’instruction associée si A2 6=0
[!A2] : Exécution de l’instruction associée si A2 = 0

Pr.Otman CHAKKOR DSP 115 / 136


Unités fonctionnelles
Fetch and Execute Packets
Pipelining
Introduction
Registres
Architecture des systèmes up
Modes d’adressage
Architecture des DSP
Jeu d’instructions TMS320 C6x
Architectue TMS320C6x
Directives en Assembleur
Diagramme Bloque DSK C6713
Assembleur Linéaire
Timers
Interruption

Jeu d’instructions TMS320 C6x, Assembleur

Le code en assembleur est représenté selon les champs suivants :


Label || [ condition] Instruction Unit Operands ; commen-
taire
Toutes les instructions de C6X peuvent être conditionnels avec les
registres A1,A2,B0,B1 et B2 en déterminant quand le registre condi-
tionnel est égale à zéro.
Le champs Instruction peut être soit :
Mnémonique : Instruction actuelle utilisé (en exécution)
Directive Assembleur : commande assembleur : .word valeur : qui
réserve 32 bits dans la mémoire et le remplie par la valeur utilisée.
Le champs Unités : un parmi 8 unité de CPU (optionel)

Pr.Otman CHAKKOR DSP 116 / 136


Unités fonctionnelles
Fetch and Execute Packets
Pipelining
Introduction
Registres
Architecture des systèmes up
Modes d’adressage
Architecture des DSP
Jeu d’instructions TMS320 C6x
Architectue TMS320C6x
Directives en Assembleur
Diagramme Bloque DSK C6713
Assembleur Linéaire
Timers
Interruption

Addition,Soustraction, Multiplication

ADD .L1 A3,A7,A7 ; A3+A7 --> A7


SUB .S1 A1,1,A1 ; A1= A1 - 1;

MPY .M2 A7,B7,B6 ; multiplication de 16LSB de


A7*B7 -->B6
|| MPYH .M1 A7,B7,A6 ; multiplication de 16 MSB de
A7*B7 --> A6.

Pr.Otman CHAKKOR DSP 117 / 136


Unités fonctionnelles
Fetch and Execute Packets
Pipelining
Introduction
Registres
Architecture des systèmes up
Modes d’adressage
Architecture des DSP
Jeu d’instructions TMS320 C6x
Architectue TMS320C6x
Directives en Assembleur
Diagramme Bloque DSK C6713
Assembleur Linéaire
Timers
Interruption

Load/store

LDH .D2 *B2++,B7 ; load(B2) =⇒ B7 , incrémenter B2


|| LDH .D1 *A2++,A7 ; load(A2) =⇒ A7, incrémenter A2
Charger dans B7 (demi-mot) (16 bits) dont l’adresse dans la mémoire
est donnée/pointée par B2. Ensuite, le registre B2 est incrémenté vers
la prochaine adresse de la mémoire (vers le haut).
En parallèle, (par le mode d’adressage indirect) load dans A7 le contenu
de la mémoire dont l’adresse est donnée par A2, Ensuite l’adresse de
registre A2 est vers la prochaine adresse de la mémoire (vers le haut)
.
Remarque : L’instruction LDW charge le mot complet 32 bits en
utilisant les deux chemins A et B.

Pr.Otman CHAKKOR DSP 118 / 136


Unités fonctionnelles
Fetch and Execute Packets
Pipelining
Introduction
Registres
Architecture des systèmes up
Modes d’adressage
Architecture des DSP
Jeu d’instructions TMS320 C6x
Architectue TMS320C6x
Directives en Assembleur
Diagramme Bloque DSK C6713
Assembleur Linéaire
Timers
Interruption

Branch / Move

Loop MVKL .S1 x,A4 ; move 16LSBs of x adress --> A4


MVKH .S1 x,A4 ; move 16MSBs of x adress --> A4
. (;" x " contient maintenant adresse complete de
;32 bits)
.
.
SUB .S1 A1,1,A1 ; décrément A1 (le registre A1
;est utilisé comme compteur de la boucle, après sa
;décrémentation avec SUB, on passe a le tester)
[A1] B .S2 Loop ; branch to Loop if A1 # 0
NOP 5 ; fivre no-operation instructions.
STW .D1 A3,*A7 ; sauvegarde (store) A3 dans (A7)

Pr.Otman CHAKKOR DSP 119 / 136


Unités fonctionnelles
Fetch and Execute Packets
Pipelining
Introduction
Registres
Architecture des systèmes up
Modes d’adressage
Architecture des DSP
Jeu d’instructions TMS320 C6x
Architectue TMS320C6x
Directives en Assembleur
Diagramme Bloque DSK C6713
Assembleur Linéaire
Timers
Interruption

Load /Store

LDH .D2 *B2++,B7 ; load (B2)--> B7, incrémente B2


|| LDH .D1 *A2++,A7 ; load (A2)--> A7, incrémente A2

; charge dans B7 le demi-mot (16 bits) dont l’adresse est


spécifiée/pointée par B2.
Après, le registre B2 est incrémenté (postincrementé)
pour pointer vers l’adresse de mémoire juste supérieure.

En parallèle, autre instruction de mode d’adressage indirecte


charge (load) dans A7 le contenu de la mémoire dont l’adresse
est spécifiée par A2, après A2 est incrementé pour pointer vers
l’adresse de mémoire juste supérieure.

Pr.Otman CHAKKOR DSP 120 / 136


Unités fonctionnelles
Fetch and Execute Packets
Pipelining
Introduction
Registres
Architecture des systèmes up
Modes d’adressage
Architecture des DSP
Jeu d’instructions TMS320 C6x
Architectue TMS320C6x
Directives en Assembleur
Diagramme Bloque DSK C6713
Assembleur Linéaire
Timers
Interruption

Load /Store

Remarque : L’instruction LDW charge le mot complet (32 bits),


dans ce cas deuc chemins ” .D1 et D2 ” doivent être utiliser pour
charger les données de la mémoire vers les registres
L’instruction LDWW charge deux double-mots (32 bits) simultanément
en utilisant registres dans les deux coté A et B.
L’instruction LDW stocke le mot de 32 bits A1 dans la mémoire
dont l’adresse est spécifiée par A4 décalé de 20 mots de 32 bits (80
bytes). L’adresse de registre A4 est preincrementée avec un décalage
(offset), mais elle n’est pas modifié (++ est utisié si A4 sera modifié).

Pr.Otman CHAKKOR DSP 121 / 136


Unités fonctionnelles
Fetch and Execute Packets
Pipelining
Introduction
Registres
Architecture des systèmes up
Modes d’adressage
Architecture des DSP
Jeu d’instructions TMS320 C6x
Architectue TMS320C6x
Directives en Assembleur
Diagramme Bloque DSK C6713
Assembleur Linéaire
Timers
Interruption

Autre que le jeu d’instructions du processeur, il y a des com-


mandes spéciales à l’assembleur qui commandent l’assembleur d’ef-
fectuer différents tâches lors du montage du code.
Assembly code instructions sont soient des directives ou des mnemo-
niques.
Exemple d’une directive : .sect “ name” : crée une section de
l’information (donnée ou code)

Pr.Otman CHAKKOR DSP 122 / 136


Unités fonctionnelles
Fetch and Execute Packets
Pipelining
Introduction
Registres
Architecture des systèmes up
Modes d’adressage
Architecture des DSP
Jeu d’instructions TMS320 C6x
Architectue TMS320C6x
Directives en Assembleur
Diagramme Bloque DSK C6713
Assembleur Linéaire
Timers
Interruption

La directive .set directive definit le nom du symbole.


Exemple : count .set 40 ,
l’assembleur remplace count par la valeur 40.
La directive .ref est utilisée pour declarer les noms des symboles
définies dans un autre fichier (similaire au extern dans le langage C)
La directive .space réserve l’espace mémoire avec la taille déterminée
en bytes.
Exemple : buffer .space 128

Pr.Otman CHAKKOR DSP 123 / 136


Unités fonctionnelles
Fetch and Execute Packets
Pipelining
Introduction
Registres
Architecture des systèmes up
Modes d’adressage
Architecture des DSP
Jeu d’instructions TMS320 C6x
Architectue TMS320C6x
Directives en Assembleur
Diagramme Bloque DSK C6713
Assembleur Linéaire
Timers
Interruption

Directives en Assembleur

.short : pour initialiser un entier de 16 bits.


.int : pour initialiser un enier de 32 bits (aussi .word ou .long), le
compilateur traite la valeur de donnée de type long comme une va-
leur de 40 bits, l’assembleur C6x le considère comme 32 bits.
.float : pour initialiser une constante de 32 bits simple précision
selon la norme IEEE.
.double : pour initialiser une constante de 64 bits double précision
selon la norme IEEE.

Pr.Otman CHAKKOR DSP 124 / 136


Unités fonctionnelles
Fetch and Execute Packets
Pipelining
Introduction
Registres
Architecture des systèmes up
Modes d’adressage
Architecture des DSP
Jeu d’instructions TMS320 C6x
Architectue TMS320C6x
Directives en Assembleur
Diagramme Bloque DSK C6713
Assembleur Linéaire
Timers
Interruption

Assembleur Linéaire

Définition
Linear assembly : c’est une alternative de langage de programmation
C et l’assembleur (optimizer) : similaire au langage assembleur, mais il
permet l’utilisation des noms des symboles et ne nécessite pas la mai-
trise de l’architecture interne des registres (et la séquence d’exécution
des événements) dans le DSP.Son avantage par rapport à C c’est qu il
utilise le DSP d’une façon plus efficace, et son avantage par rapport à
l’assembleur c’est qu il nécessite moins de temps pour tourner......

Pr.Otman CHAKKOR DSP 125 / 136


Unités fonctionnelles
Fetch and Execute Packets
Pipelining
Introduction
Registres
Architecture des systèmes up
Modes d’adressage
Architecture des DSP
Jeu d’instructions TMS320 C6x
Architectue TMS320C6x
Directives en Assembleur
Diagramme Bloque DSK C6713
Assembleur Linéaire
Timers
Interruption

Timers

Si on veut réaliser des opérations correspondant à intervalle de temps


précis on utilisera un timer.
Deux Temporisateur de 32 bits peuvent être utilisés pour compter
le durée ou événements , ou pour interrompre le CPU.
Le temporisateur commande un ADC de commencer la conversion,
ou à un contrôleur DMA pour commencer le transfert de données.

Pr.Otman CHAKKOR DSP 126 / 136


Unités fonctionnelles
Fetch and Execute Packets
Pipelining
Introduction
Registres
Architecture des systèmes up
Modes d’adressage
Architecture des DSP
Jeu d’instructions TMS320 C6x
Architectue TMS320C6x
Directives en Assembleur
Diagramme Bloque DSK C6713
Assembleur Linéaire
Timers
Interruption

Pr.Otman CHAKKOR DSP 127 / 136


Introduction
Architecture des systèmes up
Architecture des DSP
Architectue TMS320C6x
Diagramme Bloque DSK C6713

Figure 33 – carte de programmation DSK C6713

Pr.Otman CHAKKOR DSP 128 / 136


Introduction
Architecture des systèmes up
Architecture des DSP
Architectue TMS320C6x
Diagramme Bloque DSK C6713

Figure 34 – Diagramme de DSK C6713

Pr.Otman CHAKKOR DSP 129 / 136


Introduction
Architecture des systèmes up
Architecture des DSP
Architectue TMS320C6x
Diagramme Bloque DSK C6713

Figure 35 – Diagramme de bloques de AIC23

Pr.Otman CHAKKOR DSP 130 / 136


Introduction
Architecture des systèmes up
Architecture des DSP
Architectue TMS320C6x
Diagramme Bloque DSK C6713

Memory Map

4 Gbytes (232 ) de l’espace mémoire :


Mémoire interne de programme.
Mémoire interne de données.
Espace de mémoires externe
Internal peripheral space

Pr.Otman CHAKKOR DSP 131 / 136


Introduction
Architecture des systèmes up
Architecture des DSP
Architectue TMS320C6x
Diagramme Bloque DSK C6713

Figure 36 – Interface de mémoire externe, EMIF

EMIF : External Memory Interface

Pr.Otman CHAKKOR DSP 132 / 136


Introduction
Architecture des systèmes up
Architecture des DSP
Architectue TMS320C6x
Diagramme Bloque DSK C6713

McBSP : Multichannel Buffer Serial Port

Communication Full-duplex.
Registres de données ”double-buffered ”.
Independent framing and clocking for receive and transmit
Direct interface to codecs, analog interface chips (AICs), and other
serially g connected analog-to-dig ( ) ital (A/D) and digital-to-analog
(D/A) chips.

Pr.Otman CHAKKOR DSP 133 / 136


Introduction
Architecture des systèmes up
Architecture des DSP
Architectue TMS320C6x
Diagramme Bloque DSK C6713

HPI : Host Peripheral Interface


Le port parallèle avec lequel le processeur host peut avoir accès di-
rectement au mémoire de CPU :

Pr.Otman CHAKKOR DSP 134 / 136


Introduction
Architecture des systèmes up
Architecture des DSP
Architectue TMS320C6x
Diagramme Bloque DSK C6713

GPIO : General-Purpose Interrupt I/O


peuvent être configurer comme entrées ou sorties.
GPIO peut produire des interruptions CPU et des événements EDMA.

Figure 38Pr.Otman
– GPIO : General-Purpose
CHAKKOR DSP Interrupt I/O 135 / 136
Introduction
Architecture des systèmes up
Architecture des DSP
Architectue TMS320C6x
Diagramme Bloque DSK C6713

EDMA : Enhanced Direct Memory Access

transfer data between regions in the memory map without CPU in-
tervention (background CPU operation)
Internal memory, internal peripherals, or external devices .

Pr.Otman CHAKKOR DSP 136 / 136