Implantation d'algorithmes spécifiés en virgule flottante dans les processeurs programmables virgule fixe Daniel MENARD Groupe Signal/Architecture LASTI Juin 2001 16/02/2019 Daniel MENARD - LASTI - ENSSAT
Daniel MENARD - LASTI - ENSSAT Plan 1. Présentation du problème Problématique Méthodes existantes - Nos objectifs 2. Architecture des PTS et génération de code Architecture des PTS et influence sur la précision Génération de code et influence sur le codage des données et la précision 3. Notre approche Vue générale Outil de détermination du RSBQ 16/02/2019 Daniel MENARD - LASTI - ENSSAT
Présentation du problème PARTIE 1 Présentation du problème 16/02/2019 Daniel MENARD - LASTI - ENSSAT
Du besoin … au produit Passage en virgule Fixe Besoin Critères de qualité: RSB... Spécifications Conception de l'algorithme TNS Simulation virgule flottante Partitionnement Passage en virgule Fixe Simulation Temps d’exécution Prix - Consommation « Time to Market » Flexibilité Partitionnement Implantation Matérielle Implantation Logicielle 16/02/2019 Daniel MENARD - LASTI - ENSSAT
Codage en virgule fixe Codage des données en virgule fixe : Objectifs du codage : Respecter l’intégrité de l’algorithme en garantissant l’absence de débordement : Maximiser la précision (Rapport Signal à Bruit de Quantification : RSBQ) S bm-1 bm-1 b1 b0 b-1 b-2 b-n+2 b-n+1 b-n b = m+ n+ 1 bits format: (b,m,n) Partie entière : m bits Partie fractionnaire : n bits 16/02/2019 Daniel MENARD - LASTI - ENSSAT
Problématique Méthodologie Algorithme virgule flottante Précision Algorithme virgule flottante Architecture virgule fixe Méthodologie Intégrité de l’algorithme Conception logicielle (DSP) Optimiser le « mapping » de l’algorithme sur une architecture figée Conception matérielle (ASIC-FPGA) Optimiser la largeur des données Minimiser la surface du circuit Maximiser la précision Minimiser le temps d’exécution et la taille du code 16/02/2019 Daniel MENARD - LASTI - ENSSAT
Les différentes phases Détermination du domaine de définition méthode analytique : garantie l’absence de débordements - estimation conservatrice méthode statistique : estimation plus précise mais dépendante du signal d’entrée Codage et Optimisation des données Calcul du RSBQ: simulation en virgule fixe détermination de l’expression analytique du bruit 16/02/2019 Daniel MENARD - LASTI - ENSSAT
Méthodes existantes - Nos objectifs FRIDGE / CoCentric Fixed Point Designer (Synopsys) Autoscaler for C (Université de SEOUL) : Transformation du code C-ANSI virgule flottante en un code C-ANSI virgule fixe Nos objectifs : Implantation d’algorithmes spécifiés en virgule flottante au sein de processeurs programmables virgule fixe sous contrainte de RSBQ prise en compte de l’architecture du processeur pour optimiser le codage des données optimisation du temps d’exécution du code (minimisation des recadrages) sous contrainte du RSBQ minimal 16/02/2019 Daniel MENARD - LASTI - ENSSAT
Architecture des PTS et génération de code PARTIE 2 Architecture des PTS et génération de code 16/02/2019 Daniel MENARD - LASTI - ENSSAT
Architecture des PTS (1) Largeur naturelle du processeur (bnat) DSP: largeur fixe : 16 ou 24 bits possibilité de coder les données en double précision : be = 2.bnat Cœur de DSP et ASIP : paramétrable CD2450 (Clakspur) : 16 à 24 bits; EPICS (philips) : 12, 16, 18, 20, 24 bits; PalmCore (VLSI / DSP Group): 16, 20, 24 bits Largeur des données au sein de l’unité de traitement : double précision bits de garde au niveau de l’accumulateur précision réduite: multiplieur réduit (bmult < 2.bnat) : Z893xx (Zilog): bmult = 24 bits be Unité de traitement. bs 16/02/2019 Daniel MENARD - LASTI - ENSSAT
Architecture des PTS (2) instructions SIMD simple précision TigerSharc (A.D.) : traitement de données sur 8, 16, 32 ou 64 bits C64x (T.I.) : traitement de données sur 8, 16, 32, 40 ou 48 bits Capacités de recadrage registres à décalage en sortie du multiplieur décalages spécialisés (C50 : -6, 0, 1, 4) registre à décalage en barillet Loi de quantification : troncature arrondi conventionnel (C54x) arrondi convergent (DSP56000, ADSP21xx) 16/02/2019 Daniel MENARD - LASTI - ENSSAT
Expérimentations filtre FIR et IIR Mesure du RSBQ pour différents processeurs C64x C64x (d) 1 Processeur (Nb bits en entrée du multiplieur, Nb bits en sortie du multiplieur, Nb bits en sortie de l ’additionneur, d: recadrage en sortie du multiplieur) 2 BG: présence de bits de garde 3 Processeur(Sx) instruction SIMD composée de x opérations en parallèle C54x (16,32,40) 1 C50x (16,32,32,d) DSP16x(16,32,36,d) TigerSharc(S2): (16,32,32) TigerSharc(S2-d): (16,32,32,d) TigerSharc(S4): (16,16,16) TigerSharc(S4-d): (16,16,16,d) C64x: (16,32,32) C64x (BG)2: (16,32,40) C64x (d) : (16,32,32,d) C64x(S2)3: (16,16,16) C64x(S2d): (16,16,16,d) 16/02/2019 Daniel MENARD - LASTI - ENSSAT
Daniel MENARD - LASTI - ENSSAT Génération de code Partie frontale : transformation du code source en une représentation intermédiaire Partie finale : génération d’un code cible à partir de la représentation intermédiaire : Sélection d’instructions Allocation et assignation de registres Ordonnancement Optimisations dépendantes de l’architecture 16/02/2019 Daniel MENARD - LASTI - ENSSAT
Influence de la génération de code Sélection d’instructions: le choix de l’instruction est lié à la taille des données la largeur des données est fixée avant la sélection d ’instructions Allocation et assignation de registres: spilling : renvoi de données intermédiaires en mémoire le RSBQ réel ne peut être connu qu’après génération de code Ordonnancement: le coût d’un recadrage est lié à la phase d’ordonnancement la minimisation des recadrages est réalisée au cours de l’ordonnancement. 16/02/2019 Daniel MENARD - LASTI - ENSSAT
Daniel MENARD - LASTI - ENSSAT PARTIE 3 Une nouvelle approche ... 16/02/2019 Daniel MENARD - LASTI - ENSSAT
Vers une nouvelle approche Détermination domaine définition Code C DSP RSBQcontrainte Front End Détermination du codage Représentation Intermédiaire RSBQmesuré Sélection d’instructions Mesure RSBQ Modèle de l’architecture Allocations de registres Détermination du domaine de définition des données Déterminé à partir de la représentation intermédiaire ou du code source Mise en place d’une méthode basée sur la norme L1 Codage des données en 2 parties Détermination du codage : Objectifs : - fixer la largeur des données traitées -> Permettra de fixer le type d’instruction à utiliser - réaliser un premier codage qui respecte la contrainte de RSBQ - prise en compte de l’architecture pour le codage Optimisation du codage en terme de temps d ’exécution : Minimisation du Texec du code : Minimisation d’une fonction de coût représentant le Texec intégrant le coût des différents recadrages Mesure du RSB : Utilisation d’une méthode analytique de calcul du RSBQ présenté par la suite Optimisation du codage Ordonnancement Code assembleur 16/02/2019 Daniel MENARD - LASTI - ENSSAT
Méthode de détermination du RSBQ (1) Principe : modélisation du bruit en sortie de l’algorithme par une somme de sources de bruit filtrées ... Hj(z) bhj(n) xj(n) Hj(z) + y(n) bej(n) bej’(n) Hj(z) bg1(n) bg1’(n) Hb1(z) bgi(n) bgi’(n) Hbi(z) ... 16/02/2019 Daniel MENARD - LASTI - ENSSAT
Méthode de détermination du RSBQ (2) Algorithmes cibles : structures linéaires récursives et non récursives structures non linéaires et non récursives : propagation des moments du bruit au sein du GFD. Modèle de bruit des opérateurs : Addition: Multiplication: 16/02/2019 Daniel MENARD - LASTI - ENSSAT
Méthode de détermination du RSBQ (3) Modèle du bruit généré lors d’un changement de format Troncature Arrondi b-1 b1 bj-1 bj bn-2 bn bn-1 bj+1 Bits tronqués k bits Bits restants b-k bits 2-j+1 2-j 2-n+2 2_n 2-n+1 2-j-1 i 2-n 1 2 3 2-k p(b) 2k -1 p(b) i 2-n -1 0 1 -2k-1 2-k 2k-1 16/02/2019 Daniel MENARD - LASTI - ENSSAT
Outil de détermination du RSBQ Code C, VHDL, assembleur Transformation du code en un GFD Signal Génération du GFD Recherche des informations nécessaires au GFD Signal Génération GFD Signal Front End Représentation intermédiaire GFD Signal GFD Signal Opérateurs arithmétiques classiques (, ) Informations requises format des données (bx, mx, nx, sx) structure temporelle de l’algorithme loi de quantification pour les recadrages Méthode Analytique Back End RSBQ 16/02/2019 Daniel MENARD - LASTI - ENSSAT
Outil de détermination du RSBQ (back end) GFD Signal Transformation T1 Insertion des sources de bruit générées Substitution du modèle de bruit des variables et des opérateurs T1 Transformation T3 Calcul de la réponse impulsionnelle des Hi(z) Calcul du bruit global GFD Bruit Modèles de bruit T2 GFD Hi(z) Transformation T2 Détection et démantèlement des circuits du GFDbruit Détermination des équations récurrentes par parcours des arbres Élimination de certaines variables intermédiaires Détermination de la fonction de transfert globale T3 Pbruit 16/02/2019 Daniel MENARD - LASTI - ENSSAT
Perspectives de travail Partie 4 Perspectives de travail 16/02/2019 Daniel MENARD - LASTI - ENSSAT
Perspectives de travail Outil de détermination du RSBQ : Développement des front-end Extension de la méthode à la conception d’ASIC avec GAUT Détermination et optimisation du codage Choix d’un compilateur Développement de l’outil Applications : systèmes de radiocommunication 3G (UMTS) 16/02/2019 Daniel MENARD - LASTI - ENSSAT