Abstract:
Eine Einrichtung und ein Verfahren zum Durchführen von dualen gleichzeitigen Multiplikationen von gepackten Datenelementen. Zum Beispiel umfasst eine Ausführungsform eines Prozessors Folgendes: einen Decoder zum Decodieren eines ersten Befehls zum Erzeugen eines decodierten Befehls; ein erstes Quellregister zum Speichern einer ersten Vielzahl von gepackten Datenelementen; ein zweites Quellregister zum Speichern einer zweiten Vielzahl von gepackten Datenelementen; eine Ausführungsschaltung zum Ausführen des decodierten Befehls, die Ausführungsschaltung umfassend: eine Multipliziererschaltung zum Durchführen von gleichzeitigen dualen Multiplikationen eines ersten gepackten Datenelements aus dem ersten Quellregister mit einem zweiten gepackten Datenelement aus dem zweiten Quellregister und eines dritten gepackten Datenelements aus dem ersten Quellregister mit einem vierten gepackten Datenelement aus dem zweiten Quellregister, um erste bzw. zweite Produkte zu erzeugen, wobei die ersten und dritten gepackten Datenelemente eine Breite aufweisen, die zweimal so groß ist wie eine Breite der zweiten und vierten gepackten Datenelemente; die Multipliziererschaltung zum Auswählen der ersten und dritten gepackten Datenelemente aus dem ersten Quellregister und der zweiten und vierten gepackten Datenelemente aus dem zweiten Quellregister gemäß dem unmittelbaren Element, um die ersten und zweiten Produkte zu erzeugen.
Abstract:
Ausführungsformen von Systemen, Vorrichtungen und Verfahren für eine duale komplexe Zahl durch komplexe Konjugations-Multiplikation in einem Prozessor sind beschrieben. Zum Beispiel führt eine Ausführungsschaltung einen decodierten Befehl aus zum: Multiplexen von Datenwerten aus einer Mehrzahl von Positionen von gepackten Datenelementen in dem ersten und dem zweiten Quelloperanden für gepackte Daten zu mindestens einer Multiplikatorschaltung, wobei der erste und der zweite Quelloperand für gepackte Daten eine Mehrzahl von Paaren komplexer Zahlen aufweisen, wobei jedes Paar komplexer Zahlen Datenwerte an gemeinsamen Positionen von gepackten Datenelementen in dem ersten und dem zweiten Quelloperanden für gepackte Daten aufweist; Berechnen eines reellen Teils und eines imaginären Teils eines Produkts einer ersten komplexen Zahl und einer komplexen Konjugation einer zweiten komplexen Zahl; und Speichern des reellen Teils in einer ersten Position von gepackten Datenelementen in dem Zieloperanden und Speichern des imaginären Teils in einer zweiten Position von gepackten Datenelementen in dem Zieloperanden.
Abstract:
Ein Prozessor eines Aspekts enthält eine Decodiereinheit zum Decodieren einer Matrix-Multiplikationsinstruktion. Die Matrix-Multiplikationsinstruktion soll einen ersten Speicherort einer ersten Quellenmatrix angeben, soll einen zweiten Speicherort einer zweiten Quellenmatrix angeben, und soll einen dritten Speicherort angeben, wo eine Ergebnis-Matrix gespeichert werden soll. Der Prozessor enthält außerdem eine Ausführungseinheit, die mit der Decodiereinheit gekoppelt ist. Die Ausführungseinheit dient dazu, als Reaktion auf die Matrix-Multiplikationsinstruktion einen Abschnitt der ersten und zweiten Quellenmatrizes vor einer Unterbrechung zu multiplizieren und einen Vollendungsfortschrittsindikator als Reaktion auf die Unterbrechung zu speichern. Der Vollendungsfortschrittsindikator dient zu, einen Betrag des Fortschritts beim Multiplizieren der ersten und zweiten Quellenmatrizes und des Speicherns entsprechender Ergebnisdaten an dem dritten Speicherort, das vor der Unterbrechung vollendet sein soll, anzugeben.
Abstract:
Es werden V erfahren und Vorrichtungen für Fusionsbefehle zur Bereitstellung der OR-Test- und AND-Test-Funktionalität auf mehreren Testquellen offengelegt. Einige Ausführungsformen beinhalten Holbefehle, wobei diese Befehle einen ersten Befehl, der ein erstes Ziel des Operanden angibt, einen zweiten Befehl, der eine zweite Quelle des Operanden angibt und einen dritten Befehl, der eine Verzweigungsbedingung angibt, beinhalten. Ein Teil der Vielzahl von Befehlen ist zu einer einzigen Mikro-Operation fusioniert, wobei dieser Teil sowohl den ersten als auch den zweiten Befehl umfasst, wenn das erste Operandenziel und die zweite Operandenquelle gleich sind, und die Verzweigungsbedingung vom zweiten Befehl abhängt. Einige Ausführungsformen generieren einen neuen Testbefehl dynamisch, indem sie einen logischen Befehl mit einem dem Stand der Technik entsprechenden Befehl fusionieren. Andere Ausführungsformen generieren den neuartigen Testbefehl über einen Just-In-Time-Compiler. Einige Ausführungsformen fusionieren zudem den neuartigen Testbefehl mit einem nachfolgenden bedingten Verzweigungsbefehl und führen eine Verzweigung gemäß dem gesetzten Merker durch.
Abstract:
In one embodiment a processing device implements a set of instructions to perform an inverse centrifuge operation using vector or general purpose registers. The inverse centrifuge operation interleaves bits from opposite regions of a source and writes the interleaved bits to a destination. The instructions use a control mask where each bit with a mask value of one is obtained from one side of the source register or vector elements with a mask of zero are obtained from the opposing side.
Abstract:
In several embodiments, vector extensions to an instruction set architecture include instructions to perform saturated signed and unsigned integer additions. In one embodiment, a vector signed integer add with signed saturation is provided. In one embodiment, a vector unsigned integer add with unsigned saturation is provided. In one embodiment, packed doubleword and quadword integers are supported for both signed and unsigned instructions.
Abstract:
Receive packed data operation mask comparison instruction indicating first packed data operation mask having first packed data operation mask bits and second packed data operation mask having second packed data operation mask bits. Each packed data operation mask bit of first mask corresponds to a packed data operation mask bit of second mask in corresponding position. Modify first flag to first value if bitwise AND of each packed data operation mask bit of first mask with each corresponding packed data operation mask bit of second mask is zero. Otherwise modify first flag to second value. Modify second flag to third value if bitwise AND of each packed data operation mask bit of first mask with bitwise NOT of each corresponding packed data operation mask bit of second mask is zero. Otherwise modify second flag to fourth value.
Abstract:
Las realizaciones descritas se refieren al cálculo de productos de puntos de nibbles en operandos de mosaico. En un ejemplo, una unidad de procesamiento comprende: circuitos de búsqueda para buscar una instrucción; circuitos de decodificación para decodificar la instrucción; y circuitos de ejecución acoplados con los circuitos de decodificación, los circuitos de ejecución para realizar operaciones correspondientes a la instrucción. La instrucción tiene un código de operación, un primer campo para especificar una primera ubicación de almacenamiento de una pluralidad de elementos de datos correspondientes a una primera matriz que tiene M filas por N columnas de elementos de datos de punto flotante de precisión simple de 32 bits, un segundo campo para especificar una segunda ubicación de almacenamiento de una pluralidad de elementos de datos correspondientes a una segunda matriz que tiene M filas por K columnas de elementos de datos de punto flotante de 16 bits que tienen un formato bfloat16, y un tercer campo para especificar una tercera ubicación de almacenamiento de una pluralidad de elementos de datos correspondientes a una tercera matriz que tiene K filas por N columnas de elementos de datos de punto flotante de 16 bits que tienen el formato bfloat16. El circuito de ejecución consiste en realizar operaciones correspondientes a la instrucción de, para cada fila m de las M filas de la segunda matriz, y para cada columna n de las N columnas de la tercera matriz: generar un producto escalar a partir de K elementos de datos de punto flotante de 16 bits correspondientes a la fila m de la segunda matriz y K elementos de datos de punto flotante de 16 bits correspondientes a la columna n de la tercera matriz; acumular el producto escalar con un elemento de datos de punto flotante de precisión simple de 32 bits correspondiente a una fila m de las M filas, y correspondiente a una columna n de las N columnas, de la primera matriz para generar un elemento de datos de punto flotante de precisión simple de 32 bits resultante; y almacenar el elemento de datos de punto flotante de precisión simple de 32 bits resultante en una posición de la primera ubicación de almacenamiento correspondiente a la fila m y la columna n de la primera matriz. (Traducción automática con Google Translate, sin valor legal)
Abstract:
Las realizaciones descritas se refieren a sistemas y métodos para ejecutar una instrucción de producto de punto de punto flotante. En un ejemplo, un procesador incluye un circuito de búsqueda para buscar la instrucción de producto de punto de punto flotante; una unidad de decodificación para decodificar la instrucción de producto de punto de punto flotante; y un circuito de ejecución acoplado a la unidad de decodificación. El circuito de ejecución para ejecutar la instrucción de producto de punto de punto flotante decodificada para: multiplicar elementos de datos de punto flotante de 16 bits de los pares del primer vector de origen, con elementos de datos de punto flotante de 16 bits correspondientes de los pares correspondientes del segundo vector de origen, para generar una pluralidad de pares de productos; generar una pluralidad de elementos de datos de punto flotante de precisión simple de 32 bits resultantes mediante la adición de los respectivos pares de productos con un elemento de datos de punto flotante de precisión simple de 32 bits del tercer vector de origen correspondiente a un par del primer vector de origen utilizado para generar el respectivo par de productos, y la aplicación de un modo de redondeo de punto flotante para la instrucción de producto de punto flotante; y almacenar la pluralidad de elementos de datos de punto flotante de precisión simple de 32 bits de resultado en el registro vectorial de origen/destino. (Traducción automática con Google Translate, sin valor legal)