[发明专利]对来自多个指令集的指令进行译码有效
| 申请号: | 201180048887.6 | 申请日: | 2011-09-29 |
| 公开(公告)号: | CN103154883A | 公开(公告)日: | 2013-06-12 |
| 发明(设计)人: | 西蒙·约翰·克拉斯克 | 申请(专利权)人: | ARM有限公司 |
| 主分类号: | G06F9/30 | 分类号: | G06F9/30 |
| 代理公司: | 北京东方亿思知识产权代理有限责任公司 11258 | 代理人: | 李晓冬 |
| 地址: | 英国*** | 国省代码: | 英国;GB |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 来自 指令 进行 译码 | ||
技术领域
本发明涉及数据处理领域,尤其涉及对来自不同指令集的指令进行译码。
背景技术
可使用来自不同指令集的指令的处理器是已知的。例如,英国剑桥的具有使用ARM指令集和Thumb指令集的处理器,其中Thumb指令为16位宽,而ARM指令为32位宽。为了使译码器知道正在使用哪个指令集,在对指令进行编码时使用自由位来指示该指令为ARM指令还是Thumb指令。
在某些处理器架构中,存在明确定义该架构所支持的指令的编码集合,并且存在允许该架构的用户定义它们自身的指令的自由编码集合。在提供允许用户定义它们自身的指令的编码空间的处理器架构中,使用指令编码的位指示特定指令集会产生一些自身的问题。
因此,希望能够在不过分增加编码空间的同时允许用户定义它们自己的指令的条件下,提供多个指令集。
发明内容
从第一方面看,本发明提供了一种数据处理设备,包括:用于对指令进行译码的指令译码器;以及用于响应于由所述指令译码器译码的指令而处理数据的处理器;所述指令译码器被配置为对来自多个不同指令集的指令进行译码,所述指令集包括基本指令集以及至少一个进阶指令集;所述基本指令集包括多个指令,其中每个指令包括用于唯一地标识所述指令的预定操作码,并且所述至少一个进阶指令集包括多个指令,其中每个指令包括用于标识所述至少一个进阶指令集中的所述指令的操作码;所述指令译码器被配置为根据基本译码规则集合对具有所述多个预定操作码中的一个预定操作码的指令进行译码,以及根据由指示符值判定的译码规则集合对具有所述至少一个进阶指令集的所述操作码中的一个操作码的指令进行译码,其中所述指示符值指示所述至少一个进阶指令集中的哪个进阶指令集当前将被译码。
本发明认识到提供用户可定义它们自身的指令的编码空间是有利的,然而本发明也认识到如果存在总是可被译码的基本指令集也是有利的。
本发明通过提供基本指令集和至少一个进阶指令集(further instruction set)来解决这些相互矛盾的需求,其中指令译码器根据基本规则集合来对基本指令集进行译码,译码器根据指示符值所判定的规则集合来对进阶指令集进行译码。
这样,通过简单地使用指示符值,可提供数种由不同规则译码的不同指令集。这意味着,相同的编码可被用来根据指示符值所指定的以及所选择的指令集定义不同的指令。这样,系统的用户可定义它们自身的指令,并且这些指令可具有指示符值将触发其使用的译码规则。
通过提供基本指令集从而使得它们可总是被译码,并且提供在指示符位被适当设置的情况下可被译码的进阶指令,在不过度增大编码空间的条件下提供了具有总是被定义的指令以及具有非常大量的进阶指令的优点。
在某些实施例中,所述指令译码器被配置为对至少两个进阶指令集进行译码,所述至少两个进阶指令集至少具有一些共同的操作码。
如果用于进阶指令集的编码空间被共享从而使得用于不同指令集中的指令的操作码相同但映像至不同指令也是有利的。这是编码空间的有效使用,并且意味着通过使用指示符值可定义大量的不同指令。
在某些实施例中,所述数据处理设备包括用于存储所述指示符值的状态寄存器。
虽然指示符值可被存储于许多地方,但在某些实施例中该指示符值被存储于状态寄存器中。这是存储指示符值的方便的地方且允许指示符值被简单地设置与读取。
在某些实施例中,所述指令译码器响应于指令集更新指令,将存储于所述状态寄存器中的所述指示符值设置为所述指令中指定的值,所述指令集更新指令为来自所述基本指令集的指令。
指示符值可由指令集更新指令更新。这样,希望使用特定指令集的程序设计者可简单地更新指示符值来指示此指令集,随后译码器将根据指示符值所指示的译码规则在进阶指令集的译码空间中对指令进行译码。当需要新的指令集时,指令集更新指令被简单地再次用以改变指示符值,以指示该新需要的指令集。
在某些实施例中,所述处理器被配置为响应于指示所述程序流将分支的分支指令而存储返回地址和所述指示符值,从而使得在从所述分支返回时,所述返回地址和指示符值能够被恢复。
当程序分支到子例程时,由于此子例程可使用不同的进阶指令集,所以可能会出现潜在问题。为了解决此问题,除了存储指示在该分支完成后程序应返回的下一指令的地址的返回地址之外,当前指示符值也被存储,从而使得在指示符值于子例程期间中被改变的情况下,指示符值可于该程序从该子例程返回时被重置为其初始值。
在某些实施例中,所述数据处理设备被配置为在所述分支之前重置所述指示符值。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于ARM有限公司,未经ARM有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201180048887.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种用于高浓度液体的自动静态混合机
- 下一篇:挖掘机斗齿





