PIPELINED PREFETCHER FOR PARALLEL ADVANCEMENT OF MULTIPLE DATA STREAMS

A processor includes a front end to decode instructions, an execution unit to execute instructions, multiple caches at different cache hierarchy levels, a pipelined prefetcher, and a retirement unit to retire instructions. The prefetcher includes circuitry to receive a demand request for data at a f...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Hauptverfasser: NUZMAN, Joseph, PELED, Leeor, NOVAKOVSKY, Larisa
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:A processor includes a front end to decode instructions, an execution unit to execute instructions, multiple caches at different cache hierarchy levels, a pipelined prefetcher, and a retirement unit to retire instructions. The prefetcher includes circuitry to receive a demand request for data at a first address within a first line in a memory and, in response, to provide the data at the first address to the execution unit for consumption, to prefetch a second line at a first offset distance from the first line into a midlevel cache, and to prefetch a third line at a second offset distance from the second line into a last level cache. The prefetcher includes circuitry to prefetch, in response to another demand request, the third line into the midlevel cache, and a fourth line into the last-level cache. The prefetcher enforces minimum or maximum offset distances between prefetched data streams. La présente invention concerne un processeur comprenant une extrémité frontale pour décoder des instructions, une unité d'exécution pour exécuter des instructions, de multiples mémoires caches à différents niveaux hiérarchiques de mémoire cache, un prélecteur en pipeline, et une unité de retrait pour retirer des instructions. Le prélecteur comprend des circuits pour recevoir une requête de demande de données au niveau d'une première adresse à l'intérieur d'une première ligne dans une mémoire et, en réponse, pour fournir les données au niveau de la première adresse à l'unité d'exécution en vue d'une consommation, pour effectuer une prélecture d'une deuxième ligne au niveau d'une première distance de décalage à partir de la première ligne à destination d'un cache de niveau intermédiaire, et pour effectuer une prélecture d'une troisième ligne au niveau d'une seconde distance de décalage à partir de la deuxième ligne à destination d'un cache de dernier niveau. Le prélecteur comprend des circuits pour effectuer une prélecture, en réponse à une autre requête de demande, de la troisième ligne à destination du cache de niveau intermédiaire, et d'une quatrième ligne à destination du cache de dernier niveau. Le prélecteur applique des distances de décalage minimales ou maximales entre des flux de données de prélecture.