Validation automatique d’une méthode de migration des tâches sur la plateforme Zynq
Résumé
Le développement dans le domaine du calcul reconfigurable (Reconfigurable Computing) s’oriente vers l’utilisation de
plateformes hétérogènes intégrant un processeur et un FPGA. Ce type de système nous permet d’exécuter des traitements dans les parties reconfigurables et de gérer l’ensemble par le processeur générique.
En logiciel, la migration de tâches consiste à déplacer l’exécution d’une tâche d’une unité de calcul à une autre. En matériel, il s’agit de déplacer l’exécution d’un accélérateur matériel d’un FPGA vers un autre FPGA. Notre méthode propose une solution capable d’exécuter un accélérateur matériel sur un FPGA, de l’interrompre en cours d’exécution, et de poursuivre son exécution sur un autre FPGA. La validation de la méthode a été faite dans un système incluant deux architectures différentes de la famille Zynq : Zybo et Zedboard.
La méthode repose sur un choix judicieux des états d’exécution de l’accélérateur permettant l’interruption, et la sauvegarde des informations nécessaires à sa reprise.
Un traitement off-line permet de déterminer les états en fonction de la contrainte de temps. L’ajout de matériel permet d’extraire les bits nécessaires à la sauvegarde de l’état. Le processeur du système est capable de générer la sauvegarde de l’état, la reprogrammation de FPGA et le transfert de l’état vers le nouvel accélérateur pour une reprise d’exécution.
Il reste à généraliser une telle approche, avec une gestion efficace de la communication autour de la migration de tâche, et de s’adapter à l’hétérogénéité des plateformes et des familles de FPGA.