当前位置: 首页 > 专利查询>ARM有限公司专利>正文

多指令集的指令预解码制造技术

技术编号:3767693 阅读:185 留言:0更新日期:2012-04-11 18:40
本发明专利技术涉及多指令集的指令预解码。提供了一种数据处理设备,其具有用来生成预解码的指令的预解码电路10,预解码的指令被存储在指令高速缓存20中。来自指令高速缓存20的预解码的指令被解码电路45,50,46读取,并用来形成控制与预解码的指令对应的处理操作的控制信号。最初取出的程序指令可以属于多个指令集中的各个指令集。来自一个指令集的指令被预解码电路10预解码成预解码的指令,预解码的指令具有共享格式以表示与从另一个指令集中取得的相应指令共享的功能性。通过这种方式,解码电路的共享部分可以关于来自这两个不同指令集中的指令的共享功能性生成控制信号。

【技术实现步骤摘要】

本专利技术涉及用来对指令进行预解码的数据处理设备和方法,其中预 解码的指令被放置在高速緩存中以便后续解码以及由处理电路使用。
技术介绍
在典型的数椐处理设备中,大量功率消耗在处理电路的执行流水线(pipeline)内执行指令之前对指令的解码上。在支持多指令集的处理 电路中,由于通常需要提供多个单独的解码器对来自各个指令集的指令 进行解码,所以这个问题变得尤成问题。举例来说,在一些实施方式中,大约15%的处理器功率可能会被指令解码器消耗掉。通常的情况是,在数据处理设备中提供一个或多个高速緩存以緩存 处理电路所需的指令和数据。在高速緩存层级中的任一特定等级,可以 提供单独的指令高速緩存和数椐高速緩存(通常称作哈佛(Harvard) 体系架构),或者可选地,可以提供统一的高速緩存以存储指令和数据 (通常称作冯诺伊曼(Von Neumann)体系架构)。当指令从存储器中 取出以存储在高速緩存中的时候,由于性能方面的原因, 一些已知系统 采用了预解码机制。根据这类机制,指令在存储在高速緩存之前被预解 码,在这种情况下,高速緩存然后通常以比存储在主存储器中的指令更 宽的格式存储指令,以容纳由预解码过程产生的附加信息。为了在指令 稍后被解码和执行时帮助改善性能,在存储在高速緩存中的预解码的指令中提供的额外信息已用来识别分支指令,识别指令类别(例如,加栽 /存储指令,协处理器指令等)以便稍后协助多发射(multi-issue)电 路给具体的执行流水线分派具体指令,从而识别可变长度指令集中的指 令边界。例如,发表于1994年10月 IEEE Transactions on Computers, Vol. 43, No. 10第1140-1150页的G Intrater等人的文章"Performance Evaluation of a Decoded Instruction Cache for Variable Instruction Length Computers"讨论了将预解码的指令存储在高速緩 存中。Lawrence Livermore Nat ional Laboratory的L. Curt is Widdoes,Jr.于1979年12月11日发表的文章"The S-l Project: Developing High-performance Digital Computers"描述了 SI Mark IIA计算机, 文中解码的指令高速緩存将36位的指令字扩展到56位的指令高速緩存 格式,以减少指令解码时间(还可以参见网站 http: //www, cs. clems on. edu/ ~mark/sl. html上的论文"Li vermore S-l Supercomputer-A Short History")。而且,采用预解码的机制来预 先识别分支以及预先识别指令边界的思想在AMD K5 Processor Data sheet (公开号为18522E-0, 1996年9月,第4. 5节的Innovative x86 Instruction Predecoding,第6页)中讨论过,其中讨论了给每个指 令字节增加4位,以识别开始、结束、操作码位置,以及各个x86指令 以后翻译所需的Rop (RISC操作)的数量。降低与解码电路相关的开销是有利的,解码电路用来对预解码的指 令进行解码以生成控制信号来控制处理电路。降低此解码电路的门数降 低了设备的复杂性、成本和功耗。从US-A-5, 568, 646中可知提供了支持多于一个指令集的处理器,并 且使用指令流水线的解码阶段中的可编程逻辑阵列将第一指令集的指 令中的至少一些位映射到第二指令集内的相应位。第一指令集的指令至 少部分被映射到第二指令集的指令,并且映射的版本然后用来生成至少 一些控制信号以控制其它流水线阶段。
技术实现思路
从本专利技术的一方面看,提供了一种用于处理数据的设备,包括 预解码电路,其响应于从存储器中取出的程序指令来对所述程序指令执行预解码操作,以形成预解码的指令;高速緩冲存储器,其耦合到所述预解码电路,以存储所迷预解码的指令;解码电路,其响应于从所述高速緩沖存储器中读取的预解码的指令 来生成控制信号;和处理电路,其响应于所述控制信号以执行由所迷预解码的指令指定 的处理操作;其中所述程序指令来自多个不同的指令集;所述预解码电路将来自第一指令集的程序指令和来自第二指令集的程序指令映射到预解码的指令,该预解码的指令具有共享格式来表示共享功能性;和所述解码电路的共享部分生成所述控制信号以关于所述共享功能性 控制所述处理电路。本专利技术的技术认识到预解码电路采用表示共享功能性的共享格式提 供了将来自不同指令集的指令映射到预解码的指令中的机会。这促进了 使用解码电路的共享部分来由预解码的指令生成控制信号。这样,由于 解码电路的至少一部分由不同的指令集共享,所以与解码电路相关的开 销可以被降低。而且,由于预解码的指令通常是从指令高速緩存中多次 取出的,所以在预解码阶段执行该到共享格式的映射允许在执行该映射 中耗费的能量分摊到对预解码指令的多次使用上。并且,在预解码阶段 执行该映射避免了在解码阶段的额外处理,该额外处理使得更难满足定 时约束。尽管会理解来自多指令集的所有指令的全部功能性可以被共享,但 不同的指令集更可能具有某些不被共享的功能性,因此在一些实施例 中,预解码的指令包括一个或多个位字段,用来表示不被来自第一指令 集和第二指令集的程序指令共享的功能性。可能不共享的功能性的一个例子是在第二指令集不包括条件码时, 第一指令集使用条件码。响应于条件码的附加功能性可以由该一个或多个位字段来提供,该一个或多个位字段表示用于基于先前的处理活动的 结杲来选通(gate)执行或不执行的非重叠功能性。尽管指令集可以全部是固定长度,但在一些实施例中,第二指令集的指令是可变长度的指令,包括具有高位(order)部分和低位部分的 至少一些程序指令。在这个上下文,该一个或多个位字段可以用来识别 这类指令的高位部分和低位部分,以便促进由解码电路对它们进行解 码。上述技术的局限性在于预解码的指令中可以用来表示由来自第一指 令集和第二指令集的指令提供的各种不同类型的功能性的可用的指令位空间。在一些实施例中,第二指令集的至少一些程序指令可以被定义 为具有不可预知的行为,并且由于第二指令集不会有效地使用预解码的 指令中的该指令位空间来表示其自己的具有可预知行为的指令,所以相 应的预解码的指令可以用来表示第一指令集中具有与第二指令集的任8何程序指令不共享的功能性的程序指令。不被不同指令集共享的功能性的例子是对指定为数值的操作数的支 持,该数值存储在第一寄存器内,所述第一寄存器移位了第二寄存器中 指定的量。在这个上下文中,指定第二寄存器的字段可以位于预解码的指令内与一立即/f直(immediate value)对应的位置处,该立即值指定 表示不同指令集的指令的不可预知变体的预解码的指令内的移位量,所 述不可预知变体使用存储在第三寄存器内的数值作为操作数,该第三寄 存器移位了由正被再使用的所述立即值指定的量。至少其中一个指令集中可能有一些指令不可能共用解码电路,本文档来自技高网
...

【技术保护点】
用于处理数据的设备,包括: 预解码电路,其响应于从存储器中取出的程序指令来对所述程序指令执行预解码处理,从而形成预解码的指令; 高速缓冲存储器,其耦合到所述预解码电路,以存储所述预解码的指令; 解码电路,其响应于从所述高速 缓冲存储器中读取的预解码的指令来生成控制信号;和 处理电路,其响应于所述控制信号以执行由所述预解码的指令指定的处理操作;其中 所述程序指令来自多个不同的指令集; 所述预解码电路将来自第一指令集的程序指令和来自第二指令集的程 序指令映射到具有共享格式以表示共享功能性的预解码的指令;和 所述解码电路的共享部分生成所述控制信号以关于所述共享功能性控制所述处理电路。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:PR格林哈尔格AC罗斯SJ克拉斯克
申请(专利权)人:ARM有限公司
类型:发明
国别省市:GB[英国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1