具有多个op高速缓存管线的处理器制造技术

技术编号:37985722 阅读:23 留言:0更新日期:2023-06-30 10:00
本发明专利技术提供了一种处理器,该处理器采用多个op高速缓存管线以同时将先前解码的操作提供给指令管线的调度级。响应于在处理器处接收到第一分支预测,该处理器基于该第一分支预测来选择该处理器的该多个op高速缓存管线中的第一op高速缓存管线;以及经由所选的第一op高速缓存管线,将与该第一分支预测相关联的第一组操作提供给调度队列。组操作提供给调度队列。组操作提供给调度队列。

【技术实现步骤摘要】
【国外来华专利技术】具有多个op高速缓存管线的处理器

技术介绍

[0001]为了提高效率和指令吞吐量,现代处理器通常支持指令处理并行性,其中在给定处理器周期期间,针对所接收的指令流的不同指令,处理器同时执行指定处理任务。例如,许多处理器采用同时执行针对不同指令的操作的多个执行单元,从而减少执行不同指令所需的总时间。然而,在处理器的执行阶段之前实现并行性会带来额外的挑战。一些处理器采用同时解码多个指令的解码单元,但电路面积和功耗注意事项限制了这些解码单元的大小和效率。
附图说明
[0002]通过参考附图,本公开可以被更好地理解,并且其许多特征和优点对于本领域技术人员是显而易见的。在不同附图中使用相同的附图标记表示类似或相同的项目。
[0003]图1是根据一些实施方案的采用基于分支预测来同时提供来自高速缓存的操作的多个op高速缓存管线的处理器的框图。
[0004]图2是示出了根据一些实施方案的经由多个op高速缓存管线中的不同op高速缓存管线而向调度队列提供不同操作的图1的处理器的示例的框图。
[0005]图3是示出了根据一些实施方案的基于对应读取端口的相对饱满度来选择多个op高速缓存管线之一以提供操作的图1的处理器的示例的框图。
[0006]图4是示出了根据一些实施方案的基于与读取端口相关联的饱满度低于阈值来选择多个op高速缓存管线之一以提供操作的图1的处理器的示例的框图。
[0007]图5是根据一些实施方案的包括重新排序控制模块的图1的处理器的框图,该重新排序控制模块用于对从多个op高速缓存管线接收的操作进行重新排序。
具体实施方式
[0008]为了增强指令吞吐量,一些处理器采用操作或op高速缓存,其存储先前从执行指令中解码出来的操作。例如,在一些实施方案中,op高速缓存存储与称为预测窗口的指令集相关联的先前解码的操作,其中每个预测窗口与以下任一项相关联:1)表示预测窗口的第一指令的分支目标;或2)遵循先前预测窗口的指令,因为先前窗口在到达分支指令之前结束了。每个预测窗口由以下项来定义:该窗口的初始指令,诸如分支目标;以及该窗口的最终定义指令,诸如另一分支指令、指定存储器地址处的指令(例如,在与初始指令相关联的指令高速缓存行的结尾处的指令等)。op高速缓存包括各条目,其存储针对至少一个预测窗口子集的解码指令。因此,op高速缓存提供了一种快速生成针对预测窗口的解码操作的方式,该预测窗口由处理器在相对短的时间量内频繁执行。
[0009]然而,常规op高速缓存通常不能支持针对不同预测窗口的并行操作提供,从而限制了处理器效率。具体地,op高速缓存条目并不总是与预测窗口对齐。例如,在一些情况下,预测窗口跨越多个op高速缓存条目,而在其他情况下,单个op高速缓存条目包括针对多个预测窗口和多个指令高速缓存行的解码指令。在一些情况下,op高速缓存条目包含整数个
指令并且因此具有起始和结束指令作为其边界,而对于至少一些类型的预测窗口,指令越过了指令高速缓存行边界及预测窗口的边界。由于预测窗口、指令高速缓存行和op高速缓存条目的边界的差异,常规op高速缓存仅包括单个op高速缓存管线以提供解码指令。
[0010]图1

图5示出了供处理器通过识别与已知或明确定义的op高速缓存条目对应的预测窗口(例如,分支预测窗口)来采用多个op高速缓存管线的技术。例如,在一些实施方案中,处理器包括生成分支预测窗口的分支预测器,每个分支预测窗口包括起始地址和结束地址。对于一些称为非有序退出窗口的预测窗口,结束地址是与分支指令对应的地址。换句话说,非有序退出窗口结束于与分支指令结尾对应的地址。对于非有序退出窗口,下一分支预测窗口的开始对应于分支指令的分支目标地址。其他称为有序退出窗口的预测窗口结束于与指定边界对应的地址,诸如与分支预测窗口对应的指令高速缓存行的结尾,其在一些情况下不与指令结尾对齐。对于有序退出窗口,下一分支预测窗口的开始对应于遵循了指定边界的有序地址。
[0011]在一些实施方案中,控制模块将预测窗口流向下引导至op高速缓存或获取

