Predicated read instructions
US-2017083320-A1 · Mar 23, 2017 · US
US10936316B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-10936316-B2 |
| Application number | US-201615013842-A |
| Country | US |
| Kind code | B2 |
| Filing date | Feb 2, 2016 |
| Priority date | Sep 19, 2015 |
| Publication date | Mar 2, 2021 |
| Grant date | Mar 2, 2021 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
Apparatus and methods are disclosed for controlling execution of memory access instructions in a block-based processor architecture using an instruction decoder that decodes instructions having variable numbers of target operands. In one example of the disclosed technology, a block-based processor core includes an instruction decoder configured to decode target operands for an instruction in an instruction block, the instruction being encoded to allow for a variable number of target operands and a control unit configured to send data for at least one of the decoded target operands for an operation performed by the at least one of the cores. In some examples, the instruction indicates target instructions with a vector encoding. In other examples, a variable length format allows for the indication of one or more targets.
Opening claim text (preview).
We claim: 1. An apparatus comprising one or more processor cores, at least one of the cores comprising: instruction cache or main memory storing a variable-length format instruction encoded as a first word stored in the memory at a first memory location, the variable-length format instruction having an opcode field indicating the instruction's operation, an extended opcode field indicating a number of the instruction's target operand fields, and at least one target operand field encoded in a second word at a second, different location in the memory subsequent to the first word; an instruction decoder configured to fetch the first word from the first memory location, and decode the instruction's operation from the opcode field and the number of the instruction's target operand fields from the extended opcode field, and based on the number of the instruction's target operand fields indicated by the decoded extended opcode field, fetch and decode the at least one target operand field from the second, different location in the instruction cache or main memory subsequent to the first word; and a control unit configured to send result data from performing the operation indicated by the opcode field for each of the decoded target operands for an operation specified by at least one instruction receiving the data sent for each of the decoded target operands. 2. The apparatus of claim 1 , further comprising an execution unit configured to perform the operation using the at least one of the decoded operands. 3. The apparatus of claim 1 , wherein the instruction is encoded with a variable number of instruction targets indicating instruction identifiers for the target operands. 4. The apparatus of claim 1 , wherein the instruction is encoded with a bit vector indicating the instruction targets. 5. The apparatus of claim 1 , wherein one or more types of the target operands are selected from the group consisting of the following: an identifier of another instruction, a global register, a broadcast channel, and a memory address. 6. The apparatus of claim 1 , wherein at least one of the target operands indicates a predicate operand, a right operand, or a left operand for an operation performed by a target instruction. 7. The apparatus of claim 1 , wherein the decoder is configured to determine a target instruction to receive target operand data based at least in part on position of the instruction within the instruction cache or main memory. 8. The apparatus of claim 1 , wherein the decoder is configured to decode the target operands based on an extended opcode encoded in a different word of the instruction cache or main memory. 9. The apparatus of claim 1 , wherein the decoder is configured to decode the instruction as a fixed-length instruction or a variable number of target instruction based at least in part on an opcode for the instruction encoded in the instruction cache or main memory. 10. The apparatus of claim 1 , wherein at least one of the target operand fields is a memory address. 11. A method comprising: fetching and decoding a native, first instruction stored at a first address in an instruction cache or main memory coupled to a processor, the first instruction being encoded in one word of the instruction cache or main memory, the one word of the instruction cache or main memory including an opcode field encoding an opcode specifying an operation performed by the instruction and at least one target operand field specifying a target for sending a result of performing the specified operation; executing the first instruction by performing the operation and sending the result to a target specified by the at least one target operand field; fetching and decoding a native, second instruction stored at a different, second address in the instruction cache or main memory coupled to the processor, the second instruction being encoded in two words of the instruction cache or main memory, the first word of the two words including an opcode field encoding the same opcode as the first instruction specifying the same operation as performed by the first instruction and an extended opcode indicating that a target operand is encoded in a second word of the two words of the instruction cache or main memory, the second word specifying at least one extended target for sending a result of the operation associated with the second instruction; based on decoding the extended opcode, decoding the target operand encoded in the second word; and executing the second instruction by performing the operation and sending the result to the specified at least one extended target. 12. The method of claim 11 , wherein the decoding comprises: determining the at least one target based at least in part on a relative location of the decoded instruction within the instruction cache or main memory and/or a relative location of the decoded instruction within a portion of the instruction cache or main memory. 13. The method of claim 11 , wherein the decoding comprises: determining the specified at least one target based at least in part on a vector. 14. The method of claim 11 , wherein the decoding comprises: decoding data indicating a number of target operands having a particular type; and determining target locations to send data for the target operands of the particular type. 15. The method of claim 11 , wherein the decoding comprises: determining types of target instruction operands, the types being selected from the group consisting of: target instruction, broadcast channel, register, and memory. 16. The method of claim 11 , wherein the instruction is a register read. 17. The method of claim 11 , wherein the second, different word may be optionally encoded for a native instruction having the same opcode. 18. The method of claim 11 , wherein the first instruction further includes a first field specifying the number of target operand fields in the first instruction, and the second instruction includes a second field specifying the number of target operand fields in the second instruction, the first and second fields specifying different numbers of target operand fields. 19. One or more computer-readable storage media storing computer-readable instructions for an instruction block that when executed by a processor, cause the processor to perform a method, the computer-readable instructions comprising: instructions for analyzing source code and/or object code to determine operand dependencies for the instruction block; and instructions for transforming the source code and/or object code into computer-executable code for the instruction block, the computer-executable code including: a first native instruction encoded in a variable-length format stored in the instruction block as a single word having a predetermined number of bits, the first native instruction having an opcode encoded in a fixed opcode field location and at least one encoded target operand field, and a second native instruction encoded in the variable-length format stored in the instruction block as a plurality of words, each of the words having the same predetermined number of bits, the second native instruction having the same opcode encoded in the fixed opcode field and a different number of at least two encoded target operand fields in the plurality of words. 20. The computer-readable storage media of claim 19 , wherein the instructions further comprise: instructions for assigning priorities to the target operands of the second native instruction; and instructions for arranging
Energy efficient computing, e.g. low power processors, power management or thermal management · CPC title
from multiple instruction streams, e.g. multistreaming · CPC title
Conditional branch instructions · CPC title
to perform operations for flow control · CPC title
Instructions to perform operations on packed data, e.g. vector, tile or matrix operations · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.