# US 12,182,576 B2 · Executing a composite scalar-vector VLIW instruction having a repeat field

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,182,576 B2
- Document ID: US12182576B2
- Status: Granted
- Kind: B2
- Application number: 16/731,214
- Filed: 2019-12-31
- Published: 2020-05-07
- Granted: 2024-12-31
- Earliest claimed: 2016-03-31
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: Bruce M. Fleischer; Thomas Winters Fox; Arpith C. Jacob; Hans Mikael Jacobson; Ravi Nair; Kevin John Patrick O'Brien; Daniel Arthur Prener
- Web page: https://patentgrep.com/patent/US12182576B2

## CPC

- G06F 9/30036: {Instructions to perform operations on packed data, e.g. vector, tile or matrix operations}
- G06F 9/3853: {of compound instructions}
- G06F 9/30065: {Loop control instructions; iterative instructions, e.g. LOOP, REPEAT}
- G06F 9/3822: {Parallel decoding, e.g. parallel decode units}
- G06F 9/3836: {Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A processor core includes a storage device which stores a composite very large instruction word (VLIW) instruction, an instruction unit which obtains the composite VLIW instruction from the storage device and decodes the composite VLIW instruction to determine an operation to perform, and a composite VLIW instruction execution unit which executes the composite VLIW instruction to perform the operation.

## Claims

### Claim 1

A processor core comprising:
a memory which stores multiple composite very large instruction word (VLIW) instructions;
an instruction circuit which obtains the multiple composite VLIW instructions from the memory and decodes the multiple composite VLIW instructions to determine an operation to perform; and
a composite VLIW instruction execution unit which executes the multiple composite VLIW instructions to perform the operation, wherein the composite VLIW instruction execution unit comprises a detector circuit which determines whether a respective REPEAT (REP) field in each of the multiple composite VLIW instructions is REP=1 or REP>1,
wherein the multiple composite VLIW instructions comprise a first composite VLIW instruction and a second composite VLIW instruction,
wherein in response to the detector circuit determining that the REP field in the first composite VLIW instruction is REP=1, the composite VLIW instruction execution unit executes each atom in the first composite VLIW instruction at a single iteration, and
wherein in response to the detector circuit determining that the REP field in the second composite VLIW instruction comprises a value of REP>1, the composite VLIW instruction execution unit executes each vector atom of the second composite VLIW instruction for a number of iterations greater than one that is equal to the value of the REP field and executes each scalar atom of the second composite VLIW instruction for a single iteration.

### Claim 2 (depends on 1)

The processor core of claim 1, wherein the first composite VLIW instruction includes a scalar atom, and
wherein the composite VLIW instruction execution unit includes a default setting which sets an iteration at which the scalar atom of the first composite VLIW instruction is to be executed.

### Claim 3 (depends on 2)

The processor core of claim 2, wherein the scalar atom of the first composite VLIW instruction indicates an iteration at which the scalar atom of the first composite VLIW instruction is to be executed.

### Claim 4 (depends on 3)

The processor core of claim 3, wherein the first composite VLIW instruction further comprises a vector atom and a control atom,
wherein each scalar atom indicates an iteration at which the respective scalar atom is to be executed instead of the iteration set by the default setting.

### Claim 5 (depends on 1)

The processor core of claim 1, wherein the composite VLIW instruction execution unit further comprises a composite VLIW instruction execution subunit that executes each scalar atom of the second composite VLIW instruction at a respective single iteration.

### Claim 6 (depends on 5)

The processor core of claim 5, wherein the composite VLIW instruction execution subunit executes branch and control atoms of the second composite VLIW instruction at a single iteration.

### Claim 7 (depends on 6)

The processor core of claim 6, wherein the single iteration at which the composite VLIW instruction execution subunit executes the branch and control atoms of the second composite VLIW instruction comprises a last iteration.

### Claim 8 (depends on 6)

The processor core of claim 6, wherein the branch and control atoms of the second composite VLIW instruction comprise a field indicating the iteration at which the composite VLIW instruction execution subunit executes the branch and control atoms.

### Claim 9 (depends on 6)

The processor core of claim 6, wherein the composite VLIW instruction execution unit comprises an iteration setting circuit which, based on a user input:
adjusts a first default setting that sets an iteration at which the branch and control atoms of the second composite VLIW instruction are executed; and
adjusts a second default setting that sets an iteration at which each scalar atom of the second composite VLIW instruction is to be executed.

### Claim 10 (depends on 5)

The processor core of claim 5, wherein the composite VLIW instruction execution subunit executes a first scalar atom of multiple scalar atoms of the second composite VLIW instruction at a first iteration that precedes at least one other iteration.

### Claim 11 (depends on 10)

The processor core of claim 10, wherein the first scalar atom of the second composite VLIW instruction comprises a field indicating the iteration at which the composite VLIW instruction execution subunit executes the first scalar atom, and
wherein the first scalar atom and a vector atom are combined in the second composite VLIW instruction.

### Claim 12

A method of executing multiple composite very large instruction word (VLIW) instructions, the method comprising:
storing in a memory, the multiple composite VLIW instructions, wherein the multiple composite VLIW instructions comprise a first composite VLIW instruction and a second composite VLIW instruction;
obtaining the multiple composite VLIW instructions from the memory and decoding the multiple composite VLIW instructions to determine an operation to perform; and
using a composite VLIW instruction execution unit, executing the multiple composite VLIW instructions to perform the operation, wherein the composite VLIW instruction execution unit comprises a detector circuit which determines whether a respective REPEAT (REP) field in each of the multiple composite VLIW instructions is REP=1 or REP>1, and
wherein in response to the detector circuit determining that the REP field in the first composite VLIW instruction is REP=1, the composite VLIW instruction execution unit executes each atom in the first composite VLIW instruction at a single iteration, and
wherein in response to the detector circuit determining that the REP field in the second composite VLIW instruction comprises a value of REP>1, the composite VLIW instruction execution unit executes each vector atom of the second composite VLIW instruction for a number of iterations greater than one that is equal to the value of the REP field and executes each scalar atom of the second composite VLIW instruction for a single iteration.

### Claim 13 (depends on 12)

The method of claim 12, wherein the first composite VLIW instruction includes a scalar atom, and
wherein the composite VLIW instruction execution unit includes a default setting which sets an iteration at which the scalar atom of the first composite VLIW instruction is to be executed.

### Claim 14 (depends on 13)

The method of claim 13, wherein the scalar atom of the first composite VLIW instruction indicates an iteration at which the scalar atom of the first composite VLIW instruction is to be executed.

### Claim 15 (depends on 12)

The method of claim 12, further comprising:
executing branch and control atoms of the second composite VLIW instruction at a single iteration,
wherein each scalar atom indicates an iteration at which the respective scalar atom is to be executed instead of the iteration set by a default setting in the composite VLIW instruction execution unit.

### Claim 16

A programmable non-transitory storage medium tangibly embodying a program of machine-readable instructions executable by a digital processing apparatus to perform a method of executing multiple composite very large instruction word (VLIW) instructions, the method comprising:
storing in a memory, the multiple composite VLIW instructions, wherein the multiple composite VLIW instructions comprise a first composite VLIW instruction and a second composite VLIW instruction;
obtaining the multiple composite VLIW instructions from the memory and decoding the multiple composite VLIW instructions to determine an operation to perform; and
using a composite VLIW instruction execution unit, executing the multiple composite VLIW instructions to perform the operation, wherein the composite VLIW instruction execution unit comprises a detector circuit which determines whether a respective REPEAT (REP) field in each of the multiple composite VLIW instructions is REP=1 or REP>1,
wherein in response to the detector circuit determining that the REP field in the first composite VLIW instruction is REP=1, the composite VLIW instruction execution unit executes each atom in the first composite VLIW instruction at a single iteration, and
wherein in response to the detector circuit determining that the REP field in the second composite VLIW instruction comprises a value of REP>1, the composite VLIW instruction execution unit executes each vector atom of the second composite VLIW instruction for a number of iterations greater than one that is equal to the value of the REP field and executes each scalar atom of the second composite VLIW instruction for a single iteration.

### Claim 17 (depends on 16)

The programmable storage medium of claim 16, wherein the first composite VLIW instruction includes a scalar atom, and
wherein the composite VLIW instruction execution unit includes a default setting which sets an iteration at which the scalar atom of the first composite VLIW instruction is to be executed.

### Claim 18 (depends on 17)

The programmable storage medium of claim 17, wherein the scalar atom of the first composite VLIW instruction indicates an iteration at which the scalar atom of the first composite VLIW instruction is to be executed.

### Claim 19 (depends on 17)

The programmable storage medium of claim 17, wherein the method further comprises executing branch and control atoms of the second composite VLIW instruction at a single iteration, and
wherein each of the branch and control atoms indicates an iteration at which the respective branch and control atom is to be executed instead of an iteration set by the default setting.
