Fiche de révision : Introduction aux processeurs DSP

Plan du Cours

  1. Contexte et applications des DSP
  2. Architectures des processeurs
  3. Rappels essentiels du langage C
  4. Hexadécimal et représentation mémoire
  5. Architecture du TMS320C67x
  6. Principes de l’assembleur DSP
  7. Instructions et adressage mémoire
  8. Écriture de fonctions DSP
  9. Optimisation du code assembleur

1. Contexte et applications des DSP

Notions clés & Définitions

  • DSP : Microprocesseur optimisé pour les applications de traitement numérique du signal et les calculs rapides en temps réel.
  • Microprocesseur : Circuit électronique intégré commandé par un programme, qui traite des mots binaires de n bits.

★ À maîtriser

📌 Un microcontrôleur intègre un microprocesseur, de la mémoire et des interfaces d’entrée-sortie, tandis qu’un microprocesseur nécessite des composants externes et offre une capacité de calcul importante.

Compléments

📌 Un DSP à virgule fixe représente les données comme des entiers classiques ou fractionnaires, tandis qu’un DSP à virgule flottante utilise une mantisse et un exposant.

Astuce mémo

Microcontrôleur = système complet ; microprocesseur = unité de calcul nécessitant des composants externes.

2. Architectures des processeurs

Points essentiels

📌 L’architecture de Von-Neumann utilise une mémoire commune pour les instructions et les données, tandis que l’architecture de Harvard sépare les mémoires programme et données.

  • L’architecture de Harvard permet le chargement en parallèle du programme et des données.

Astuce mémo

Harvard sépare deux autoroutes : une pour les instructions et une pour les données.

3. Rappels essentiels du langage C

Notions clés & Définitions

  • Pointeur : Variable typée qui contient l’adresse mémoire d’une autre variable.

★ À maîtriser

📌 Dans un tableau C, l’indice commence à 0 et les notations tab[i] et *(tab+i) sont équivalentes.

📌 L’opérateur &x donne l’adresse de x, tandis que *ptr donne le contenu de la variable pointée par ptr.

Compléments

  • En langage C, les types char, short, int, long, float et double occupent respectivement 1, 2, 4, 8, 4 et 8 octets, avec une précision indiquée de 6 décimales pour float et de 15 décimales pour double.

4. Hexadécimal et représentation mémoire

★ À maîtriser

  • La base hexadécimale utilise les chiffres 0 à 9 et les lettres A à F, chaque chiffre représentant quatre bits binaires.

📌 Sur N bits, le complément à deux représente les entiers de 2N1-2^{N-1} à 2N112^{N-1}-1.

Compléments

  • Pour obtenir la représentation en complément à deux d’un nombre négatif, on inverse tous les bits de sa représentation positive puis on ajoute 1.

Astuce mémo

Binaire → hexadécimal → complément à deux.

5. Architecture du TMS320C67x

Points essentiels

  • Le TMS320C67x possède une architecture Harvard et son CPU est organisé en deux chemins fonctionnels, A et B.

  • Le chemin A comprend les unités .L1, .S1, .M1 et .D1 ainsi que 16 registres de 32 bits nommés A0 à A15.

Astuce mémo

A et B : deux chemins, chacun avec L, S, M et D.

6. Principes de l’assembleur DSP

Points essentiels

  • Le langage C et l’assembleur linéaire sont traduits par le compilateur en assembleur, et chaque ligne d’assembleur correspond à une instruction.

  • L’assembleur linéaire utilise des variables, ne spécifie pas les unités fonctionnelles et ne gère pas directement les délais, tandis que l’assembleur utilise les registres, les unités fonctionnelles et les instructions NOP.

  • Lorsqu’une fonction assembleur est appelée depuis le C, les paramètres d’entrée utilisent successivement les registres A4, B4, A6, B6, A8, B8, A10, B10, A12 et B12, le résultat utilise A4 et l’adresse de retour utilise B3.

