Exemples d applications



Documents pareils
Exécution des instructions machine

Conception de circuits numériques et architecture des ordinateurs

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

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

Fonctionnement et performance des processeurs

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

Systèmes et traitement parallèles

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.

Rappels d architecture

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

Conception de Systèmes de Communications Numériques

Initiation au HPC - Généralités

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Compilation (INF 564)

Architecture des Ordinateurs. Partie II:

Architecture des calculateurs

Quantification Scalaire et Prédictive

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

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

Transmission de données. A) Principaux éléments intervenant dans la transmission

LABO 5 ET 6 TRAITEMENT DE SIGNAL SOUS SIMULINK

Tout savoir sur le matériel informatique

Architecture des ordinateurs

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

Informatique Générale

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

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

EMETTEUR ULB. Architectures & circuits. Ecole ULB GDRO ESISAR - Valence 23-27/10/2006. David MARCHALAND STMicroelectronics 26/10/2006

ASR1 TD7 : Un microprocesseur RISC 16 bits

Architecture des ordinateurs

ISO/CEI NORME INTERNATIONALE

energy BOX WEB Automates de GTB

Comme chaque ligne de cache a 1024 bits. Le nombre de lignes de cache contenu dans chaque ensemble est:

Vers du matériel libre

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

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

UE C avancé cours 1: introduction et révisions

Leçon 1 : Les principaux composants d un ordinateur

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

UE Programmation Impérative Licence 2ème Année

Représentation des Nombres

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

Livrable 2.1 Rapport d analyse et de restructuration de code monothread des modules P, T, Q et F de l encodage MPEG-4 AVC

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

Software and Hardware Datasheet / Fiche technique du logiciel et du matériel

Séminaire RGE REIMS 17 février 2011

Gestion de mémoire secondaire F. Boyer, Laboratoire Sardes

Microprocesseur + Logiciel

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

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

Étude des Corrélations entre Paramètres Statiques et Dynamiques des Convertisseurs Analogique-Numérique en vue d optimiser leur Flot de Test

Réseaux M2 CCI SIRR. Introduction / Généralités

Projet de Traitement du Signal Segmentation d images SAR

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

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

Une méthode de conception de systèmes sur puce

Performances et optimisations

Choix d'un serveur. Choix 1 : HP ProLiant DL380 G7 Base - Xeon E GHz

xdsl Digital Suscriber Line «Utiliser la totalité de la bande passante du cuivre»

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

La carte à puce. Jean-Philippe Babau

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

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

Les Réseaux sans fils : IEEE F. Nolot

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

Robot WIFIBOT Lab V3. 4 roues motrices

Sanity Check. bgcolor mgcolor fgcolor

DAC. avec interface USB audio et préampli stéréo Casque CONVERTISSEUR DIGITAL VERS ANALOGIQUE. Guide d utilisation V1.1 Jan 2011

Licence Sciences et Technologies Examen janvier 2010

Ordinateur portable Latitude E5410

QUESTION 1 {2 points}

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

IFT1215 Introduction aux systèmes informatiques


Groupe Eyrolles, 2000, 2004, ISBN :

CM2 L architecture MIPS32

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

Optimisation multi-critère pour l allocation de ressources sur Clouds distribués avec prise en compte de l énergie

Intel Corporation Nicolas Biguet Business Development Manager Intel France

Structure de base d un ordinateur

Evaluation des performances de programmes parallèles haut niveau à base de squelettes

Transmission d informations sur le réseau électrique

La couche physique de l ADSL (voie descendante)

TD Architecture des ordinateurs. Jean-Luc Dekeyser

TASCAM MX Utilisation du SCSI

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

Architecture des ordinateurs Introduction à l informatique

Introduction à MATLAB R

MODULES ÉLECTRIQUES. - systèmes électriques DC - onduleurs - convertisseurs - interrupteurs statiques. Notre alimentation Votre confiance

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

Chapitre 1: Introduction générale

ETAP Safety Manager Systèmes centraux de contrôle et de gestion

Le signal GPS. Les horloges atomiques à bord des satellites GPS produisent une fréquence fondamentale f o = Mhz

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

HP 600PD TWR i G 4.0G 39 PC

2. Couche physique (Couche 1 OSI et TCP/IP)

Extrait des Exploitations Pédagogiques

Rapport de stage. Implantation en virgule fixe d un codeur audio. Romain Serizel

11 Février 2014 Paris nidays.fr. france.ni.com

Transcription:

Processeurs de Traitement Numérique du Signal (DSP) Processeurs de Traitement Numérique du Signal (DSP) Olivier Sentieys IRISA Université de Rennes I ENSSAT Lannion sentieys@irisa.fr http://www.irisa.fr/r2d2 I. Introduction II. Architectures MAC/Harvard III. Evolutions des DSP IV. Flot de développement Merci à Daniel Ménard pour son support I. Introduction 1. Contexte applicatif 2. Caractéristiques algorithmiques 3. Solutions architecturales 4. Marché des DSP Exemples d applications Téléphonie cellulaire Communications sans-fil Contrôle de moteur Modems Photo et caméra numériques Voix sur IP, réseau Audio grand public Navigation Vidéoconférence Jouets, consoles vidéo Synthèse musicale, effets Performances Faible coût Faible énergie Communications satellite Analyse sismique Sécurité Médical Reconnaissance vocale Sonar, radar Débruitage, écho Anticollision et pleins d autres à venir ARCHI 07-4

