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

De Wiki de Projets IMA
Révision datée du 11 octobre 2014 à 07:37 par Jvaessen (discussion | contributions) (Page créée avec « = 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... »)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)

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:

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


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