# US 10,120,650 B2 · Method and apparatus for calculating data

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

- Number: US 10,120,650 B2
- Document ID: US10120650B2
- Status: Granted
- Kind: B2
- Application number: 14/869,227
- Filed: 2015-09-29
- Published: 2016-03-31
- Granted: 2018-11-06
- Earliest claimed: 2014-09-30
- Assignees: Samsung Electronics Co., Ltd.
- Applicants: Samsung Electronics Co., Ltd.
- Inventors: Hyeongseok Yu; Yeongon Cho; Changmoo Kim; Soojung Ryu
- Web page: https://patentgrep.com/patent/US10120650B2

## CPC

- G06F 7/544: for evaluating functions by calculation {(G06F7/4824 takes precedence)}
- G06F 1/035: Reduction of table size {(G06F1/0314 takes precedence)}
- 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: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A method of calculating data includes acquiring a difference between first data that is input and second data that was previously stored; determining a method of generating third data corresponding to a result of a calculation of the first data based on the difference; and performing a calculation corresponding to the determined method using a calculator.

## Claims

### Claim 1

A method of calculating data using a calculation unit that includes an adder, first and second selectors, and first and second calculators, the adder being configured to receive outputs of the first and second selectors, respectively, the first selector being configured to receive a first input and an output of the first calculator, the second selector being configured to receive a second input and an output of the second calculator, the method comprising:
acquiring a difference between first data that is input and second data that was previously stored;
selecting, based on the difference, a process from among a first process of generating third data and a second process of generating the third data; and
performing the selected process,
the third data corresponding to a result of performing a mathematical operation on the first data,
the first process including,
calculating, using the first calculator, an output of a first mathematical function using the first data as an input to the first mathematical function,
selecting, using the first selector, the output of the first calculator and providing the output of the first calculator to the adder,
selecting, using the second selector, the second input and providing the second input to the adder, and
generating the third data by adding, using the adder, the output of the first calculator to the second input,
the second process including,
calculating, using the second calculator, the output of a first mathematical function using the difference as an input to the first mathematical function,
selecting, using the first selector, the first input and providing the first input to the adder,
selecting, using the second selector, an output of the second calculator and providing the output of the second calculator to the adder, and
generating the third data by adding, using the adder, the first input to the output of the second calculator,
a first number of calculations included in the second process being less than a second number of calculations included in the first process.

### Claim 2 (depends on 1)

The method of claim 1, wherein the selecting comprises:
comparing the difference with a threshold value, and selecting from among the first process and the second process, based on a result of the comparing.

### Claim 3 (depends on 2)

The method of claim 2, wherein the selecting comprises:
selecting the first process in response to the difference exceeding the threshold value; and
selecting the second process in response to the difference being less than or equal to the threshold value.

### Claim 4 (depends on 1)

The method of claim 1, wherein the performing of the selected process comprises:
generating the third data based on the difference or a coefficient determined based on the first data.

### Claim 5 (depends on 4)

The method of claim 4, wherein the determined coefficient is selected from coefficients stored in correspondence to the difference or the first data.

### Claim 6 (depends on 1)

The method of claim 1, wherein the first process further includes performing one or more of the first number of calculations based on an entirety of the first data, and the second process further includes adding a product of the difference and a coefficient determined based on the first data to a product of the second data and the coefficient.

### Claim 7 (depends on 1)

The method of claim 1, further comprising
storing the difference and the first data.

### Claim 8 (depends on 1)

The method of claim 1, wherein the performing of the selected process comprises performing calculations using either all or only a part of a single calculator according to the selected process.

### Claim 9 (depends on 8)

The method of claim 8, wherein the single calculator is a multi-precision calculator configured to perform a multiplication of N bits and a multiplication of N/2 bits.

### Claim 10 (depends on 1)

The method of claim 1, wherein the performing of the selected process comprises:
selecting a calculator from among different calculators according to the selected process, and performing the calculation using the selected calculator.

### Claim 11 (depends on 1)

The method of claim 1, wherein the first data and the second data correspond to numbers represented using a floating point process.

### Claim 12 (depends on 1)

A non-transitory computer-readable storage medium storing instructions to cause computing hardware to perform the method of claim 1.

### Claim 13

An apparatus for calculating data, the apparatus comprising:
a processor, the processor including,
an acquisition circuit configured to acquire a difference between first data that is input and second data that was previously stored;
a determination circuit configured to select, based on the difference, a process from among a first process of generating third data and a second process of generating the third data; and
a calculation circuit configured to perform the selected process, the calculation circuit including an adder, first and second selectors, and first and second calculators, the adder being configured to receive outputs of the first and second selectors, respectively, the first selector being configured to receive a first input and an output of the first calculator, the second selector being configured to receive a second input and an output of the second calculator,
the third data corresponding to a result of performing a mathematical operation on the first data,
the calculation circuit being configured such that,
performing the first process includes,
calculating, using the first calculator, an output of a first mathematical function using the first data as an input to the first mathematical function,
selecting, using the first selector, the output of the first calculator and providing the output of the first calculator to the adder,
selecting, using the second selector, the second input and providing the second input to the adder, and
generating the third data by adding, using the adder, the output of the first calculator to the second input, and
performing the second process includes,
calculating, using the second calculator, the output of a first mathematical function using the difference as an input to the first mathematical function,
selecting, using the first selector, the first input and providing the first input to the adder,
selecting, using the second selector, an output of the second calculator and providing the output of the second calculator to the adder, and
generating the third data by adding, using the adder, the first input to the output of the second calculator,
the calculation circuit being further configured such that a first number of calculations included in the second process is less than a second number of calculations included in the first process.

