Introduction aux architectures multi-cibles du PSD

Les processeurs de signaux numériques (DSP) sont des microprocesseurs spécialisés conçus pour effectuer efficacement des opérations mathématiques sur des signaux réels. Ils sont au cœur de systèmes allant des stations de base cellulaires et des réseaux radar aux équipements audio professionnels et aux dispositifs d'imagerie médicale. Depuis des décennies, l'industrie a recours à des DSP monocore, à des performances d'échelle grâce à des améliorations de la vitesse et de l'architecture de l'horloge.

Cet article explore les défis de conception, d'avantages et de mise en oeuvre des systèmes multi-cœurs DSP. Nous examinerons comment les architectures multi-cœurs atteignent l'évolutivité et la fiabilité, discuterons des compromis clés en matière de conception et soulignerons les considérations pratiques pour les ingénieurs qui construisent des plates-formes de traitement de signaux de nouvelle génération.

Pourquoi les PSD multi-cœurs sont essentiels

Le passage à des DSP multi-core est animé par plusieurs forces fondamentales. D'abord, les charges de travail en temps réel du traitement des signaux – comme la formation de faisceaux dans le MIMO massif 5G, la détection d'objets dans le radar autonome ou l'encodage audio multicanal – présentent souvent un parallélisme inhérent. Un noyau simple rapide sature rapidement, mais plusieurs cœurs peuvent partager la charge. Deuxièmement, les contraintes de densité de puissance rendent impossible d'augmenter simplement la vitesse d'horloge d'un seul cœur.

Les DSP multi-cœurs ne sont pas seulement un stopgap; ils représentent une stratégie délibérée pour construire des systèmes de traitement de signaux évolutives, économes en énergie et résilients. Comme nous le verrons, l'approche débloque des capacités que les conceptions mono-cœur ne peuvent tout simplement pas correspondre.

Principaux avantages des architectures multi-cibles du PSD

Amélioration des performances et du rendement

Dans une application multicore DSP typique, le débit global du système s'échelle presque linéairement avec le nombre de cœurs, à condition que la charge de travail puisse être parallélisée efficacement. Par exemple, un DSP à quatre cœurs exécutant une banque de filtres peut diviser les bandes de fréquence entre les cœurs, réduisant ainsi la latence globale par un facteur de quatre. Ce parallélisme est crucial pour les applications sensibles à la latence comme l'annulation active du bruit ou le traitement en temps réel de la voix, où les retards de quelques microsecondes dégradent l'expérience utilisateur.

De plus, les DSP multi-cœurs modernes comprennent souvent des accélérateurs matériels (par exemple, coprocesseurs FFT, décodeurs Viterbi) qui déchargent des tâches spécifiques des noyaux à usage général. Cette approche hétérogène amplifie encore les gains de performance tout en conservant la flexibilité des noyaux programmables par logiciel.

Échelle pour les demandes futures

Les ingénieurs peuvent commencer par une conception à quatre cœurs pour un produit actuel et ensuite passer à huit ou seize cœurs pour une variante à plus haute performance, en réutilisant la même architecture logicielle. Ceci est particulièrement utile sur des marchés comme l'infrastructure de télécommunications, où les normes évoluent et les taux de données augmentent tous les quelques ans.

Dans le traitement de la bande de base du réseau d'accès à la radio-nuage (C-RAN), par exemple, les opérateurs déploient des DSP avec de nombreux cœurs pour gérer un nombre croissant de connexions utilisateurs et des largeurs de bande plus larges de canaux.

Amélioration de la fiabilité grâce à la redondance

Les systèmes à haute fiabilité, comme ceux utilisés dans les applications avioniques, les systèmes de contrôle industriel et les applications militaires, peuvent tirer parti des DSP multi-cores pour mettre en œuvre la tolérance aux défauts. En exécutant des calculs identiques sur deux cœurs ou plus et en comparant les résultats, les concepteurs peuvent détecter et même corriger des erreurs dues aux retournements de bits induits par les radiations, au vieillissement du silicium ou aux glissades transitoires.

