Les processeurs traitement du signal (DSP)



Documents pareils
Exécution des instructions machine

1 Architecture du cœur ARM Cortex M3. Le cœur ARM Cortex M3 sera présenté en classe à partir des éléments suivants :

GPA770 Microélectronique appliquée Exercices série A

Architecture des Ordinateurs. Partie II:

DU BINAIRE AU MICROPROCESSEUR - D ANGELIS CIRCUITS CONFIGURABLES NOTION DE PROGRAMMATION

Compilation (INF 564)

Conception de circuits numériques et architecture des ordinateurs

ASR1 TD7 : Un microprocesseur RISC 16 bits

IV- Comment fonctionne un ordinateur?

Représentation des Nombres

Partie 1. Professeur : Haouati Abdelali. CPGE Lycée Omar Ibn Lkhattab - Meknès haouaticpge@gmail.com

ÉCOLE POLYTECHNIQUE DE MONTRÉAL. Département de Génie Électrique. La technologie de TEXAS INSTRUMENTS DSP pour le cours Analyse des Signaux ELE2700

Hiérarchie matériel dans le monde informatique. Architecture d ordinateur : introduction. Hiérarchie matériel dans le monde informatique

Conférence sur les microcontroleurs.

Structure de base d un ordinateur

Licence Sciences et Technologies Examen janvier 2010

Architecture des ordinateurs

Introduction à l informatique temps réel Pierre-Yves Duval (cppm)

Architecture matérielle des systèmes informatiques

Programmation C. Apprendre à développer des programmes simples dans le langage C

Initiation au HPC - Généralités

Rappels d architecture

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

Microprocesseur + Logiciel

CQP 112 Introduc/on à la programma/on. Thème 2 : Architecture d un système informa/que. Département d informa/que

ISO/CEI NORME INTERNATIONALE

TD Architecture des ordinateurs. Jean-Luc Dekeyser

MICROINFORMATIQUE NOTE D APPLICATION 1 (REV. 2011) ARITHMETIQUE EN ASSEMBLEUR ET EN C

Fonctionnement et performance des processeurs

Cours Informatique 1. Monsieur SADOUNI Salheddine

Cours 3 : L'ordinateur

Sur un ordinateur portable ou un All-in-One tactile, la plupart des éléments mentionnés précédemment sont regroupés. 10) 11)

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Chapitre V : La gestion de la mémoire. Hiérarchie de mémoires Objectifs Méthodes d'allocation Simulation de mémoire virtuelle Le mapping

Limitations of the Playstation 3 for High Performance Cluster Computing

Architecture des calculateurs

Architecture des ordinateurs

INTRODUCTION A L ELECTRONIQUE NUMERIQUE ECHANTILLONNAGE ET QUANTIFICATION I. ARCHITECTURE DE L ELECRONIQUE NUMERIQUE

Informatique UE 102. Jean-Yves Antoine. Architecture des ordinateurs et Algorithmique de base. UFR Sciences et Techniques Licence S&T 1ère année

Assembleur. Faculté I&C, André Maurer, Claude Petitpierre

Alchin Couderc Flambard TBSEID 2

CH.3 SYSTÈMES D'EXPLOITATION

Métriques de performance pour les algorithmes et programmes parallèles

Cours 1 : Qu est-ce que la programmation?

Leçon 1 : Les principaux composants d un ordinateur

Introduction à l architecture des ordinateurs. Adrien Lebre Décembre 2007

Systèmes et traitement parallèles

Projet audio. Analyse des Signaux ELE2700

Parallélisme et Répartition

La mémoire. Un ordinateur. L'octet. Le bit

MODULE I1. Plan. Introduction. Introduction. Historique. Historique avant R&T 1ère année. Sylvain MERCHEZ

Performance et usage. La différence NETGEAR - R7000. Streaming HD illimitée

Codage d information. Codage d information : -Définition-

Chapitre 1 : Introduction aux méthodologies de conception et de vérification pour SE

IFT2880 Organisation des ordinateurs et systèmes

Architecture des ordinateurs Introduction à l informatique

Thème 3 Conception et vérification d architectures de systèmes sur puce

PIC : COURS ASSEMBLEUR

Conversion d un entier. Méthode par soustraction

J AUVRAY Systèmes Electroniques TRANSMISSION DES SIGNAUX NUMERIQUES : SIGNAUX EN BANDE DE BASE

