AN APPARATUS AND METHOD FOR PERFORMING ENHANCED POINTER CHASING PREFETCHER

An apparatus and methods for performing enhanced pointer chasing prefetch are disclosed. The method includes detecting during an execution of a program a pointer load, which is a load instruction of one or more elements in a data structure wherein returned data of the load instruction from a memory...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Hauptverfasser: CHERNUHA, Nikolay, PELED, Leeor, NAN, Lyu
Format: Patent
Sprache:eng ; fre
Schlagworte:
Online-Zugang:Volltext bestellen
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
Beschreibung
Zusammenfassung:An apparatus and methods for performing enhanced pointer chasing prefetch are disclosed. The method includes detecting during an execution of a program a pointer load, which is a load instruction of one or more elements in a data structure wherein returned data of the load instruction from a memory contains one or more pointers, for another load instruction. Mapping the pointer load to: a data structure type, one or more offsets of the one or more pointers in the data structure, and the data structure types the one or more pointers point to, for dispatching a prefetch from the cache layer to the memory; and recursively dispatch prefetches after data of a pointer load or a previous prefetch returns from the memory, based on the offsets of pointers within each data structure type which the pointer is mapped to, before the pointer load is executed by the processor. L'invention concerne un appareil et des procédés destinés à mettre en œuvre une préextraction de poursuite de pointeur améliorée. Le procédé selon l'invention consiste à détecter, pendant l'exécution d'un programme, une charge de pointeur qui est une instruction de charge d'au moins un élément dans une structure de données, des données renvoyées de l'instruction de charge provenant d'une mémoire contenant au moins un pointeur, pour une autre instruction de charge. Le procédé selon l'invention consiste : à mapper la charge de pointeur sur un type de structure de données, sur au moins un décalage dudit pointeur au moins dans la structure de données, et sur les types de structure de données vers laquelle pointent ledit pointeur au moins, pour envoyer une préextraction de la couche cache à la mémoire ; et à envoyer de façon récurrente des préextractions après que des données d'une charge de pointeur ou d'une préextraction antérieure reviennent de la mémoire, en fonction des décalages de pointeurs dans chaque type de structure de données sur lequel le pointeur est mappé, avant que la charge de pointeur ne soit exécutée par le processeur.