Abstract:
Befehle und eine Logik stellen Vektor-Lade-Op und/oder Speicher-Op mit Schritt-Funktionalität bereit. In einigen Ausführungsformen, als Reaktion auf einen Befehl, der Folgendes spezifiziert: einen Satz von Ladevorgängen, eine zweite Operation, ein Zielregister, ein Operandenregister, eine Speicheradresse und eine Schrittlänge; lesen Ausführungseinheiten Werte in einem Maskenregister, wobei Felder in dem Maskenregister Schrittlängenvielfachen von der Speicheradresse zu Datenelementen im Speicher entsprechen. Ein erster Maskenwert gibt an, dass das Element nicht aus dem Speicher geladen worden ist, und ein zweiter Wert gibt an, dass das Element nicht geladen werden muss oder bereits geladen worden ist. Für jedes mit dem ersten Wert wird das Datenelement aus dem Speicher in die entsprechende Zielregisterstelle geladen und der entsprechende Wert in dem Maskenregister wird auf den zweiten Wert geändert. Die zweite Operation wird dann unter Verwendung von entsprechenden Daten in dem Ziel- und Operandenregister durchgeführt, um Ergebnisse zu generieren. Der Befehl kann nach Fehlern neu gestartet werden.
Abstract:
Instructions and logic provide vector load-op and/or store-op with stride functionality. Some embodiments, responsive to an instruction specifying: a set of loads, a second operation, destination register, operand register, memory address, and stride length; execution units read values in a mask register, wherein fields in the mask register correspond to stride-length multiples from the memory address to data elements in memory. A first mask value indicates the element has not been loaded from memory and a second value indicates that the element does not need to be, or has already been loaded. For each having the first value, the data element is loaded from memory into the corresponding destination register location, and the corresponding value in the mask register is changed to the second value. Then the second operation is performed using corresponding data in the destination and operand registers to generate results. The instruction may be restarted after faults.
Abstract:
Instructions and logic provide vector loads and/or stores with stride and mask functionality. Some embodiments, responsive to an instruction specifying: a set of loads, destination register, mask register, memory address, and stride length; execution units read values in the mask register, wherein fields in the mask register correspond to stride-length multiples from the memory address to data elements in memory. A first mask value indicates the element has not been loaded from memory and a second value indicates that the element does not need to be, or has already been loaded. For each having the first value, the corresponding multiple of said stride length is generated according to the data field's position in the mask register to load the data element from memory into the corresponding destination register location, and the corresponding value in the mask register is changed to the second value. These instructions can restart after faults.
Abstract:
Instruktionen und Logik stellen eine Vektorstreuungs-Op- und/oder -Hol-Op-Funktionalität bereit. In einigen Ausführungsformen lesen Ausführungseinheiten in Reaktion auf eine Instruktion, die eine Hol- und eine zweite Operation, ein Zielregister, ein Operandenregister und eine Speicheradresse spezifiziert, Werte in einem Maskenregister, wobei Felder in dem Maskenregister Versatzindizes in dem Indizesregister für Datenelemente im Speicher entsprechen. Ein erster Maskenwert gibt an, dass das Element nicht aus dem Speicher geholt wurde, und ein zweiter Wert gibt an, dass das Element nicht geholt zu werden braucht oder bereits geholt wurde. Für jedes mit dem ersten Wert wird das Datenelement aus dem Speicher in die entsprechende Zielregisterposition geholt, und der entsprechende Wert in dem Maskenregister wird zu dem zweiten Wert geändert. Wenn alle Maskenregisterfelder den zweiten Wert haben, so wird die zweite Operation unter Verwendung entsprechender Daten in den Zielort- und Operandenregistern ausgeführt, um Ergebnisse zu generieren.
Abstract:
Befehle und Logik liefern Vektorladen und/oder -speichern mit Schrittlängen- und Maskierfunktionalität. Einige Ausführungsformen spezifizieren als Antwort auf einen Befehl: einen Satz Laden, Zielregister, Maskenregister, Speicheradresse und Schrittlänge; Ausführungseinheiten lesen Werte in dem Maskenregister, wobei Felder in dem Maskenregister Schrittlängenvielfachen von der Speicheradresse zu Datenelementen in Speicher entsprechen. Ein erster Maskenwert gibt an, dass das Element noch nicht aus dem Speicher geladen worden ist, und ein zweiter Wert gibt an, dass das Element nicht geladen werden muss oder bereits geladen worden ist. Für jeden mit dem ersten Wert wird das korrespondierende Vielfache der Schrittlänge gemäß der Position des Datenfeldes in dem Maskenregister zum Laden des Datenelements aus dem Speicher in den korrespondierenden Zielregisterplatz erzeugt und der korrespondierende Wert in dem Maskenregister wird auf den zweiten Wert geändert. Diese Befehle können nach Fehlern neu gestartet werden.
Abstract:
A processor core that includes a hardware decode unit and an execution engine unit. The hardware decode unit to decode a vector frequency expand instruction, wherein the vector frequency compress instruction includes a source operand and a destination operand, wherein the source operand specifies a source vector register that includes one or more pairs of a value and run length that are to be expanded into a run of that value based on the run length. The execution engine unit to execute the decoded vector frequency expand instruction which causes, a set of one or more source data elements in the source vector register to be expanded into a set of destination data elements comprising more elements than the set of source data elements and including at least one run of identical values which were run length encoded in the source vector register.
Abstract:
A processor core that includes a hardware decode unit to decode a vector frequency compress instruction that includes a source operand and a destination operand. The source operand specifying a source vector register that includes a plurality of source data elements including one or more runs of identical data elements that are each to be compressed in a destination vector register as a value and run length pair. The destination operand identifies the destination vector register. The processor core also includes an execution engine unit to execute the decoded vector frequency compress instruction which causes, for each source data element, a value to be copied into the destination vector register to indicate that source data element's value. One or more runs of the source data elements equal are encoded in the destination vector register as the predetermined compression value followed by a run length for that run.
Abstract:
A processor core including a hardware decode unit to decode vector instructions for decompressing a run length encoded (RLE) set of source data elements and an execution unit to execute the decoded instructions. The execution unit generates a first mask by comparing set of source data elements with a set of zeros and then counts the trailing zeros in the mask. A second mask is made based on the count of trailing zeros. The execution unit then copies the set of source data elements to a buffer using the second mask and then reads the number of RLE zeros from the set of source data elements. The buffer is shifted and copied to a result and the set of source data elements is shifted to the right. If more valid data elements are in the set of source data elements this is repeated until all valid data is processed.
Abstract:
A processor includes a front end to fetch an instruction. The instruction is to calculate a data point using inputs from a plurality of adjacent source data in a plurality of dimensions. The processor includes a decoder to decode the instruction. The processor also includes a core to, based on the decoded instruction, perform a plurality of tabular vector read operations to read the plurality of adjacent source data and perform a tabular vector calculation to execute the instruction. The tabular vector calculation is based upon results of performing the plurality of tabular vector read operations. The core is further to write results of the tabular vector calculation.