Architecture des Ordinateurs Première partie. Licence d Informatique - IUP Miage - FIIFO

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Mesure de performances. [Architecture des ordinateurs, Hennessy & Patterson, 1996]

Prise en main. Prise en main - 0

Logiciel de Base. I. Représentation des nombres

Potentiels de la technologie FPGA dans la conception des systèmes. Avantages des FPGAs pour la conception de systèmes optimisés

Fiche technique CPU 315SN/PN (315-4PN33)

TAI049 Utiliser la virtualisation en assistance et en dépannage informatique TABLE DES MATIERES

Temps Réel. Jérôme Pouiller Septembre 2011

Chapitre 10 Arithmétique réelle

ELP 304 : Électronique Numérique. Cours 1 Introduction

Les systèmes embarqués Introduction. Richard Grisel Professeur des Universités Université de Rouen Nacer Abouchi Professeur ESCPE Lyon

Cours 1 : La compilation

Génération de code binaire pour application multimedia : une approche au vol

V- Manipulations de nombres en binaire

Tout savoir sur le matériel informatique

Contributions à l expérimentation sur les systèmes distribués de grande taille

Informatique Industrielle Année Architecture des ordinateurs Note de cours T.Dumartin

On distingue deux grandes catégories de mémoires : mémoire centrale (appelée également mémoire interne)

Une version javascript sera disponible directement dans le cours prochainement.

CONFIGURATION DE L AUTOMATE SIEMENS

Fiche technique CPU 314SC/DPM (314-6CG13)

Informatique Générale

THEME 1 : L ORDINATEUR ET SON ENVIRONNEMENT. Objectifs

Quantification Scalaire et Prédictive

IFT1215 Introduction aux systèmes informatiques

Performances et optimisations

Éléments de programmation et introduction à Java

Un ordinateur, c est quoi?

REALISATION d'un. ORDONNANCEUR à ECHEANCES

Présentation du système informatique utilisé et éléments d architecture des ordinateurs

Electron S.R.L. SERIE B46 - SYSTEMES DIDACTIQUES DE TELEPHONIE

Tests de performance du matériel

Partie 7 : Gestion de la mémoire

Architecture ordinateur. Organisation mémoire et Entrées/Sorties

Les liaisons SPI et I2C

Fiche Technique. Cisco Security Agent

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

Introduction aux systèmes temps réel. Iulian Ober IRIT

Transcription:

Les processeurs traitement du signal (DSP) Daniel Etiemble de@lri.fr 1 Les classes de processeurs Généralistes haute performance Pentiums, PowerPC, SPARC Logiciels d usage général OS important - UNIX, XP Statiuons de travail, PC Processeurs embarqués et processeurs «cœurs» ARM, 486SX, Hitachi SH7000, NEC V800 Un seul programme OS léger, souvent temps réel Support DSP Téléphones portables, électronique grand public (Lecteurs de CD, etc.) Microcontrôleurs Le coût est très importants Mot de petite taille, le plus souvent 8 bits De très loin le plus gros nombre de processeurs Automobiles, thermostats, électro-ménager... Coût croissant Nombre croissant 2 1

Introduction aux DSP Traitement numérique du signal : application d opérations mathématiques sur des signaux représentés sous forme numérique Représentation des signaux sous forme de séquences d échantillons Les signaux numériques sont obtenus à partir de signaux physiques via des récepteurs (ex : microphones) et des convertisseurs analogiques-numériques (ADC) Les signaux numériques sont reconvertis en signaux physiques par des convertisseurs numériques-analogiques (DAC) Processeurs de traitement du signal (DSP) : système électronique qui traite des signaux numériques 3 Algorithmes et applications typiques Applications Instrumentation et mesures Communications Traitement audio et vidéo Graphique, traitement d images, rendu 3- D Navigation, radar, GPS Contrôle - robotique, vision, guidage Algorithmes Filtrage fréquentiel - FIR et IIR Transformations temps en fréquence - FFT Corrélation 4 2

