Conception et mise en uvre de la transmission de données entre multicoeur à base SRIO DSP

Wei Zhiwei

(Chongqing Université des Postes et Télécommunications, Chongqing 400065, Chine)

: Lors de l'utilisation du processeur de signal numérique (DSP) de la puce de traitement numérique du signal, étant donné que la grande quantité de données, de plusieurs fils, généralement co-traitement multi-puce DSP. Ce papier vise à atteindre le DSP entre les données de recherche et de transfert d'information, et avec trois puce TMS320C6474 de TI, par exemple, des protocoles de base SRIO, pour concevoir une architecture de transmission permettant le transfert de données entre le DSP. Le taux de transfert de données final entre les DSP 2.520 Gb / s, et 50,40% de la théorie, mais si elle est expulsée entre l'ordonnancement des threads et la synchronisation DSP, avec le temps, la vitesse de transmission de données de l'interface de SRIO jusqu'à 3,886 Gb / s, la valeur théorique 77,72%. Cette conception a une plus grande polyvalence, une grande référence de conception de transfert de données entre les autres puces du même type.

: Multicore; DSP; SRIO, entre la transmission de données DSP

: TP368.2 Code du document: ADOI: 10,19358 / j.issn.1674-7720.2017.04.011

Format de référence : Wei Zhiwei entre multiconducteur DSP conception et la mise en uvre de SRIO sur la base de transmission de données [J] ses applications, 2017,36 (4): 36-39.

0 introduction

Avec l'augmentation des modules fonctionnels traitement requis DSP de la quantité de données et le développement, une augmentation du nombre de processus en cours d'exécution à puce unique DSP, la charge est trop importante, le système de plus en plus difficile de répondre aux exigences de traitement en temps réel. Si vous choisissez d'exécuter en multi-puce liaison DSP, non seulement simple DSP peut réduire la charge, pour améliorer les performances de traitement et la vitesse de réponse du système, de manière à obtenir un traitement en temps réel, mais aussi pour le développement de modules fonctionnels pour les systèmes de traitement de signaux numériques qui devrait être bénéfique. Mais DSP multi-puce pour le fonctionnement de collaboration entre les fonctions DSP nécessaires pour compléter l'échange de données de conception. Cet article Rapid IO selon le protocole standard, les caractéristiques de la puce TMS320C6474 de TI sur la plate-forme de développement du système de sortie d'entrée de signal numérique Processor_Basic (DSP_BIOS), le transfert de données conçu et mis en oeuvre entre DSP multi-coeur. Cet article décrit la conception des modules fonctionnels différents nécessaires, et le procédé illustré réalisation, la conception globale de la mise en uvre particulière, le transfert final des données entre la performance DSP testé.

1DSP communication entre les modules fonctionnels requis Présentation

1.1Mailbox (E-mail)

plate-forme de développement basée DSP_BIOS, TI fournit un module de boîte aux lettres (MBX), les développeurs peuvent être gérés par les fonctions d'interface utilisateur TI, l'utilisation du module. 1 pour communiquer avec chaque autre boîte aux lettres boîte aux lettres de communiquer avec différents procédés pour obtenir le même à l'intérieur du coeur de DSP (TSK) entre les fils de. La figure [1]. MBX_post pour transmettre fin, MBX_pend pour recevoir la borne, l'exemple de réalisation représenté sur la figure 1.

1.2Semaphore (signal de communication)

TI offre une Sémaphore [2] module, qui peut être utilisé pour gérer l'accès aux ressources partagées. Il dispose de trois modes d'accès: mode direct et le mode indirect, modèle intégré. Utilisé ici est pour le mode direct: lecture de la valeur du registre direct si une valeur directe de 1, cela indique que la ressource partagée est disponible, ce qui permet l'accès, et obtient le sémaphore; DIRECT tandis que si la valeur est 0, cela indique que la ressource partagée on y accède par un autre processus. Lorsque l'opération est terminée, les ressources partagées la nécessité d'écrit DIRECT 1 pour libérer les droits sur les ressources utilisées.

1.3Rapid IO

1.3.1Rapid IO Présentation

