当前位置: 首页 > 专利查询>英特尔公司专利>正文

用于构造一个预调度的指令高速缓存的方法和装置制造方法及图纸

技术编号:2876712 阅读:199 留言:0更新日期:2012-04-11 18:40
一种在一个计算机处理器中调度指令的方法。该方法包含取出指令以创建一个有序的指令缓存,以及把来自于该指令缓存的指令调度到在一个指令向量表中的指令向量内的指令槽里。然后把指令向量从该指令向量表发送到一个预调度的指令高速缓存,然后并行地发送到一个指令发布单元。(*该技术在2020年保护过期,可自由使用*)

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及计算机处理器体系结构领域。尤其是本专利技术公开了一种用于调度计算机指令的方法和装置。专利技术的
技术介绍
早期的计算机处理器以原始程序次序一次一个地执行计算机指令。具体地说,每条计算机指令被载入到处理器中然后被执行。在执行之后,计算机指令的结果然后被写入到一个寄存器或者主存储器里。在执行一条计算机指令之后,下一条连续的计算机指令然后被载入到处理器中并且被执行。为了提高性能,引入了流水线计算机处理器。流水线计算机处理器同时处理多条计算机指令。然而,早期的流水线计算机处理器以原始程序次序执行指令。流水线处理器通过把指令的处理分成一系列诸如指令取出、指令解码、执行、和结果写回的流水线阶段来进行操作。该处理器然后被分成一组连接的流水线阶段,其中每个流水线阶段执行一个指令处理流水线阶段。在先前描述的示例中,该处理器将被分成一个指令取出阶段、一个指令解码阶段、一个执行阶段、和写回阶段。在每个时钟周期内,每个处理阶段处理一条指令然后把它传给下一个连续处理阶段。因此,该处理器以原始程序次序同时处理几条指令。在一个理想的单流水线处理器中,该处理器将在每个时钟周期内完成一条指令的执行。为了进一步提高处理器性能,已经引入了超标量处理器。超标量处理器使用并行流水线阶段一次处理一条以上的指令。通过并行执行指令,超标量处理器利用了在指令中存在的并行性优点。当对于源操作数来说,连续的计算机指令不取决于彼此时,就存在并行性。这些不相关的连续指令能够被并行执行而没有任何数据冲突。设计超标量处理器的一个困难方面是并行地查找和调度指令,以便没有数据相关性冲突并且有足够的处理器资源可用。专利技术概述依据一个实施例,提供了一种在一个计算机处理器中调度指令的方法。该方法包含取出指令以创建一个有序的指令缓存,以及把来自于该有序指令缓存的指令调度到一个指令向量表中的指令向量内的指令槽里。然后把指令向量从指令向量表发送到一个预调度的指令高速缓存,然后并行地发送到一个指令发布单元。附图简要说明附图说明图1说明了一个现有技术的无序计算机处理器。图2说明了依据一个实施例、带有一个预调度的指令高速缓存的处理器体系结构的一个框图。图3说明了一个流程图,它描述了依据一个实施例、由一个具有一个预调度指令高速缓存的处理器执行的处理过程。图4A说明了一个调度的指令向量表的一个实施例。图4B说明了在来自于图4A的指令向量表中的每个指令槽的内容的一个实施例。图5说明了一个预调度指令向量表的一个替换实施例。图6说明了一个存储指令以及一个伴随的相对调度时戳的高速缓冲存储器。最佳实施例的详细说明这里公开了一种用于在一个计算机处理器中提供一个预调度的指令高速缓存的方法和装置。在下面的描述中,为了说明起见,阐述了具体的术语以提供对本专利技术的一个彻底了解。然而,对于本领域技术人员来说,显然这些细节不是实践本专利技术所要求的。图1说明了一个现有技术的无序超标量计算机处理器。在图1的计算机处理器中,一个指令取出单元110从一个第一级本地指令高速缓存105或者一个主存储器单元103中取出指令。如果想要的指令是在第一级本地指令高速缓存105中,则指令取出单元110从第一级本地指令高速缓存105中取出指令。否则,指令取出单元110从主存储器单元103中取出想要的指令。在某些实施例中,可以给出一个第二级高速缓存作为该主存储器的替代物。取出的指令被传递到一个解码该取出指令的解码器120。该解码的指令然后被传递到一个分配器/重命名器,该分配器/重命名器在一个预留位置分配用于指令的入口,并且使用一个寄存器堆和寄存器映射来执行寄存器重命名。一个调度单元140然后调度这些指令用于执行。该调度单元140选择将在处理器的任意给定周期执行的指令。从该预留位置中把调度的指令与来自于寄存器堆的操作数一起发送到执行单元用于执行。在每个时钟周期内,调度单元140选择一组指令以发送到该执行单元。用于所选指令的源操作数在发送时期是可用的(在该寄存器堆中)或者将是可用的(来自于一个执行单元的结果)。此外,执行资源对于所选指令应当是可用的。在大多数的处理器中,该独立的执行单元不相同,因此每个执行单元只能处理一定类型的指令。因此,该调度单元140确定需要的执行单元类型是否将是可用的。最后,在一个实施例中,调度单元140选择将导致程序执行更快的指令。因而,在一个实施例中,这通过首先选择最早可用的指令来完成。因此,该调度单元140试图以一种先进先出(FIFO)的方式服务指令。由于这些困难的限制以及通常一个调度单元140必须作出决定的短时间周期,所以大多数的调度器不能以最优方式调度指令。因此,虽然在计算机目标代码中有更精细的并行性可用,但是调度单元一般仅仅利用有限数量的并行性。一个预调度的指令高速缓存处理器体系结构在一个实施例中,在指令处理流水线中,一个指令高速缓存已经被放置在一个指令调度器之后。通过把该指令高速缓存放置在指令调度器之后,该指令调度器能够创建“预调度的”指令向量并且在该指令高速缓存中存储该预调度的指令向量。一个指令发布单元然后能够把来自于指令调度器或者来自于该预调度的指令高速缓存的预调度指令向量供给该执行单元。图2说明了依据一个实施例的处理器体系结构的一个框图。在图2的顶端是最初从中取出指令的存储器203。存储器203可以包含标准的主存储器,或者存储器203可以包含主存储器和一个集成的指令高速缓存。一个指令取出单元210从该存储器203中取出要被执行的指令。为了在一个实施例中确定该指令执行路径,指令取出单元210包括一个分支预测单元207。分支预测单元207预测该程序的一个执行路径并且沿着预测的执行路径取出指令。因此,该指令取出单元210依据预测的执行路径,取出一段连续的有序指令流。指令取出单元210把取出的指令传递到一个指令解码器220。指令解码器220在该处理器指令中进行分离并且确定必要的资源。在一个实施例中,该指令解码器220把该处理器指令翻译成小的微操作代码(微操作码)。然后该微操作码由该处理器流水线的剩余部分处理。指令解码器220把该解码的指令传递到指令调度器240。指令调度器240以原始程序次序把该解码的指令放置到一个缓存241里。然后指令调度器从有序缓存241中选择指令,以放置在一个调度指令向量表247中的多个指令向量中的一个内。因此,该有序缓存241为调度提供一组候选的指令。该调度的指令向量表247包含多个指令槽,其中每个指令槽都与一个匹配的执行单元相关联。由于这些执行单元不是全部相同的,所以该调度器为对应于相应指令一个操作的相应执行槽调度指令。当调度器240不能再在该调度的指令向量表247中找到一个空的指令槽时,则该调度器240发送最老的执行向量(例如,最近最少接收一条指令的指令向量)。在一个实施例中,调度器240并行地发送该最老的执行向量到预调度的指令高速缓存250和一个指令发布单元260。在一个实施例中,该指令发布单元260发布指令到一组执行单元。由于这些指令已经被预调度了,所以该指令发布单元260能够简单地发送一个预调度的指令向量到该执行单元。为了增加执行速度,指令发布单元260能够发布从调度器240线性接收的预调度指令向量,或是指令发布单元260能够发布从预调度的指令高速缓存25本文档来自技高网...

【技术保护点】
一种在一个计算机处理器中调度指令的方法,所述方法包含: 取出指令到一个有序的指令缓存里; 从所述有序指令缓存中调度指令到一个指令向量表的指令向量内的指令槽里;以及 从所述指令向量表发送指令向量到一个预调度的指令高速缓存,然后并行地发送到一个指令发布单元。

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:GS谢菲尔
申请(专利权)人:英特尔公司
类型:发明
国别省市:US[美国]

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

1