Conception d'une architecture de processeur de signal VLSI, programmable en langage évolué et optimale dans le traitement d'algorithmes rapides
Institution:
Paris 11Disciplines:
Directors:
Abstract EN:
This paper describes the architecture of a VLSI fast digital signal processor, designed to be programmed using a high-level language. This high-level programming language uses embedded signal processing directives (such as convolution, adaptation, order 2 IIR filter sections, etc. . . ) which are familiar to potential users of this IC. This feature makes it much easier to program the principal algorithms used in applications, and specially those used to implement digital filters, the real-time deconvolution and the adaptive equalisation. The processor can be programmed with macroinstructions (signal processing directives), with microinstructions (during program debugging, for example), or with a combination of both, without sacrificing it's performances. Problems related to parameter transmission needed by macroinstructions are solved by using internal registers which are initialized once and for all at power up. Programming is simplified by having all the application program's instructions in external memory. The number of fetch cycles are minimized by creating powerful instructions (for example, the convolution needs only one fetch cycle, and the deconvolution needs only four during each sampling period). The data path has three data RAM memories and three independent data buses, which can be set up to optimize the principal operations used in digital signal processing. The classical multiplier-accumulator structure used as the arithmetic operator has been modified in order to process the "sum of sub products" needed by the convolution, as well as the "sum plus sub-product" needed by the adaptation in a single cycle. The technological word used by the processor, 40 bits wide in the accumulator and 16 bits wide elsewhere, is always optimal because it solves the precision problem only where it's needed (in the multiplieraccumulator). We developed a macrolanguage using signal processing directives embedded in ROM in the form of microinstruction's sequences, a microlanguage, and software tools (a compilator and a simulator) used for validating the proposed architecture as well as for developing application programs.
Abstract FR:
Cette étude présente la conception et la validation d'une architecture de processeur de signal, rapide, et directement programmable en langage évolué, en vue d'une intégration sous la forme d'un circuit intégré à grande échelle (VLSI). Le langage évolué de programmation comprend essentiellement des primitives de traitement numérique du signal implantées en silicium (convolution, adaptation, module biquadratique, etc. . . ) familières aux utilisateurs potentiels de ce circuit. Cette approche permet une implantation facile des principaux algorithmes utilisés dans les applications et en particulier, ceux de filtrage numérique, de déconvolution discrète en temps réel, ou d'égalisation adaptative. Le processeur proposé peut être programmé soit avec des macroinstructions (primitives de traitement du signal), soit avec des microinstructions (pour faciliter la mise au point, par exemple) soit avec une combinaison des deux et ceci sans dégradation des performances. Les problèmes de passage des paramètres nécessaires à de telles macroinstructions sont résolus grâce à l'utilisation de registres internes de paramètres, qui sont configurés une fois pour toutes à la mise sous tension. Toutes les instructions du programme d'application résident en mémoire externe, ce qui rend aisée la programmation. Les instructions étant très puissantes, les cycles d'extraction sont très peu fréquents (la convolution ne demande qu'un cycle d'extraction, et la déconvolution n'en demande que quatre par période d'échantillonnage). La partie opérative est organisée en trois mémoires de données RAM et trois bus de données indépendants, configurables pour optimiser l'exécution des principales opérations de traitement numérique du signal. La structure de multiplieur accumulateur classique, utilisé comme opérateur arithmétique, a été modifiée de façon à effectuer en un seul cycle tant la "somme de sous-produits" nécessaire à la convolution, que la "somme plus sous-produit" nécessaire à l'adaptation. L'utilisation de mots 40 bits dans l'opérateur arithmétique, et de 16 bits ailleurs, nous donne une longueur utile du mot technologique toujours optimale, car le problème de la précision est résolu là où il se présente (dans l'accumulation). Nous avons développé d'une pan, un macrolangage avec des primitives de traitement du signal implantées en ROM sous forme de suites de microinstructions, et d'autre pan, un microlangage et des outils logiciels (un compilateur et un simulateur) pour la validation de l'architecture proposée et le développement des applications.