Changes between Version 15 and Version 16 of AS6-TME-B8


Ignore:
Timestamp:
Apr 30, 2025, 11:36:34 AM (3 months ago)
Author:
franck
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • AS6-TME-B8

    v15 v16  
    4545}}}
    4646
    47 {{{#!html
    48 <font size=+7 color=orange> En travaux</font><br><br>
    49 }}}
    50 
    5147Pas de question de cours cette fois. Je vais vous demander d'expérimenter le code et je pose quelques questions
    5248
     
    5652
    5753
    58 Dans cette version, il n'y a pas d'OS, tout est fait dans la fonction `kinit()`
     54Dans cette version, il n'y a pas d'OS, tout est fait dans la fonction `kinit()`\\
     55et le code de commandes des périphériques est dans harch.c\\
    5956Les trois étapes (lecture disque, traitement, affichage) sont faites séquentiellement
    6057
     
    6259
    6360 - Ouvrez le code pour voir la boucle de traitement.
    64  - Faites tourner la simulation, la durée de chaque étape s'affichent. Que pouvez-vous en conclure ?
    65  - Essayez de retirer les invalidations du cache (dans `harch.c`), observez et expliquer le comportement.
    66  - Expliquez l'usage des couples de variables globales (`BDBusy` et `BDLock`) et (`DMABusy` et `DMALock`) utilisées pour la synchronisation des étapes.
     61 - Faites tourner la simulation, la durée de chaque étape s'affichent.
     62   - Quelle est la durée de chaque étape ?
     63   - Que pouvez-vous en conclure ?
     64 - Essayez de retirer les invalidations du cache (dans `harch.c`)
     65   - Observez et expliquer le comportement.
     66   - En déplaçant, l'instruction qui prend la valeur de clock(),\\déterminer le nombre de cycles nécessaire à l'invalidation du buffer.\\C'est long, pourquoi ?
     67 - Expliquez l'usage des couples de variables globales utilisées pour la synchronisation des étapes.\\(`BDBusy` et `BDLock`) et (`DMABusy` et `DMALock`).
    6768
    6869
     
    7273[[Image(htdocs:img/image-parallel.png,nolink,center,height=230)]]
    7374
    74 Dans cette version, les trois étapes sont faites en parallèle sous la forme d'un pipeline avec deux couples de buffer utilisés en altenance.
     75Dans cette version, les trois étapes doivent être faites en parallèle sous la forme d'un pipeline avec deux couples de buffer utilisés en alternance.
    7576
    7677{{{
     
    8990
    9091 - Qu'est ce qu'on gagne à procéder ainsi ?
    91  - Est-ce qu'on peut gagner plus et si oui comment faire (en supposant qu'on a plusieurs processeurs dans le SoC).
    92 
     92 - Est-ce qu'on peut gagner plus et si oui comment faire (en supposant qu'on a plusieurs processeurs dans le SoC).\\Vous devez regarder la durée de chaque étape (chargement/calcul/affichage)
     93{{{#!comment
    9394Pour ceux qui veulent, on peut aussi paralléliser le traitement CPU en mettant plusieurs processeurs dans la plateforme (htdocs:files/04_multicore.tgz)
     95}}}
    9496
    9597== 03_sdl