发明名称 一种有限状态机动态功耗与峰值电流优化方法
摘要 本发明公开了一种有限状态机优化方法,优点在于提出的方法通过传统的有限状态机功耗优化算法得到状态分配解,估算该解的峰值电流及动态功耗,然后对该解应用基于状态位取反的启发式优化方法进行重新编码,通过比较重新编码后的峰值电流与动态功耗,首先优化峰值电流,然后在不影响峰值电流的基础上,继续优化动态功耗,最终形成一组新的状态分配解来实现动态功耗与峰值电流的优化。相比于传统的有限状态机自动化设计方法,提出的方法不仅优化了峰值电流,提高了系统可靠性,而且降低了有限状态机的动态功耗,即丰富了有限状态机自动设计优化方法,又降低了设计成本。通过实例验证,本发明的方法能有效降低有限状态机峰值电流与动态功耗。
申请公布号 CN102682157B 申请公布日期 2014.06.25
申请号 CN201210101887.4 申请日期 2012.04.09
申请人 宁波大学 发明人 夏银水;储著飞;王伦耀
分类号 G06F17/50(2006.01)I 主分类号 G06F17/50(2006.01)I
代理机构 宁波奥圣专利代理事务所(普通合伙) 33226 代理人 邱积权
主权项 1.一种有限状态机动态功耗与峰值电流优化方法,其特征在于包括以下步骤:步骤①:给定一个包含n个状态的有限状态机及其状态分配解C=(c<sub>0</sub>,c<sub>1</sub>,c<sub>2</sub>,…c<sub>n-1</sub>),设定<img file="FDA0000474044550000018.GIF" wi="230" he="66" />个状态寄存器用来存储相应的状态分配解;有限状态机中状态从c<sub>i</sub>到c<sub>j</sub>的跳变过程中0翻转到1的数目为<img file="FDA0000474044550000011.GIF" wi="123" he="76" />i≠j,i∈[0,n),j∈[0,n),而从1翻转到0的数目为<img file="FDA0000474044550000012.GIF" wi="124" he="76" />从c<sub>i</sub>到c<sub>j</sub>的跳变过程中,其峰值为<img file="FDA0000474044550000013.GIF" wi="495" he="76" />整个有限状态机的峰值电流为所有状态跳变过程中所引起的最大峰值<img file="FDA0000474044550000014.GIF" wi="257" he="76" />得出有限状态机的峰值电流初始值<img file="FDA0000474044550000015.GIF" wi="410" he="76" />同时根据估算得出动态功耗初始值power<sub>init</sub>,设定m个二进制变量flag<sub>k</sub>用来标识状态寄存器是否添加了反相器完成取反操作,k为整数,k∈[0,m),flag<sub>k</sub>的初始值为0,表示状态寄存器k未完成取反操作;flag<sub>k</sub>的值为1,表示状态寄存器k已完成取反操作;步骤②:对于状态寄存器k,若flag<sub>k</sub>=0,则根据当前的状态分配解,将状态寄存器k所存储的二进制值全部取反,得出当前的峰值电流值peak<sub>current</sub>存入数组A<sub>peak</sub>[m]中,得出当前的动态功耗值power<sub>current</sub>存入数组A<sub>power</sub>[m]中;该步骤一直持续到全部m个状态寄存器被遍历;步骤③:比较peak<sub>init</sub>与数组A<sub>peak</sub>[m]中的值,将峰值电流得到最大程度下降的相关状态寄存器记录到集合R中;然后将power<sub>init</sub>与R中的状态寄存器的动态功耗值A<sub>power</sub>[r]进行比较,r∈R,r∈[0,m),记录动态功耗得到最大程度下降的状态寄存器l,l∈R,l∈[0,m),更新当前的峰值电流初始值peak<sub>init</sub>为状态寄存器l取反后得到的峰值电流值<img file="FDA0000474044550000016.GIF" wi="201" he="72" />同时更新当前的动态功耗初始值power<sub>init</sub>为状态寄存器l取反后得到的动态功耗值<img file="FDA0000474044550000017.GIF" wi="234" he="72" />并且置flag<sub>l</sub>=1,清空数组A<sub>peak</sub>[m]和A<sub>power</sub>[m]中的值;步骤④:重复步骤②,步骤③直到当前解满足以下(1)、(2)两个条件之一,然后返回当前的所有flag<sub>k</sub>的值,k∈[0,m);定义当前解的峰值电流为x<sub>c</sub>,动态功耗为y<sub>c</sub>,(1)为x<sub>c</sub>&gt;peak<sub>init</sub>;(2)为x<sub>c</sub>=peak<sub>init</sub>且y<sub>c</sub>≥power<sub>init</sub>;步骤⑤:根据得到的结果,对于全部m个状态寄存器,若flag<sub>k</sub>=1,则对状态寄存器k所存储的值完成取反,完成有限状态机动态功耗与峰值电流优化。
地址 315211 浙江省宁波市江北区风华路818号