Les processeurs de signaux numériques (DSP) sont des microprocesseurs spécialisés conçus pour effectuer des opérations mathématiques à grande vitesse sur des signaux du monde réel avec une efficacité exceptionnelle. Des téléphones mobiles et des aides auditives aux systèmes radar et aux contrôleurs moteurs industriels, les DSP modernes gèrent la lourde charge de filtrage, compression, modulation et analyse que les processeurs à usage général ne sont pas optimisés pour exécuter en temps réel. Une compréhension approfondie des composants internes de ces processeurs révèle pourquoi ils obtiennent des performances et une flexibilité remarquables.

Architecture de base des PSD modernes

Contrairement aux processeurs à usage général qui mettent l'accent sur la prédiction des branches et l'exécution spéculative, les DSP se concentrent sur les opérations mathématiques déterministes et répétitives, en particulier les opérations de multiaccumulation (MAC). La plupart des DSP modernes utilisent une architecture Harvard modifiée, des bus séparés de programmes et de mémoire de données et des unités d'exécution multiples pour maximiser le débit. Ils intègrent également des ensembles d'instructions spécialisées et des conceptions de pipelines qui permettent le traitement simultané de plusieurs instructions, réduisant la latence et augmentant le débit de données.

Unité logique arithmétique (UAL)

L'ALU d'un DSP n'est pas seulement une simplification de celle trouvée dans un processeur; elle est conçue pour le traitement continu des signaux. Alors que les ALU de base gèrent les opérations d'addition, de soustraction et de logique bitwise, les ALU DSP comprennent souvent du matériel dédié à l'arithmétique de saturation (pour empêcher le débordement dans les systèmes à point fixe) et des alternateurs à barils pour la manipulation rapide des bits.

Unité multiplis-cumul (MAC)

L'unité MAC est indéniablement le cœur de tout DSP. Elle effectue une multiplication suivie d'une addition dans un cycle d'horloge unique, un modèle qui sous-tend la convolution, les transformations discrètes de Fourier (DFT), les filtres à réponse par impulsion finie (FIR) et les algorithmes de corrélation. Les DSP modernes intègrent plusieurs unités MAC – souvent 2, 4, 8 ou même 16 – pour exploiter le parallélisme de niveau de données. Chaque unité MAC contient généralement un tableau multiplicateur à grande vitesse, un registre d'accumulateur avec une précision étendue (par exemple, un accumulateur 64 bits pour les entrées 32 bits) et une logique de saturation pour gérer le débordement.

Parallélisme et canalisations

Pour maintenir les unités MAC et les ULA occupées, les DSP modernes dépendent de pipelines d'instruction profonde et de techniques de parallélisme. La plupart des implémentations utilisent un pipeline à plusieurs étapes (souvent de 5 à 10 étapes) qui récupère, décode, exécute et réécrit les résultats simultanément. Cependant, contrairement aux CPU, les pipelines DSP sont conçus pour éviter les décrochages des risques de données en utilisant des chemins de transmission interblocés et des branches retardées.

Architecture de la mémoire

Un sous-système mémoire DSP=S est donc soigneusement conçu pour fournir un accès à haute vitesse aux instructions de programme et aux flux de données. Presque tous les DSP modernes utilisent une architecture Harvard ou Harvard modifiée pour séparer les mémoires de programme et de données, permettant la récupération simultanée et l'accès à la mémoire. Dans ce cadre, une hiérarchie de registres, la RAM statique sur puce (SRAM), les caches et les moteurs d'accès direct à la mémoire (DMA) fonctionnent ensemble pour maintenir les unités arithmétiques alimentées.

Enregistrer des fichiers

Les fichiers de registre sont la mémoire la plus rapide d'un DSP, généralement composé de cellules SRAM multiports qui permettent de lire et d'écrire plusieurs fois par cycle. Les DSP ont souvent des fichiers de registre distincts pour les données, l'adresse et le contrôle, chacun optimisé pour différentes largeurs de mots. Par exemple, le fichier de registre pour une unité MAC à point fixe de 32 bits peut comprendre 16 ou 32 registres à usage général, chacun pouvant stocker une valeur d'accumulateur ou un opérande d'entrée.

RAM et caches sur le pouce

