Morpheo : processeur ouvert, haute performance, paramétrable et pérenne pour plate-forme de confiance
Auteur / Autrice : | Mathieu Rosière |
Direction : | Nathalie Drach-Temam |
Type : | Thèse de doctorat |
Discipline(s) : | Informatique, télécommunications et électronique |
Date : | Soutenance en 2010 |
Etablissement(s) : | Paris 6 |
Mots clés
Mots clés contrôlés
Résumé
De nos jours, la conception industrielle des systèmes embarqués est basée sur le secret. Cela induit des problèmes de sécurité dus à l'opacité des composants, de pérennité pour les applications à longue durée de vie, d'adaptabilité à des applications spécifiques et de coût dû aux procédés de fabrication des ASIC. Une approche alternative est basée sur l'utilisation de processeurs satisfaisant un ensemble de contraintes : - être ouverts pour garantir la sécurité, - être paramétrables dans l'exploitation de différents niveaux de parallélisme, - être synthétisables sur FPGA. Aucun softcore actuel n'exploite le parallélisme d'instructions alors que les capacités d'intégration des plus denses FPGA permettent la synthèse d'un processeur haute performance. Dans ce manuscrit, nous présentons l'architecture du processeur MORPHEO répondant aux contraintes de l'approche alternative. Il s'agit d'un processeur superscalaire à exécution désordonnée et spéculative. Le pipeline est profond (16 étages) et chaque bloc du processeur peut être dupliqué afin d'affiner l'exploitation du parallélisme de tâches. Cependant, la synthèse sur FPGA impose des contraintes lors de la conception de chaque composant du processeur. Ainsi, les mémoires multi-ports, les files multi accès et les mémoires associatives ont un coût prohibitif par rapport à une implémentation ASIC. Nous avons modifié l'architecture pour utiliser les macros blocs du FPGA et nous évaluons l'impact sur les performances de ces modifications. Les résultats de notre étude montrent que notre architecture est intégrable sur un FPGA et les performances sont réduites de 30% par rapport à une architecture non intégrable sur un FPGA.