Evaluation d'une hiérarchie mémoire pour une machine symbolique
Auteur / Autrice : | Mohamed Ben Othman |
Direction : | Gilles Berger-Sabbatel |
Type : | Thèse de doctorat |
Discipline(s) : | Informatique |
Date : | Soutenance en 1993 |
Etablissement(s) : | Université Joseph Fourier (Grenoble ; 1971-2015) en cotutelle avec Grenoble 1 |
Mots clés
Mots clés libres
Résumé
Cette thèse entre dans le cadre du projet Symbion, qui vise à concevoir la brique de base d'une machine symbolique parallèle. Prolog, choisi comme représentatif des langages de programmation en logique, diffère des langages procéduraux par le fait qu'il est déclaratif, non déterministe et utilise l'unification comme son opération primaire. Les performances des programmes sont directement liées aux performances de la mémoire car les processeurs rapides sont fortement limités par le débit de la mémoire. Ainsi, les architectures qui demandent un débit réduit ont un grand potentiel pour des performances élevées. L'objectif de cette étude est d'évaluer le comportement des programmes Prolog vis-à-vis de la gestion de la mémoire. Cette évaluation est réalisée avec une simulation d'une hiérarchie mémoire d'un monoprocesseur de type RISC. Ainsi, nous avons étudié les différents paramètres de la mémoire cache, la pagination et les interactions entre les différents niveaux de la mémoire. Pour étudier l'impact du support système et essentiellement la multiprogrammation sur le comportement de la mémoire, nous avons réalisé un micronoyau qui prévoit l'utilisation du parallélisme de Prolog. Nous avons adopté la division d'un processus en deux abstractions: tâche et fils d'exécution utilisée dans les micros noyaux Mach et Chorus. Il s'avère qu'en règle générale, un cache classique est suffisant pour avoir de bonnes performances, compte tenu des tailles de cache réalisables actuellement. De ce fait, on n'aura pas besoin des valeurs de paramètres spécifiques pour le traitement des programmes Prolog. Cependant, pour améliorer le traitement de ces programmes sur les machines universelles il faut pouvoir, d'une part, augmenter la localité des programmes et, d'autre part, compenser l'effet résiduel de la faible localité