Module :Informatique Industrielle DSP

136
Introduction Architecture des syst` emes up Architecture des DSP Architectue TMS320C6x Diagramme Bloque DSK C6713 Module :Informatique Industrielle DSP enie des Syst` emes de T´ el´ ecommunications et R´ eseaux Pr.Otman CHAKKOR Universit´ e Abdelmalek Essaˆ adi etouan 2015-2016 Pr.Otman CHAKKOR DSP 1 / 136

Transcript of Module :Informatique Industrielle DSP

Page 1: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Module :Informatique IndustrielleDSP

Genie des Systemes de Telecommunications et Reseaux

Pr.Otman CHAKKOR

Universite Abdelmalek EssaadiTetouan

2015-2016

Pr.Otman CHAKKOR DSP 1 / 136

Page 2: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Table des matieres

1 Introduction

2 Architecture des systemes up

3 Architecture des DSP

4 Architectue TMS320C6x

5 Diagramme Bloque DSK C6713

Pr.Otman CHAKKOR DSP 2 / 136

Page 3: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Pre-requis

Electronique numerique : combinatoire et sequentielle

Programmation en assembleur et C.

Architecture des ordinateurs.

Pr.Otman CHAKKOR DSP 3 / 136

Page 4: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Informatique Industrielle

L’informatique industrielle est une branche de l’informatique appliqueequi couvre l’ensemble des techniques de conception et de programma-tion de systemes informatises a vocation industrielle, qui ne sont pas desordinateurs. � (Source : Wikipedia)

Module : Informatique Industrielle

Microcontroleur =⇒50 %

DSP (Digital Signal Processors) =⇒ 50%

Travaux Pratiques =⇒ Miniprojets (MpLab et CCS : Code Compo-ser Studio, Texas Instrument)

Figure 1 – Programmation des DSP

Pr.Otman CHAKKOR DSP 4 / 136

Page 5: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Applications des DSPVirgule fixe ou flottanteArchitecture de Von Neumann et de HarvardLes Methodes et outils de developpement

Introduction

Introduit en 1982 par Texas Instruments, un processeur de traitement dusignal (DSP) est un microprocesseur : concu pour etre particulierementefficace dans la programmation de certains algorithmes pour le trai-tement du signal. Ce sont des processeurs comportant une unite demultiplication-accumulation. Ils contiennent egalement de la memoireinterne et une memoire cache tres rapide.

Pr.Otman CHAKKOR DSP 5 / 136

Page 6: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Applications des DSPVirgule fixe ou flottanteArchitecture de Von Neumann et de HarvardLes Methodes et outils de developpement

Introduction

Traitement numerique du signal : application d’operations mathematiquessur des signaux representes sous forme numerique.

Representation des signaux sous forme de sequences d’echantillons.

Les signaux numeriques sont obtenus a partir de signaux physiquesvia des recepteurs (ex : microphones) et des convertisseurs analogiques-numeriques (ADC).

Les signaux numeriques sont reconvertis en signaux physiques pardes convertisseurs numeriques-analogiques (DAC).

Processeurs de traitement du signal (DSP) : systeme electroniquequi traite des signaux numeriques.

Pr.Otman CHAKKOR DSP 6 / 136

Page 7: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Applications des DSPVirgule fixe ou flottanteArchitecture de Von Neumann et de HarvardLes Methodes et outils de developpement

Pourquoi DSP ?pourquoi un processeur specifique

toutes les operations necessitent beaucoup de calculs de la forme :

A = B ∗ C + D.

Cette simple equation inclut une multiplication et addition.

L’instruction de multiplication d’un processeur generique est tres lentpar rapport a 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

Page 8: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Applications des DSPVirgule fixe ou flottanteArchitecture de Von Neumann et de HarvardLes Methodes et outils de developpement

DSP ?

C’est un microprocesseur avec un jeu d’instructions dedie au traite-ment numerique du signal.

Plus de parallelisme (pipeline).Jeu d’instructions orientes au MAC (Muliply-Accumulator opeara-tion) :

y = a.x1 + bx2 + c.x3 + · · ·meme philosophie du uc : CPU + memoire interne + peripheriques.

La plus part des DSP ont des instructions specialisees leur permet-tant de multiplier, additionner et sauvegarder le resultat lors d’unseul cycle. (appeles souvent MAC).

Pr.Otman CHAKKOR DSP 8 / 136

Page 9: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Applications des DSPVirgule fixe ou flottanteArchitecture de Von Neumann et de HarvardLes Methodes et outils de developpement

Domaines d’applications

Alarme, automobile, aviation, instrumentation, medicale, telephoniemobile, terminaux de paiement pour carte bancaire ...

Les DSP sont utilises dans la plupart des applications du traitementnumerique du signal en temps reel.

Pr.Otman CHAKKOR DSP 9 / 136

Page 10: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Applications des DSPVirgule fixe ou flottanteArchitecture de Von Neumann et de HarvardLes Methodes et outils de developpement

Domaines d’applications

Automates, robotique,

Mesures de grandeurs phy-siques,

Systemes temps-reel,

Systemes embarques.

Pr.Otman CHAKKOR DSP 10 / 136

Page 11: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Applications des DSPVirgule fixe ou flottanteArchitecture de Von Neumann et de HarvardLes Methodes et outils de developpement

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

Page 12: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Applications des DSPVirgule fixe ou flottanteArchitecture de Von Neumann et de HarvardLes Methodes et outils de developpement

Applications et Algorithmes des DSP

Applications :

Communications

Image / Video , Audio.

Militaire

Medical

Instrumentation, Automobile et Automatisation

Algorithmes :

Filtrage frequentiel - FIR et IIR

Transformations temps en frequence - FFT

Correlation

Pr.Otman CHAKKOR DSP 12 / 136

Page 13: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Applications des DSPVirgule fixe ou flottanteArchitecture de Von Neumann et de HarvardLes Methodes et outils de developpement

DSp, uc et Arduino

Fonctionnement de ”Arduino” autour de microcontrolleur AVR.(Disponibilitedes librairies.)Programmation de Arduino (ATMEL AVR, langage de programmationArduino ) : fonctions disponibles pour lire-ecrire sur les memoiresEEPROM.EEPROM.write(address, value) ; si on veut ecrire sur le port ”UARTserial”, on aura besoin d’initialiser les registres ou ports, on utilise lafonction Serial.print(”Hello”) ;Arduino hardware inclut la carte mere (microcontrolleur AVR) et l’ex-tension (shields).Arduino : environnement propre pour le developpement pour ecrire,compiler, debugger et programmer l’arduino.Arduino est la premiere etape de commencer a travailler sur lessystemes embarquees.donc quelle est la difference entre Arduino et uc ?

Pr.Otman CHAKKOR DSP 13 / 136

Page 14: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Applications des DSPVirgule fixe ou flottanteArchitecture de Von Neumann et de HarvardLes Methodes et outils de developpement

Specificites des DSP/processeurs generalistes

• Les DSP ont tendance a etre utilise pour un programme, pas pour denombreux programmes :

Les systemes d’exploitation sont beaucoup plus simples.

Pas de memoire virtuelle, pas de protection.

• Les DSP executent parfois des applications temps reel strict ...

On doit tenir compte de tout ce qui intervient dans un intervalle detemps donne.

Toutes les interruptions ou exceptions possibles doivent etre prisesen compte dans l’intervalle de temps.

Les exceptions sont � couteuses �.

• Les DSP ont un flot de donnees continu infini.

Pr.Otman CHAKKOR DSP 14 / 136

Page 15: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Applications des DSPVirgule fixe ou flottanteArchitecture de Von Neumann et de HarvardLes Methodes et outils de developpement

Besoin

Figure 3 – Cahier des charges

Pr.Otman CHAKKOR DSP 15 / 136

Page 16: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Applications des DSPVirgule fixe ou flottanteArchitecture de Von Neumann et de HarvardLes Methodes et outils de developpement

Principaux constructeurs de DSP

Texas Instruments, Analog Devices

Motorola, Zilog

Lucent, Nec

Zoran, Zsp, Microchip

Les trois premiers constructeurs sont les plus connus. Neanmoins,certains petits constructeurs developpent des architectures originales.Microchip, fort du succes de ces microcontroleurs PIC a mis sur lemarche une famille de DSP 16 bits virgule fixe, les dsPIC.

Pr.Otman CHAKKOR DSP 16 / 136

Page 17: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Applications des DSPVirgule fixe ou flottanteArchitecture de Von Neumann et de HarvardLes Methodes et outils de developpement

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

Page 18: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Applications des DSPVirgule fixe ou flottanteArchitecture de Von Neumann et de HarvardLes Methodes et outils de developpement

DSP :Cœur d’une chaıne de traitement numerique du signal.

Figure 4 – chaine classique de traitement numerique du signal

Digital Signal Processor (DSP) est un microcontrolleur specialementconcu pour des applications de traitement du signal.

Pr.Otman CHAKKOR DSP 18 / 136