Tâches élémentaires Compression de signal (parole, audio, vidéo) Filtrage Modulation et démodulation Détection et correction d erreurs Contrôle Traitements audio (e.g. réduction bruit, égalisation, annulation d écho, conversion de fréquence) Reconnaissance vocale Synthèse de signaux Algorithmes de TdSI 1 Signaux numériques o Temps et amplitude discrets o Flot de données o Scalaires, vectorielles, matricielles, Traitement temps réel o Temps d'exécution T ex guidé par flots de données o Période d'échantillonnage T e période des sorties T f > T ex e(t) s(t) T e Algorithme 1 Traitement du signal et de l image ex. s(n) = max(moy(e), s(n-1)) ARCHI 07-5 ARCHI 07-6 T f Diversités Fonctions typiques de TdSI Complexité des algorithmes de TdSI < 5 MOPS 10-30 MOPS > 100-1000 MOPS Faible Elevé mesure/contrôle Format des données ARCHI 07-7 Application PWM, mesures, contrôle convertisseurs sigma -delta radio HF/VHF, radar sonar parole audio Compression Compression parole modemsaudio imagerie / vidéo analyseurs de s ang Taille des données 1 à 4-18 à 22 bits 6-14 bits 10-12 bits 8-14 bits 16-20 bits 8-36 bits (par pixel) 16-18 bits GSM ADSL Compression vidéo UMTS Imagerie médicale Convolution, filtrage (RIF, RII), corrélation, DCT o y = y x.h : MAC (multiplication-accumulation) Adaptation (LMS) o y n = y n-1 x.h : MAD (multiplication-addition) FFT, multiplication complexe o xr=xr.wr-xi.wi; xi=xr.wixi.wr Viterbi o a1 = x1 x2; a2 = y1 y2; o y = (a1>a2)? a1 : a2 : ACS (addition-comparaison-sélection) Estimation de mouvement o sad = x i,j - y iu,jv : SAD (sum-of-absolute-difference) ARCHI 07-8

Exemple Fil Rouge Filtre Numérique RIF sur N points Fonctions typiques de TdSI Filtre Numérique RIF symétrique sur N points ARCHI 07-9 D D D D x(n) x x h(0) h(1) h(2) h(3) h(4) 0 TAP x x x y(n) ARCHI 07-10 x x h(0) h(1) h(2) x y(n) Fonctions typiques de TdSI FFT Fast Fourier Transform Butterfly (DIF) X X = X W.Y Fonctions typiques de TdSI Filtrage adaptatif LMS Y W Y = X - W.Y x x x x - - - DLMS x n (i-1) x e n h n (i) h n-1 (i) x n (i) x y y ARCHI 07-11 ARCHI 07-12

Fonctions typiques de TdSI Caractéristiques algorithmiques Estimation de mouvement Codage vidéo MPEGx, H26x ARCHI 07-13 Motion Vector (u,v) p N2p Matched Block NxN Reference Block NxN Search Window sadmin = MAXINT; mvx=0; mvy=0; for (u=-p; u<=p; u) for (v=-p; v<=p; v) { sad = 0; for (i=0; i<n; i) { for (j=0; j<n; j) { sad = sad ABS[BR(i,j)-FR(iu,jv)] /* if (sad>=sadmin) break; */ } } if (sad<sadmin) { sadmin = sad; mvx = u; mvy = v; } } ARCHI 07-14 Charge de calcul importante o Nids de boucles o Multiplications-accumulations (convolution) o Multiplications-additions (FFT, DCT, adaptation, distances,...) Précision des calculs o Virgule fixe ou flottante o Compromis coût précision des calculs Bande passante mémoire Calculs d'adressage complexes o Gestion signal, accès image, bit-reverse (FFT),... Boucles de traitement courtes o Les instructions peuvent être placées en interne o Pas besoin de grande taille de cache (données ou instructions) Solutions architecturales Marché des DSP (1) Efficacité énergétique Spécialisation, parallélisme Flexibilité 100-1000 MOPS/mW ASIC ARCHI 07-15 Embedded FPGA 100 Pleiades, DART 10-50 MOPS/mW Reconfigurable Processor E E : MOPS / mw 2 V DSP 3 MOPS/mW 10 ASIP/DSP Embedded Processor SA110 0.4 MIPS/mW PowerPC 1 MIPS/mW 1 Flexibility Sans fils domine : 75% des revenus en 2004 Systèmes grand public : DVD, TV et radio numérique,... Contrôle de moteurs,... ARCHI 07-16 Cellular phone 62% Multipurpose 6% Automotive 3% Wireless (other) 2% Consumer 9% Wireline (modem, xdsl) 6% Computer 6% Cellular infrastructure 5% Wirless short range 1%

Marché des DSP (2) Marché des DSP (3) En haut de la liste des plus fortes croissances du marché de l industrie des semi-conducteurs Place dans le marché des processeurs embarqués 14000 12000 DSP Market (M$) 10000 8000 6000 4000 2000 0 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 Prévisions Forward Concept Co. ARCHI 07-17 ARCHI 07-18 II. Architecture MAC/Harvard Architecture Von Neumann E.g. processeurs RISC 1. Genèse des DSP : MAC/Harvard MEMORY DATA BUS MUX Code example: multiply & accumulate r2 = r2 #imm * r1 2. Modélisation des générations 1 et 2 Panorama des DSP 3. Performances REGISTER FILE ALU PC ADDRESS REGISTER MEM. DATA REGISTER mov #imm,r3 mul r1,r3 add r3,r2 3 instructions, plus de 3 cycles d'horloge MEMORY ADDRESS BUS ARCHI 07-20

