FPGA Hardware Accelerator for SAT Solving via Parallel Inference

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional hardware solvers for the Boolean satisfiability problem (SAT) are slow and capacity-limited, making them obsolete and severely constrained.

Innovation Solution

A hardware accelerator using field-programmable gate arrays (FPGAs) for Boolean constraint propagation, with inference engines operating in parallel and utilizing Block RAM to store SAT instance information, allowing for efficient clause partitioning and implication inference.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If conventional hardware solvers are used for SAT problems, then the system is simple to implement, but the solving speed is slow and capacity is limited

Engineering Contradiction:
ImproveSAT solving speedVSAvoidhardware architecture complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent divides the SAT solving system into multiple inference engines that operate in parallel, with each engine handling specific clauses. This segmentation enables the system to process multiple implications simultaneously, dramatically increasing solving speed while maintaining manageable complexity through modular architecture

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent transitions from sequential software-based solving to parallel hardware-based solving by utilizing the spatial dimension of multiple inference engines operating concurrently. This dimensional shift from time-sequential to space-parallel processing is the key to achieving 3-40x speedup

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Productivity

If multiple inference engines operate in parallel, then SAT solving speed increases significantly, but memory management complexity increases

Engineering Contradiction:
ImproveSAT solving speedVSAvoidmemory management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent introduces a clause partitioning technique as an intermediary layer that manages the distribution of clauses across multiple inference engines. This mediator handles the complex memory management and data distribution tasks, allowing parallel inference engines to operate efficiently without direct complex interactions

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent creates a universal clause partitioning mechanism that can adaptively distribute clauses across different inference engines based on various criteria. This multi-functional partitioning approach handles both the organization of clause data and the balancing of workload across engines, simplifying individual engine operations

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Quantity of substance

If clause partitioning is optimized for minimum memory usage, then memory efficiency improves, but the partitioning problem becomes NP hard

Engineering Contradiction:
Improvememory usageVSAvoidpartitioning optimization difficulty
Core Design Contradiction:
Quantity of substanceVSDifficulty of detecting and measuring

Solution Approach 1:

The patent applies partial optimization by implementing a practical clause partitioning technique that achieves good memory efficiency without attempting to solve the complete NP-hard optimization problem. This approach accepts near-optimal solutions that are computationally feasible to obtain and update dynamically

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS8131660B2Reconfigurable hardware accelerator for boolean satisfiability solver
Publication Date: 2012.03.06 MICROSOFT TECHNOLOGY LICENSING LLC
  • US8131660B2 patent drawing
  • US8131660B2 patent drawing
  • US8131660B2 patent drawing

AI summary

A hardware accelerator is provided for Boolean constraint propagation (BCP) using field-programmable gate arrays (FPGAs) for use in solving the Boolean satisfiability problem (SAT). An inference engine may perform implications. Block RAM (BRAM) may be used to store SAT instance information. Computation may be co-located with the BRAM memory, taking advantage of the high on-chip bandwidth and low latency of an FPGA. SAT instances may be partitioned into multiple groups that can be processed by multiple inference engines in parallel. New SAT instances can be inserted into FPGA without invoking the time-consuming FPGA re-synthesizing process.