在其中指令在被存储在高速缓冲存储器中之前经预解码的管线处理器中,在管线中执行期间检测未经正确预解码的指令。在所述高速缓冲存储器中使相应的指令无效,且强制所述指令评估为分支指令。明确地说,所述分支指令被评估为“错误预测为不采取的”,其中以所述未经正确预解码的指令的地址为分支目标地址。因所述无效的高速缓冲存储器线,这样会导致以准确的地址从存储器中重取所述未经正确预解码的指令。所述重取的指令接着被正确预解码,写入到所述高速缓冲存储器,并执行。
【技术实现步骤摘要】
【国外来华专利技术】
本专利技术大体上涉及处理器领域,且具体来说涉及通过以指令的目标地址强制进行分 支校正程序来校正与指令相关联的经错误预解码的数据的方法。
技术介绍
微处理器在各种应用中执行计算任务。几乎一直需要改进的处理器性能,以允许通 过软件变动实现更快的操作和/或增加的功能性。在许多嵌入式应用中(例如,便携式电 子装置),节约功率在处理器设计和实施中也是一个重要的目标。许多现代处理器可使用管线结构,其中连续的指令在执行中经重叠以增加处理器总 处理量。通过管线来维持顺畅的执行对于实现高性能是关键的。许多现代处理器还使用 层级存储器,其中快速的、芯片上高速缓冲存储器存储最近存取的数据和指令的本地副 本。此项技术中已知的一种管线优化技术是预解码指令。也就是说,当从存储器读取指 令时检查所述指令,对其进行部分预解码,且将关于指令的某些信息(称为预解码信息) 连同相关联的指令一起存储在高速缓冲存储器中。当稍后从高速缓冲存储器中提取指令 时,还提取预解码信息,且使用预解码信息来辅助对指令进行完全解码。有时,预解码信息含有错误。可在管线中的解码阶段期间检测到这些错误。当发现 错误时,发生异常,且必须冲洗(flush)管线,且必须重取包含经错误预解码的指令在 内的所有指令。这个过程导致性能和功率管理显著降级。
技术实现思路
本专利技术在一个实施例中涉及一种校正未经正确预解码的指令的方法。检测到预解码 错误。响应于检测到所述错误,以未经正确预解码的指令的目标地址强制进行分支校正 程序。本专利技术在另一实施例中涉及一种处理器。所述处理器包含插在指令提取路径中的预 解码器,所述预解码器产生与特定指令相关联的预解码信息。所述处理器还包含预解码 错误检测器和校正器,其检测与所述指令相关联的不正确的预解码信息,且以指令的地 址为分支目标地址而强制所述指令作为错误预测分支来执行。 附图说明图l是处理器的功能方框图。图2是存储器、预解码器、指令高速缓冲存储器和处理器管线的一部分的功能方框图。图3是分支校正逻辑的功能方框图。 具体实施例方式管线处理器架构通过使多个连续指令的执行重叠来开发并行度,每一连续指令具有 多个执行步骤。典型的指令步骤包含指令提取、解码、执行和回写。通过一个或一个以 上管级在管线中执行每一步骤,管级包括逻辑和例如锁存器或寄存器的存储器元件。管 级连接在一起以形成管线。指令进入管线并通过所述级被连续处理。在先前的指令完成 执行之前,额外的指令进入管线,因此,可在任何给定的时间在管线内处理多个指令。 这种在连续指令流中的指令之间开发并行度的能力对于改进处理器性能具有显著帮助。 在理想的条件下,且在在一个周期内完成每一管级的处理器中,在填充管线的短暂起始 过程之后,指令可在每一周期内完成执行。许多现实的约束使得不能维持此理想的条件 然而,保持管线完全且顺畅地流动是处理器设计的共同目标。现代处理器通常还使用存储器层级架构,其将少量快速、昂贵的存储器放置在处理 器附近,以大量较慢的、廉价的存储器作为后备。典型的处理器存储器层级架构可在顶 层处理器中包括寄存器; 一个或一个以上芯片上高速缓冲存储器(例如,SRAM)作为 后备;可能包括芯片外高速缓冲存储器,称作层2或L2高速缓冲存储器(例如,SRAM); 主存储器(通常为DRAM);磁盘存储装置(磁性媒介);和最低层的磁带或CD (磁性 或光学媒介)。在嵌入式应用中(例如,便携式电子装置),可能存在有限的磁盘存储装 置(如果存在的话),且因此主存储器(通常大小受到限制)可以是存储器层级架构中的 最低层。图1描绘代表性处理器10的功能方框图,处理器10使用管线架构和层级存储器结 构两者。所述处理器IO根据控制逻辑14执行指令执行管线12中的指令。所述管线包含 组织在管级中的各种寄存器或锁存器16,以及一个或一个以上算术逻辑单元(ALU) 18。 通用寄存器(GPR)文件20提供包括存储器层级架构顶部的寄存器。管线从指令高速缓 冲存储器22提取指令,由指令侧翻译后备缓冲器(Instruction-side Translation Lookaside Buffer, ITLB) 24管理存储器定址和许可,且由预解码器21执行指令的某些初始解码。 从数据高速缓冲存储器26存取数据,由主翻译后备缓冲器(TLB) 28管理存储器定址和 许可。在各种实施例中,ITLB可包括TLB的一部分的副本。或者,ITLB与TLB可集成。类似地,在处理器IO的各种实施例中,I高速缓冲存储器22与D高速缓冲存储器26可 集成或统一化。在存储器接口 30的控制下,不存在于I高速缓冲存储器22和/或D高速 缓冲存储器26中的存取(遗漏)导致对主(芯片外)存储器32的存取。处理器10可包 含输入/输出(I/O)接口34,其控制对各种外围装置36的存取。所属领域的技术人员将 认识到,处理器IO可能存在许多变化形式。举例来说,处理器IO可包含用作I和D高 速缓冲存储器中任一者或两者的二层(L2)高速缓冲存储器。另外,在特定实施例中可 省略处理器10中所描绘的功能方框中的一者或一者以上。一种已知的用于改进处理器性能并减少功率消耗的技术称为预解码。预解码器21包 括插在主存储器32与指令高速缓冲存储器22之间的路径中的逻辑。可对从存储器中提 取的指令中的某些指令进行预解码,产生预解码信息,并将其连同指令一起写入到I高 速缓冲存储器22。当从高速缓冲存储器提取指令以用于执行时,预解码信息可辅助一个 或一个以上解码管级对所述指令进行解码。举例来说,预解码器可确定可变长度指令的 长度,且将预解码信息写入到高速缓冲存储器中,所述高速缓冲存储器辅助解码管级检 索所述可变长度指令的正确数目的位。可对多种信息进行预解码,且将其存储在I高速 缓冲存储器22中。通过从一个或一个以上解码管级移除逻辑,允许较早使用所述逻辑且可能实现较短 的机器循环时间而改进了预解码器21的性能。预解码器21还通过一次执行预解码操作 来减少功率消耗。由于1高速缓冲存储器22的命中率通常高达90%,所以因不需要每次 从I高速缓冲存储器22中执行指令时均执行逻辑运算而可实现相当可观的功率节省。有时,预解码器21发生错误。举例来说,如果例如参数或中间值等数据连同指令一 起被存储在存储器中,那么通过从高速缓冲存储器线的开始对字节简单地进行计数来确 定指令长度的预解码操作可能会将一个或一个以上所述参数或中间值的字节错误地识别 为进一步沿着所述线向下的指令。可能存在其它类型的错误,包含预解码器21中或I高 速缓冲存储器22中的随机位错误。应在一个或一个以上解码管级中发现这些错误,且这 些错误通常将导致异常,从而要求冲洗并重启管线,借此造成性能和功率消耗损失。存在多种不需要引起异常和对管线12的相关联冲洗的校正预解码错误的方式。图2 是描绘处理器10和管线12的若干部分的功能方框图。图2还描绘指令高速缓冲存储器 地址寄存器(ICAR) 48,其为I高速缓冲存储器22编索引。由下一提取地址计算电路 46产生和/或选择载入到ICAR 48中的地址。当从存储器32 (或L2高速缓冲存储器)提 取指令时,预解码器21对指令进行预解码,且预解码信息23连同相应的指令一起被存储在指令高速缓冲存储本文档来自技高网...
【技术保护点】
一种校正未经正确预解码的指令的方法,其包括:检测预解码错误;以及响应于检测到所述错误,以所述未经正确预解码的指令的目标地址强制分支校正程序。
【技术特征摘要】
【国外来华专利技术】...
【专利技术属性】
技术研发人员:罗德尼韦恩史密斯,布赖恩迈克尔斯坦普尔,詹姆斯诺里斯迪芬德尔费尔,杰弗里托德布里奇斯,托马斯安德鲁萨托里乌斯,
申请(专利权)人:高通股份有限公司,
类型:发明
国别省市:US[美国]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。