IP Library › Granted Patent US 12,307,124
Granted Patent B2
US 12,307,124 · App. 18/418,825 · Granted May 20, 2025

Enhanced k-SAT solver using analog content addressable memory

Inventors: Giacomo Pedretti (Verbania, IT); John Paul Strachan (San Carlos, CA); Thomas Maurits M. Van Vaerenbergh (Flemish Brabant, BE); Catherine E. Graves (Milpitas, CA)
Assignee: Hewlett Packard Enterprise Development LP
G06F3/0655G06F3/0604G06F3/0673G06N3/063
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 12,307,124
App. No.
18/418,825
Granted
May 20, 2025
Kind
B2
Abstract

A system for facilitating an enhanced k-SAT solver is provided. The system can include a set of analog content addressable memory (aCAM) modules that can represent an expression in a conjunctive normal form (CNF), wherein a respective aCAM module corresponds to a clause of the expression. The system can also include a set of data lines that can provide input candidate values to the set of aCAM modules. A controller of the system can program the set of aCAM modules with respective analog values to represent the expression. The system can also include sensing logic block to determine a distance of a current solution from a target solution based on a combination of respective outputs from the set of aCAM modules. The controller can then iteratively modify an input value for a subset of data lines until the current solution converges based on a convergence condition.

Claims (33)

1. A computer-implemented method comprising:

programing a set of analog content addressable memory (aCAM) modules with respective analog values to represent an expression in a conjunctive normal form (CNF), wherein the set of aCAM modules receives input candidate values via a set of data lines;

determining a distance of a current solution from a target solution based on a combination of respective outputs from the set of aCAM modules; and

iteratively modifying an input value for a subset of the set of data lines until the current solution converges based on a convergence condition.

2. The method of claim 1 , wherein the distance comprises a voltage distance, and wherein the convergence condition comprises a voltage value of zero calculated based on the respective outputs.

3. The method of claim 1 , wherein an aCAM module of the set of aCAM modules comprises a plurality of aCAM cells, and wherein an aCAM cell of the plurality of aCAM cells is associated with a variable of a clause of the expression indicated by the aCAM module.

4. The method of claim 3 , wherein the aCAM cell comprises one or more tunable resistance devices (TRDs), wherein a TRD of the one or more TRDs facilitates non-volatile storage of continuous analog value.

5. The method of claim 4 , wherein the TRD comprises one of:

a memristor;

a memtransistor; and

a memory component in a neuromorphic memory device.

6. The method of claim 1 , further comprising determining whether modifying the input value decreases the distance from the target solution based on the combination of the respective outputs.

7. The method of claim 6 , further comprising increasing or decreasing the input value in response to sensing an increased distance from the target solution.

8. The method of claim 1 , further comprising incorporating noise to the input candidate values responsive to a combination of the respective outputs not changing for a number of iterations.

9. The method of claim 1 , wherein the set of aCAM modules are organized in a hierarchical array, wherein a respective element of the hierarchical array comprises the subset of the aCAM modules.

10. The method of claim 9 , further comprising determining the combination of the respective outputs by adding respective outputs of the respective element of the hierarchical array.

11. A non-transitory computer-readable medium storing a set of instructions, the set of instructions comprising:

one or more instructions that, when executed by one or more processors cause the processors to:

program a set of analog content addressable memory (aCAM) modules with respective analog values to represent an expression in a conjunctive normal form (CNF), wherein the set of aCAM modules receives input candidate values via a set of data lines;

determine a distance of a current solution from a target solution based on a combination of respective outputs from the set of aCAM modules; and

iteratively modify an input value for a subset of the set of data lines until the current solution converges based on a convergence condition.

12. The non-transitory computer-readable medium of claim 11 , wherein the distance comprises a voltage distance, and the convergence condition comprises a voltage value of zero calculated based on the respective outputs.

13. The non-transitory computer-readable medium of claim 11 , wherein an aCAM module of the set of aCAM modules comprises a plurality of aCAM cells, and wherein an aCAM cell of the plurality of aCAM cells is associated with a variable of a clause of the expression indicated by the aCAM module.

14. The non-transitory computer-readable medium of claim 13 , wherein the aCAM cell comprises one or more tunable resistance devices (TRDs), a TRD of the one or more TRDs facilitates non-volatile storage of continuous analog value.

15. The non-transitory computer-readable medium of claim 14 , wherein the TRD comprises one of:

a memristor;

a memtransistor; and

a memory component in a neuromorphic memory device.

16. The non-transitory computer-readable medium of claim 11 , wherein the one or more instructions further cause the processors to determine whether modifying the input value decreases the distance from the target solution based on the combination of the respective outputs.

17. The non-transitory computer-readable medium of claim 16 , wherein the one or more instructions further cause the processors to increase or decreasing the input value in response to sensing an increased distance from the target solution.

18. The non-transitory computer-readable medium of claim 11 , wherein the one or more instructions further cause the processors to incorporate noise to the input candidate values responsive to a combination of the respective outputs not changing for a number of iterations.

19. The non-transitory computer-readable medium of claim 11 , wherein the set of aCAM modules are organized in a hierarchical array, a respective element of the hierarchical array comprises the subset of the aCAM modules.

20. The non-transitory computer-readable medium of claim 19 , wherein the one or more instructions further cause the processors to determine the combination of the respective outputs by adding respective outputs of the respective element of the hierarchical array.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 23, 2024
From: PEDRETTI, GIACOMO; STRACHAN, JOHN PAUL; VAN VAERENBERGH, THOMAS MAURITS M.; GRAVES, CATHERINE E.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 066209/0322 →
Continuity (2)
Continuation 17691642 · Mar 10, 2022
Related Publication 20240184479A1 · Jun 6, 2024
References Cited (12)
US 7206212B1 · Chou · 2007 [cited by applicant]
US 7565634B1 · Boyd · 2009 [cited by examiner]
US 10847238B2 · Li et al. · 2020 [cited by applicant]
US 11289162B2 · Strachan et al. · 2022 [cited by applicant]
US 20190050720A1 · Binas et al. · 2019 [cited by applicant]
US 20190311267A1 · Qin et al. · 2019 [cited by applicant]
US 20190332708A1 · Strachan et al. · 2019 [cited by applicant]
US 20220375536A1 · Strachan et al. · 2022 [cited by applicant]
US 20230137079A1 · Pedretti et al. · 2023 [cited by applicant]
SATLIB—Benchmark Problems< available online at <https://web.archive.org/web/20220404084854/https://www.cs.ubc.ca/˜hoos/SATLIB/benchm.html>, Apr. 4, 2022, 4 pages. [cited by applicant]
Wikipedia, “Boolean satisfiability problem”, available online at <https://en.wikipedia.org/w/index.php?title=Boolean_satisfiability_problem&oldid=1064634994>, Jan. 9, 2022, 26 pages. [cited by applicant]
Yin et al., “Efficient Analog Circuits for Boolean Satisfiability”, IEEE, 2017, pp. 1-13. [cited by applicant]