FIR sur machine Von Neumann Généralités sur les DSPs Problèmes Bande passante avec la mémoire Code pour le contrôle et la gestion de l'adressage Multiplication lente ARCHI 07-21 loop: mov *r0,x0 mov *r1,x1 mpy x0,y0,a add a,b mov y0,*r2 inc r0 inc r1 inc r2 dec ctr tst ctr jnz loop Data Path Exécution en N.(15 à 20) cycles Memory ARCHI 07-22 Propriétés du traitement numérique du signal Calculs intensifs et répétitifs Primitives simples Conséquences sur les architectures Fonctionnement pipeline Architecture Harvard Structures de contrôle évoluées Unités de traitement spécialisées câblées Gestion d adressage complexes Le tout dans un environnement temps réel Architecture Harvard (1) Unité de traitement PROGRAM ADDRESS BUS DATA ADDRESS BUS DATA BUS - A DATA BUS - B 24 24 PROGRAM RAM/ROM DATA RAM-A DATA RAM-B DATA BUS - A 56 Operand Registers X0 X1 Y0 Y1 24 24 Multiplier 56 PROGRAM CONTROL AGU-A AGU-B Address Generation MULTIPLIER ALU REGISTERS ACCUMULATORS DATA BUS - B PROGRAM DATA BUS Processing Unit Motorola DSP 5600x Shifter (-1, 0, 1) Accumulators ALU 56 A (56) B (56) 56 56 Shifter/Limiter (-1, 0, 1) 24 24 24 24 ARCHI 07-23 ARCHI 07-24

Architecture Harvard (2) FIR sur DSP conventionnel Bus et mémoires données/instructions séparées Unité de traitement de type mpy-acc Registres distribués ( RISC register file) Chaque module (ALU) possède ses propres registres locaux Génération adresses efficaces (AGUs) Modes d adressage spéciaux : auto incr-decr, circular buffering (delay line)... in@2 in@1 in Instructions complexes s exécutant en 1 cycle T=DM(*r1); P=T*PM(*r0) T=DM(*r1); loop: acc=accp P=T*PM(*r0) T=DM(*r1) jnz loop; acc=accp P=T*PM(*r0); acc=accp Exécution en N cycles T ALU ACC MULT P Data Path Program Memory Data Memory ARCHI 07-25 ARCHI 07-26 II. Architecture MAC/Harvard 1. Genèse des DSP : MAC/Harvard 2. Modélisation des générations 1 et 2 Panorama des DSP 3. Performances Processeur : modélisation Unité de contrôle (IP : Instruction Processor) Unité fonctionnelle (UF) qui interprète les instructions et les passe à l unité de traitement (DP) Unité de traitement (DP : Data Processor) UF qui modifie ou transforme les données Unité de mémorisation IM : Instruction Memory : stocke les instructions DM : Data Memory : stocke les données traitées par le DP Unité de communication (EIU : External Interface Unit) Contrôle les accès aux données ou instructions externes, ou à d'autres processeurs ARCHI 07-28 [Flynn72] [Skillicorn88]

Architecture Harvard de base Processeur : modélisation IP : Instruction Processor, DP : Data Processor IM : Instruction Memory, DM : Data Memory IP Address from PC IM Request Instruc IM Receive Intstruc. DP IP Receive State from DP Determine Oper. Add. Decode Send to DP DP DP DP DP IP IP DM DM IM Receive Instruc. Receive Oper. Address Request Operand DM Receive Operand e.g. TMS320C10 Return State Store Results Exec. Instruction ARCHI 07-29 Classification de E. Lee [Lee89] ARCHI 07-30 IP DM Architecture Harvard de base TMS320C10 (1982) 2N4 cycles 2N4 instructions! Optimisations des performances Comment améliorer l architecture Harvard? Transformations du diagramme d'états réarrangement des états exécution en parallèle d'états (e.g. Store Results et Return State) Pipeline de l'exécution des états mise en parallèle d'états appartenant à des instructions successives Augmentation du nombre de FUs et/ou de DMs plusieurs DPs peuvent exécuter des instructions en parallèle sur des données indépendantes FUs spécialisées pour la génération d adresses ARCHI 07-31 [Verbauwhede00] ARCHI 07-32

Interconnexions entre FUs Modification 1 Les interconnexions suivantes sont valables pour toutes les FUs précédentes (DP, IP, IM, DM). 1 - vers - 1 o une FU est connectée à une autre FU n - vers - n o une FUi d'un ensemble de FUs est connectée à une autre FUi 1 - vers - n o une FU est connectée à n autres FUs d'un ensemble de FUs n - par - n o toute FUi d'un ensemble est connectée à chaque autre FUj Autorisation de mémorisation de données dans l'im En un cycle : fetch deux opérandes de la mémoire, exécute MAC, écriture du résultat en I/O ou mémoire DP 1-vers-2 DM IP IM/DM e.g. AT&T DSP32 et DSP32C ARCHI 07-33 ARCHI 07-34 Modification 2 Modification 3 DM est une mémoire multi-ports, plusieurs accès aux données par cycle Utilisable pour des mémoires internes DP IP Cache pour charger les instructions fréquentes Évite les conflits d'accès données et instructions de la modification 1 DP 1-vers-2 IP cache DM IM DM IM/DM e.g. Fujitsu MB86232 (3 ports en mémoire interne) TMS320C25 : cache 1 instruction (boucles) DSP16 : cache 15 instructions ADSP-2100 : cache 16 instructions ARCHI 07-35 ARCHI 07-36

