180 likes | 345 Views
基于 STE 的自动抽象算法研究和应用. 计算机科学重点实验室 于宝新 2012.9.21. 概要. STE 概述 符号索引技术 三输入与门电路 & 符号索引 自动索引算法 Why ? Power Estimation 介绍 效果 Q&A. STE 概述. STE 概述: STE(Symbolic Trajectory Evaluation) 方法是一种基于符号模拟的模型检验方法,它将符号模拟技术的电路建模能力与时序逻辑模型检验技术的自动分析能力结合,使得对于数字电路的验证效率得到了很大的提高。 符号化 是指 在轨迹公式中允许符号化变量的存在
E N D
基于STE的自动抽象算法研究和应用 计算机科学重点实验室 于宝新 2012.9.21
概要 • STE概述 • 符号索引技术 • 三输入与门电路 & 符号索引 • 自动索引算法 Why? • Power Estimation介绍 • 效果 • Q&A
STE概述 STE概述: STE(Symbolic Trajectory Evaluation)方法是一种基于符号模拟的模型检验方法,它将符号模拟技术的电路建模能力与时序逻辑模型检验技术的自动分析能力结合,使得对于数字电路的验证效率得到了很大的提高。 符号化是指在轨迹公式中允许符号化变量的存在 给定电路M,描述的公式的形式为:A => C
符号索引技术 Symbolic Indexing 在STE中,给定电路M,描述的公式的形式为:A => C。利用STE的偏序状态空间,实现基于X的数据抽象,这就是“符号索引”技术。这项技术被广泛用于数据电路,如存储器的验证。
三输入与门电路 & 符号索引 a c o & b o c
三输入与门电路 & 符号索引 a c o & b o c t1 t2 t3
三输入与门电路 & 符号索引 索引表示: ¬x1∧¬x2 → a is 0 and x1∧¬x2 → b is 0 and ¬x1∧x2→ c is 0 and x1∧x2 → a is 1 and b is 1 and c is 1 ⇒ (¬x1∨¬x2 → o is 0 and x1∧x2 → o is 1) a c o & b o c t1 t2 t3 x1 x2
自动索引算法 Why? STE使我们能够比较灵活的实现基于X的数据抽象,比如:减少布尔变元的个数,即上面提到的在符号表示层将原来的{t1, t2, t3}三个变元减少到后来的{x1, x2}两个变元,但同时又覆盖用户说明中的所有约束。 在很多的应用中,都需要用户手动的建立正确的符号索引的编码。即我们应用“符号索引”技术,在覆盖约束的情况下,减少符号变元的个数。有时候,手工编码是很困难的,对抽象性质的编码很多时候不太明显,而且要很巧妙,比如上例给出:a&b&c->o is 1,这从很大程度上制约了STE在更多的问题上展现其能力。
Power Estimation模拟方法 芯片的设计问题,目前芯片的集成度越来越高,能耗也越来越高,散热也越来越影响性能,于是,低能耗也成了芯片设计的一项要求,我们的工作就是对一种设计方式进行测评,估计芯片的峰值能耗,比较几种相同功能的芯片设计在可能能耗上的差别。其中并非对芯片的实际功耗进行计算,而是采用了一种模拟的方法,我们做一些假设,我们知道,门电路在连续两个时刻的输出如果有信号变化,那么将消耗能量,同时,越远离输入的地方的门电路需要的能量驱动越高,于是我们就有了如下方法: 原始电路为t时刻输入,副本为t+1时刻电路,这样,将所有的内部门的输出进异或运算(图中所有彩线),那么所有输出为true的门在两个时刻的输出上有信号的变化,同时我们给所有的门一个权重,即本着离输入越远,门的权重越高(同时还和不同的门的性质有关系),即它信号变化时,需要更高的能量消耗。这样我们就可以通过不同的输入模拟其可达的尽可能大的能量消耗。
d d` a a` f f` Power Estimation介绍 e e’ b b` 原始电路图 g g` c c` 原始电路图副本
小例子的结果 如下方法计算上例,在我们给出d, e, f, g的权重分别为(1,2,1,1)的情况下,最大的能耗为5。即t时刻可以为(a, b, c) = (1, 1, 0)为电路t时刻的输入,此时(d, e, f, g) = (0, 0, 1, 0),而t+1时刻的(a`, b`, c`) = (0, 1, 1),此时(d`, e`, f`, g`) = (1, 1, 0, 1),这样,分别对内部门输出进行异或运算,则可以使某一时刻所有的门都有信号变化。此时的权重的和为5,而此时的赋值分别是t时刻(1, 1, 0)和t+1时刻(0, 1, 1)
Initial Idea • -automatic_build_abstraction Aiming at reducing the binary variables used in the forward functions • -but We found that, not a good idea. reasons: raising the number of binary variable instead of reducing it • -why? Our conclusion(pb method we used and the problem we deal with)
Current method we use • -first heuristic method used “Hill climbing” method at first problem: perfects not so bad, but not so good as well • -reasons the short coming of the method itself 1. local optimum 2. rely too much on the initial value • -we got it, we deal with it “simulation annealing” method
simulation annealing • -jump out of the local optimum • -not enough test on that • -the probability we used I just give a value in casual • -also one initial value • -several initial values • -here we go Genetic Algorithm
Genetic Algorithm • -too much parameters • -not enough test on the data • -operators we design for the problem 4 core operators(using probablity): 1. initial value 2. evaluation method 3. genetic operator 4. mutation operator
Some data we got • CPLEX is an optimizer from IBM • GA: population 200, generation 50 • GA on test: population 1000, generation (length input_vars)