Certains DSP multi-cores comprennent du matériel dédié à la gestion des erreurs, comme le code de correction des erreurs (ECC) sur les caches et la mémoire partagée, la logique d'auto-test intégrée (BIST) et les caractéristiques d'isolement du noyau. Lorsqu'un noyau échoue, le système peut réaffecter ses tâches à un noyau sain et poursuivre son fonctionnement (dégradation progressive).Cette fiabilité est essentielle pour les systèmes qui ne peuvent pas supporter les temps d'arrêt, comme les contrôleurs par fil ou les équipements de surveillance des centrales nucléaires.

Efficacité énergétique

L'efficacité énergétique est une mesure critique pour les appareils alimentés par batterie comme les radios portables, les drones et les appareils auditifs. Les architectures DSP multi-cœurs obtiennent de meilleures performances par watt qu'un seul noyau haute fréquence parce que la tension et la fréquence peuvent être éparpillées par cœur. En distribuant des charges de travail à travers plusieurs cœurs plus lents, la puissance dynamique (qui s'échelle avec la surface de tension) est réduite.

Considérations de conception pour les PSD multi-cibles

Architecture de communication et de mémoire inter-correspondants

La performance d'un système multi-cœurs de PSD dépend fortement de l'efficacité de l'échange de données entre les centres.

  • Mémoire partagée: Tous les cœurs accèdent à un pool de mémoire commun via une connexion à haut débit. Ce modèle simplifie le partage des données mais introduit des défis de conflit et de cohérence du cache.
  • Mémoire distribuée:[ Chaque noyau a sa propre mémoire locale et communique par le biais de messages explicites. Cela élimine les disputes, mais nécessite une gestion prudente des données et augmente la complexité du logiciel.
  • Architectures hybrides:[ De nombreux DSP du monde réel combinent la mémoire globale partagée avec des mémoires locales privées. Par exemple, le TI TMS320C6678 octa-core DSP utilise une mémoire partagée multicore (MSM) partagée avec des caches L1 et L2 par cœur, ainsi qu'un moteur DMA pour un mouvement rapide de données.

Pour les applications à forte intensité de données comme la compression d'impulsions radar, un modèle de mémoire distribuée avec des liaisons à grande vitesse peut être préférable. Pour les tâches orientées vers le contrôle, la mémoire partagée simplifie la programmation.

Partitionnement des tâches et parallélisme des données

Le parallélisme efficace nécessite la décomposition d'un algorithme en sous-tâches indépendantes ou couplées de façon lâche.

  • Partitionnement fonctionnel:[ Attribuer des blocs entiers de la chaîne de traitement à différents cœurs. Par exemple, dans une radio définie par logiciel, un cœur gère la conversion numérique, un autre démodulation, et un troisième décodage.
  • Partitionnement des données:[ Distribuer les images de données à travers les cœurs, chaque cœur appliquant le même traitement à son fragment. Ceci est souvent utilisé dans les systèmes multicanaux où chaque cœur gère un sous-ensemble de canaux.

Le meilleur choix dépend de la structure de l'algorithme et des frais de communication. Dans de nombreux systèmes pratiques, une approche hybride fonctionne bien, équilibrant la charge et minimisant les dépendances inter-cœur.

Synchronisation et cohérence des données

Lorsque plusieurs cœurs accèdent à des ressources partagées, la synchronisation devient essentielle. Les sémaphores, les opérations atomiques et les barrières fournis par le matériel sont des caractéristiques standard dans les DSP multi-cœur. Cependant, la surutilisation des verrous peut dégrader les performances, de sorte que les concepteurs devraient viser des structures de données sans verrou ou des communications asynchrones lorsque possible.

Dans un système à mémoire partagée, un noyau peut modifier des données qu'un autre noyau a mises en cache. Sans mécanismes de cohérence matérielle, le deuxième noyau peut utiliser des valeurs inexistantes. Les DSP multi-core modernes intègrent souvent des protocoles de cohérence basés sur snoop ou sur répertoire, mais ils ajoutent de la latence et de la puissance. Pour le traitement en temps réel des signaux, il peut être plus efficace de gérer la cohérence dans les logiciels en rinçant les caches aux points de synchronisation ou en utilisant des régions de mémoire non rangées pour les données partagées.

Tolérance des défauts et détection d'erreurs

Au-delà de la redondance de base, les DSP multi-cœurs peuvent mettre en place des mécanismes de fiabilité sophistiqués :

  • Exécution du redondant:[ Deux cœurs exécutent le même flux d'instruction, et un comparateur vérifie les résultats. Ceci est souvent utilisé dans les modes critiques de sécurité.
  • Watchdog Timers:[ Un noyau envoie périodiquement un « battement de cœur » à un chien de garde. Si le chien de garde n'est pas réinitialisé dans le temps, le système suppose que le noyau a accroché et initie la récupération.
  • Construire l'auto-test (BIST):[ Au démarrage ou pendant les périodes de repos, les carottes lancent des diagnostics pour détecter les défauts ou les erreurs de mémoire coincés.
  • Codes de correction d'erreur (ECC):[ La protection des caches et de la mémoire principale avec ECC permet de corriger les erreurs à un seul bits et de détecter les erreurs à deux bits.

La conception d'un système multi-cœur fiable nécessite de choisir la combinaison appropriée de techniques matérielles et logicielles et de vérifier que la couverture des erreurs répond aux exigences de certification de l'application.

Mise en œuvre de systèmes multi-cibles de PSD

Sélection de la plate-forme matérielle

La première étape de la mise en œuvre consiste à choisir le bon dispositif multicore DSP. Les critères clés comprennent le nombre et le type de cœurs (p. ex., point fixe vs point flottant), la vitesse de l'horloge, la taille de la mémoire et la bande passante, les accélérateurs sur puce et les interfaces d'E/S. Les principaux fournisseurs sont :

  • Texas Instruments (TI):[ La famille TMS320C66x offre jusqu'à huit cœurs C66x avec support fixe et flottant, ainsi qu'un coprocesseur réseau pour le traitement des paquets.
  • NXP (anciennement Freescale):[ Le MSC8157 comprend six cœurs SC3850 avec accélérateurs de bande de base MAPLE-B, ciblant les stations de base 3G/4G.
  • CEVA: Leurs cœurs CEVA-XC16 et CEVA-BX2 sont souvent utilisés dans les applications 5G et AI, configurables pour les grappes multi-cœurs.
  • Xilinx/AMD Zynq UltraScale+: Les appareils hétérogénés combinant des noyaux ARM avec des blocs programmables logiques et DSP48 permettent des implémentations DSP multi-cores personnalisées.

La sélection devrait également tenir compte des outils de développement, y compris les compilateurs, les débogueurs et les outils de profilage, qui influent fortement sur la productivité.

Cadre de logiciels et modèles de programmation

Le développement de logiciels pour les PSD multi-cœurs nécessite de dépasser la programmation à simple filetage.

  • OpenMP: Une API pour la programmation parallèle à mémoire partagée qui utilise des directives pour annoter les boucles et sections parallèles. Elle est bien adaptée pour les algorithmes parallélistes de données sur des DSP multi-core homogènes.
  • OpenCL:[ Un cadre pour l'informatique hétérogène à travers les processeurs, les DSP et les GPU. Il expose un modèle de plate-forme avec des groupes de travail et des éléments de travail, donnant un contrôle détaillé sur le mouvement des données.
  • Message Passing (p. ex. OpenMPI, bibliothèques spécifiques au fournisseur):[ Utilisé pour les architectures de mémoire distribuées. Chaque noyau exécute un processus distinct qui communique via des envois et des réceptions explicites.
  • Réal-Time Operating Systems (RTOS):[ De nombreux DSP multi-cœurs exécutent un RTOS léger comme TI-RTOS ou un planificateur de métaux nus qui assigne des tâches aux cœurs et gère la communication inter-cœur.

Pour des performances maximales, les développeurs combinent souvent des approches – en utilisant OpenMP pour le parallélisme interne et en passant un message explicite pour la coordination inter-cœur.

Essai, validation et débogage

Les systèmes multi-cœurs présentent des défis uniques en matière de tests. Les courses de données, les impasses et les dépendances subtiles en temps peuvent être extrêmement difficiles à reproduire.

  • Simulation: Les simulateurs de précision de cycle des fournisseurs permettent une vérification fonctionnelle et une estimation de performance précoce avant que le silicium ne soit disponible.
  • Essais de mise en garde : La connexion du panneau DSP aux entrées réelles (p. ex. signaux RF, données de capteur) et aux sorties de surveillance valide le système dans des conditions réalistes.
  • Injection par défaut:[ La corruption intentionnelle de la mémoire ou les erreurs de bits par injection testent les mécanismes de tolérance aux défauts et assurent la bonne réaction du système.
  • Outils de traçage et de profilage:[ Des modules de trace matériels non intrusifs (p. ex., le tampon de trace embarqué de TI) capturent l'exécution des instructions et les accès aux données, permettant l'analyse post mortem de bugs rares.

La validation approfondie est obligatoire pour les systèmes critiques en matière de sécurité (p. ex. DO-178C en avionique, CEI 61508 pour la sécurité industrielle). Les modèles multi-cœurs doivent démontrer que le cloisonnement est robuste et que les défauts ne se propagent pas entre les carottes.

Cas d'utilisation et applications du monde réel

Les architectures multi-core DSP sont déployées dans un large éventail d'industries. Ici, nous mettons en évidence trois exemples représentatifs.

5G et au-delà traitement de bande de base

Les stations de base modernes doivent traiter des signaux MIMO massifs avec des centaines d'antennes. Les DSP multi-cœurs gèrent des tâches telles que l'estimation des canaux, le précodage et le traitement FFT/IFFT. Les entreprises comme Ericsson et Nokia utilisent des réseaux DSP multi-cœurs dans leurs unités radio. L'évolutivité de ces plateformes permet aux opérateurs de déployer le même matériel de base pour différentes bandes de fréquences et configurations d'antennes.

Radar et guerre électronique

Les systèmes radar militaires nécessitent le traitement d'une grande quantité de données d'impulsion en temps réel. Les DSP multi-cœurs mettent en œuvre des algorithmes avancés comme le traitement adaptatif espace-temps (STAP) et la formation de faisceaux numériques.

Audio et acoustique professionnels

Les consoles de mixage numérique haut de gamme, les barres de son actives et les systèmes de conférence utilisent des DSP multi-cœurs pour gérer des dizaines de canaux audio avec chaînes de traitement complexes (EQ, dynamique, réverbération de convolution).

Nouvelles tendances dans la conception multi-cibles DSP

Le paysage des PSD multi-cœurs évolue rapidement. Plusieurs tendances façonneront les conceptions futures :

  • Intégration hétérogénique:[ Les futurs DSP multi-cœurs combineront les noyaux DSP traditionnels avec les accélérateurs d'IA, les noyaux RISC-V et la logique programmable sur une seule matrice, permettant un traitement plus efficace pour l'inférence d'apprentissage profond au bord.
  • Chiplets et conditionnement avancé: Au lieu de puces monolithiques, des DSP multi-core peuvent être construits à partir de puces connectées via des interposeurs haute densité (p. ex., l'architecture Infinity d'AMD). Cela permet de mélanger différents nœuds de processus pour une performance et un coût optimaux.
  • Reliabilité définie par le logiciel:[ À mesure que les exigences de certification deviennent plus flexibles, nous verrons une tolérance de défaillance basée sur le logiciel (p. ex., tolérance de défaillance fondée sur l'algorithme) compléter les mécanismes matériels, réduisant ainsi les frais généraux en silicium.
  • Les chaînes d'outils automatisées: Les compilateurs et les outils de cartographie automatiseront de plus en plus le cloisonnement des tâches et l'allocation de la mémoire pour les DSP multi-cœurs, rendant le parallélisme accessible aux experts du domaine sans une connaissance matérielle profonde.

Conclusion

La mise en œuvre d'architectures multi-core DSP est passée d'une stratégie de niche à une approche générale pour atteindre l'évolutivité et la fiabilité dans le traitement des signaux à haute performance. En abordant soigneusement la communication inter-core, la partition des tâches, la synchronisation et la tolérance aux défauts, les ingénieurs peuvent construire des systèmes qui offrent un débit considérablement plus élevé, une meilleure efficacité énergétique et un fonctionnement robuste dans des conditions défavorables.

Alors que les exigences de la 5G, l'IA à la pointe et les systèmes autonomes continuent à augmenter, les DSP multi-core resteront la pierre angulaire du traitement en temps réel des signaux.