解码管线。控制模块存储描述op高速缓存条目的状态信息,诸如起始和结束指针,并且使用状态信息来生成从op高速缓存中检索出并提供针对传入预测窗口的解码指令所必需的op高速缓存条目访问序列。在一些实施方案中,控制模块将op高速缓存访问的该排序列表并行地分配给多个op高速缓存管线,该多个op高速缓存管线然后从对这些op高速缓存条目的访问中,同时提供解码指令。通过将一组排序的访问分配给一组排序的op高速缓存管线(例如,每时钟每管线一个访问),控制模块生成在不同op高速缓存管线之间划分的有序并行输出流,从而提高了操作吞吐量和总处理效率,同时维持了所检索操作的顺序。
[0012]在一些实施方案中,当op高速缓存不包含一部分预测流时,控制模块控制获取

解码管线以将来自缺失部分中的解码指令提供给调度队列。该获取

解码管线的运行独立于op高速缓存管线获取。处理器包括排序机制以确保调度队列按程序顺序来提供解码指令流。控制模块继续处理传入的一组预测窗口,并且基于例如op高速缓存驻留和条目内容,既为op高速缓存也为获取

解码管线,建立工作(访问)队列。从流自于那些工作队列的访问分配中,op高速缓存和获取

解码管线同时提供解码指令。
[0013]在一些实施方案中,控制模块使紧跟在有序退出预测窗口之后的预测窗口总是分配给相同的op高速缓存管线,使得有序退出预测窗口的所有此类流将沿着相同的op高速缓存管线向下流动。这允许在一个时钟内所访问的op高速缓存条目提供其所包含的最后指令字节的地址,从而识别将在下一时钟内访问的下一有序op高速缓存条目的起始地址。在此类实施方案中,仅将紧跟在非有序退出窗口之后且始于分支目标的预测窗口或者紧跟在分支预测器的重定向之后的预测窗口分配给不同的op高速缓存管线。
[0014]在一些实施方案中,至少部分地基于通过处理器来管理指令流的一个或多个方面的指定操作流标准,处理器选择一个或多个op高速缓存管线以处理给定预测窗口。为了说明,在一些实施方案中,操作流标准要求:用以满足传入预测窗口流的每个可用且必要的op高速缓存访问可平均分布于各个可用的op高速缓存管线。在其他实施方案中,可以给处理器的每个op高速缓存管线分配不同的预测窗口,其中不同的预测窗口包括待提供给调度队列的不同数目的操作。操作流程标准识别出所分配的操作的数目方面,这些方面管理着将选择那些op高速缓存管线来对给定预测窗口进行整体或部分处理。例如,在一些实施方案
中,操作流标准要求:处理器选择已被分配了较少处理操作的op高速缓存管线,从而平衡不同op高速缓存管线之间的指令负载。在其他实施方案中,操作流标准要求:在将预测窗口提供给op高速缓存管线中的一个管线之前,将最少或最大数目的操作提供给op高速缓存管线中的另一管线。在其他实施方案中,操作流标准要求:将与不同线程相关联的预测窗口提供给不同本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种方法,包括:响应于在处理器处接收到第一分支预测:选择所述处理器的多个op高速缓存管线中的第一op高速缓存管线;以及经由所选的第一op高速缓存管线,将与所述第一分支预测相关联的第一组操作提供给所述处理器的调度级。2.根据权利要求1所述的方法,其中选择所述第一op高速缓存管线还包括:基于与所述多个op高速缓存管线相关联的操作流标准来选择所述第一op高速缓存管线。3.根据权利要求2所述的方法,其中所述操作流标准包括与在所述处理器处执行的至少一个线程相关联的服务质量。4.根据权利要求2所述的方法,其中所述操作流标准指示:针对多个时间片中的每个时间片,将多个执行线程中的哪一线程分配给所述多个op高速缓存管线。5.根据权利要求2所述的方法,其中所述操作流标准包括在所述选择之前提供给所述第一op高速缓存管线的预测窗口的数目。6.根据权利要求5所述的方法,其中所述操作流标准包括预期待提供给所述多个op高速缓存管线中的每个管线的预测窗口的最小数目。7.根据权利要求5所述的方法,其中所述操作流标准包括预期待提供给所述多个op高速缓存管线中的每个管线的预测窗口的最大数目。8.根据任一前述权利要求所述的方法,其中所述多个op高速缓存管线中的每个管线包括所述处理器的op高速缓存的不同读取端口。9.根据任一前述权利要求所述的方法,还包括:基于所述第一分支预测所指示的第一操作和最后操作,确定所述第一组操作;以及在生成所述第一组操作之后,对所述第一组操作进行重新排序,所述重新排序基于在所述处理器处识别的程序序列。10.根据任一前述权利要求所述的方法,其中选择所述第一op高速缓存管线还包括:基于所述第一分支预测来选择所述第一op高速缓存管线。11.一种方法,包括:响应于在处理器处识别分支预测:基于所述分支预测来选择所述处理器的多个op高速...

【专利技术属性】
技术研发人员:罗伯特
申请(专利权)人:超威半导体公司
类型:发明
国别省市:

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

1