ISSAT Mateur A.U. 2020 - 2021 1.2.3.1 Unité centrale de traitement (CPU) La CPU contient une unité d'extraction de programme (Fetch), une unité de distribution d'instructions (Dispatch), une unité de décodage d'instructions (Decode). Elle récupère des mots d'instruction très longs (VLIW) (largeur 256 bits) pour fournir jusqu'à huit instructions 32 bits aux huit unités fonctionnelles au cours de chaque cycle d'horloge. L'architecture VLIW comporte des commandes par lesquelles les huit unités n'ont pas à recevoir d'instructions si elles ne sont pas prêtes à s'exécuter. Le premier bit de chaque instruction de 32 bits détermine si l'instruction suivante appartient au même paquet d'exécution que l'instruction précédente, ou si elle doit être exécutée dans l'horloge suivante en tant que partie du paquet d'exécution suivant. Les paquets de récupération ont toujours une largeur de 256 bits; cependant, les paquets d'exécution peuvent varier en taille. Les paquets d'exécution de longueur variable sont une fonction clé d'économie de mémoire, qui distingue le processeur C67x des autres architectures VLIW. La CPU contient également deux chemins de données (contenant respectivement les registres A et B) dans lesquels le traitement a lieu. Chaque chemin de données a quatre unités fonctionnelles (.L, .M, .S et .D). Les unités fonctionnelles exécutent des opérations de logique, de multiplication, de décalage et d'adressage de données. La figure 2.2 montre le schéma fonctionnel simplifié des deux chemins de données. Figure 1.4: Chemin de données dans TMS320C67X Toutes les instructions, à l'exception de chargement et de stockage, fonctionnent sur les registres. Tous les transferts de données entre les fichiers de registre et la mémoire ont lieu uniquement via deux unités d'adressage de données (.D1 et .D2). La CPU a également divers registres de contrôle, logique de contrôle et test, émulation et logique. L'accès aux registres de contrôle est fourni à partir du chemin de données B. 1.2.3.2 Fichiers de registre à usage général La CPU contient deux fichiers de registre à usage général A et B. Ceux-ci peuvent être utilisés pour les données ou comme pointeurs d'adresse de données. Chaque fichier contient 16 registres 32 bits (A0A15 pour le fichier A et B0-B15 pour le fichier B). Les registres A1, A2, B0, B1, B2 peuvent également être utilisés comme registres de conditions. Les registres A4-A7 et B4-B7 peuvent être utilisés pour l'adressage circulaire. Atelier DSP 6 ISSAT Mateur A.U. 2020 - 2021 Ces registres fournissent des données à virgule fixe 32 bits et 40 bits. Les données 32 bits peuvent être stockées dans n'importe quel registre. Pour les données de 40 bits, le processeur stocke les 32 bits les moins significatifs dans un registre pair et les 8 bits restants dans le registre supérieur (impair). 1.2.3.3 Unités fonctionnelles Le CPU comporte deux ensembles d'unités fonctionnelles. Chaque ensemble contient 4 unités et un fichier de registre. Un ensemble contient les unités fonctionnelles .L1, .S1, .M1 et .D1 et l'autre contient les unités .D2, .M2, .S2 et .L2. Les deux fichiers de registres contiennent chacun 16 registres de 32 bits pour un total de 32 registres à usage général. Les deux ensembles d'unités fonctionnelles, ainsi que deux fichiers de registre, composent les côtés A et B de la CPU. Chaque unité fonctionnelle possède deux ports de lecture 32 bits pour les opérandes source et un port d'écriture 32 bits dans un fichier de registre à usage général. Les unités fonctionnelles. L1, .S1, .M1 et .D1 écrivent dans le fichier de registre A et les unités fonctionnelles .L2, .S2, .M2 et .D2 écrivent dans le fichier de registre B. Comme chaque unité possède son propre port d'écriture 32 bits, les huit ports peuvent être utilisés en parallèle à chaque cycle. Les unités fonctionnelles .L, .S et .M sont des UAL. Ils effectuent des opérations arithmétiques et logiques 32 bits/40 bits. L'unité .S effectue également des opérations de branchement et les unités .D effectuent des calculs d'adresses linéaires et circulaires. Seule l'unité .S2 effectue des accès au fichier de registre de contrôle. Le Tableau 1.1 décrit les opérations effectués par chaque unité fonctionnelle du DSP C6713. Tableau 1.1: Description des unités fonctionnelles 1.2.3.4 Système de mémoire Le système de mémoire du processeur de la série TMS320C671x implémente une architecture Harvard modifiée, fournissant des espaces d'adressage séparés pour l'instruction et la mémoire de données. Atelier DSP 7 ISSAT Mateur A.U. 2020 - 2021 Le processeur utilise une architecture à deux niveaux basée sur le cache et dispose d'un ensemble puissant et diversifié de périphériques. Le cache de programme de niveau 1 (L1P) est un cache à mappage direct de 4 Ko et le cache de données de niveau 1 (L1D) est un cache associatif à 2 voies à 2 voies de 4 Ko. La mémoire cache de niveau 2 (L2) se compose d'un espace mémoire de 256 Ko qui est partagé entre le programme et l'espace de données. 64 Ko des 256 Ko de la mémoire L2 peuvent être configurés en tant que mémoire mappée, cache ou combinaison des deux. Les 192 Ko restants en L2 servent comme SRAM mappée. 1.2.4 Périphériques de TMS320C6713 Les périphériques TMS320C67x contiennent des périphériques pour la communication avec la mémoire externe, les coprocesseurs, les processeurs hôtes et les périphériques série. Les sous-sections suivantes décrivent des périphériques du processeur C6713. 1.2.4.1 DMA amélioré (EDMA) Le contrôleur d'accès mémoire direct amélioré (EDMA) transfère les données entre les régions de la carte mémoire sans intervention de la CPU. L'EDMA fournit des transferts de données vers et depuis la mémoire interne, les périphériques internes ou les périphériques externes. Il dispose de 16 canaux programmables indépendamment permettant 16 contextes de fonctionnement différents. L'EDMA peut lire ou écrire des éléments de données à partir de l'emplacement source ou de destination respectivement en mémoire. Il fournit également des transferts combinés d'éléments de données tels que le transfert de trame et le transfert de bloc. Chaque canal EDMA a un nombre indépendamment programmable d'éléments de données par trame et un nombre de trames par bloc. L'EDMA présente les caractéristiques suivantes: • Fonctionnement en arrière-plan: le DMA fonctionne indépendamment de la CPU. • Débit élevé: les éléments peuvent être transférés à la fréquence d'horloge du processeur. • Seize canaux: l'EDMA peut suivre les contextes de seize transferts indépendants. • Fonctionnement fractionné: un seul canal peut être utilisé simultanément pour effectuer à la fois des transferts d'éléments de réception et de transmission vers ou à partir de deux périphériques et de la mémoire. • Priorité programmable: chaque canal a des priorités programmables indépendamment par rapport au CPU. • Les registres d’adresses source et de destination de chaque canal peuvent avoir des index configurables pour chaque transfert en lecture et en écriture. L'adresse peut rester constante, incrémenter, décrémenter ou être ajustée par une valeur programmable. • Transferts de largeur programmable: chaque canal peut être configuré indépendamment pour transférer des octets, des demi-mots de 16 bits ou des mots de 32 bits. • Authentification: une fois le transfert en bloc terminé, un canal EDMA peut se réinitialiser automatiquement pour le transfert en bloc suivant. • Liaison: chaque canal EDMA peut être lié à un transfert ultérieur à effectuer une fois terminé. Atelier DSP 8 ISSAT Mateur A.U. 2020 - 2021 • Synchronisation des événements: chaque canal est initié par un événement spécifique. Les transferts peuvent être synchronisés soit par élément, soit par trame. 1.2.4.2 Interface du port hôte (HPI) L'interface hôte-port (HPI) est un large port parallèle de 16 bits par lequel un processeur hôte peut accéder directement à l'espace mémoire du processeur. Le périphérique hôte fonctionne comme un maître de l'interface, ce qui augmente la facilité d'accès. L'hôte et la CPU peuvent échanger des informations via la mémoire interne ou externe. L'hôte a également un accès direct aux périphériques mappés en mémoire. Le HPI est connecté à la mémoire interne via un ensemble de registres. L'hôte ou la CPU peuvent utiliser le registre de contrôle HPI (HPIC) pour configurer l'interface. L'hôte peut accéder au registre d'adresse d'hôte (HPIA) et au registre de données d'hôte (HPID) pour accéder à l'espace de mémoire interne du périphérique. L'hôte accède à ces registres à l'aide de données externes et de signaux de commande d'interface. Le HPIC est un registre mappé en mémoire, qui permet l'accès au processeur. Les transactions de données sont effectuées au sein de l'EDMA et sont invisibles pour l'utilisateur. 1.2.4.3 Interface de mémoire externe (EMIF) L'interface de mémoire externe (EMIF) prend en charge une interface vers plusieurs périphériques externes, permettant des données supplémentaires et un espace mémoire de programme au-delà de ce qui est inclus sur la puce. Les types de mémoires pris en charge comprennent: • SRAM en rafale synchrone (SBSRAM) • DRAM synchrone (SDRAM) • Périphériques asynchrones, y compris SRAM, ROM et FIFO asynchrones. L'EMIF fournit des timings hautement programmables à ces interfaces. • Périphériques de mémoire partagée externes Il existe deux normes de classement des données dans les microcontrôleurs adressables par octets: • Ordre petit-boutiste, dans lequel les octets sont classés de droite à gauche, l'octet le plus significatif ayant l'adresse la plus élevée. • Ordre big-endian, dans lequel les octets sont classés de gauche à droite, l'octet le plus significatif ayant l'adresse la plus basse. L'EMIF lit et écrit les périphériques gros et petit boutiste. Il n'y a aucune distinction entre la ROM et l'interface asynchrone. Pour tous les types de mémoire, l'adresse est décalée en interne pour compenser les largeurs de mémoire inférieures à 32 bits. 1.2.4.4 Port série tamponné multicanal (McBSP) Le port série à mémoire tampon multicanal C62x / C67x (McBSP) est basé sur l'interface de port série standard des plates-formes TMS320C2000 et C5000. L'interface de port série standard fournit: • Communication en duplex intégral • Registres de données à double tampon, qui permettent un flux de données continu Atelier DSP 9 ISSAT Mateur A.U. 2020 - 2021 • Cadrage et horloge indépendants pour la réception et la transmission • Interface directe avec les codecs standard de l'industrie, les puces d'interface analogique (AIC) et autres périphériques A/N et N / A connectés en série • Génération d'horloge de décalage externe ou horloge de décalage de fréquence programmable interne • Transmission et réception multicanaux jusqu'à 128 canaux. • Une taille d'élément de 8, 12, 16, 20, 24 ou 32 bits. • Transferts de données 8 bits avec LSB ou MSB en premier. • Polarité programmable pour la synchronisation des trames et les horloges de données. • Horloge interne hautement programmable et génération de trames. La communication de données entre McBSP et les appareils interfacés s'effectue via deux broches différentes pour la transmission et la réception - transmission de données (DX) et réception de données (RX) respectivement. Les informations de contrôle sous forme d'horloge et de synchronisation de trame sont communiquées via CLKX, CLKR, FSX et FSR. Des registres de contrôle de 32 bits de large sont utilisés pour communiquer McBSP avec des périphériques via un bus périphérique interne. CPU ou DMA écrivent les DONNÉES à transmis au registre de transmission de données (DXR) qui est décalé vers DX via le registre à décalage de transmission (XSR). De même, les données de réception sur la broche DR sont décalées dans le registre à décalage de réception (RSR) et copiées dans le registre tampon de réception (RBR). RBR est ensuite copié dans DRR, qui peut être lu par la CPU ou le contrôleur DMA. Cela permet le mouvement des données internes et les communications de données externes simultanément. 1.2.4.5 Temporisateurs ou 'Timers' Les DSP C62x/C67x disposent deux temporisateurs 32 bits à usage général qui peuvent être utilisées pour: • Événements horaires • Compter les événements • Générer des impulsions • Interrompre le CPU • Envoyer les événements de synchronisation au contrôleur DMA Le temporisateur fonctionne dans l'un des deux modes de signalisation selon la source de cadencement: source interne ou externe. Le temporisateur a une broche d'entrée (TINP) et une broche de sortie (TOUT). La broche TINP peut être utilisée comme entrée à usage général, et la broche TOUT peut être utilisée comme sortie à usage général. Lorsqu'une horloge interne est fournie, le temporisateur génère des séquences de synchronisation pour déclencher des périphériques ou des dispositifs externes tels qu'un contrôleur DMA ou un Atelier DSP 10 ISSAT Mateur A.U. 2020 - 2021 convertisseur A/N respectivement. Quand une horloge externe est fourni, le temporisateur peut compter les événements externes et interrompre le CPU après un nombre spécifié d'événements. 1.2.4.6 Port série audio multicanal (McASP) Le DSP C6713 comprend deux ports série audio multicanaux (McASP). Les modules d'interface McASP prennent chacun en charge une zone d'horloge d'émission et une zone d'horloge de réception. Chacun des McASP possède 8 broches de données série qui peuvent être attribuées individuellement à l'une des deux zones. Le port série prend en charge le multiplexage temporel sur chaque broche de 2 à 32 intervalles de temps. Le C6713B a une bande passante suffisante pour prendre en charge les 16 broches de données série transmettant un signal stéréo de 192 kHz. Les données série dans chaque zone peuvent être transmises et reçues sur plusieurs broches de données série simultanément et formatées dans une multitude de variations sur le format Philips Inter-IC Sound (I2S). De plus, l'émetteur McASP peut être programmé pour émettre plusieurs S/PDIF Canaux de données codés CEI60958, AES-3, CP-430 simultanément, avec une seule RAM contenant la mise en œuvre complète des données utilisateur et des champs d'état des canaux. Le McASP fournit également des fonctionnalités étendues de vérification des erreurs et de récupération, telles que le circuit de détection de mauvaise horloge pour chaque horloge maître haute fréquence qui vérifie que l'horloge maître est dans une plage de fréquences programmée. 1.2.4.7 Logique de mise hors tension La plupart de la puissance de fonctionnement de la logique CMOS est dissipée pendant la commutation de circuit, d'un état logique à un autre. En empêchant une partie ou la totalité de la logique de la puce de basculer, des économies d'énergie significatives peuvent être réalisées sans perdre de données ou de contexte opérationnel. Le mode de mise hors tension PD1 bloque les entrées d'horloge interne à la limite de la CPU, empêchant la plupart de sa logique de basculer, arrêtant efficacement la CPU. Des économies d'énergie supplémentaires sont réalisées en mode de mise hors tension PD2, dans lequel toute la structure d'horloge sur puce (y compris plusieurs tampons) est arrêtée à la sortie de la PLL. Le mode de mise hors tension PD3 arrête toute l'arborescence d'horloge interne (comme PD2) et déconnecte également la source d'horloge externe (CLKIN) d'atteindre la PLL. Le réveil depuis PD3 prend plus de temps que le réveil depuis PD2 car le PLL doit être reverrouillé, tout comme il le fait après la mise sous tension. Atelier DSP 11