Page 19: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Applications des DSPVirgule fixe ou flottanteArchitecture de Von Neumann et de HarvardLes Methodes et outils de developpement

Classification des processeurs

Figure 5 – Classification des processeurs

Pr.Otman CHAKKOR DSP 19 / 136

Page 20: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Applications des DSPVirgule fixe ou flottanteArchitecture de Von Neumann et de HarvardLes Methodes et outils de developpement

Les differents systemes programmables

1 Les circuits specialises ou ASIC (Application Specific IntegratedCircuit) : sont des circuits specialises des leur conception pour uneapplication donnee.

2 Exemples : DSP (Digital Signal Processing), co-processeur arithmetique,processeur 3-D, controleur de bus, ...

Pr.Otman CHAKKOR DSP 20 / 136

Page 21: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Applications des DSPVirgule fixe ou flottanteArchitecture de Von Neumann et de HarvardLes Methodes et outils de developpement

1 Les systemes en logique programmee et/ou en logique program-mable sont connus sous la designation de PLD (programmable logicdevice, circuit logique programmable). Exemple :

FPGA (field-programmable gate array, reseau de portes program-mables in-situ),PAL (programmable array logic, reseau logique programmable).

Pr.Otman CHAKKOR DSP 21 / 136

Page 22: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Applications des DSPVirgule fixe ou flottanteArchitecture de Von Neumann et de HarvardLes Methodes et outils de developpement

Pr.Otman CHAKKOR DSP 22 / 136

Page 23: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Applications des DSPVirgule fixe ou flottanteArchitecture de Von Neumann et de HarvardLes Methodes et outils de developpement

Les differents systemes programmables

Les systemes micro-programmes

Les micro-controleurs sont typiquement des systemes micro-programmes.

Pr.Otman CHAKKOR DSP 23 / 136

Page 24: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Applications des DSPVirgule fixe ou flottanteArchitecture de Von Neumann et de HarvardLes Methodes et outils de developpement

Microprocesseurs

Pr.Otman CHAKKOR DSP 24 / 136

Page 25: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Applications des DSPVirgule fixe ou flottanteArchitecture de Von Neumann et de HarvardLes Methodes et outils de developpement

Virgule fixe ou flottante

Les DSP ont besoin de nombres representant le monde reel : reels/fractions

Les DSP ont besoin de nombre pour les adresses : Entiers

Les valeurs traitees (coefficients, echantillons. . . ) sont representeessous 2 formes :

Dans un processeur (calculateur), un nombre est toujours ecrit sousforme d’un bloc de n bits (considere comme un entier N), pourrepresenter les nombres fractionnaires il est necessaire de definirla position de la virgule : pour ce faire, il existe deux methodes.

La representation en virgule fixe.La representation en virgule flottante

Pr.Otman CHAKKOR DSP 25 / 136

Page 26: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Applications des DSPVirgule fixe ou flottanteArchitecture de Von Neumann et de HarvardLes Methodes et outils de developpement

Representation des nombres :Representation des nombres entiers positifis

Les nombres sont representes en binaire sur n bits : n = nombred’unites memoires (n = 8,16,32,64,...)

On peut representer des nombres allant de 0 a 2n − 1.

Pr.Otman CHAKKOR DSP 26 / 136

Page 27: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Applications des DSPVirgule fixe ou flottanteArchitecture de Von Neumann et de HarvardLes Methodes et outils de developpement

Representation des nombres :Representation binaire des entiers signes

Traditionnellement on met un signe ” - ” pour representer les nombresnegatifs. Mais les systemes logiques ne permettent de presenter qu’undes deux symboles ” 0 ” et ”1 ”, il faut chercher une convention pourremplacer le ”- ”.

Representation module et signe :

Probleme : on a ici deux representations differentes pour le zero :’00...0’ et ’10...0’.

Pr.Otman CHAKKOR DSP 27 / 136

Page 28: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Applications des DSPVirgule fixe ou flottanteArchitecture de Von Neumann et de HarvardLes Methodes et outils de developpement

Representation des nombres :Representation en complement restreint (CR) ou complement a 1 (C1)

−A = A : pour prendre l’inverse d’un nombre, il suffit de lecomplementer (inversion de tous ses bits). Comme dans le cas precedent,la nature du premier bit donnera le signe : 0⇐⇒ + et 1⇐⇒ −.

Exemple de Notation en complement a 1

1 0 1 1 0 1 nombre binaire initial0 1 0 0 1 0 complement de chaque bit pour obtenir le complement a 1Complement a 1 de N : C1(N) = not(N)

- Avec 4 bits, on a : +5 = 0101 et -5 = 1010.Probleme :de nouveau, on a deux representations differentes pour lezero.

Pr.Otman CHAKKOR DSP 28 / 136

Page 29: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Applications des DSPVirgule fixe ou flottanteArchitecture de Von Neumann et de HarvardLes Methodes et outils de developpement

Representation d’un entier signe :Representation en complement vrai (CV) ou complementa 2 (C2)

C’est la representation la plus utilisee.

Un entier signe est un entier pouvant etre negatif. Il faut donccoder le nombre de telle facon que l’on puisse savoir s’il s’agit d’unnombre positif ou d’un nombre negatif, et il faut de plus queles regles d’addition soient conservees. L’astuce consiste a utiliser uncodage que l’on appelle complement a deux.

Notation en complement a 2

x = +2 = 00010 =⇒ C1(x) = 11101(complement a 1)+1 (ajouter 1) =⇒ 11110(complement a 2 du chiffre +2 sur 5 bits)

C’est la representation la plus utilisee. Le bit le plus a gauche estencore le bit de signe :0⇐⇒ + et 1⇐⇒ −.

−A = A + 1 : est appele complement a 2.

Pr.Otman CHAKKOR DSP 29 / 136

Page 30: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Applications des DSPVirgule fixe ou flottanteArchitecture de Von Neumann et de HarvardLes Methodes et outils de developpement

Representation d’un entier signe :Representation en complement vrai (CV) ou complementa 2 (C2)

Exemple

On veut coder -5 sur 8 bits, il suffit d’ecrire :5 = 0000 0101C1(5)= 1111 1010 C2(5) = C1(5) + 1 = 1111 1011

Le bit de poids fort (MSB) = 1, il s’agit bien d’un nombre negatif.

Pr.Otman CHAKKOR DSP 30 / 136

Page 31: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Applications des DSPVirgule fixe ou flottanteArchitecture de Von Neumann et de HarvardLes Methodes et outils de developpement

Representation d’un entier signe :Representation en complement vrai (CV) ou complementa 2 (C2)

Pour passer d’une valeur negative a une valeur positive, on appliqueaussi le complement a 2.

Une seule representation pour le zero.

Avec des mots de n elements binaires, on obtient 2n valeurs differentes,de 0 a 2n−1 − 1 pour les valeurs positives, et de −1 a −2n−1 pourles valeurs negatives ;

n = 8 (mots de 8 bits) =⇒ , si nb > 0 de 0 a 127.si nb<0 de -1 a -128.

Pr.Otman CHAKKOR DSP 31 / 136

Page 32: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Applications des DSPVirgule fixe ou flottanteArchitecture de Von Neumann et de HarvardLes Methodes et outils de developpement

Representation des nombres reels dans un calculateur

Dans un calculateur, un nombre est toujours ecrit sous forme d’unbloc de n elements binaires (considere comme un entier N). Pourrepresenter les nombres fractionnaires il est necessaire de definir laposition de la virgule. Pour ce faire, il existe deux methodes :

la representation en virgule fixe ;la representation en virgule flottante.

Pr.Otman CHAKKOR DSP 32 / 136

Page 33: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Applications des DSPVirgule fixe ou flottanteArchitecture de Von Neumann et de HarvardLes Methodes et outils de developpement

Conversion reel decimal en binaire

Exemple : conversion de 12,6875 en binaire

Conversion de 12 : donne (1100)2

Conversion de 0,6875 :

Figure 6 – Conversion reel decimal en binaire

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

Pr.Otman CHAKKOR DSP 33 / 136

Page 34: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Applications des DSPVirgule fixe ou flottanteArchitecture de Von Neumann et de HarvardLes Methodes et outils de developpement

Conversion binaire en reel decimal

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

Page 35: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Applications des DSPVirgule fixe ou flottanteArchitecture de Von Neumann et de HarvardLes Methodes et outils de developpement

Representation d’un nombre reel

Il s’agit de representer un nombre binaire a virgule (par exemple101,01 qui ne se lit pas cent un virgule zero un puisque c’est unnombre binaire mais 5,25 en decimale) sous la forme 1,XXXXX... *2n (c’est-a-dire dans notre exemple 1,0101*22).

La norme IEEE definit la facon de coder un nombre reel. Cettenorme se propose de coder le nombre sur 32 bits et definit trois com-posantes :

Le signe est represente par un seul bit, le bit de poids fort (celui leplus a gauche) ;

