Optimisations du chargement des instructions
Le coeur d’exécution des processeurs actuels et à venir exploite le parallélisme entre
instructions. Ils ne peuvent alors atteindre leurs performances maximales que s’ils sont
alimentés par un débit d’instructions suffisant. Dans cet article, nous montrons que la bande
passante d’accès au cache d’instructions est en général sous-exploitée. Nous proposons deux
solutions pour optimiser les accès au cache d’instructions : l’une consiste à combiner
plusieurs accès à une même ligne de cache ; l’autre prévoit de modifier l’ordre des accès
pour limiter le nombre de conflits de bancs dans un cache multiport. Les résultats de
simulation montrent que ces deux optimisations améliorent sensiblement le débit de
chargement des instructions. Par ailleurs, leur mise en oeuvre se fait au travers de séquences
de contrôle du chargement qui tiennent également lieu de prédicteur multiple de
branchements.
The execution core of up-to-date and upcoming processors exploits instruction
parallelism. To deliver the highest execution rates, they have to be supplied with a high
fetched instruction rate. In this paper, we show that the instruction fetch bandwidth is usually
under-used. We propose two solutions to optimise the access to the instruction cache: the first
one consists in combining several accesses to a same cache line; the second one plans to
modify the order of the accesses to a multi-ported instruction cache to reduce bank conflicts.
Simulation results show that these two optimisations noticeably improve the instruction fetch
rate. Moreover, their implementation involves fetch control sequences which can play the role
of a multiple branch predictor.
T.HAQUIN, P.REYNES, C.ROCHANGE, P.SAINRAT
Reçu le 28 octobre 2002.
Accepté le 24 mars 2003.
chargement des instructions, cache d’instructions, prédiction multiple de branchements.
instruction fetch, instruction cache, multiple branch prediction.
Français
|