Astuce mémo

Assembleur linéaire = variables et simplicité ; assembleur = registres, unités et délais.

7. Instructions et adressage mémoire

★ À maîtriser

  • Les instructions LDB, LDH et LDW chargent respectivement 8, 16 et 32 bits de la mémoire vers un registre.

  • Les instructions STB, STH et STW écrivent respectivement 8, 16 et 32 bits d’un registre vers la mémoire.

📌 Les instructions conditionnelles peuvent utiliser A1, A2, B0, B1 ou B2 ; une condition [B0] exécute l’instruction lorsque B0 est non nul, tandis que [!B0] l’exécute lorsque B0 vaut zéro.

Compléments

📌 L’instruction MPY multiplie les 16 bits de poids faible signés de deux opérandes, tandis que MPYH multiplie leurs 16 bits de poids fort signés.

  • Avec LDW *A5++[1], le processeur charge 32 bits à l’adresse contenue dans A5 puis incrémente A5 de 4 octets.

Astuce mémo

Charger → calculer → stocker.

8. Écriture de fonctions DSP

Points essentiels

  • 🔄 La conception d’une fonction suit cet ordre:

    1. Identifier les paramètres
    2. Lister les instructions
    3. Définir les variables ou registres
    4. Placer le résultat dans le registre de retour
    5. Ordonner les instructions avec leurs délais
    6. Tester le code sur une ou deux itérations
  • Dans l’exemple de somme cumulée, la fonction calcul additionne les éléments du tableau x={1,2,3} et renvoie la valeur 6.

📌 Dans une fonction assembleur appelée depuis le C, le résultat retourné doit être placé dans le registre A4 avant le retour vers le programme appelant par B3.

Astuce mémo

Paramètres → variables/registres → boucle → retour.

9. Optimisation du code assembleur

★ À maîtriser

📌 L’objectif de l’optimisation assembleur est de diminuer le nombre de cycles d’exécution, sachant qu’une ligne assembleur correspond à un cycle machine.

  • Le parallélisme indiqué par || permet d’exécuter simultanément plusieurs instructions, avec au maximum 8 instructions en parallèle.

Compléments

📌 Le parallélisme doit respecter les unités fonctionnelles, le contenu des registres et les contraintes des chemins croisés de données et d’adresses.

📌 L’optimisation par parallélisme et réordonnancement est présentée comme facile, tandis que l’optimisation par pipeline est présentée comme difficile.

Astuce mémo

Parallélisme et pipeline → diminution du nombre de cycles.

Tableaux de synthèse

Couches de programmation DSP

LangageÉléments manipulésGestion des délais
Langage CVariables et fonctionsAssurée par le compilateur
Assembleur linéaireVariables et fonctions .saNon gérée directement
AssembleurRegistres, unités et instructions .asmGérée avec les NOP

Teste tes connaissances

Teste tes connaissances sur Introduction aux processeurs DSP avec 11 questions à choix multiples et corrections détaillées.

1. Comment les mémoires sont-elles organisées dans les architectures de Von-Neumann et de Harvard ?

2. Qu'est-ce qu'un DSP dans le contexte du traitement numérique du signal?

Faire le QCM →

Révisez avec les flashcards

Mémorisez les concepts clés de Introduction aux processeurs DSP avec 11 flashcards interactives.

Qu'est-ce qu'un microprocesseur ?

Un circuit électronique intégré commandé par un programme qui traite des mots binaires de n bits.

DSP définition

Microprocesseur optimisé pour traitement numérique du signal.

Quelle différence principale distingue un microcontrôleur d'un microprocesseur ?

Le microcontrôleur intègre mémoire et interfaces, le microprocesseur nécessite des composants externes.

Voir les flashcards →

Cours similaires

Crée tes propres fiches de révision

Importe ton cours et l'IA génère fiches, QCM et flashcards en 30 secondes.

Générateur de fiches