Einrichtung und Verfahren zum Multiplizieren, Addieren/Subtrahieren und Akkumulieren von gepackten Datenelementen

    公开(公告)号:DE102018006798A1

    公开(公告)日:2019-04-04

    申请号:DE102018006798

    申请日:2018-08-28

    Applicant: INTEL CORP

    Abstract: Eine Einrichtung und ein Verfahren zum Durchführen von dualen gleichzeitigen Multiplikationen, Subtraktion/Addition und Akkumulation von gepackten Datenelementen. Zum Beispiel weist eine Ausführungsform eines Prozessors Folgendes auf: einen Decodierer zum Decodieren eines Befehls zum Erzeugen eines decodierten Befehls; ein erstes Quellregister zum Speichern von ersten und zweiten gepackten Datenelementen; ein zweites Quellregister zum Speichern von dritten und vierten gepackten Datenelementen; eine Ausführungsschaltung zum Ausführen des decodierten Befehls, wobei die Ausführungsschaltung Folgendes aufweist: eine Multiplikatorschaltung zum Multiplizieren der ersten und dritten gepackten Datenelemente zum Erzeugen eines ersten temporären Produkts und zum gleichzeitigen Multiplizieren der zweiten und vierten gepackten Datenelemente zum Erzeugen eines zweiten temporären Produkts, wobei die ersten bis vierten gepackten Datenelemente alle eine erste Breite aufweisen; eine Schaltung zum Negieren des ersten temporären Produkts zum Erzeugen eines negierten ersten Produkts; eine Addiererschaltung zum Hinzufügen des ersten negierten Produkts zu einem ersten akkumulierten gepackten Datenelement von einem dritten Quellregister zum Erzeugen eines ersten Ergebnisses, wobei das erste Ergebnis eine zweite Breite aufweist, welche mindestens doppelt so groß wie die erste Breite ist; wobei die Addiererschaltung gleichzeitig das zweite temporäre Produkt zu einem zweiten akkumulierten gepackten Datenelement hinzufügt, um ein zweites Ergebnis mit der zweiten Breite zu erzeugen; wobei das erste und zweite Ergebnis in einer bestimmten ersten und zweiten Datenelementposition innerhalb eines Zielregisters gespeichert werden.

    ARCHITEKTURREGISTERAUSTAUSCH FÜR ANWEISUNGEN, DIE MEHRERE ARCHITEKTURREGISTER VERWENDEN

    公开(公告)号:DE112017003337T5

    公开(公告)日:2019-03-14

    申请号:DE112017003337

    申请日:2017-06-01

    Applicant: INTEL CORP

    Abstract: Ein Prozessor eines Aspekts enthält eine Decodiereinheit zum Decodieren einer Anweisung. Die Anweisung soll explizit ein erstes Architekturregister spezifizieren und implizit zumindest ein zweites Architekturregister angeben. Das zweite Architekturregister soll implizit eine höhere Registerzahl aufweisen als das erste Architekturregister. Der Prozessor enthält auch eine Architekturregisteraustauscheinheit, die mit der Decodiereinheit gekoppelt ist. Die Architekturregisteraustauscheinheit soll das erste Architekturregister durch ein drittes Architekturregister tauschen und soll das zweite Architekturregister durch ein viertes Architekturregister tauschen. Das dritte Architekturregister soll eine niedrigere Registerzahl aufweisen als das erste Architekturregister. Das vierte Architekturregister soll eine niedrigere Registerzahl aufweisen als das zweite Architekturregister. Es sind auch andere Prozessoren wie auch Verfahren und Systeme offenbart.

    METHODS, APPARATUS, INSTRUCTIONS AND LOGIC TO PROVIDE VECTOR PACKED TUPLE CROSS-COMPARISON FUNCTIONALITY

    公开(公告)号:SG11201704466QA

    公开(公告)日:2017-07-28

    申请号:SG11201704466Q

    申请日:2015-12-14

    Applicant: INTEL CORP

    Abstract: Instructions and logic provide SIMD vector packed tuple cross-comparison functionality. Some processor embodiments include first and second registers with a variable plurality of data fields, each of the data fields to store an element of a first data type. The processor executes a SIMD instruction for vector packed tuple cross-comparison in some embodiments, which for each data field of a portion of data fields in a tuple of the first register, compares its corresponding element with every element of a corresponding portion of data fields in a tuple of the second register and sets a mask bit corresponding to each element of the second register portion, in a bit-mask corresponding to each unmasked element of the corresponding first register portion, according to the corresponding comparison. In some embodiments bit-masks are shifted by corresponding elements in data fields of a third register. The comparison type is indicated by an immediate operand.

    Instruções de fusíveis e lógica para fornecer o teste-or e/ou o teste-and de funcionalidade usando várias fontes de teste

    公开(公告)号:BR102014005800A2

    公开(公告)日:2015-08-25

    申请号:BR102014005800

    申请日:2014-03-13

    Applicant: INTEL CORP

    Abstract: Instruções de fusíveis e lógica para fornecer o teste-or e/ou o teste-and de funcionalidade usando várias fontes de teste. Instruções fusíveis e lógica podem fornecer teste-ar e teste-and de funcionalidade usando várias fontes de teste. Algumas formas de realização incluem uma etapa de decodificação do processador para decodificar uma instrução de teste para a execução, a instrução especificando primeiro, segundo e terceiro operandos de dados de origem, e um tipo de operação. As unidades de execução, que respondem às instruções de teste descodificados, executam uma operação lógica, de acordo com o tipo de operação especificada, entre os dados dos primeiros e segundos operandos de dados de origem, e executam uma segunda operação lógica entre os dados da terceira fonte de dados operando e o resultado da primeira operação lógica para definir um flag de estado. Algumas realizações geram a instrução de teste de forma dinâmica por meio da fusão uma instrução lógica com uma instrução de teste de estado de técnica. Outras realizações geram a instrução de teste de forma dinâmica através do compilador jit. Algumas formas de realização também fundem a instrução de teste com uma instrução de desvio condicional posterior e realizam um desvio de acordo com o modo em que a flag de estado esteja definida.

    METHODS AND APPARATUS FOR FUSING INSTRUCTIONS TO PROVIDE OR-TEST AND AND-TEST FUNCTIONALITY ON MULTIPLE TEST SOURCES

    公开(公告)号:IN859CH2014A

    公开(公告)日:2015-04-24

    申请号:IN859CH2014

    申请日:2014-02-21

    Applicant: INTEL CORP

    Abstract: Methods and apparatus are disclosed for fusing instructions to provide OR-test and AND-test functionality on multiple test sources. Some embodiments include fetching instructions, said instructions including a first instruction specifying a first operand destination, a second instruction specifying a second operand source, and a third instruction specifying a branch condition. A portion of the plurality of instructions are fused into a single micro-operation, the portion including both the first and second instructions if said first operand destination and said second operand source are the same, and said branch condition is dependent upon the second instruction. Some embodiments generate a novel test instruction dynamically by fusing one logical instruction with a prior-art test instruction. Other embodiments generate the novel test instruction through a just-in-time compiler. Some embodiments also fuse the novel test instruction with a subsequent conditional branch instruction, and perform a branch according to how the condition flag is set.

    Fusible instructions and logic to provide or-test and and-test functionality using multiple test sources

    公开(公告)号:GB2512725A

    公开(公告)日:2014-10-08

    申请号:GB201402853

    申请日:2014-02-18

    Applicant: INTEL CORP

    Abstract: Instruction queue 1511 by a fetch stage specifies test instructions TEST2, e.g. AND test or OR-test, and jump-condition-code JCC. TEST 2 fuses a logical AND or OR operation type acting on a first and second source data operand with prior art test instruction for comparing the results of the logical operation against a mask in a third data operand. An execution stage responsive to a decode stage performs the logical operation between first and second operands (where AND or OR tests whether the bits in either source are zero or one, respectively) and compares the results to the mask to set a condition flag CC. Conditional branching JCC, e.g. branching to a slower generic code sequence, is executed depending on the flag. TEST2 and JCC can be fused for execution as a single micro instruction 1526. Performance for frequently executed type testing instruction idioms generated by just-in-time (JIT) compilers is improved.

    50.
    发明专利
    未知

    公开(公告)号:ES3013609T3

    公开(公告)日:2025-04-14

    申请号:ES20216494

    申请日:2019-10-08

    Applicant: INTEL CORP

    Abstract: Las realizaciones descritas se refieren a un procesador, un sistema en un chip y un sistema para ejecutar una instrucción de conversión de formato. En un ejemplo, un procesador que tiene una pluralidad de núcleos, incluido un núcleo que, en respuesta a una instrucción de conversión de formato que tiene un primer operando de origen que incluye un primer elemento de datos de punto flotante de precisión simple de 32 bits y un segundo operando de origen que incluye un segundo elemento de datos de punto flotante de precisión simple de 32 bits, debe: convertir el primer elemento de datos de punto flotante de precisión simple de 32 bits en un primer elemento de datos de punto flotante de 16 bits, en donde, cuando el primer elemento de datos de punto flotante de precisión simple de 32 bits es un elemento de datos normal, la conversión se debe realizar de acuerdo con un modo de redondeo especificado por la instrucción de conversión de formato, y el primer elemento de datos de punto flotante de 16 bits debe tener un bit de signo, un exponente de 8 bits, siete bits de mantisa explícitos y un bit de mantisa implícito, y en donde, cuando el primer elemento de datos de punto flotante de precisión simple de 32 bits es un elemento de datos que no es un número, NaN, el primer elemento de datos de punto flotante de 16 bits debe tener una mantisa con un máximo bit significativo establecido en uno; convertir el segundo elemento de datos de punto flotante de precisión simple de 32 bits en un segundo elemento de datos de punto flotante de 16 bits, donde, cuando el segundo elemento de datos de punto flotante de precisión simple de 32 bits es un elemento de datos normal, la conversión se debe realizar de acuerdo con el modo de redondeo, y el segundo elemento de datos de punto flotante de 16 bits debe tener un bit de signo, un exponente de 8 bits, siete bits de mantisa explícitos y un bit de mantisa implícito, y donde cuando el segundo elemento de datos de punto flotante de precisión simple de 32 bits es un elemento de datos NaN, el segundo elemento de datos de punto flotante de 16 bits debe tener una mantisa con un bit más significativo establecido en uno; y almacenar el primer elemento de datos de punto flotante de 16 bits en una mitad de orden inferior de un registro de destino y el segundo elemento de datos de punto flotante de 16 bits en una mitad de orden superior del registro de destino. (Traducción automática con Google Translate, sin valor legal)

Patent Agency Ranking