l’exposant est code sur les 8 bits consecutifs au signe* ;

la mantisse (les bits situes apres la virgule) sur les 23 bits restants ;

Pr.Otman CHAKKOR DSP 35 / 136

Page 36: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Applications des DSPVirgule fixe ou flottanteArchitecture de Von Neumann et de HarvardLes Methodes et outils de developpement

Representation d’un nombre reel

Ainsi le codage se fait sous la forme suivante :seeeeeeeemmmmmmmmmmmmmmmmmmmmmmm

le s represente le bit relatif au signe

les e representent les bits relatifs a l’exposant

les m representent les bits relatifs a la mantisse

Pr.Otman CHAKKOR DSP 36 / 136

Page 37: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Applications des DSPVirgule fixe ou flottanteArchitecture de Von Neumann et de HarvardLes Methodes et outils de developpement

Virgule fixe ou flottante

Un point essentiel des DSP est la representation des nombres (lesdonnees) qu’ils peuvent manipuler. Il est possible de distinguer deuxfamilles :

Les DSP a virgule fixe : nombre sont represente sous format desEntiers ou fractionnaires(entre -1 et +1).

Les DSP a virgule flottante : Dans les DSP a virgule flottante,l’arithmetique a point fixe et flottante peuvent etre supportes parce DSP. avec DSP a virgule flottante C6713, il permet une grandedynamique (grand intervalle des nombres peuvent etre representes)para rapport au DSP de virgule fixe.

Pr.Otman CHAKKOR DSP 37 / 136

Page 38: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Applications des DSPVirgule fixe ou flottanteArchitecture de Von Neumann et de HarvardLes Methodes et outils de developpement

Virgule fixe ou flottante

Figure 7 – Regular DSPs number representation

Pr.Otman CHAKKOR DSP 38 / 136

Page 39: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Applications des DSPVirgule fixe ou flottanteArchitecture de Von Neumann et de HarvardLes Methodes et outils de developpement

Representation en virgule fixe :

Format courant : 16/24 bits.

Ideal avec CAN/CNA 12/14 bits

Applications : Controle industriel,communications, instrumenta-tion,parole, medical, militaire. . .

Pr.Otman CHAKKOR DSP 39 / 136

Page 40: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Applications des DSPVirgule fixe ou flottanteArchitecture de Von Neumann et de HarvardLes Methodes et outils de developpement

Representation en virgule fixe :

Pr.Otman CHAKKOR DSP 40 / 136

Page 41: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Applications des DSPVirgule fixe ou flottanteArchitecture de Von Neumann et de HarvardLes Methodes et outils de developpement

Virgule flottante :

Format courant : 32 bits

Ideal pour le traitement sur une grande dynamique.

Applications : Audio professionnel, video, medical. . .

Pr.Otman CHAKKOR DSP 41 / 136

Page 42: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Applications des DSPVirgule fixe ou flottanteArchitecture de Von Neumann et de HarvardLes Methodes et outils de developpement

Codage binaire des reel a virgule flottante

On sait qu’un nombre a virgule flottante peut etre represente sousplusieurs formats equivalents, alors il est important d’avoir une seulerepresentation standard a utiliser =”format standard”.

Tres utilise par tous les processeurs/coprocesseurs arithmetique ac-tuels.

Objectif : Faciliter la portabilite du programme d’un processeur a unautre.

Generalement, on dit qu’un nombre binaire est normalise si lenombre a gauche de la virgule est egale a 1, cad = 1,xxx.2n.

Exemple : 101,1 =⇒ 1,0101 22 = version normalisee

par contre 0,10101.23 c’est une version non-normalisee.

Pr.Otman CHAKKOR DSP 42 / 136

Page 43: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Applications des DSPVirgule fixe ou flottanteArchitecture de Von Neumann et de HarvardLes Methodes et outils de developpement

Representation d’un nombre reel selon la norme IEEE754

La norme IEEE 754 definit la facon de coder un nombre reel.

Il s’agit de representer un nombre binaire a virgule flottante (ex :101,01)sous la forme 1,xxx.2n, cad 101,01 =⇒ 1, 0101.22

Format simple precision sur 32 bits : x = (s).M.2E

avec s=0 (nbr.positif), s=0 (nbr.negatif), E : Exposant code sur 8bits et M :Mantisse code sur 23 bits.

Pr.Otman CHAKKOR DSP 43 / 136

Page 44: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Applications des DSPVirgule fixe ou flottanteArchitecture de Von Neumann et de HarvardLes Methodes et outils de developpement

Representation d’un nombre reel 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 resultat final : 8.62510 = 1000, 1012

sous format normalise : 8.625 = 1, 000101.23

Exposant biaise a 127 = 3 + 127 = 13010 = 100000102

d’ou la representation sous format IEEE 754 :

0 10000010 000101000000000000000000

Pr.Otman CHAKKOR DSP 44 / 136

Page 45: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Applications des DSPVirgule fixe ou flottanteArchitecture de Von Neumann et de HarvardLes Methodes et outils de developpement

Architecture selon Hardware : Von Neuman + Harvard

Figure 8 – Architecture de Von Neumann et de Harvard

Pr.Otman CHAKKOR DSP 45 / 136

Page 46: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Applications des DSPVirgule fixe ou flottanteArchitecture de Von Neumann et de HarvardLes Methodes et outils de developpement

Architecture von Neumann :

L’architecture dite de � Von Neumann � est une organisation descomposants telle que le bus qui relie la memoire programme et lamemoire de donnee au microprocesseur soit le meme.En general, il n’existe qu’une memoire de programme contenant ala fois les instructions et les donnees placees a la suite les unes desautres.

Ce bus sert alors alternativement a transmettre les instructions et lesdonnees.

Ce systeme de bus unique impose aux deux memoires de se partagerpendant l’execution du programme.

En effet, pour executer une instruction il faut tout d’abord aller cher-cher le code instruction situe dans la memoire programme puis lesdonnees sur lesquelles elle agit (celles ci se trouvant dans la memoirede donnees )

Pr.Otman CHAKKOR DSP 46 / 136

Page 47: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Applications des DSPVirgule fixe ou flottanteArchitecture de Von Neumann et de HarvardLes Methodes et outils de developpement

Architecture Harvard :

Deux bus de donnees et deuxbus d’adresse

Figure 9 – Architecture Har-vard

L’architecture Harvard permet deuxlectures simultanees.La plupart des DSPutilisent l’architecture Harvard.

Interessante dans le cas des applications�streaming data�

Permet une plus grande bande pas-sante pour les donnees (nombre dedonnees lues ou ecrites par cycles impor-tantes) Comme la lecture des donneeset la lectures des instructions se fontsur des bus differents, il y a moins d’in-terference, une plus grande predictibiliteau niveau de la largeur de bande.

Pr.Otman CHAKKOR DSP 47 / 136

Page 48: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Applications des DSPVirgule fixe ou flottanteArchitecture de Von Neumann et de HarvardLes Methodes et outils de developpement

Architectures CISC et RISC

CISC (Complex Instruction Set Code) :un processeur dont le jeud’instructions possede les proprietes suivantes :

Il contient beaucoup de classes d’instructions differentes.Il contient beaucoup de type d’instructions differentes complexes etde taille variable.Il se sert de beaucoup de registres specialises et de peu de registresgeneraux.

RISC (Reduced Instruction Set Code) :

Le nombre de classes d’instructions differentes est reduit par rapporta un CISC.Les instructions sont de taille fixe.Il se sert de beaucoup de registres generaux.Il fonctionne avec un pipe-line.

Pr.Otman CHAKKOR DSP 48 / 136

Page 49: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Applications des DSPVirgule fixe ou flottanteArchitecture de Von Neumann et de HarvardLes Methodes et outils de developpement

