[发明专利]多指令集的指令预解码有效
| 申请号: | 200910006111.2 | 申请日: | 2009-01-23 |
| 公开(公告)号: | CN101493762A | 公开(公告)日: | 2009-07-29 |
| 发明(设计)人: | P·R·格林哈尔格;A·C·罗斯;S·J·克拉斯克 | 申请(专利权)人: | ARM有限公司 |
| 主分类号: | G06F9/38 | 分类号: | G06F9/38 |
| 代理公司: | 中国专利代理(香港)有限公司 | 代理人: | 张雪梅;王小衡 |
| 地址: | 英国*** | 国省代码: | 英国;GB |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 指令 解码 | ||
技术领域
本发明涉及用来对指令进行预解码的数据处理设备和方法,其中预解码的指令被放置在高速缓存中以便后续解码以及由处理电路使用。
背景技术
在典型的数据处理设备中,大量功率消耗在处理电路的执行流水线(pipeline)内执行指令之前对指令的解码上。在支持多指令集的处理电路中,由于通常需要提供多个单独的解码器对来自各个指令集的指令进行解码,所以这个问题变得尤成问题。举例来说,在一些实施方式中,大约15%的处理器功率可能会被指令解码器消耗掉。
通常的情况是,在数据处理设备中提供一个或多个高速缓存以缓存处理电路所需的指令和数据。在高速缓存层级中的任一特定等级,可以提供单独的指令高速缓存和数据高速缓存(通常称作哈佛(Harvard)体系架构),或者可选地,可以提供统一的高速缓存以存储指令和数据(通常称作冯诺伊曼(Von Neumann)体系架构)。当指令从存储器中取出以存储在高速缓存中的时候,由于性能方面的原因,一些已知系统采用了预解码机制。根据这类机制,指令在存储在高速缓存之前被预解码,在这种情况下,高速缓存然后通常以比存储在主存储器中的指令更宽的格式存储指令,以容纳由预解码过程产生的附加信息。为了在指令稍后被解码和执行时帮助改善性能,在存储在高速缓存中的预解码的指令中提供的额外信息已用来识别分支指令,识别指令类别(例如,加载/存储指令,协处理器指令等)以便稍后协助多发射(multi-issue)电路给具体的执行流水线分派具体指令,从而识别可变长度指令集中的指令边界。
例如,发表于1994年10月IEEE Transactions on Computers,Vol.43,No.10第1140-1150页的G Intrater等人的文章“PerformanceEvaluation of a Decoded Instruction Cache for VariableInstruction Length Computers”讨论了将预解码的指令存储在高速缓存中。Lawrence Livermore National Laboratory的L.Curtis Widdoes, Jr.于1979年12月11日发表的文章“The S-1 Project:DevelopingHigh-performance Digital Computers”描述了S1 Mark IIA计算机,文中解码的指令高速缓存将36位的指令字扩展到56位的指令高速缓存格式,以减少指令解码时间(还可以参见网站http://www.cs.clemson.edu/~mark/s1.html上的论文“Livermore S-1Supercomputer-A Short History”)。而且,采用预解码的机制来预先识别分支以及预先识别指令边界的思想在AMD K5 Processor Datasheet(公开号为18522E-0,1996年9月,第4.5节的Innovative x86Instruction Predecoding,第6页)中讨论过,其中讨论了给每个指令字节增加4位,以识别开始、结束、操作码位置,以及各个x86指令以后翻译所需的Rop(RISC操作)的数量。
降低与解码电路相关的开销是有利的,解码电路用来对预解码的指令进行解码以生成控制信号来控制处理电路。降低此解码电路的门数降低了设备的复杂性、成本和功耗。
从US-A-5,568,646中可知提供了支持多于一个指令集的处理器,并且使用指令流水线的解码阶段中的可编程逻辑阵列将第一指令集的指令中的至少一些位映射到第二指令集内的相应位。第一指令集的指令至少部分被映射到第二指令集的指令,并且映射的版本然后用来生成至少一些控制信号以控制其它流水线阶段。
发明内容
从本发明的一方面看,提供了一种用于处理数据的设备,包括:
预解码电路,其响应于从存储器中取出的程序指令来对所述程序指令执行预解码操作,以形成预解码的指令;
高速缓冲存储器,其耦合到所述预解码电路,以存储所述预解码的指令;
解码电路,其响应于从所述高速缓冲存储器中读取的预解码的指令来生成控制信号;和
处理电路,其响应于所述控制信号以执行由所述预解码的指令指定的处理操作;其中
所述程序指令来自多个不同的指令集;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于ARM有限公司,未经ARM有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200910006111.2/2.html,转载请声明来源钻瓜专利网。