protocole Rapid IO est un point de commutation par paquets standard ouvert, le développement des systèmes embarqués proposé pour une grande fiabilité, un paquet de haute performance de commutation de la technologie de réseau sur la base [3], le débit de transmission peut atteindre 1 Gbit / s ou plus. Ses principales caractéristiques sont: (1) un mécanisme de détection d'erreur, (2) la charge de faible largeur de bande élevée, (3) un faible broches [4].

l'architecture 1.3.2Rapid IO

SRIO bus est basée sur un bus à commutation de paquets standard ouvert série à haute vitesse [5], le protocole Rapid IO utilise une architecture hiérarchique à trois couches:

(1) couches logiques: un protocole prédéterminé entre les points d'extrémité et le format de paquet pour la transmission.

(2) Transport Layer: définit les informations de routage nécessaires pour les paquets de transmission dans le système.

(3) la couche physique: les informations comprennent une interface de niveau de matériel, telles que les caractéristiques électriques, les erreurs de données de gestion, la commande de débit de base.

Structure d'emballage 1.3.3SRIO

Dans la structure de paquets de SRIO, il existe de nombreux types d'emballages, utilisés principalement pour le paquet de données et les paquets de porte. les paquets de données pour la transmission de données entre les adresses source et de destination, la structure représentée sur la Fig. Sonnette paquet est principalement utilisé pour déclencher une alarme correspondant à notifier au DSP entre dans une fonction de réponse nucléaire respective de l'interruption, l'action appropriée, mais ne porte pas la porte de données, laquelle structure porte le paquet représenté sur la figure.

Dans lequel la signification de chaque structure de paquet de segment est: AckID: en utilisant les symboles de contrôle au cours de la structure de commutation a été confirmé que un paquet; Prio: indique la priorité du paquet; tt: spécifie l'ID de dispositif est exprimée par 8 bits ou 16 bits; fftyp: il indique le type de paquet; DESTID: transfert de paquets ID adresse de destination; sourceID: adresse source de l'ID de paquet de transmission; CRC: contrôle de la protection structure de paquet; info: commande de déclenchement sonnette d'alarme.

transmission de paquets 1.3.4Rapid IO

Structure du paquet (des paquets) sont transmises dans des unités de transmission entre deux points d'extrémité SRIO, sa transmission est basé sur un des paquets de demande et de réponse. Envoyer et recevoir des extrémités 4 de sous-processus d'interaction figure

Qui est un procédé de transfert de données, et ensuite envoyer un paquet de requête sur le côté récepteur génère un paquet de retour émis en réponse à l'extrémité de réception de borne de la source originale reçoit [6]. La figure 4 montre l'extrémité d'émission et l'extrémité de réception de la procédure d'échange de paquets.

2DSP entre la conception et la mise en uvre de la communication

Configuration 2.1 des ressources

Port 2.1.1SRIO

Chaque puce comporte deux ports entités TMS320C6474 de feuille de SRIO (nommé PORT0, Port1), qui se connectent à l'un des deux ports supplémentaires, respectivement, un DSP, comme représenté sur la Fig. A ce propos, on peut tout faire en sorte que le DSP peut être connecté directement aux deux autres DSP. Lorsque l'extrémité d'émission et une extrémité de réception DSP DSP ont été identifiés, en sélectionnant le SRIO de port approprié également déterminé.

2.1.2DDR partagée allocation de mémoire et la gestion des

La mémoire DDR possède un bouchon sur chaque DSP. DSP quelconque core0 noyau, Core1, Core2 peut accéder à la mémoire (trinucléaire Le processeur TMS320C6474, les trois ordre nucléaire nommé core0, Core1, Core2). Dans la mémoire DDR dsp0, DSP1, DSP2 est spécifié dans une mémoire pour stocker des informations sur l'ordonnancement des tâches entre le DSP (ci-après dénommé un segment de mémoire partagée de la mémoire de programme), comme représenté sur la Fig. la planification de la répartition et de la gestion figure sur chaque puce DSP ordonnancement commun de mémoire. La figure 6. Trois sont affectés pour chaque mémoire de noyau DSP un sémaphore (signal de communication) pour gérer l'ordonnancement de la mémoire partagée DSP recevant un accès final.

