# US 2001/0027461 A1 · Seed rom for reciprocal computation

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

- Number: US 2001/0027461 A1
- Document ID: US20010027461A1
- Status: Published application
- Kind: A1
- Application number: 09/867,851
- Filed: 2001-05-29
- Published: 2001-10-04
- Earliest claimed: 1995-08-22
- Assignees: Micron Technology, Inc.
- Inventors: James R. Peterson
- Web page: https://patentgrep.com/patent/US20010027461A1

## CPC

- G06F 7/535: Dividing only
- G06F 2207/5356: Via reciprocal, i.e. calculate reciprocal only, or calculate reciprocal first and then the quotient from the reciprocal and the numerator
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A method and apparatus for performing a divide operation in a computer are described. The apparatus includes a first memory containing estimated reciprocal terms, and a second memory containing reciprocal error terms. An adder adds a selected estimated reciprocal term from the first memory and a selected reciprocal error term from the second memory to provide the reciprocal. The selected estimated reciprocal term and the selected reciprocal error term correspond to at least a portion of a divisor. The apparatus includes a multiplier for multiplying a dividend by the reciprocal to generate a quotient. The method includes the step of looking up an estimated reciprocal term in a first lookup table stored in a first computer memory wherein the estimated reciprocal term corresponds to at least a portion of a given divisor. A reciprocal error term is looked up in a second lookup table stored in a second computer memory, the error term corresponds to at least a portion of the divisor. A reciprocal of the divisor is generated from the estimated reciprocal term and the error term. A dividend is multiplied by the reciprocal of the divisor to generate a quotient.

## Claims

### Claim 1

A method of computing a reciprocal of an operand comprising the steps of:
a) looking up an estimated reciprocal term in a first lookup table stored in a first computer memory, wherein the estimated reciprocal term corresponds to at least a portion of the operand;
b) looking up an error term in a second lookup table stored in a second computer memory, wherein the estimated error term corresponds to at least a portion of the operand;
c) generating the reciprocal from the estimated reciprocal term and the error term.

### Claim 2 (depends on 1)

The method of claim 1 wherein at least one of the first and second computer memories is a nonvolatile memory.

### Claim 3 (depends on 2)

The method of claim 2 wherein the nonvolatile memory comprises read only memory.

### Claim 4 (depends on 2)

The method of claim 2 wherein the nonvolatile memory comprises logic gates.

### Claim 5 (depends on 1)

The method of claim 1 wherein the step of generating the reciprocal further comprises the step of adding the estimated reciprocal term and the error term.

### Claim 6 (depends on 1)

The method of claim 1 wherein entries of the first lookup table are determined by the steps of:
1) computing an actual reciprocal for each input operand value that shares a same first lookup table entry;
2) computing an estimated reciprocal that is less than or equal to all of the actual reciprocals; and
3) repeating steps 1) and 2) for each first lookup table entry.

### Claim 7 (depends on 1)

The method of claim 1 wherein entries of the second lookup table are determined by the steps of:
1) computing an actual reciprocal for each operand value that shares a same second lookup table entry;
2) selecting a reciprocal error term such that for each group of estimated reciprocals that shares a same reciprocal error term the reciprocal error plus the estimated reciprocal is less than or equal to the actual reciprocal; and
3) repeating steps 1) and 2) for each second lookup table entry.

### Claim 8

A method of performing a divide operation in a computer comprising the steps of:
a) looking up an estimated reciprocal term in a first lookup table stored in a first computer memory, the estimated reciprocal term corresponds to at least a portion of a given divisor;
b) looking up an error term in a second lookup table stored in a second computer memory, the error term corresponds to at least a portion of the divisor;
c) generating a reciprocal of the divisor from the estimated reciprocal term and the error term;
d) multiplying a dividend by the reciprocal of the divisor to generate a quotient.

### Claim 9 (depends on 8)

The method of claim 8 wherein at least one of the first and second computer memories is a nonvolatile memory.

### Claim 10 (depends on 9)

The method of claim 9 wherein the nonvolatile memory comprises read only memory.

### Claim 11 (depends on 9)

The method of claim 9 wherein the nonvolatile memory comprises logic gates.

### Claim 12 (depends on 8)

