# US 10,503,503 B2 · Generating design structure for microprocessor with arithmetic logic units and an efficiency logic unit

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

- Number: US 10,503,503 B2
- Document ID: US10503503B2
- Status: Granted
- Kind: B2
- Application number: 14/865,555
- Filed: 2015-09-25
- Published: 2016-05-26
- Granted: 2019-12-10
- Earliest claimed: 2014-11-26
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: Avraham Ayzenfeld; Lee E. Eisen; Brian W. Curran; Christian Jacobi
- Web page: https://patentgrep.com/patent/US10503503B2

## CPC

- G06F 9/3001: {Arithmetic instructions}
- G06F 9/30141: {Implementation provisions of register files, e.g. ports}
- G06F 9/3824: {Operand accessing}
- G06F 9/3836: {Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution}
- G06F 30/30: Circuit design
- G06F 2115/10: Processors
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A method in a computer-aided design system for generating a functional design model of a processor, is described herein. The method comprises generating a functional representation of logic to determine whether an instruction is an updating instruction or a non-updating instruction. The method further comprises generating a functional representation of a first arithmetic logic unit (ALU) coupled to a general register in the processor, the first ALU to execute the instruction if the instruction is an updating instruction and store an update value in the general register, and generating a functional representation of a second ALU in the processor to execute the instruction if the instruction is a non-updating instruction.

## Claims

### Claim 1

A method in a computer-aided design system for generating a functional design model of a processor, said method comprising:
generating a functional representation of an efficiency logic unit in the processor to receive an instruction and determine whether the instruction is an updating fixed point instruction or a non-updating fixed point instruction based on a number of general registers to be used to execute the instruction;
wherein the efficiency logic is to compare the instruction to a predetermined list or table of instructions that indicates that a first arithmetic logic unit (ALU) or a second ALU executes each of the instructions; and
generating a functional representation of the first ALU coupled to the efficiency logic unit and the first ALU coupled to the general registers in the processor to read data from the general registers and write data to the general registers, wherein the efficiency logic unit is to receive and execute the instruction, and, if the instruction is the updating fixed point instruction, store an update value in a general register coupled to the first ALU; and
generating a functional representation of the second ALU, the efficiency logic unit and the second ALU coupled to the general registers in the processor to only read data from a general register file and the efficiency logic unit to receive and fully execute the instruction only if the instruction is the non-updating fixed point instruction, wherein the non-updating fixed point instruction belongs to a set of non-updating fixed point instructions comprising an arithmetic operation.

### Claim 2 (depends on 1)

The method of claim 1, wherein the updating and the non-updating fixed point instructions to be executed in parallel.

### Claim 3 (depends on 1)

The method of claim 1, wherein the updating and non-updating fixed point instructions comprise fixed point arithmetic instructions.

### Claim 4 (depends on 1)

The method of claim 1, wherein the updating fixed point instruction comprises an arithmetic instruction.

### Claim 5 (depends on 1)

The method of claim 1, wherein the set of non-updating fixed point instructions also comprises comparing instructions that generate internal updates of configuration registers from a general register array, moving a value of configuration registers to the general register array.

### Claim 6 (depends on 1)

The method of claim 1, wherein the set of non-updating fixed point instructions also comprises comparing instructions that generate a condition code or branch addresses.
