[发明专利]指令压缩方法及装置有效
| 申请号: | 201811391262.X | 申请日: | 2018-11-21 |
| 公开(公告)号: | CN111209044B | 公开(公告)日: | 2022-11-25 |
| 发明(设计)人: | 刘权胜;孙浩;余红斌 | 申请(专利权)人: | 展讯通信(上海)有限公司 |
| 主分类号: | G06F9/38 | 分类号: | G06F9/38 |
| 代理公司: | 北京兰亭信通知识产权代理有限公司 11667 | 代理人: | 赵永刚 |
| 地址: | 201203 上海市浦东新区浦东*** | 国省代码: | 上海;31 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 指令 压缩 方法 装置 | ||
本发明提供一种指令压缩方法及装置。所述方法包括:在预译码阶段检测可以指令压缩的指示信号,并将该指示信号和指令同时写入指令缓冲;在指令缓冲中读指令的时候检查两条指令之间是否可以压缩;如果两条指令之间可以压缩,则对两条指令进行压缩;对压缩后的指令进行译码操作。本发明能够在不增加额外的硬件资源条件下,根据不同指令有效域和指令类型进行压缩。
技术领域
本发明涉及计算机架构技术领域,尤其涉及一种指令压缩方法及装置。
背景技术
随着终端设备、桌面办公及服务器的迅速发展,对处理器的性能与功耗要求变得越来越高;芯片实现的工艺制程越来越小;Moore定律也逼近于极限;处理器的指令级并行、线程级并行及多核技术实现提升性能的幅度也趋于平缓。处理器的指令集并行度越高,实现的复杂度也就越高,时序难以收敛。多线程技术大大提高了处理器内部的资源利用率,目前也不能实现太大的IPC(Instructions Per Clock,每时钟周期执行的指令数目)提升。多核技术带来了功耗和面积过快的增长。处理器的性能、面积及功耗之间的关系决定了架构的发展。因此,对能够提升处理器的IPC,并且对面积和功耗影响较小的方法有迫切的需求。
ARM指令集的指令长度是16bit或者32bit,但是每条指令的有效源操作数和目的操作数数目不固定。例如有些指令存在3个源操作数,有些指令不存在源操作数。ARM的指令在翻译为UOP(微指令)的过程中,有些指令对应的UOP的域是无效的,导致这些指令的一些域没有得到充分利用,白白被浪费。另外,每条指令的UOP都被单独分配了重命名、保留站、执行单元和重排序队列资源。
现有技术利用额外增加一个buffer存储CISC指令
需要单独的一个buffer存储一条CISC指令,消耗额外的硬件资源。
发明内容
本发明提供的指令压缩方法及装置,能够在不增加额外的硬件资源条件下,根据不同指令有效域和指令类型进行压缩。
第一方面,本发明提供一种指令压缩方法,包括:
在预译码阶段检测可以指令压缩的指示信号,并将该指示信号和指令同时写入指令缓冲;
在指令缓冲中读指令的时候检查两条指令之间是否可以压缩;
如果两条指令之间可以压缩,则对两条指令进行压缩;
对压缩后的指令进行译码操作。
可选地,在所述在预译码阶段检测可以指令压缩的指示信号之前,所述方法还包括:
在取指阶段根据取指令地址从指令缓存中取出指令;
在取指阶段和分支指令预测阶段进行信息汇集及处理。
可选地,所述对两条指令进行压缩包括:将跳转指令填充到另外一条指令的空闲域中,然后为压缩的指令分配一个新的指令操作码。
可选地,所述指示信号包括会影响N、C、Z、V位的指令以及条件跳转指令的指示。
可选地,所述对两条指令进行压缩包括:将一条影响N、C、Z、V位的指令与一条相邻条件跳转指令压缩成一条指令。
第二方面,本发明提供一种指令压缩装置,包括:
预译码单元,用于在预译码阶段检测可以指令压缩的指示信号,并将该指示信号和指令同时写入指令缓冲;
检查单元,用于在指令缓冲中读指令的时候检查两条指令之间是否可以压缩;
指令压缩单元,用于当两条指令之间可以压缩时,对两条指令进行压缩;
译码单元,用于对压缩后的指令进行译码操作。
可选地,所述装置还包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于展讯通信(上海)有限公司,未经展讯通信(上海)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811391262.X/2.html,转载请声明来源钻瓜专利网。