Les tâches des DSP Caractéristiques communes: Calculs numériques répétitifs Précision numérique Débit mémoire important, surtout par accès à des tableaux Traitement temps réel Réalisation efficace en minimisant: Coût Puissance consommée Utilisation mémoire Temps de développement 5 Deux cultures différentes Le microprocesseur généraliste est le descendant de l ENIAC (Eckert, Mauchly, Von Neumann) Les DSP sont des descendants des processeurs analogiques utilisant du matériel analogiques pour traiter des signaux physiques Les processeurs analogiques ont été remplacés par des processeurs numériques Avantages du numérique par rapport à l analogique Des histoires différentes et des applications différentes ont conduit à des termes différents, des métriques différentes et certaines inventions nouvelles Des marchés en expansion conduisant à une «guerre» culturelle 6 3

Spécificités des DSP/processeurs généralistes Les DSP ont tendance à être utilisé pour un programme, pas pour de nombreux programmes Les systèmes d exploitation sont beaucoup plus simples Pas de mémoire virtuelle, pas de protection Les DSP exécutent parfois des applications temps réel strict... On doit tenir compte de tout ce qui intervient dans un intervalle de temps donné Toutes les interruptions ou exceptions possibles doivent être prises en compte dans l intervalle de temps Les exceptions sont «coûteuses» Les DSP ont un flot de données continu infini 7 Les applications «tueuses» des DSP En terme de volume financier, les marchés les plus importants des DSP aujourd hui sont Les téléphones portables Les pageurs et autres systèmes sans fils Les modems Les contrôleurs de disque dur La plupart exigent de bonnes performances Toutes demandes un bas coût Beaucoup demande une faible consommation d énergie La tendance est vers de meilleurs supports pour ce type d applications essentielles 8 4

La culture DSP La culture DSP a des représentations graphiques pour représenter les formules «flowchart» pour les formules, les boucles internes (et non des programmes) Certaines sont naturelles pour l addition, X pour la multiplication D autres sont bizarres Z -1 signifie prendre la variable de l itération précédente Ces graphes sont triviaux à interpréter. 9 Le filtrage FIR Les m échantillons les plus récents dans une ligne à retard (Xi) Le nouvel échantillon fait avancer les données dans la ligne à retard L étape est une addition-multiplication Chaque étape (M+1 au total) a besoin de Deux accès aux données Une multiplication Une accumulation Une écriture mémoire pour mettre à jour la ligne à retard L objectif : 1 étape du filtre FIR par cycle d instruction du DSP 10 5

Les hypothèses DSP Les processeurs lancent/exécutent/terminent les instructions dans l ordre Les processeurs lancent une instruction par cycle Chaque ligne de code assembleur correspond à une instruction CPI = 1 Le calcul flottant est lent et cher 11 Le filtre FIR sur un processeur généraliste loop: lw x0, 0(r0) lw y0, 0(r1) mul a, x0,y0 add y0,a,b sw y0,(r2) inc r0 inc r1 inc r2 dec ctr tst ctr jnz loop Problèmes : goulet d étranglement bus/mémoire Surcoût du code de gestion de boucle 12 6

DSP 1ère génération (1982): TI TMS32010 Virgule fixe 16 bits Architecture Harvard Mémoires instructions et données séparées Accumulateur Jeu d instructions spécialisé Load and Accumulate Temps de la multiplicationaccumulation (MAC) : 390 ns; 228 ns aujourd hui Processeur Chemin Données : Mem Registre T UAL Mémoire instructions Mémoire données Multiplieur Registre P Accumulateur 13 Code du filtre FIR sur TMS 32010 X4, H4,... Sont des adresses mémoire directes (absolues) : LT X4 ; Load T with x(n-4) MPY H4 ; P = H4*X4 LTD X3 ; Load T with x(n-3); x(n-4) = x(n-3); ; Acc = Acc + P MPY H3 ; P = H3*X3 LTD X2 MPY H2... Deux instructions par étape, avec déroulage 14 7

Les caractéristiques communes de la plupart des DSP Chemin de données organisé pour traitement du signal Jeu d instructions spécialisé Plusieurs bancs mémoire et plusieurs bus Modes d adressage spécialisés Contrôle d exécution spécialisé Périphériques spéciaux pour le traitement du signal 15 L arithmétique utilisée Les DSP ont besoin de nombres représentant le monde réel «réels»/ fractions Les DSP ont besoin de nombre pour les adresses Entiers Offrent la virgule fixe et les entiers S. -1 x < 1 virgule S. 2 N 1 x < 2 N 1 virgule 16 8

