IP Library Granted Patent US 10,719,295
Granted Patent B2
US 10,719,295 · App. 16/687,488 · Granted Jul 21, 2020

Circuit to perform dual input value absolute value and sum operation

Inventors: Artem Vasilyev (Danville, CA); Albert Meixner (Mountain View, CA); Jason Rupert Redgrave (Mountain View, CA)
Assignee: Google LLC
G06F7/50G06F9/3001G06F9/30036G06F9/30134G06F9/3893G06T1/20G11C19/38
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,719,295
App. No.
16/687,488
Granted
Jul 21, 2020
Kind
B2
Abstract

An execution unit is described. The execution unit includes an arithmetic logic unit (ALU) circuit having a first input to receive a first value and a second input to receive a second value. The ALU circuit includes circuitry to determine an absolute value of the first value and to add the absolute value to the second value. The first input is coupled to a first data path having register space and an output of another ALU of the execution unit circuit as alternative sources of the first value. The second input is coupled to a second data path having the register space as a source for the second value.

Claims (29)

1. An execution unit comprising a first arithmetic logic unit (ALU) and a second ALU, wherein the execution unit is configured to perform a sum of absolute difference (SAD) computation using ALU operations comprising:

computing a first difference between a first input value and a second input value at the first ALU;

based on determining that the first difference is positive, computing a SAD value at a second ALU by adding a sum of a third input value to the first difference; and

outputting the computed SAD value.

2. The execution unit of claim 1 , wherein the execution unit is configured to compute the SAD value from a single instruction.

3. The execution unit of claim 2 , wherein the single instruction references the first value, the second value, and the third value.

4. The execution unit of claim 3 , wherein the third value is an operand of the single instruction.

5. The execution unit of claim 1 , wherein the second ALU is configured to receive two inputs, the two inputs comprising the first difference from the first ALU and the third input value.

6. The execution unit of claim 1 , wherein the second ALU is configured to perform an absolute value computation including adding a zero value to the third input value whenever the third input value is positive.

7. The execution unit of claim 1 , wherein the second ALU is configured to perform an absolute value computation including subtracting the third input value from a zero value whenever the third input value is negative.

8. An execution unit comprising a first arithmetic logic unit (ALU) and a second ALU, wherein the execution unit is configured to perform a sum of absolute difference (SAD) computation using ALU operations comprising:

computing a first difference between a first input value and a second input value at the first ALU;

based on determining that the first difference is negative, computing a SAD value at a second ALU by subtracting the first difference from a third input value; and

outputting the computed SAD value.

9. The execution unit of claim 8 , wherein the execution unit is configured to compute the SAD value from a single instruction.

10. The execution unit of claim 9 , wherein the single instruction references the first value, the second value, and the third value.

11. The execution unit of claim 10 , wherein the third value is an operand of the single instruction.

12. The execution unit of claim 8 , wherein the second ALU is configured to receive two inputs, the two inputs comprising the first difference from the first ALU and the third input value.

13. The execution unit of claim 8 , wherein the second ALU is configured to perform an absolute value computation including adding a zero value to the third input value whenever the third input value is positive.

14. The execution unit of claim 8 , wherein the second ALU is configured to perform an absolute value computation including subtracting the third input value from a zero value whenever the third input value is negative.

15. A method for performing a sum of absolute difference (SAD) computation performed by an execution unit comprising a first arithmetic logic unit (ALU) and a second ALU, the method comprising:

computing a first difference between a first input value and a second input value at the first ALU;

based on determining that the first difference is negative, computing a SAD value at a second ALU by subtracting the first difference from a third input value; and

outputting the computed SAD value.

16. The method of claim 15 , wherein performing the SAD computation requires only a single instruction.

17. The method of claim 16 , wherein the single instruction references the first value, the second value, and the third value.

18. The method of claim 17 , wherein the third value is an operand of the single instruction.

19. The method of claim 15 , wherein the second ALU is configured to receive two inputs, the two inputs comprising the first difference from the first ALU and the third input value.

20. The method of claim 15 , further comprising performing, by the second ALU, an absolute value computation including adding a zero value to the third input value whenever the third input value is positive.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 24, 2020
From: VASILYEV, ARTEM; MEIXNER, ALBERT; REDGRAVE, JASON RUPERT
To: GOOGLE INC.
Reel/Frame 052493/0929 →
CHANGE OF NAME Recorded Apr 24, 2020
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 052494/0012 →
Continuity (2)
Continuation 15594223 · May 12, 2017
Related Publication 20200159494A1 · May 21, 2020