DSP intégré. Portail d'actualités et d'analyse "Electronics Time". Pourquoi avons-nous besoin de processeurs DSP ?

65 nanomètres est le prochain objectif de l'usine Angstrem-T de Zelenograd, qui coûtera entre 300 et 350 millions d'euros. L'entreprise a déjà soumis une demande de prêt préférentiel pour la modernisation des technologies de production à la Vnesheconombank (VEB), a rapporté cette semaine Vedomosti en référence au président du conseil d'administration de l'usine, Leonid Reiman. Angstrem-T s'apprête désormais à lancer une ligne de production de microcircuits avec une topologie de 90 nm. Les remboursements du précédent prêt VEB, pour lequel il a été acheté, débuteront à la mi-2017.

Pékin fait chuter Wall Street

Les principaux indices américains ont marqué les premiers jours de la nouvelle année par une baisse record ; le milliardaire George Soros a déjà prévenu que le monde était confronté à une répétition de la crise de 2008.

Le premier processeur grand public russe Baïkal-T1, au prix de 60 dollars, est lancé dans la production de masse

La société Baikal Electronics promet de lancer la production industrielle du processeur russe Baikal-T1, d'un coût d'environ 60 dollars, début 2016. Ces appareils seront demandés si le gouvernement crée cette demande, affirment les acteurs du marché.

MTS et Ericsson développeront et mettront en œuvre conjointement la 5G en Russie

Mobile TeleSystems PJSC et Ericsson ont conclu des accords de coopération pour le développement et la mise en œuvre de la technologie 5G en Russie. Dans le cadre de projets pilotes, notamment lors de la Coupe du monde 2018, MTS a l'intention de tester les développements du fournisseur suédois. Au début de l'année prochaine, l'opérateur entamera un dialogue avec le ministère des Télécommunications et des Communications de masse sur la formation des exigences techniques pour la cinquième génération de communications mobiles.

Sergueï Chemezov : Rostec est déjà l'une des dix plus grandes sociétés d'ingénierie au monde

Le chef de Rostec, Sergueï Chemezov, dans une interview avec RBC, a répondu à des questions urgentes : sur le système Platon, les problèmes et les perspectives d'AVTOVAZ, les intérêts de la société d'État dans le secteur pharmaceutique, a parlé de la coopération internationale dans le contexte des sanctions. pression, substitution des importations, réorganisation, stratégie de développement et nouvelles opportunités dans des moments difficiles.

Rostec « s'auto-clôture » et empiète sur les lauriers de Samsung et de General Electric

Le conseil de surveillance de Rostec a approuvé la « Stratégie de développement jusqu'en 2025 ». Les principaux objectifs sont d'augmenter la part des produits civils de haute technologie et de rattraper General Electric et Samsung dans les indicateurs financiers clés.

Traitement du signal numérique DSP (processeur de signal numérique)

ParticularitésDSP

