[发明专利]一种低功耗程序指令编译方法及系统有效
申请号: | 201711051040.9 | 申请日: | 2017-10-31 |
公开(公告)号: | CN109725904B | 公开(公告)日: | 2021-10-22 |
发明(设计)人: | 吴玉平;陈岚;孙旭 | 申请(专利权)人: | 中国科学院微电子研究所 |
主分类号: | G06F8/41 | 分类号: | G06F8/41 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 王宝筠 |
地址: | 100029 北京市朝阳*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 功耗 程序 指令 编译 方法 系统 | ||
本发明提出一种程序指令编译方法,包括:获取程序指令序列;将所述程序指令序列划分为多个程序指令序列片段;分别编译每个程序指令序列片段,得到所述每个程序指令序列片段对应的控制代码;分别根据每个控制代码编译生成写控制寄存器指令,得到所述每个程序指令序列片段对应的写控制寄存器指令序列;将所述每个程序指令序列片段,以及所述每个程序指令序列片段对应的写控制寄存器指令序列进行组合得到新的程序指令序列。上述程序指令编译方法编译的指令序列,适用于利用动态可重构的低功耗的指令译码器进行译码。对上述编译处理后的程序指令序列进行译码时,可以使重构的子译码器的译码功能更加符合实际需求,能够降低译码器功耗。
技术领域
本发明涉及计算机程序编译技术领域,尤其涉及一种低功耗程序指令编译方法及系统。
背景技术
处理器是片上系统的重要组成部分,处理器执行每一指令任务需要经过多个阶段,即取指、译码、执行、写存储器、写寄存器等阶段,无论是非流水线式还是流水线式的指令处理方式,其中的指令译码器电路在处理器处理每一指令时均处于上电工作状态,在现有技术下为了降低指令译码器的功耗,多采用指令耦合分组技术将指令分组以实现分级分段对指令进行译码,其核心是基于指令的执行频度的差异将指令译码器分解为若干耦合的子译码器。
基于指令的执行频度的差异将指令译码器分解为若干耦合的子译码器是针对处理器运行的常见软件程序中各指令出现频度不同而进行的技术改进。该译码器在处理器中是固化的(hard-code)电路,是对整个程序起作用,基于统计信息降低译码部分的能耗,其对具体软件程序或其中的代码片断的译码能耗不一定是最优的。因此,有待于研究更加灵活的动态可重构的低功耗的指令译码器,通过动态重构使得译码器对指令序列片段进行译码的能耗更低。
现有的程序编译技术都是针对固化了译码器电路的处理器进行程序编译。对于内置动态可重构的低功耗的指令译码器的处理器,尚没有针对该处理器的程序指令编译方法能够使得上述动态可重构的低功耗的指令译码器发挥其动态重构功能,从而降低译码器程序指令片段的译码能耗。
发明内容
基于上述现有技术的缺陷和不足,本发明提出一种低功耗程序指令编译方法及系统,经过该方法编译的指令序列,适用于利用动态可重构的低功耗的指令译码器进行译码。
为了达到上述目的,本发明提出如下技术方案:
一种低功耗程序指令编译方法,包括:
获取程序指令序列;
将所述程序指令序列划分为多个程序指令序列片段;
分别编译每个程序指令序列片段,得到所述每个程序指令序列片段对应的控制代码;其中,所述控制代码用于重构动态可重构的指令译码器对程序指令序列片段进行译码处理;
分别根据每个控制代码编译生成写控制寄存器指令,得到所述每个程序指令序列片段对应的写控制寄存器指令序列;
将所述每个程序指令序列片段,以及所述每个程序指令序列片段对应的写控制寄存器指令序列进行组合得到新的程序指令序列;其中,在所述新的程序指令序列中,程序指令序列片段置于该程序指令序列片段对应的写控制寄存器指令序列之后。
优选地,在获取所述程序指令序列之后,在将所述程序指令序列划分为多个程序指令序列片段之前,该方法还包括:
对所述程序指令序列进行指令顺序调整处理。
优选地,在分别编译每个程序指令序列片段,得到所述每个程序指令序列片段对应的控制代码之后,该方法还包括:
优化对所述程序指令序列的划分结果,使划分得到的多个程序指令序列片段的译码能耗之和最低。
优选地,所述优化对所述程序指令序列的划分结果,使划分得到的多个程序指令序列片段的译码能耗之和最低,包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院微电子研究所,未经中国科学院微电子研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711051040.9/2.html,转载请声明来源钻瓜专利网。