Précision des nombres La taille des mots influe sur la précision des nombres en virgule fixe Les DSP ont des mots de 16, 20 ou 24 bits Les DSP travaillant en flottant coûtent deux à quatre fois plus chers que ceux en virgule fixe, sont plus lents Les programmeurs de DSP vont fixer l étendue des valeurs à l intérieur du code Bibliothèques logicielles Exposant explicite séparé Flottant par bloc : un seul exposant pour un ensemble de parties fractionnaires Le support du calcul flottant simplifie le développement logiciel 17 Les débordements Les DSP descendent de l analogique Qu arrive-t-il lorsqu on augmente une entrée (augmente le volume sur une chaîne stéréo?) Signification de l arithmétique modulo? Utilisation de l arithmétique saturée Positionner à la valeur la plus positive ou la plus négative Beaucoup d algorithmes utilisent ce modèle 18 9

La multiplication Matériel spécialisé pour effectuer toutes les opérations arithmétiques en 1 cycle Plus de 50% des instructions peuvent avoir besoin du multiplieur Latence du multiplieur : 1 cycle Besoin de la multiplication accumulation (MAC) Un multiplieur n bit génère un produit sur 2n bits 19 Accumulateur On ne veut pas de débordement ou devoir étendre l accumulateur Option 1 : accumulateur plus grand que le produit : «bits de garde» DSP Motorola : 24 b x 24 b produit 48 b, accumulateur 56 b Option 2 : décaler à droite et arrondir le produit avant l addition Multiplieur Multiplieur Déc. UAL UAL Accumulateur G Accumulateur 20 10

Les arrondis Même avec des bits de garde, on doit arrondir pour ranger l accumulateur en mémoire 3 options standard Troncation : tronquer les résultats résultat biaisé Arrondi au plus proche < 1/2 arrondi vers le bas, 1/2 arrondi vers le haut (plus positif) biais réduit Convergent: < 1/2 arrondi vers le bas, > 1/2 arrondi vers le haut (plus positif), = 1/2 arrondi pour faire du bit le moins significatif un 0 (+1 si 1, +0 si 0) IEEE 754 appelle cela round to nearest even 21 Mémoire des DSP L étape FIR implique plusieurs accès mémoire Les DSP ont besoin de plusieurs ports de données Certains DSP ont des techniques ad hoc pour réduire le besoin en bande passante mémoire Tampon de répétition d instructions do 1 instruction 256 times Inhibe souvent les interruptions, ce qui augmente le temps de réponse des interruptions Les DSP n ont pas de caches de données Peuvent avoir plusieurs mémoires de données 22 11

Les modes d adressage Ont les modes d adressage standard : immédiat, déplacement, registre indirect Veulent que le chemin de données MAC soit occupé en permanence Hypothèses Toute instruction supplémentaire implique un surcoût en cycles d horloge pour la boucle interne Les modes d adressage complexes sont utiles Ne pas utiliser le chemin de données pour calculer des adresses Modes registre indirect autoincrémenté/autodécrémenté lw r1,0(r2)+ // r1 M[r2] ; r2< r2+1 La mise à jour peut être avant l adressage, positive ou négative 23 Les tampons Les DSP traitent en continu des E/S Interagissent souvent un tampon d E/S (ligne à retard) Pour réduire les besoins mémoire, le tampon est souvent organisé comme un tampon circulaire Technique pour contrôler le non débordement du tampon circulaire Option 1 : on a un registre de début et un registre de fin à utiliser avec l adressage auto-incrémenté. On revient au début quand on atteint la fin du tampon Option 2 : on a un registre de longueur du tampon. On suppose que le tampon débute sur une adresse alignée. On revient au début quand on atteint la fin Tout DSP a un mode d adressage «modulo» ou «circulaire» 24 12

L adressage pour la FFT Les FFT commencent ou finissent avec un ordre lié au «papillon» FFT 0 (000) 0 (000) 1 (001) 4 (100) 2 (010) 2 (010) 3 (011) 6 (110) 4 (100) 1 (001) 5 (101) 5 (101) 6 (110) 3 (011) 7 (111) 7 (111) Mode d adressage optionnel adresse «bit reverse» à utiliser avec l adressage auto-incrémenté Beaucoup de DSP ont l adressage «bit reverse» pour la FFT base 2. 25 Les instructions DSP Peuvent spécifier plusieurs opérations en une seule instruction Doivent avoir la multiplication accumulation (MAC) Doivent permettre des transferts en parallèle Ont généralement un support spécial pour les boucles pour réduire le surcoût de branchement Boucle pour une instruction ou une séquence Compteur d itérations Peuvent avoir des décalages à gauche arithmétique saturant Peuvent avoir l exécution conditionnelle pour réduire les branchements 26 13

