IP Library Granted Patent US 8,799,346
Granted Patent B2
US 8,799,346 · App. 13/079,204 · Granted Aug 5, 2014

Belief propagation processor

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 8,799,346
App. No.
13/079,204
Granted
Aug 5, 2014
Kind
B2
Abstract

A processor includes a first memory module for storing a first set of storage values each representing a respective input, and a second memory module for storing a second set of storage values in analog form. An analog module is coupled to the first and the second memory modules. The analog module is configured to, in each operation cycle of at least one iteration, update at least some of the second set of storage values based on the first and the second sets of storage values. An output module is for generating a set of outputs from at least some of the second set of storage values.

Claims (30)

1. An analog processor comprising:

a first memory module for storing a first set of storage values in respective storage elements each representing a respective input to the processor;

a second memory module for storing a second set of storage values in analog form in respective storage, the second set of storage values including intermediate values determined during operation of the processor;

an analog computation module coupled to the first and the second memory modules, the analog processor being configurable such that in each of a plurality of operation cycles the analog computational module determines values for at least some of the second set of storage values based on at least some of the first and the second sets of storage values; and

an output module for generating a set of outputs at least in part from the at least some of the second set of storage values.

2. The analog processor of claim 1 wherein the first storage module is configured to store the first set of storage values in analog form.

3. The analog processor of claim 1 wherein the analog computation module is linked to the first and the second memory modules via analog signal paths.

4. The analog processor of claim 3 in which the analog signal paths are each configured to carry a value on a conductor represented as at least one of a voltage and a current proportional to the value.

5. The analog processor of claim 1 , wherein the analog computational module is configurable to determine values for a different subset of the second set of storage values in corresponding cycles of the plurality of operation cycles.

6. The analog processor of claim 1 further comprising input selection circuitry configurable to couple the analog computation module to outputs of selected memory elements of the first and the second memory modules.

7. The analog processor of claim 1 further comprising, for each analog computation module, a plurality of signal busses, each bus providing an input value to the analog computation module and being switchably coupled to a plurality of the storage elements of the second memory module.

8. The analog processor of claim 7 wherein the storage elements are coupled to switchably provide a current representation of a storage value stored in the storage element such that the input value provided to the analog computation module is represented as a current that is substantially proportional to a sum of the currents representations provided by the storage elements.

9. The analog processor of claim 1 further comprising output section circuitry configurable to accept outputs of selected memory elements of the first and the second memory modules, and to determine outputs of the analog processor.

10. The analog processor of claim 1 comprising a plurality of analog computation modules, said modules being concurrently operable to determines values for different subsets of the second set of storage values in each operation cycle.

11. The analog processor of claim 10 wherein the second memory module includes a plurality of sections, each associated with a corresponding different one of the analog computation modules for storing values determined by the analog computation module.

12. The analog processor of claim 10 wherein the second memory module is configured such that in a single operation cycle, each storage element can provide a storage value to one or more of the analog computation modules and can accept a determined value to store in the storage element for providing in a subsequent operation cycle.

13. The analog processor of claim 12 wherein each storage element is associated with two storage locations such that in any one cycle, one storage location being used for accepting a determined value and another storage location being used for providing a value.

14. The analog processor of claim 10 wherein the second memory module includes a plurality of memory sections, groups of the sections forming banks, wherein for each of the analog computation modules each of a plurality of inputs to the module is associated with a different bank of the memory sections.

15. The analog processor of claim 1 configured to implement a belief propagation computation.

16. The analog processor of claim 1 configured to implement a factor graph computation.

17. The analog processor of claim 16 wherein the a analog processor is configured to implement a decoder for a low density parity check (LDPC) code.

18. The analog processor of claim 1 further comprising:

a controller configured to control operation of the analog processor to perform a plurality of iterations of computation, each iteration comprising the plurality of computation cycles.

19. The analog processor of claim 18 wherein the plurality of computation cycles is substantially the same in each iteration, each cycle being associated with a configuration of the first and the second storage modules to provide inputs and output to one or more analog computation modules.

20. The analog processor of claim 18 wherein the analog processor is at least one of configured and configurable to implement a decoder parity check code, and each cycle is associated with one or more parity check constraints, and wherein the cycles of each iteration are together associated with all the parity check constraints of the code.

21. The analog processor of claim 1 wherein the analog computation module implements a network of analog processing elements.

22. The analog processor of claim 21 wherein the analog processing elements include elements that represent soft logical operations.

23. The analog processor of claim 22 wherein the soft logical operations include soft XOR operations.

24. The analog processor of claim 21 wherein the network of elements is acyclic.

25. The analog processor of claim 21 wherein the network of elements includes at least one cycle of elements, the analog computation module being configured to implement a relaxation computation.

Assignments (4)
CONFIRMATORY LICENSE Recorded Jun 8, 2016
From: LYRIC SEMICONDUCTOR, INC.
To: AFRL/RIJ
Reel/Frame 038842/0778 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 24, 2015
From: LYRIC SEMICONDUCTOR, INC.
To: ANALOG DEVICES, INC.
Reel/Frame 036173/0763 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 22, 2015
From: VIGODA, BENJAMIN; REYNOLDS, DAVID
To: LYRIC SEMICONDUCTOR, INC.
Reel/Frame 036156/0499 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 8, 2011
From: REYNOLDS, DAVID; VIGODA, BENJAMIN
To: MITSUBISHI ELECTRIC RESEARCH LABORATORIES INC.
Reel/Frame 026713/0331 →