一种基于流水线执行策略的硬件SAT求解器的制作方法

文档序号:20699135发布日期:2020-05-12 15:25阅读:来源:国知局

技术特征:

1.一种基于流水线执行策略的硬件sat求解器,其特征在于,

包括:预处理模块、输出模块和子句搜索及变元翻转模块;

所述预处理模块,用于产生cnf公式变元的初始赋值,提取当前赋值下的不可满足子句以及所述cnf公式的子句和变元信息;

所述输出模块,用于输出所述cnf公式是否是可满足的;

所述子句搜索及变元翻转模块,用于按照预设的最大指定次数内以第一线程、第二线程、第三线程和第四线程按流水线执行策略同步循环执行搜索不可满足子句并按照一定概率对子句变元进行翻转并存储变元翻转后不可满足的子句,并将求解结果发送给输出模块。

2.如权利要求1所述的一种基于流水线执行策略的硬件sat求解器,其特征在于,

所述硬件sat求解器还包括:地址映射表、子句映射表、变元映射表和fifo树;

所述地址映射表,用于将预处理模块发送的子句数据存储在片上存储器中的地址;

所述子句映射表,用于在地址映射表中记录的片上存储器中的地址上存储子句数据;

所述变元映射表,用于存储初始赋值的子句以及变元翻转后的子句;

所述fifo树,用于存储变元翻转后不可满足的子句。

3.如权利要求2所述的一种基于流水线执行策略的硬件sat求解器,其特征在于,

所述子句搜索及变元翻转模块按照预设的最大指定次数内以第一线程、第二线程、第三线程和第四线程按流水线执行策略同步循环执行搜索不可满足子句并按照一定概率对子句变元进行翻转并存储变元翻转后不可满足的子句,具体包括:

一个循环周期为十二个时钟周期;

所述第一线程在第一个时钟周期内,执行选择所述fifo树中第一不可满足子句并根据所述第一不可满足子句的第一变元读地址映射表;

所述第一线程在第二个时钟周期内,执行根据所述第一不可满足子句的第一变元读子句映射表,并执行根据所述第一不可满足子句的第二变元读地址映射表;

所述第一线程在第三个时钟周期内,执行根据所述第一不可满足子句的第一变元读变元映射表,并执行根据所述第一不可满足子句的第二变元读子句映射表,并执行根据所述第一不可满足子句的第三变元读地址映射表;

所述第一线程在第四个时钟周期内,执行评估根据所述第一不可满足子句的第一变元读变元映射表获得的子句并暂存评估为不可满足的第二不可满足子句,并执行根据所述第一不可满足子句的第二变元读变元映射表,并执行根据所述第一不可满足子句的第三变元读子句映射表;

所述第一线程在第五个时钟周期内,执行计算所述第二不可满足子句的第一变元的break-value值并排序,并执行根据所述第一不可满足子句的第二变元读变元映射表获得的子句并暂存评估为不可满足的第三不可满足子句,并执行根据所述第一不可满足子句的所述第三变元读变元映射表;

所述第一线程在第六个时钟周期内,执行计算所述第二不可满足子句的第二变元的break-value值并排序,并执行计算所述第三不可满足子句的第一变元的break-value值并排序,并执行根据所述第一不可满足子句的第三变元读变元映射表获得的子句并暂存评估为不可满足的第四不可满足子句;

所述第一线程在第七个时钟周期内,执行计算所述第二不可满足子句的第三变元的break-value值并排序,并执行计算所述第三不可满足子句的第二变元的break-value值并排序,并执行计算所述第四不可满足子句的第一变元的break-value值并排序,并执行根据概率选择变元进行翻转并选择翻转后的不可满足子句;

所述第一线程在第八个时钟周期内,执行计算所述第三不可满足子句的第三变元的break-value值并排序,并执行计算所述第四不可满足子句的第二变元的break-value值并排序,并执行根据概率选择变元进行翻转并选择翻转后的不可满足子句;

所述第一线程在第九个时钟周期内,执行计算所述第四不可满足子句的第三变元的break-value值并排序,并执行根据概率选择变元进行翻转并选择翻转后的不可满足子句;

所述第一线程在第十个时钟周期内,执行根据概率选择变元进行翻转并选择翻转后的不可满足子句,并收集变元翻转后不可满足的子句并存储到fifo树;

所述第一线程在第十一个时钟周期内,执行根据概率选择变元进行翻转并选择翻转后的不可满足子句,并收集变元翻转后不可满足的子句并存储到fifo树;

所述第一线程在第十二个时钟周期内,执行根据概率选择变元进行翻转并选择翻转后的不可满足子句,并收集变元翻转后不可满足的子句并存储到fifo树。

4.如权利要求3所述的一种基于流水线执行策略的硬件sat求解器,其特征在于,

所述第二线程、第三线程和第四线程的执行内容与所述第一线程的执行内容相同。

5.如权利要求4所述的一种基于流水线执行策略的硬件sat求解器,其特征在于,

所述第二线程的启动时间比所述第一线程的启动时间滞后三个时钟周期;所述第三线程的启动时间比所述第二线程的启动时间滞后三个时钟周期;所述第四线程的启动时间比所述第三线程的启动时间滞后三个时钟周期。

6.如权利要求1所述的一种基于流水线执行策略的硬件sat求解器,其特征在于,

所述将变元翻转后不可满足的子句存储到fifo树,占用12个时钟周期。


技术总结
本发明提供了一种基于流水线执行策略的硬件SAT求解器,包括预处理模块、输出模块和子句搜索及变元翻转模块。其中,预处理模块,用于产生CNF公式变元的初始赋值、提取当前赋值下的不可满足子句以及所述CNF公式的子句和变元信息;输出模块,用于输出所述CNF公式是否是可满足的;子句搜索及变元翻转模块,用于按照预设的最大指定次数内以第一线程、第二线程、第三线程和第四线程按流水线执行策略同步循环执行搜索不可满足子句并按照一定概率对子句变元进行翻转并存储变元翻转后不可满足的子句。本发明提供的硬件SAT求解器在求解SAT问题过程中采用流水线策略,实现了流水线并行求解,提高了硬件系统的工作时钟频率和吞吐率,增强了求解器的处理能力。

技术研发人员:张建民;马柯帆;陆平静;孙岩;董德尊;罗章;欧洋;王强;齐星云;曹继军;戴艺
受保护的技术使用者:中国人民解放军国防科技大学
技术研发日:2019.12.31
技术公布日:2020.05.12
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1