Contrairement aux processeurs qui utilisent des caches multiniveaux, de nombreux processeurs DSP utilisent des SRAM contrôlés par logiciel pour assurer des performances déterministes. Par exemple, un DSP pour le traitement audio peut attribuer un grand bloc de SRAM sur puce pour une ligne de retard ou une table de coefficients de filtre polyphasés. Certaines architectures comprennent des fichiers de programmes et de données distincts qui peuvent être accessibles simultanément via des bus indépendants. De plus, des DSP modernes haut de gamme, comme ceux utilisés dans le traitement en bande de base, intègrent des caches L1 et L2 avec préfixation matérielle, mais ils permettent toujours de configurer des sections critiques dans SRAM pour garantir la la latence. L'équilibre entre cache et SRAM est un compromis de conception clé : les caches améliorent les performances moyennes des cas pour des modèles d'accès moins prévisibles, tandis que SRAM offre les pires garanties dans les cas requis dans les appareils militaires, aérospatials et médicaux.

Moteur d'accès direct à la mémoire (DMA)

Dans un DSP, les contrôleurs DMA sont généralement multicanaux, supportant les tampons circulaires, le transfert de données en chaîne et les transferts bidimensionnels (2D) de données – caractéristiques essentielles pour le traitement des images vidéo ou les E/S audio multicanaux. Par exemple, le DMA d'un processeur SHARC typique peut transférer des données d'un tampon de convertisseur analogique à numérique (ADC) directement dans un RAM sur puce sans intervention de base, en utilisant des chaînes basées sur des descripteurs pour gérer les tailles de blocs.

Unités de contrôle et d'interface

Alors que les unités de calcul et de mémoire effectuent le calcul lourd, le contrôle et l'interface composants orchestrent opération et connecter le DSP au monde extérieur. Ces unités gèrent l'instruction séquençage, interrompre la manipulation, et la communication avec les capteurs externes, les actionneurs, et d'autres processeurs.

Unité de contrôle

Dans les conceptions VLIW, l'unité de contrôle coordonne également l'expédition de plusieurs unités fonctionnelles, vérifie les conflits de ressources et applique le calendrier défini par le compilateur. De nombreux DSP comprennent un séquenceur de programmes qui gère les boucles zéro-hors-plan – un mécanisme matériel qui répète un bloc d'instructions sans que le coût de la déprédation d'un comptage et de la branchement ne soit supérieur. Ceci est essentiel pour les filtres et les FFT qui exécutent des milliers d'itérations en boucles serrées. De plus, l'unité de contrôle peut intégrer un module de support en temps réel du système d'exploitation (RTOS) avec des minuteries et du matériel de commutation de contexte pour répondre aux exigences déterministes de programmation.

Interfaces périphériques

Les DSP sont conçus pour s'interfacer avec une large gamme de composants externes, y compris les ADC, convertisseurs numériques à analogiques (DAC), capteurs, mémoire et autres processeurs.

  • Interfaces sérielles comme SPI, I2C et UART pour le contrôle à basse vitesse et le transfert de données.
  • comme I2S et TDM pour l'audio numérique multicanal.
  • Les interfaces à haute vitesse comme les contrôleurs USB, Ethernet, PCIe et DDR pour l'intégration au niveau du système.
  • Ports parallèles pour la connexion aux tampons externes ou aux dispositifs FPGA.

Ces périphériques sont souvent entraînés par des canaux DMA dédiés qui réduisent au minimum l'intervention du cœur, permettant au DSP de maintenir un débit élevé tout en assurant le service des flux de données en temps réel. Par exemple, un port TDM de 48 canaux utilisé dans les télécommunications peut être automatiquement désérialisé en tampons séparés par le contrôleur DMA, laissant le noyau pour exécuter des algorithmes de codec vocal sans interruption.

Interrupteur et minuteries

Real-time signal processing demands precise timing. Modern DSPs include programmable interrupt controllers with multiple priority levels, allowing critical events—such as a sample ready from an ADC—to preempt lower-priority processing. On-chip timers, often arranged in pulse-width modulation (PWM) units, generate precise output signals for motor control or power conversion. Some DSPs, like those from the C2000 family, combine DSP arithmetic with microcontroller peripherals, including capture units and quadrature encoder pulse (QEP) modules, making them ideal for real-time control systems.

Unités fonctionnelles spécialisées

Pour gérer les algorithmes les plus exigeants avec une puissance et une latence minimales, les DSP modernes intègrent des accélérateurs matériels spécifiques à l'application. Ces unités déchargent répétitives, des tâches intensives en calcul à partir du cœur, permettant d'améliorer les performances et l'efficacité énergétique des ordres de grandeur.

