P37 Creation d'un composant d'audit des accès cache mémoire sur un microprocesseur LEON3 simulé en FPGA

De Wiki d'activités IMA
Révision datée du 16 novembre 2014 à 17:07 par Jvaessen (discussion | contributions) (Semaine 6:)

Presentation du projet

Ce projet s'inscrit dans l'amélioration d'une solution d'IP pour un SoftCore implanté dans un FPGA.


Cahier des charges

Il faudra créer un composant VHDL capable de:

1. sniffer les paquets à destination de la SDRAM/RAM (via le memory controler)

2. Vérifier le contenu du paquet savoir, le type d'accès (lecture/écriture) de la mémoire

3. compter le nombre d'accès mémoire en écriture

4. Différencier les zones mémoires qui sont accéder afin de déterminer l'application/taches qui est à l'origine.


Il faudra aussi, faire cohabiter deux (ou plus) SoftCore Leon3 communicants sur le même bus AMBA.

Planning:

Semaine 1:

Décourverte de l'équipe et discussion concernant le projet

Semaine 2:

Mise en place des outils (cygwin64 avec "développement") et discussion concernant les possibilités offertes concernant le bus AMBA

Semaine 3:

Après plusieurs essais d'utilisation des paquets tcl/tk fournis avec cygwin, nous nous sommes aperçus que l'environnement cygwin ne semble pas utilisable pour le projet. C'est pour cela que nous passons à une autre solution ie Msys cependant nous sommes en train de faire en sorte d'avoir la bonne version des outils TCL/TK.

Semaine 4:

Mise en place d'un SoftCore Leon3 sur un FPGA, exploration des modifications à apporter afin d'implémenter deux softcores avec un cache L2C.

Semaine 5:

Mise en place de multiple SoftCore Leon3 sur un FPGA, exploration des modifications à apporter afin d'implémenter deux softcores avec un cache L2C.

Semaine 6:

Abandon du cache L2C (composant manquant).

Compilation d'un "hello world" avec les outils et paramètres adéquats pour une architecture multicoeur.

Épluchage des documentations afin d'établir les signaux pertinents pour réaliser des compteurs qui auront les caractéristiques suivantes:

-une paire de compteurs pour la lecture et l'écriture en mémoire

-3 paire de compteur (PROM, RAM et SDRAM).

Semaine 7:

Étude du composant contrôleur mémoire afin d'y implanter le composant. Cela nous permettra d'accéder facilement aux signaux pertinents pour le contrôle du composant. On fera en sorte d'avoir une sortie sur un GPIO.

Annexes:

Notes:

D'après la section 2.15 [3], on a la correspondance suivante: GRLIB IP Cores Core Vendor LEON3|0x01 (ie Gaisler Research [2] p49) MCTRL|0x04 (ie European Space Agency [2]p49) Ce qui nous permettra d'identifier le contrôleur mémoire

Voici quelques suggestions que l'on peut faire concernant le sniffeur de paquets:

Pour cela on utilise très largement le document [2] (GRLIB IP Library User’s Manual)

Lors d'une simulation du code VHDL, il est possible d'afficher le contenu du BAR (bank address registers).

Pour ce qui de la gestion de la prochaine tache à exécuter il y a possibilité de faire en sorte que notre composant: -changer la priorité du master sur le bus AMBA -empêcher l'accès en dur en modifiant le comportement du contrôleur de bus (1).

(1): Ceci ne fonctionnera que si les taches sont sur des partitions différentes et sur des processeurs indépendants.

Afin de réaliser le composant, il est envisageable de l'intégrer directement au sein du contrôleur de mémoire.

Celui devra donc récupérer le contenu des caches des processeurs afin de déterminé quel programme et en exécution.


Bibliographie:

[1] lien site gaisler gaisler.com/index.php

[2] lien vers GRLIB IP Library User’s Manual http://www.gaisler.com/products/grlib/grlib.pdf

[3] lien vers LEON3 GR-XC3S-1500 Template Design http://www.gaisler.com/products/grlib/grip.pdf