FIR sur DSP conventionnel Deuxième génération (Modification 4) TMS320C2x (1986) ZAC LTD; LTD MPY; RPTK N-1 MACD APAC MPY; APAC; Deux mémoires données DM séparées En un cycle : fetch deux opérandes et une instruction si le cycle mémoire est le même que le cycle d'instruction de base DP 1-vers-2 DM 1 DM 2 IP IM Exécution en N cycles Motorola DSP 56001 et 96002 TMS320C30, C40, C50 ADSP-2100 ARCHI 07-37 ARCHI 07-38 Architecture Analog Devices SHARC Modification 5 CORE PROCESSOR DAG 1 8x4x32 BUS CONNECT (PX) MULTIPLIER DAG 2 8x4x24 TIMER DATA REGISTER FILE PROGRAM SEQUENCER PM ADDRESS BUS DM ADDRESS BUS INSTRUCTION CACHE BARREL SHIFTER 24 32 48 40/32 ALU PM DATA BUS DM DATA BUS TWO INDEPENDENT DUAL PORT BLOCKS PROCESSOR PORT ADDR DATA DATA ADDR DATA DATA I/O PROCESSOR IOP REGISTERS (MEMORY MAPPED) CONTROL, STATUS & DATA BUFFERS BLOCK 0 BLOCK 1 ADDR ADDR DMA CONTROLLER SERIAL PORTS (2) LINK PORTS (6) DUAL-PORTED SRAM JTAG TEST & EMULATION EXTERNA L PORT ADDR BUS MUX MULTIPROCESSOR INTERFACE DATA BUS MUX HOST PORT 4 6 6 36 32 48 Bancs mémoire multiples Instruction multiopérandes en parallèle avec accès I/O Problème de partition des données sur un grand nombre de bancs (FFT) Hitachi DSPi (6 bancs mémoire) DP 1-vers-4 DM DM DM DM 1-vers-4 EIU IP 2-vers-2 IM IOM ARCHI 07-39 ARCHI 07-41

Générations Caractéristiques complémentaires Performances normalisées (BDTImark) 10000 1000 100 10 1 ARCHI 07-42 1 ère génération TMS320C20 (5 MIPS) TMS320C10 (2.5 MIPS) 2 ème génération DSP56001 (13MIPS) ADSP21xx (13MIPS) TMS320C50 DSP16210 (100 MIPS) DSP56301 TMS320C54x (50-100MIPS) ADSP2183 (50MIPS) 3 ème génération 4 ème génération StareCore(300MHz) TMS320C62x (300MIPS) Carmel (300 MHz) 1980 1982 1984 1986 1988 1990 1992 1994 1996 1998 2000 2002 Année ARCHI 07-43 Localisation des données Modèle registre-mémoire, Load-Store Codage des instructions complexes Stationnarité temporelle ou par les données Format des instructions Type d encodage, compromis consommation/efficacité Structures de contrôle Boucles matérielles, branchement Modes d adressage [cf. Annexes] Résumé (1) Résumé (2) Calcul Précision Bande passante mémoire FUs spécialisées pour les fonctions classiques de TdSI en parallèle, MAC simple cycles Bits de garde, saturation, arrondis, multiplication 16-24 bits, addition 32-40 bits Harvard, bancs et bus adresses/données multiples Accès aux données Localité temporelle d exécution Flots de données (streaming) Temps réel Modes d adressage complexes Boucles matérielles (zerooverhead), caches d instructions spécifiques Pas de cache de données, DMA puissants, mémoires SRAM internes Gestion des interruptions ARCHI 07-44 ARCHI 07-45

II. Architecture MAC/Harvard 1. Genèse des DSP : MAC/Harvard 2. Modélisation des générations 1 et 2 Panorama des DSP 3. Performances Puissance de calcul MIPS (Millions of instructions per second) Mesure facile mais peu représentatif des performances réelles o VLIW, génération des adresse MOPS (Millions of operations per second) MMACS (Millions of MAC per second) Prise en compte de l aspect traitement du signal Les autres opérations ne sont pas prises en compte MOPS/W : Efficacité énergétique ARCHI 07-47 Métriques de performance Contenu d un benchmark Comparaison précision - effort d implantation Précision de la métrique Applications Taches Cœurs d algorithme Benchmarking MMACS/MOPS MIPS Différents niveaux Applications complète o Système de vidéo-conférence, émetteur/récepteur radiomobile, player MP3... Taches d'une application o Codeur ou décodeur audio ou vidéo, codeur de parole, décodeur de Viterbi Cœurs d'algorithme o FIR, IIR, FFT, Control,.. Opérations o ADD, Mult/MAC, Décalage, Transfert mémoire ARCHI 07-48 Disponibilité Effort d implantation ARCHI 07-49