2.1.3 interrompu alloué et utilisé

Lorsque l'extrémité d'envoi envoie un message au terminal de réception et en informant l'extrémité de réception du noyau traite le message respectif. Le programme est conçu par un paquet de transmission d'interface de porte SRIO (DOOEBELL Packet), l'information mise en paquets de l'extrémité de réception de noyau de la cloche correspondante, l'extrémité de réception d'interruption correspondant à déclencher le noyau.

Lorsque l'envoi de paquets extrémité porte, ce paquet est utilisée pour initialiser l'interruption de la CPU, le champ INFO indique structure de paquet associé SONNETTE registre d'interruption bit associé est défini, comme illustré sur la Fig. Il y a quatre registres DOOEBELL un DSP, chaque registre comporte 16 bits, 64 sources d'interruption génère une interruption. Par ICR (Interrupt) Condition de routage registres, chaque noyau peut être acheminé à un. Les trois plus bas registre SONNETTE ici de trois respectivement affecté à l'unité centrale DSP (core0, Core1, Core2). C'est le bit le moins significatif est 1 si DOOEBELL, le DSP des interruptions Coer0.

Chaque DSP possède deux ports SRIO 5, le port DSP SRIO déjà interconnectés numéroté (0,1), respectivement, en conformité avec le numéro attribué port SRIO (0,1) et à 0 DOOEBELL DOOEBELL 1 registre, DOOEBELL 0 et 1 et SONNETTE registres sont mis en correspondance avec deux canaux d'interruption SRIO (71 ~ RapidIO interruption (2n), 72 ~ RapidIO interruption (2n + 1)), respectivement affectée à cette interruption deux deux SRIO orifice, de sorte que chaque port d'SRIO de réponse d'interruption. Le Rapid IO Interrompre principalement utilisé pour déterminer le nombre du côté de la transmission DSP. 7, l'extrémité de réception est dsp0, si le canal 71 ~ interruption RIOINT est déclenchée, le côté de transmission est déterminée comme DSP1, si le canal 72 ~ interruption RIOINT est déclenchée, le côté de transmission est déterminée comme DSP2.

Par l'interruption de configuration ci-dessus, vous pouvez garantir tout côté DSP peut être notifiée par l'envoi d'un paquet de message à tout message DOOEBELL nucléaire extrémité de réception et le récepteur peut déterminer quelle extrémité de transmission DSP.

2.2 idées de conception et réalisation

2.2.1 idées de conception

Mettre en oeuvre une interaction de données entre le DSP multiconducteur terminé principalement deux aspects: (1) le déplacement de données mis en oeuvre, l'emplacement et la longueur (2) le notifie d'extrémité de réception du magasin de données DSP. Qui mettent en uvre l'organigramme représenté à. La figure 8.

2.2.2 processus de mise en uvre spécifique

(1) SRIO initialisation. modules d'alimentation Initialisation SRIO: fournitures SRIO d'alimentation aux modules concernés. SRIO l'initialisation du module SERDES: la configuration du PLL, RX0 de configuration, TX0 et TX1, canal de transmission TX1, et un orifice 0 SRIO 1. vérifier SRIO si la configuration du port.

(2) Port Sélectionnez SRIO. L'extrémité de transmission et l'extrémité de réception de la décision de sélection de port DSP DSP SRIO, à savoir pour choisir la transmission de données de liaison physique.

(3) l'obtention de la quantité de signal écrit un message à l'extrémité de réception de la mémoire partagée prévue. Ordonnanceur terminal de réception de gestion d'accès mémoire final DSP via la transmission différente Sémaphore (signal de communication), si le sémaphore est occupé, il attend que le signal soit libéré.

(4) paquet de SRIO transmis par le port. Configuration Charger / Enregistrer un magasin paquet de message est composition terminée. La clé est agencé: Configuration LSUn_REG2 L'adresse DSP, complète la configuration des adresses source et destination de données à transmettre (charge utile), la configuration LSUn_REG3 en byte_count longueur totale des données à transmettre; configuration LSUn_REG5 le type de paquet types de paquets complets configuration. Après la configuration, la transmission est activée. Configuré Charger / enregistrer magasin champs correspondants mis en correspondance avec les paquets de données à transmettre les données stockées dans la mémoire par le port SRIO de planification commune.