Programme = ensemble des instructions pour realiser une fonctionbien definie.(on doit utiliser l’outil fourni par le constructeur

Assembleur : l’assembleur genere le code machine a partir des ins-tructions. (Exemple : ADD A,B = 111000100101010001001) facile decomprendre l’instruction ADD qu’avec les 0 et 1.

Langage de haut niveau : ensemble d’instruction etendue, lent (parrapport au langage assembleur), facile a programmer.

simulateurs : software d’implementation des programmes sur DSP,executes sur les PC, en simulant presque tous les fonctionnalites desDSP, utilises pour analyser la faisabilite de la conception avant d’at-taquer la partie hardware.

Emulateurs : nous permet de controler et debugger directement leresultat des instructions en executant sur les DSP.

Debugger : ......

Pr.Otman CHAKKOR DSP 49 / 136

Page 50: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Applications des DSPVirgule fixe ou flottanteArchitecture de Von Neumann et de HarvardLes Methodes et outils de developpement

DSP : Code Composer Studio(simulator and EVM versions)

Algorithm implementation inC/Assembler

Debugging in conjunction withMatlab implementation

Profiling your code

Pr.Otman CHAKKOR DSP 50 / 136

Page 51: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Applications des DSPVirgule fixe ou flottanteArchitecture de Von Neumann et de HarvardLes Methodes et outils de developpement

Matlab’s Embedded IDE Link

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

Malab’s Link pour Code Composer Studio (appele : Matlab’sEmbedded IDE Link est un Toolbox permettant une interaction(integration) entre Matlab et CCS.

Pr.Otman CHAKKOR DSP 51 / 136

Page 52: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Applications des DSPVirgule fixe ou flottanteArchitecture de Von Neumann et de HarvardLes Methodes et outils de developpement

Langage de programmation

Figure 10 – Programming Alternatives

Pr.Otman CHAKKOR DSP 52 / 136

Page 53: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Applications des DSPVirgule fixe ou flottanteArchitecture de Von Neumann et de HarvardLes Methodes et outils de developpement

Langages de programmation

Compiler (compilateur)(Le Compilateur C accepte comme entree lecode source en C et genere un code source en assembleur).

Assembler (assembleur)– (Convertit le code source assembleur versun fichier de code langage machine objet).

Linker (Editeur de lien) – (Combine les fichiers objets vers un seulfichier objet executable).

Pr.Otman CHAKKOR DSP 53 / 136

Page 54: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Applications des DSPVirgule fixe ou flottanteArchitecture de Von Neumann et de HarvardLes Methodes et outils de developpement

C6X Software Tools

Pr.Otman CHAKKOR DSP 54 / 136

Page 55: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Registres CPUStructure des programmesJeu d’instructionsMemoireBusModes d’adressagepipelines

Architecture generale Microprocesseur

Il a pour mission de rechercher les instructions qui sont en memoire,de les decoder et de les executer.

il est composee de plusieurs elements internes : CPU = UAL + UC+ registres CPU

Unite arithmetique et logique (UAL) : chargee des calculs +,-,*,/,AND, OR, NOT

Unite de commande chargee de traduire puis d’executer les com-mandes : Son role est d’aller chercher une information en memoirecentrale, d’analyser cette instruction (decodage), d’executer cette ins-truction, de localiser l’instruction suivante.

Pr.Otman CHAKKOR DSP 55 / 136

Page 56: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Registres CPUStructure des programmesJeu d’instructionsMemoireBusModes d’adressagepipelines

Structure interne du CPU

Def :

Un microprocesseur est construit autour de deux elements principaux :

1 Une unite de commande : appele aussi Unite de commande et decontrole (UCC)

2 Une unite de traitement.

associes a des registres chargees de stocker les differentes informationsa traiter. Ces trois elements sont relies entre eux par des bus interne per-mettant les echanges d’informations

Pr.Otman CHAKKOR DSP 56 / 136

Page 57: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Registres CPUStructure des programmesJeu d’instructionsMemoireBusModes d’adressagepipelines

Unite de commande

Elle permet de sequencer le deroulement des instructions. Elleeffectue la recherche en memoire de l’instruction.

Comme chaque instruction est codee sous forme binaire, elle en as-sure le decodage pour enfin realiser son execution puis effectue lapreparation de l’instruction suivante. Elle est composee de :

le compteur de programme (PC) :le registre d’instruction : Contient l’instruction en cours de traite-ment.le decodeur d’instruction.Le sequenceur :Il organise l’execution des instructions au rythmed’une horloge.

Pr.Otman CHAKKOR DSP 57 / 136

Page 58: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Registres CPUStructure des programmesJeu d’instructionsMemoireBusModes d’adressagepipelines

Unite de Traitement

C’est le cœur du up. Elle regroupe les circuits qui assurent les trai-tements necessaires a l’execution des instructions. L’unite de traite-ment est compose de trois principaux unites d’execution

1 l’unite arithmetique et logique (UAL).1 Unite arithmetique et logique (UAL)2 Unite de calcul en virgule flottante.3 Unite multimedia .

2 l’unite de calcul en virgule flottante.3 l’unite multimedia pour des raisons d’optimisation des performances

des microprocesseurs.

Pr.Otman CHAKKOR DSP 58 / 136

Page 59: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Registres CPUStructure des programmesJeu d’instructionsMemoireBusModes d’adressagepipelines

Unite de Traitementl’unite arithmetique et logique (UAL)

Elle est composee de circuits logiques tels que les additionneurs,soustracteurs, comparateurs logiques. . . etc.afin d’effectuer les calculs etles operations logiques des differents instructions a executer.

Figure 11 – Schema de l’unite arithmetique et logique (ses entrees et sessorties)

Pr.Otman CHAKKOR DSP 59 / 136

Page 60: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Registres CPUStructure des programmesJeu d’instructionsMemoireBusModes d’adressagepipelines

Unite de TraitementUnite de calcul en virgule flottante

C’est une unite qui est capable de realiser les operations de calcul pourles reels ainsi que les calculs mathematiques et scientifiques complexes.

Pr.Otman CHAKKOR DSP 60 / 136

Page 61: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Registres CPUStructure des programmesJeu d’instructionsMemoireBusModes d’adressagepipelines

Unite de TraitementUnite multimedia

C’est une unite qui est chargee d’accelerer l’execution des programmesmultimedia comportant des videos, du son, graphisme en 3D etc.. . .

Pr.Otman CHAKKOR DSP 61 / 136

Page 62: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Registres CPUStructure des programmesJeu d’instructionsMemoireBusModes d’adressagepipelines

Autres unites du microprocesseurUnite de memoire cache

La memoire cache : Optimiser les acces aux differentes instructionset donnees que le up a besoin lors de l’execution des programmes.La tache de cette unite est de mettre dans la memoire cache qui estbeaucoup plus rapide que la memoire centrale, les informations lesplus utilisees et que le up a besoin frequemment.

L’acces aux informations sera donc plus rapide et l’executiondes programmes est plus optimale.

Pr.Otman CHAKKOR DSP 62 / 136

Page 63: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Registres CPUStructure des programmesJeu d’instructionsMemoireBusModes d’adressagepipelines

Autres unites du microprocesseurUnite d’interface de bus

Gere les echanges a travers le bus entre up et les autres composantes.

si le up a besoin par exemple d’une donnee en memoire vive, l’united’interface de bus se charge de la ramener en controlant l’accesmemoire et en mettant le resultat sur le bus de donnees qui va l’ache-miner vers le registre de donnees.

Pr.Otman CHAKKOR DSP 63 / 136

Page 64: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Registres CPUStructure des programmesJeu d’instructionsMemoireBusModes d’adressagepipelines

Autres unites du microprocesseurUnite de decodage

Elle decompose et analyse l’instruction se trouvant dans le registred’instructions.

Pr.Otman CHAKKOR DSP 64 / 136

Page 65: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Registres CPUStructure des programmesJeu d’instructionsMemoireBusModes d’adressagepipelines

Autres unites du microprocesseurLes registres du microprocesseur

Un registre est une zone memoire a l’interieur du microproces-seur de faible taille, qui permet de memoriser des mot memoiresou des adresses d’une facon temporaire lors de l’execution desinstructions.

Les registres generaux.Les registres d’adresses (pointeurs) :Ce sont des registres connectessur le bus adresses, leur contenu est une adresse en memoire cen-trale.

Pr.Otman CHAKKOR DSP 65 / 136

Page 66: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Registres CPUStructure des programmesJeu d’instructionsMemoireBusModes d’adressagepipelines

Registres CPU

Les registres CPU : cellules memoire interne au processeur (ra-pide) :

Compteur ordinal (PC) pointant a l’adresse memoire ou se trouve laprochaine instruction a rechercher et executer. Apres chaque recherched’instruction, le compteur ordinal est incremente afin de pointer a laprochaine instructionRegistre d’instruction qui contient le code de l’instruction (codeoperatoire) recherchee en memoire .Registres de donnees permettent de stocker les operandes necessairesaux instructions de calcul ainsi que les resultats lors d’operations lo-giques et arithmetiques .Registres d’adresses permettent de stocker les adresses d’operandesqui se trouvent en memoire.

Pr.Otman CHAKKOR DSP 66 / 136

Page 67: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Registres CPUStructure des programmesJeu d’instructionsMemoireBusModes d’adressagepipelines

Registres CPU

Figure 12 – Architecture generale microprocesseur

Pr.Otman CHAKKOR DSP 67 / 136

Page 68: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Registres CPUStructure des programmesJeu d’instructionsMemoireBusModes d’adressagepipelines

Structure des programmes

Un programme : ensemble d’instructions ecrits sous forme de sequencespecifiee d’un processeur pour accomplir une tache bien definie.

Une instruction est definie comme etant une tache accomplie (commeune addition) realise par un processeur. Chaque microprocesseur dis-pose de son propre ensemble d’instructions.

Pour que le up puisse “comprendre” l’instruction, les instructionsdoivent etre envoyees (fournies) sous forme binaire, c.a.d. langagemachine.

Langage Assembleur : est un langage de symbole, qui represente lesinstructions sous forme des mnemoniques-court comprehensible chezl’utilisateur langage . Par exemple : dans le langage assembleur duPIC, une operation nulle ou “no operation” est representee par lamnemonique “NOP’.

Pr.Otman CHAKKOR DSP 68 / 136

Page 69: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Registres CPUStructure des programmesJeu d’instructionsMemoireBusModes d’adressagepipelines

Structure des programmes

Un assembleur est un outil convertissant un programme de code sourceen assembleur en fichier objet de langage machine.

Figure 13 – Assembleur

Pr.Otman CHAKKOR DSP 69 / 136

Page 70: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Registres CPUStructure des programmesJeu d’instructionsMemoireBusModes d’adressagepipelines

Structure des programmes

Les Langage assembleur et Machine sont consideres comme des lan-gages de bas niveau. Il y a une correspondance entre les mnemoniquesde langage de l’assembleur et les instructions de code machine.

Les Programmes ecris avec ces langages sont generalement rapide parrapport aux langage de programmation de haut niveau (C, Pascal andBASIC )(mais ils sont specifique pour chaque type de processeur).

Programme (source code) sont convertis par les compilateurs auxlangage machine compatible avec le microprocesseur en question. Lecode finale (resultat) est appele code objet.

Chaque microprocesseur necessite un compilateur.

Un avantage des langages de haut niveau est plus facile a “debug-ger”

Pr.Otman CHAKKOR DSP 70 / 136

Page 71: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Registres CPUStructure des programmesJeu d’instructionsMemoireBusModes d’adressagepipelines

Structure des programmes

Une instruction est une operation elementaire que le up peut ac-complir. Le programme est une suite d’instructions, stockees dans lamemoire programme.

Les instructions sont divisees en deux parties distinctes :le code operation qui represente l’action que le microprocesseurdoit accomplir.le code operande qui correspond au(x) parametre(s) necessaire(s) acette action.

Les instructions contenues dans la memoire programme sont unesuite de mots binaires decodes puis executes par le microprocesseur,appelee langage machine.

Ces codes sont difficilement comprehensibles par le programmeur.C’est la raison pour laquelle ils sont traduits en differents mots faisantpartis du langage assembleur.

Pr.Otman CHAKKOR DSP 71 / 136

Page 72: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Registres CPUStructure des programmesJeu d’instructionsMemoireBusModes d’adressagepipelines

Structure des programmes

Le codage d’une instruction s’effectue de la facon suivante :

Figure 14 – codage d’une instruction

Pr.Otman CHAKKOR DSP 72 / 136

Page 73: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Registres CPUStructure des programmesJeu d’instructionsMemoireBusModes d’adressagepipelines

Jeu d’instructions

Def

Le jeu d’instruction d’un processeur est l’ensemble des instructionsque celui ci peut executer. Une instruction peut etre 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 a l’interieur

du processeur, aucune information exterieure a celui-ci n’intervient.3 Il suffit generalement d’un seul cycle d’horloge pour executer cette

operation car l’addition est une des instruction les plus simples,commune a la totalite des processeurs.

Pr.Otman CHAKKOR DSP 73 / 136

Page 74: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Registres CPUStructure des programmesJeu d’instructionsMemoireBusModes d’adressagepipelines

Jeu d’instructions

Instruction Complexe :1 L’instruction pour incrementer le contenu d’une adresse memoire

est une instruction complexe car elle necessite plusieurs etapes.2 Tout d’abord, il faut agir sur un element externe au microproces-

seur : la cellule correspondant a l’adresse memoire indiquee.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’ecriture du resultat a

l’adresse initiale doivent etre effectuees.5 Il s’agit la 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

Page 75: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Registres CPUStructure des programmesJeu d’instructionsMemoireBusModes d’adressagepipelines

Memoire

ROM : Memoire contenant les programmes de controle du systemeet de traitement du signal.

RAM : Memoire vive contenant les donnees en entree en sortie eten cours de traitement.

Comm. : Organe de communication avec un eventuel systeme ex-terne.

Horloge, timers : horloge du processeur, horloge d’acquisition, hor-loge de communication....

Pr.Otman CHAKKOR DSP 75 / 136

Page 76: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Registres CPUStructure des programmesJeu d’instructionsMemoireBusModes d’adressagepipelines

Classification des memoires :

RAM :Random Access Memory (memoire a acces aleatoire), perdentl’information lorsque’elles ne sont pas alimentees.

ROM : Read Only Memory,contient le programme a executer.(l’applicationdoit demarrer des la mise sous tension)

OTP : One Time Programmable (OTP)) est un type de memoiremort.

EPROM : Erasable-Programable Read Only Memory :Memoires pro-grammable electriquement et effacables par UV donc reutilisables.L’effacement par UV (environ 15 mn) et l’ecriture (qlq mn) sont desoperations relativement longues

EEPROM : Electrically Erasable-Programable Read Only Memory.

UVPROM : EPROM effacable par une exposition aux ultraviolet U.V

Pr.Otman CHAKKOR DSP 76 / 136

Page 77: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Registres CPUStructure des programmesJeu d’instructionsMemoireBusModes d’adressagepipelines

Figure 15 – Memoires UV-PROM

Pr.Otman CHAKKOR DSP 77 / 136

Page 78: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Registres CPUStructure des programmesJeu d’instructionsMemoireBusModes d’adressagepipelines

Memoire Flash

FLASH : meme fcnt que la memoire EEPROM, mais avec une vitessesuperieure :elles sont plus rapides que les memoires E2PROM (enterme d’effacement et de programmation) mais ne permettent quel’effacement total de la memoire.

Les memoires flash sont utilisees dans les PC (BIOS), ou dansles systemes embarques pour memoriser les programmes impor-tants.

Pr.Otman CHAKKOR DSP 78 / 136

Page 79: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Registres CPUStructure des programmesJeu d’instructionsMemoireBusModes d’adressagepipelines

Bus

On distingue 3 types de bus :

1 Le bus d’adresse :le nombre des lignes depende de la taille de memoire.Ce bus est unidirectionnel.Sert a emettre les adresses entres CPU etla memoire tandis que le bus de donnee sert a relier les differentsbloques.

2 Le bus de donnee : le nombre des lignes depend de la ”longueur” desdonnees (8 bits par exemple).ce bus est bidirectionnel, c’est-a-direqu’une information peut etre lue par l’unite de traitement des infor-mations, etre ecrite, l’information etant a destination de la memoireactive ou d’un port.

3 Le bus de controle :Ce bus comporte plusieurs liaisons physiques.Contrairement aux deux autres bus, chaque liaison possede une fonc-tion particuliere.

Pr.Otman CHAKKOR DSP 79 / 136

Page 80: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Registres CPUStructure des programmesJeu d’instructionsMemoireBusModes d’adressagepipelines

Bus

Figure 16 – Bus

Pr.Otman CHAKKOR DSP 80 / 136

Page 81: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Registres CPUStructure des programmesJeu d’instructionsMemoireBusModes d’adressagepipelines

Modes d’adressage

Def

Les instructions utilisent toutes une maniere particuliere d’accederaux informations qu’elles manipulent.

Ces methodes sont appelees � modes d’adressage �.

Donc c’est la maniere dont la donnee est specifiee dans une instruc-tion.

Pr.Otman CHAKKOR DSP 81 / 136

Page 82: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Registres CPUStructure des programmesJeu d’instructionsMemoireBusModes d’adressagepipelines

Modes d’adressage

1 L’adressage litteral ou immediat : La donnee est contenue dansl’instruction :Exemple : movlw 0x55 ; charger la valeur 0x55 dans W.

2 L’adressage direct : La donnee est contenue dans un registre :Exemple : movf 0x2B,0 ; Transfert dans W la valeur contenue a l’adresse0x2B.

3 L’adressage indirect : L’adresse de la donnee est contenue dansun pointeur. (Dans les PIC, un seul pointeur est disponible pourl’adressage indirect : FSR)

Pr.Otman CHAKKOR DSP 82 / 136

Page 83: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Registres CPUStructure des programmesJeu d’instructionsMemoireBusModes d’adressagepipelines

Utilisation de pipelines

L’execution d’une instruction passe par plusieurs etapes, executeesd’une maniere sequentielle :

Lecture en memoire de l’instruction a executer.Decodage de l’instruction et lecture en memoire de l’operande.Execution de l’instruction proprement dite.

Figure 17 – cycle d’execution de l’instruction

Pr.Otman CHAKKOR DSP 83 / 136

Page 84: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Registres CPUStructure des programmesJeu d’instructionsMemoireBusModes d’adressagepipelines

Utilisation de pipelines

Pendant l’execution d’une instruction (”Execute”) par le deuxieme(dernier) etage du pipeline, le premier etage du pipeline procede deja al’acquisition de l’instruction suivante (”Fetch”= aller chercher).

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

Pr.Otman CHAKKOR DSP 84 / 136

Page 85: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Registres CPUStructure des programmesJeu d’instructionsMemoireBusModes d’adressagepipelines

Pipeline vs non-pipelined

Figure 19 – Pipeline vs non-pipelined

Pr.Otman CHAKKOR DSP 85 / 136

Page 86: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Registres CPUStructure des programmesJeu d’instructionsMemoireBusModes d’adressagepipelines

Utilisation de pipelines

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

Pr.Otman CHAKKOR DSP 86 / 136

Page 87: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Classification des DSPCriteres de performanceFamilles DSP de TI

Architecture des DSP

Figure 21 – Architecture typique duDSP

Memoire

converssion A/D , D/A

Ports

-Les DSP peuvent aussi contenir leselements suivants :

Unite Arithmetique centrale :

Unite arithmetique auxiliaire :

Ports serie :

Pr.Otman CHAKKOR DSP 87 / 136

Page 88: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Classification des DSPCriteres de performanceFamilles DSP de TI

Classification des DSP

Virgule fixe ou flottante : Un point essentiel des DSP est la representationdes nombres (les donnees) qu’ils peuvent manipuler. Il est possible dedistinguer deux familles.

Les donnees sont a virgule flottante pour des DSP de 32 bits, pra-tiquement, lorsque les donnees sont sur 16 bits, le DSP est a virgulefixe. C’est egalement le cas pour la famille DSP56000 a 24 bits deMotorola.

Pr.Otman CHAKKOR DSP 88 / 136

Page 89: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Classification des DSPCriteres de performanceFamilles DSP de TI

Criteres de performance

MFLOPS (Million Floating-Point Operations Per Second) : Mesurele nombre d’operation a virgule flottantes (multiplication, additions,soustractions, etc.) que le DSP a virgule flottante peut realiser en uneseconde. (Uniquement pour les DSP a virgule flottante.)

MIPS (Million Instructions Per Second) :Mesure le nombre des codesmachines (instructions)que le DSP peut effectuer en une seconde.Bien que cette mesure s’applique a tous les types de DSP, le MFLOPSest prefere dans le cas d’un DSP a virgule flottante.

Probleme : une instruction ne signifie pas la meme chose d’une famillea l’autre.

Pr.Otman CHAKKOR DSP 89 / 136

Page 90: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Classification des DSPCriteres de performanceFamilles DSP de TI

Criteres de performance

MACPS (MAC Par Second) : nombre d’operations MAC par se-conde.

MOPS (Million Operations Per Second). Mesure le nombre totald’operations que le DSP peut effectuer en une seconde. Par operations,il faut comprendre non seulement le traitement des donnees, maisegalement les acces DMA, les transferts de donnees, les operationsd’E/S, etc. cette definition mesure donc les performances globalesd’un DSP plutot que ses seules capacites de calcul.

Pr.Otman CHAKKOR DSP 90 / 136

Page 91: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Classification des DSPCriteres de performanceFamilles DSP de TI

Familles DSP de TI

Figure 22 – Differentes familles de DSP de TIPr.Otman CHAKKOR DSP 91 / 136

Page 92: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Classification des DSPCriteres de performanceFamilles DSP de TI

TMS320 Family

16-Bit Fixed Point Devices

C1x

C2x Fax Machines

C2xx Embedded Control

Voice Processing

C54x Digital Cellular Phones

32-Bit Floating Point De-vices

C3x videophones

C4x Parallel Processing

C6x Advanced VLIW Proces-sor : Wireless Base Stations

C8x Video Conferencing.

Pr.Otman CHAKKOR DSP 92 / 136

Page 93: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Classification des DSPCriteres de performanceFamilles DSP de TI

Documentations C6000

Figure 23 – Documentations C6000

Pr.Otman CHAKKOR DSP 93 / 136

Page 94: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Unites fonctionnellesFetch and Execute PacketsPipeliningRegistresModes d’adressageJeu d’instructions TMS320 C6xDirectives en AssembleurAssembleur LineaireTimersInterruption

TMS320C6713 :processeur a virgule flottant, architecture VLIW(Very-Long-Instruction-Word).

La memoire interne inclut deux niveaux :1 Memoire cache 4 KB de niveau 1 de code (program cache (LP1)).2 Memoire cache de donnee de niveau 1 L1D. 256 KB de niveau 2

partagee entre l’espace de donnee et programme (code).

Pr.Otman CHAKKOR DSP 94 / 136

Page 95: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Unites fonctionnellesFetch and Execute PacketsPipeliningRegistresModes d’adressageJeu d’instructions TMS320 C6xDirectives en AssembleurAssembleur LineaireTimersInterruption

Architecture TMS320C6x

Pr.Otman CHAKKOR DSP 95 / 136

Page 96: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Unites fonctionnellesFetch and Execute PacketsPipeliningRegistresModes d’adressageJeu d’instructions TMS320 C6xDirectives en AssembleurAssembleur LineaireTimersInterruption

CPU contient 8 unites fonctionnelles independantes et deux che-mins de donnees A et B.

Chaque chemin a sa propre operations de multiplication (.M)pour des operations arithmetiques (6 ALU) et logiques (.L).

Pr.Otman CHAKKOR DSP 96 / 136

Page 97: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Unites fonctionnellesFetch and Execute PacketsPipeliningRegistresModes d’adressageJeu d’instructions TMS320 C6xDirectives en AssembleurAssembleur LineaireTimersInterruption

Figure 24 – C6000 block diagram

Pr.Otman CHAKKOR DSP 97 / 136

Page 98: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Unites fonctionnellesFetch and Execute PacketsPipeliningRegistresModes d’adressageJeu d’instructions TMS320 C6xDirectives en AssembleurAssembleur LineaireTimersInterruption

Unites fonctionnelles

Chemin de donne A :

Operations de Multiplications (.M1)Operations Logiques et Arithmetiques (.L1)Branch, manipulation des bit, Operations arithmetiques (.S1)Loading/storing et Operations arithmetiques (.D1)

Chemin de donne B :

Operations de Multiplications (.M2)Operations Logiques et Arithmetiques (.L2)Branch, manipulation des bit, Operations arithmetiques (.S2)Loading/storing et Operations arithmetiques (.D2)

Tous transferts de donnees (not program) doit passer par .D1 et.D2

Pr.Otman CHAKKOR DSP 98 / 136

Page 99: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Unites fonctionnellesFetch and Execute PacketsPipeliningRegistresModes d’adressageJeu d’instructions TMS320 C6xDirectives en AssembleurAssembleur LineaireTimersInterruption

Configurations de memoires interne

Pr.Otman CHAKKOR DSP 99 / 136

Page 100: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Unites fonctionnellesFetch and Execute PacketsPipeliningRegistresModes d’adressageJeu d’instructions TMS320 C6xDirectives en AssembleurAssembleur LineaireTimersInterruption

Fetch and Execute Packets

L’architecture VELOCITI introduite par TI est derivee de l’archi-tecture VLIW (Very Long Instruction Word)

Execute packet (EP) consiste en un groupe des instructions quipeuvent etre executes en parallele durant le meme cycle d’hor-loge.

Le Nombre des EP dans fetch packet (FP) peut etre variablede 1 (avec 8 instructions parallele) jusqu’a 8 (pas d’instructions FPparallele). VLIW a ete modifiee pour que plus d’un seul EP etre incluedans un FP.

l’architecture

Pr.Otman CHAKKOR DSP 100 / 136

Page 101: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Unites fonctionnellesFetch and Execute PacketsPipeliningRegistresModes d’adressageJeu d’instructions TMS320 C6xDirectives en AssembleurAssembleur LineaireTimersInterruption

Fetch and Execute Packets

Figure 25 –

Figure 26 – One FP with three EPs showing the “p”bit of each instruction

Pr.Otman CHAKKOR DSP 101 / 136

Page 102: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Unites fonctionnellesFetch and Execute PacketsPipeliningRegistresModes d’adressageJeu d’instructions TMS320 C6xDirectives en AssembleurAssembleur LineaireTimersInterruption

Pipelining

Pipelining : caracteristique importante des DSP pour pouvoir executerles instructions en parallele. (timing)

Il y a trois phases de Pipelinig :1 Program Fetch (PF) :generer ”fetch address” (F1), envoie l’adresse

au memoire (F2), attend les donnees (F3), et lecture ”opcode” de lamemoire (F4).

2 Decoder (DC) : Decodage consiste de deux phases ; ”dispatchingvers les unites fonctionnels” (D1) et decodage (D2).

3 Executer : consiste de jusqu’a 6 phases (E1 jusqu’a E6) en fonctionde l’instruction.

Pr.Otman CHAKKOR DSP 102 / 136

Page 103: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Unites fonctionnellesFetch and Execute PacketsPipeliningRegistresModes d’adressageJeu d’instructions TMS320 C6xDirectives en AssembleurAssembleur LineaireTimersInterruption

Pipelining

L’etape de program fetch est composee de quatres phases :

[PG] : Generation de l’adresse de programme.

[PS] : Envoie de la direction de programme

[PW] : attente a l’acces a la memoire.

[PR] : reception du Packet fetch du programme.

L’etape de decodage est composee de deux phases :

[DP] :Envoie de l’instruction (dispatch)

[DC] :Decodage instruction

Figure 27 – Les Phases de Pipeline

Pr.Otman CHAKKOR DSP 103 / 136

Page 104: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Unites fonctionnellesFetch and Execute PacketsPipeliningRegistresModes d’adressageJeu d’instructions TMS320 C6xDirectives en AssembleurAssembleur LineaireTimersInterruption

[PS] : Envoie de la direction de programme.

[PR] : reception du Packet fetch du programme.

Figure 28 – [PR] + [PS]

Pr.Otman CHAKKOR DSP 104 / 136

Page 105: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Unites fonctionnellesFetch and Execute PacketsPipeliningRegistresModes d’adressageJeu d’instructions TMS320 C6xDirectives en AssembleurAssembleur LineaireTimersInterruption

Pipelining

Figure 29 – Phases de Pipeline

Figure 30 – Effets de l’operation de ”Pipelining”

Pr.Otman CHAKKOR DSP 105 / 136

Page 106: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Unites fonctionnellesFetch and Execute PacketsPipeliningRegistresModes d’adressageJeu d’instructions TMS320 C6xDirectives en AssembleurAssembleur LineaireTimersInterruption

Pipelining

L’etape Execution est composee de 6 phases (a point fixes) jusqu’a 10phases (a point flottant) a cause de retard (lattences) associes auxinstructions suivantes :

Instruction de multiplication, composee de 4 phases a cause d’unseul retard.

Instruction load, composee de 5 phases a causes de 4 retards (de-lays)

Instruction branch, composee de 6 phases a cause de 5 retards.

Pr.Otman CHAKKOR DSP 106 / 136

Page 107: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Unites fonctionnellesFetch and Execute PacketsPipeliningRegistresModes d’adressageJeu d’instructions TMS320 C6xDirectives en AssembleurAssembleur LineaireTimersInterruption

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 utilises comme des registresconditionnelles.

Les Registres A4· · ·A7 et B0· · ·B4 sont utilises 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-lises pour enregistrer et (apres une restauration) avant de retournerde la subroutine.

Pr.Otman CHAKKOR DSP 107 / 136

Page 108: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Unites fonctionnellesFetch and Execute PacketsPipeliningRegistresModes d’adressageJeu d’instructions TMS320 C6xDirectives en AssembleurAssembleur LineaireTimersInterruption

Register Files

Pr.Otman CHAKKOR DSP 108 / 136

Page 109: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Unites fonctionnellesFetch and Execute PacketsPipeliningRegistresModes d’adressageJeu d’instructions TMS320 C6xDirectives en AssembleurAssembleur LineaireTimersInterruption

Registres

C’est 32 registres sont consideres des registres de propos generales.Plusieurs registres sont aussi utilises pour le control et les interrup-tions.

Exemple : le registre de mode d’adressage (AMR) utilise pour lesregistres de l’adressage circulaire et le control des interruptions.

Figure 31 – Address Mode Register (AMR).

Pr.Otman CHAKKOR DSP 109 / 136

Page 110: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Unites fonctionnellesFetch and Execute PacketsPipeliningRegistresModes d’adressageJeu d’instructions TMS320 C6xDirectives en AssembleurAssembleur LineaireTimersInterruption

Modes d’adressage

Les modes d’adressage determinent comment on peut acceder a la memoire(cad comment on peut avoir acces aux donnees).il y deux types pour l’ar-chitecture C6713 :

1 Adressage indirect ou lineaire : tous les registres peuvent l’utili-ser.

2 Adressage Circulaire. ( le plus utilise) avec les registres de A4-A7(utilises par l’ unite .D1) et B4-B7 (utilise par l’unite .D2).

Pr.Otman CHAKKOR DSP 110 / 136

Page 111: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Unites fonctionnellesFetch and Execute PacketsPipeliningRegistresModes d’adressageJeu d’instructions TMS320 C6xDirectives en AssembleurAssembleur LineaireTimersInterruption

Adressage Indirect

*R le registre R contient l’adresse de la memoire ou la donnee eststockee.

*R++(d) le registre R contient l’adresse de la memoire (localisation).apres avoir utilise l’adresse memoire , R sera incremente (modifie), detelle facon a ce que l’adresse courante sera deplace (incrementee) parla valeur de deplacement d : si d=1 (default), la nouvelle adresseest R+1, ou bien R sera incremente directement vers la l’adressesuivante de la memoire.

*++R(d) l’adresse est pre-incrementee ou bien decalee par ”d”, detelle facon a ce que l’adresse courante est R+d.

*+R(d) l’adresse est pre-incremente par ”d”, de telle facon a ce quel’adresse courante est R+d (meme pour le cas precedent), 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

Page 112: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Unites fonctionnellesFetch and Execute PacketsPipeliningRegistresModes d’adressageJeu d’instructions TMS320 C6xDirectives en AssembleurAssembleur LineaireTimersInterruption

Adressage Circulaire

Ce type d’adressage , appele aussi ou adressage modulo est utilisepour creer des memoires buffer circulaires. cree en hardware, tresutilise par plusieurs algorithmes de DSP.(filtrage numerique ou pourles algorithmes de correlation).

le dsp C6x possede de circuit (hardware) specifique pour utiliser l’adres-sage circulaire.

Pr.Otman CHAKKOR DSP 112 / 136

Page 113: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Unites fonctionnellesFetch and Execute PacketsPipeliningRegistresModes d’adressageJeu d’instructions TMS320 C6xDirectives en AssembleurAssembleur LineaireTimersInterruption

Adressage Circulaire

Pour illustrer ce mode d’adressage et son interet particulier nous al-lons nous baser sur une des operations fondamentale du traitementnumerique du signal :filtrage. Considerons un filtre RIF regit par uneequation de recurrence de la forme :

y(n) =

N−1∑k=0

ak.x(n− k)

= a0x(n) + a1x(n− 1) + a2x(n− 2) + · · ·+ aN−1.x(n−(N−1))

On suppose que notre filtre doit etre implemente en temps reel. Pourcalculer un echantillon de sortie on doit avoir acces a un certainnombre d’echantillons d’entree les plus recents. Si on suppose quece filtre est d’ordre 8 c.a.d (8 coefficients : a0 jusqu’a a7)

Pr.Otman CHAKKOR DSP 113 / 136

Page 114: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Unites fonctionnellesFetch and Execute PacketsPipeliningRegistresModes d’adressageJeu d’instructions TMS320 C6xDirectives en AssembleurAssembleur LineaireTimersInterruption

Adressage Circulaire

cella implique que l’on a besoins d’avoir les 8 echantillons d’entreeles plus recents(x[n], x[n − 1], x[n − 2], · · ·x[n − 7])pour produireun echantillon en sortie ; ces 8 echantillons doivent etre stockes enmemoire et mis a jour chaque fois qu’un nouvel echantillon est acquis.C’est la le principe de l’adressage circulaire (ou adressage modulo)

Figure 32 – L’adressage modulo : a gauche l’etat du buffer a l’instant na droite a l’instant n + 1 (apres un nouvel echantillon)

Pr.Otman CHAKKOR DSP 114 / 136

Page 115: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Unites fonctionnellesFetch and Execute PacketsPipeliningRegistresModes d’adressageJeu d’instructions TMS320 C6xDirectives en AssembleurAssembleur LineaireTimersInterruption

Jeux d’instruction TMS320 C6x, Assembleur

Le format du code assembleur est represente sous forme :Label || [condition ] Instruction Unit Operands ; commentaire

Label : (optionnel) ; represente une adresse ou localisation dans lamemoire, qui contient une instruction ou donnee. (lettre ou ( ) suivied’une lettre)

|| : si l’instruction est en train de s’executer en parallele par rapporta l’instruction precedente.

[ ] : ce champs est optionnel, pour que l’instruction associee soit condi-tionnelle : 5 registres conditionnels sont utilises A1,A2,B0,B1 etB2. toutes les instructions dans C6x peut etre conditionnelle (executee).Exemple :

[A2] : Execution de l’instruction associee si A2 6=0[!A2] : Execution de l’instruction associee si A2 = 0

Pr.Otman CHAKKOR DSP 115 / 136

Page 116: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Unites fonctionnellesFetch and Execute PacketsPipeliningRegistresModes d’adressageJeu d’instructions TMS320 C6xDirectives en AssembleurAssembleur LineaireTimersInterruption

Jeu d’instructions TMS320 C6x, Assembleur

Le code en assembleur est represente selon les champs suivants :Label || [ condition] Instruction Unit Operands ; commen-taire

Toutes les instructions de C6X peuvent etre conditionnels avec lesregistres A1,A2,B0,B1 et B2 en determinant quand le registre condi-tionnel est egale a zero.

Le champs Instruction peut etre soit :

Mnemonique : Instruction actuelle utilise (en execution)Directive Assembleur : commande assembleur : .word valeur : quireserve 32 bits dans la memoire et le remplie par la valeur utilisee.

Le champs Unites : un parmi 8 unite de CPU (optionel)

Pr.Otman CHAKKOR DSP 116 / 136

Page 117: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Unites fonctionnellesFetch and Execute PacketsPipeliningRegistresModes d’adressageJeu d’instructions TMS320 C6xDirectives en AssembleurAssembleur LineaireTimersInterruption

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

Page 118: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Unites fonctionnellesFetch and Execute PacketsPipeliningRegistresModes d’adressageJeu d’instructions TMS320 C6xDirectives en AssembleurAssembleur LineaireTimersInterruption

Load/store

LDH .D2 *B2++,B7 ; load(B2) =⇒ B7 , incrementer B2

|| LDH .D1 *A2++,A7 ; load(A2) =⇒ A7, incrementer A2

Charger dans B7 (demi-mot) (16 bits) dont l’adresse dans la memoireest donnee/pointee par B2. Ensuite, le registre B2 est incremente versla prochaine adresse de la memoire (vers le haut).

En parallele, (par le mode d’adressage indirect) load dans A7 le contenude la memoire dont l’adresse est donnee par A2, Ensuite l’adresse deregistre A2 est vers la prochaine adresse de la memoire (vers le haut).

Remarque : L’instruction LDW charge le mot complet 32 bits enutilisant les deux chemins A et B.

Pr.Otman CHAKKOR DSP 118 / 136

Page 119: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Unites fonctionnellesFetch and Execute PacketsPipeliningRegistresModes d’adressageJeu d’instructions TMS320 C6xDirectives en AssembleurAssembleur LineaireTimersInterruption

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 ; decrement A1 (le registre A1

;est utilise comme compteur de la boucle, apres sa

;decrementation 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

Page 120: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Unites fonctionnellesFetch and Execute PacketsPipeliningRegistresModes d’adressageJeu d’instructions TMS320 C6xDirectives en AssembleurAssembleur LineaireTimersInterruption

Load /Store

LDH .D2 *B2++,B7 ; load (B2)--> B7, incremente B2

|| LDH .D1 *A2++,A7 ; load (A2)--> A7, incremente A2

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

specifiee/pointee par B2.

Apres, le registre B2 est incremente (postincremente)

pour pointer vers l’adresse de memoire juste superieure.

En parallele, autre instruction de mode d’adressage indirecte

charge (load) dans A7 le contenu de la memoire dont l’adresse

est specifiee par A2, apres A2 est incremente pour pointer vers

l’adresse de memoire juste superieure.

Pr.Otman CHAKKOR DSP 120 / 136

Page 121: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Unites fonctionnellesFetch and Execute PacketsPipeliningRegistresModes d’adressageJeu d’instructions TMS320 C6xDirectives en AssembleurAssembleur LineaireTimersInterruption

Load /Store

Remarque : L’instruction LDW charge le mot complet (32 bits),dans ce cas deuc chemins ” .D1 et D2 ” doivent etre utiliser pourcharger les donnees de la memoire vers les registres

L’instruction LDWW charge deux double-mots (32 bits) simultanementen utilisant registres dans les deux cote A et B.

L’instruction LDW stocke le mot de 32 bits A1 dans la memoiredont l’adresse est specifiee par A4 decale de 20 mots de 32 bits (80bytes). L’adresse de registre A4 est preincrementee avec un decalage(offset), mais elle n’est pas modifie (++ est utisie si A4 sera modifie).

Pr.Otman CHAKKOR DSP 121 / 136

Page 122: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Unites fonctionnellesFetch and Execute PacketsPipeliningRegistresModes d’adressageJeu d’instructions TMS320 C6xDirectives en AssembleurAssembleur LineaireTimersInterruption

Autre que le jeu d’instructions du processeur, il y a des com-mandes speciales a l’assembleur qui commandent l’assembleur d’ef-fectuer differents taches lors du montage du code.

Assembly code instructions sont soient des directives ou des mnemo-niques.Exemple d’une directive : .sect “ name” : cree une section del’information (donnee ou code)

Pr.Otman CHAKKOR DSP 122 / 136

Page 123: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Unites fonctionnellesFetch and Execute PacketsPipeliningRegistresModes d’adressageJeu d’instructions TMS320 C6xDirectives en AssembleurAssembleur LineaireTimersInterruption

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 utilisee pour declarer les noms des symbolesdefinies dans un autre fichier (similaire au extern dans le langage C)

La directive .space reserve l’espace memoire avec la taille determineeen bytes.Exemple : buffer .space 128

Pr.Otman CHAKKOR DSP 123 / 136

Page 124: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Unites fonctionnellesFetch and Execute PacketsPipeliningRegistresModes d’adressageJeu d’instructions TMS320 C6xDirectives en AssembleurAssembleur LineaireTimersInterruption

Directives en Assembleur

.short : pour initialiser un entier de 16 bits.

.int : pour initialiser un enier de 32 bits (aussi .word ou .long), lecompilateur traite la valeur de donnee de type long comme une va-leur de 40 bits, l’assembleur C6x le considere comme 32 bits.

.float : pour initialiser une constante de 32 bits simple precisionselon la norme IEEE.

.double : pour initialiser une constante de 64 bits double precisionselon la norme IEEE.

Pr.Otman CHAKKOR DSP 124 / 136

Page 125: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Unites fonctionnellesFetch and Execute PacketsPipeliningRegistresModes d’adressageJeu d’instructions TMS320 C6xDirectives en AssembleurAssembleur LineaireTimersInterruption

Assembleur Lineaire

Definition

Linear assembly : c’est une alternative de langage de programmationC et l’assembleur (optimizer) : similaire au langage assembleur, mais ilpermet l’utilisation des noms des symboles et ne necessite pas la mai-trise de l’architecture interne des registres (et la sequence d’executiondes evenements) dans le DSP.Son avantage par rapport a C c’est qu ilutilise le DSP d’une facon plus efficace, et son avantage par rapport al’assembleur c’est qu il necessite moins de temps pour tourner......

Pr.Otman CHAKKOR DSP 125 / 136

Page 126: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Unites fonctionnellesFetch and Execute PacketsPipeliningRegistresModes d’adressageJeu d’instructions TMS320 C6xDirectives en AssembleurAssembleur LineaireTimersInterruption

Timers

Si on veut realiser des operations correspondant a intervalle de tempsprecis on utilisera un timer.

Deux Temporisateur de 32 bits peuvent etre utilises pour compterle duree ou evenements , ou pour interrompre le CPU.

Le temporisateur commande un ADC de commencer la conversion,ou a un controleur DMA pour commencer le transfert de donnees.

Pr.Otman CHAKKOR DSP 126 / 136

Page 127: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Unites fonctionnellesFetch and Execute PacketsPipeliningRegistresModes d’adressageJeu d’instructions TMS320 C6xDirectives en AssembleurAssembleur LineaireTimersInterruption

Pr.Otman CHAKKOR DSP 127 / 136

Page 128: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Figure 33 – carte de programmation DSK C6713

Pr.Otman CHAKKOR DSP 128 / 136

Page 129: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Figure 34 – Diagramme de DSK C6713

Pr.Otman CHAKKOR DSP 129 / 136

Page 130: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Figure 35 – Diagramme de bloques de AIC23

Pr.Otman CHAKKOR DSP 130 / 136

Page 131: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Memory Map

4 Gbytes (232) de l’espace memoire :

Memoire interne de programme.

Memoire interne de donnees.

Espace de memoires externe

Internal peripheral space

Pr.Otman CHAKKOR DSP 131 / 136

Page 132: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

Figure 36 – Interface de memoire externe, EMIF

EMIF : External Memory Interface

Pr.Otman CHAKKOR DSP 132 / 136

Page 133: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

McBSP : Multichannel Buffer Serial Port

Communication Full-duplex.

Registres de donnees ”double-buffered ”.

Independent framing and clocking for receive and transmit

Direct interface to codecs, analog interface chips (AICs), and otherserially g connected analog-to-dig ( ) ital (A/D) and digital-to-analog(D/A) chips.

Pr.Otman CHAKKOR DSP 133 / 136

Page 134: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

HPI : Host Peripheral Interface

Le port parallele avec lequel le processeur host peut avoir acces di-rectement au memoire de CPU :

Figure 37 – HPI : Host Peripheral InterfacePr.Otman CHAKKOR DSP 134 / 136

Page 135: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue TMS320C6x

Diagramme Bloque DSK C6713

GPIO : General-Purpose Interrupt I/O

peuvent etre configurer comme entrees ou sorties.GPIO peut produire des interruptions CPU et des evenements EDMA.

Figure 38 – GPIO : General-Purpose Interrupt I/OPr.Otman CHAKKOR DSP 135 / 136

Page 136: Module :Informatique Industrielle DSP

IntroductionArchitecture des systemes up

Architecture des DSPArchitectue 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