[发明专利]预解码可变长度指令有效
申请号: | 201110378670.3 | 申请日: | 2007-04-20 |
公开(公告)号: | CN102591620A | 公开(公告)日: | 2012-07-18 |
发明(设计)人: | 罗德尼·韦恩·史密斯;布赖恩·迈克尔·斯坦普尔 | 申请(专利权)人: | 高通股份有限公司 |
主分类号: | G06F9/30 | 分类号: | G06F9/30;G06F9/318 |
代理公司: | 北京律盟知识产权代理有限责任公司 11287 | 代理人: | 刘国伟 |
地址: | 美国加利*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 解码 可变 长度 指令 | ||
分案申请的相关信息
本申请为发明名称为“预解码可变长度指令”的原中国发明专利申请的分案申请。原申请的申请号为200780015631.9;原申请的申请日为2007年4月20日;原发明专利申请案的优先权日为2006年5月4日。
技术领域
本发明大体上涉及处理器领域,且确切地说,涉及一种预解码可变长度指令以便识别未定义指令的方法。
背景技术
可变长度指令集架构在此项技术中是已知的。举例来说,当将Thumb(16位)扩展添加到ARM(32位)指令集时,所得的混合可视为可变长度指令集。作为另一实例,可执行Java代码包括一系列字节码,其中每个指令的长度的范围在2与256字节之间。一般来说,可变长度指令集包括具有基础尺寸的指令以及整数倍的基础尺寸的较长指令。
处理器架构及指令集随着时间而进化。确切地说,随着半导体技术的进步,可在硬件中呈现原来需要扩展性软件例行程序来实现的功能性。为了有效地利用高级硬件结构,将新指令添加到指令集。然而,稳定的处理器架构的一个特征是向后兼容性。也就是说,针对一个处理器架构编写的软件应当可在符合所述架构的较老式的处理器上执行,即使所述较老式的处理器并未实施最近的功能性或直接执行最近的指令。因此,常见的处理器架构包含产生异常的“未定义”指令,且在软件中执行与未定义的指令相关联的功能。
用来优化指令解码的常规高性能处理器的一种常见方法是预解码。预解码器是在于指令高速缓冲存储器(I-cache)中存储指令之前检查并部分地解码从存储器获取的指令的逻辑电路。预解码器产生少数预解码位,所述预解码位与每个指令一起存储在I-cache中。一旦从高速缓冲存储器获取指令,管线解码器便可利用预解码位来简化指令解码任务。预解码位可例如识别分支指令、识别可变长度指令架构中的指令的长度等。预解码位也可用来识别未定义的指令。
在实施预解码的可变长度指令集处理器中,少数预解码器位可与最短或基础指令长度相关联。已知的指令高速缓冲存储器实施方案是使此数目的预解码位与每个I-cache存储位置(其每一者对应于基础指令长度)相关联。占据整数倍的I-cache存储位置的较长指令与较大数目的预解码位对应地相关联。因此,可编码成与指令相关联的预解码位的离散性质的数目是基础指令长度的最小值。如果以其它方式定义对基础指令长度的可用预解码位编码,则利用预解码位来识别未定义的基础长度指令将需要增加与基础指令长度相关联的预解码位的数目。此技术又将增加与每个存储位置一起存储在I-cache中的预解码位的数目。由于很少遇到未定义的指令,且比基础长度长的指令具有充裕的预解码位编码空间,所以添加预解码位以识别未定义的基础长度指令可浪费昂贵的I-cache存储空间。
发明内容
根据本文所描述的一个或一个以上实施例,预解码器可在与指令长度相关联的预解码位编码空间完全定义时指示指令的性质。通过更改指令以模拟不同长度的指令,预解码器可利用与不同长度指令相关联的预解码位的可用编码来指示性质。
一个实施例涉及一种在处理器中预解码指令的方法。识别第一指令的性质。更改第一指令以模拟第二指令。产生用于第二指令的识别第一指令的性质的预解码位。
另一实施例涉及一种经操作以从存储器中读取指令的处理器。所述处理器包含存储从存储器中读取的指令以及与每个指令相关联的预解码位的指令高速缓冲存储器。处理器也包含介于存储器与指令高速缓冲存储器之间的预解码器,所述预解码器经操作以识别第一指令的性质;更改第一指令以模拟第二指令;产生用于第二指令的识别第一指令的性质的预解码位;并将用于第二指令的预解码位写入到指令高速缓冲存储器。
附图说明
图1是处理器的功能方框图。
图2是描绘将可变长度指令从存储器映射到指令高速缓冲存储器的功能方框图。
图3是描绘将未定义指令从存储器映射到指令高速缓冲存储器的功能方框图。
图4描绘根据一个实施例的预解码指令的方法。
具体实施方式
图1是处理器10的功能方框图。处理器10根据控制逻辑14在指令执行管线12中执行指令。管线12可以是超标量设计,具有多个并行管线,如12a和12b。每个管线12a、12b包含组织成管级的各种寄存器或锁存器16,以及一个或一个以上算术逻辑单元(ALU)18。管级寄存器或锁存器16及ALU 18可从通用寄存器堆28中的寄存器读取运算数,且/或将结果写入到所述寄存器。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于高通股份有限公司,未经高通股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110378670.3/2.html,转载请声明来源钻瓜专利网。