Logiciels Libres et Systèmes Embarqués


Annexe B. Optimisation de la mémoire

B.1. Introduction

Afin de diminuer la taille du code utilisé par des processus tournant sur des processeurs séparés, j'ai mis au point une méthode qui permet de partager des fonctions ou variables entre plusieurs processeurs d'un même FPGA. Le but de cette démonstration est d'avoir un processus Prog0 tournant sur un PowerPC 405 CPU0 capable d'appeler une fonction du processus Prog1 tournant sur le PowerPC 405 CPU1. Cette fonction sera bien sûr exécutée sur le processeur PPC0, comme on peut le voir sur la figure suivante :

Figure B.1. Appel de fonction externe

Appel de fonction externe


Lorsque l'on voit le prix de la SDRAM, on pourrait se demander quel est l'intérêt d'une telle optimisation. En fait, l'objectif est de pouvoir exécuter les programmes entièrement en BRAM[29], celle-ci étant accessible en un coup d'horloge via le bus OCM. Etant donné que cette mémoire vive est très limitée (de 64 à 256 Ko), il faut faire preuve d'astuce pour être capable de faire tenir deux programmes dans une si faible quantité de mémoire.



[29] cette démonstration est faite en SDRAM, mais cela ne change rien au procédé.