Encoding instructions identifying first and second architectural register numbers

US10331449B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10331449-B2
Application numberUS-201615003828-A
CountryUS
Kind codeB2
Filing dateJan 22, 2016
Priority dateJan 22, 2016
Publication dateJun 25, 2019
Grant dateJun 25, 2019

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Various encoding schemes are discussed for more efficiently encoding instructions which identify first and second architectural register numbers. In the first example, by constraining the first architectural register number to be greater than the second architectural register number, this frees up encodings for use in encoding other operations. In a second example, the first and second architectural register numbers may take any value but one of a first type of processing operation and a second type of processing operation is selected depending on a comparison of the first and second architectural register numbers.

First claim

Opening claim text (preview).

We claim: 1. An apparatus comprising: a plurality of registers to store data values; and processing circuitry to perform processing operations in response to instructions; wherein in response to one of a first class of instructions identifying first and second architectural register numbers, the processing circuitry is configured to perform a corresponding processing operation using first and second registers corresponding to the first and second architectural register numbers; and instructions of said first class of instructions have an instruction encoding which constrains said first architectural register number to be greater than said second architectural register number; and wherein the processing circuitry is configured to process instructions according to an instruction set architecture providing 2 N architectural registers, and in said first class of instructions, the first and second architectural register numbers are represented using only 2N−1 bits of the instruction encoding. 2. The apparatus according to claim 1 , wherein said first class of instructions includes at least one commutative instruction for which the corresponding processing operation is a commutative operation. 3. The apparatus according to claim 1 , wherein said first class of instructions includes at least one non-commutative instruction for which the corresponding processing operation is a non-commutative operation. 4. The apparatus according to claim 1 , wherein said first class of instructions includes at least one pair of complementary non-commutative instructions corresponding to the same type of non-commutative operation applied to first and second operands stored in the first and second registers, where for each pair, one instruction of the pair is for controlling the processing circuitry to perform the non-commutative operation with the first and second operands in a different order to the other instruction of the pair. 5. The apparatus according to claim 1 , wherein said first class of instructions includes at least one register range specifying instruction for controlling the processing circuitry to perform a processing operation using a plurality of registers corresponding to architectural register numbers in a continuous range between the first architectural register number and the second architectural register number. 6. The apparatus according to claim 1 , comprising register decoding circuitry to decode the instruction encoding of the first class of instructions to identify the first and second architectural register numbers. 7. The apparatus according to claim 1 , wherein the instruction encoding of said first class of instructions includes an opcode field and a plurality of register identifying bits representing the first and second architectural register numbers according to a predetermined encoding scheme for which a plurality of spare bit patterns of said plurality of register identifying bits do not correspond to any valid combination of the first and second architectural register numbers for which the first architectural register number is greater than the second architectural register number; the instruction set architecture comprises a second class of instructions having an instruction encoding comprising said opcode field and said plurality of register identifying bits, for which said plurality of register identifying bits have one of said spare bit patterns; and in response to one of said second class of instructions, the processing circuitry is configured to interpret the opcode field of the instruction differently to an identical opcode field of one of said first class of instructions. 8. The apparatus according to claim 7 , wherein the second class of instructions comprises at least one instruction identifying a single source architectural register number for controlling the processing circuitry to perform a corresponding processing operation using a register identified by said single source architectural register number. 9. The apparatus according to claim 8 , wherein the single source architectural register number is represented in the instruction encoding of the at least one instruction of the second class using a subset of the register identifying bits and a bit of the opcode field. 10. The apparatus according to claim 1 , wherein the instruction encoding of the first class of instructions comprises: a first register field dependent on the first architectural register number when a most significant bit of the second architectural register number is 0, and dependent on a result of inverting all bits of the first architectural register number when a most significant bit of the second architectural register number is 1; and a second register field having a value dependent on remaining bits of the second architectural register number other than the most significant bit of the second architectural register number. 11. The apparatus according to claim 10 , wherein the second register field has a value dependent on a result of a bitwise exclusive OR of said remaining bits of the second architectural register number with corresponding bits of the first architectural register number. 12. The apparatus according to claim 10 , wherein the second register field has a value dependent on the remaining bits of the second architectural register number when the most significant bit of the second architectural register number is 0, and dependent on a result of inverting the remaining bits of the second architectural register number when a most significant bit of the second architectural register number is 1. 13. A computer-readable storage medium storing a computer program for controlling a computer to provide a virtual machine execution environment corresponding to the apparatus according to claim 1 . 14. A data processing method, comprising: controlling processing circuitry to perform processing operations in response to instructions; wherein in response to one of a first class of instructions identifying first and second architectural register numbers, the processing circuitry is controlled to perform a corresponding processing operation using first and second registers corresponding to the first and second architectural register numbers; and instructions of said first class of instructions have an instruction encoding which constrains said first architectural register number to be greater than said second architectural register number; wherein the processing circuitry is configured to process instructions according to an instruction set architecture providing 2 N architectural registers, and in said first class of instructions, the first and second architectural register numbers are represented using only 2N−1 bits of the instruction encoding.

Assignees

Inventors

Classifications

  • Register renaming · CPC title

  • G06F9/3016Primary

    Decoding the operand specifier, e.g. specifier format · CPC title

  • Special purpose encoding of instructions, e.g. Gray coding · CPC title

  • Organisation of register space, e.g. banked or distributed register file · CPC title

  • of compressed or encrypted instructions · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US10331449B2 cover?
Various encoding schemes are discussed for more efficiently encoding instructions which identify first and second architectural register numbers. In the first example, by constraining the first architectural register number to be greater than the second architectural register number, this frees up encodings for use in encoding other operations. In a second example, the first and second architec…
Who is the assignee on this patent?
Advanced Risc Mach Ltd
What technology area does this patent fall under?
Primary CPC classification G06F9/3016. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jun 25 2019 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 1 related publication on this page (citations in our corpus or others sharing the same primary CPC).