Les DSP sont des processeurs spécialisés pour les applications gourmandes en calcul.
Si nous regardons de plus près, par exemple, le processus de multiplication de deux nombres avec stockage du résultat dans des microprocesseurs traditionnels, nous pouvons voir comment le temps de l'ordinateur est dépensé : d'abord, une commande est récupérée (l'adresse de la commande est définie sur le bus d'adresse ), puis le premier opérande (l'adresse de l'opérande est définie sur le bus d'adresses ), puis l'opérande est transféré à l'accumulateur, puis le deuxième opérande est récupéré, etc. L'accélération de ce processus dans un processeur à usage général est impossible en raison de la présence d'un seul bus d'adresses et d'un seul bus de données, ainsi que d'une seule banque de données. Compte tenu de cela, toutes les opérations permettant de récupérer des opérandes de la mémoire, d'extraire une instruction et de stocker un opérande sont effectuées séquentiellement en utilisant le même bus de données et le même bus d'adresse. De plus, si l'on considère l'opération de sommation cyclique d'une série arithmétique, on voit qu'ici le temps système est associé à la mémorisation de l'adresse de la première commande du cycle, à la vérification de l'état du cycle (compteur) et au retour à la première commande. Il existe également une surcharge importante dans les opérations de saut et de retour de sous-programme (écriture et restauration des valeurs de registre à partir de la pile) et dans de nombreuses autres opérations. Si l'on prend en compte le grand nombre d'opérations mathématiques lors du traitement du signal numérique, il devient clair que des pertes très sensibles dans la précision des calculs lors de l'arrondi sont inévitables, ce qui ne peut qu'affecter le résultat global. Cela est dû à la même largeur de tous les registres des processeurs à usage général.
Avec le traitement numérique du signal, tous ces coûts sont inacceptables. Afin de pallier cette lacune des processeurs à usage général, des processeurs de signaux numériques (DSP - Digital Signal Processor) ont été développés.

Architecture Harvard à trois bus

Sa particularité réside avant tout dans le fait que, contrairement aux deux bus auxquels nous sommes habitués : le bus d'adresses et le bus de données, ainsi qu'une banque mémoire, le DSP possède au moins 6 à 7 bus différents et 2 à 3 banques mémoire. Cette fonctionnalité vise à accélérer au maximum l'exécution de l'opération de multiplication tout en stockant le résultat, qui est sans doute la plus utilisée et la plus gourmande en ressources dans le traitement du signal numérique. L'architecture DSP permet en un cycle machine produire:

  • récupérer une commande via le bus d'adresses de programme et le bus de données de programme ;
  • récupérer deux opérandes pour une opération de multiplication via deux lignes d'adresse de données ;
  • entrer des opérandes dans des accumulateurs via deux bus de données ;
  • opération de multiplication;
  • enregistrer le résultat dans l'accumulateur.

Ainsi, l'architecture Harvard à trois bus permet d'effectuer presque toutes les opérations en un seul cycle machine.
À titre d'exemple de l'efficacité de l'utilisation du DSP lors de la mise en œuvre d'algorithmes de traitement du signal numérique, le temps d'exécution d'une transformée de Fourier complexe à 1024 points est de 20 ms pour un 486DX2 66 MHz (32 bits) et de 3,23 ms pour un 24 bits 33 MHz. DSP56001 de Motorola ou 3,1 ms pour le DSP TMS320C30 32 bits 33 MHz avec arithmétique flottante de Texas Instruments.
Cependant, comme déjà mentionné, les processeurs de signaux numériques se distinguent non seulement par des performances élevées, mesurées par la vitesse des opérations de multiplication/accumulation (MIPS - millions d'instructions par seconde), mais également par des caractéristiques telles que la séquence d'exécution du programme, les opérations arithmétiques. et l'adressage mémoire, vous permettant de réduire au minimum les temps improductifs. En général, le DSP diffère des autres types de microprocesseurs et de microcontrôleurs des cinq manières principales suivantes :

  • Arithmétique rapide.

Le processeur DSP doit effectuer une multiplication, une multiplication avec accumulation, un décalage cyclique, ainsi que des opérations arithmétiques et logiques standard en un seul cycle.

  • Volume dynamique étendu pour les opérations de multiplication/accumulation.

L'opération de calcul de la somme d'une certaine séquence de valeurs est fondamentale pour les algorithmes implémentés sur le DSP. Une protection contre les débordements est nécessaire pour éviter la perte de données.

  • Récupération de deux opérandes en un seul cycle.

Évidemment, la plupart des opérations effectuées par un DSP nécessitent deux opérandes. Ainsi, pour obtenir des performances maximales, le processeur doit être capable de récupérer deux opérandes simultanément, ce qui nécessite également un système d'adressage flexible.

  • Disponibilité de tampons cycliques implémentés par le matériel (intégrés et externes).

Une large classe d'algorithmes implémentés sur le DSP nécessite l'utilisation de tampons cycliques. La prise en charge matérielle du cycle de pointeur d'adresse, ou adressage modulaire, réduit la surcharge du processeur et simplifie la mise en œuvre des algorithmes.

  • Organisation des boucles et des branches sans perte de performances.

Les algorithmes DSP impliquent de nombreuses opérations répétitives qui peuvent être implémentées sous forme de boucles. La possibilité de séquencer l'exécution d'un programme de code en boucle sans perte de performances distingue le DSP des autres processeurs. De même, perdre du temps lors de l’exécution d’une opération de branchement conditionnel est également inacceptable dans le traitement du signal numérique.
Cependant, il ne faut pas penser que les DSP peuvent remplacer complètement les processeurs à usage général. En règle générale, les processeurs de signaux numériques disposent d'un jeu d'instructions simplifié qui ne permet pas d'effectuer des opérations non mathématiques aussi efficacement que les processeurs à usage général. Tenter de combiner la puissance pour les calculs mathématiques et la flexibilité pour d'autres types d'opérations dans un seul processeur entraîne une augmentation injustifiée des coûts. Ainsi, les DSP sont souvent utilisés sous forme de coprocesseurs (mathématiques, graphiques, accélérateurs, etc.) avec le processeur principal ou comme processeur indépendant, si cela est suffisant.

DSPentreprisesMotorola

Motorola produit actuellement trois familles de processeurs de signaux numériques. Il s'agit des séries DSP56100, DSP56000 et DSP96000. Tous les microcircuits de la série donnée sont basés sur l'architecture DSP56000 et diffèrent par la profondeur de bits (16, 24, 32 bits, respectivement) et certains dispositifs intégrés. De cette manière, la compatibilité des puces des trois familles est assurée de bas en haut. Tous les DSP Motorola sont construits sur l'architecture Harvard à trois bus identique décrite précédemment, avec un grand nombre de composants, ports, contrôleurs, banques de mémoire et bus fonctionnant en parallèle pour obtenir des performances maximales.
Transfert de données se produit sur les bus de données bidirectionnels (un pour le DSP56100 (XDB) et deux pour les DSP56000 et DSP96000 (XDB et YDB)), le bus de données de programme (PDB) et le bus de données général (GDB). De plus, le DSP96000 dispose d'un bus d'accès direct à la mémoire (DDB) séparé. Le transfert de données entre les bus s'effectue via un dispositif de gestion des pneus.
Adressage réalisée sur deux bus unidirectionnels : le bus d'adresses de données et le bus d'adresses de programme.
Bloc de manipulation de bits vous permet de contrôler de manière flexible l'état de n'importe quel bit dans les registres et les cellules mémoire. Avoir cette capacité est un avantage par rapport aux DSP des autres utilisateurs.
Unité arithmétique et logique (ALU) effectue toutes les opérations arithmétiques et logiques et comprend des registres d'entrée, des accumulateurs, des registres d'extension d'accumulateur (8 bits, permettant 256 débordements sans perte de précision), une unité de multiplication et de stockage (MAS) parallèle à un seul cycle, ainsi que des registres à décalage. Les commandes système vous permettent d'exécuter l'ALU en un cycle d'instructions de multiplication, multiplication avec sauvegarde du résultat, sommation, soustraction, décalage et opérations logiques. Une caractéristique du Motorola DSP est la possibilité de doubler les registres d'entrée de l'ALU et ainsi d'augmenter la profondeur de bits des nombres traités. Une autre caractéristique importante est la présence d'une opération de division, souvent absente chez d'autres fabricants et remplacée par une opération de multiplication par le nombre inverse, ce qui entraîne une perte de précision.
Bloc de génération d'adresse effectue tous les calculs liés à la détermination des adresses en mémoire. Ce bloc fonctionne indépendamment des autres blocs processeur. En un cycle, deux opérations de lecture depuis la mémoire ou une opération d'écriture peuvent être effectuées. Les DSP de Motorola disposent d'un système d'adressage extrêmement puissant qui permet d'effectuer presque toutes les manipulations de données en une seule commande. Cette caractéristique importante distingue les DSP produits par l'entreprise de leurs analogues. L'adressage modulo est utile pour organiser les tampons en anneau sans vérification hors limites, évitant ainsi une surcharge de temps. La possibilité d'adressage avec une inversion de bits significative facilite la mise en œuvre de la FFT.
Bloc gestion exécution programmes contient 6 registres, parmi lesquels Pointeur d'adresse de boucle Et Compteur de cycles, vous permettant d'organiser le support matériel pour l'organisation des boucles dans le Motorola DSP, qui ne nécessite pas de cycles machine supplémentaires pour vérifier les conditions de sortie de la boucle et de modification du compteur de boucles. La commande DO cycle spécifie explicitement le nombre de répétitions.
La pile système est une partie distincte de 15 mots de RAM et peut stocker des informations sur 15 interruptions, 7 boucles ou 15 sorties de sous-programmes. Les données de la pile sont lues en un seul cycle, réduisant ainsi la surcharge du processeur.
La principale caractéristique distinctive du DSP de Motorola est que toutes les puces ont émulateur sur puce, permettant le débogage des programmes sans utiliser de matériel supplémentaire. Ainsi, il n’est pas nécessaire d’acheter des outils de débogage coûteux. L'émulateur vous permet d'écrire/lire des registres et des cellules mémoire, de définir des points d'arrêt, d'exécuter des programmes étape par étape et d'autres actions en envoyant des commandes via un bus à 4 fils.
Pour réduire la consommation d'énergie lorsque vous n'utilisez pas d'ordinateur, deux modes basse consommation sont proposés : ARRÊT Et ATTENDEZ.
Pour fonctionner en conjonction avec d'autres processeurs et canaux d'accès direct à la mémoire, un Interface HÔTE.
Possédant toutes les propriétés ci-dessus nécessaires au traitement du signal numérique, les DSP Motorola disposent d'un système de commande extrêmement puissant et flexible qui permet à l'utilisateur de travailler facilement et efficacement avec les processeurs.

Famille DSP96000

La famille de DSP DSP96000 possède une architecture 32 bits et prend en charge les opérations en virgule flottante. Les microcircuits de la famille sont destinés aux systèmes informatiques multimédia. Les DSP de cette série peuvent fonctionner comme des puces indépendantes et, via deux ports 32 bits indépendants, ils peuvent échanger séquentiellement des données avec d'autres processeurs.
Les microcircuits de la famille comprennent 6 banques de mémoire, 8 bus et 4 unités de calcul autonomes : une ALU, une unité de contrôle de programme, une unité de génération d'adresse double et un contrôleur d'accès direct à la mémoire à deux canaux intégré.
Caractéristiques des puces de la famille DSP96000 :

  • 49,5 MIPS à 40 MHz
  • 60 MFLOPS à 40 MHz, cycle de 50 ns
  • Organisation 32 bits
  • 2 banques de mémoire de données RAM 512x32 bits
  • 2 banques de mémoire de données ROM 512x32 bits
  • Programme RAM 1024x32 bits
  • ROM de démarrage de 56 octets
  • mémoire externe adressable 2x232 mots de données et mémoire de programme de 32 bits
  • émulateur intégré
  • 2 canaux DMA
  • 2 canaux d'échange avec des processeurs externes
  • Boîtier PGA ou QFP 223 broches

DSPentreprisesTexasInstruments

Les DSP de cette société sont représentés par les microprocesseurs suivants : TMS 32010, TMS 320C20, TMS 320C25, TMS 320C30, TMS 320C40, TMS 320C50.

Caractéristiques de l'architecture TMS320C25

L'architecture TMS320C2x est basée sur l'architecture TMS32010, premier membre de la famille des microprocesseurs DSP. De plus, son jeu d'instructions chevauche le jeu d'instructions du microprocesseur TMS32010, qui maintient la compatibilité logicielle de bas en haut.
Le microprocesseur TMS320C2x dispose d'une seule batterie et utilise l'architecture Harvard dans laquelle la mémoire des données et la mémoire programme sont séparées en différents espaces d'adressage. Cela permet de bloquer complètement l'appel et l'exécution d'une commande à temps. Le système d'instructions comprend des commandes permettant d'échanger des données entre deux zones de mémoire. En dehors du microprocesseur, les espaces mémoire de données et de programme sont combinés sur le même bus afin de maximiser la plage d'adresses dans les deux zones mémoire tout en minimisant simultanément le nombre de broches. Au sein du microprocesseur, les espaces de programme et de données sont acheminés vers des bus séparés pour augmenter la puissance du processeur et la vitesse d'exécution du programme.
Une flexibilité accrue dans la conception du système est assurée par deux grands blocs de RAM situés sur la puce, dont l'un peut être utilisé à la fois comme mémoire de programme et comme mémoire de données. La plupart des instructions du processeur sont exécutées en un seul cycle machine en utilisant à la fois la mémoire programme externe à accès rapide et la mémoire RAM interne. La flexibilité du microprocesseur TMS320C2x permet également la connexion de mémoires externes lentes ou de périphériques utilisant le signal READY ; mais dans ce cas les commandes sont exécutées en plusieurs cycles machine.

Organisation de la mémoire

La puce TMS32020 contient 544 mots de 16 bits de mémoire RAM, dont 288 mots (blocs B1 et B2) sont toujours alloués aux données, et 256 mots (bloc B0) peuvent être utilisés soit comme mémoire de données, soit comme mémoire de programme dans différents processeurs. configurations. Le TMS320C25 est également équipé d'une ROM masquable de mots 4K, et le TMS320E25 est équipé d'une mémoire de mots 4K avec EPROM effaçable par UV.
Le TMS320C2x est fourni avec trois espaces d'adressage séparés : pour la mémoire programme, pour la mémoire de données et pour les périphériques d'E/S, comme illustré sur la Fig. 6.5. Ces espaces hors puce sont distingués à l'aide des signaux -PS, -DS, -IS (pour les espaces programme, données et E/S, respectivement). Les blocs mémoire B0, B1, B2, situés sur la puce, couvrent un total de 544 mots de mémoire vive (RAM). Le bloc RAM B0 (256 mots) se trouve aux pages 4 et 5 de la mémoire de données, s'il est alloué aux données, ou aux adresses >FF00 - >FFFF, s'il fait partie de la mémoire programme. Le bloc B1 (données uniquement) se trouve aux pages 6 et 7, et le bloc B2 occupe les 32 mots les plus élevés de la page 0. Notez que le reste de la page 0 est occupé par 6 registres adressables et une zone de réserve ; 1 à 3 pages représentent également une zone de réserve. Les zones de réserve ne peuvent pas être utilisées pour stocker des informations ; leur contenu n'est pas défini lors de la lecture.
La mémoire de programme interne (ROM) située sur la puce du processeur peut être utilisée comme mots inférieurs de 4 Ko de la mémoire de programme. Pour ce faire, un signal de faible niveau doit être appliqué à la broche MP/*MC. Pour interdire l'utilisation de la zone ROM interne, le MP/*MC doit être réglé à un niveau élevé.

Mémoire externe et interface E/S

Le microprocesseur TMS32020 prend en charge une large gamme de systèmes d'interface. L'espace d'adressage des données, des programmes et des E/S fournit des interfaces avec la mémoire et les périphériques externes, augmentant ainsi les capacités du système. L'interface mémoire locale se compose de :

  • Bus de données 16 bits (D0-D15) ;
  • Bus d'adresse 16 bits (A0-A15) ;
  • espaces d'adressage de données, programmes et entrées/sorties sélectionnés par signaux (*DS, *PS et *IS) ;
  • divers signaux de commande du système.

Le signal R/*W contrôle le sens de transmission et le signal *STRB contrôle la transmission.
L'espace E/S contient 16 ports d'entrée et 16 ports de sortie. Ces ports fournissent une interface 16 bits complète aux périphériques externes via le bus de données. Les E/S uniques utilisant les instructions IN et OUT sont réalisées en deux cycles d'instructions ; cependant, l'utilisation d'un compteur de répétitions réduit le temps d'accès à un port à 1 cycle.
L'utilisation des E/S est simplifiée par le fait que les E/S s'effectuent de la même manière que l'accès mémoire. Les périphériques d'E/S sont mappés à l'espace d'adressage d'E/S à l'aide d'adresses de processeur externe et du bus de données, de la même manière que la mémoire. Lors de l'adressage de la mémoire interne, le bus de données est dans le troisième état et les signaux de commande sont dans un état passif (haut).
L'interaction avec la mémoire et les périphériques d'E/S à différentes vitesses est accompagnée d'un signal READY. Lors de la communication avec des appareils lents, le TMS320C2x attend que l'appareil termine son fonctionnement et en informe le processeur via la ligne READY, après quoi le processeur continue de fonctionner.

Unité centrale arithmétique et logique

L'unité logique arithmétique centrale (CALU) contient un registre à décalage de mise à l'échelle de 16 bits, un multiplicateur parallèle 16 x 16, une unité logique arithmétique (ALU) de 32 bits, un accumulateur de 32 bits et plusieurs registres à décalage supplémentaires situés à la fois au niveau du sortie du multiplicateur et à la sortie de la batterie.
Toute opération ALU est effectuée dans l’ordre suivant :

  1. les données sont capturées de la RAM vers le bus de données,
  2. les données transitent par le registre à décalage de mise à l'échelle et par l'ALU, dans lequel les opérations arithmétiques sont effectuées,
  3. le résultat est transféré à l'accumulateur.

Une entrée de l'ALU est toujours connectée à la sortie de l'accumulateur, et la seconde peut recevoir des informations soit du registre de produit multiplicateur (PR), soit chargées depuis la mémoire via un registre à décalage de mise à l'échelle.

Opérations de convoyeur

Le pipeline de commandes consiste en une séquence d’opérations d’accès au bus externe qui se produisent pendant l’exécution de la commande. Le pipeline prefetch-decode-execute est généralement invisible pour l'utilisateur, sauf dans certains cas où le pipeline doit être interrompu (par exemple, lors d'un branchement). Pendant l'exécution du pipeline, la prélecture, le décodage et l'exécution des instructions sont indépendants les uns des autres. Cela permet aux équipes de se chevaucher. Ainsi, au cours d'un cycle, deux ou trois commandes peuvent être actives, chacune à des étapes différentes du travail. Nous obtenons donc un convoyeur à deux niveaux pour le TMS32020 et à trois niveaux pour le TMS320C25.
Le nombre de niveaux de pipeline n'affecte pas toujours la vitesse d'exécution des commandes. La plupart des instructions s'exécutent dans le même nombre de cycles, que les instructions soient extraites de la mémoire externe, de la RAM interne ou de la ROM interne.
Le matériel supplémentaire disponible sur le processeur TMS320C25 permet d'étendre le nombre de niveaux de pipeline à trois, ce qui améliore les performances du processeur. Ces installations comprennent le compteur de précapture (PFC), la pile de microappels (MCS) 16 bits, le registre d'instructions (IR) et le registre de file d'attente d'instructions (QIR).
Avec un pipeline à trois niveaux, le PFC contient l'adresse de la prochaine instruction à pré-capturer. Une fois la pré-capture terminée, la commande est chargée dans l'IR. Si IR stocke une commande qui n'a pas encore été exécutée, alors la commande pré-capturée est placée dans QIR. Après cela, PFC est augmenté de 1. Dès que la commande en cours est exécutée, la commande de QIR sera surchargée dans IR pour une exécution ultérieure.
Le compteur de programme (PC) contient l'adresse de l'instruction à exécuter ensuite et n'est pas utilisé pour les opérations de capture.
Mais généralement, PC est utilisé comme pointeur vers la position actuelle dans le programme. Le contenu du PC est augmenté après chaque commande exécutée. Lorsqu'une interruption ou un appel de sous-programme se produit, le contenu du PC est placé sur la pile afin qu'un retour à l'emplacement souhaité dans le programme puisse être effectué ultérieurement.
Les cycles de pré-capture, de décodage et d'exécution du pipeline sont indépendants les uns des autres, ce qui permet aux commandes exécutables de se chevaucher dans le temps. Au cours d'un cycle, trois commandes peuvent être actives simultanément, chacune à un stade d'exécution différent.

Processeurs DSP.doc

Processeurs DSP

Traitement du signal numérique (DSP) - Traitement du signal numérique (DSP) - est utilisé dans de nombreuses applications.

Tout d'abord, il est nécessaire de clarifier le sens des mots qui composent ce concept :


  • Informatique numérique utilisant des signaux discrets pour représenter des données sous forme numérique

  • Le signal est un paramètre changeant par lequel les informations sont transmises le long d'un circuit électrique

  • Traitement - effectuer des opérations sur les données conformément aux instructions du programme

  • Traitement du signal numérique modifiant ou analysant les informations mesurées par des séquences discrètes de nombres
Il convient de noter deux caractéristiques uniques du traitement du signal numérique :

  • les signaux proviennent du monde réel - cette connexion étroite avec le monde réel entraîne de nombreuses exigences particulières, telles que la nécessité de réagir aux signaux entrants en temps réel, de les mesurer et de les convertir sous forme numérique

  • les signaux sont discrets - ce qui signifie une perte d'informations entre des échantillons discrets
Les avantages du DSP sont communs à de nombreux systèmes numériques et comprennent :

Polyvalence:


  • les systèmes numériques peuvent être reprogrammés pour d'autres applications (au moins lorsque des puces DSP programmables sont utilisées)

  • les systèmes numériques peuvent être transférés vers divers équipements

Reproductibilité :


  • les systèmes numériques peuvent être facilement doublés

  • les systèmes numériques ne reposent pas sur des tolérances précises des composants

  • les caractéristiques des systèmes numériques ne varient pas avec la température

Simplicité:


  • certaines choses peuvent être faites plus facilement dans les systèmes numériques que dans les systèmes analogiques
Le DSP trouve son utilité dans de nombreuses applications pratiques

Dans chaque application, les processeurs DSP se caractérisent par des propriétés communes :


  • ils utilisent beaucoup de calculs mathématiques

  • ils traitent des signaux du monde réel

  • la recherche de signaux dure un temps limité

Architectures de mémoire

Les opérations DSP typiques nécessitent de nombreux ajouts et multiplications simples.

L'addition et la multiplication nécessitent :


  • récupérer deux opérandes

  • effectuer une addition ou une multiplication (généralement les deux)

  • enregistrez le résultat ou maintenez-le jusqu'à ce que vous répétiez
Pour récupérer deux opérandes en un seul cycle d’instruction, deux accès mémoire doivent être effectués simultanément. Mais en réalité, en plus de récupérer deux opérandes, il faut aussi sauvegarder le résultat et lire l’instruction elle-même. Par conséquent, le nombre d’accès à la mémoire par cycle d’instruction sera supérieur à deux. À cette fin, les processeurs DSP prennent en charge plusieurs accès à la mémoire au sein du même cycle d'instructions. Mais il est impossible d'accéder simultanément à deux adresses mémoire différentes en utilisant un seul bus mémoire. Il existe deux types d'architectures de processeurs DSP qui permettent la mise en œuvre de plusieurs mécanismes d'accès mémoire :

  • Architecture de Harvard

  • architecture von Neumann modifiée

Une véritable architecture Harvard consacre un bus à la récupération des instructions (le bus d'adresses) et un autre à la récupération des opérandes (le bus de données). Mais cela ne suffit pas pour effectuer des opérations DSP, puisqu’elles utilisent toutes deux opérandes. Par conséquent, l'architecture Harvard, en ce qui concerne le traitement du signal numérique, utilise le bus d'adresses pour l'accès aux données. Il est important de noter qu'il est souvent nécessaire de récupérer trois composants - une instruction à deux opérandes, ce dont l'architecture Harvard elle-même est incapable. Dans ce cas, cette architecture comprend une mémoire cache. Il peut être utilisé pour stocker les instructions qui seront réutilisées. Lors de l'utilisation de la mémoire cache, le bus d'adresses et le bus de données restent libres, ce qui permet de récupérer deux opérandes. Cette extension - architecture Harvard plus cache - est appelée architecture Harvard étendue ou SHARC (Super Harvard ARChitecture).

L'architecture Harvard nécessite deux bus mémoire. Cela augmente considérablement le coût de production de la puce. Ainsi, par exemple, un processeur DSP fonctionnant avec des mots de 32 bits et dans un espace d'adressage de 32 bits nécessite au moins 64 broches pour chaque bus mémoire, pour un total de 128 broches. Cela conduit à des puces de plus grande taille et à des difficultés dans la conception des circuits.

Même l'opération DSP la plus simple, l'addition, qui implique deux opérandes et stocke le résultat en mémoire, nécessite quatre accès mémoire (trois pour récupérer les deux opérandes et l'instruction, et un pour stocker le résultat en mémoire). Cela dépasse les capacités de l’architecture de Harvard. Certains processeurs utilisent un type d'architecture différent pour surmonter cet obstacle. Il s'agit d'une architecture von Neumann modifiée.

L'architecture von Neumann n'utilise qu'un seul bus mémoire :

Cette architecture présente un certain nombre de caractéristiques positives. C'est moins cher et nécessite moins de broches de bus. L'architecture de von Neumann est plus facile à utiliser car le programmeur peut placer à la fois des instructions et des données n'importe où dans la mémoire libre.
^

Effet de superposition


Le signal est échantillonné à certains intervalles de temps et on ne sait pas ce qui se passe entre les échantillons. Supposons qu'à un moment donné, le signal analogique présente un certain saut ou impulsion. Et laissez ce saut se produire pendant l'intervalle de temps entre deux échantillons discrets. Comme cela ne mesure pas le pouls, après avoir échantillonné l’intégralité du signal analogique, nous ne pouvons pas déterminer s’il y avait réellement un pouls.
Dans un cas moins évident, le signal peut être représenté par des composants changeant rapidement. Mais encore une fois, il nous est impossible de suivre ces changements rapides. Par conséquent, l’échantillonnage doit être effectué à une vitesse suffisamment rapide pour capturer les changements les plus rapides du signal. Parfois, nous pouvons avoir des connaissances préalables sur le signal ou faire des hypothèses sur le comportement du signal entre les échantillons.

Si l’échantillonnage n’est pas effectué à une vitesse suffisante, il sera impossible de retracer les changements les plus rapides du signal.

Dans le diagramme présenté, le signal haute fréquence est échantillonné moins de deux fois par période. Le résultat est une représentation incorrecte du signal sous forme discrète, car si nous lissons maintenant les échantillons résultants avec une courbe, nous obtiendrons une représentation du signal basse fréquence. Ce phénomène, dans lequel un signal avec une fréquence après échantillonnage apparaît comme un signal avec une fréquence différente, est appelé effet de repliement.

Il est important de noter que le problème du repliement de fréquence est qu’il est impossible de savoir à quelle fréquence le signal est utilisé. Mais parfois, nous pouvons avoir des connaissances préalables sur le signal ou faire des hypothèses sur le comportement du signal entre les échantillons.

Nyquist a montré que pour représenter clairement toutes les composantes de fréquence, il est nécessaire d'échantillonner à une fréquence qui est au moins deux fois la fréquence la plus élevée du signal.
Dans le diagramme, le signal haute fréquence est échantillonné deux fois pendant une période. Si nous dessinons maintenant une courbe lisse reliant les échantillons, le résultat sera un signal similaire à l'entrée analogique. Mais si un échantillonnage discret est effectué aux points où le signal a une amplitude nulle, il n'y aura alors aucun signal. C'est pourquoi il est nécessaire d'échantillonner à une fréquence au moins deux fois supérieure à la fréquence la plus élevée du signal. Cela évite l’effet de chevauchement.

La fréquence maximale du signal qui vous permet de définir la fréquence d'échantillonnage est appelée fréquence de Nyquist.
Ce que Nyquist dit en réalité, c'est que l'échantillonnage doit être effectué à une fréquence supérieure aux fréquences qui constituent la bande passante du signal, et non à la fréquence maximale.

^ Interface E/S

En pratique, le DSP traite principalement du monde réel. Bien qu'elle soit souvent oubliée, cette fonctionnalité constitue l'une des différences les plus significatives entre les processeurs DSP et les microprocesseurs à usage général :
Dans une application DSP typique, le processeur interagit avec de nombreuses sources de données dans le monde réel. Dans les deux cas, le processeur peut recevoir et transmettre des données en temps réel sans interrompre les opérations mathématiques internes. Il existe trois sources de données pour les processeurs DSP :


  • signaux d'entrée et de sortie

  • interaction avec divers contrôleurs du système

  • interaction avec des processeurs DSP similaires

^

Conversion de signal analogique


La plupart des applications DSP traitent des signaux analogiques, le signal analogique doit donc être converti sous forme numérique.
Le signal analogique, continu et défini avec une précision infinie, est converti en une séquence discrète dont les composantes sont des valeurs représentées sous forme numérique.

Lors de la conversion d'un signal d'une forme analogique vers une forme discrète, certaines informations sont perdues en raison de :


  • erreurs de mesures

  • imprécisions de synchronisation

  • restrictions sur la durée des mesures
Ces phénomènes sont appelés erreurs d'échantillonnage.

Avant l'échantillonnage, le signal analogique continu doit être préalablement stocké. En revanche, lors de la mesure du signal, celui-ci changera.

Ce n'est qu'après que le signal a été préalablement enregistré qu'il peut être mesuré et les valeurs mesurées converties sous forme numérique.

Les échantillons de signaux discrets, qui sont des valeurs mesurées numériques d'un signal analogique, sont généralement prélevés à intervalles réguliers.

Il est important de noter que le signal n’est échantillonné que lorsque la totalité du signal a été préalablement stockée. Cela signifie que des ADC plus lents peuvent être utilisés. Mais le circuit chargé de pré-stocker le signal doit fonctionner suffisamment rapidement pour que le signal n'ait pas le temps de changer de manière significative. Une fois le signal stocké, l’ALU ne nécessite pas de vitesse élevée pour le convertir sous forme numérique.

Lors de la mesure d’un signal analogique, on ne sait pas ce qui est réellement mesuré. Pendant le processus de mesure du signal, certaines informations sont perdues.
Parfois, vous pouvez avoir des informations préliminaires sur le signal ou faire des hypothèses sur son comportement possible, ce qui restaurera partiellement les informations perdues lors de l'échantillonnage.

^ Erreurs d'échantillonnage

Lors de la conversion d'un signal analogique sous forme numérique, sa précision est limitée par le nombre de bits disponibles pour représenter les données.
Le diagramme montre un signal analogique converti sous forme numérique avec une précision d'échantillonnage de 8 bits.
Un signal analogique variant progressivement dans une représentation discrète aura une forme en escalier en raison de la limitation imposée à la précision de sa représentation.

Les erreurs résultant de la numérisation d'un signal analogique sont non linéaires et dépendent du signal.
La non-linéarité des erreurs signifie qu’elles ne peuvent pas être calculées à l’aide des mathématiques conventionnelles.
La dépendance au signal signifie que les erreurs sont cohérentes et ne peuvent pas être réduites à l'aide de techniques conventionnelles.

Les problèmes d'erreur sont courants dans le traitement du signal numérique. Ces erreurs résultent d'une précision limitée (c'est-à-dire de la longueur des mots), sont non linéaires (donc impossibles à calculer) et dépendantes du signal (donc cohérentes). L'apparition d'erreurs rend impossible le calcul précis de l'algorithme DSP avec des restrictions sur l'exactitude de la présentation des données. Par conséquent, le seul moyen de sortir de cette situation est de tester le fonctionnement de l'algorithme avec différents signaux d'entrée. La non-linéarité des erreurs conduit également à une instabilité, notamment lors de l'utilisation de filtres RII.

La longueur du mot machine utilisé dans le traitement du signal numérique détermine la précision et la plage dynamique. L'imprécision de synchronisation entraîne des erreurs dans le signal discret sélectionné.

Les erreurs introduites par la synchronisation sont également non linéaires et dépendent du signal.

Les vrais systèmes DSP sont sujets à trois sources d'erreur :


  • limitation lors de la conversion numérique d'un signal de sa précision par la longueur finie d'un mot machine

  • précision limitée des calculs arithmétiques effectués par le processeur

  • limitation de la précision du signal par la longueur du mot machine lors de sa conversion de la forme discrète à l'analogique
Collectivement, ces erreurs constituent le concept d’erreurs d’échantillonnage. Les erreurs sont non linéaires et dépendent du signal. La non-linéarité des erreurs signifie qu’elles ne peuvent pas être calculées à l’aide des mathématiques conventionnelles. La dépendance au signal détermine la nécessité de calculer l'effet des erreurs inhérentes à chaque signal individuel. Une solution simple pour réduire les erreurs imposées par la longueur limitée des mots machine consiste à créer des modèles pour chaque source d'erreur qui représentent les distorsions d'échantillonnage sous forme de bruit aléatoire.

Le modèle d'échantillonnage avec l'influence du bruit aléatoire est clair pour comprendre l'essence de l'effet. Mais en réalité, ce modèle n'est pas tout à fait correct, notamment pour les systèmes de rétroaction tels que les filtres IIR.
L'effet associé à l'apparition d'erreurs est similaire à la présence de bruit aléatoire dans le système.

Certains cookies sont requis pour les connexions sécurisées, mais d'autres sont facultatifs pour les activités fonctionnelles. Notre collecte de données est utilisée pour améliorer nos produits et services. Nous vous recommandons d'accepter nos cookies pour garantir que vous bénéficiez des meilleures performances et fonctionnalités que notre site peut offrir. Pour plus d'informations, vous pouvez consulter le . En savoir plus sur notre.

Les cookies que nous utilisons peuvent être classés comme suit :

Cookies strictement nécessaires : il s'agit de cookies nécessaires au fonctionnement d'analog.com ou à des fonctionnalités spécifiques proposées. Ils ont soit pour seul but d'effectuer des transmissions sur le réseau, soit sont strictement nécessaires à la fourniture d'un service en ligne explicitement demandé par vous. Cookies d'analyse/de performance : ces cookies nous permettent d'effectuer des analyses Web ou d'autres formes de mesure d'audience, telles que reconnaître et compter le nombre de visiteurs et voir comment les visiteurs se déplacent sur notre site Web. Cela nous aide à améliorer le fonctionnement du site Web, par exemple en garantissant que les utilisateurs trouvent facilement ce qu'ils recherchent. Cookies de fonctionnalité : ces cookies sont utilisés pour vous reconnaître lorsque vous revenez sur notre site Web. Cela nous permet de personnaliser notre contenu pour vous, de vous saluer par votre nom et de mémoriser vos préférences (par exemple, votre choix de langue ou de région). La perte des informations contenues dans ces cookies peut rendre nos services moins fonctionnels, mais n'empêchera pas le site Web de fonctionner. Cookies de ciblage/profilage : Ces cookies enregistrent votre visite sur notre site Internet et/ou votre utilisation des services, les pages que vous avez visitées et les liens que vous avez suivis. Nous utiliserons ces informations pour rendre le site Web et la publicité qui y sont affichées plus adaptés à vos intérêts. Nous pouvons également partager ces informations avec des tiers à cette fin.

Cet article ouvre une série de publications dédiées aux processeurs de signaux numériques multicœurs TMS320C6678. L'article donne une idée générale de l'architecture du processeur. L'article reflète les cours et le matériel pratique proposés aux étudiants dans le cadre des cours de formation avancée dans le cadre du programme « Processeurs de signaux numériques multicœurs C66x de Texas Instruments », dispensés à l'Université d'ingénierie radio d'État de Ryazan.

Les processeurs de signaux numériques TMS320C66xx sont basés sur l'architecture KeyStone et sont des processeurs de signaux multicœurs hautes performances qui fonctionnent à la fois avec des virgules fixes et flottantes. L'architecture KeyStone est un principe de fabrication de systèmes multicœurs sur puce, développé par Texas Instruments, qui permet d'organiser le fonctionnement conjoint efficace d'un grand nombre de cœurs DSP et RISC, d'accélérateurs et de périphériques, garantissant un débit suffisant de données internes et externes. canaux de transfert de données, dont la base est constituée de composants matériels : Multicore Navigator (contrôleur d'échange de données sur interfaces internes), TeraNet (bus de transfert de données interne), Multicore Shared Memory Controller (contrôleur d'accès à la mémoire partagée) et HyperLink (interface avec des périphériques externes à on -vitesse de la puce).

L'architecture du processeur TMS320C6678, le processeur le plus performant de la famille TMS320C66xx, est représentée dans la figure 1. L'architecture peut être décomposée en les composants principaux suivants :

  • un ensemble de noyaux d'exploitation (CorePack) ;
  • sous-système pour travailler avec la mémoire interne et externe partagée (Memory Subsystem);
  • périphériques;
  • coprocesseur réseau ;
  • contrôleur de transfert interne (Multicore Navigator);
  • modules matériels de service et bus TeraNet interne.

Image 1. Architecture générale du processeur TMS320C6678

Le processeur TMS320C6678 fonctionne à une fréquence d'horloge de 1,25 GHz. Le fonctionnement du processeur est basé sur un ensemble de cœurs d'exploitation C66x CorePack, dont le nombre et la composition dépendent du modèle de processeur spécifique. Le DSP TMS320C6678 comprend 8 cœurs de type DSP. Le noyau est un élément informatique de base et comprend des unités de calcul, des ensembles de registres, une machine à programme, une mémoire de programme et de données. La mémoire incluse dans le noyau est dite locale.

En plus de la mémoire locale, il existe une mémoire commune à tous les cœurs - la mémoire partagée d'un processeur multicœur (Multicore Shared Memory - MSM). La mémoire partagée est accessible via le sous-système mémoire, qui comprend également une interface de mémoire externe EMIF pour la communication entre le processeur et les puces de mémoire externes.

Le coprocesseur réseau augmente l'efficacité du processeur dans le cadre de divers types d'appareils de télécommunication, mettant en œuvre des tâches de traitement de données typiques de ce domaine dans le matériel. Le coprocesseur est basé sur le Packet Accelerator et le Security Accelerator. La spécification du processeur répertorie un ensemble de protocoles et de normes pris en charge par ces accélérateurs.

Les périphériques comprennent :

  • Série RapidIO (SRIO) version 2.1 – offre des vitesses de transfert de données allant jusqu'à 5 Gbauds par ligne avec un nombre de lignes (canaux) – jusqu'à 4 ;
  • PCI Express (PCIe) Version Gen2 – offre des vitesses de transfert de données allant jusqu'à 5 Gbauds par ligne avec un nombre de lignes (canaux) – jusqu'à 2 ;
  • Lien hypertexte– une interface de bus interne, qui vous permet de commuter directement les processeurs construits sur l'architecture KeyStone entre eux et d'échanger à la vitesse de la puce ; vitesse de transfert de données – jusqu'à 50 Gbauds ;
  • Gigabit Ethernet (GbE) fournit des vitesses de transmission : 10/100/1000 Mbps et est pris en charge par un accélérateur matériel de communications réseau (coprocesseur réseau) ;
  • FEMI DDR3– interface mémoire externe de type DDR3 ; a une largeur de bus de 64 bits, offrant un espace mémoire adressable allant jusqu'à 8 Go ;
  • FEMI– interface de mémoire externe à usage général; a une largeur de bus de 16 bits et peut être utilisé pour connecter 256 Mo de Flash NAND ou 16 Mo de Flash NOR ;
  • TSIP (ports série télécom)– port série de télécommunication; offre des vitesses de transmission allant jusqu'à 8 Mbit/s par ligne avec un nombre de lignes allant jusqu'à 8 ;
  • UART– port série asynchrone universel ;
  • I2C– bus de communication interne ;
  • GPIO– entrée/sortie à usage général – 16 broches ;
  • IPS– interface série universelle;
  • Minuteries– utilisé pour générer des événements périodiques.
Les modules matériels de service incluent :
  • Module de débogage et de trace– permet aux outils de débogage d'accéder aux ressources internes d'un processeur en cours d'exécution ;
  • ROM de démarrage – stocke le programme de démarrage ;
  • sémaphore matériel– sert au support matériel pour organiser l'accès partagé des processus parallèles aux ressources de processeur partagées ;
  • module de gestion de l'énergie– met en œuvre un contrôle dynamique des modes d'alimentation des composants du processeur afin de minimiser la consommation d'énergie lorsque le processeur ne fonctionne pas à pleine capacité ;
  • Circuit PLL– génère des fréquences d'horloge internes du processeur à partir d'un signal d'horloge de référence externe ;
  • Contrôleur d'accès direct à la mémoire (EDMA)– gère le processus de transfert de données, déchargeant les cœurs opérationnels du DSP et étant une alternative à Multicore Navigator.
Le contrôleur de transfert interne (Multicore Navigator) est un module matériel puissant et efficace chargé d'arbitrer les transferts de données entre les différents composants du processeur. Les systèmes multicœurs sur une puce TMS320C66xx sont des appareils très complexes et afin d'organiser l'échange d'informations entre tous les composants d'un tel appareil, une unité matérielle spéciale est nécessaire. Multicore Navigator permet aux cœurs, périphériques et périphériques hôtes de ne pas prendre en charge les fonctions de contrôle de l'échange de données. Lorsqu'un composant du processeur doit envoyer un tableau de données à un autre composant, il indique simplement au contrôleur quoi envoyer et où. Toutes les fonctions pour le transfert lui-même et la synchronisation de l'expéditeur et du destinataire sont prises en charge par Multicore Navigator.

La base du fonctionnement du processeur multicœur TMS320C66xx en termes d'échange de données à grande vitesse entre tous les nombreux composants du processeur, ainsi que les modules externes, est le bus TeraNet interne.

Le prochain article examinera de plus près l’architecture du cœur d’exploitation C66x.

1. Guide de programmation multicœur / SPRAB27B - août 2012 ;
2. Manuel de données du processeur de signal numérique multicœur à virgule fixe et flottante TMS320C6678 / SPRS691C - février 2012.