(5) DOOEBELL transmission Interface SRIO paquet par: le paquet pour un notifie d'extrémité de réception de base respectives de la mémoire de DSP est partagée message de programmation en cours. Par section Info LSUn_REG5 de Drbll être configuré de sorte qu 'il est mis en correspondance avec DOORBELLn_ICRR ici, le registre DOOEBELLn_ICRR bit 0, bit 1 et 2, de sorte que le noyau dirigé vers 0 par l'intermédiaire du registre ICR (routage d'interruption Condition), nucléaire 1, 2 noyau. DOOEBELL paquet peut être généré par l'interruption de l'extrémité de réception d'un noyau de DSP respective. (2) pour donner l'étape correspondante est le numéro de port SRIO décidé par DOORBELLn_ICRR est 0 ou 1 ou numéro de port SRIO DOORBELL0_ICRR DOORBELL1_ICRR. Le DOORBELL0_ICRR et correspondent respectivement à deux DOORBELL1_ICRR extrémité de réception respective SRIO_INT DSP d'interruption sur le noyau. Il a été décrit dans la section 2.1.3, moyennant quoi l'extrémité de transmission détermine le nombre de DSP. De sorte que le côté récepteur peut déterminer les données de position stockées dans le planificateur de mémoire partagée, comme représenté sur la Fig. Dans l'extrémité d'émission comme DSP0_Core0, DSP1_Core1 extrémité de réception est un exemple, quels messages doivent être stockés dans la dsp0 de mémoire partagée dans DSP1, le segment Core1.

(6) recevant une extrémité respective des données de mémoire morte programmée partagée noyau DSP, et analyse le message reçu à travers le module, à l'extrémité de réception de boîte aux lettres (boîte aux lettres) est un noyau de planification de fil de noyau DSP respectif, déclenche la tâche correspondante.

(7) Après avoir reçu effectue latérales tâches appropriées DSP, pour retourner à l'expéditeur des données appropriées, le numéro de l'expéditeur le coeur de DSP et seront enregistrés dans le processus de transmission, l'extrémité de réception à l'extrémité d'émission lorsque les premières étapes, conformément à un message de retour processus inverse de la transmission de données.

Après les étapes ci-dessus, le transfert de données entre plusieurs noyaux DSP a été atteint.

3 Transfert des données de test

Dans cet article, la transmission de données entre le test multiconducteur DSP [7], le port du taux de travail de SRIO est réglé à 3,125 Gb / s, après codage de couche physique 8B / 10B, le taux de transmission de paquets de 2,5 réelles Gb / s, en utilisant les deux canaux 1x , les données de transmission théorique 5 Gb / s.

Testez l'exactitude de la transmission de données: l'envoi de données à partir DSP0Core02k fois à DSP1Core2, DSP1Core2 recevra les données transmises à DSP2Core1, puis DSP2Core1 recevoir des données renvoyées DSP0Core0, DSP0Core0 Enfin, les données reçues et comparées aux données initialement transmises, les données de détection d'erreurs. Dans cet article, les données sont transmises une fois tous les 1 s, un test de la semaine n'a trouvé aucune erreur.

Transmission test de performance: sélectionner toutes effectue des clés DSP arbitraire test de deux longueurs de données différentes. Par exemple, les données transmises par DSP1 à DSP2, DSP2 reçoit les données après les données sont renvoyées au DSP1. Et commence à envoyer des valeurs de données à l'aide du cycle Juste après réception de la fonction _itoll de données (TSCH, TSCL) acquis de CPU DSP1, calcule la différence entre les deux valeurs, le taux peut être mesurée [8].

