thesis

Accélération matérielle de la compilation à la volée pour les systèmes embarqués

Defense date:

Jan. 1, 2013

Edit

Institution:

Paris 6

Disciplines:

Abstract EN:

Développée depuis le début des années 60, la compilation dynamique connaît un essor considérable depuis une quinzaine d’année. Cet essor est essentiellement lié à deux aspects : le dynamisme croissant des applications et l’explosion de la demande en solutions de virtualisation. Le transfert de ces problématiques dans le domaine de l’embarqué a conduit à éprouver les technologies de compilation dynamique sur des ressources de calculs spartiates. Toutefois, la gestion de ces algorithmes complexes et irréguliers par des architectures simples (exécution dans l’ordre, peu ou pas de spéculation, hiérarchies mémoire limitées), pose un important problème de passage à l’échelle en termes de performances. En conséquence, les solutions de compilation dynamique sont moins attractives dans ce domaine. Alors que de nombreuses optimisations logicielles ont déjà été proposées dans l’état de l’art, nous proposons, dans le cadre de cette thèse, de mettre en place des accélérations matérielles couplées au processeur en charge de la compilation dynamique afin d’en accroître les performances. Basées sur le compilateur du cadriciel LLVM (LLC), nos analyses ont permis d’identifier deux points critiques en performances : la gestion des tableaux associatifs et de l’allocation dynamique de la mémoire, et la gestion du graphe des instructions à compiler. Deux accélérations ont ainsi été proposées. Concernant la gestion des tableaux associatifs, nous obtenons des gains atteignant 25 % sur LLC pour un surcoût silicium représentant moins de 1. 4 % de la surface du processeur associé.

Abstract FR:

Developed since the 60s, JIT compilation is widely used since 15 years. This is the consequence of two main phenomena: the increasing dynamism of applications and the increasing demand concerning virtualization. The transfer of these issues to the embedded domain leads to experience JIT compilation on small and sparse resources. However, the management of JIT compilation algorithms’ complexity and irregularity on small resources (in-order processors, limited speculation, limited memory hierarchies) leads to important scaling-down problems in terms of performance. As a consequence, JIT compilation solutions are less attractive in this domain. While several software optimizations have been already proposed in the literature, we propose in this thesis the development of hardware accelerations coupled to the processor in charge of the JIT compilation. The final aim is to propose a more efficient solution in terms of performance with respect to embedded constraints. Based on the LLVM framework compiler (LLC), our experiments highlight two critical points in terms of performance: the associative array and dynamic memory allocation management and the instruction graph handling for instructions to compile and optimize. Two accelerators have been proposed in this way. Concerning the management of associative arrays, we obtain gains up to 25 % on LLC with an area overhead under 1. 4 % of the associated processor.