The method of claim 8 wherein the step of generating the reciprocal further comprises the step of adding the estimated reciprocal term and the error term.

### Claim 13 (depends on 8)

The method of claim 8 wherein entries of the first lookup table are determined by the steps of:
1) computing an actual reciprocal for each input operand value that shares a same first lookup table entry;
2) computing an estimated reciprocal that is less than or equal to all of the actual reciprocals; and
3) repeating steps 1) and 2) for each first lookup table entry.

### Claim 14 (depends on 8)

The method of claim 8 wherein entries of the second lookup table are determined by the steps of:
1) computing an actual reciprocal for each operand value that shares a same second lookup table entry;
2) selecting a reciprocal error term such that for each group of estimated reciprocals that shares a same reciprocal error term the reciprocal error plus the estimated reciprocal is less than or equal to the actual reciprocal; and
3) repeating steps 1) and 2) for each second lookup table entry.

### Claim 15

An apparatus for computing a reciprocal of an operand comprising:
a first memory containing estimated reciprocal terms;
a second memory containing reciprocal error terms;
an adder for adding a selected estimated reciprocal term from the first memory and a selected reciprocal error term from the second memory to provide the reciprocal, wherein the selected estimated reciprocal term corresponds to at least a portion of the operand, wherein the selected reciprocal error term corresponds to at least a portion of the operand.

### Claim 16 (depends on 15)

The apparatus of claim 15 wherein at least one of the first and second computer memories is a nonvolatile memory.

### Claim 17 (depends on 16)

The apparatus of claim 16 wherein the nonvolatile memory comprises read only memory.

### Claim 18 (depends on 16)

The apparatus of claim 16 wherein the nonvolatile memory comprises logic gates.

### Claim 19 (depends on 15)

The apparatus of claim 15 wherein entries of the first lookup table are determined by the steps of:
1) computing an actual reciprocal for each input operand value that shares a same first lookup table entry;
2) computing an estimated reciprocal that is less than or equal to all of the actual reciprocals; and
3) repeating steps 1) and 2) for each first lookup table entry.

### Claim 20 (depends on 15)

The apparatus of claim 15 wherein entries of the second lookup table are determined by the steps of:
1) computing an actual reciprocal for each operand value that shares a same second lookup table entry;
2) selecting a reciprocal error term such that for each group of estimated reciprocals that shares a same reciprocal error term the reciprocal error plus the estimated reciprocal is less than or equal to the actual reciprocal; and
3) repeating steps 1) and 2) for each second lookup table entry.

### Claim 21

An apparatus for performing a divide operation, comprising:
a first memory containing estimated reciprocal terms;
a second memory containing reciprocal error terms;
an adder for adding a selected estimated reciprocal term from the first memory and a selected reciprocal error term from the second memory to provide the reciprocal, wherein the selected estimated reciprocal term corresponds to at least a portion of a given divisor, wherein the selected reciprocal error term corresponds to at least a portion of the divisor; and
a multiplier for multiplying a dividend by the reciprocal to generate a quotient.

### Claim 22 (depends on 21)

The apparatus of claim 21 wherein at least one of the first and second computer memories is a nonvolatile memory.

### Claim 23 (depends on 22)

The apparatus of claim 22 wherein the nonvolatile memory is a read only memory.

### Claim 24 (depends on 22)

The apparatus of claim 22 wherein the nonvolatile memory comprises logic gates.

### Claim 25 (depends on 21)

The apparatus of claim 21 wherein entries of the first lookup table are determined by the steps of:
1) computing an actual reciprocal for each input operand value that shares a same first lookup table entry;
2) computing an estimated reciprocal that is less than or equal to all of the actual reciprocals; and
3) repeating steps 1) and 2) for each first lookup table entry.

### Claim 26 (depends on 21)

The apparatus of claim 21 wherein entries of the second lookup table are determined by the steps of:
1) computing an actual reciprocal for each operand value that shares a same second lookup table entry;
2) selecting a reciprocal error term such that for each group of estimated reciprocals that shares a same reciprocal error term the reciprocal error plus the estimated reciprocal is less than or equal to the actual reciprocal; and
3) repeating steps 1) and 2) for each second lookup table entry.