BDTImark2000 http://www.bdti.com BDTIMARK Basé sur des cœurs d algorithme de traitement du signal o Filtre FIR réel, traitement par blocs o Filtre FIR réel, traitement par échantillons o Filtre FIR complexe, traitement par blocs o Filtre adaptif LMS o Filtre IIR, 2 cellules d'ordre 2 cascadées o Produit de vecteurs o Addition de vecteurs o Recherche de la valeur maximale d un vecteur o Décodeur de Viterbi o FFT 256 points o Manipulation de bits Code optimisé manuellement ARCHI 07-50 ARCHI 07-51 Temps d exécution (FFT) Coût Zoran ZR3800x Texas Instruments TMS320C80 Texas Instruments TMS320C541 Texas Instruments TMS320C52 Texas Instruments TMS320C44 Texas Instruments TMS320C31 Texas Instruments TMS320C209 SGS-Thomson D950-CORE NEC PD77015 Important pour une production à fort volume Faible coût o Les DSPs sont efficaces en MIPS/mW et en MIPS/mm 2 o Cela se paye sur la flexibilité et la programmabilité Motorola DSP56166 Motorola DSP56002 IBM MDSP2780 DSP Group OAK DSP Group PINE Lucent Technologies DSP 3207 Lucent Technologies DSP32C Lucent Technologies DSP 1627 Analog Devices ADSP-21062 Analog Devices ADSP-2171 mw/mips M68K $200 I286 $200 I386 $300 DSP1 $150 Pentium $500 Pentium MMX $700 DSP32C $250 DSP16A $15 ARCHI 07-52 0 100 200 300 400 500 600 700 800 900 Execution Time (s) ARCHI 07-53 [Ackland ISLPD98] DSP16210 <$10 DSP1600 $10

Coût performance (FFT) Énergie Zoran ZR3800x Texas Instruments TMS320C541 Texas Instruments TMS320C52 Texas Instruments TMS320C44 Texas Instruments TMS320C31 Texas Instruments TMS320C209 NEC PD77015 Motorola DSP56166 Motorola DSP56002 IBM MDSP2780 Lucent Technologies DSP 3207 Lucent Technologies DSP32C Lucent Technologies DSP 1627 Analog Devices ADSP-21062 Analog Devices ADSP-2171 ARCHI 07-54 0 10000 20000 30000 40000 50000 60000 70000 Cost-Time Product (s$) Filtrage numérique RIF ARCHI 07-55 Watt-microsecondes 18 16 14 12 10 8 6 4 2 0 C549 Virgule Fixe Virgule Flottante C6201 DSP16210 ZSP16401 ADSP-21160 C6701 C549 100 MHz, 2.5V C6201 200 MHz, 1.8V DSP16210 100 MHz, 3.3V ZSP16401 200 MHz, 2.5V ADSP-21160 100 MHz, 2.5V C6701 167 MHz, 1.8V Évolution des DSP III. Évolution des DSP 1. DSP conventionnels améliorés 2. Capacités SIMD 3. DSP hybride MCU 4. VLIW 5. Superscalaire 6. Comparaison de performances Améliorer les performances au delà de l'augmentation liée à la vitesse d'horloge? Augmenter le parallélisme Augmentation du nombre d'opérations exécutées dans chaque instruction Augmentation du nombre d'instructions exécutées par cycle d'horloge Ajouter des unités spécialisées Améliorer le contrôle ARCHI 07-57

Plus d opérations par instruction Plus d instructions par cycle Augmenter le nombre d'opérations qui peuvent être exécutées dans chaque instruction Ajouter des unités d'exécution o multiplieur, additionneur,... o jeu d'instruction à enrichir o taille de l'instruction à augmenter o bus de transfert mémoire à augmenter Augmenter les capacités SIMD (ou SWP) Dans le même ordre d'idées Utiliser des unités fonctionnelles spécialisées Utiliser un coprocesseur Architectures hybrides DSP/MCU ARCHI 07-58 L'objectif est ici de profiter du parallélisme au niveau instruction (ILP) d'une application Deux techniques sont bien connues : VLIW : empaquetage de plusieurs instructions de type RISC dans une seule "super-instruction" Superscalaire : exécution parallèle de plusieurs instructions sélectionnées dynamiquement par le processeur ARCHI 07-59 Générations DSP conventionnels améliorés Performances normalisées (BDTImark) 10000 1000 100 10 1 1 ère génération TMS320C20 (5 MIPS) TMS320C10 (2.5 MIPS) 2 ème génération DSP56001 (13MIPS) ADSP21xx (13MIPS) TMS320C50 DSP16210 (100 MIPS) DSP56301 TMS320C54x (50-100MIPS) ADSP2183 (50MIPS) 3 ème génération 4 ème génération StareCore(300MHz) TMS320C62x (300MIPS) Carmel (300 MHz) 1980 1982 1984 1986 1988 1990 1992 1994 1996 1998 2000 2002 Troisième génération (1995) Ajout d unités spécialisés ou utilisation de coprocesseurs TMS320C54x Architectures multi-mac Lucent DSP 16xxx Multiprocesseurs sur une puce Principalement pour image/vidéo TMS320C80, MC68356 ARCHI 07-60 Année ARCHI 07-62

Architecture C54x C54x DB CB DB PB DB CB DB CB EB C54x 40-100-160 MIPS 1000-2000-3000 MIPS/W 60% of cellular handsets $5 for C5402 100MIPS - $75 17x17b mult. 40b ALU 40b adder ACS unit Viterbi,LMS FIRS, FFT Dual cores (C5420) ARCHI 07-63 ARCHI 07-64 C54x C54x FIR symétrique A B Bus1 A Bus1 Bus2 Bus3 A Bus1 T A B 0 Mult Add A B ALU A B A B MAC Bus4 x(n-i-1) x y x(i) h(i) y DFG du coeur de la boucle A B Bus1 Bus2 A B Bus1 T ALU ALU ARCHI 07-65 ARCHI 07-66

