[发明专利]一种CPU中优化寄存器访问的方法有效
申请号: | 201910710720.X | 申请日: | 2019-08-01 |
公开(公告)号: | CN110532030B | 公开(公告)日: | 2023-07-07 |
发明(设计)人: | 李晓辉;胡胜发 | 申请(专利权)人: | 广州安凯微电子股份有限公司 |
主分类号: | G06F9/312 | 分类号: | G06F9/312;G06F9/30;G06F9/318 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 510555 广*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 cpu 优化 寄存器 访问 方法 | ||
本发明公开了一种CPU中优化寄存器访问的方法,包括:根据预设的映射策略将数据寄存器和内存栈建立映射关系;根据所述数据寄存器和内存栈的映射关系,将栈存取操作指令进行精简,并根据精简后的操作指令进行数据访问操作。在建立数据寄存器与内存栈的映射关系后,可假定所有的临时变量都在栈上,系统直接访问寄存器即可访问内存栈上这些变量。通过实施本发明,能够在大幅增加数据寄存器的同时,精简了大量的栈存取代码,从而有效降低了编译的复杂度与难度,有效提升了CPU性能。
技术领域
本发明涉及编译优化技术领域,尤其是涉及一种CPU中优化寄存器访问的方法。
背景技术
寄存器是CPU的核心组成部分,它是高速存储部件,用来暂存指令、数据和地址。寄存器的存在大大加快了计算及内存访问效率,因此理论上寄存器的数量越多越好。现有的X86架构上寄存器只有几个,ARM则有十多个,RISC-V则更多,有三十多个。但是,以目前技术状况,想要进一步增加寄存器的数量非常困难,因为寄存器过多会增加指令复杂度,加大了编译器的编译难度,这样会由于增加代码量而导致降低系统执行效率。因此,现有技术无法通过增加寄存器数量来有效提高系统运行效率。
发明内容
本发明实施例所要解决的技术问题在于,提供了一种CPU中优化寄存器访问的方法,在大幅增加寄存器数量时能够避免由于增加寄存器而引发的缺陷,从而能够通过增加寄存器数量来有效提高系统运行效率。
为了解决上述技术问题,本发明实施例提供了一种CPU中优化寄存器访问的方法,包括:
根据预设的映射策略将数据寄存器和内存栈建立映射关系;
根据所述数据寄存器和内存栈的映射关系,将栈存取操作指令进行精简,并根据精简后的操作指令进行数据访问操作。
进一步地,所述CPU中优化寄存器访问的方法还包括:
根据所述预设的映射策略对栈指针进行设置,以使系统在栈指针移动时对内存栈和数据寄存器进行同步操作。
进一步地,所述CPU中优化寄存器访问的方法还包括:
根据所述预设的映射策略对编译器进行修改,以对寄存器分配方案、变量存取方式以及汇编生成形式进行调整。
进一步地,所述根据所述数据寄存器和内存栈的映射关系,将栈存取操作指令进行精简,并根据精简后的操作指令进行数据访问操作,包括:
响应变量的栈存取需求,根据所述数据寄存器和内存栈的映射关系,对变量的出入栈指令进行精简,并根据精简后的操作指令对变量进行数据访问操作。
进一步地,所述根据所述数据寄存器和内存栈的映射关系,将栈存取操作指令进行精简,并根据精简后的操作指令进行数据访问操作,还包括:
响应子函数的调用请求,根据所述数据寄存器和内存栈的映射关系,对子函数的出入栈指令进行精简,并根据精简后的操作指令对变量进行数据访问操作。
进一步地,所述根据所述数据寄存器和内存栈的映射关系,将栈存取操作指令进行精简,并根据精简后的操作指令进行数据访问操作,还包括:
响应中断函数的访问请求,根据所述数据寄存器和内存栈的映射关系,对中断函数的出入栈指令进行精简,并根据精简后的操作指令对中断函数进行数据访问操作。
进一步地,所述根据所述数据寄存器和内存栈的映射关系,将栈存取操作指令进行精简,并根据精简后的操作指令进行数据访问操作,还包括:
响应多线程切换请求,根据所述数据寄存器和内存栈的映射关系,对线程切换的出入栈指令进行精简,并根据精简后的操作指令进行线程切换操作。
与现有技术相比,本发明具有如下有益效果:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广州安凯微电子股份有限公司,未经广州安凯微电子股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910710720.X/2.html,转载请声明来源钻瓜专利网。