Peut-on tirer à travers l'analyse des données, le taux de transfert de données de 2.520 Gb / s environ, est 50,4% de la théorie. Mais la longueur de transmission est de 64 B, moins la transmission de données, peut être approchée en tant que le temps entre l'ordonnancement des fils de DSP et de synchronisation requis, si le temps de transmission de B 32000 B 64 soustrait le temps de transmission (entre la programmation et la synchronisation des threads DSP temps nécessaire), et calcule ensuite la vitesse de transmission de 77,72% de la valeur de 3.886 Gb / s, la valeur théorique. Depuis le pack et le déballage des paquets de données, et la lecture des données sur le DDR et autres frais généraux, les données réelles est inférieure à la valeur théorique.

4 Conclusion

Sur la plate-forme DSP_BIOS ici, basée sur le protocole rapide IO, la transmission des données est réalisée entre le multi-curs DSP. La conception est non seulement approprié pour une transmission de données entre deux DSP multi-core, mais applique également à trois ou même plus de trois transferts de données entre DSP multi-core. L'architecture peut coopérer pluralité de DSP pour le traitement de grandes quantités de données, ce qui réduit le délai et la charge relative d'un traitement unique de DSP, d'améliorer la capacité de traitement et la vitesse de réponse, a un certain rôle pour le développement des systèmes de traitement de signaux numériques.

références

[1] Texas Instruments Group. TMS320 DSP / BIOS v5.42 Guide de l'utilisateur (SPRU4231) [EB / OL]. (2013-08-xx) [20.09.2016]

[2] Texas Instruments Group. Guide de TMS320C6474 DSP Sémaphore utilisateur (SPRUG14) [EB / OL]. (20/09/2016) [200810xx]

[3] Design [J] système de communication basé sur SRIO applications inter-Ting Chen haute vitesse de, forte Yue océan .FPGA DSP et microcontrôleurs et des systèmes embarqués, 2016 (3): 37-40.

[4] Texas Instruments Group. TMS320C6474 DSP Guide de l'utilisateur série rapide IO (SRIO) (SPRUG230) [EB / OL]. (2011-10-xx) [20160920]

[5] Lei, boule Hui transmission de données basé sur SRIO bus série à grande vitesse [J] Production électronique, 2015 (5): 16-18.

[6]. Edu, Wu Haizhou SRIO conception d'interface haute vitesse TMS320C6455 [J] Technologie de mesure électronique, 2008,31 (9) en fonction: .. 143147.

Étude [7] Feng Chao, les performances de transmission Tao .TMS320C6678 de l'interface série à grande vitesse [J] SCM et systèmes embarqués, 2015,15 (11): 52-55.

. [8] Hou Cap Conception et mise en uvre [D] DSP multi-core basé sur TI recherche technologique et KeyStone conseil LTEA d'application de traitement de bande de base Conseil de Pékin: Université de Beijing des Postes et Télécommunications, 2015.

Pas d'écran TV double d'énormes avantages 11 mètres a frappé les quatre pôles nouveau look centre commercial officiel avant
Précédent
Sonos Une évaluation: non seulement le haut-parleur, mais le système sonore intelligent
Prochain
Le risque d'être 007 headshot Jackie colère « showdown britannique » choisir trois forces contre le monde
SAR ADC 10 est appliquée à un type de conception du circuit comparateur de haute précision
Si vous prétendez vivre, je recommande ce film pour vous 9.5
C7 Théâtre TV à regarder la télévision plus facile intelligence artificielle
Le prix de 37,97 à 53,97 dix mille yuans une toute nouvelle génération de Cadillac CT6 profiter intellectuelle mentionnés
Réglable filtre FIR sur FPGA Conception et mise en uvre
Léchant temps d'écran | pour survivre, « La moitié de ma vie » dans le lieu de travail
Les deux côtés de la dénatalité, les possibilités de magasin de jeux japonais et risques
A partir du corps humain modélisation 3D et mesure, rêve de nuage à utiliser quantité essayer libération virtuelle de la division physique et des vêtements Guide d'achat
« Carnival » sera présentée en première bientôt à Venise Golden Lion batailles morceau chinois
Shanghai Volkswagen Southwest essai routier de médias régionaux sera conclu avec succès
nouvelle passe dans le seuil des revenus d'Apple, il est l'avenir de la façon de stabiliser le cours de l'action?