### Claim 14 (depends on 13)

The apparatus of claim 13, wherein the determination circuit is further configured to compare the difference with a threshold value, and perform the selecting from among the first process and the second process based on a result of the comparing.

### Claim 15 (depends on 14)

The apparatus of claim 14, wherein the calculation circuit is further configured to select the first process in response to the difference exceeding the threshold value, and select the second process in response to the difference being less than or equal to the threshold value.

### Claim 16 (depends on 13)

The apparatus of claim 13, wherein the calculation circuit is further configured to perform the selected process based on the difference or a coefficient determined based on the first data.

### Claim 17 (depends on 16)

The apparatus of claim 16, wherein the determined coefficient is selected from coefficients stored in correspondence to the difference or the first data.

### Claim 18 (depends on 13)

The apparatus of claim 13, wherein the first process further includes performing one or more of the first number of calculations based on an entirety of the first data, and the second process further includes adding a product of the difference and a coefficient determined based on the first data to a product of the second data and the coefficient.

### Claim 19 (depends on 13)

The apparatus of claim 13, further comprising a storage unit configured to store the difference and the first data.

### Claim 20 (depends on 13)

The apparatus of claim 13, wherein the calculation circuit comprises a single calculator, and is further configured to perform the selected process using either all or only a part of the single calculator according to the selected process.

### Claim 21 (depends on 20)

The apparatus of claim 20, wherein the single calculator is a multi-precision calculator configured to perform a multiplication of N bits and a multiplication of N/2 bits.

### Claim 22 (depends on 13)

The apparatus of claim 13, wherein,
the calculation circuit comprises different calculators; and
the calculation circuit is further configured to select a calculator from among the different calculators according to the selected process, and generate the third data using the selected calculator.

### Claim 23 (depends on 13)

The apparatus of claim 13, wherein the first data and the second data correspond to numbers represented using a floating point process.

### Claim 24

An apparatus for calculating data, the apparatus comprising:
a processor including,
an acquisition circuit configured to acquire a difference between first data that is input and second data that was previously stored;
a calculation circuit including multiplier inputs, an adder, first and second selectors, and first and second calculators, the adder being configured to receive outputs of the first and second selectors, respectively, the first selector being configured to receive a first input and an output of the first calculator, the second selector being configured to receive a second input and an output of the second calculator; and
a determination circuit configured to,
determine a process of generating third data based on the difference, the third data corresponding to a result of performing a mathematical operation on the first data, and
control data input to the multiplier inputs to control the calculation circuit to perform a calculation according to the determined process,
wherein the determination circuit is configured such that the determining of the process includes selecting, based on the difference, between,
a first process including generating the third data by controlling the calculation circuit to perform a first number of calculations based on the first data using a first precision level, and
a second process including generating the third data by controlling the calculation circuit to perform a second number of calculations based on the difference using a second precision level,
the second precision level being lower than the first precision level such that the second number of calculations is less than the first number of calculations,
wherein the calculation circuit is configured such that generating the third data in accordance with the first process includes,
calculating, using the first calculator, an output of a first mathematical function using the first data as an input to the first mathematical function,
selecting, using the first selector, the output of the first calculator and providing the output of the first calculator to the adder,
selecting, using the second selector, the second input and providing the second input to the adder, and
generating the third data by adding, using the adder, the output of the first calculator to the second input, and
wherein the calculation circuit is further configured such that generating the third data in accordance with the second process includes,
calculating, using the second calculator, the output of a first mathematical function using the difference as an input to the first mathematical function,
selecting, using the first selector, the first input and providing the first input to the adder,
selecting, using the second selector, an output of the second calculator and providing the output of the second calculator to the adder, and
generating the third data by adding, using the adder, the first input to the output of the second calculator.

### Claim 25 (depends on 24)

The apparatus of claim 24, wherein the determination circuit is further configured to compare the difference with a threshold value, and determine the process of generating the third data based on a result of the comparing.

### Claim 26 (depends on 25)

The apparatus of claim 25, wherein,
the calculation circuit is further configured to perform a multiplication of N bits and a multiplication of N/2 bits, and
the determination circuit is further configured to,
control the data input to the multiplier circuit inputs to control the calculation circuit to select the first process in response to the difference exceeding the threshold value, and
control the data input to the multiplier inputs to control the calculation circuit to select the second process in response to the difference being less than or equal to the threshold value.