C54x C54x e.g. N=20 Ressources du C54x x x 7 8 9 10 x x x x x 1 2 3 4 5 6 x T A B Mul/Add ALU Bus 1 Bus 2 Bus 3 Bus 4 x(0) x(15) ARCHI 07-67 ARCHI 07-68 Architectures multi-mac Architectures multi-mac FIR sur DSP conventionnel e.g. Lucent DSP 16xx Bus X 16b Bus I 16b FIR sur DSP dual-mac e.g. Lucent DSP 16xxx o 400 MIPS, 380mW o $5 - $80 Bus X 32b Bus I 32b DO N TIME: acc=accp // P=X*Y // Y=*r0 // X=*r1 ALU MULT DO N/2 TIME: acc=accp0p1 // P0=X0*Y0 // P1=X1*Y1 // Y=*r0 // X=*r1 ALU MULT ADDER MULT Exécution en N cycles 2 ACC Exécution en N/2 cycles 8 ACC ARCHI 07-69 ARCHI 07-70

Architecture C55x C55x C55x Jusqu'à 20 MIPS/mW C54x o Consommation -85% o Performances 5x C5510 160 MHz, 320 MIPS 80mW 4 MIPS/mW 160 KW SRAM C5502 400 MIPS 160 mw 2.5 MIPS/mW ARCHI 07-71 FIR sur C55x dual-mac rptblocal sample_loop-1 mov *AR0,*AR1 ; Put new sample to signal buffer x[n] mov *AR0,*AR3 ; Put next new sample to location x[n1] mpy *AR1,*CDP,AC0 ; The first operation :: mpy *AR3,*CDP,AC1 rpt CSR mac *AR1,*CDP,AC0 ; The rest MAC iterations :: mac *AR3,*CDP,AC1 macr *AR1,*CDP,AC0 :: macr *AR3,*CDP,AC1 ; The last MAC operation mov pair(hi(ac0)),dbl(*ar2); Store two output data sample_loop ARCHI 07-72 Capacités SIMD (ou SWP) Opérations parallèles sur différentes largeurs de chemins de données (16 bit, 8 bit,...) Split unités d'exécution Unités d'exécution multiples Exemples Lucent DSP16xxx, ADI ADSP-2116x, ADI TigerSHARC, TI C64x 16 bits 16 bits 16 bits x,,- x,,- 16 bits Avantages et inconvénients Méthode Avantages Inconvénients Augmenter le nombre d'ue Augmenter les capacités SIMD Matériel dédié Augmentation limitée de la consommation, du coût et de la densité de code Compatibilité maintenue Gain en performance très important pour des traitements par blocs Modifications architecturales limitées Gain en performance important Augmentation importante de la complexité Difficulté à programmer et à compiler Perspectives limitées Nécessité d'avoir un parallélisme au niveau des données important Consommation mémoire importante Nécessite une bonne connaissance de l'application ARCHI 07-73 16 bits 16 bits ARCHI 07-74

III. Évolution des DSP 1. DSP conventionnels améliorés 2. Capacités SIMD 3. DSP hybride MCU 4. VLIW 5. Superscalaire 6. Comparaison de performances Architecture hybride DSP/MCU Associer des fonctionnalités MCU gestion efficace des ITs manipulation de bits exécution conditionnelle à des fonctionnalités DSP, calcul intensif pour obtenir un code performant et efficace limiter la taille du code et donc du circuit ARCHI 07-76 Architecture hybride DSP/MCU Architecture Hybride DSP/MCU Méthodes de couplage ARCHI 07-77 Méthode Avantages Inconvénients Multiprocesseur 2 jeux d'instructions Les 2 cœurs travaillent en // Pas de conflits de ressources Coprocesseur Les 2 cœurs travaillent en // Extension Solution Hybride Modèle de programmation plus simple Architecture plus "propre" Duplication de ressources Deux outils de développement Modèle de programmation plus complexe Transferts de données Contraintes imposées par l'architecture initiale Développement plus risqué ST100, ST122, ST140 (STMicroelectronics) 32 bits MCU / 16 bits DSP Fonctionnalités DSP o MAC, architecture Harvard, modes d adressages complexes et microcontrôleur ARCHI 07-78 o architecture load/store, large espace d adressage, code compact Mémoire Contrôleur mémoire instruction d @ UC UT UA Contrôleur mémoire donnée

ST 140 Compatible ST100 Compatible ST122 (dual- MAC) Flexible 16-bit/32-bit Load/Store architecture 4-MAC/4-ALU Two data clusters Double data memory bandwidth ST140-DSP Core in 0.13m process Frequency up to 600 MHz Intensive Processing 2.4 GMAC/s Large Data Bandwidth 9.6 Gbytes/s Power Consumption down to 0.180 mw/mhz 100 mw, 24 MMAC/mW III. Évolution des DSP 1. DSP conventionnels améliorés 2. Capacités SIMD 3. DSP hybride MCU 4. VLIW 5. Superscalaire 6. Comparaison de performances ARCHI 07-79 Parallélisme niveau instructions Very Long Instruction Word INS 1 INS 2 INS 3.. INS N? Ordonnancement des instructions compilation Run-time Unité de dispatch ALU MAC MU... INS1 INS2 INS3 INS4... INS6 INS5 Time Caractéristiques Plusieurs instructions par cycle, empaquetées dans une "super-instruction" large Architecture plus régulière, plus orthogonale, plus proche du RISC Jeu de registres uniforme, plus large Exemples TI TMS320 C62x et C64x ADI TigerSHARC ADS-TS20x Freescale (Motorola) MSC71xx et MSC81xx StarCore SC1400 Agere/Motorola (DSP core) ARCHI 07-81 ARCHI 07-82

