发明名称 一种有限状态机动态功耗与峰值电流优化方法
摘要 本发明公开了一种有限状态机优化方法,优点在于提出的方法通过传统的有限状态机功耗优化算法得到状态分配解,估算该解的峰值电流及动态功耗,然后对该解应用基于状态位取反的启发式优化方法进行重新编码,通过比较重新编码后的峰值电流与动态功耗,首先优化峰值电流,然后在不影响峰值电流的基础上,继续优化动态功耗,最终形成一组新的状态分配解来实现动态功耗与峰值电流的优化。相比于传统的有限状态机自动化设计方法,提出的方法不仅优化了峰值电流,提高了系统可靠性,而且降低了有限状态机的动态功耗,即丰富了有限状态机自动设计优化方法,又降低了设计成本。通过实例验证,本发明的方法能有效降低有限状态机峰值电流与动态功耗。
申请公布号 CN102682157A 申请公布日期 2012.09.19
申请号 CN201210101887.4 申请日期 2012.04.09
申请人 宁波大学 发明人 夏银水;储著飞;王伦耀
分类号 G06F17/50(2006.01)I 主分类号 G06F17/50(2006.01)I
代理机构 宁波奥圣专利代理事务所(普通合伙) 33226 代理人 邱积权
主权项 1.一种有限状态机动态功耗与峰值电流优化方法,其特征在于包括以下步骤:步骤①:给定一个包含<img file="242715DEST_PATH_IMAGE001.GIF" wi="14" he="16" />个状态的有限状态机及其状态分配解<img file="928911DEST_PATH_IMAGE002.GIF" wi="121" he="22" />,设定<img file="73584DEST_PATH_IMAGE003.GIF" wi="76" he="24" />个状态寄存器用来存储相应的状态分配解;有限状态机中状态从<img file="187034DEST_PATH_IMAGE004.GIF" wi="16" he="25" />到<img file="112265DEST_PATH_IMAGE005.GIF" wi="18" he="26" />的跳变过程中0翻转到1的数目为<img file="274256DEST_PATH_IMAGE006.GIF" wi="33" he="26" />,<img file="601332DEST_PATH_IMAGE007.GIF" wi="32" he="20" />,<img file="823366DEST_PATH_IMAGE008.GIF" wi="52" he="21" />,<img file="406532DEST_PATH_IMAGE009.GIF" wi="54" he="21" />,而从1翻转到0的数目为<img file="434530DEST_PATH_IMAGE010.GIF" wi="33" he="26" />,从<img file="616113DEST_PATH_IMAGE004.GIF" wi="16" he="25" />到<img file="9048DEST_PATH_IMAGE005.GIF" wi="18" he="26" />的跳变过程中,其峰值为<img file="908871DEST_PATH_IMAGE011.GIF" wi="150" he="26" />,整个有限状态机的峰值电流为所有状态跳变过程中所引起的最大峰值<img file="474982DEST_PATH_IMAGE012.GIF" wi="72" he="26" />;得出有限状态机的峰值电流初始值<img file="448754DEST_PATH_IMAGE013.GIF" wi="124" he="26" />;同时根据估算得出动态功耗初始值<img file="74907DEST_PATH_IMAGE014.GIF" wi="53" he="22" />,设定<img file="134130DEST_PATH_IMAGE015.GIF" wi="17" he="14" />个二进制变量<img file="503932DEST_PATH_IMAGE016.GIF" wi="36" he="22" />用来标识状态寄存器是否添加了反相器完成取反操作,<img file="660107DEST_PATH_IMAGE017.GIF" wi="13" he="18" />为整数,<img file="893380DEST_PATH_IMAGE018.GIF" wi="58" he="21" />,<img file="502215DEST_PATH_IMAGE016.GIF" wi="36" he="22" />的初始值为0,表示状态寄存器<img file="410129DEST_PATH_IMAGE017.GIF" wi="13" he="18" />未完成取反操作;<img file="358493DEST_PATH_IMAGE016.GIF" wi="36" he="22" />的值为1,表示状态寄存器<img file="326449DEST_PATH_IMAGE019.GIF" wi="16" he="21" />已完成取反操作;步骤②:对于状态寄存器<img file="422581DEST_PATH_IMAGE019.GIF" wi="16" he="21" />,若<img file="71868DEST_PATH_IMAGE020.GIF" wi="58" he="22" />,则根据当前的状态分配解,将状态寄存器<img file="202635DEST_PATH_IMAGE017.GIF" wi="13" he="18" />所存储的二进制值全部取反,得出当前的峰值电流值<img file="279176DEST_PATH_IMAGE021.GIF" wi="58" he="22" />存入数组<img file="597025DEST_PATH_IMAGE022.GIF" wi="52" he="25" />中,得出当前的动态功耗值<img file="112319DEST_PATH_IMAGE023.GIF" wi="65" he="22" />存入数组<img file="533811DEST_PATH_IMAGE024.GIF" wi="57" he="25" />中;该步骤一直持续到全部<img file="843570DEST_PATH_IMAGE015.GIF" wi="17" he="14" />个状态寄存器被遍历;步骤③:比较<img file="648715DEST_PATH_IMAGE025.GIF" wi="46" he="22" />与数组<img file="639805DEST_PATH_IMAGE022.GIF" wi="52" he="25" />中的值,将峰值电流得到最大程度下降的相关状态寄存器记录到集合<img file="479585DEST_PATH_IMAGE026.GIF" wi="16" he="17" />中;然后将<img file="960245DEST_PATH_IMAGE014.GIF" wi="53" he="22" />与<img file="455948DEST_PATH_IMAGE026.GIF" wi="16" he="17" />中的状态寄存器的动态功耗值<img file="47466DEST_PATH_IMAGE027.GIF" wi="53" he="25" />进行比较,<img file="7332DEST_PATH_IMAGE028.GIF" wi="36" he="17" />,<img file="596576DEST_PATH_IMAGE029.GIF" wi="57" he="21" />,记录动态功耗得到最大程度下降的状态寄存器<img file="376314DEST_PATH_IMAGE030.GIF" wi="9" he="18" />,<img file="207741DEST_PATH_IMAGE031.GIF" wi="33" he="18" />,<img file="22113DEST_PATH_IMAGE032.GIF" wi="54" he="21" />,更新当前的峰值电流初始值<img file="844576DEST_PATH_IMAGE025.GIF" wi="46" he="22" />为状态寄存器<img file="49292DEST_PATH_IMAGE030.GIF" wi="9" he="18" />取反后得到的峰值电流值<img file="248192DEST_PATH_IMAGE033.GIF" wi="58" he="24" />,同时更新当前的动态功耗初始值<img file="917071DEST_PATH_IMAGE014.GIF" wi="53" he="22" />为状态寄存器<img file="848118DEST_PATH_IMAGE030.GIF" wi="9" he="18" />取反后得到的动态功耗值<img file="602447DEST_PATH_IMAGE034.GIF" wi="65" he="24" />,并且置<img file="605038DEST_PATH_IMAGE035.GIF" wi="54" he="22" />,清空数组<img file="66107DEST_PATH_IMAGE022.GIF" wi="52" he="25" />和<img file="230372DEST_PATH_IMAGE024.GIF" wi="57" he="25" />中的值;步骤④:重复步骤②,步骤③直到当前解满足以下(1)、(2)两个条件之一,然后返回当前的所有<img file="908216DEST_PATH_IMAGE016.GIF" wi="36" he="22" />的值,<img file="386601DEST_PATH_IMAGE018.GIF" wi="58" he="21" />;定义当前解的峰值电流为<img file="764493DEST_PATH_IMAGE036.GIF" wi="17" he="22" />,动态功耗为<img file="365239DEST_PATH_IMAGE037.GIF" wi="17" he="22" />,(1)为<img file="766264DEST_PATH_IMAGE038.GIF" wi="72" he="22" />;(2)为<img file="110658DEST_PATH_IMAGE039.GIF" wi="72" he="22" />且<img file="343056DEST_PATH_IMAGE040.GIF" wi="80" he="22" />;步骤⑤:根据得到的结果,对于全部<img file="52386DEST_PATH_IMAGE015.GIF" wi="17" he="14" />个状态寄存器,若<img file="3025DEST_PATH_IMAGE041.GIF" wi="56" he="22" />,则对状态寄存器<img file="321748DEST_PATH_IMAGE017.GIF" wi="13" he="18" />所存储的值完成取反,完成有限状态机动态功耗与峰值电流优化。
地址 315211 浙江省宁波市江北区风华路818号
您可能感兴趣的专利