Processeurs de transformée de Fourier rapide (FFT)

Bien qu'un DSP général puisse calculer un FFT dans un logiciel utilisant des opérations MAC, les accélérateurs FFT matériels effectuent les opérations papillons, les calculs bit-reversal et radix-2 ou radix-4 en logique dédiée. Par exemple, le cœur Cortex-M55 de Arm comprend une interface coprocesseur pour un moteur FFT optionnel qui peut compléter un FFT 1024-point dans moins de 10 μs à 200 MHz, consommant une fraction de l'énergie d'une mise en œuvre logicielle. De nombreux processeurs FFT spécialisés gèrent également les longueurs de fenêtre, de chevauchement et de FFT multiples, s'intégrant parfaitement avec les sous-systèmes DSP=S mémoire et DMA.

Autres accélérateurs de matériel

Au-delà des FFT, une gamme d'accélérateurs sont intégrés dans les DSP pour des domaines spécifiques:

  • accélérateurs de décodeurs de vidéobi et de turbo pour la correction d'erreurs dans les communications sans fil (p. ex., SoCs de bande de base 4G/5G).
  • Moteurs de réseau neuronal (CNN) convolutionnels pour l'inférence de l'apprentissage automatique, communs dans les DSP AI de bord.
  • Les accélérateurs de filtre FIR et IIR[ qui calculent plusieurs robinets par cycle d'horloge à l'aide de registres de décalage et d'arbres de multiplicateurs.
  • Moteurs de compensation de mouvement[ pour les codecs vidéo comme H.264 et HEVC.

Ces accélérateurs partagent la mémoire de données avec le noyau via un bus système ou une barre transversale, et ils sont généralement contrôlés par des registres maquillés en mémoire et des interruptions de fin de traitement. Leur présence permet à un seul DSP de gérer plusieurs domaines de traitement sans nécessiter de puces séparées.

Gestion de l'énergie et rafales d'horloge

La consommation d'énergie est une contrainte critique dans les applications DSP alimentées par batterie (hérablables, smartphones, IoT). Les DSP modernes utilisent une tension dynamique et une échelle de fréquence (DVFS) et des grilles d'horloges à grain fin. Les unités fonctionnelles comme le tableau MAC, les lignes de cache et les interfaces périphériques individuelles peuvent être désactivées lorsqu'elles ne sont pas utilisées. Certaines architectures comprennent également des modes de veille dédiés à faible puissance, en conservant le contenu des registres tout en éteignant les arbres d'horloges aux unités de haute puissance.

Considérations avancées dans la conception moderne du DSP

Les frontières entre les DSP, les microcontrôleurs et les processeurs d'applications sont floues. De nombreux appareils modernes intègrent plusieurs cœurs DSP, des cœurs de commande RISC et des accélérateurs matériels sur une seule matrice. Cette architecture hétérogène permet des flux de travail complexes : un noyau de contrôle gère la programmation en temps réel, un noyau DSP effectue le filtrage et un accélérateur AI exécute une inférence réseau neuronale.

Les DSP modernes sont supportés par des compilateurs qui peuvent automatiquement vectoriser les boucles, programmer les paquets VLIW et gérer les mises en page de mémoire. Les environnements de développement intégrés (IDE) de fournisseurs comme Analog Devices et Texas Instruments offrent des outils de profilage, de visualisation des données en temps réel et des fonctions de bibliothèque optimisées pour les opérations FFT, filtres et matrices. Sans ces outils, exploiter le plein potentiel d'un DSP , les composants internes seraient impossibles.

Conclusion

Les composants internes des processeurs DSP modernes, des unités à accumulation multiple et des hiérarchies de mémoire profonde aux accélérateurs spécialisés et à la logique de gestion de puissance, travaillent de concert pour fournir un traitement déterministe et à haute bande passante des signaux. La compréhension de ces composants est essentielle pour les ingénieurs qui choisissent ou programment des DSP pour des applications allant du radar automobile aux appareils vocaux. En adaptant chaque bloc fonctionnel aux exigences des mathématiques en temps réel, les DSP continuent de remplir leur rôle de cheval de bataille du traitement de signaux numériques intégrés. Pour plus de détails sur des architectures spécifiques, consultez les ressources de Appareils en analog, Texas Instruments et les aperçus techniques de Arm[.