INSTRUCTIONS AND LOGIC FOR LOAD-INDICES-AND-GATHER OPERATIONS

A processor includes an execution unit to execute instructions to load indices from an array of indices and gather elements from random locations or locations in sparse memory based on those indices. The execution unit includes logic to load, for each data element to be gathered by the instruction,...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Hauptverfasser: VALLES, Antonio C, YOUNT, Charles R, OULD-AHMED-VALL, Elmoustapha, GOKHALE, Indraneil M
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 an execution unit to execute instructions to load indices from an array of indices and gather elements from random locations or locations in sparse memory based on those indices. The execution unit includes logic to load, for each data element to be gathered by the instruction, as needed, an index value to be used in computing the address in memory of a particular data element to be gathered. The index value may be retrieved from an array of indices that is identified for the instruction. The execution unit includes logic to compute the address as the sum of a base address that is specified for the instruction and the index value that was retrieved for the data element, with or without scaling. The execution unit includes logic to store the gathered data elements in contiguous locations in a destination vector register that is specified for the instruction. L'invention concerne un processeur qui comprend une unité d'exécution destinée à exécuter des instructions pour charger des indices à partir d'un ensemble d'indices et rassembler des éléments à partir d'emplacements aléatoires ou d'emplacements dans une mémoire peu dense sur la base de ces indices. L'unité d'exécution comprend une logique destinée à charger, pour chaque élément de données que l'instruction doit rassembler, selon les besoins, une valeur d'indice qui doit être utilisée dans le calcul de l'adresse en mémoire d'un élément de données particulier qui doit être rassemblé. La valeur indice peut être extraite d'un ensemble d'indices qui est identifié pour l'instruction. L'unité d'exécution comprend une logique destinée à calculer l'adresse comme étant la somme d'une adresse de base qui est spécifiée pour l'instruction et de la valeur d'indice qui a été récupérée pour l'élément de données, avec ou sans mise à l'échelle. L'unité d'exécution comprend une logique destinée à stocker les éléments de données rassemblés à des emplacements contigus dans un registre vectoriel de destination qui est spécifié pour l'instruction.