IP Library Granted Patent US 10,133,552
Granted Patent B2
US 10,133,552 · App. 14/797,104 · Granted Nov 20, 2018

Data storage method, ternary inner product operation circuit, semiconductor device including the same, and ternary inner product arithmetic processing program

Inventor: Shunsuke Okumura (Kawasaki, JP)
Assignee: RENESAS ELECTRONICS CORPORATION
G06F7/49
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,133,552
App. No.
14/797,104
Granted
Nov 20, 2018
Kind
B2
Abstract

A data storage method includes storing a plurality of pieces of 2-bit wide ternary data in one word, each of the plurality of pieces of 2-bit wide ternary data indicating +1 when a first bit indicates a first value, indicating −1 when a second bit indicates the first value, and indicating 0 when both the first bit and the second bit indicate a second value.

Claims (30)

1. A ternary inner product operation method using a processor and a memory coupled to the processor, the method comprising:

storing, by the processor into the memory, a plurality of pieces of 2-bit wide ternary data to form a plurality of pieces of ternary data of each of first and second sets of input data indicating +1 when a first bit indicates a first value, indicating −1 when a second bit indicates the first value, and indicating 0 when both the first bit and the second bit indicate a second value;

multiplying, by a ternary multiplication unit of the processor, respective elements of the first and second sets of input data to obtain the 2-bit wide ternary data;

outputting, by a multiplication result processing unit of the processor, a number obtained by subtracting a number of pieces of the ternary data indicating −1 from a number of pieces of the ternary data indicating +1 of the plurality of pieces of ternary data forming a result of multiplication in the ternary multiplication unit as an inner product operation result, said outputting including:

counting, by a first counter, a number of pieces of ternary data in which a first bit indicates a first value of the plurality of pieces of ternary data forming the result of the multiplication to specify the number of pieces of the ternary data indicating +1;

counting, by a second counter, a number of pieces of ternary data in which a second bit indicates the first value of the plurality of pieces of ternary data forming the result of the multiplication to specify the number of pieces of the ternary data indicating −1; and

subtracting, by a subtraction circuit, the number of pieces of the ternary data indicating −1 from the number of pieces of the ternary data indicating +1, by the processor, as the inner product operation result; and

processing the inner product operation result and the 2-bit wide ternary data to obtain an operation result including an inner product of the first and second sets of input data.

2. A ternary inner product operation circuit for operating on a plurality of ternary data in a ternary format, the ternary data comprising a plurality of pieces of ternary data of each of first and second sets of input data formed by storing a plurality of pieces of 2-bit wide ternary data indicating +1 when a first bit indicates a first value, indicating −1 when a second bit indicates the first value, and indicating 0 when both the first bit and the second bit indicate a second value, the ternary inner product operation circuit comprising:

a ternary multiplication unit multiplying respective elements of the first and second sets of input data to obtain 2-bit wide ternary data;

a multiplication result processing unit that outputs a number obtained by subtracting a number of pieces of the ternary data indicating −1 from a number of pieces of the ternary data indicating +1 of the plurality of pieces of ternary data forming the result of the multiplication in the ternary multiplication unit as an inner product operation result, wherein the multiplication result processing unit comprises:

a first counter that counts the number of pieces of the ternary data indicating +1 of the plurality of pieces of ternary data forming the result of the multiplication in the ternary multiplication unit;

a second counter that counts the number of pieces of the ternary data indicating −1 of the plurality of pieces of ternary data forming the result of the multiplication in the ternary multiplication unit; and

a subtraction circuit that subtracts a result of the count in the second counter from a result of the count in the first counter to obtain the inner product operation result; and

a processor processing the inner product operation result and the 2-bit wide ternary data to obtain an operation result including an inner product of the first and second sets of input data.

3. The ternary inner product operation circuit according to claim 2 , wherein the first counter counts the number of pieces of ternary data in which the first bit indicates the first value of the plurality of pieces of ternary data forming the result of the multiplication in the ternary multiplication unit to specify the number of pieces of the ternary data indicating +1, and

wherein the second counter counts the number of pieces of ternary data in which the second bit indicates the first value of the plurality of pieces of ternary data forming the result of the multiplication in the ternary multiplication unit to specify the number of pieces of the ternary data indicating −1.

4. A semiconductor device, comprising:

the ternary inner product operation circuit according to claim 2 ; and

a memory storing the first and second sets of input data input to the ternary inner product operation circuit.

5. A non-transitory computer readable medium that causes a processor and a memory coupled to the processor to execute:

storing, by the processor into the memory, a plurality of pieces of 2-bit wide ternary data to form a plurality of pieces of ternary data of each of first and second sets of input data indicating +1 when a first bit indicates a first value, indicating −1 when a second bit indicates the first value, and indicating 0 when both the first bit and the second bit indicate a second value;

multiplying, by a ternary multiplication unit, respective elements of the first and second sets of input data to obtain the 2-bit wide ternary data;

outputting, by a multiplication result processing unit, a number obtained by subtracting a number of pieces of the ternary data indicating −1 from a number of pieces of the ternary data indicating +1 of the plurality of pieces of ternary data forming a result of multiplication in the ternary multiplication unit as an inner product operation result, said obtaining including:

first count processing, by a first counter, to count a number of pieces of ternary data indicating +1 of the plurality of pieces of ternary data forming the result of the multiplication by the multiplication processing;

second count processing, by a second counter, to count a number of pieces of ternary data indicating −1 of the plurality of pieces of ternary data forming the result of the multiplication by the multiplication processing; and

subtraction processing, by a subtraction circuit, to subtract the number of pieces of the ternary data indicating −1 from the number of pieces of the ternary data indicating +1 to obtain the inner product operation result; and

processing the inner product operation result and the 2-bit wide ternary data to obtain an operation result including an inner product of the first and second sets of input data.

6. The non-transitory computer readable medium according to claim 5 , wherein the first counter counts the number of pieces of ternary data in which the first bit indicates the first value of the plurality of pieces of ternary data forming the result of the multiplication to specify the number of pieces of the ternary data indicating +1, and

wherein the second counter counts the number of pieces of ternary data in which the second bit indicates the first value of the plurality of pieces of ternary data forming the result of the multiplication to specify the number of pieces of the ternary data indicating −1.

Assignments (2)
CHANGE OF ADDRESS Recorded Dec 18, 2017
From: RENESAS ELECTRONICS CORPORATION
To: RENESAS ELECTRONICS CORPORATION
Reel/Frame 045764/0902 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 13, 2015
From: OKUMURA, SHUNSUKE
To: RENESAS ELECTRONICS CORPORATION
Reel/Frame 036072/0802 →
Priority Claims (1)
JP 2014-169635 · Aug 22, 2014 · national
Continuity (1)
Related Publication 20160054979A1 · Feb 25, 2016