VLIW : C62xx Texas Instruments TMS 320C6x L:ALU S:ShiftALU M:Multplier D:Address Functional Unit.L1 MPY MPY ADD MPY Functional Unit.S1 256 MPY ADD ADD MV STW ADD ADD SHL ADD SUB STW STW ADDK B SUB LDW LDW B MVK NOP NOP MPY ADD ADD STW STW ADDK NOP Functional Unit.M1 Register File A Functional Unit.D1 Functional Unit.D2 Data Memory Controller Functional Unit.M2 Functional Unit.S2 Register File B Functional Unit.L2 Fetch 32x8=256 bits Dispatch Unit VLIW CPU with eight functional units (RISC-like code) 2400 MIPS @ 300MHz 1M-bit on-chip memory 32-bit ext. mem. interface 2 enhanced-buffered serial ports 16-bit host access port (Host processor access to on-chip data memory) Flexible PLL clock generator (x ext. clock rate for 2 or 4) Price: $9-$102 CPU Two sets of functional units including: o Two multipliers o Six arithmetic logic units (ALUs) o 32 registers with 32-bit wordlength each o Data-addressing units.d1 and.d2 exclusively responsible for data transfers between memory and the register files 8-/16-/32-bit data support 40-bit arithmetic options Saturation and normalisation Bit-field manipulation and instruction: extract, set, clear, bit counting Data Address 1 Data Address 2 ARCHI 07-83 Internal Memory ARCHI 07-84 Exploitation du parallélisme Déroulage des boucles : augmente l'ilp For(i=0;i<N;i) { ACC=ACC x[i].h[i] } LOAD For(i=0;i<N;i=3) { ACC=ACC x[i].h[i] ACC=ACC x[i1].h[i1] ACC=ACC x[i2].h[i2] } Exploitation du parallélisme Pipeline logiciel : maximiser l IPC Optimisation du code assembleur Prologue LOAD MULT LOAD MULT LOAD N ACC MULT LOAD N/3 ACC MULT ACC LOAD MULT ACC MULT ACC Taux d utilisation du processeur Épilogue ACC ARCHI 07-85 100% ARCHI 07-86 100% Taux d utilisation du processeur

C6x ARCHI 07-87 Functional Unit.L1 Functional Unit.S1 Functional Unit.M1 Functional Unit.D1 Register File A Instruction Description Nombre de Unités.M Unités.L Unités.S Unités.D cycles LDH Charge une donnée 16 bits venant de la mémoire dans un registre 5 - - -.D1.D2 LDW Charge deux données 16 bits consécutives venant de la mémoire MPY Multiplication entre 2 registres, résultat dans un troisième 5 - - -.D1.D2 2.M1.M2 Functional Unit - - - ADD Addition 1 -.L1.L2.S1.S2.D1.D2 SUB Soustraction 1 -.L1.L2.S1.S2.D1.D2 B Branchement 6 - -.S1 -.S2 NOP aucune opération 1 - - - -.D2 Data Memory Controller Functional Unit.M2 Functional Unit.S2 Functional Unit.L2 Register File B Exploitation du parallélisme Filtre FIR sur DSP VLIW C6x ARCHI 07-88 x[0] = input; // Update most recent sample acc = 0; // Zero accumulator for (i=0; i<8; i) // 8 taps { prod = h[i] * x[i]; // perform Q.15 multiplication acc = acc prod; // Update 32-bit accumulator } output = (short) (acc >> 15); // Cast output to 16 bits 1 Start MVKL.S2 8, B0 ; Intialize the loop counter (B0) to 8 2 MVKL.S1 0, A5 ; Intialize the accumulator (A5) to 0 3 Loop LDH.D1 *A8,A2 ; Load x(i) in A2 4 LDH.D1 *A9,A3 ; Load h(i) in A3 5 NOP 4 ; LDH has a latency of 5 cycles 6 MPY.M1 A2,A3,A4 ; Multiply x(i) and h(i) in A4 7 NOP ; MPY has a latency of 2 8 ADD.L1 A4,A5,A5 ; Add A4 to the accumulator A5 9 [B0] SUB.L2 B0,1,B0 ; Sub 1 to the counter B0 10 [B0] B.S1 loop ; Branch to loop if B0 <> 0 Méthodes d optimisation Depuis le code RISC Instructions en parallèle Enlever les NOP Déroulage de boucle Pipeline logiciel Lecture mémoire de paquets de données 2 LDH 1 LDW 2 LDW 1 LDDW Code non optimisé loop: ldh.d1 *A8,A2 ldh.d1 *A9,A3 nop 4 mpy.m1 A2,A3,A4 nop add.l1 A4,A6,A6 sub.l2 B0,1,B0 [b0] b.s1 loop nop 5 Code RISC 40 itérations 16*40 = 640 cycles ARCHI 07-89 ARCHI 07-90

