# US 11,106,432 B2 · Execution unit in processor

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

- Number: US 11,106,432 B2
- Document ID: US11106432B2
- Status: Granted
- Kind: B2
- Application number: 16/427,794
- Filed: 2019-05-31
- Published: 2020-09-17
- Granted: 2021-08-31
- Earliest claimed: 2019-03-11
- Assignees: Graphcore Limited
- Applicants: Graphcore Limited
- Inventors: Jonathan Mangnall; Stephen Felix
- Web page: https://patentgrep.com/patent/US11106432B2

## CPC

- G06F 7/556: Logarithmic or exponential functions
- G06F 9/30014: {with variable precision}
- G06F 7/483: Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers {(G06F7/4806, G06F7/4824, G06F7/49, G06F7/491, G06F7/544 take precedence)}
- G06F 7/52: Multiplying; Dividing (G06F7/483 - G06F7/491, G06F7/544 take precedence)
- G06F 9/3001: {Arithmetic instructions}
- G06F 9/3851: {from multiple instruction streams, e.g. multistreaming}
- G06N 3/063: using electronic means
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G06N: COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS

## Abstract

An execution unit is described which is particularly configured to generate an exponential of an operand floating point format. The operand is multiplied by a fixed multiplicand, logged to the base 2 (e) to generate a multiplication result. An integer part and a fractional part are extracted from the multiplication result. An exponent register stores the integer part to form the exponent of the exponential result. A lookup table has a plurality of entries each providing a value of 2f for a fractional part f used to access a lookup table. The fractional part is derived from a mantissa of the operand. That is, first and second bit sequences are extracted from the mantissa. One of the bit sequences is used to generate an estimated fractional component, and the other is used to access a value from the lookup table.

## Claims

### Claim 1

An execution unit for a processor, the execution unit comprising:
at least one multiplier circuit having first and second inputs, and configured to perform a multiplication operation;
control circuitry configured to supply an operand as a first input value at the first input and a fixed multiplicand, log 2(e), as a second input value at the second input and to extract an integer part and a fractional part from a first multiplication result of the multiplication operation, the operand being a number in floating point format;
an exponent register for storing the integer part as an exponent of the first multiplication result;
a look up table having a plurality of entries each of which are accessible by a bit sequence representing a fractional part f to provide a corresponding value of 2f;
a preparatory circuit configured to extract at least first and second bit sequences from a mantissa of the operand, to generate an estimated fractional component from the first bit sequence, and to use the second bit sequence to access a value from the look up table;
the control circuitry further configured to supply the 2f value at the first input of the at least one multiplier circuit and the estimated fractional component at the second input of the at least one multiplier circuit to generate a second multiplication result which constitutes the mantissa of an exponential of the operand.

### Claim 2 (depends on 1)

An execution unit according to claim 1, wherein the floating point format is half precision and wherein only first and second bit sequences are extracted from the mantissa of the operand.

### Claim 3 (depends on 1)

An execution unit according to claim 1, wherein the floating point format is single precision, and wherein more than first and second bit sequences are extracted from the mantissa of the operand.

### Claim 4 (depends on 3)

An execution unit according to claim 3, wherein four bit sequences are extracted from the mantissa of the operand.

### Claim 5 (depends on 1)

An execution unit according to claim 1, wherein the first and second bit sequences are of different lengths.

### Claim 6 (depends on 3)

An execution unit according to claim 3, comprising a plurality of look up tables, each look up table configured to be accessed by a respective bit sequence, wherein the number of entries in each look up table depends on an order of significance of the respective bit sequence in the mantissa.

### Claim 7 (depends on 1)

An execution unit according to claim 1, comprising three multiplier circuits wherein first and second of the three multiplier circuits are configured to execute a multiplication in the same stage of a pipeline, and wherein a third of the three multiplier circuits is arranged to execute a multiplication in a subsequent stage of the pipeline.

### Claim 8 (depends on 1)

An execution unit according to claim 1, wherein the mantissa of the exponential is an extended mantissa relative to a mantissa length in a half precision or single precision format.

### Claim 9 (depends on 1)

An execution unit according to claim 1, comprising a circuit for extracting the mantissa from the input floating point number and a packing circuit for combining the mantissa of the exponential with the exponent of the exponential.

### Claim 10 (depends on 1)

An execution unit according to claim 1, wherein the preparatory circuit is configured to generate an estimate of the estimated fractional component from the first bit sequence by multiplying the first bit sequence by ln2 to generate a third multiplication result and incrementing the third multiplication result by 1.

### Claim 11

A method of operating an execution unit in a processor, the method comprising:
supplying to at least one multiplier circuit of the execution unit an operand defined by an instruction and a fixed multiplicand log 2(e) to generate a first multiplication result, the operand being a number in floating point format;
extracting an integer part and a fractional part from the first multiplication result;
storing the integer part in an exponent register;
extracting at least first and second bit sequences from a mantissa of the operand;
generating an estimated fractional component from at least the first bit sequence; and
supplying at least the second bit sequence to a look up table having a plurality of entries each of which are accessible by a bit sequence representing a fractional component f and providing a value of 2f; and
supplying the accessed 2f value as a first input value to the at least one multiplier circuit, and the estimated fractional component as a second input value to the at least one multiplier circuit and generating a second multiplication result representing the mantissa of the exponential of the operand, wherein the integer part represents the exponent of the exponential.

### Claim 12 (depends on 11)

A method according to claim 11, wherein the floating point format is half precision and the step of extracting at least first and second bit sequences from the mantissa of the operand comprises extracting only first and second bit sequences from the operand.

### Claim 13 (depends on 11)

A method according to claim 11 wherein the floating point format is single precision and wherein the step of extracting at least first and second bit sequences from the mantissa of the operand comprises extracting more than first and second bit sequences.

### Claim 14 (depends on 13)

A method according to claim 13 comprising the step of extracting four bit sequences from the mantissa of the operand.

### Claim 15 (depends on 11)

A method according to claim 11, wherein the at least first and second bit sequences are of different lengths.

### Claim 16 (depends on 15)

A method according to claim 15, wherein the second bit sequence is longer than the first bit sequence.

### Claim 17 (depends on 11)

A method according to claim 11, comprising the step of multiplying the number in floating point format by a fixed value having an extended mantissa length relative to a mantissa length in the half precision or single precision format.

### Claim 18 (depends on 11)

A method according to claim 11, wherein the step of generating the estimated fractional component comprises multiplying the first bit sequence by ln 2 to generate a third multiplication result and incrementing the third multiplication result by 1.
