Download - 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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
IntroductionArchitecture des systemes up
Architecture des DSPArchitectue TMS320C6x
Diagramme Bloque DSK C6713
Figure 34 – Diagramme de DSK C6713
Pr.Otman CHAKKOR DSP 129 / 136
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
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
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
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
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
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
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