Les critères de performance des DSP Le nombre de MAC des DSP est le critère de vitesse Les DSP sont jugés sur leur capacité à avoir leurs multiplieurs occupés 100% du temps Les benchmarks des DSP Les filtres IIR (Infinite Impulse Response) Les filtres FIR (Finite Impulse Response) La FFT Les convolutions Pour les DSP, les algorithmes sont rois La compatibilité binaire n est pas encore un problème Le logiciel n est pas (encore) roi Les programmeurs écrivent encore en assembleur pour minimiser la surface de la ROM dans le circuit DSP. 27 Schéma fonctionnel du TMS320C203/LC203 (1995) 28 14

Schéma fonctionnel du TMS320C30 29 Schéma fonctionnel du CPU TMS320C3x 30 15

Schéma fonctionnel mémoire du TMS320C3x 31 Schéma fonctionnel du TMS320C54x 32 16

Schéma fonctionnel TMS320C6201 Program Cache / Program Memory 32-bit address, 256-Bit data512k Bits RAM Host Port Interface Ext. Memory Interface Pwr Dwn 4- DMA C6201 CPU Megamodule L1 Data Path 1 A Register File Instruction Dispatch M1 Program Fetch Instruction Decode D1 Data Path 2 B Register File D2 M2 Data Memory 32-Bit address, 8-, 16-, 32-Bit data 512K Bits RAM S2 L2 Control Registers Control Logic Test Emulation Interrupts 2 Timers 2 Multichannel buffered serial ports (T1/E1) 33 Chemin de données C62x Registers A0 - A15 Registers B0 - B15 1X 2X S2 D DL SL SL DL L1 DDATA_O1 (store data) D S2 D S2 M1 DDATA_I1 (load data) D S2 D1 S2 D2 D M2 DADR1 DADR2 (address) (address) S2 D S2 D DL SL SL DL D S2 S2 DDATA_I2 (load data) L2 DDATA_O2 (store data) Chemins de croisement Chemins d écriture 40 bits (8 MSBs) Chemins lecture/écriture 40 bits 34 17

Schéma fonctionnel du DSP TMS320C6701 Program Cache/Program Memory 32-bit address, 256-Bit data 512K Bits RAM Host Port Interface External Memory Interface Power Down 4 Channel DMA C67x Floating-Point CPU Core L1 Data Path 1 A Register File Instruction Dispatch M1 Program Fetch D1 Data Memory 32-Bit address 8-, 16-, 32-Bit data 512K Bits RAM Instruction Decode Data Path 2 B Register File D2 M2 S2 L2 Control Registers Control Logic Test Emulation Interrupts 2 Timers 2 Multichannel buffered serial ports (T1/E1) 35 CPU TMS320C67x C67x Floating-Point CPU Core Program Fetch Instruction Dispatch Instruction Decode Data Path 1 Data Path 2 A Register File B Register File Control Registers Control Logic Test Emulation L1 M1 D1 D2 M2 S2 L2 Interrupts Arithmetic Logic Unit Auxiliary Logic Unit Multiplier Unit Floating-Point Capabilities 36 18

Chemins de données C67x 2 Data Paths 8 Functional Units Orthogonal/Independent 2 Floating Point Multipliers 2 Floating Point Arithmetic 2 Floating Point Auxiliary Control Independent Up to 8 32-bit Instructions Registers 2 Files 32, 32-bit registers total Cross paths (1X, 2X) L-Unit (L1, L2) Floating-Point, 40-bit Integer ALU Bit Counting, Normalization S-Unit (, S2) Floating Point Auxiliary Unit 32-bit ALU/40-bit shifter Bitfield Operations, Branching M-Unit (M1, M2) Multiplier: Integer & Floating-Point D-Unit (D1, D2) 32-bit add/subtract Addr Calculations Registers A0 - A15 Registers B0 - B15 1X 2X S2 D DL SL SL DL L1 D S2 D S2 M1 D S2 D1 S2 D2 D S2 M2 D S2 D S2 DL SL SL DL D L2 S2 37 Multiprocesseur MIMD TMS320C80 (1996) 38 19