Topic outline

  • Systèmes Embarqués

    DSP

    Digital Signal Processor

    Les enseignements autour du numérique en première année ont pour objectif la découverte des architectures processeurs généralistes du marché (MCU, GPP), solutions de contrôle aux centres des applications et majoritairement rencontrées en terme de coeurs de métiers et de volumes d'unités déployés autour de nous.

    Cet enseignement permet quant à lui la découverte des architectures matérielles spécialisées pour du calcul numérique pouvant dans certains cas être massivement parallèle (DSP, GPU). Le développement sur composants à logique programmable (FPGA) étant vu dans d'autres enseignements. Présentation en quelques points des grands axes explorés durant le cours :

    • Hétérogénéité des architectures processeurs : MCU, AP, GPP (généralistes), DSP, GPU, FPGA, ASIC (spécialisés), SoC/SoB (hybrides).  Avantages, inconvénients et comparatifs
    • Pipelines matériels CPU : in-order classique, superscalaire, VLIW, EPIC. Avantages, inconvénients et comparatifs
    • Hiérarchies mémoires : modèles mémoires UMA, NUMA, caches processeurs et mémoires locales adressables.  Avantages, inconvénients et comparatifs
    • Périphériques d'accélérations : DMA, fonctions algorithmiques dédiées

    Durant la trame de travaux pratiques, nous allons nous intéresser au workflow typique rencontré en milieu industriel dans le cadre d'optimisation logicielle d'algorithme pour une cible matérielle spécialisée. Ce processus de développement peut par exemple être rencontré chez les acteurs des grands domaines du traitement du signal (traitement d'antenne, traitement d'image, traitement du son …).

    Dans une optique pédagogique et professionnalisante, notre choix s'est porté sur l'architecture C6600 proposée par Texas Instruments. Pour information, en 2016 la famille C6000 de TI est l'architecture leader sur le marché des processeurs DSP (Digital Signal Processor). Le processeur C6678 étudié en TP étant l'un des composant haut de gamme de la famille avec ses 8 coeurs vectoriels VLIW. Cette architecture propose quelques atouts assurant une grande flexibilité et permettant une bonne compréhension des architectures processeurs actuelles.

    Présentons la trame de travaux pratiques basée sur l'implémentation architecture dépendante d'une convolution (algorithme fir_sp_r4), algorithme lourd et difficile à accélérer sans refactoring mathématique  :

    1. ALGORITHME DE FILTRAGE


    1.1. Algorithme de référence
    1.2. Test de performance
    1.3. Intégration en C canonique

    2. AUTOMATISATION DES TESTS


    2.1. Test de conformité
    2.2. Test de performance
    2.3. Temps de compilation et empreinte mémoire
    2.4. Temps de programmation

    3. PROGRAMMATION VECTORIELLE


    3.1. Assembleur canonique C6600
    3.2. Assembleur VLIW C6600
    3.3. Pipelining logiciel assembleur C6600
    3.4. Assembleur vectoriel C6600
    3.5. Déroulement de boucle en C
    3.6. Vectorisation de code en C
    3.7. C canonique sur architecture IA-64
    3.8. Vectorisation SSE4.1 sur architecture IA-64


    4. HIERARCHIE MEMOIRE


    4.1. Mémoire locale adressable
    4.2. Préchargement des données de DDR SRAM vers L2 SRAM
    4.3. Préchargement des données de L2 SRAM vers L1D SRAM


    5. PERIPHERIQUES D'ACCELERATION


    5.1. Transferts par IDMA
    5.2. Stratégie Ping Pong
    5.3. Transferts par EDMA


    BENCHMARKING

  • Outils de Développement

    Les outils de développement proposés par Texas Instruments sont libres d'utilisation du moment que nous n'utilisons que le mode simulation ou certaines sondes de programmation, dont celle utilisée en TP (XDS100). Chaque exercice de TP peut être pré-compilé et testé à la maison avant l'arrivée en séance. De même, l'installation des outils puis l'utilisation en mode simulation pour l'analyse de traduction de programmes C vers ASM C6600 est sans aucun doute l'une des solutions de révision les plus efficaces dans une optique de préparation à l'examen sur table. Attention, bien installer CCS5.5 pour windows (W7, W8.1, W10 OK) possédant un mode simulation, CCS6 et CCS7 en sont dépourvus. 


    Configuration du simulateur sous CCS5.5. Une fois le projet créé et sa bonne compilation validée, réaliser les actions suivantes :

    • Project Explorer > targetConfigs > TMS320C6678.ccxml > cliquer sur le fichier de configuration
    • Connection > sélectionner "Texas Instruments Simulator"
    • Board or Device > sélectionner "C6678 Device Functional Simulator, Little Endian"
    • Cliquer sur "Save", lancer une session de debug et voilà !
    • De préférence, configurer le compilateur de la façon suivante (hors phase de mesure) :
      • Propriétés du projet > Build > C6000 Compiler
      • Optimization > optimization level > -O0
      • Debug Options > Debugging model > Full symbolic debug

  • TP groupe 1

    Préparations de TP

    encadrant : Isabelle Lartigau

    Pour déposer un devoir, il faut s'inscrire dans ce cours :

    En bas à droite, "Administration du cours-> s'inscrire dans le cours"


  • TP groupe 2

    Préparations de TP

    encadrant : hugo descoubes

    Pour déposer un devoir, il faut s'inscrire dans ce cours :

    En bas à droite, "Administration du cours-> s'inscrire dans le cours"


  • Systèmes Embarqués

    USB

    Universal Serial Bus

    Une introduction au protocole USB vous sera également faite. Nous nous efforcerons de comprendre en quoi l'USB a une vocation universelle. Nous découvrions plus en profondeur la classe HID (Human Interface Device) à travers l'analyse d'une souris USB durant le trame de cours et l'analyse puis la réalisation d'un clavier USB durant les TP.

    Il vous sera demandé en TP de réaliser une télécommande permettant de passer des slides, typiquement utilisée durant des conférences. Vous constaterez qu'il s'agit en fait d'un clavier à deux touches. Pour arriver à vos fin, vous travaillerez sur PIC32MX795F512L, un MCU 32bits proposé par Microchip. Voici le détail de votre travail en séance :

    Analyse d'un clavier USB :

    • Exercice 1 : Analyse des communications entre un clavier USB et un PC
    • objectifs : Découverte du protocole et de l'énumération USB (via UVCView et Ellisys USB Analyser)

    Mise en œuvre d'une télécommande pour présentation :

    • Exercice 2  : Slide remote (sans pile USB - mode debugger)
    • objectifs : Mise en œuvre de la télécommande sans la pile 
    • Exercice 3 : Slide remote (avec pile USB - mode programmer)
    • objectifs : Portage puis utilisation de la pile USB Device en classe HID proposée par Microchip
    • Exercice 4 : Aide au développement et au debug
    • objectifs : Découverte plus approfondie de la pile USB et des outils d'aide à la configuration et au debug proposés par Microchip
  • Outils de Développement

    Les outils de développement proposés par Microchip sont libre d'utilisation du moment que vous utilisez les versions dîtes LITE (outils sans options d'optimisation). Chaque exercice de TP peut être pré-compilé à la maison avant l'arrivée en séance. De même, l'installation des outils puis l'utilisation en mode simulation pour l'analyse de traduction de programmes C vers ASM PIC18 est sans aucun doute l'une des solutions de révision les plus efficaces dans une optique de préparation à l'examen sur table.