[发明专利]一种低功耗程序指令编译方法及系统有效
申请号: | 201711051040.9 | 申请日: | 2017-10-31 |
公开(公告)号: | CN109725904B | 公开(公告)日: | 2021-10-22 |
发明(设计)人: | 吴玉平;陈岚;孙旭 | 申请(专利权)人: | 中国科学院微电子研究所 |
主分类号: | G06F8/41 | 分类号: | G06F8/41 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 王宝筠 |
地址: | 100029 北京市朝阳*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 功耗 程序 指令 编译 方法 系统 | ||
1.一种低功耗程序指令编译方法,其特征在于,包括:
获取程序指令序列;
将所述程序指令序列划分为多个程序指令序列片段;
分别编译每个程序指令序列片段,得到所述每个程序指令序列片段对应的控制代码;其中,所述控制代码用于控制预先设置的设定数量的可重构的指令译码器的动态重构,使动态可重构的指令译码器对程序指令序列片段进行译码处理;并且,与程序指令序列片段对应的控制代码,是通过编译程序指令序列片段得到的多个控制代码中的、重构指令译码器的功耗较低或者最低的控制代码;控制代码重构指令译码器的功耗,是指采用控制代码重构预先设置的设定数量的子译码器,并利用重构的译码器对程序指令序列片段进行译码的功耗;
分别根据每个控制代码编译生成写控制寄存器指令,得到所述每个程序指令序列片段对应的写控制寄存器指令序列;
将所述每个程序指令序列片段,以及所述每个程序指令序列片段对应的写控制寄存器指令序列进行组合得到新的程序指令序列;其中,在所述新的程序指令序列中,程序指令序列片段置于该程序指令序列片段对应的写控制寄存器指令序列之后。
2.根据权利要求1所述的方法,其特征在于,在获取所述程序指令序列之后,在将所述程序指令序列划分为多个程序指令序列片段之前,该方法还包括:
对所述程序指令序列进行指令顺序调整处理。
3.根据权利要求1所述的方法,其特征在于,在分别编译每个程序指令序列片段,得到所述每个程序指令序列片段对应的控制代码之后,该方法还包括:
优化对所述程序指令序列的划分结果,使划分得到的多个程序指令序列片段的译码能耗之和最低。
4.根据权利要求3所述的方法,其特征在于,所述优化对所述程序指令序列的划分结果,使划分得到的多个程序指令序列片段的译码能耗之和最低,包括:
确定将所述程序指令序列划分为多个程序指令序列片段的每一种划分方法;
分别计算得到采用每一种划分方法将所述程序指令序列划分为多个程序指令序列片段后,得到的每个程序指令序列片段的译码能耗值和重构能耗值;
根据所述每个程序指令序列片段的译码能耗值和重构能耗值,分别计算得到采用每一种划分方法将所述程序指令序列划分为多个程序指令序列片段后得到的多个程序指令序列片段的能耗值之和;
选择能耗值之和最小的多个程序指令序列片段,作为最终确定的将所述程序指令序列划分为多个程序指令序列片段得到的多个程序指令序列片段。
5.根据权利要求1所述的方法,其特征在于,所述分别编译每个程序指令序列片段,得到所述每个程序指令序列片段对应的控制代码,包括:
分别编译每个程序指令序列片段,得到所述每个程序指令序列片段对应的多组控制代码;
分别确定根据程序指令序列片段对应的每一组控制代码重构预先设置的多个子译码器使重构的子译码器对该程序指令序列片段进行译码处理的能耗值;
为每个程序指令序列片段选择任一较低的能耗值对应的控制代码或最低的能耗值对应的控制代码,作为程序指令序列片段对应的控制代码。
6.根据权利要求1所述的方法,其特征在于,所述控制代码还用于:对所述动态可重构的指令译码器中未起指令译码作用的指令译码器进行电源管理,降低所述未起指令译码作用的指令译码器的静态功耗。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院微电子研究所,未经中国科学院微电子研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711051040.9/1.html,转载请声明来源钻瓜专利网。