Instructions parallèles Remplacer les NOP Not Optimized Properly loop: ldh.d1 *A8,A2 ldh.d2 d2 *B9,B3 nop 4 mpy.m1x m1x A2,B3 B3,A4 nop add.l1 A4,A6,A6 sub.l2 B0,1,B0 [b0] b.s1 loop nop 5 Parallélisme? 40 itérations 15*40 = 600 cycles loop: ldh.d1 *A8,A2 ldh.d2 d2 *B9,B3 nop 4 mpy.m1x m1x A2,B3 B3,A4 nop add.l1 A4,A6,A6 sub.l2 B0,1,B0 [b0] b.s1 loop nop 5 Instructions à la place des NOP Dépendances interinstructions LDH a MPY ADD * b 5 5 2 1 LDH count loop 6 1 SUB B ARCHI 07-91 ARCHI 07-92 Remplacer les NOP loop: ldh.d1 *A8,A2 ldh.d2 d2 *B9,B3 sub.l2 B0,1,B0 [b0] b.s1 loop nop 2 mpy.m1x m1x A2,B3 B3,A4 nop add.l1 A4,A6,A6 Instructions à la place des NOP 40 itérations 8*40 = 320 cycles Déroulage de boucles Déroulage ré-ordonnancement des instructions Cycle.D1.D2.L1.L2.M1.M2.S1.S2 NOP 1 LDH LDH 2 3 4 5 6 LDH LDH LDH LDH LDH LDH LDH LDH LDH LDH MPY 7 8 LDH LDH LDH LDH ADD MPY MPY 9 10 11 12 13 14 15 16 LDH LDH ADD ADD ADD ADD ADD ADD ADD ADD MPY MPY MPY MPY MPY MPY N=40 itérations 7 (N-7) 7 = 47 cycles 47 instructions VLIW! ARCHI 07-93 ARCHI 07-94

Pipeline logiciel Accès mémoire multiples Réintroduction de la boucle sur le motif répété Cycle.D1.D2.L1.L2.M1.M2.S1.S2 NOP 1 LDH LDH 2 LDH LDH SUB 3 LDH LDH SUB B 4 LDH LDH SUB B 5 LDH LDH SUB B 6 LDH LDH SUB MPY B 7 LDH LDH SUB MPY B 8 LDH LDH ADD SUB MPY B 9 LDH LDH ADD MPY 10 ADD MPY 11 ADD MPY 12 14 ADD ADD MPY MPY 13 15 ADD ADD MPY 47 cycles 15 instructions 16 ADD A7 a1 * x1 a1 x1 x = a0 x0 a1x1 a0x0 A0 A1 A3 a0 * x0 A4 LDW.D1 *A5,A0 LDW.D1 *A6,A1 MPY.M1 A0, A1, A3 MPYH.M1 A0, A1, A7 ADD.L1 A3, A7, A4 ARCHI 07-95 ARCHI 07-96 Accès mémoire multiples Lecture de 4 données 2 MAC en parallèle Cycle.D1.D2.L1.L2.M1.M2.S1.S2 NOP 1 LDW LDW 2 LDW LDW 3 LDW LDW 4 LDW LDW 5 LDW LDW 6 LDW LDW MPY MPYH 7 LDW LDW MPY MPYH 8 LDW LDW ADD ADD MPY MPYH 9 ADD ADD MPY MPYH 10 ADD ADD MPY MPYH 11 ADD ADD MPY MPYH 12 ADD ADD MPY MPYH 13 ADD ADD MPY MPYH 14 ADD ADD 15 ADD ADD 16 ADD N=40 itérations 7 (N/2-7) 8 = 28 cycles StarCore SC1400 core Processeur VLIW 16 bits développé en commun par Agere (Lucent) et Freescale (Motorola) 300 MHz, faible tension Optimisé pour faible consommation Meilleure densité de code (16 bits) que C6x Pipeline plus simple (5 étages contre 11) BMU MAC ALU Shift MAC ALU Shift MAC ALU Shift MAC ALU Shift ARCHI 07-97 ARCHI 07-98

VLIW combiné au SIMD ADI TigerSHARC Combine le VLIW au SIMD afin d'atteindre un parallélisme massif SIMD hiérarchique o Le TigerSHARC peut exécuter 8 multiplications 16x16 en virgule fixe par cycle (4x le C62xx) Instruction SIMD VLIW combiné au SIMD C64x Jusqu à 1.1 GHz, ~9 GOPS Six ALUs (32/40-Bit) o une 32/40-Bit, deux 16-Bit, ou quatre 8-Bit opérations arithmétiques par cycle et par ALU Deux multiplieurs, quatre 16x16-Bit ou huit 8x8-Bit multiplications par cycle Coprocesseurs VCP (Viterbi) et TCP (Turbo) ALU MAC Shift ALU MAC Shift 'C6411: 300 MHz, $39, 1.0 V, 250mW, 2400 MIPS, 1200 MMACS ARCHI 07-99 4 MAC 16 bits 4 MAC 16 bits ARCHI 07-100 C64x Superscalaire ARCHI 07-101 Techniques dérivées des processeurs généraux hautes-performances Prédiction de branchement Cache dynamique Plusieurs (2-4) instructions par cycle Jeu d'instructions de type RISC Parallélisme important Exemple LSI Logic LSI40x (ZSP400 core) ARCHI 07-102 o 4-way, 260MHz LOOP // FIR on LSI40x LDDU R4, R14, 2 LDDU R8, R15, 2 MAC2.A AGN0 R4,R8 LOOP

Avantages et inconvénients Générations : bilan Méthode Avantages Inconvénients VLIW Superscalaire Grand bon dans les performances Architectures plus orthogonales meilleures cibles pour les compilateurs Grand bon dans les performances Architectures plus orthogonales meilleures cibles pour les compilateurs Pas de problèmes de séquencement Bande passante vers la mémoire importante Forte consommation Séquencement délicat Augmentation de la taille du code importante Bande passante vers la mémoire importante Plus forte consommation Temps d'exécution difficilement prédictible ARCHI 07-103 ARCHI 07-104 ARCHI 07-105 ARCHI 07-106